本文采用了基于can总线技术,设计开发了应用于汽车网络系统中的电子控制系统单元。
1 电子控制系统单元can通信模块的设计
根据can通信原理,电子控制系统单元can通信模块硬件主要由can控制器、can驱动器及中心微处理器构成。传统的can通信模块采用51系列的单片机作为中心处理器,sja1000作为can控制器,pca82c250作为can驱动器。这种方案所占空间大,外围接口扩展局限,同时功耗高。本设计中,我们采用内嵌有can控制器的lpc2119和tja1050总线驱动器构成电子控制系统单元的can通信模块。can通信模块硬件图如图1所示。
lpc2119内带有arm7内核,具有封装小、功耗低、多个32位定时器、4路10位adc、2路can以及多达9个外部中断等优点。tja1050是philips公司生产的,用以替代pca82c250的高速can总线驱动器。该器件提供了can控制器与物理总线之间的接口以及对can总线的差动发送和接收功能。对于由"弱"终端构成的端节点,tja1050外围的电阻和电容能改善系统的emc性能。实践证明,采用lpc2119和tja1050构造can通信模块,外围扩展能力强,空间小,同时改进电磁辐射(eme)性能和抗电磁干扰(emi)性能。
2 电子控制系统单元控制模块的设计
传统的"蜘蛛网式"控制模块,电路复杂,维修难度高。本设计中,我们采用功率模块、人机通信模块、状态量输入模块的结合,构造出电子控制系统单元控制模块,提高了整个系统的可观性和实效性。控制模块硬件图如图2所示。
2.1 功率模块
考虑到汽车功率负载大及lpc2119的i/o口驱动的局限,系统中采用功率模块作为中心微处理器与功率负载之间的桥梁。[page]
设计中,我们采用摩托罗拉公司生产的mc33888功率器件控制远光灯、近光灯、倒车灯、刹车灯。mc33888内部集成有四路高端灯驱动器和8路继电器或发光二极管驱动器,是一个可控制网络,具有在板诊断、与微控制器通信报错能力及故障软化等优点。考虑到车内灯和示廊灯的功率相对比较大,我们采用mc33487功率器件进行控制。mc33487内部集成两路带有电流感应的20毫欧姆高端驱动器,电流输出4.5a.感性负载以及大电流的短路保护是整个设计的难点。mc33887具有功耗低、等待模式下电流25微安、输出电流超过8安的短路关断等优点,所以系统采用mc33887功率器件对电机、锁、天线、洗涤泵进行控制。
2.2 人机通信模块
为了提高驾驶员和乘客的舒适性、安全性,整个系统必须在人和机器之间建立良好的人机通信模块。bc7281、键盘模块及外围的led之间的结合,构造出人机通信模块。bc7281是比高公司推出的16位数码管显示及键盘接口专用芯片。该芯片通过外接移位寄存器(74hc164、74ls595等)可控制16位数码管或者128只独立的led。bc7281的驱动输出极性及输出时序均可通过软件进行控制,从而和各种驱动电路配合,适合任何尺寸的数码管。
通过人机通信模块,人的意识能够为机器所识别,同时机器也可以将一些相应的状态信息反馈到led或者lcd上,达到人机通信的可视化效果。
2 3 状态量输入模块
状态量输入模块主要是将一些人为操作的效果(如大灯开关、转向灯开关)、车身状态(如车门、窗的开关)及内部状态信息(如油量、水温)反馈给中心处理器。中心处理器对反馈信息进行分析处理,就可以准确判断本车所处的状况,并做出相应的操作。
外部状态信息可以分为开关量和模拟量。通过一系列外围电路(如整形防颤电路),我们将开关量转换成cpu可识别的0v和+5v高低电平。在模拟量处理上,先经过归一化处理电路,将水温、油量、气压、室温的变化转化为0v到5v之间电信号,然后通过lpc2119内嵌的4路10位ad转换器转换成相应的数字量。利用现有的can通信模块将这些数字量传输到驾驶员附近的电子控制系统单元,再经过d/a转换器,反应在仪器仪表上。
3 电子控制系统单元软件设计
对于lpc2119微处理器来说,can控制器完全是基于事件触发的,即在本身状态发生改变时,can控制器会将状态变化的结果告诉微处理器。因此中心微处理器可以采用中断的方式或者轮询的方式对can控制器作出相应的处理。完整的can固件编程层次结构图如图3所示。
各电子控制系统单元按规定格式和周期发送数据到总线上,同时根据需要各取所需的报文。对于接收数据,本系统采用中断的方式实现,一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中。此时利用屏蔽滤波寄存器对接收报文的标识符和预先在接收缓冲器初始化时设定的标识符进行有选择地逐位比较,只有标识符匹配的报文才能进入接收缓冲器,那些不符合要求的报文将被屏蔽于接收缓冲器外,从而减轻cpu处理报文的负担。
各电子控制系统单元的应用层程序都不一样,但是通信模块的应用程序基本上一致,可分为can初始化、发送数据、接收数据。
3.1 can初始化程序
can初始化程序主要用来实现can工作时的参数设置,其初始化主要内容包括:硬件使能can、设置can报警界限、设置总线波特率、设置中断工作方式、设置can验收滤波器的工作方式、设置can控制器的工作模式等。初始化流程图如图4所示。
3. 2 发送数据程序
对can模块初始化成功后,就可以用它来传送报文。节点向总线上发送报文的过程是:lpc2119将待发送的数据按can格式组成一帧报文,写入can模块发送缓冲区,然后启动发送命令,将报文发送到总线上。发送流程图如图5所示。[page]
在使用发送函数时有一点必须注意,因为在启动发送数据的命令后,can控制器要将缓冲区内的数据发送完毕后,才会将该帧数据是否发送成功的状态返回。这样如果在函数里一直等待数据发送完毕,会使整个微处理器的性能下降。为了避免这种情况,该函数在启动发送后便立即返回,通过发送中断或者利用查询tcs状态位判断是否发送成功。
3.3 接收数据程序
本设计中,我们采用中断的方式进行can总线上的数据接收。当lpc2119的can控制器出现内部中断时,我们先识别中断寄存器的ri位,判断是否为接收中断,然后读取接收缓冲区的内容。其接收流程图如图6所示。
4 结论
实践证明,基于can总线技术,带arm7内核的汽车电子控制系统单元空间小,实效性高。特别是它的数据通信具有很强的实时性、更高的可靠性和更好的抗干扰能力,即使在重负荷下也不会出现网络瘫痪的情况,但投入实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高。
参考文献
1. sja1000 datasheet http://www.dzsc.com/datasheet/sja1000_609075.html.
2. pca82c250 datasheet http://www.dzsc.com/datasheet/pca82c250_542618.html.
3. lpc2119 datasheet http://www.dzsc.com/datasheet/lpc2119_454520.html.
4. tja1050 datasheet http://www.dzsc.com/datasheet/tja1050_649182.html.
5. emc datasheet http://www.dzsc.com/datasheet/emc_2342312.html.
6. mc33888 datasheet http://www.dzsc.com/datasheet/mc33888_1124272.html.
7. mc33887 datasheet http://www.dzsc.com/datasheet/mc33887_1077298.html.
8. bc7281 datasheet http://www.dzsc.com/datasheet/bc7281_1134245.html.
9. 74hc164 datasheet http://www.dzsc.com/datasheet/74hc164_99185.html.
10. 74ls595 datasheet http://www.dzsc.com/datasheet/74ls595_1134750.html.
11. 80c51 datasheet http://www.dzsc.com/datasheet/80c51_103447.html.
12. 邬宽明.can总线原理和应用系统设计.北京:北京航空航天大学出版社,1996
13. 周立功.增强型80c51单片机速成与实践. 北京:北京航空航天大学出版社.2003
14. 葛林.can通信网络在汽车中的应用研究. 汽车技术 2000;(11);1-4
上一篇:基于ARM9的嵌入式网关的研究
下一篇:基于WinCE的I2C驱动程序设计
推荐阅读最新更新时间:2024-03-16 13:13
设计资源 培训 开发板 精华推荐
- 手印签到,共同见证 TI 中国大学计划20周年
- 好书共读 | 《控制之美(卷2)——最优化控制MPC与卡尔曼滤波器》
- 联想栗子工业智能开发板抢先首发!免费申请进行时~另有12 月 22 日深圳技术沙龙邀您莅临!
- 下载《基于巨磁(GMR)的Allegro IC》白皮书,赢50元京东卡
- ADI有奖下载活动之15 ADI公司智能可穿戴医疗保健设备解决方案
- ADI有奖下载活动之17:变频驱动及电源设计中的隔离技术
- 邀请小伙伴一起学AM437x,好礼有你!
- 看视频抽好礼:Type-C承载的高速串行标准,功能多样,挑战也不小
- 【EEWORLD第三十一届】2011年10月社区明星人物揭晓!
- 家电新风尚,PI开启您的家电新生活!下载产品资料答题赢好礼!