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 所示。
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 低電壓供電,支持睡眠、停機和待機 3 種省電模式,具有功耗低、實時性強等優點。核心電路結構如圖 2 所示。
核心電路主要包括 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 收發和總線保護于一體的 CAN 總線收發模塊,可實現 3 000 V DC 電氣隔離,傳輸波特率范圍為 5 kb/s~1 Mb/s;極大滿足了工業級的指標要求。該模塊+3.3 V 供電,與 STM32 之間接口無縫連接,具有功耗低的優點。此外,為了提高總線通信的可靠性,在該模塊外添加了端口浪涌防護電路,當模塊應用于較為惡劣的現場環境時,如高磁場干擾、大能量雷擊等場合,可保護模塊不被損壞。CAN 總線接口電路如圖 3 所示。
2.3 RS485 總線設計
在該電路中,使用了 TD321S485H-A 系列的 SMD 單路高速 RS485 隔離收發模塊(自動切換),其主要功能是將邏輯電平轉換為 RS485 協議的差分電平,實現信號隔離。該模塊+3.3 V 供電,傳輸波特率可達 500 kb/s,滿足要求。同樣,在模塊外添加了端口保護電路,SP00S12 是一款信號浪涌抑制器,可用于各種信號傳輸系統,抑制雷擊、浪涌、過壓等有害信號,對設備信號端口進行保護,尤為適合 CAN、RS-485 等通信領域的浪涌防護。因此,選擇 SP00S12 可有效保證 RS485 總線通信的可靠性。RS485 總線電路如圖 4 所示。
2.4 RS232 通信接口設計
該接口電路采用了型號為 RSM232D 的雙路隔離 RS-232 收發器,它支持 3.15 V~5.25 V 超寬壓輸入電源供電,波特率可達 235 kb/s。與普通的 RS232 芯片相比,它電磁抗干擾 EMS 極高,隔離耐壓 2 500 V DC。由于該模塊內部 TOUT/RIN 線沒有 EDS 保護器件,當應用于環境比較惡劣的場合時,可能造成通信不穩定的情況。因此,在模塊 TOUT/RIN 線端外加了 TVS 管、防雷管、屏蔽雙絞線以及同一網絡單點接大地等保護措施,有效保護了 RS232 總線端口。具體電路如圖 5 所示。
2.5 GPIO 端口設計
GPIO 端口分為 8 路輸入、8 路輸出端口,5~24 V 為邏輯高電壓,0~5 V 為邏輯低電壓。顯然電平與 MCU 電平不匹配,需要電壓轉換芯片進行電平轉換。考慮到端口的穩定性,端口采用了小體積的 TLP127 光耦芯片,完成電壓轉換的同時,也實現了電氣隔離。此外,TLP127 內部集成了耐高壓達林頓管,輸出端口可耐壓值可達 300 V DC,同時,它最高可輸出 150 mA 的電流 Ic 使它具有了較強的驅動和隔離能力。GPIO 輸入輸出端口隔離電路如圖 6 所示。
2.6 GPS/BD 模塊設計
該模塊主要實現對 GPS 定位信息進行獲取,并傳輸到 STM32 中進行處理。市場主要有幾款主流的 GPS/BD 模塊[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 模塊同外部設備通信接口采用 UART(串口)方式,輸出的 GPS/ 北斗定位數據采用 NMKA0183 協議[13],控制協議為 SkyTraq。因此使用前,需采用 SKyTraq 提供的 GNSS_Viewer 軟件對該模塊的更新速率、串口波特率等參數進行配置。該模塊與單片機連接方式如圖 7 所示。
2.7 電源電路設計
根據各端口模塊以及 MCU 的供電要求,需要將 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 所示。
3 系統軟件設計
3.1 程序設計分析
該設計以 KEIL MDK5 為軟件開發環境,操作系統為 Windows 7。核心處理器采用了 32 位 ARM Cortex-M4 內核的 STM32F429ZIT6 芯片,主頻可達 180 MHz,只要程序結構良好,板卡全端口工作負荷下,依然能處于穩定的運行狀態。
3.2 測試程序流程
MCU 程序采用模塊化結構設計,主要模塊包括初始化模塊、啟動看門狗模塊、各通信協議中斷模塊、定時器中斷處理模塊和主程序模塊。由于篇幅所限,下面主要對主程序部分程序進行分析,主程序流程圖如圖 9 所示。
系統程序啟動時先進行系統化,配置好各總線端口的波特率以及中斷優先級,初始化 GPIO 端口及 GPS/BD 模塊并設置看門狗。接著初始化各類標志位,啟動看門狗中斷程序。由于在總線數據傳輸方面采用硬件握手方式,雙向的數據傳輸依靠中斷方式來判斷數據的到來或響應信號的到來,保證了不同總線上的數據正常、透明、可靠傳輸。因此,此時各通信總線端口已進入中斷讀取數據狀態。
當程序進入主循環后,首先獲取 GPS/BD 模塊的經緯度信息,采集 8 路 GPIO_In 口的電平狀態,接著 RS485_1 與上位機進行三次應答,將每次應答獲取的數據進行截取保存,并對數據判斷,滿足則 GPIO_Out0 輸出固定頻率脈沖。然后解析上位機傳來的 CAN 指令,執行相應的程序,初次為健康查詢即檢查各端口通信是否正常,若正常則將 8 路 GPIO_In 端口狀態、RS485_1 讀取的數據、RS485_2 三次應答截取的數據、RS232 的數據以及 GPS/BD 模塊獲取的經緯度信息按約定要求解析放入 RS232_TXBUFF,并由電源同側的兩路 RS232 發送給上位機進行數據的處理與顯示。運行期間,利用定時器中斷不斷執行喂狗任務,上位機可發送 CAN 指令停止喂狗進行復位。此外,若板卡由于不可控因素導致程序跑飛,此時無法喂狗,程序自動復位,有效地防止了板卡因程序崩潰而無法工作的現象。
4 系統測試
4.1 指標測試
本多源數據采集板卡的技術指標主要為工作電壓、最大功耗、各總線通信波特率等。實測表明,板卡在測試技術要求范圍內的配置下均能正常工作。指標測試結果如表 1 所示。
4.2 整體性能驗證
為了驗證數據采集板卡的整體性能,將板卡各端口與工控機匹配端口相連接,模擬板卡通過多個端口采集多源傳感器數據信息,進行匯總并輸出,并通過 CAN 總線與上位機指令進行交互。通過上位機分析板卡的輸出數據并界面顯示,確定板卡各端口接收到的信息無誤,板載 GPS/BD 數據正確,多端口收發無阻塞,無競爭,可持續運行并按約定邏輯響應上位機通過 CAN 總線端口發送的指令。此外,經 72 h 長時間持續工作測試,板卡一直處于正常穩定的工作狀態。
5 結論
本文設計了一種基于 STM32 的多源數據采集板卡,實現了 CAN、RS485、RS232 等多種接口的通信,且均電氣隔離,使板卡減小干擾,通信更為可靠。板卡采用 STM32F429 芯片為控制核心,較強的數據處理能力,使板卡具有較好的性能;采用多種總線端口,可連接各種不同總線接口的傳感器設備,具有良好的可擴展性;板載 GPS/BD 模塊,記錄時間地理信息,方便用戶確定設備位置坐標;采用 DC-DC 隔離電源,電源轉換效率高,熱損耗小,具有功耗低的優點。此外,板卡采用鋁框外殼固定,安裝方便且抗振牢固。
責任編輯;zl
評論
查看更多