張姣姣,王 銘,劉 耀,朱 琳
?
一種智能模擬量采集板卡的設計
張姣姣,王 銘,劉 耀,朱 琳
(中車大連機車研究所有限公司,遼寧 大連 116023)
為了采集機車0-10 V模擬量信號,開發了一種以STM32F10x單片機[1]為控制核心的智能模擬量采集板卡[2]。內部使用高精度標準參考源,充分使用D/AC的轉換范圍,提高信號轉換精度。智能板卡通過CAN總線與CPU板進行數據傳輸。板卡已在機車空調控制器中得到應用。
模擬量采集板卡;單片機;校準;CAN通信
模擬量采集是機車控制器的一個重要功能,用于采集機車傳感器信號,用于機車控制[3]。為了擴展對輸入信號的適應性,減小電路中電器參數不一致引起溫漂導致采集精度降低,一般方法是對電路進行調整與補償,但是這樣一方面增加了調試的難度,另一方面很難從根本上解決這個問題。本文實現的智能模擬量采集板卡通過軟硬件設計,實現校準功能,動態矯正偏差。
本智能模擬量采集板的主要技術參數為:
8路采樣通過;
輸入信號為0-10 V;
可以實現自校正;
采樣分辨率為12位;
采樣頻率為50ksps;
支持CAN總線協議[4]。
本板卡為的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片選電路
板卡軟件是在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中斷軟件流程圖
本模擬量采集板可以完成高速度、高精度的8通道12位模數轉換,能實現自檢和校準功能。另外 本板卡在指令處理上采用了成熟的CAN總線協議,增加了通信的穩定性。具體的測試結果如表1。
表1 測試結果

Tab.1 Test result
由測量結果可以看出,測量值的相對誤差多在5%以內,能夠滿足機車使用的要求。
本文設計的智能模擬量采集板卡,可以應用于機車空調控制器等設備使用,能夠穩定采集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