《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STM32的多源數(shù)據(jù)采集板卡設(shè)計(jì)
基于STM32的多源數(shù)據(jù)采集板卡設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第11期
王廣君1,2,姜建金1,2,馬成勇1,2
1.中國(guó)地質(zhì)大學(xué)(武漢)自動(dòng)化學(xué)院,湖北 武漢430074; 2.復(fù)雜系統(tǒng)先進(jìn)控制與智能自動(dòng)化湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢430074
摘要: 以STM32F429芯片為控制核心,實(shí)現(xiàn)了多源數(shù)據(jù)采集板卡的設(shè)計(jì)、制作、調(diào)試及驅(qū)動(dòng)軟件的編寫。板卡具有2路獨(dú)立CAN總線、2路獨(dú)立RS485、4路RS232、8路輸入和8路輸出可配置GPIO端口,且板載GPS/BD模塊。軟件功能包括所有接口驅(qū)動(dòng)與GPS/BD模塊位置地理信息提取。經(jīng)測(cè)試表明,全負(fù)荷工作時(shí),所有數(shù)據(jù)通道均處于良好的工作狀態(tài),各端口能夠按約定波特率以最大數(shù)據(jù)更新速率同步收發(fā)數(shù)據(jù)。此外,板卡各接口模塊均進(jìn)行電器隔離,數(shù)據(jù)傳輸穩(wěn)定可靠,滿足設(shè)備長(zhǎng)時(shí)間加電工作的要求。
中圖分類號(hào): TN409
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190749
中文引用格式: 王廣君,姜建金,馬成勇. 基于STM32的多源數(shù)據(jù)采集板卡設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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è)控制領(lǐng)域中,RS232、RS485、CAN等總線接口在工業(yè)領(lǐng)域中應(yīng)用較為廣泛[1-3]。在許多場(chǎng)合,由于設(shè)備處理數(shù)據(jù)的形式不同,通信接口各有差異,因此各式各樣數(shù)據(jù)采集的轉(zhuǎn)換器出現(xiàn)了,但是市面上出現(xiàn)的很多轉(zhuǎn)換器一般都只是兩種總線數(shù)據(jù)格式之間的轉(zhuǎn)換,難以適應(yīng)端口總線繁雜的場(chǎng)合[4-6],為此本文設(shè)計(jì)了一種多源數(shù)據(jù)采集板卡,其以STM32F429為核心,實(shí)現(xiàn)對(duì)多路RS232、RS485、CAN總線數(shù)據(jù)收發(fā)以及GPIO接口配置功能,另外板載GPS/BD模塊,滿足了用戶對(duì)采集多種不同通信接口設(shè)備數(shù)據(jù)以及時(shí)間地理信息顯示的需求。

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

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

qrs3-t1.gif

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

2 系統(tǒng)硬件設(shè)計(jì)

2.1 STM32核心電路設(shè)計(jì)

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

qrs3-t2.gif

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

2.2 CAN總線接口設(shè)計(jì)

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

qrs3-t3.gif

2.3 RS485總線設(shè)計(jì)

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

qrs3-t4.gif

2.4 RS232通信接口設(shè)計(jì)

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

qrs3-t5.gif

2.5 GPIO端口設(shè)計(jì)

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

qrs3-t6.gif

2.6 GPS/BD模塊設(shè)計(jì)

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

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

qrs3-t7.gif

2.7 電源電路設(shè)計(jì)

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

qrs3-t8.gif

3 系統(tǒng)軟件設(shè)計(jì)

3.1 程序設(shè)計(jì)分析

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

3.2 測(cè)試程序流程

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

qrs3-t9.gif

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

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

4 系統(tǒng)測(cè)試

4.1 指標(biāo)測(cè)試

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

qrs3-b1.gif

4.2 整體性能驗(yàn)證

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

5 結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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

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

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

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

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

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

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

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



作者信息:

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

(1.中國(guó)地質(zhì)大學(xué)(武漢)自動(dòng)化學(xué)院,湖北 武漢430074;

2.復(fù)雜系統(tǒng)先進(jìn)控制與智能自動(dòng)化湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢430074)

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