找回密码
 注册
关于网站域名变更的通知
查看: 321|回复: 1
打印 上一主题 下一主题

基于CAN总线的分布式热电阻智能节点的设计

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-10 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

1 引言3 }0 _# n; d! V- u- q8 A" Q

+ v6 s3 O$ G* }/ i$ |2 I现场总线技术是当今自动化领域发展的热点,德国bosch公司的can是为解决汽车内部的复杂硬信号接线提出的,而其应用范围正逐渐向过程控制、机器人、数控机床、医疗器械及传感器等领域发展。can总线以其独特的设计、低成本、高可靠性、实时性、抗干扰能力强等特点得到了广泛的应用。本文选用can总线设计了分布式热电阻智能节点,利用can总线连接各个网络节点,可以直接与主控卡或上位机通信,组建成工业网络分布式测控系统。

2 热电阻智能节点硬件设计
4 L" G/ W" ~: b/ l& K7 A; E0 s+ {% i3 L$ W# w5 ?/ X% {
2.1智能节点整体结构% B, {6 D: u  P+ l) ?: r
; U- l- G) }- U$ X" W$ w
热电阻智能节点设有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。: ?! Q0 ?* h1 F2 z7 p/ f
: E8 H0 {7 W8 i1 v8 b
本热电阻智能节点硬件结构框图如图1所示。

图1 热电阻智能节点硬件结构框图
# J, ^0 k0 I' P- ^& K, [
# Q4 P5 u  h+ o, W8 r$ s2.2信号输入端电路与采样电路
3 I; s3 c+ K9 }* l8 {* x1 G3 E9 [
4 U, o0 [" ?& A信号输入端电路与采样电路原理图如图2和图3所示。

图2 热电阻信号输入端电路

图3 a/样电路' d: z; M; R* f
8 F  e, T' @4 R# j9 ?: w( \
max355差动4通道模拟开关接4路热电阻信号转换电路,图中只画出第一路转换电路,接线方式为三线制,使能端en接高电平,使max355一直有效。a0、a1引脚接至mc9s12d64单片机的pp0和pp1端,用于选通某一路热电阻信号进行转换与测量。当max355选通某一通道后,该通道将与公共端接通,假设选通通道1,200ua恒定电流由no1a和no1b输出流经热电阻产生毫伏级电压信号,此信号在vin1和vin2处被ads1216采样。9 A$ f1 C, U, X2 d: a% t
7 z* P; g4 @# j7 x% n4 x/ e! z
ads1216组成4路全差分通道。单片机通过porta与ads1216通信,用于控制ads1216选通某一路模拟量输入通道并进行采样,每一个控制信号均通过光耦合器和两个施密特触发器进行数字隔离,这样做可有效抑制各种噪声干扰,提高传输通道上的信噪比。ads1216采样每一路通道之前均进行偏置与增益自校准。当/drdy变为低电平,标志着数据寄存器中数据已准备好,单片机便从24位数据输出寄存器(dor)读取转换结果。9 h7 c' n5 s1 [

! D6 L) h3 X" F1 t3 R, i# |& d% Y2.3 can和rs-485通信电路
; g5 B+ Y& {; b
. P" `/ O$ k4 r# w/ _can和rs-485通信电路原理图如图4所示。! {) E3 Y5 r  C/ J. z7 c

$ B3 b8 q2 z' emc9s12d64单片机的can输入与输出引脚(rxcan0和txcan0)分别接至收发器pca82c250的txd和rxd引脚。pt2用来控制数据接收与发送,当pt2为低电平时,接收数据;当pt2为高电平时,发送数据。输入rs通过一电阻接地,使pca82c250工作在斜率控制模式下。sn65lbc184为具有瞬变电压抑制的rs485差分收发器,因此本智能节点可以接入采用canbus或rs485的测控系统,并方便的与各种组态软件进行通信。

图4 can和rs-485通信电路
, U3 Z) s2 x. X! N) P; J
. X2 j/ K; x9 z; F) A7 ?3 热电阻智能节点软件设计; e2 _' |1 \6 A6 T& ~
- o3 K6 O4 R/ \4 _. q
3.1概述
( I. D/ ^3 l' l+ j( O. d( r0 f1 L9 e: }! }& q
单片机程序用mc9s12汇编语言编写。在主程序首先完成各寄存器和存储单元的初始化,再通过调用读取地址子程序,得到i/o板卡的地址和can通信波特率,再完成mscan模块和ads1216初始化。随后调用e2prom中组态信息,对每一路组态通道进行信号转换,数字滤波及温度查表计算等,其主程序流程图如图5所示。

图5 热电阻智能节点主程序流程图( ]; t: \* P5 Z+ Z& @: a3 @, f
3 ]- x% i" {" x0 Y; X( H
由于现场的各种干扰很容易使信号失真,从而使a/d转换结果产生比较大的误差。因此在对信号进行有效的硬件滤波后还需进行软件滤波,本节点采用了数字中值滤波、算术平均、加权滤波等方式。


: l9 L( q! w$ F2 m3.2 节点与上位机的can通信
6 R1 S0 [( i, ^# ]0 b# u4 y5 A- `
& H2 k: b1 D% D: W智能节点与主控卡或上位机的通信主要基于can通信协议来完成,它的优点是能够实时处理数据、在恶劣环境下正常工作、成本低且拥有比较高的带宽。由于上位机内部无can网络适配器,因此需外接rs-232/can转接卡,实现上位机与智能节点的通信。通过节点上的跳线设置节点地址,当上位机发出命令时,节点进入can接收中断,对数据解包放入接收缓冲区并调用数据处理函数。当上位机发出组态命令时,单片机会将收到的组态通道信息和信号类型写入e2prom保存,并回送一帧数据通知上位机组态信息已成功接收。当接收到上传rtd值命令时,单片机会将内存中的4路rtd温度值以多帧形式发送给上位机。/ T5 ?9 v  J3 Z

& e7 j" V- p6 ?. I/ Y3.3 rtd阻值变换算法
0 H- f+ m- F, f& ?! H$ ~4 K
3 e6 r5 y! y+ b7 v$ y% |软件设计中关键算法在于rtd电压阻值的转化,刻度点间的线性化及标度变换。以pt100热电阻的温度刻度表为例,
# D# ]) }3 T! _; x# T; l+ k! W& y: B  B
( ?# {1 T% E3 r# h1 a# z! I+ B% b9 Xpt100tab:fcb 04h,00h,07h,39h,08h,0e8h,0ah,94h,0ch,3ch,' T% v' L3 l: L$ W0 v" N0 ^

4 |9 ^- i1 w2 \8 Z& v% ~fcb 0dh,0e1h, 0fh,83h,11h,23h,12h,0c0h,14h,5bh,8 h0 p9 C  a* Y, Z9 y9 O/ G5 W; O+ R

9 {8 S/ C* _1 r; h- J9 {  jfcb 15h,0f3h,17h,89h,19h,1eh,1ah,0b1h,1ch,41h,
' ^" A' S2 l' [
0 i- t% t" f" x% D- o, f……
% y3 g- H) K- H* V2 V2 ?3 v( B
* J# Y# u) w! Jfcb 91h,84h,92h,0afh,93h,0d8h,95h,01h,96h,28h,
+ C: V) |0 w7 S: M, F% T6 J7 b
5 m4 C. a/ q- [* n6 I  [  }6 f0 j# kfcb 97h,4eh,98h,72h,9ah,0cah
. f7 J9 `; B1 D$ O3 a+ Z' {( `. j8 ?  X
分度表由-210℃开始每间隔10℃作为一个刻度点,每一个刻度点的电阻值扩大100倍后转换为十六进制数即构成上表。考虑到表格的一致性,cu100和cu50热电阻的分度表也从-210℃开始计算。$ I9 M( b+ W) H9 ^( }& G9 s

# I: A6 A1 C. b8 J0 P$ B3 H当得到校正后的ad转换数值后,需要将采样到的电压信号转换为电阻值以便于查表。阻值计算公式如下:

r即为实际热电阻阻值,在这里将其扩大100倍以便于查表。
  O/ |$ V, E( s9 Q4 ]9 U# I' ~% |9 {  ?" T9 p$ E/ p7 _
3.4 分段线性化查表
' ~$ A$ j( D  x7 w% V6 S; X  \
( f- }5 d- \8 v, R5 P3 N& o得到的对应阻值后,则从第0个刻度点开始比较,如果该采样值大于第0个刻度点,则再与下一个刻度点比较,同时记录小于该采样值的刻度点的个数n,如果采样值小于某一温度刻度点,则温度位于该刻度点b与前一个刻度点a之间,温度线性化在a、b两刻度点之间进行,线性化得到的温度加上a点对应的温度(n×10)即为采样温度。
4 y( `' m9 Z+ A& i/ D
8 d; t% Y7 G3 m3 n7 Y1 y4 [以pt100热电阻为例,某一通道得到校正后的采样值为$9343,则前8个刻度点均小于$9343,第9个刻度点值大于$9343,记录小于该采样值的刻度点的个数n=101,此时a点(第101个刻度点$92af)对应温度为10×101=1010℃,b点(第9个刻度点$93d8)温度为1020℃,线性化在a、b两点间进行,具体公式为:
$ p4 m# b& E1 q- o4 p. H, b$ A1 F6 v# b$ f) X  y, r
[($934-$92af)/($93d8-$92af)]×10=5℃
0 w' s( K2 j* j  \2 q! [- V
" R/ \+ y- ]6 ~0 P% U7 B所以$9343对应的温度为:
6 u5 ]. A/ u9 p3 Z, [
5 n$ B9 P+ X, l: R8 ba点(第101个刻度点)对应温度1010℃+线性化温度5℃-210℃=805℃
% u/ D2 |0 @1 [3 G( m1 T3 V$ n" F9 {
其中,各表均以-210℃作为起始,故计算温度时应减去210℃。

4 结束语
, O% n5 y9 U& B6 i: h5 X0 Q" F1 Q/ F# m5 W) R4 j
本智能测控节点主要完成对现场热电阻信号进行采集和处理。在实验室条件下,利用电阻计代替现场的热电阻信号,经过反复测试,温度测量值均正确,并且误差在±1%以内。另外在监控程序的控制下,节点能够有效配合上位机完成系统的组态、信号校正和上传等功能,具有可靠、实时、灵活等特点。


, o* m8 V  h4 |  m5 j8 B8 D0 Z" {" Q8 }- _' y

评分

参与人数 1威望 +1 收起 理由
CE_Manager + 1 支持!

查看全部评分

该用户从未签到

2#
发表于 2020-4-19 22:41 | 只看该作者
can总线以其独特的设计、低成本、高可靠性、实时性、抗干扰能力强等特点得到了广泛的应用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 15:56 , Processed in 0.125000 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表