文獻(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.
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所示。
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所示。
核心電路主要包括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所示。
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所示。
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所示。
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所示。
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所示。
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所示。
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所示。
系統(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所示。
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)