基于CAN总线的温度检测节点设计
外围设备电路为PIC16F87x最小系统运行所需要的必要外设。PIC16F87x通过SPI总线与MCP2510进行数据交换,完成CAN总线数据包的发送和接收,其接口电路如图3所示。
图3 PIC16F877与MCP2510的接口电路
其中,SCK为SPI总线时钟,PIC16F87x模块的SPI接口接MCP2510的SI、SO、SCK,RA4与RA1分别控制MCP2510的芯片复位和片选。INT接受MCP2510的中断请求。
系统软件设计
1系统软件流程
为了避免因干扰而产生误动作,软件采取了一些冗余和容错处理,在A/D模块处理采样数据时,采用了软件滤波措施,以滤除电路中可能会出现的尖峰干扰。
方法为连续采样五次,通过比较判断,去掉其中的最大值和最小值, 其余三次的值求和后取平均值,把平均值作为CPU用来划分温度范围的有效数据。数据包的解析和封装都遵循CAN的应用层协议,主程序流程如图4所示。
图4 主程序流程
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码