《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于STM32的多源數(shù)據(jù)采集板卡設計
基于STM32的多源數(shù)據(jù)采集板卡設計
2019年電子技術應用第11期
王廣君1,2,姜建金1,2,馬成勇1,2
1.中國地質大學(武漢)自動化學院,湖北 武漢430074; 2.復雜系統(tǒng)先進控制與智能自動化湖北省重點實驗室,湖北 武漢430074
摘要: 以STM32F429芯片為控制核心,實現(xiàn)了多源數(shù)據(jù)采集板卡的設計、制作、調試及驅動軟件的編寫。板卡具有2路獨立CAN總線、2路獨立RS485、4路RS232、8路輸入和8路輸出可配置GPIO端口,且板載GPS/BD模塊。軟件功能包括所有接口驅動與GPS/BD模塊位置地理信息提取。經(jīng)測試表明,全負荷工作時,所有數(shù)據(jù)通道均處于良好的工作狀態(tài),各端口能夠按約定波特率以最大數(shù)據(jù)更新速率同步收發(fā)數(shù)據(jù)。此外,板卡各接口模塊均進行電器隔離,數(shù)據(jù)傳輸穩(wěn)定可靠,滿足設備長時間加電工作的要求。
中圖分類號: TN409
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190749
中文引用格式: 王廣君,姜建金,馬成勇. 基于STM32的多源數(shù)據(jù)采集板卡設計[J].電子技術應用,2019,45(11):108-111,116.
英文引用格式: Wang Guangjun,Jiang Jianjin,Ma Chengyong. Development of multi-source data acquisition board based on STM32[J]. Application of Electronic Technique,2019,45(11):108-111,116.
Development of multi-source data acquisition board based on STM32
Wang Guangjun1,2,Jiang Jianjin1,2,Ma Chengyong1,2
1.School of Automation,China University of Geosciences(Wuhan),Wuhan 430074,China; 2.Hubei Key Laboratory of Advanced Control and Intelligent Automation for Complex System,Wuhan 430074,China
Abstract: The design is mainly to take STM32F429 as the control core to realize the design, production, debugging and driver software of multi-source data acquisition board(with shell). The board has two independent CAN buses, two independent RS485, four RS232, eight input and eight output configurable GPIO ports and GPS/BD module. Software features include all interface drivers and GPS/BD module location geographic information extraction. Tests have shown that all data channels are in good working condition when working at full load, and each port can synchronously send and receive data at the maximum data update rate according to the agreed baud rate. In addition, each interface module of the board is electrically isolated, and the data transmission is stable and reliable, meeting the requirements of long-term power-on operation of the equipment.
Key words : STM32;data collection;RS232;CAN bus;GPS/BD

0 引言

    在現(xiàn)代工業(yè)控制領域中,RS232、RS485、CAN等總線接口在工業(yè)領域中應用較為廣泛[1-3]。在許多場合,由于設備處理數(shù)據(jù)的形式不同,通信接口各有差異,因此各式各樣數(shù)據(jù)采集的轉換器出現(xiàn)了,但是市面上出現(xiàn)的很多轉換器一般都只是兩種總線數(shù)據(jù)格式之間的轉換,難以適應端口總線繁雜的場合[4-6],為此本文設計了一種多源數(shù)據(jù)采集板卡,其以STM32F429為核心,實現(xiàn)對多路RS232、RS485、CAN總線數(shù)據(jù)收發(fā)以及GPIO接口配置功能,另外板載GPS/BD模塊,滿足了用戶對采集多種不同通信接口設備數(shù)據(jù)以及時間地理信息顯示的需求。

1 系統(tǒng)總體架構

    多源數(shù)據(jù)采集板卡主要由STM32核心電路、2路CAN總線接口、2路RS485接口、4路RS232接口、8輸入/8輸出GPIO端口、板載GPS/BD模塊以及電源電路組成。多源數(shù)據(jù)采集板卡硬件結構如圖1所示。

qrs3-t1.gif

    STM32作為多源數(shù)據(jù)采集板卡的控制核心,控制協(xié)調各路通信總線接口的數(shù)據(jù)收發(fā),以及與上位機進行交互,實現(xiàn)上位機對設備終端數(shù)據(jù)的采集、顯示與控制等功能;2路CAN總線分別獨立,并在板卡兩側各有1路接口,通信速率范圍為500 kb/s~1 Mb/s;2路獨立RS485總線,波特率9 600 b/s到115 200 b/s可配置,可掛載多個RS485總線通信的傳感器模塊,均分布在板卡左側;4路RS232接口,波特率9 600 b/s到230 400 b/s可調,左右兩側各2路獨立接口;16路GPIO端口,左側8路輸出,右側為8路輸入;GPS/BD模塊主要完成時間地理位置信息的采集,通信速率9 600~115 200 b/s可配置,數(shù)據(jù)更新頻率1~20 Hz可配置;電源電路包括12 V轉5 V、12 V轉3.3 V以及12 V轉24 V三部分。

