摘要 CAN总线作为一种工业界的流行总线广泛应于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等各个行业中,它是一种多主机局域网。本文通过CAN控制器SJA1000完成CAN接口电路原理图,使得对CAN总线有一个全面的认识,从而更好地指导现场的应用。
关键词 CAN总线;SJA1000;调试
中图分类号 TP273 文献标识码 A 文章编号 1673-9671-(2012)101-0168-02
CAN总线具有实时性强、可靠性高、通信速率快、结构简单、互操作性好、总线协议具有完善的错误处理机制、灵活性高和价格低廉等特点。
1)CAN总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,通信灵活。
2)CAN总线具有点对点、一点对多点及全局广播传送数据的功能。
3)CAN总线上每帧有效字节数最多为8个,并有CRC及其他校验措施,数据出错率极低。
4)CAN总线只有两根导线,系统扩充时,可直接将新节点挂在总线上即可,因此走线少,系统扩充容易,改型灵活。
5)CAN总线传输速度快,在传输距离小于40 m时,最大传输速率可达1 Mb/s。
6)CAN总线上的节点数主要取决于总线驱动电路,在CAN2.0B标准中,其报文标识符几乎不受限制。
1 帧格式介绍
CAN总线帧结构如图1所示。
1)数据帧:数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC、应答场、帧结束。
2)远程帧:远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、CRC、应答场、帧结束。
3)错误帧:错误帧由两个不同的场组成。第一个场是错误标志,用做为不同站提供错误标志的叠加;第二个场是错误界
定符。
4)超载帧:超载帧包括两个位场,超载标志和超载界定符。
3 CAN总线硬件调试及软件编程
在软硬件联调的时候,必须首先要确保硬件是否工作正常。硬件正常是整个调试工作的基础,在进行软件调试之前首先需要仔细检查硬件连接。保证每一个连接是正确的,没有虚焊,而在所有连接中CPU与CAN控制器的连接又是最重要的。故采用软件方法对CAN控制器与CPU的连接接口进行了检测测试。检测步骤如下:
1)CAN节点上电复位后,检测SJA1000的复位管脚电平应为高电平,反之说明SJA1000的复位电路不正常。
2)向SJA1000的测试寄存器写入AAH,再读SJA1000的测试寄存器,结果应该是AAH,如果不是,说明数据线,地址线,控制线的连接有问题。
3)向SJA1000的测试寄存器写入55H,再读SJA1000的测试寄存器,结果应该是55H,如果不是,说明数据线,地址线,控制线的连接有问题。
4)在CAN总线驱动器的总线端接上负载电阻120欧姆,软件强制SAJ1000进入工作模式,看其是否真正进入工作模式。若已进入工作模式,说明CAN控制器与CPU连接正常。
在编写CAN总线通讯程序时,主要编写函数由初始化函数,发送函数和接收函数组成。 其中发送函数一般写为主动发送函数,接收函数一般采用中断接收。
4 结论
相比232,485等总线,CAN总线具有实时性,可靠性高的优点,传输距离最远可达10 km,可靠的错误检测与处理机制,完善的协议,网络调试容易。因此非常适合应用于工业中现场情况复杂的区域。
参考文献
[1]邬宽明.CAN总线原理与应用系统设计[M].北京:航空航天大学出版社,2002.
[2]李正军.现场总线与工业以太网及其应用系统的设计[M].北京:人民邮电出版社,2006.
[3]Philips Conductors.SJA1000 - Stand-alone CAN controller. NXP Semiconductors.2000,6.
[4]吴军,李晓龙.CAN控制网络实时性能分析与测量[J].工业控制计算机,2004,17(10):21-23.
推荐访问:总线