APP下载

基于DeviceNet协议的模拟量模块设计*

2018-01-08傅智河蔡小伟罗玉平

关键词:总线单片机传输

傅智河,蔡小伟 ,罗玉平

(龙岩学院)

基于DeviceNet协议的模拟量模块设计*

傅智河,蔡小伟 ,罗玉平

(龙岩学院)

针对工业上使用的模拟量模块,大都直接采用模拟信号传输,或者使用Modbus通信协议传输,存在传输效率低,在传输距离上也受到了限制.为此设计了一个基于DeviceNet协议的模拟量模块,以STC15F2K60S2作为主控制器,采用独立CAN控制器模块和CAN收发器.设计4~20 mA电流信号的输入与输出电路,通过DeviceNet协议实现电流信号的采集与输出.最后通过CAN分析平台软件对模块的参数进行读写测试,结果表明本设计能够实现预期的功能.

DeviceNet;4~20 mA;模拟量模块

0 引言

在工业应用现场,过程传感器、执行器、阀组等直接转换后在都为电压信号,如将电压信号直接进行长线传输,将易受噪声干扰,且由于传输线的分布电阻会产生电压阵,使用现场仪表电压放大功能带来不便[1].为解决上述问题,4~20 mA的电流信号便在工业现场被大量采用,其电流源内阻无穷大,导线电阻串联于回路中不影响数度,有较强的抗干扰能力[2].但由于4~20mA的电信号在长距离传输时,电流会出现下降,也就是出现衰减,同时在长距离传输时也会受到环境的干扰和影响,这些因素对数据的测量会产生偏差,引起设备的误动或者拒动.目前工业上通讯大部分都是使用Modbus协议进行数据传输,该协议也存在传输速率低,传输容量小并且在传输距离上也受到了限制[3].针对以上问题,提出基于DeviceNet协议[4]的模拟量模块设计方案[5-6].DeviceNet以及CAN协议的基本原理,使用“生产者”与“消费者”通讯模型,DeviceNet发送节点生产网络上的数据,而DeviceNet接收节点则消费网络上的数据.两个或多个设备之间的通信总是符合基于连接的通讯模式,DeviceNet协议为使用物理层为CAN总线的应用层协议,具有较强的抗干扰能力与较强的通信可靠性.总线电源与通信使用同一电缆,其通信速率可设置,相比Modbus通信其通信速率更快,传输容量大,在传输距离上可以根据不同的波特率传输距离也不一样,最远可以达到10 km,是未来工业网络发展的趋势.

1 硬件设计与实现

1.1 系统整体结构设计

支持DeviceNet协议的4~20 mA电流输入与输出传输模拟量模块的硬件结构图如图1所示.整个系统由微控制器、I/V转换电路、V/I转换电路、低通滤波电路、CAN控制器电路、隔离电路、CAN接口电路、电源电路、地址与波特率设置电路组成.该模块作为DeviceNet节点,具有唯一地址,实现节点的模拟电流信号输入与输出.微控制器采用STC15F2K60S2单片机,SJA1000作为独立的CAN控制器[7],TJA1040T作为CAN收发器,二者通过光耦隔离连接.节点数据通过DeviceNet协议传送给本节点,控制单片机输出特定的PWM信号经过转换电路产生4~20 mA的电流输出.利用电流转电压电路将采集电流信号转换成电压信号,电压信号通过单片机内部A/D转换成数字量,并将数据上传至总线.

图1 硬件结构图

1.2 I/V转换电路设计

I/V(电流/电压)转换电路原理图如图2所示.其电路原理图大致可以分为四个环节,第一环节中利用电阻R1将电流转换成电压输入,由于R4、R5、R6和R7相等,由虚短虚断得到式1.即U0=U2-U1,在4 mA电流输入的时得到0.4 V电压,在20 mA电流输入的时得到2V电压;第二部分是调零电路,由于第一部分输入的是4~20 mA电流,其电压不可能为0 V输出,最小有个0.4 V的电压值,那么要想得到0 V的电压,就必须在电位器R3作用下,调节出一个0.4 V的电压值与第一部分相抵消;第三部分就是把第一部分和第二部分得到的电压值相减,使得输出电压值为0 V;第四部分为调满电路,在同向放大器的作用下,根据虚短虚断得到式2.因为在20 mA的电流输入下只能得到2V的电压输出,达不到5 V电压输出的要求,那么此时必须调节电位器R14,使得R14/R13为2.125倍的关系,这样才能满足5 V的电压值输出.