2 系統(tǒng)硬件設計

2.1 STM32核心電路設計

    該部分選用了STM32F429ZIT6為微控制器,其使用高性能的ARM Coetex-M4 32位的嵌入式RISC內(nèi)核,工作頻率高達180 MHz,內(nèi)置2 MB的Flash和256 KB的SRAM存儲器,豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設;包含2個 12位的ADC,3個通用16位定時器,以及3個I2C和SPI,4USARTs/4 UARTs和2個CAN通信接口[5]。其中板卡通信要求至少7個串口與2個CAN總線。此外,該芯片采用1.7~3.6 V低電壓供電,支持睡眠、停機和待機3種省電模式,具有功耗低、實時性強等優(yōu)點。核心電路結構如圖2所示。

qrs3-t2.gif

    核心電路主要包括STM32F429及其復位電路、晶振電路、BOOT啟動電路以及調試下載接口電路。其中復位電路采用10 kΩ電阻上拉方式,當按鍵按下時,RESET與地導通,產(chǎn)生低電平實現(xiàn)復位;為了讓STM32得到更高的處理速度,晶振電路采用了25 MHz無源晶振;BOOT電路決定了STM32以何種方式被啟動,此處提供了用戶閃存存儲器啟動與從內(nèi)嵌SRAM啟動,默認為前者方式啟動,可利用跳帽選擇;調試下載接口則選用了SWD方式,其為2線串行通信,只需排針引出,節(jié)省空間。

2.2 CAN總線接口設計

    CAN總線由于其高性能、高可靠性及獨立的設計,而被廣泛用于工業(yè)現(xiàn)場控制系統(tǒng)中[7-9]。由于STM32內(nèi)部集成了CAN總線控制器,因此外部電路僅需CAN總線收發(fā)器即可實現(xiàn)通信。這里選用了TD321SCAN系列的SMD單路通用型CAN隔離收發(fā)模塊,它是一款采用IC集成化技術,實現(xiàn)了電源隔離、信號隔離、CAN收發(fā)和總線保護于一體的CAN總線收發(fā)模塊,可實現(xiàn)3 000 V DC電氣隔離,傳輸波特率范圍為5 kb/s~1 Mb/s;極大滿足了工業(yè)級的指標要求。該模塊+3.3 V供電,與STM32之間接口無縫連接,具有功耗低的優(yōu)點。此外,為了提高總線通信的可靠性,在該模塊外添加了端口浪涌防護電路,當模塊應用于較為惡劣的現(xiàn)場環(huán)境時,如高磁場干擾、大能量雷擊等場合,可保護模塊不被損壞。CAN總線接口電路如圖3所示。

qrs3-t3.gif

2.3 RS485總線設計

    在該電路中,使用了TD321S485H-A系列的SMD單路高速RS485隔離收發(fā)模塊(自動切換),其主要功能是將邏輯電平轉換為RS485協(xié)議的差分電平,實現(xiàn)信號隔離。該模塊+3.3 V供電,傳輸波特率可達500 kb/s,滿足要求。同樣,在模塊外添加了端口保護電路,SP00S12是一款信號浪涌抑制器,可用于各種信號傳輸系統(tǒng),抑制雷擊、浪涌、過壓等有害信號,對設備信號端口進行保護,尤為適合CAN、RS-485等通信領域的浪涌防護。因此,選擇SP00S12可有效保證RS485總線通信的可靠性。RS485總線電路如圖4所示。

qrs3-t4.gif

2.4 RS232通信接口設計

    該接口電路采用了型號為RSM232D的雙路隔離RS-232收發(fā)器,它支持3.15 V~5.25 V超寬壓輸入電源供電,波特率可達235 kb/s。與普通的RS232芯片相比,它電磁抗干擾EMS極高,隔離耐壓2 500 V DC。由于該模塊內(nèi)部TOUT/RIN線沒有EDS保護器件,當應用于環(huán)境比較惡劣的場合時,可能造成通信不穩(wěn)定的情況。因此,在模塊TOUT/RIN線端外加了TVS管、防雷管、屏蔽雙絞線以及同一網(wǎng)絡單點接大地等保護措施,有效保護了RS232總線端口。具體電路如圖5所示。

qrs3-t5.gif

2.5 GPIO端口設計

    GPIO端口分為8路輸入、8路輸出端口,5~24 V為邏輯高電壓,0~5 V為邏輯低電壓。顯然電平與MCU電平不匹配,需要電壓轉換芯片進行電平轉換??紤]到端口的穩(wěn)定性,端口采用了小體積的TLP127光耦芯片,完成電壓轉換的同時,也實現(xiàn)了電氣隔離。此外,TLP127內(nèi)部集成了耐高壓達林頓管,輸出端口可耐壓值可達300 V DC,同時,它最高可輸出150 mA的電流Ic使它具有了較強的驅動和隔離能力。GPIO輸入輸出端口隔離電路如圖6所示。

