新闻  |   论坛  |   博客  |   在线研讨会
基于ARM的汽车电子控制系统单元设计 (下)
beibeidong | 2008-07-07 17:53:29    阅读:1314   发布文章

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客