APP下载

一种智能模拟量采集板卡的设计

2019-01-23张姣姣

软件 2018年12期
关键词:板卡模拟量中断

张姣姣,王 铭,刘 耀,朱 琳



一种智能模拟量采集板卡的设计

张姣姣,王 铭,刘 耀,朱 琳

(中车大连机车研究所有限公司,辽宁 大连 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

猜你喜欢

板卡模拟量中断
基于PCI9054的多总线通信板卡的研制
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
跟踪导练(二)(5)
千里移防,卫勤保障不中断
关于600MW火电机组模拟量控制系统设计和研究
一种基于光纤数据传输的多板卡软件程序烧写技术
模拟量输入式合并单元测试仪的研制
一种通用模拟量及开关量信号采集板卡的设计
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析