(1)

(2)

图2 I/V转换原理图

1.3 V/I转换电路设计

V/I(电压/电流)转换电路原理图如图3所示.其电路分为四个部分,当输入电压值为0V时,由于要输出4~20 mA的电流,电流最小值为4 mA,那么单靠第一部分的0 V输入不可能得到最小电流值4 mA,所以需要由第二部分电位器R2下产生一个0.2V的电压值,利用第三部分电路将第一部分和第二部分进行叠加,得到一个0.2V的电压值作为输入.又因为放大倍数为二,所以第三部分输出0.4V的电压,在第四部分电路的作用下输出4mA电流.当输入电压值为5V时,由于要输出4~20mA的电流,电流最大值为20mA,假设外接负载为100R,则第四部分的输入电压为2V,此时需要调节第一部分的电位器R1,使得输入的5V电压经过电位器分压后输出0.6V的电压值与第二部分0.4V电压值向叠加得到1V的电压,即将输出的电流限制在20mA以内.第一部分电压输入由单片机内部CCP/PCA模块输出PWM信号.关于PWM产生电压控制信号的实现分析可参考文献[8],为将PWM转换成模拟电压信号,通常还得由一个低通滤波器将信号进行算术平均值处理后取得,其低通滤波器相关参数可参考文献[9],如果要获得更小纹波电压,可使用二阶低通滤波电路、Tschebyscheff滤波电路或Butterworth滤波电路等,如要输出更高精度电压,可将图3中VIN模拟电压信号输入单片机的A/D输入端,根据A/D检测电压值以调整PWM信号.

图3 V/I转换原理图

1.4 CAN控制与接口电路设计

由于STC15系列单片机无集成CAN控制器,所以本设计采用外部独立的CAN控制器SJA1000,单片机对SJA1000的操作与单片机外部扩展RAM芯片一样;单片机P0口为地址与数据总线接口,与SJA1000的AD0~AD7相连接,其ALE、/WR、/RD、P2.4分别连接SJA1000的ALE、/WR、/RD与CS端,其外部中断INT0与SJA1000的中断信号端/INT相连接.SJA1000的TX0与RX0分别与光耦隔离接口电路(如图4所示)中的CAN_TX与CAN_RX连接.CAN光耦隔离接口电路输入与输出采用两个高速光耦6N137隔离,采用TJA1040T作为CAN收发器,TJA1040T具有斜率控制功能,以降低电磁辐射,并且在通讯过程传输速率快,可达到1Mbit/s,本身还具备过流保护,防止发送输出级对电源或负载短路,在系统还没有上电节点不受到总线信号的干扰.TJA1040T在正常工作模式时,收发器通过CANH和CANL发送和接受数据,在总线无数据传输时,CANH和CANL都处于关闭状态,只使用一个功耗相对比较低的收发器查看总线状态.图4中R5与R6用于保护接口芯片,以防止在总线电压接错时不至于烧毁接口芯片;U4为CAN专用瞬态抑制二极管PESD1CAN,以抑制瞬态电压从而保护CAN总线.CAN-VCC与CAN-GND为经过B0505S隔离电源转换后的电源与地.

图4 CAN光耦隔离接口电路

2 DeviceNet接口软件设计

软件部分设计主要包括SJA1000控制器、PWM输出、A/D输入初始化与DeviceNet应用层程序编写.SJA1000控制器主要根据包含的两个总线定时寄存器进行配置,总线定时寄存器0设置波特率和重同步跳转宽度,总线定时器1用于定义每个位的周期长度、采样点的位置以及采样的次数.PWM设计主要完成单片机内部比较控制寄存器CMPCR1与CMPCR2,具体设计可参考STC15单片机数据手册.STC15系列单片机的A/D转换口在P1口,作为A/D使用时需要将P1ASF特殊功能寄存器的位作相应置位,具体设计也可参考STC15单片机数据手册.DeviceNet支持位选通、轮询、状改变等多种数据触发方式,本设计中同时使用了轮询与位选通数据触发试,分别建立了连接实例.DeviceNet协议实现的关键在于其对象模型的建立,本从节点实现了标识对象、DeviceNet对象、联接对象.DeviceNet通讯过程可以划分为三个阶段,第一阶段主要重复MAC ID检查,保证地址的唯一性;第二阶段主要是主从站之间的建立连接;第三阶段主要是报文传输,获取从站的相关信息和配置从站的相关参数.本设计节点是按照预定义主从连接组的规范设计的,一旦网络上出现数据,节点立刻捕获该信息并开始判断信息类型,然后依据DeviceNet协议对数据进行处理[10].整个软件主流程图如图5所示.

