基于can总线技术的电子控制系统单元在汽车网络系统中的应用

时间:2014-01-11来源:网络


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所示。

在使用发送函数时有一点必须注意,因为在启动发送数据的命令后,can控制器要将缓冲区内的数据发送完毕后,才会将该帧数据是否发送成功的状态返回。这样如果在函数里一直等待数据发送完毕,会使整个微处理器的性能下降。为了避免这种情况,该函数在启动发送后便立即返回,通过发送中断或者利用查询tcs状态位判断是否发送成功。

3.3 接收数据程序

本设计中,我们采用中断的方式进行can总线上的数据接收。当lpc2119的can控制器出现内部中断时,我们先识别中断寄存器的ri位,判断是否为接收中断,然后读取接收缓冲区的内容。其接收流程图如图6所示。


4 结论

实践证明,基于can总线技术,带arm7内核的汽车电子控制系统单元空间小,实效性高。特别是它的数据通信具有很强的实时性、更高的可靠性和更好的抗干扰能力,即使在重负荷下也不会出现网络瘫痪的情况,但投入实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高。
1 2

关键词: can总线技术 电子控制系统 汽车网络系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版