1 引言
CAN总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独特的设计和适宜的价格,而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。
目前CAN系统使用较多的是独立CAN控制器,利用单片机的并口控制CAN控制器,除了8条数据线外,还需要几条控制线。采取这样的设计不但占用了单片机的引脚,而且增加了电路板的面积。同时www.cechina.cn,由于采用了并行通讯,降低了系统的可靠性控制工程网版权所有,因此,采取系统内部集成CAN控制器的单片机势在必行。
本文已Cygnal公司的内部集成CAN控制器的C8051F040单片机为基础,介绍了CAN总线的通讯接口的具体设计及其应用。由于采用了集成CAN控制器的单片机,大大简化了电路,同时也提高了系统的可靠性。
2 C8051F040集成
的CAN控制器
C8051040内部集成CAN控制器,他兼容CAN技术规范2.0A和2.0B主要由CAN内核、消息RAM(独立于CIP-51的RAM)、消息处理单元和控制寄存器组成,图1所示是C8051F040的内部的CAN总线结构图。
图1中,CAN内核由CAN协议控制器和负责消息收发的串行/并行转换RX/TX移位寄存器组成,消息RAM用于存储消息目标和每个目标的仲裁掩码。这种CAN处理器有32个随意配置为发送和接收的消息目标,并且每一个消息目标都有他自己的识别掩码,所有的数据传输和接收滤波都是由CAN控制器完成的,而不是由CIP-51来完成。CAN内部寄存器中存储了所有CAN的控制和配置信息,其中包括控制寄存器、状态寄存器、设置波特率的位定时寄存器,测试寄存器、错误计数器和消息接口寄存器。通常CAN内核不能直接访问消息RAM,而必须通过接口寄存器IF1或IF2来访问。另外,CIP51的SFR并不不能直接访问CAN内部寄存器的所有单元,其配置CAN、消息目标、读取CAN状态以及获取接收数据、传递发送数据都由SFR中的6个特殊寄存器来完成,其中CAN0CN,CAN0TST和CAN0STA三个寄存器可直接获取或修改CAN控制器中对应的寄存器,而CAN0DATH,CAN0ATL,CAN0ADR三个寄存器主要用来访问修改其他不能直接访问的CAN内部寄存器,其中CAN0ADR用来指出要访问寄存器的地址,CA0DATH,CAN0DATL这时就相当于要访问的16位寄存器的高低字节的映射寄存器,而对他们的读写则相当于所指向寄存器的读写。
图2给出了CIP-51如何访问CAN中控制寄存器和每个消息的路径图。消息处理单元用于根据寄存器中的消息来控制CAN内核中移位寄存器和消息RAM之间的数据传递控制工程网版权所有,同时www.cechina.cn,他还可用来管理中断的产生。
3 智能节点通讯部分的硬件设计
C8051F040中内置CAN总线协议控制器www.cechina.cn,只要外接总线驱动芯片和适当的抗干扰电路就可方便地建立一个实用的CAN总线智能测控节点。本文采用PHILIP公司的TJA1050T CAN总线驱动器,硬件原理图如图3所示。
为了增强CAN总线节点的抗干扰能力,可以采取以下措施:
(1)F040的TX0和RX0并不是直接与TJA1050T的TXD和RXD相连,而是通过高速光耦6N137后与TJA1050T相连www.cechina.cn,这就很好地实现了总线上各CAN节点间的电气隔离,不过应该特别说明的一点是光耦部分电路采用的两个电源VA和VB必须完全隔离,否则采用光耦也就失去了意义。这些部分虽然增加了节点的复杂性,但是却提高了节点的稳定性和安全性。
(2)TJA1050T的CANH和CANL引脚各自通过1个5Ω的电阻与CAN总线相连,电阻可起到一定的限流作用,保护TJA1050T免受过流的冲击。
(3)CANH和CANL与地之间并联2个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的作用。