CAN总线实现工业网络分布式测控系统
1 引言
现场总线技术是当今自动化领域发展的热点,can总线以其独特的设计、低成本、高可靠性、实时性、抗干扰能力强等特点得到了广泛的应用。本文选用can总线设计了分布式热电阻智能节点,利用can总线连接各个网络节点,可以直接与主控卡或上位机通信,组建成工业网络分布式测控系统。
2 热电阻智能节点硬件设计
2.1智能节点整体结构
本热电阻智能节点设有4路输入通道,支持3线制方式,支持热电阻类型有cu50、cu100和pt100,采用freescale mc9s12d64单片机作为微控制器,其内部有一个can通信模块(mscan),符合can2.0a/b标准,所以不需要扩展can通讯控制器。can接口收发器采用pca82c250作为can通信模块和物理传输线路之间的接口。节点通过24位a/d转换器ads1216对组态通道进行采样,由于热电阻的阻值与温度成正比关系,需将已知电流流过该电阻以得到与温度成正比的输出电压。本文使用ads1216的两个8位电流输出idac1和idac2作为恒流源,通过模拟开关max355选通相应的组态通道,然后ads1216对得到的电压信号进行采样并输出至微控制器,经校正后进行标度变换转化成相应的电阻值,查热电阻分度表即可得到所测温度。本节点也可通过rs485接口并严格按照modbus协议进行通信,rs-485收发器采用sn65lbc184。
本热电阻智能节点硬件结构框图如图1所示。
图1 热电阻智能节点硬件结构框图
2.2信号输入端电路与采样电路
信号输入端电路与采样电路原理图如图2和图3所示。
图2 热电阻信号输入端电路
图3 a/样电路
max355差动4通道模拟开关接4路热电阻信号转换电路,图中只画出第一路转换电路,接线方式为三线制,使能端en接高电平,使max355一直有效。a0、a1引脚接至mc9s12d64单片机的pp0和pp1端,用于选通某一路热电阻信号进行转换与测量。当max355选通某一通道后,该通道将与公共端接通,假设选通通道1,200ua恒定电流由no1a和no1b输出流经热电阻产生毫伏级电压信号,此信号在vin1和vin2处被ads1216采样。
ads1216组成4路全差分通道。单片机通过porta与ads1216通信,用于控制ads1216选通某一路模拟量输入通道并进行采样,每一个控制信号均通过光耦合器和两个施密特触发器进行数字隔离,这样做可有效抑制各种噪声干扰,提高传输通道上的信噪比。ads1216采样每一路通道之前均进行偏置与增益自校准。当/drdy变为低电平,标志着数据寄存器中数据已准备好,单片机便从24位数据输出寄存器(dor)读取转换结果。
2.3 can和rs-485通信电路
can和rs-485通信电路原理图如图4所示。
mc9s12d64单片机的can输入与输出引脚(rxcan0和txcan0)分别接至收发器pca82c250的txd和rxd引脚。pt2用来控制数据接收与发送,当pt2为低电平时,接收数据;当pt2为高电平时,发送数据。输入rs通过一电阻接地,使pca82c250工作在斜率控制模式下。sn65lbc184为具有瞬变电压抑制的rs485差分收发器,因此本智能节点可以接入采用canbus或rs485的测控系统,并方便的与各种组态软件进行通信。
图4 can和rs-485通信电路
3 热电阻智能节点软件设计
3.1概述
单片机程序用mc9s12汇编语言编写。在主程序首先完成各寄存器和存储单元的初始化,再通过调用读取地址子程序,得到i/o板卡的地址和can通信波特率,再完成mscan模块和ads1216初始化。随后调用e2prom中组态信息,对每一路组态通道进行信号转换,数字滤波及温度查表计算等,其主程序流程图如图5所示。
图5 热电阻智能节点主程序流程图
由于现场的各种干扰很容易使信号失真,从而使a/d转换结果产生比较大的误差。因此在对信号进行有效的硬件滤波后还需进行软件滤波,本节点采用了数字中值滤波、算术平均、加权滤波等方式。
3.2 节点与上位机的can通信
智能节点与主控卡或上位机的通信主要基于can通信协议来完成,它的优点是能够实时处理数据、在恶劣环境下正常工作、成本低且拥有比较高的带宽。由于上位机内部无can网络适配器,因此需外接rs-232/can转接卡,实现上位机与智能节点的通信。通过节点上的跳线设置节点地址,当上位机发出命令时,节点进入can接收中断,对数据解包放入接收缓冲区并调用数据处理函数。当上位机发出组态命令时,单片机会将收到的组态通道信息和信号类型写入e2prom保存,并回送一帧数据通知上位机组态信息已成功接收。当接收到上传rtd值命令时,单片机会将内存中的4路rtd温度值以多帧形式发送给上位机。
3.3 rtd阻值变换算法
软件设计中关键算法在于rtd电压阻值的转化,刻度点间的线性化及标度变换。以pt100热电阻的温度刻度表为例,
pt100tab:fcb 04h,00h,07h,39h,08h,0e8
- FIR数字滤波器分布式算法的原理及FPGA实现(08-07)
- 基于TMS320F2812的分布式温度采集记录仪的设计与实现(11-29)
- 用CORBA打造Linux的分布式平台(08-14)
- 嵌入式移动数据库与Agent技术原理设计(01-06)
- ARM-WinCE分布式系统平台的时钟同步设计(01-10)
- DSP-LF2407A和CAN总线组成的分布式电机控制系统(02-29)