顧小興,車喜林,李逸飛,豐傳方,李強(qiáng)
(浙江華東光電儀器有限公司科研技術(shù)部,浙江嘉興,314011)
隨著電子行業(yè)的快速發(fā)展,對(duì)武器裝備的信息化要求也越來越高。產(chǎn)品功能的實(shí)現(xiàn)需要和很多不同廠商的設(shè)備模塊進(jìn)行數(shù)據(jù)交互[1-6]?,F(xiàn)有設(shè)備接口一般比較固定無法更改,在增加外設(shè)的情況下,如果增加設(shè)備接口則會(huì)導(dǎo)致成本過大且無法適應(yīng)外設(shè)的增加需求。為此,本文設(shè)計(jì)了一種用于武器觀瞄系統(tǒng)的指令分發(fā)與處理電路板(以下簡稱通訊板)。此電路采用STM32F407VET6作為主控芯片,設(shè)計(jì)了5路422通信接口,滿足多個(gè)不同協(xié)議模塊與電路之間的通訊要求,同時(shí)還具有溫度采集和繼電器控制功能[7-10]。STM32F407VET6芯片具有內(nèi)嵌向量中斷控制器,只需配置好中斷優(yōu)先級(jí),就可以解決多設(shè)備在同一時(shí)間交互數(shù)據(jù)的沖突問題。通訊板方便調(diào)試,易于兼容新的廠商的設(shè)備,降低了設(shè)備更換成本,提高了系統(tǒng)的可擴(kuò)展性。
通訊板可同時(shí)接收4臺(tái)設(shè)備指令,并將接收到的指令進(jìn)行整理、解析、再編碼統(tǒng)一指令格式之后,通過第5路接口發(fā)送至上位機(jī)。還可對(duì)上位機(jī)下發(fā)的指令進(jìn)行識(shí)別、分類,處理成目的設(shè)備的指令格式并下發(fā)。同時(shí),可采集觀瞄系統(tǒng)的機(jī)殼溫度,根據(jù)設(shè)定溫度預(yù)設(shè)值控制繼電器的開合。通訊板的系統(tǒng)框圖可見圖1。
圖1 系統(tǒng)框圖
STM32F407VET6作為主控芯片,需要實(shí)時(shí)處理5個(gè)串口接收的回傳信息,完成多設(shè)備交互的任務(wù),同時(shí)還需要采集溫度,在滿足條件時(shí),控制繼電器對(duì)觀瞄系統(tǒng)的觀察玻璃進(jìn)行除霜。由于各串口數(shù)據(jù)量比較大,需要配置好各串口中斷的優(yōu)先級(jí),避免出現(xiàn)數(shù)據(jù)丟失、指令無響應(yīng)等情況。
采用REG1117-3.3低壓差線性穩(wěn)壓芯片為單片機(jī)提供穩(wěn)定的3.3V電壓,該芯片可接受4.75V~12V的寬電壓輸入范圍,最大負(fù)載電流為1A,靜態(tài)電流僅為10mA,可實(shí)現(xiàn)低功耗待機(jī)模式。電路原理圖如圖2所示。
圖2 電源轉(zhuǎn)換電路
STM32F407VET6擁有6個(gè)USART(Universal Synchronous/Asynchronous Rec-eiver/Transmitter,通用同步/異步串行接收/發(fā)送器)、512Kb的FLASH以及82個(gè)I/O口,主頻高達(dá)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)試輸入輸出口)接口加一個(gè)上拉電阻,在SWCLK(Serial Wired Dubug Clock,串行調(diào)試時(shí)鐘接口)加一個(gè)下拉電阻。
圖3 最小系統(tǒng)原理圖
觀瞄系統(tǒng)一般工作于較為惡劣的環(huán)境下,TTL(Transistor-Transistor Logic,晶體管-晶體管邏輯電平)電平會(huì)受到比較嚴(yán)重的干擾,造成亂碼或者丟失數(shù)據(jù)的情況,所以通訊板采用RS-422標(biāo)準(zhǔn)接口進(jìn)行串口通信。RS-422全稱是“平衡電壓數(shù)字接口電路的電氣特性”,由于RS-422標(biāo)準(zhǔn)只定義了接口電路的特性,沒有對(duì)數(shù)據(jù)格式進(jìn)行統(tǒng)一的標(biāo)準(zhǔn)定義,使得RS-422標(biāo)準(zhǔn)使用起來非常靈活。
在通訊板中,采用MAX491作為RS-422通訊芯片,該芯片供電電壓為5V,最高傳輸速率可達(dá)2.5Mbps,有一對(duì)相互獨(dú)立的發(fā)送器和接收器,可以實(shí)現(xiàn)全雙工通訊??杉嫒?.3V和5V的信號(hào)輸入電壓,當(dāng)接收到STM32芯片的串口數(shù)據(jù)后,可立即轉(zhuǎn)換成RS-422標(biāo)準(zhǔn)的電壓信號(hào)對(duì)外輸出。同樣,從外部接收到差分?jǐn)?shù)據(jù)后,也立刻轉(zhuǎn)換成TTL電平輸入至STM32芯片。
MAX491內(nèi)部結(jié)構(gòu)圖如圖4所示。圖中,和DE為接收器和發(fā)送器的使能信號(hào),當(dāng)不使能時(shí),差分信號(hào)端為高阻態(tài)。此功能適用于單獨(dú)使用MAX491芯片的接收或者發(fā)出,亦或者是多個(gè)芯片共用一個(gè)單片機(jī)串口的情況時(shí),可配合使能信號(hào)使用。RO和DI為串口信號(hào)輸入、輸出端;A/B和Y/Z為差分信號(hào)的輸入、輸出端。
圖4 MAX491內(nèi)部結(jié)構(gòu)圖
MAX491電路原理圖如圖5所示。在差分信號(hào)端的正負(fù)極之間并聯(lián)一個(gè)120Ω匹配電阻,可實(shí)現(xiàn)最長1km的傳輸距離。
圖5 MAX491原理圖
測(cè)溫電路采用DS18B20數(shù)字化溫度傳感器,該傳感器具有“一線總線”接口,測(cè)溫范圍為-55℃~+125℃,精度為±0.5℃,供電電壓為3V~5.5V。如圖6所示,1腳為供電端,2腳為數(shù)據(jù)端,直接連接在單片機(jī)的I/O口,由于傳感器的數(shù)據(jù)的輸出模式是開漏輸出,所以需要接一個(gè)上拉偏置電阻。
圖6 DS18B20原理圖
通訊板采用歐姆龍G5LE系列繼電器。電路圖如圖7所示。STM32通過控制三極管的導(dǎo)通/關(guān)斷來控制繼電器的通斷,在繼電器的控制端并聯(lián)一個(gè)續(xù)流二極管,防止燒壞三極管和繼電器。
圖7 繼電器原理圖
通訊板軟件開發(fā)環(huán)境為Keil μVision5,使用C語言編寫。秉承低耦合、高內(nèi)聚的原則,提高程序的可移植性和可讀性,便于優(yōu)化、維護(hù)。初始化部分包括:時(shí)鐘、5個(gè)USART及其中斷配置、GPIO(General-purpose input/output,通用型輸入/輸出端口)、獨(dú)立看門狗、溫度傳感器。
通訊板的軟件系統(tǒng)流程圖如圖8所示。在接收到上位機(jī)發(fā)送的指令后,進(jìn)行指令預(yù)處理和分發(fā):1)將從上位機(jī)接收的指令進(jìn)行重新編碼后分發(fā)至其他模塊;2)接收到模塊回傳的信息進(jìn)行處理后發(fā)送至上位機(jī);3)設(shè)置溫度預(yù)設(shè)值,并存入FLASH;4)可根據(jù)上位機(jī)的指令,開啟串口數(shù)據(jù)透傳功能,將模塊回傳的數(shù)據(jù)不經(jīng)過任何處理,僅改變波特率,直接傳給上位機(jī)。
圖8 系統(tǒng)軟件流程圖
通訊板的主程序中協(xié)議判斷與分發(fā)部分主要采用ifelse-if結(jié)構(gòu)。在大量、快速的指令接收過程中,有一定概率會(huì)產(chǎn)生接收數(shù)組數(shù)據(jù)錯(cuò)位的情況,處理方法是在主程序中添加一段5ms的延時(shí)程序即可解決。對(duì)于STM32系列的微控制器在發(fā)送數(shù)據(jù)時(shí),第一個(gè)字節(jié)會(huì)缺失,針對(duì)通訊板的處理方法是在發(fā)送數(shù)據(jù)前,等待發(fā)送完成標(biāo)志位USART_FLAG_TC為0后,再開始發(fā)送數(shù)據(jù),隨后即可完整傳輸數(shù)據(jù)。
繼電器用于控制觀瞄系統(tǒng)加熱裝置的開啟/關(guān)斷。在天氣寒冷時(shí),觀瞄鏡玻璃會(huì)產(chǎn)生霧氣,可通過溫度傳感器采集機(jī)殼溫度,當(dāng)溫度達(dá)到預(yù)設(shè)值(通訊板閾值溫度為15℃)后,繼電器閉合,加熱裝置工作,從而達(dá)到除霜的目的。電路板實(shí)物圖如圖9所示。
圖9 電路板實(shí)物圖
如圖10(a)所示,用串口模擬上位機(jī)發(fā)送指令“CC 01 05 35 7A FF”至通訊板,通訊板先回復(fù)上位機(jī)一個(gè)應(yīng)答指令“CC 05 01 35 7A FF”通訊板提取有用數(shù)據(jù),并整理成相應(yīng)指令格式下發(fā)至對(duì)應(yīng)設(shè)備,如圖10(b)所示的“77 35 7A AA”。
圖10 上位機(jī)發(fā)送指令功能驗(yàn)證
如圖11(a)所示,用串口模擬下位機(jī)給通訊板發(fā)指令,通訊板接收后,將有用信息整理成上位機(jī)需要的指令格式并發(fā)送。整理后的協(xié)議如圖11(b)所示。
圖11 下位機(jī)發(fā)送指令功能驗(yàn)證
通訊板作為上位機(jī)與其它模塊之間的橋接器,分擔(dān)了上位機(jī)處理數(shù)據(jù)的負(fù)擔(dān),還可統(tǒng)一將各種模塊不同波特率、不同協(xié)議格式的數(shù)據(jù)整理成上位機(jī)所需要的格式與傳輸方式,如果中間某個(gè)模塊需要更換其他廠家的設(shè)備,也只需要在軟件中更改部分代碼即可,降低了更換設(shè)備模塊的成本。