图5 主程序流程图

3 测试结果

根据设计方法制作了样机,通过CAN总线分析仪进行测试.如发送报文标识符=10 000010 101(10为组二信息,000010为目的MAC ID=02,101为主站I/O轮询命令),数据=00(00通过PWM后得到一个4.72V的电压输出经过4~20mA电流输出电路,将得到的电流值给4~20mA输入电路,最终把输出的电压值传回主站),其测试结果如图6所示.通过观察响应报文可知,接收到的标识符=01 111 000010(01为组二信息,000010为源MAC ID=02),数据=BD 03 00 00 00 00 00 (BD为数据的低八位,03为数据的高八位,将十六进制03BD化成十进制为957,(957/1024)*5=4.67V),与之前的4.92V对比有一定的误差.

图6 I/O报文传输测试结果

4 结束语

该文利用单片机作为控制器,设计了I/V转换电路、V/I转换电路、CAN控制与接口电路等,并编程实现了DeviceNet协议,最终进行相关测试,验证了本方案的可行性,达到了预期效果.测试结果电压较电源电压低,是由于对单片机进行5V供电,其I/O口并不通完全输出满电压,且与选有的运放未选用满幅运放,从而导致误差.后期可利用降低电压输入量程转换方式与使用满幅运放改进电路.

[1] 陈兴文,于树清,刘燕. 仪用标准直流信号源设计与实现[J]. 微计算机信息,2005,21(9):137-138.

[2] 孙刚,郑文刚,申长军,等.基于MODBUS协议的4~20mA电流输出智能模块[J]. 仪表技术与传感器,2010(3):78-79,82.

[3] 黄育和,程韬波. 基于Modbus RTU协议的数字智能模块的设计[J]. 机电工程技术,2007,36(5):38-40,58,106.

[4] 闫晓,孙韬,汪晋宽. DeviceNet现场总线数据的分析[J]. 仪器仪表学报,2004,25(3):537-540.

[5] 奚培锋. 一种DeviceNet模拟量远程I/O模块的设计[J]. 低压电器,2007(1):30-32,35.

[6] 陈杨杨,陈梅,储昭碧. CAN总线和DeviceNet通信协议在单片机系统中的应用[J]. 仪器仪表学报,2005,26(2):299-301.

[7] 牛跃听,周立功,等.CAN总线应用层协议实例解析[M]. 北京航空航天大学出版社,2014.

[8] 夏云生,吴胜继,徐桥松. 工业智能仪表标准电流信号输出电路设计[J]. 电子测试,2011(9):74-76.

[9] Nobert Rauch,施林生. 将单片机PWM信号变送成工业标准电流输出4-20mA[J]. 传感器世界,2006,12(10):22-25,29.

[10] 贾超,陈在平,张建峰. 基于多种数据触发方式的DeviceNet从节点通信技术研究[J]. 仪器仪表学报,2009,30(2):324-329.

DesignofAnalogModuleBasedonDeviceNetProtocol

Fu Zhihe,Cai Xiaowei,Luo Yuping

(Longyan University)

Most of the analog modules used in industry are transmitted directly by analog signal, or transmitted by Modbus protocol, with low transmission efficiency and limited transmission distance. The module of a DeviceNet protocol is designed to be the main controller based on STC15F2K60S2. Using independent CAN controller module and CAN transceiver, the input and output circuit of the 4~20 mA current signal are designed,and the current signals are collected and output through the DeviceNet protocol. Finally, the module parameters are red and writen tests by CAN analysis software, The results show that the design can achieve the desired function.

DeviceNet; 4~20 mA; Analog module

于达)

TP271

A

1000-5617(2017)04-0026-05

2017-06-29

*福建省教育厅项目(JA15486);龙岩市科技计划项目(2014LY61);全国大学生创新创业训练计划项目(201711312038)

猜你喜欢

总线单片机传输
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
关于无线电力传输的探究
一种基于CAN总线的误码测试方法
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
CAN总线并发通信时下位机应用软件设计