基于CAN总线的数据采集器的设计
2.3 通信模块的结构
本数据采集器通信系统主要由CAN通讯控制器SJA1000、CAN通讯驱动电路82C250和光电隔离部分构成。通信模块负责实现现场总线体系结构的逻辑链路控制(LLC)子层、媒体访问控制(MAC)子层和物理层的功能,完成具体数据的可靠接收和发送。CAN控制器SJA1000与物理总线接口芯片82C250连接。为了保护数据采集器内部的芯片并提高抗干扰能力,在SJA1000与82C250之间加入光耦进行隔离。考虑CAN网络具有较高的传输速率,普通光耦的速度是不够的,所以,本设计选用高速光耦(6N137)作为隔离器件,而且光耦部分电路所采用的两个电源也必须完全隔离,否则光耦也就失去了意义。SJA1000与82C250的电路连接如图4所示。
3 CAN通信的设计
CAN总线的通信采用CANopen协议来实现。CANopen是基于CAN串行通讯的网络系统,CANopen规范覆盖了应用层和通讯协议子集、程序设备的构造、推荐的电缆和接头形式、SI单位和前缀解释等,因而可保证不同厂家CAN控制器在通讯、联接和具体控制以及软件开发方面的一致性,从而给系统的使用和维护带来极大方便,图5是其参考模型。
在CANopen应用层中,设备通讯和应用程序对象将得到交换,所有这些对象均可通过16位索引和8位子索引进行访问,这些对象(COB)将会被映射到一个或更多的已经预定义和配置好的帧中。图6是CAN各协议层的访问方式示意图。通过对象索引,数据对象在应用层进行处理和访问将更加方便和直接。
CAN协议具体包括如下几个方面:
(1) 标识符
采用11位标识符,数据链路层与CAN2.0A相同。
(2) 网络中的主从节点关系
一个CANopen系统必须有一个且仅有一个主节点,但可以有多个从节点(0~126),其中主节点具有启动网络、停止网络、节点检查、网络引导等特殊功能。
(3) PD0协议
在CANopen协议中,CAN的数据信息可被看作是一种过程数据对象PDO (Process Data Ob-ject),它是设备传送处理信息的标准方式。PDO发送端可看作为PDO生产者,而PDO接收端则可比喻成PDO的消费者,这种通讯为一点对多点的方式。
(4) SDO服务
SDO(Services Data Object服务数据对象)可提供一种获得指定节点相关状态数据的手段。当SDO客户端发送一个数据请求后,服务端便发送相应的数据回应,这与原CAN协议中的远程数据帧类似。
(5) 预定义连接集
CANopen规定了预定义的连接集,以简化网络的配置和使用。
(6) 发送和接收PDO
CANopen规定了相应的内存区以用于发送和接受网络上的数据。这相当于c语言中直接对地址进行操作,因而可实现PDO数据的完全透明传送,从而给程序编制带来极大方便。
4 结束语
现场总线技术是自动化控制领域的一次重大变革,本文所设计的系统正是为适应这一变革所做的积极的探索。应用实践证明,基于CAN现场总线的数据采集器不仅可靠性高,而且比通常采用PLC系统配置更为灵活,相信该系统将更加广泛的应用于工业生产的各个方面。
评论