顧小興,車喜林,李逸飛,豐傳方,李強
(浙江華東光電儀器有限公司科研技術(shù)部,浙江嘉興,314011)
隨著電子行業(yè)的快速發(fā)展,對武器裝備的信息化要求也越來越高。產(chǎn)品功能的實現(xiàn)需要和很多不同廠商的設(shè)備模塊進行數(shù)據(jù)交互[1-6]。現(xiàn)有設(shè)備接口一般比較固定無法更改,在增加外設(shè)的情況下,如果增加設(shè)備接口則會導(dǎo)致成本過大且無法適應(yīng)外設(shè)的增加需求。為此,本文設(shè)計了一種用于武器觀瞄系統(tǒng)的指令分發(fā)與處理電路板(以下簡稱通訊板)。此電路采用STM32F407VET6作為主控芯片,設(shè)計了5路422通信接口,滿足多個不同協(xié)議模塊與電路之間的通訊要求,同時還具有溫度采集和繼電器控制功能[7-10]。STM32F407VET6芯片具有內(nèi)嵌向量中斷控制器,只需配置好中斷優(yōu)先級,就可以解決多設(shè)備在同一時間交互數(shù)據(jù)的沖突問題。通訊板方便調(diào)試,易于兼容新的廠商的設(shè)備,降低了設(shè)備更換成本,提高了系統(tǒng)的可擴展性。
通訊板可同時接收4臺設(shè)備指令,并將接收到的指令進行整理、解析、再編碼統(tǒng)一指令格式之后,通過第5路接口發(fā)送至上位機。還可對上位機下發(fā)的指令進行識別、分類,處理成目的設(shè)備的指令格式并下發(fā)。同時,可采集觀瞄系統(tǒng)的機殼溫度,根據(jù)設(shè)定溫度預(yù)設(shè)值控制繼電器的開合。通訊板的系統(tǒng)框圖可見圖1。

圖1 系統(tǒng)框圖
STM32F407VET6作為主控芯片,需要實時處理5個串口接收的回傳信息,完成多設(shè)備交互的任務(wù),同時還需要采集溫度,在滿足條件時,控制繼電器對觀瞄系統(tǒng)的觀察玻璃進行除霜。由于各串口數(shù)據(jù)量比較大,需要配置好各串口中斷的優(yōu)先級,避免出現(xiàn)數(shù)據(jù)丟失、指令無響應(yīng)等情況。
采用REG1117-3.3低壓差線性穩(wěn)壓芯片為單片機提供穩(wěn)定的3.3V電壓,該芯片可接受4.75V~12V的寬電壓輸入范圍,最大負載電流為1A,靜態(tài)電流僅為10mA,可實現(xiàn)低功耗待機模式。電路原理圖如圖2所示。

圖2 電源轉(zhuǎn)換電路
STM32F407VET6擁有6個USART(Universal Synchronous/Asynchronous Rec-eiver/Transmitter,通用同步/異步串行接收/發(fā)送器)、512Kb的FLASH以及82個I/O口,主頻高達168MHz,可滿足眾多指令的快速解析與分發(fā)。下載及調(diào)試采用四線制的SWD(Serial Wired Dubug,串行調(diào)試)方式,以節(jié)約I/O口資源。最小系統(tǒng)如圖3所示。為確保在惡劣環(huán)境下還可正常燒錄程序,通訊板在SWD接口處給SWDIO(Serial Wired Dubug I/O,串行調(diào)試輸入輸出口)接口加一個上拉電阻,在SWCLK(Serial Wired Dubug Clock,串行調(diào)試時鐘接口)加一個下拉電阻。

圖3 最小系統(tǒng)原理圖
觀瞄系統(tǒng)一般工作于較為惡劣的環(huán)境下,TTL(Transistor-Transistor Logic,晶體管-晶體管邏輯電平)電平會受到比較嚴重的干擾,造成亂碼或者丟失數(shù)據(jù)的情況,所以通訊板采用RS-422標準接口進行串口通信。RS-422全稱是“平衡電壓數(shù)字接口電路的電氣特性”,由于RS-422標準只定義了接口電路的特性,沒有對數(shù)據(jù)格式進行統(tǒng)一的標準定義,使得RS-422標準使用起來非常靈活。
在通訊板中,采用MAX491作為RS-422通訊芯片,該芯片供電電壓為5V,最高傳輸速率可達2.5Mbps,有一對相互獨立的發(fā)送器和接收器,可以實現(xiàn)全雙工通訊。可兼容3.3V和5V的信號輸入電壓,當(dāng)接收到STM32芯片的串口數(shù)據(jù)后,可立即轉(zhuǎn)換成RS-422標準的電壓信號對外輸出。同樣,從外部接收到差分數(shù)據(jù)后,也立刻轉(zhuǎn)換成TTL電平輸入至STM32芯片。
MAX491內(nèi)部結(jié)構(gòu)圖如圖4所示。圖中,和DE為接收器和發(fā)送器的使能信號,當(dāng)不使能時,差分信號端為高阻態(tài)。此功能適用于單獨使用MAX491芯片的接收或者發(fā)出,亦或者是多個芯片共用一個單片機串口的情況時,可配合使能信號使用。RO和DI為串口信號輸入、輸出端;A/B和Y/Z為差分信號的輸入、輸出端。

