文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.05.016
中文引用格式: 张毅,许勇. 基于ARM的商用车信息系统的设计[J].电子技术应用,2016,42(5):57-59,67.
英文引用格式: Zhang Yi,Xu Yong. Design of commercial vehicle information systems based on ARM[J].Application of Electronic Technique,2016,42(5):57-59,67.
0 引言
随着汽车电子技术的不断发展,车载传感器和电子控制单元(ECU)大量增加,汽车逐渐走上了智能化的道路。为了解决众多车载ECU和传感器之间的数据交换,CAN网络总线在汽车中得到了广泛应用。车载信息终端作为CAN网络的一个重要节点,实现对车辆数据的处理、显示和存储[1-2]。
目前国内主流的车载终端,车载仪表只能显示少量必要的车辆信息,而车载屏幕又以导航和娱乐为主,使得车辆传感器和ECU产生的大量数据只有通过外接的专业分析仪器才能读取解析,无法即时地在车载终端显示,更不能实现远程的数据监控;并且由于传统车载终端的封闭性,很难根据个性化需求进行二次开发。
针对商用车车载终端所遇到的问题,基于ARM处理器和Linux系统,设计了一套具有开放的系统平台,良好的交互体验,满足多样化需求的车载信息系统,实现了对车辆数据的即时处理、显示和远程监控,并打破了原有系统的封闭性,能够按照自己的需求选择性安装模块,扩展了系统的功能应用。
1 功能设计
车载信息系统在硬件上分为车载信息终端和扩展卡两大部分。车载信息终端以Cortext-A8处理器为核心,在实现车辆导航、多媒体娱乐、3G数据连接等通用功能的技术上,使用SAE J1939协议对CAN报文进行解析、存储并上传至服务器端[3]。扩展卡针对多在人烟稀少地区长时间行驶的商用车,驾驶员可能因长时间驾驶出现疲劳,若出现事故无法及时报警的情况,以STM32芯片为核心,实现了对驾驶员身份信息识别、长时间疲劳驾驶行为警告、事故自动报警等功能。用户可以根据自己不同的需求,选择满足要求的扩展卡,使车载信息系统有丰富的扩展性。
2 硬件设计
2.1 控制器硬件设计
车载信息终端为实现操作系统流畅运行、车辆信息采集、人机交互等功能,对主控制器提出了较高要求,系统采用Samsung公司推出的32位RISC微处理器S5PV210作为主控制器。S5PV210使用ARM Cortext-A8内核,主频最高可达1 GHz,核心板外接1 GB的DDR2 SDRAM内存和1 GB的Nand flash存储器,可以保证嵌入式Linux系统的流畅运行。处理器S5PV210内含液晶接口,外接一个7寸液晶触摸显示屏,实现信息显示、人机交互。S5PV210内部没有CAN控制器,需要通过SPI接口连接独立CAN控制器作为车身CAN总线网络的一个节点,实现全车信息传输与共享。
扩展卡采用ST公司推出的STM32F4系列单片机为控制器[4],搭载ARM Cortext-M4内核,采用Thumb2指令集,具有外设丰富、性价比高、功耗低的特点,通过IIC接口连接加速度传感器,测量车辆的加速度,通过SPI接口连接RFID读卡器。系统硬件总体结构如图1所示。
2.2 CAN通信模块
MCP2510是一款由Microchip Technology公司生产的独立CAN控制器,支持CAN技术规范V2.0A/B,能够收发标准帧和扩展帧CAN数据报文,拥有SPI接口实现与主控制器的数据传输。MCP2510内部含有3个发送缓冲器、2个接收缓冲器,并可对优先权进行设置,同时具有灵活的中断管理能力[5]。
CAN总线驱动器以芯片PCA82C250为核心,具有优秀的电磁兼容性,为总线提供差分传送功能,实现数据在总线上的差分传送,提高系统的抗噪声干扰能力。MCP2510外围电路如图2所示。
2.3 3G通信模块
3G无线通信模块采用性价比较高的MG3732,支持WCDMA和GSM网络,具有语音、短信、3G数据业务功能,下行峰值数据速率可达3.6 Mb/s,上行峰值数据速率可达384 kb/s,可以满足车载终端与服务器端的通信要求。
2.4 RFID读卡器
模块采用NXP公司的推出的13.56 MHz非接触式读写卡芯片RC522,具有成本低、体积小的特点,支持ISO14443A的多层应用,其内部发送器可驱动读写器天线与智能卡的通信,不需要其他电路。接收机部分提供了功能强大和高效的调解和译码电路[6]。芯片支持常用的SPI接口和UART接口,方便与控制器通信。
2.5 加速度传感器模块
加速度模块使用ADI公司的ADXL345三轴、数字输出加速度传感器芯片,基于iMEMS技术,具有超低功耗、可变量程、高分辨率等特点,测量范围最高可达±16 gn(gn为地球重力加速度,通常取9.8 m/s2),分辨率达13 bit,不仅可以用来检测静态的倾角状态,而且可以检测运动时的碰撞加速度。芯片可直接将测量结果转换为数字信号,通过SPI或I2C总线输出,并支持偏置校正[7]。
3 软件设计
3.1 系统软件设计
本系统在PC平台的开发环境为VMware Workstation10.0+Ubuntu14.06,在ARM平台上移植嵌入式Linux系统与Qt图形用户界面应用程序开发框架,运用Qt Creator4.0进行UI界面设计。Qt提供了非常高效、灵活的开发框架,使用信号与槽机制实现对象间的通信[8]。当车载终端上电,系统引导程序u-boot运行并调用Linux内核启动,启动成功后操作系统自动调用Qt程序,进入主界面。
3.2 CAN 报文的解析
3.2.1 SAE J1939协议介绍
SAE J1939是美国汽车工程师协会(SAE)以CAN2.0B规范为基础制定的车辆多层通信协议,以支持车辆CAN节点之间的通信。该协议在商用车中得到广泛应用,速率设定为250 kb/s。它在CAN2.0B的基础上定义了数据链路层、网络层、应用层和网络管理层,使CAN网络的优异性能更大程度地发挥。
数据链路层定义了信息帧的数据结构和编码规则,包括通信优先权、传输方式、通信要求、总线仲裁等,它负责将CAN扩展帧的29位标识符重新分组定义,使报文的标识符能够描述报文的全部特征[9]。J1939帧与CAN扩展帧格式对照表如表1所示。SAEJ1939协议在应用层规定了车辆控制与通信用到的各种参数,包括信号的可疑参数编号(SPN)和参数组编号(PGN)。常用参数信息如表2所示。
3.2.2 解析报文
当通过CAN网络接收到CAN扩展帧报文,根据表1中J1939帧与CAN扩展帧的对应关系提取PGN的值,PGN=R+DP+PF+PS,其中R为保留位,DP为数据页,PF为协议数据单位,PS为特定协议数据单元。得到PGN的值后,在表2中查找PGN中所包含的参数及位置,获取参数的数值,根据分辨率进行计算,得到物理值。
3.3 扩展卡程序设计
当选择开启扩展功能,扩展卡上电启动,STM32需要先配置SPI接口以实现与RFID读卡模块的通信,配置IIC接口以实现与ADXL加速度传感器模块的通信。程序流程如图3所示。
ADXL345芯片上电之后,需要延时1.1 ms,然后对寄存器进行初始化配置,分别设置量程为16 g,13位全分辨率输出,数据输出速率为200 Hz。为了减少车辆震动对测试结果的影响,对连续的5个测量数据取平均值与门限值进行比较。当检测到加速度数据超过了设置的门限值,就认为发生了碰撞事故,触发中断信号,车载终端接收到中断信号后会通过3G网络发出报警信号通知远程监控系统。
RFID读卡模块需要读取驾驶员携带的智能卡ID进行身份识别。模块运行时会一直进行寻卡操作,判断天线范围内是否有智能卡。当检测到智能卡后需要进行防冲撞处理,选卡和验证卡片,验证通过后读取智能卡的ID号。读取到的ID号在车载终端的驾驶员信息数据库中查询,显示记录驾驶员信息。
3.4 远程监控系统的软件设计
远程服务器端软件选择LabVIEW作为开发工具,使用图形化编程语言编写程序,可用来方便快捷地创建用户界面。在界面中使用百度地图静态图API植入百度地图,可以直观地监测车辆位置。百度地图静态图API可实现将百度地图以图片形式嵌入到网页中。服务地址:http:/api.map.baidu.com/staticimage/v。远程监控系统界面如图4所示。
4 系统功能测试
CAN总线系统使用CAN分析仪CANalyst-II搭建的模拟车辆CAN网络进行测试,CAN分析仪根据J1939协议设置多种CAN报文的帧ID和数据域,500 ms为周期循环发送来模拟商用车的CAN节点发送车辆信息,如发动机转速、基于车轮的车速、平均燃油经济性[10]。通过模拟的车身CAN总线网络,车载终端的CAN节点成功读取到了CAN报文并根据J1939协议解析出车辆信息,在车载终端显示并通过3G网络在远程监控系统成功接收到车辆的动态数据。
事故自动报警功能通过飞思卡尔智能车模型搭载的测试平台进行测试,由于汽车模型较小,扩展卡作为一个独立的模块单独进行测试,把扩展卡固定在智能车上,使用小车电池通过电压转换芯片转换为3.3 V给扩展卡供电,当有警报时,用LED闪烁指示。为了减小测试实验的破坏性,设置自动报警加速度门限值为1 g。用无线遥控器控制小车进行模拟碰撞实验,经过多次模拟实验,都自动触发了报警;在没有碰撞的情况下,没有发生误报警。
5 结束语
车载信息系统基于ARM处理器,分别进行了车载终端与扩展卡的设计。以J1939协议为核心,通过对车载CAN网络节点数据的实时处理与解析,使车载终端与远程监控系统都能够即时获取车辆信息;并针对商用车提供了驾驶员身份识别、事故自动报警等功能;通过软硬件设计,把车载信息系统的通用功能与个性需求分模块实现,具有了丰富的多样性与扩展性,为商用车车载信息系统提供了一种新的解决方案。
参考文献
[1] JANKOVIC S,KLEUT D,BLAGOJEVIC I.Controller area network based monitoring of vehicle′s mechatronics system[C].IEEE 9th International Symposium on Intelligent Systems and Informatics,Subotica,2011.
[2] GIANLUCA C,IVAN B.Fixed-length payload encoding for low-jitter controller area network communication[J].IEEE Transactions on Industrial Informatics,2013,9(4):2155-2164.
[3] 骆志宏,许勇,马秋香.商用车在线故障诊断系统设计与实现[J].计算机测量与控制,2015,23(4):1098-1101.
[4] 张亮,程明霄,朱增伟,等.基于STM32和μC/OS-II的智能在线分析平台的研究[J].仪表技术与传感器,2015(1):44-47.
[5] 张国胜,王书举.基于数据压缩的车身CAN网络优化调度设计[J].汽车工程,2015,38(8):980-984.
[6] 张捍东,朱林.物联网中的RFID技术及其物联网的构建[J].计算机技术与发展,2011,21(5):56-59.
[7] 袁西,陈栋,田湘,等.三轴数字加速度计ADXL345及其在捷联惯导中的应用[J].电子设计工程,2010,18(3):138-140.
[8] 韩少云,奚海蛟,谌利.基于嵌入式Linux的Qt图形程序实战开发[M].北京:北京航空航天大学出版社,2012.
[9] 王锦坚,洪添胜.基于SAE J1939协议的客车CAN总线发动机测试系统[J].工业控制计算机,2009,22(4):82-84.
[10] 秦亚军,康维新.基于J1939的车载CAN总线模拟系统设计[J].应用科技,2015,42(3):13-16.