《電子技術應用》
您所在的位置:胜负彩有什么规律 > 嵌入式技術 > 設計應用 > 基于STM32的多源數據采集板卡設計
基于STM32的多源數據采集板卡設計
2019年電子技術應用第11期
王廣君1,2,姜建金1,2,馬成勇1,2
1.中國地質大學(武漢)自動化學院,湖北 武漢430074; 2.復雜系統先進控制與智能自動化湖北省重點實驗室,湖北 武漢430074
摘要: 以STM32F429芯片為控制核心,實現了多源數據采集板卡的設計、制作、調試及驅動軟件的編寫。板卡具有2路獨立CAN總線、2路獨立RS485、4路RS232、8路輸入和8路輸出可配置GPIO端口,且板載GPS/BD???。軟件功能包括所有接口驅動與GPS/BD??槲恢玫乩硇畔⑻崛?。經測試表明,全負荷工作時,所有數據通道均處于良好的工作狀態,各端口能夠按約定波特率以最大數據更新速率同步收發數據。此外,板卡各接口??榫械縉鞲衾?,數據傳輸穩定可靠,滿足設備長時間加電工作的要求。
中圖分類號: TN409
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190749
中文引用格式: 王廣君,姜建金,馬成勇. 基于STM32的多源數據采集板卡設計[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 引言

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

1 系統總體架構

    多源數據采集板卡主要由STM32核心電路、2路CAN總線接口、2路RS485接口、4路RS232接口、8輸入/8輸出GPIO端口、板載GPS/BD??橐約暗繚吹緶紛槌?。多源數據采集板卡硬件結構如圖1所示。

qrs3-t1.gif

    STM32作為多源數據采集板卡的控制核心,控制協調各路通信總線接口的數據收發,以及與上位機進行交互,實現上位機對設備終端數據的采集、顯示與控制等功能;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可配置,數據更新頻率1~20 Hz可配置;電源電路包括12 V轉5 V、12 V轉3.3 V以及12 V轉24 V三部分。

2 系統硬件設計

2.1 STM32核心電路設計

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

qrs3-t2.gif

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

2.2 CAN總線接口設計

    CAN總線由于其高性能、高可靠性及獨立的設計,而被廣泛用于工業現場控制系統中[7-9]。由于STM32內部集成了CAN總線控制器,因此外部電路僅需CAN總線收發器即可實現通信。這里選用了TD321SCAN系列的SMD單路通用型CAN隔離收發???,它是一款采用IC集成化技術,實現了電源隔離、信號隔離、CAN收發和總線?;び諞惶宓腃AN總線收發???,可實現3 000 V DC電氣隔離,傳輸波特率范圍為5 kb/s~1 Mb/s;極大滿足了工業級的指標要求。該???3.3 V供電,與STM32之間接口無縫連接,具有功耗低的優點。此外,為了提高總線通信的可靠性,在該??橥馓砑恿碩絲誒擻糠闌さ緶?,當??橛τ糜誚銜窳擁南殖』肪呈?,如高磁場干擾、大能量雷擊等場合,可?;つ?椴槐凰鴰?。CAN總線接口電路如圖3所示。

qrs3-t3.gif

2.3 RS485總線設計

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

qrs3-t4.gif

2.4 RS232通信接口設計

    該接口電路采用了型號為RSM232D的雙路隔離RS-232收發器,它支持3.15 V~5.25 V超寬壓輸入電源供電,波特率可達235 kb/s。與普通的RS232芯片相比,它電磁抗干擾EMS極高,隔離耐壓2 500 V DC。由于該??檳誆縏OUT/RIN線沒有EDS?;て骷?,當應用于環境比較惡劣的場合時,可能造成通信不穩定的情況。因此,在??門OUT/RIN線端外加了TVS管、防雷管、屏蔽雙絞線以及同一網絡單點接大地等?;ご朧?,有效?;ち薘S232總線端口。具體電路如圖5所示。

qrs3-t5.gif

2.5 GPIO端口設計

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

qrs3-t6.gif

2.6 GPS/BD??檣杓?/strong>

    該??櫓饕迪侄訥PS定位信息進行獲取,并傳輸到STM32中進行處理。市場主要有幾款主流的GPS/BD???sup>[10],如ATK-NEO-6M、ATK-1218-BD等。經對比,ATK-1218-BD??樵謔莞侶?、傳輸波特率、定位精度等性能上均要優于其他???,因此選擇該??槔刺崛〉乩砦恢瞇畔?。ATK-1218-BD是一款高性能GPS/北斗雙模定位???,其兼容+3.3 V/5 V單片機系統,定位精度2.5 mCEP,數據更新速率1~20 Hz、串口通信波特率4 800~230 400 bps可配置。另外,??樽源沙淶綰蟊傅緋?,可以掉電保持星歷數據[11-12]。

    ATK-1218-BD??橥獠可璞竿ㄐ漚涌誆捎肬ART(串口)方式,輸出的GPS/北斗定位數據采用NMKA0183協議[13],控制協議為SkyTraq。因此使用前,需采用SKyTraq提供的GNSS_Viewer軟件對該??櫚母濾俾?、串口波特率等參數進行配置。該??橛氳テ臃絞餃繽?所示。

qrs3-t7.gif

2.7 電源電路設計

    根據各端口??橐約癕CU的供電要求,需要將12 V工作電源轉化為+3.3 V、+5 V、+24 V隔離電源。為了提高電源的轉換效率,降低熱損耗,采用了一款內置集成電路高端高壓功率MOSFET的降壓型開關電源芯片MP1584,輸入超寬電壓4.5 V~48 V DC,最大電流輸出可達3 A,輸出電壓值可根據匹配電阻調整得到+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 系統軟件設計

3.1 程序設計分析

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

3.2 測試程序流程

    MCU程序采用??榛峁股杓?,主要??榘ǔ跏薊??、啟動看門狗???、各通信協議中斷???、定時器中斷處理??楹橢鞒絳蚰??。由于篇幅所限,下面主要對主程序部分程序進行分析,主程序流程圖如圖9所示。

qrs3-t9.gif

    系統程序啟動時先進行系統化,配置好各總線端口的波特率以及中斷優先級,初始化GPIO端口及GPS/BD??椴⑸柚每疵毆?。接著初始化各類標志位,啟動看門狗中斷程序。由于在總線數據傳輸方面采用硬件握手方式,雙向的數據傳輸依靠中斷方式來判斷數據的到來或響應信號的到來,保證了不同總線上的數據正常、透明、可靠傳輸。因此,此時各通信總線端口已進入中斷讀取數據狀態。

    當程序進入主循環后,首先獲取GPS/BD??櫚木扯刃畔?,采集8路GPIO_In口的電平狀態,接著RS485_1與上位機進行三次應答,將每次應答獲取的數據進行截取保存,并對數據判斷,滿足則GPIO_Out0輸出固定頻率脈沖。然后解析上位機傳來的CAN指令,執行相應的程序,初次為健康查詢即檢查各端口通信是否正常,若正常則將8路GPIO_In端口狀態、RS485_1讀取的數據、RS485_2三次應答截取的數據、RS232的數據以及GPS/BD??榛袢〉木扯刃畔叢級ㄒ蠼馕齜湃隦S232_TXBUFF,并由電源同側的兩路RS232發送給上位機進行數據的處理與顯示。運行期間,利用定時器中斷不斷執行喂狗任務,上位機可發送CAN指令停止喂狗進行復位。此外,若板卡由于不可控因素導致程序跑飛,此時無法喂狗,程序自動復位,有效地防止了板卡因程序崩潰而無法工作的現象。

4 系統測試

4.1 指標測試

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

qrs3-b1.gif

4.2 整體性能驗證

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

5 結論

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

參考文獻

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

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

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

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

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

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

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

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

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

[10] 李偉成,彭松,郭亮,等.基于STM32系列開發板的一種高性能GPS??橛τ每⒂胙芯縖J].電子技術,2015,44(11):11-14.

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

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

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



作者信息:

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

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

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

此內容為AET網站原創,未經授權禁止轉載。