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,0e8h,0ah,94h,0ch,3ch,

fcb 0dh,0e1h, 0fh,83h,11h,23h,12h,0c0h,14h,5bh,

fcb 15h,0f3h,17h,89h,19h,1eh,1ah,0b1h,1ch,41h,

……

fcb 91h,84h,92h,0afh,93h,0d8h,95h,01h,96h,28h,

fcb 97h,4eh,98h,72h,9ah,0cah

分度表由-210℃开始每间隔10℃作为一个刻度点,每一个刻度点的电阻值扩大100倍后转换为十六进制数即构成上表。考虑到表格的一致性,cu100和cu50热电阻的分度表也从-210℃开始计算。

当得到校正后的ad转换数值后,需要将采样到的电压信号转换为电阻值以便于查表。阻值计算公式如下:

采用mc9s12d64单片机和can接口收发器实现分布式热电阻智能节点设计

3.4 分段线性化查表

得到的对应阻值后,则从第0个刻度点开始比较,如果该采样值大于第0个刻度点,则再与下一个刻度点比较,同时记录小于该采样值的刻度点的个数n,如果采样值小于某一温度刻度点,则温度位于该刻度点b与前一个刻度点a之间,温度线性化在a、b两刻度点之间进行,线性化得到的温度加上a点对应的温度(n×10)即为采样温度。

以pt100热电阻为例,某一通道得到校正后的采样值为$9343,则前8个刻度点均小于$9343,第9个刻度点值大于$9343,记录小于该采样值的刻度点的个数n=101,此时a点(第101个刻度点$92af)对应温度为10×101=1010℃,b点(第9个刻度点$93d8)温度为1020℃,线性化在a、b两点间进行,具体公式为:

[($934-$92af)/($93d8-$92af)]×10=5℃