基于CAN总线的智能汽车座椅设计
2018-05-03龚志鹏高秋荣潘汨余伟豪张鑫明
龚志鹏,高秋荣,潘汨,余伟豪,张鑫明
(湖南工程学院电气信息学院,湖南湘潭,411104)
0 引言
随着社会生产力的发展和人们生活水平的提高,汽车进入了千家万户,成为人们日常生活中的一部分,但同时也产生了大量的交通事故,中国成为世界上交通事故死亡人数最多的国家之一,严重影响人们生命财产的安全。数据显示,酒后驾驶和疲劳驾驶是引发交通事故的重要原因[1]。虽然目前有较严厉的交通法规明文禁止并进行处罚,但现实中不可能时刻全面检查,而且有些问题,比如疲劳驾驶是难以检测的。同时驾驶员不够重视,抱有各种侥幸心理,也使得酒后驾驶和疲劳驾驶屡禁不止。这时我们需从另一个方面对驾驶员进行善意提醒与帮助,如积极改善驾驶环境,及时告知其目前状况是否适合于继续驾驶。为达到此目的,驾驶员在行车时接触较多的座椅成为许多学者重点研究对象,目前研究工作主要集中于座椅的形状、构造性能参数的研究等方面,试图在坐姿上改善舒适性[2],部分学者尝试使用单片机检测酒驾[3],但没有考虑与车辆总线连接与数据传输。一些汽车零部件供应商提出了在车后加装传感器感应心率,以判断疲劳驾驶,目前尚在概念阶段[4]。本文尝试设计一款功能全面,性能更好且与整车控制融于一体的智能汽车座椅,旨在一定程度上避免了因汽车座椅舒适度、酒后驾驶、疲劳驾驶而导致的不必要的交通事故。
1 系统方案设计与实现
■1.1 系统的组成
基于CAN总线的智能汽车座椅设计方案如图1所示,汽车座椅的电子控制单元(Electronic Control Unit,ECU)用于检测座位是否有人,测量座椅温度,根据设置的温度要求控制制热元件;检测空气中酒精浓度,判断是否有酒后驾驶;经蓝牙从从智能手环读取心率数据,依据心率变化判断是否有疲劳驾驶行为。座椅ECU将判断结果及所测得的参数通过CAN总线发送个主控ECU,提醒驾驶员安全驾驶。
智能座椅各控制单元,传感器及执行器的布置的布置如图2所示,加热垫采用标准电压为12V碳纤维材料;压力检测开关用于检测作为上是否有人,置于座位下方;座椅ECU主板置于座椅背后,这样受震动与挤压影响相对较小,有利于电路稳定工作;温度传感器置于加热垫背后,且靠近ECU位置;考虑到目前非接触式心率测量技术尚不成熟,系统中采用了智能手环测量驾驶员心率,经蓝牙传至座椅ECU进行处理。
图1 汽车座椅设计方案
图2 智能座椅布置方案
■1.2 系统硬件实现
系统实现如图3所示,系统采用STM32F103ZET6为核心,其内核为cortex-M3,且具有512K FLASH,64KRAM,性能较强;温度传感器采用DS18B20,自行完成温度检测并转换成数字信号,通过数据总线传给CPU;酒精浓度传感器采用MQ-03;为保存本机参数,如设定酒精报警浓度,特定辨识心率及设定温度值等,系统扩展一个EEPROM芯片AT24C02,容量256字节;CAN接口采用MCP2551驱动芯片;人员检测采用压力开关;电热垫采用12V功率为45W碳纤维材料,具有抗折叠,发热快,效率高及安全好等优点,并采用双通道功率MOSFET IRL6297驱动,最大电路可达15A;ECU与手环通信采用CC2541低功耗串口透传蓝牙模块。智能手环采用集低功耗蓝牙的DA14580芯片,并采用SON7015作为心率传感器。
图3 系统实现框图
■1.3 系统软件实现
1.3.1 J1939协议及数据结构实现
J1939是美国汽车工程协会(Society of Automotive Engineers,SAE)制定的基于CAN总线的汽车控制与通信网络标准,包括对CAN总线物理层、数据链路层、网络层及应用层定义,还有故障诊断和网络管理,是在商用车辆最广泛的协议标准。SAE J1939协议详细指定了数据传输类型、报文结构及其各字段组成,规定了车辆各类数据的编码,范围,周期。J1939采用CAN2.0B标准,使用29位帧标识符,其数据链路层协议数据单元(Protocol Data Unit,PDU)格式如图4所示。PDU由七部分组成,分别是优先级P,保留位R,数据页DP,PDU格式PF,特定PDU位PS(可作为目标地址、组扩展或专用源地址),和数据域DATA。
图4 J1939 PDU格式
车辆控制网络上的多个相关参数可以打包在一起,组成参数群,有一个参数群编号(Parameter Group Numbers,PGN),并将其分配给PDU。PGN是一个24位的数据结构,一般包括数据页,PDU格式,特定PDU位等。其中的每一个参数也有一个编号,称为可疑参数号(Suspect Parameter Number,SPN)。网络上每新增一个参数,J1939都有一种称为SLOT的推荐定义方式,定义内容包括放大比例,限制范围,偏移,以及参数长度。本系统中,新增的参数包括心率,温度,酒精浓度,座椅上是否有人4个参数,设置如表1所示。
表1 新增参数定义
软件开发使用KEIL MDK-ARM开发工具,界面友好,调试方便,程序设计采用C语言的编写,设计流程图如图5所示。在座椅ECU系统初始化完毕,检测蓝牙手环并进行配对,配对成功后会将蓝牙地址存入EEPROM,然后初始化CAN总线,向主控ECU申请设备地址,开始CAN通信。CAN接收到主控ECU数据后,在中断程序中进行处理,如设置座椅温度,发布命令等。系统每500ms循环一次,检测座椅温度,酒精浓度以及心率等参数,并依次进行数据处理,判断驾驶员状态,然后发送给主控ECU。
图5 设计流程图
2 系统测试
为测试智能座椅能否正常运行以及性能是否满足要求,特设计制作了一个主控ECU,模拟汽车驾驶环境,和座椅ECU间采用CAN通信,其运行界面如图6所示。主控ECU可以对温度进行设置,并显示温度,酒精浓度,心率等参数,根据这些参数,如果判断出驾驶员有酒后驾驶或疲劳驾驶行为,为立即发出警报声提醒驾驶员注意安全驾驶。
图6 测试界面
3 结束语
本文为改善驾驶环境、提醒酒后驾驶和疲劳驾驶,研究并设计了一款智能汽车座椅,系统符合基于CAN 2.0 B的J1939汽车通信网络标准,使得设计具有较好的通用性。经测试标明,产品具有安装简单,操控方便,实用性强且成本低廉的特点,有较好的市场推广价值。
* [1]龚杰 贺玉龙,酒后驾驶与我国交通事故现状分析[J]. 道路交通与安全, 2016,5: 7—10.
* [2]殷康胜,陈勇,汽车座椅和悬架系统舒适性结构优化设计,计算机仿真[J]. 2017.9: 160—166.
* [3]任建鹏,李勤,基于单片机的智能防酒驾控制系统[J],科技创新与应用, 2017.20: 16—17.
* [4]章远岸,解决疲劳驾驶有新招:座椅下方装心率感应器 htt ps://www.leiphone.com/[c] 2014.