一种智能模拟量采集板卡的设计
2019-01-23张姣姣
张姣姣,王 铭,刘 耀,朱 琳
一种智能模拟量采集板卡的设计
张姣姣,王 铭,刘 耀,朱 琳
(中车大连机车研究所有限公司,辽宁 大连 116023)
为了采集机车0-10 V模拟量信号,开发了一种以STM32F10x单片机[1]为控制核心的智能模拟量采集板卡[2]。内部使用高精度标准参考源,充分使用D/AC的转换范围,提高信号转换精度。智能板卡通过CAN总线与CPU板进行数据传输。板卡已在机车空调控制器中得到应用。
模拟量采集板卡;单片机;校准;CAN通信
0 引言
模拟量采集是机车控制器的一个重要功能,用于采集机车传感器信号,用于机车控制[3]。为了扩展对输入信号的适应性,减小电路中电器参数不一致引起温漂导致采集精度降低,一般方法是对电路进行调整与补偿,但是这样一方面增加了调试的难度,另一方面很难从根本上解决这个问题。本文实现的智能模拟量采集板卡通过软硬件设计,实现校准功能,动态矫正偏差。
本智能模拟量采集板的主要技术参数为:
8路采样通过;
输入信号为0-10 V;
可以实现自校正;
采样分辨率为12位;
采样频率为50ksps;
支持CAN总线协议[4]。
1 智能模拟量采集板的硬件设计
本板卡为的3U插件版,通过背板F48连接器与CPU通信、得到电源板供电、确定板卡地址ADS,可扩展性强。板卡有3个主要单元电路组成,如图1所示。
外部的电压信号由F48连接器进入板卡,经过采样调理电路,A/D转换电路、经驱动隔离电路,进入CPU。CPU的片选信号、SPI时钟信号、芯片使能信号等,经隔离电路输出[5]。
(1)采样调理电路
模拟信号进入后,经采样电路,经ADG619模拟开关[6]后放大两倍,经过低通滤波器之后进行A/D采样。
ADG619模拟开关一方面用来实现消除零飘,另一方面用来实现自检。
(2)板卡地址ADS采集电路
控制器中存在多种板卡,为了区分各种板卡,根据协议对板卡进行编码,智能模拟量采集板上电之后,通过CPU的PC0-PC5端口读取背板编码,确定自己的ADS。在与CPU的通信过程中,将自己的ADS与CAN通信收到的ADS进行对比,相同则处理信息,不同的则不做处理。
图1 硬件框图
图2 采集调理电路
图3 ADS采集电路
(3)A/DC及SPI片选电路
MCP3201[7]是带SPI串行接口的12位AD转换器,片选信号由CPU的PE8-PE10经译码器提供。MCP3201在片选信号变低后的第一个上升沿开始采样,在第二个时钟的下降沿结束,然后输出一个低电平空位。接下来的12个时钟在下降沿时将以MSB的格式输出转换结果。当所有12个数据均发送完毕后,若片选信号仍为低,它将以首发LSB的格式输出转换结果。
图4 A/DC及SPI片选电路
2 智能模拟量采集板卡软件设计
板卡软件是在KeilC51环境下用C语言编写的[8],板卡主函数主要实现初始化、通信信号采集、滤波、中断服务函数,是整个系统的主流程。单片机在主函数中循环,当收到CAN中断后执行中断函数,完成相应功能。图5为主函数流程图。
模拟量采集及校正。将模拟开关ADG619的6引脚置低,则采集地信号VINGND,再将6引脚置高,则采集正常输入信号VIN,然后将(VIN-VINGND)作为采集到的数据,这样就可以有效地消除零飘。板卡在每次上电开始采集模拟量之前,都进行一次校准,排除电路参数因为零票等问题导致的误差。
图5 主函数流程图
模拟量采集采用外部SPI的方式,STM32F10x的SPI接口允许与外部设备以全/半双工、同步、串行方式通信。本文将其配置为全双工、主模式、16位数据长度,片选软件控制。数据在第二个上升沿采样,高位先传。根据MCP3201的特性,CPU收到的16位的数据长度中,数据格式应为图所示,因此应将读到的16位数据做左移一位处理。
CPU读到采样值之后使用软件滤波[9,10]。采用移动窗口的方式,读取十次采样值,去掉最大值和最小值,然后求平均值。在刚上电的时刻,未读取到十次采样值的情况下,则直接使用当次采样值。这个时刻非常短暂,可以忽略不计。
图6 SPI时序
图7 软件滤波示意图
实际的电压值由下面公式得到(AD为软件滤波之后的码值):
V = AD/4096*2.5/2*(40+4.02)/4.02
智能模拟量采集板卡与CPU板使用CAN通信。CAN通信采取中断的方式实现,在中断中实现CAN协议,以保证CAN通信的实时性。CAN中断的软件流程图如图。
图8 CAN中断软件流程图
3 测试结果
本模拟量采集板可以完成高速度、高精度的8通道12位模数转换,能实现自检和校准功能。另外 本板卡在指令处理上采用了成熟的CAN总线协议,增加了通信的稳定性。具体的测试结果如表1。
表1 测试结果
Tab.1 Test result
由测量结果可以看出,测量值的相对误差多在5%以内,能够满足机车使用的要求。
4 结论
本文设计的智能模拟量采集板卡,可以应用于机车空调控制器等设备使用,能够稳定采集0-10V的模拟电压输入,并通过CAN通信传给CPU板。
[1] STM32开发指南-库函数版本_V1.3[M].
[2] 丁月林. 基于STM32 的低功耗温湿度采集器实现[J]. 软件, 2015, 36(5): 84-88.
[3] 关颖, 黄飞. 内燃机车通信软件研发平台[J]. 软件, 2018, 39(3): 119-122.
[4] 杜淑颖. 基于CAN总线的智能车联平台设计与研究[J]. 软件, 2018, 39(7): 106-109.
[5] 焦华. 基础编程的思考方法[J]. 软件, 2018, 39(3): 57-62.
[6] ADG619数据手册[M].
[7] MCP3201数据手册[M].
[8] 赵文博。刘文涛. 单片机C51程序设计[M]。北京: 人民邮电出版社, 2005-10.
[9] 张震. 基于FPGA 的通用型FIR 数字滤波器的研究与设计[J]. 软件, 2015, 36(6): 125-128.
[10] 任年新, 刘增力. 基于现代信号处理的谱分析方法研究[J]. 软件, 2018, 39(3): 157-159.
Design of An Intelligent Analog Acquisition Card
ZHANG Jiao-jiao, WANG Ming, LIU Yao, ZHU Lin
(CRRC Dalian Institute co., LTD, Dalian 116023, China)
To collect 0-10 V DC analog input in vehicle, am intelligent analog acquisition card was designed based on STM32F10x. Using high precision standard reference voltage source and the full of D/AC scope to improve the precision of the card. The card communicate with CPU by CAN Bus and be used in air condition of vehicle.
Analog acquisition card; SCM; Calibration; CAN bus
TP23
A
10.3969/j.issn.1003-6970.2018.12.027
张姣姣(1987-),女,工程师,主要研究方向:软件开发;王铭(1989-),男,工程师,主要研究方向:机车整车通信及检测;刘耀(1988-),男,工程师,主要研究方向:硬件设计;朱琳(1988-),男,工程师,主要研究方向:软件开发。
张姣姣,王铭,刘耀,等. 一种智能模拟量采集板卡的设计[J]. 软件,2018,39(12):116-119