解读关于CAN总线的数据采集器的设计

电子说

1.2w人已加入

描述

介绍了一种通用CAN节点数据采集器的设计方法,该数据采集器采用12位精度的模数转换器,具有4路模拟量输入和2路输出;其开关量为四路输入和四路输出,并有1个可作为通用CAN总线接口的CAN通信口用于自动控制系统中的数据采集口,  并以CANOPEN协议进行通信。

0 引言

现代工业生产过程一般都是连续或成批的工作,故需要严格的过程控制和安全措施。数据采集系统就是对生产环节的数据进行实时采集,并对数据进行处理,从而实现提供生产过程数据和动态监控等功能。在整个生产过程中,数据采集系统发挥着非常重要的作用。为此,本文给出了一种数据采集器的设计方法,本设计采用CAN(Controller Area Network,控制器局域网络)总线,具有智能程度高、传输效率高、实时性强、适用面广等特点。

1 CAN总线简介

CAN(Controller Area Network)为局域网控制总线,符合国际标准ISO11898。CAN总线最初是由德国的BOSCH公司为汽车的监测、控制系统设计的,属于总线式通讯网络。CAN总线规范了任意两个CAN节点之间的兼容性,包括电气特性及数据解释协议。CAN协议分为二层:物理层和数据链路层。物理层用于决定实际位传送过程中的电气特性。在同一网络中,所有节点的物理层必须保持一致,但可以采用不同方式的物理层。CAN的数据链路层功能则包括帧组织形式、总线仲裁和检错、错误报告及处理、对要发送信息的确认以及确认接收信息并为应用层提供接口等。

其主要特点是:

(1) 能够以多主方式工作,网络上的任意节点均可成为主节点,并可向其它节点传送信息;

(2) 非破坏性总线仲裁和错误界定,总线冲突的解决和出错界定可由控制器自动完成,且能区分暂时和永久性故障并自动关闭故障节点;

(3) CAN节点可被设定为不同的发送优先级。以满足不同的实时要求;

(4) 采用差分驱动,可在高噪声干扰环境下使用;

(5) 通信距离可达lO km(5Kbps),速率可达1Mbps(40m以内)。

2 数据采集器的结构原理

本文设计的数据采集器综合考虑了各种现场需求以及线路的优化等因素。设计时选用了专用元器件,以尽量简化电路,提高电路的可靠性。该数据采集器电路有4路模拟量差分输入(信号范围为0~10 V)和2路输出;开关量则是四路输入和四路输出,并有1个CAN总线通信口;CAN通信采用CANOPEN协议方式。

本数据采集器采用单片微机C8051F005作为控制核心,与CAN控制器SJA1000、CAN驱动器82C250及两片TLP521-4等器件共同组成具有模拟/数字量输入输出的接口电路。将C8051F005的P1口的全部口线同两片TLP521-4的输入或输出连接,以作为开关量的数据接口;P0的全部口线则作为与CAN控制器SA1000接口的地址/数据复用总线;P2口的部分口线用于对CAN控制器SJA1000的控制。该数据采集器的结构如图1所示。

二极管

 

2.1 模拟量采集模块的设计

模拟量的采集是本系统的关键,为了提高数据采集的精度和抗干扰性,模拟量采集模块采用差分形式。其中4路模拟量输入通过模拟多路开关进行分时切换。本系统选用高速模拟多路开关DG529,并共用一个前置电路数据送入C8051F005的A/D转化器进行转换,这种方案可以大大简化电路结构,提高效率。具体的前置电路如图2所示。

二极管

 

该前置电路采取浮动差分形式来提高数据采集的稳定性。先将DG529切换过来的信号送到AD620进行阻抗匹配,之后采用高精度运放OP07并叠加一个1.2 V的电平到信号中间,使之形成浮动差分形式,再经过R7~R10的电阻网络衰减以及运放LM258的缓冲,送到C8051F005的AIN0、AIN1进行相差之后,进行A/D转换。二极管D1~D4可保护单片机的口线。

模拟量的输出则直接用C8051F005的DAC转换器再经运放放大来实现。

2.2 开关量采集模块的设计

开关量的输入采用光耦进行光电隔离,以隔断前后通道的电磁联系,提高抗干扰能力,同时把输入的开关量转化为C8051F005的3.3 V的电平标准。开关量的输出同输入一样仍然采用光电隔离。具体电路如图3所示。

二极管

 

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系统配置更为灵活,相信该系统将更加广泛的应用于工业生产的各个方面。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分