system: [SYSTEM]

user: 3. 系统设计 如图1和图2所示，系统中，酒精检测单元的CAN总线节点分为酒精检测单元和CAN通信模块，其中酒精检测单元包括数据处理模块(MCU)、IC卡登录模块、酒精检测模块、报警模块、GSM模块、电源管理模块、以及时钟日历模块等。其中电源管理模块，即DC-DC转换器，接车载12 V直流电，给系 图1. 系统架构图 图2. 酒精检测单元架构图 统中其他各模块供电。数据处理模块包括微控制器及其最小系统，考虑到系统涉及对AT指令集的解析及对IC卡大量数据的读写，设计采用STM32系列单片机，该系列单片机处理速度快、片上存储空间大、功耗低、且具备丰富的外设资源，可以满足系统设计需求。时钟日历模块，通过其中的时钟日历芯片(DS1302或PCF8563)，使MCU获取系统时间。这三个模块后文不再展开，本节着重介绍IC卡登录模块、酒精浓度检测模块、报警模块、CAN通信模块、GSM模块，以及系统软件流程设计。 3.1. IC卡登录模块设计 非接触式IC卡，即射频卡，由封装在标准的PVC卡片内的IC芯片和感应天线组成。卡片在距离读写器表面50~100 mm时，可以通过无线电波的传递来完成数据的读写操作。相较磁卡等信息载体而言，非接触式IC卡具有保密性好，安全性高，储存量大，数据传输速度快等优点。设计采用统一发放的IC电子驾驶证替代传统的纸质驾驶证，更易于使用和保存。 (1) 数据存储 IC卡登录模块包括存储驾驶员和其行车信息的IC卡式驾驶证和该驾驶证的检测、读取、写入模块和放置装置。IC卡中存储的信息包括：驾驶员姓名、驾驶证号、准驾车型、最近一次酒精检测不通过的时间、12个月内酒精检测不通过的标识(饮酒驾车/醉酒驾车)、酒驾起始时间、酒驾持续时间、最近一次汽车熄火时间(结合下次汽车启动时间判断是否中途熄火，如果是短暂熄火，无需重新进行酒精检测)、紧急联系人电话号码。所有存储的数据要经过加密处理。 (2) 工作流程 通过IC卡登录模块的卡槽式装置和内置检测电路容纳和判定IC卡式驾驶证放入情况，并通过内置读卡写卡模块，读取驾驶者信息，判断是否符合准驾车型，并在异常行为和停车熄火时写入行车行为，并通过报警模块进行声光示警，通过GSM模块发送警示短信。驾驶者IC卡成功登录后，数据处理模块判断IC卡读写模块中是否存在6小时以内的酒精检测不通过记录，若是，则设立警示标志位，若否，则接收酒精浓度检测模块的酒精检测数据，并进行分析判定，若判定合格，则正常启动，若判定不合格(或有警示标志)，仍收到了CAN总线上的汽车启动信号，则报警模块报警，并将驾驶员身份信息、酒精检测不通过的标识及时间等计入IC卡中，通过GSM模块向驾驶员的紧急联系人发送示警短信。 3.2. 酒精浓度检测模块设计 酒精浓度检测模块设计主要需考虑精度和成本两方面因素。目前警用酒精测试仪中的传感器精度高，稳定性强，然而成本也很高；在其它低成本酒精传感器中，MQ-3酒精传感器可在环境温度为−20℃~+55℃，相对湿度 ≤ 95%RH的环境下(该阈值能够适应车内环境变化)，正确的检测出酒精浓度，范围为10~1000 ppm，精度高于1 mg/100 ml。 该传感器主要制作材料为二氧化锡，遇到酒精气体时，其电导率会随着酒精气体浓度增加而变大，从而导致电压变化，通过AD转换，即可将酒精浓度信号转换成数字信号供MCU处理。由于如图3所示，MQ-3酒精传感器检测精度会受到环境温湿度的影响，故设计采用温湿度传感器，如DHT11来对酒精检测值进行校准。 3.3. 报警模块设计 数据经MCU处理后，传送至报警模块，该模块主要采用两个三基色LED指示灯和一个蜂鸣器来加强警示作用，其中一个LED灯用来指示IC卡电子驾驶证的检测状态，另一个LED灯用于指示酒精检测状态。具体含义如表1和表2所示。 3.4. CAN通信模块设计 德国BOSCH公司最早研发了CAN总线(Controller Area Network Bus)即控制器局域网络总线，专用于现代汽车行业制造厂中现场设备的连接。 图3. MQ-3传感器的温湿度特性曲线 Table 1 IC card indicator status tabl 指示灯状态 蜂鸣器状态 含义 绿灯长亮 不发声 IC卡状态正常 黄灯长亮 不发声 IC卡为警示状态卡，即距离前次酒测不通过的时间未满6小时 红灯1 Hz频率闪烁 发出急促滴滴声 IC卡为无效卡，如准驾车型不符，卡已损坏，或放入的是其他类型的磁卡，并非电子驾驶证 表1. IC卡指示灯状态表 Table 2 Alcohol detection data classification processing mechanis 酒精浓度x 指示灯状态 蜂鸣器状态 检测结果 行为界定 x < 20 mg/100 ml 绿灯长亮 不发声 合格 合法行为 20 mg/100 ml ≤ x < 80 mg/100 ml 黄色1 Hz频率闪烁 发出缓慢滴滴声 饮酒驾车 违法行为 80 mg/100 ml ≤ x 红色1 Hz频率闪烁 发出急促滴滴声 醉酒驾车 犯罪行为 表2. 酒精检测数据分级处理机制 (1) 汽车电器网络结构 汽车上的电器网络连接主要采用高/低速2条CAN。高速CAN用于实时性要求较高的驱动系统，如发动机、安全气囊、电动机等，速率可达500 kbps；低速CAN用于实时性要求低，但信号众多的车身系统，如车门、车灯、车窗等信号的采集和反馈，速率为100 kbps。本系统中需要检测发动机启动情况，以判断驾驶员有无在饮酒的情况下强行发动汽车，故系统挂靠于高速CAN总线上，如图4所示。 (2) CAN通信模块系统组成 CAN通信模块由CAN控制器、CAN收发器、数据传输终端以及传输线 2 等部分组成。 1) CAN控制器 3 SJA1000 CAN控制器的结构如图5所示。CAN核心模块，依据CAN规范控制CAN帧收发；接口管理逻辑，通过地址/数据复用总线和酒精检测单元的MCU通信；发送缓冲区，用于存储报文；当MCU发送数据时，CAN核心模块从发送缓冲区读取报文；验收滤波器，可筛选MCU拟接收的报文；接收FIFO，可以存储所有收到的报文。 2) CAN收发器 CAN收发器如图6所示，安装在控制器内部，通过一个开路的集电极和总线相连，为半双工通信。 图4. 基于CAN总线的汽车电器网络结构图 图5. SJA1000型CAN控制器结构图 图6. CAN收发器原理图 当所有控制器开关断开，总线电平为5 V或3.5 V，CAN总线未激活，称为隐性电平；反之，任一控制器闭合，总线电平为0伏，CAN总线被激活，称为显性电平。 3.5. GSM通信模块设计 (1) 通信模块设计原理 当酒驾发生时，系统设计了远程通信功能，即通过GSM模块向IC卡中存储的驾驶员的紧急联系人手机号码发送短信，通过人为干预的方式，防止酒驾的发生。GSM模块通过AT指令操作，可以通过串口和MCU通信。通信过程为MCU将欲发送的联系人手机号码及短信提示内容进行编码，然后进行数据的打包，通过串口发送给GSM模块。另外，为防止GSM模块长时间未和MCU通信进入休眠状态，MCU将周期性的发送AT指令集至GSM模块，以提高短信发送成功率。 (2) 编码设计 与短信息相关的部分主要AT指令见表3。由于本设计中需要发送中文信息，“AT + CMGF”指令中，Text模式是不支持中文的，故选择PDU模式的UCS2编码发送Unicode字符，即中文Unicode码。 手机号编码：涉及“0~9”，根据编码规则 5 ，对应的Unicode编码分别为： 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 设计短信提示内容为：“驾驶证号为X的Y (驾驶员姓名)发生Z (饮酒驾车或醉酒驾车)行为，望您及时劝阻，以免危险发生！”(短信内容中的X、Y的参数是MCU从IC卡中读取的，Z参数为系统酒测过程中获得的)，如X为“232101198708015348”，Y为“王小明”，Z为“醉酒驾驶”，其对应的Unicode编码为： 9a7e 9a76 8bc1 53f7 4e3a 0032 0033 0032 0031 0030 0031 0031 0039 0038 0037 0030 0038 0030 0031 0035 0033 0034 0038 7684 738b 5c0f 660e 53d1 751f 9189 9152 9a7e 8f66 884c 4e3a ff0c 671b 60a8 53ca 65f6 529d 963b ff0c 4ee5 514d 5371 9669 53d1 751f ff01 3.6. 系统控制流程设计 酒精检测单元控制流程如图7所示。当驾驶员将IC卡插入卡槽时，若是无效卡，通过IC卡状态指示灯示警，并将卡弹出。若是有效卡，通过对卡中数据的读取，若距上次酒测不通过时间已超过6小时，则进入酒精检测环节，通过吹气判定和酒精浓度检测，判定当前驾车状态(分酒测通过、饮酒驾车及醉酒驾车)。若酒测通过，则允许车辆正常起火；若不通过，可以按IC卡弹出按键，更换驾驶员驾车。若驾驶员强行起火，除了装置的声光警示外，还会立即根据IC卡中的联系人信息发送警示短信，此外在汽车 Table 3 GSM module with SMS related part of the AT comman AT指令 功能 AT + GMGC 列出一条短信息 AT + GMGD 删除SIM卡内存的信息 AT + CMGF 选择短信息格式 0-PDU;1-Text AT + GMGR 读取短信息 AT + CMGS 发送短信息 AT + CMGW 向SIM内存中写入待发的短信息 表3. GSM模块 4 中与SMS相关部分AT指令 图7. 酒精检测单元控制流程图 熄火时，还会向IC卡中记录酒驾起止时间、酒驾状态标记(酒驾/醉驾)，并再次通过GSM模块发送警示短信。为防止车辆意外中途熄火时，反复酒测可能会耽误重新起火，系统设定为每次车辆熄火时自动记录熄火时刻，如果与下次启动时的间隔小于1分钟且IC卡有效，可以跳过酒测环节直接启动车辆(不影响酒测判定)。此外，若距上次酒测不通过的时间不超过6小时，系统将会判定其仍处于酒驾警示阶段，自动延续前次酒测判定结果。