qrs3-t6.gif

2.6 GPS/BD模塊設計

    該模塊主要實現(xiàn)對GPS定位信息進行獲取,并傳輸?shù)絊TM32中進行處理。市場主要有幾款主流的GPS/BD模塊[10],如ATK-NEO-6M、ATK-1218-BD等。經(jīng)對比,ATK-1218-BD模塊在數(shù)據(jù)更新率、傳輸波特率、定位精度等性能上均要優(yōu)于其他模塊,因此選擇該模塊來提取地理位置信息。ATK-1218-BD是一款高性能GPS/北斗雙模定位模塊,其兼容+3.3 V/5 V單片機系統(tǒng),定位精度2.5 mCEP,數(shù)據(jù)更新速率1~20 Hz、串口通信波特率4 800~230 400 bps可配置。另外,模塊自帶可充電后備電池,可以掉電保持星歷數(shù)據(jù)[11-12]

    ATK-1218-BD模塊同外部設備通信接口采用UART(串口)方式,輸出的GPS/北斗定位數(shù)據(jù)采用NMKA0183協(xié)議[13],控制協(xié)議為SkyTraq。因此使用前,需采用SKyTraq提供的GNSS_Viewer軟件對該模塊的更新速率、串口波特率等參數(shù)進行配置。該模塊與單片機連接方式如圖7所示。

qrs3-t7.gif

2.7 電源電路設計

    根據(jù)各端口模塊以及MCU的供電要求,需要將12 V工作電源轉化為+3.3 V、+5 V、+24 V隔離電源。為了提高電源的轉換效率,降低熱損耗,采用了一款內(nèi)置集成電路高端高壓功率MOSFET的降壓型開關電源芯片MP1584,輸入超寬電壓4.5 V~48 V DC,最大電流輸出可達3 A,輸出電壓值可根據(jù)匹配電阻調整得到+3.3 V、+5 V的電壓,相應地輸入輸出濾波電容均采用MLCC電容可減少紋波干擾。+24 V隔離電源主要應用于GPIO輸出端,作為輸出的參考電平,考慮到體積小、功耗等要求,選用B1224_XT-2WR2隔離芯片,該芯片可將12 V電壓隔離升壓至24 V,且輸入輸出隔離電壓達1 500 V DC,效率達84%,外圍電路簡單,僅需兩個濾波電容即可。電源電路結構如圖8所示。

qrs3-t8.gif

3 系統(tǒng)軟件設計

3.1 程序設計分析

    該設計以KEIL MDK5為軟件開發(fā)環(huán)境,操作系統(tǒng)為Windows 7。核心處理器采用了32位ARM Cortex-M4內(nèi)核的STM32F429ZIT6芯片,主頻可達180 MHz,只要程序結構良好,板卡全端口工作負荷下,依然能處于穩(wěn)定的運行狀態(tài)。

3.2 測試程序流程

    MCU程序采用模塊化結構設計,主要模塊包括初始化模塊、啟動看門狗模塊、各通信協(xié)議中斷模塊、定時器中斷處理模塊和主程序模塊。由于篇幅所限,下面主要對主程序部分程序進行分析,主程序流程圖如圖9所示。

qrs3-t9.gif

    系統(tǒng)程序啟動時先進行系統(tǒng)化,配置好各總線端口的波特率以及中斷優(yōu)先級,初始化GPIO端口及GPS/BD模塊并設置看門狗。接著初始化各類標志位,啟動看門狗中斷程序。由于在總線數(shù)據(jù)傳輸方面采用硬件握手方式,雙向的數(shù)據(jù)傳輸依靠中斷方式來判斷數(shù)據(jù)的到來或響應信號的到來,保證了不同總線上的數(shù)據(jù)正常、透明、可靠傳輸。因此,此時各通信總線端口已進入中斷讀取數(shù)據(jù)狀態(tài)。

    當程序進入主循環(huán)后,首先獲取GPS/BD模塊的經(jīng)緯度信息,采集8路GPIO_In口的電平狀態(tài),接著RS485_1與上位機進行三次應答,將每次應答獲取的數(shù)據(jù)進行截取保存,并對數(shù)據(jù)判斷,滿足則GPIO_Out0輸出固定頻率脈沖。然后解析上位機傳來的CAN指令,執(zhí)行相應的程序,初次為健康查詢即檢查各端口通信是否正常,若正常則將8路GPIO_In端口狀態(tài)、RS485_1讀取的數(shù)據(jù)、RS485_2三次應答截取的數(shù)據(jù)、RS232的數(shù)據(jù)以及GPS/BD模塊獲取的經(jīng)緯度信息按約定要求解析放入RS232_TXBUFF,并由電源同側的兩路RS232發(fā)送給上位機進行數(shù)據(jù)的處理與顯示。運行期間,利用定時器中斷不斷執(zhí)行喂狗任務,上位機可發(fā)送CAN指令停止喂狗進行復位。此外,若板卡由于不可控因素導致程序跑飛,此時無法喂狗,程序自動復位,有效地防止了板卡因程序崩潰而無法工作的現(xiàn)象。

