張姣姣,王 銘,劉 耀,朱 琳
?
一種智能模擬量采集板卡的設(shè)計(jì)
張姣姣,王 銘,劉 耀,朱 琳
(中車大連機(jī)車研究所有限公司,遼寧 大連 116023)
為了采集機(jī)車0-10 V模擬量信號(hào),開(kāi)發(fā)了一種以STM32F10x單片機(jī)[1]為控制核心的智能模擬量采集板卡[2]。內(nèi)部使用高精度標(biāo)準(zhǔn)參考源,充分使用D/AC的轉(zhuǎn)換范圍,提高信號(hào)轉(zhuǎn)換精度。智能板卡通過(guò)CAN總線與CPU板進(jìn)行數(shù)據(jù)傳輸。板卡已在機(jī)車空調(diào)控制器中得到應(yīng)用。
模擬量采集板卡;單片機(jī);校準(zhǔn);CAN通信
模擬量采集是機(jī)車控制器的一個(gè)重要功能,用于采集機(jī)車傳感器信號(hào),用于機(jī)車控制[3]。為了擴(kuò)展對(duì)輸入信號(hào)的適應(yīng)性,減小電路中電器參數(shù)不一致引起溫漂導(dǎo)致采集精度降低,一般方法是對(duì)電路進(jìn)行調(diào)整與補(bǔ)償,但是這樣一方面增加了調(diào)試的難度,另一方面很難從根本上解決這個(gè)問(wèn)題。本文實(shí)現(xiàn)的智能模擬量采集板卡通過(guò)軟硬件設(shè)計(jì),實(shí)現(xiàn)校準(zhǔn)功能,動(dòng)態(tài)矯正偏差。
本智能模擬量采集板的主要技術(shù)參數(shù)為:
8路采樣通過(guò);
輸入信號(hào)為0-10 V;
可以實(shí)現(xiàn)自校正;
采樣分辨率為12位;
采樣頻率為50ksps;
支持CAN總線協(xié)議[4]。
本板卡為的3U插件版,通過(guò)背板F48連接器與CPU通信、得到電源板供電、確定板卡地址ADS,可擴(kuò)展性強(qiáng)。板卡有3個(gè)主要單元電路組成,如圖1所示。
外部的電壓信號(hào)由F48連接器進(jìn)入板卡,經(jīng)過(guò)采樣調(diào)理電路,A/D轉(zhuǎn)換電路、經(jīng)驅(qū)動(dòng)隔離電路,進(jìn)入CPU。CPU的片選信號(hào)、SPI時(shí)鐘信號(hào)、芯片使能信號(hào)等,經(jīng)隔離電路輸出[5]。
(1)采樣調(diào)理電路
模擬信號(hào)進(jìn)入后,經(jīng)采樣電路,經(jīng)ADG619模擬開(kāi)關(guān)[6]后放大兩倍,經(jīng)過(guò)低通濾波器之后進(jìn)行A/D采樣。
ADG619模擬開(kāi)關(guān)一方面用來(lái)實(shí)現(xiàn)消除零飄,另一方面用來(lái)實(shí)現(xiàn)自檢。
(2)板卡地址ADS采集電路
控制器中存在多種板卡,為了區(qū)分各種板卡,根據(jù)協(xié)議對(duì)板卡進(jìn)行編碼,智能模擬量采集板上電之后,通過(guò)CPU的PC0-PC5端口讀取背板編碼,確定自己的ADS。在與CPU的通信過(guò)程中,將自己的ADS與CAN通信收到的ADS進(jìn)行對(duì)比,相同則處理信息,不同的則不做處理。
圖1 硬件框圖
圖2 采集調(diào)理電路
圖3 ADS采集電路
(3)A/DC及SPI片選電路
MCP3201[7]是帶SPI串行接口的12位AD轉(zhuǎn)換器,片選信號(hào)由CPU的PE8-PE10經(jīng)譯碼器提供。MCP3201在片選信號(hào)變低后的第一個(gè)上升沿開(kāi)始采樣,在第二個(gè)時(shí)鐘的下降沿結(jié)束,然后輸出一個(gè)低電平空位。接下來(lái)的12個(gè)時(shí)鐘在下降沿時(shí)將以MSB的格式輸出轉(zhuǎn)換結(jié)果。當(dāng)所有12個(gè)數(shù)據(jù)均發(fā)送完畢后,若片選信號(hào)仍為低,它將以首發(fā)LSB的格式輸出轉(zhuǎn)換結(jié)果。
圖4 A/DC及SPI片選電路
板卡軟件是在KeilC51環(huán)境下用C語(yǔ)言編寫(xiě)的[8],板卡主函數(shù)主要實(shí)現(xiàn)初始化、通信信號(hào)采集、濾波、中斷服務(wù)函數(shù),是整個(gè)系統(tǒng)的主流程。單片機(jī)在主函數(shù)中循環(huán),當(dāng)收到CAN中斷后執(zhí)行中斷函數(shù),完成相應(yīng)功能。圖5為主函數(shù)流程圖。
模擬量采集及校正。將模擬開(kāi)關(guān)ADG619的6引腳置低,則采集地信號(hào)VINGND,再將6引腳置高,則采集正常輸入信號(hào)VIN,然后將(VIN-VINGND)作為采集到的數(shù)據(jù),這樣就可以有效地消除零飄。板卡在每次上電開(kāi)始采集模擬量之前,都進(jìn)行一次校準(zhǔn),排除電路參數(shù)因?yàn)榱闫钡葐?wèn)題導(dǎo)致的誤差。
圖5 主函數(shù)流程圖
模擬量采集采用外部SPI的方式,STM32F10x的SPI接口允許與外部設(shè)備以全/半雙工、同步、串行方式通信。本文將其配置為全雙工、主模式、16位數(shù)據(jù)長(zhǎng)度,片選軟件控制。數(shù)據(jù)在第二個(gè)上升沿采樣,高位先傳。根據(jù)MCP3201的特性,CPU收到的16位的數(shù)據(jù)長(zhǎng)度中,數(shù)據(jù)格式應(yīng)為圖所示,因此應(yīng)將讀到的16位數(shù)據(jù)做左移一位處理。
CPU讀到采樣值之后使用軟件濾波[9,10]。采用移動(dòng)窗口的方式,讀取十次采樣值,去掉最大值和最小值,然后求平均值。在剛上電的時(shí)刻,未讀取到十次采樣值的情況下,則直接使用當(dāng)次采樣值。這個(gè)時(shí)刻非常短暫,可以忽略不計(jì)。
圖6 SPI時(shí)序
圖7 軟件濾波示意圖
實(shí)際的電壓值由下面公式得到(AD為軟件濾波之后的碼值):
V = AD/4096*2.5/2*(40+4.02)/4.02
智能模擬量采集板卡與CPU板使用CAN通信。CAN通信采取中斷的方式實(shí)現(xiàn),在中斷中實(shí)現(xiàn)CAN協(xié)議,以保證CAN通信的實(shí)時(shí)性。CAN中斷的軟件流程圖如圖。
圖8 CAN中斷軟件流程圖
本模擬量采集板可以完成高速度、高精度的8通道12位模數(shù)轉(zhuǎn)換,能實(shí)現(xiàn)自檢和校準(zhǔn)功能。另外 本板卡在指令處理上采用了成熟的CAN總線協(xié)議,增加了通信的穩(wěn)定性。具體的測(cè)試結(jié)果如表1。
表1 測(cè)試結(jié)果
Tab.1 Test result
由測(cè)量結(jié)果可以看出,測(cè)量值的相對(duì)誤差多在5%以內(nèi),能夠滿足機(jī)車使用的要求。
本文設(shè)計(jì)的智能模擬量采集板卡,可以應(yīng)用于機(jī)車空調(diào)控制器等設(shè)備使用,能夠穩(wěn)定采集0-10V的模擬電壓輸入,并通過(guò)CAN通信傳給CPU板。
[1] STM32開(kāi)發(fā)指南-庫(kù)函數(shù)版本_V1.3[M].
[2] 丁月林. 基于STM32 的低功耗溫濕度采集器實(shí)現(xiàn)[J]. 軟件, 2015, 36(5): 84-88.
[3] 關(guān)穎, 黃飛. 內(nèi)燃機(jī)車通信軟件研發(fā)平臺(tái)[J]. 軟件, 2018, 39(3): 119-122.
[4] 杜淑穎. 基于CAN總線的智能車聯(lián)平臺(tái)設(shè)計(jì)與研究[J]. 軟件, 2018, 39(7): 106-109.
[5] 焦華. 基礎(chǔ)編程的思考方法[J]. 軟件, 2018, 39(3): 57-62.
[6] ADG619數(shù)據(jù)手冊(cè)[M].
[7] MCP3201數(shù)據(jù)手冊(cè)[M].
[8] 趙文博。劉文濤. 單片機(jī)C51程序設(shè)計(jì)[M]。北京: 人民郵電出版社, 2005-10.
[9] 張震. 基于FPGA 的通用型FIR 數(shù)字濾波器的研究與設(shè)計(jì)[J]. 軟件, 2015, 36(6): 125-128.
[10] 任年新, 劉增力. 基于現(xiàn)代信號(hào)處理的譜分析方法研究[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-),女,工程師,主要研究方向:軟件開(kāi)發(fā);王銘(1989-),男,工程師,主要研究方向:機(jī)車整車通信及檢測(cè);劉耀(1988-),男,工程師,主要研究方向:硬件設(shè)計(jì);朱琳(1988-),男,工程師,主要研究方向:軟件開(kāi)發(fā)。
張姣姣,王銘,劉耀,等. 一種智能模擬量采集板卡的設(shè)計(jì)[J]. 軟件,2018,39(12):116-119