新闻中心

EEPW首页>测试测量>设计应用> 基于CAN总线的温度检测设计

基于CAN总线的温度检测设计

作者: 时间:2012-07-06 来源:网络 收藏

为了避免因干扰而产生误动作,软件采取了一些冗余和容错处理,在A/D模块处理采样数据时,采用了软件滤波措施,以滤除电路中可能会出现的尖峰干扰。

方法为连续采样五次,通过比较判断,去掉其中的最大值和最小值,其余三次的值求和后取平均值,把平均值作为CPU用来划分温度范围的有效数据。数据包的解析和封装都遵循CAN的应用层协议,主程序流程如图4所示。


图4主程序流程


当CPU检测到温度出现异常,会根据温度异常范围向上位机发出温度异常警报,这是该节点CPU唯一主动向上位机发出的数据帧。该节点的温度相关数据存放在缓冲区,在没有收到上位机数据请求的时候,该缓冲区的数据会不断的被新的数据刷新,以保证该节点数据的实时性,中断流程如图5所示。


图5CAN接收中断流程

采样值的量化方法

采样值的准确量化是温控电路正常工作的关键,这里采用以下换算办法来进行量化。设经过信号调理后的电压为Ui,则-10V
Ui=-10V+ΔT•Kt=-10V+55℃×0.111V/℃=-3.895V。

Ui转换为数字量后,每个数字量对应电压值为19.531mV,用Ks表示。可以求得数字量变化和温度变化之间的对应关系:Kt/Ks=(0.111V/℃)/(19.531mV/数字量)=5.683数字量/℃。

其他温度对应的数字量也可以通过以上方法算出。

SPI接口通信

PIC16F87x通过SPI接口和MCP2510进行数据交换。

MCP2510设计可与许多微控制器的串行外设接口(SPI)直接相连。外部数据和命令通过SI引脚传送到器件中,而数据在SCK时钟信号的上升沿传送进去。



评论


相关推荐

技术专区

关闭