微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于CAN总线的半挂车安全预警系统设计

基于CAN总线的半挂车安全预警系统设计

时间:03-16 来源:中国电子设计网 点击:
摘要:针对目前半挂车存在因超载造成轮胎压力过大,易磨损脱层甚至爆胎等问题,提出在传统TPMS 方案上进行改进,采用CAN 总线结构实现各轮胎结点与其它汽车电子单元一起构建CAN 网络,实现安全预警检测。新系统可扩展性好,通信快捷可靠,是半挂车安全预警装置的发展方向。文中给出了系统设计方案和中央预警模块的软硬件具体实施办法。
关键词:CAN 总线,半挂车,ARM,μC-OS/II

1 引言
半挂车指"其设计和技术特性需汽车牵引,才能正常使用的一种无动力的道路车辆,用于载运人员和货物"(GB/T3730.1-2001标准)。 半挂车的种类很多,包括厢式半挂车、罐式半挂车、平板半挂车、集装箱半挂车、车辆运输半挂车等等。随着我国公路物流运输业的发展,半挂车以其运输效率高、运载量大、燃油经济性好、运输成本低等优势使用越来越广泛。随之而来的是半挂车的安全问题。据2006年公安交通部门统计,全国半挂车的数量约占整个机动车保有量的5%左右,重大交通事故中,涉及到半挂车等大型货运机动车辆的事故占到约47%,造成的人员死亡率占总数的约30%。半挂车的安全隐患主要来自两个方面:一是超载现象。超载现象不仅对高速公路等交通设施造成破坏,而且使得汽车轮胎处在极大的负荷下,易引发爆胎事故;货车超载也使得货物更容易变得不平衡,导致车辆发生侧翻倾覆的事故。二是轮胎安全,缺乏轮胎压力温度监测系统;因此建立半挂车的安全预警系统非常必要。
2 总体设计
半挂车车身长度一般在 6-14 米,车身长,电磁干扰大,汽车电子单元多而复杂,采用传统的四轮轿车独立的TPMS 方案信号传输易受干扰屏蔽,而且与其它汽车电子单元无法进行信息交换,系统的可靠性和扩展性不好。因此设计采用基于CAN 总线的方式,将各轮胎气压、温度监测装置和其它诸如ABS、发动机、仪表盘的汽车电子单元都作为一个个CAN 总线上的结点, 由一个中心预警模块统一监测控制,可提高系统可靠性和监测效率,节省各模块重复开发费用。如图1 所示。


3 系统硬件设计
3.1 CAN 总线的特点

CAN 全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。
CAN与其它总线结构相比有较优越的特点[1]:(1)CAN总线为多主站总线,各结点均可在任意时刻主动向网络上的其他结点发送信息,不分主从,通信灵活;(2)CAN总线上每帧有效字节数最多为8个,传输时间短,受干扰概率低,并有CRC及其他校验措施,具有极好的检错效果,数据出错率极低。(3)CAN总线只有两根导线,系统扩充时,不需要应用层以及任何结点软件和硬件的任何改变,可直接将新结点挂在总线上即可,因此走线少,系统扩充容易,改型灵活;网络构建成本低,总线利用率极高;(4)数据传输距离可满足5-15米的汽车系统,数据传输速率高达1Mbit/s,也可满足长达10km工业应用。
3.2 CAN 总线地址分配
如何来区分总线上的各个结点呢?在 CAN 总线上发送的每一条报文都具有唯一的一个11 位(标准帧)或29 位(扩展帧)数字的ID,可采用静态分配地址的方法,将ID 的前3-4 位定义为结点地址,其余各位自行定义,写入各结点发送的帧消息中。中央结点接收到一个CAN 数据帧后通过检查前3-4 为确定数据是从哪个结点发出的,从而做出响应的处理。CAN 总线状态取决于二进制数"0"而不是"1",所以ID 号越小,则该报文拥有越高的优先权。一般后轮轮胎的负荷大于前轮,因经常靠右行驶,右侧的轮胎负荷可能大于左侧[2],因此在轮胎结点地址分配时,可以将负荷较大的轮胎分配为小地址,优先发送该结点数据。
3.3 中央预警模块
中央控制模块的硬件设计如图 2 所示,分五个部分:一是处理器的选取和使用。处理器要求选取性能高,体积小,价格比较低,功耗小,安装方便,安全可靠的产品。目前嵌入式系统中比较常用的32 位基于ARM7 框架的S3C44B0X 处理器比较符合要求。二是存储部件的扩展,主要用于程序烧制和运行。三是要有输入输出部件,使用触摸屏作为输入设备,LCD和音频播放器作为输出设备,实现胎压和温度门限值的输入和实际监测数据输出预警。四是CAN 接口电路设计,如果选取的处理器自带CAN 接口电路当然更好,如果选取的处理器本身不带CAN 接口功能,可通过外接CAN 控制器的方式实现数据收发(图2 采用S3C44B0X 处理器SPI 同步串行接口与MCP2510 控制器、TJA1050 收发器相连实现CAN 接口功能)。五是要有模块调试电路,主要是串行口和JTAG 接口的设计。


4 系统软件设计
4.1 操作系统引导

本系统软件设计采用目前比较流行的嵌入式实时多任务开放式操作系统μC-OS/II 。该操作系统要在S3C44B0X处理器上运行必须先对其进行移植[3],然后由Bootloader中由BOOT()、Loadfile()两个函数来完成操作系统的引导和控制权的转移。系统将LCD、音频、CAN接口控制器等全部硬件驱动程序,图形API,控件函数,以及系统的基本任务生成专门的库(在STD2.5的开发环境下生成的库为ucos_lib.alf),使基于库的应用程序开发变的异常
简单,不用考虑底层的细节。应用程序开发后与专门库、头文件以及μC/OS-II操作系统会绑定在一起编译,生成唯一执行文件system.bin,存放在16M FLASH中,在系统启动时由BootLoader依靠文件系统从FLASH 中读到SDRAM 中,然后移植到该代码上,完成操作系统的引导任务。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top