基于CAN总线的高压开关柜状态监测单元通讯模块
6.CAN控制器异常情况的处理
SJA1000控制器在长期工作中,由于内在及外在的因素不可避免的会产生错误,从而使控制器不能正常工作。为了控制器能够长期正常工作,使控制器从错误中恢复过来。控制器提供了相应的寄存器来进行错误的分析和诊断,这包括接收(发送)错误计数器、错误报警限制寄存器、错误代码捕捉寄存器、仲裁丢失捕捉寄存器以及状态寄存器的几位。同时中断寄存器的几位用来报告产生的错误,由程序对错误进行处理。这些寄存器具体的定义可参阅相关文献。
在实际应用时主要有两种从错误状态恢复到正常工作状态的方法。
(1)有错误发生时,在中断服务程序里根据中断寄存器(中断方式,中断使能寄存器除唤醒和接收中断外均打开)的各位的状态,再结合相应的寄存器即可以进行分析和诊断了。例如出现应答通道故障时则会产生总线错误中断,检查错误代码捕捉寄存器,就可知道是产生了应答通道故障。该方法的优点是知道错误具体是什么而采取对应的措施,缺点是编程比较麻烦,对协议和控制器都要十分熟悉。
(2)控制器一有错误发生就重新初始化(中断方式,中断使能寄存器除唤醒和接收中断外均打开),让控制器重新正常运行,该方法优点是简单易行,缺点是没有考虑到错误发生的原因,不能作进一步的分析和诊断。
为了简化设计,笔者采取的是后一种方案。
7.结语
(1)CAN作为一种有效支持分布式通信的现场总线,具有高的可靠性和实时性,同时又有简单、易用以及性价比高的优点,因此选择CAN作为监测单元通讯模块的解决方案。
(2)在研究分析CAN协议的基础上,根据实际情况对CAN的标识符作了定义,且制定了应用层的协议,并给出了软硬件的设计思路以及异常情况的处理方法。
(3)在实验室的调试运行表明,采用CAN总线作为高压开关柜监测单元通讯模块的解决方案取得了良好的效果。
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)