机车智能NTC采集板卡的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机车智能NTC采集板卡的设计
发表时间:2020-10-21T02:57:58.348Z 来源:《科技新时代》2020年7期作者:张慧斌[导读] 为了采集机车NTC模拟量信号,开发了一种以STM32F10x单片机[1]为控制核心的智能NTC采集板卡[2]。
(中国铁路呼和浩特铁路局集团有限公司包西机务段)摘要:为了采集机车NTC模拟量信号,开发了一种以STM32F10x单片机[1]为控制核心的智能NTC采集板卡[2]。
内部使用高精度电阻参考源,并充分使用D/AC的转换范围,提高信号转换精度。
智能板卡将码值直接转换成温度值,通过CAN总线与CPU板通信,方便CPU板直接读取温度值。
板卡已在机车空调控制器中得到应用。
关键词:NTC采集板卡;单片机;CAN通信中图分类号:TP23 文献标志码:A 0 引言
NTC采集是机车空调控制器的一个重要功能,用于采集机车传感器信号,用于机车控制。
为了扩展对输入信号的适应性,减小电路中电器参数不一致引起温漂导致采集精度降低,一般方法是对电路进行调整与补偿,但是这样一方面增加了调试的难度,另一方面很难从根本上解决这个问题。
本文实现的智能模拟量采集板卡通过软硬件设计,实现校准功能,动态矫正偏差。
本智能模拟量采集板的主要技术参数为: 8路采样通道;
输入信号为NTC热敏电阻;
可以实现自校正;
采样分辨率为12位;
采样频率为50ksps;
支持CAN总线协议。
1 NTC采集板的硬件设计
本板卡为的3U插件板,通过背板F48连接器与CPU通信、供电、确定板卡地址ADS,可扩展性强。
板卡有3个主要单元电路组成。
外部的NTC信号由F48连接器进入板卡,经过采样调理电路,A/D转换电路、经驱动隔离电路,进入CPU。
CPU的片选信号、SPI时钟信号、芯片使能信号等,经隔离电路输出[3]。
1)采样调理电路
模拟信号进入后,经采样电路,经ADG619模拟开关[4]后放大2倍,经过低通滤波器之后进行A/D采样。
为了提高NTC采集的精度,采用高精度的4.02KΩ电阻作为基准电阻,记为Rv。
当ADG619的IN引脚输入0时,S1引脚输入,采集的是Rv的电压值对应的码值M1。
ADG619的IN引脚输入1时,S2引脚输入,采集的是Rv+RNTC的电压值对应的码值M2。
所以 RNTC = (M2-M1)×4020 / M1 Ω (1) 2)板卡地址ADS采集电路。
控制器中存在多种板卡,为了区分各种板卡,根据协议对板卡进行编码,智能模拟量采集板上电之后,通过CPU的PC0-PC5端口读取背板编码,确定自己的ADS。
在与CPU的初始化过程中,将自己的ADS与板卡类型通知给CPU板。
这样就可以在任意插槽,插任意板卡。
3)A/DC及SPI片选电路。
MCP3201[5]是带SPI串行接口的12位AD转换器,片选信号由CPU的PE8-PE10经译码器提供。
MCP3201在片选信号变低后的第一个上升沿开始采样,在第二个时钟的下降沿结束,然后输出一个低电平空位。
接下来的12个时钟在下降沿时将以MSB的格式输出转换结果。
当所有12个数据均发送完毕后,若片选信号仍为低,它将以首发LSB的格式输出转换结果。
2 智能模拟量采集板卡软件设计
板卡软件是在KeilC51环境下用C语言编写的,板卡主函数主要实现初始化、NTC信号采集、滤波、转换,是整个系统的主流程。
单片机在主函数中循环,当收到CAN中断后执行中断函数,完成相应功能。
NTC信号采集及校正。
将模拟开关ADG619的6引脚置低,则采集S1引脚,再将6引脚置高,则采集S2引脚,然后将(V2-V1)作为采集到的数据,以高精度的电阻为基准,可有效地提高精度。
由式(1)可知,M1应不为0。
根据NTC阻温特性表,最大阻值为170KΩ,对应温度为-40摄氏度,在这种状况下,
M1= 2.5×4.02/(20+170+4.02) ×4096/ Vref =84,
其中Vref =2.5V,当A/D输入2.5V时,码值为4096。
因此在接入NTC电阻时,M1 最小值为84。
因此设置条件当M1 ≥10时,采用式(1)进行计算,否则 RNTC人为设为0。
这样即能满足式(1),又可以有效地消除零飘。
模拟量采集采用外部SPI的方式,STM32F10x的SPI接口允许与外部设备以全/半双工、同步、串行方式通信。
本文将其配置为全双工、主模式、16位数据长度,片选软件控制。
数据在第二个上升沿采样,高位先传。
CPU读到采样值之后使用软件滤波。
采用移动窗口的方式,读取十次采样值,去掉最大值和最小值,然后求平均值。
在刚上电的时刻,未读满十次采样值的情况下,则直接使用当次采样值。
这个时刻非常短暂,可以忽略不计。
实际的电阻值由式(1)的值滤波后得到。
然后根据NTC阻温特性表,用二分法进行查表,求出对应温度。
如果电阻值在某一温度Rmax和Rmin之间,则取整数温度值;如果没有在Rmax和Rmin之间的时候,则使用Rnor计算保留一位小数;如果超过最大值或小于最小值时,则按最大值或最小值处理。
智能模拟量采集板卡与CPU板使用CAN通信。
CAN通信采取中断的方式实现,在中断中实现CAN协议,以保证CAN通信的实时性。
3 测试结果
本NTC采集板可以完成高速度、高精度的8通道12位模数转换,通过采样电路的设计,能够实现提高采样精度,消除零漂。
另外本板卡在指令处理上采用了成熟的CAN总线协议,增加了通信的稳定性。
4 结论
本文设计基于STM32F10x的NTC智能采集板卡,可以应用于机车空调控制器等设备使用,能够采集NTC输入,由测量结果可以看出,电阻测量值的相对误差多在1%以内,能够满足机车使用的要求。
参考文献
[1] STM32开发指南-库函数版本_V1.3[M]
[2] 丁月林. 基于STM32 的低功耗温湿度采集器实现[J]. 软件,2015,36(5):84-88
[3] 焦华. 基础编程的思考方法[J]. 软件,2018,39(3):57-62
[4] ADG619数据手册[M]
[5] MCP3201数据手册[M]。