4 系統(tǒng)測試

4.1 指標測試

    本多源數(shù)據(jù)采集板卡的技術指標主要為工作電壓、最大功耗、各總線通信波特率等。實測表明,板卡在測試技術要求范圍內(nèi)的配置下均能正常工作。指標測試結果如表1所示。

qrs3-b1.gif

4.2 整體性能驗證

    為了驗證數(shù)據(jù)采集板卡的整體性能,將板卡各端口與工控機匹配端口相連接,模擬板卡通過多個端口采集多源傳感器數(shù)據(jù)信息,進行匯總并輸出,并通過CAN總線與上位機指令進行交互。通過上位機分析板卡的輸出數(shù)據(jù)并界面顯示,確定板卡各端口接收到的信息無誤,板載GPS/BD數(shù)據(jù)正確,多端口收發(fā)無阻塞,無競爭,可持續(xù)運行并按約定邏輯響應上位機通過CAN總線端口發(fā)送的指令。此外,經(jīng)72 h長時間持續(xù)工作測試,板卡一直處于正常穩(wěn)定的工作狀態(tài)。

5 結論

    本文設計了一種基于STM32的多源數(shù)據(jù)采集板卡,實現(xiàn)了CAN、RS485、RS232等多種接口的通信,且均電氣隔離,使板卡減小干擾,通信更為可靠。板卡采用STM32F429芯片為控制核心,較強的數(shù)據(jù)處理能力,使板卡具有較好的性能;采用多種總線端口,可連接各種不同總線接口的傳感器設備,具有良好的可擴展性;板載GPS/BD模塊,記錄時間地理信息,方便用戶確定設備位置坐標;采用DC-DC隔離電源,電源轉換效率高,熱損耗小,具有功耗低的優(yōu)點。此外,板卡采用鋁框外殼固定,安裝方便且抗振牢固。

參考文獻

[1] 韓王晨光,閆續(xù).USB-CAN-RS232-RS485總線轉換控制器設計[J].中國外資,2014(3):284-284.

[2] 周緒貴,查鳳.基于STM32F103的CAN/RS232轉換板卡的設計與應用[J].工業(yè)控制計算機,2014,27(5):49-50.

[3] 韓成浩,高曉紅.CAN總線技術及其應用[J].制造業(yè)自動化,2010,32(2):146-149.

[4] 劉大鵬.基于STM32單片機的CAN-USB轉換器設計[J].工業(yè)技術創(chuàng)新,2014(5):589-593.

[5] 劉義平,公飛.基于STM32的CAN總線接口設計與實現(xiàn)[J].信息與電腦,2016(8):154-157.

[6] 任瑞通.基于RS485和CAN總線的帶式輸送機監(jiān)控系統(tǒng)設計[J].煤礦現(xiàn)代化,2018(6):131-134 .

[7] 王晨輝,吳悅,楊凱.基于STM32的多通道數(shù)據(jù)采集系統(tǒng)設計[J].電子技術應用,2016,42(1):51-53.

[8] 曾璐陽.基于STM32的CAN總線/RS232接口轉換器的設計[J].中國設備工程,2017(6):111-112.

[9] 周靜雷,羅瑞豐,孫長城.基于STM32的數(shù)據(jù)采集存儲系統(tǒng)設計[J].信息技術,2016(8):138-140.

[10] 李偉成,彭松,郭亮,等.基于STM32系列開發(fā)板的一種高性能GPS模塊應用開發(fā)與研究[J].電子技術,2015,44(11):11-14.

[11] 阮帥,張文旭,孫家驥,等.GP S/BDII雙模導航接收機設計與實現(xiàn)[J].應用科技,2016,43(4):50-55.

[12] 周孟強,童忠晴,李剛.基于STM32的北斗/GPS定位系統(tǒng)的設計[J].電子制作,2018(13):13-14.

[13] 吳彥霖,劉瑞敏,王興隆,等.基于STM32的GPS授時系統(tǒng)設計[J].價值工程,2016,35(5):117-119.



作者信息:

王廣君1,2,姜建金1,2,馬成勇1,2

(1.中國地質大學(武漢)自動化學院,湖北 武漢430074;

2.復雜系統(tǒng)先進控制與智能自動化湖北省重點實驗室,湖北 武漢430074)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。