圖4 MAX491內(nèi)部結(jié)構(gòu)圖
MAX491電路原理圖如圖5所示。在差分信號端的正負極之間并聯(lián)一個120Ω匹配電阻,可實現(xiàn)最長1km的傳輸距離。

圖5 MAX491原理圖
測溫電路采用DS18B20數(shù)字化溫度傳感器,該傳感器具有“一線總線”接口,測溫范圍為-55℃~+125℃,精度為±0.5℃,供電電壓為3V~5.5V。如圖6所示,1腳為供電端,2腳為數(shù)據(jù)端,直接連接在單片機的I/O口,由于傳感器的數(shù)據(jù)的輸出模式是開漏輸出,所以需要接一個上拉偏置電阻。

圖6 DS18B20原理圖
通訊板采用歐姆龍G5LE系列繼電器。電路圖如圖7所示。STM32通過控制三極管的導(dǎo)通/關(guān)斷來控制繼電器的通斷,在繼電器的控制端并聯(lián)一個續(xù)流二極管,防止燒壞三極管和繼電器。

圖7 繼電器原理圖
通訊板軟件開發(fā)環(huán)境為Keil μVision5,使用C語言編寫。秉承低耦合、高內(nèi)聚的原則,提高程序的可移植性和可讀性,便于優(yōu)化、維護。初始化部分包括:時鐘、5個USART及其中斷配置、GPIO(General-purpose input/output,通用型輸入/輸出端口)、獨立看門狗、溫度傳感器。
通訊板的軟件系統(tǒng)流程圖如圖8所示。在接收到上位機發(fā)送的指令后,進行指令預(yù)處理和分發(fā):1)將從上位機接收的指令進行重新編碼后分發(fā)至其他模塊;2)接收到模塊回傳的信息進行處理后發(fā)送至上位機;3)設(shè)置溫度預(yù)設(shè)值,并存入FLASH;4)可根據(jù)上位機的指令,開啟串口數(shù)據(jù)透傳功能,將模塊回傳的數(shù)據(jù)不經(jīng)過任何處理,僅改變波特率,直接傳給上位機。

圖8 系統(tǒng)軟件流程圖
通訊板的主程序中協(xié)議判斷與分發(fā)部分主要采用ifelse-if結(jié)構(gòu)。在大量、快速的指令接收過程中,有一定概率會產(chǎn)生接收數(shù)組數(shù)據(jù)錯位的情況,處理方法是在主程序中添加一段5ms的延時程序即可解決。對于STM32系列的微控制器在發(fā)送數(shù)據(jù)時,第一個字節(jié)會缺失,針對通訊板的處理方法是在發(fā)送數(shù)據(jù)前,等待發(fā)送完成標志位USART_FLAG_TC為0后,再開始發(fā)送數(shù)據(jù),隨后即可完整傳輸數(shù)據(jù)。
繼電器用于控制觀瞄系統(tǒng)加熱裝置的開啟/關(guān)斷。在天氣寒冷時,觀瞄鏡玻璃會產(chǎn)生霧氣,可通過溫度傳感器采集機殼溫度,當(dāng)溫度達到預(yù)設(shè)值(通訊板閾值溫度為15℃)后,繼電器閉合,加熱裝置工作,從而達到除霜的目的。電路板實物圖如圖9所示。

圖9 電路板實物圖
如圖10(a)所示,用串口模擬上位機發(fā)送指令“CC 01 05 35 7A FF”至通訊板,通訊板先回復(fù)上位機一個應(yīng)答指令“CC 05 01 35 7A FF”通訊板提取有用數(shù)據(jù),并整理成相應(yīng)指令格式下發(fā)至對應(yīng)設(shè)備,如圖10(b)所示的“77 35 7A AA”。

圖10 上位機發(fā)送指令功能驗證
如圖11(a)所示,用串口模擬下位機給通訊板發(fā)指令,通訊板接收后,將有用信息整理成上位機需要的指令格式并發(fā)送。整理后的協(xié)議如圖11(b)所示。

圖11 下位機發(fā)送指令功能驗證
通訊板作為上位機與其它模塊之間的橋接器,分擔(dān)了上位機處理數(shù)據(jù)的負擔(dān),還可統(tǒng)一將各種模塊不同波特率、不同協(xié)議格式的數(shù)據(jù)整理成上位機所需要的格式與傳輸方式,如果中間某個模塊需要更換其他廠家的設(shè)備,也只需要在軟件中更改部分代碼即可,降低了更換設(shè)備模塊的成本。