CAN现场总线在智能配电系统中的应用
后启动发送命令即可。信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。本系统采用查询的方式发送。
接收程序
接收子程序负责节点报文的接收以及其它情况的处理,诸如对总线关闭、错误报警、接收溢出等情况进行处理。信息从CAN总线到CAN缓冲区是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。考虑到实时性的要求,采用了如图2所示的中断方式。
![](../img/eep/emb/emb-67160uguud2wnnmp.jpg)
图2 中断接收流程图
错误处理
在CAN初始化中,打开了错误报警中断使能和总线错误中断使能,当错误计数器(发送错误计数器和接收错误计数器中的任何一个)计数值超过96时,说明总线被严重干扰,产生错误报警中断;当发送错误计数器值超过255时,节点进入总线关闭状态,CAN控制器将设置复位模式位为1(当前)并产生一个错误报警和总线错误中断。
错误报警中断处理是清零所有错误计数器的值,维持CAN的运转,但这样做存在局限性:清零错误计数器只是将错误计数器简单的清零,不能从根本上消除错误来源;由于错误报警中断产生的条件为错误计数器的值超过96,而总线关闭中断产生的条件为发送错误计数器的值超过255,因此,发送错误计数器引起的错误报警中断可以屏蔽掉总线错误中断。系统可能由于总响应错误报警中断导致系统不能产生总线关闭,使CAN总线一直处于不稳定状态。
为了避免这种情况,只打开总线错误中断使能,这样,在总线发生严重错误的情况下,可马上产生总线错误中断,使错误得到及时处理。总线错误中断的处理是复位该节点,重新初始化CAN控制器,这样可以消除错误,给节点一个很好的初态。由于CAN总线两条传输线之间的误接触,也易造成CAN总线关闭,使节点无法工作,在主程序中查询状态寄存器中当前CAN总线状态,及时复位该节点,使节点正常工作。
同时,为了更方便直观地查看CAN总线的工作状态,设计了一个指示灯,当总线正常地收发信息时,指示灯闪烁,一旦CAN总线关闭,节点不参与总线活动,指示灯不再闪烁(此时指示灯长亮或长灭),当总线错误不能通过复位该节点解决时,可以通过查看指示灯的状态(长亮或长灭),及时地对不工作的节点进行修理维护。
结语
运用CAN总线技术构建智能配电系统,提高了系统的稳定性和实时性,系统价格低廉,安装维护简单,具有良好的升级、扩展能力。该系统已经成功地装配到经贸、股票交易行业的机房中,运行可靠,实现了设计目标。
参考文献
1 饶运涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.20~166
2 Philips Semiconductors, P8xC591, Single-chip 8-bit microcontroller with CAN controller, DATA SHEET, 2000
CAN现场总线智能配电系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)