劉安琴 ,楊慶華
(1.煙臺(tái)大學(xué)文經(jīng)學(xué)院,山東 煙臺(tái) 264005;2.上海大學(xué)機(jī)自學(xué)院,上海 200444)
隨著航空裝備的不斷發(fā)展,民航飛機(jī)性能的提高以及功能的逐漸完善,導(dǎo)致飛機(jī)系統(tǒng)及其分系統(tǒng)的構(gòu)造構(gòu)愈發(fā)復(fù)雜,制造成本不斷提高,安全性能問(wèn)題日益突出。因此,經(jīng)濟(jì)與安全成為了不可回避的問(wèn)題。在過(guò)往的設(shè)備檢測(cè)過(guò)程中,大多是真機(jī)與真機(jī)相連。這種檢測(cè)方式不僅會(huì)消耗比較大的成本、需要繁雜的技術(shù)人員和設(shè)備,還會(huì)對(duì)真機(jī)造成一定的損耗。此外,在民航飛機(jī)的研制過(guò)程中,需要進(jìn)行各種試驗(yàn):一方面驗(yàn)證某些理論計(jì)算是否與試驗(yàn)結(jié)果相符;另一方面通過(guò)探索性試驗(yàn),摸索新的試驗(yàn)方法及數(shù)據(jù)處理方法。
因此,設(shè)計(jì)地面接口測(cè)試模擬器就顯得尤為重要。飛機(jī)航電分系統(tǒng)都有各自的控制設(shè)備,譬如電源系統(tǒng)的發(fā)電機(jī)控制單元(generator control unit, GCU),發(fā)動(dòng)機(jī)系統(tǒng)的全權(quán)數(shù)字發(fā)動(dòng)機(jī)控制器(full authority digital engine controller, FADEC)和發(fā)動(dòng)機(jī)振動(dòng)單元(engine vibration unit,EVM),防火系統(tǒng)的過(guò)熱控制單元(fire overheat control unit, FOCU)以及起落架的位置作動(dòng)控制單元(position actuation control unit,PACU),艙門(mén)系統(tǒng)的現(xiàn)場(chǎng)可更換單元(line replaceable unit, LRU)等[1-4]。除了這些系統(tǒng)自帶的處理器外,還有很多待測(cè)的離散量、模擬量[5-6]等。以上系統(tǒng)的所有待測(cè)變量與地面模擬器相連進(jìn)行檢測(cè),可以節(jié)約成本,增加安全性能。另外,在測(cè)試過(guò)程中還可以快速全面地查出頂層設(shè)計(jì)和開(kāi)發(fā)中的功能邏輯錯(cuò)誤,大大提高檢查的覆蓋面積。地面測(cè)試模擬器與機(jī)上信號(hào)之間可以靈活映射,包括對(duì)信號(hào)切換、信號(hào)注入、信號(hào)輸出等模塊進(jìn)行測(cè)試。
本文設(shè)計(jì)了PACU模擬器多功能擴(kuò)展轉(zhuǎn)接盒。PACU模擬器多功能轉(zhuǎn)接盒一端連接飛機(jī)機(jī)架端,另一端通過(guò)模擬器本身接口對(duì)外提供激勵(lì)輸入接口。此外,還可以把真機(jī)件連到PACU模擬器上。
PACU模擬器多功能轉(zhuǎn)接盒能夠?qū)崿F(xiàn)控制激勵(lì)信號(hào)在PACU真機(jī)件和模擬器之間的信號(hào)切換。同時(shí),在模擬器狀態(tài)下,提供9路飛機(jī)艙門(mén)信號(hào)提供狀態(tài)指示和13路開(kāi)關(guān)量信號(hào)提供信號(hào)指示。其中,開(kāi)關(guān)量信號(hào)支持電平為28 V/OPEN和GROUND/OPEN兩種開(kāi)關(guān)格式。
為了使PACU轉(zhuǎn)接盒可以方便、準(zhǔn)確地對(duì)9路艙門(mén)信號(hào)發(fā)送控制激勵(lì)信號(hào),并且能夠直觀顯示,本文設(shè)計(jì)了上位機(jī)界面與觸摸屏模塊。它們均與主芯片能夠?qū)崿F(xiàn)通信交互。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
其中,主控制器采用STM32F103芯片。該芯片接口十分豐富,可通過(guò)USART接通信模塊與上位機(jī)[5-7]、觸摸屏進(jìn)行16位的數(shù)據(jù)交換;同時(shí),通用輸入/輸出接口與繼電器矩陣相連。通信模塊主要由串行通信模塊組成,主要目的是通過(guò)串口通信的方式與嵌入式控制器進(jìn)行信息的交互,對(duì)輸入/輸出信號(hào)進(jìn)行電平的匹配、隔離,即完成信號(hào)的轉(zhuǎn)接和轉(zhuǎn)換,對(duì)信號(hào)進(jìn)行統(tǒng)一管理。繼電器矩陣開(kāi)關(guān)模塊主要是通過(guò)嵌入式控制器控制對(duì)應(yīng)的模擬量、數(shù)字量、開(kāi)關(guān)量進(jìn)行操作。激勵(lì)模塊由觸摸屏構(gòu)成,采用工業(yè)串口屏,本身有著高效獨(dú)立的處理器,可以作為激勵(lì)源通過(guò)通信模塊完成對(duì)指令、數(shù)據(jù)以及物理信號(hào)的交互。
在默認(rèn)狀態(tài)下,模擬器端的PACU真機(jī)件與轉(zhuǎn)接電纜相連,16路電磁繼電器保持?jǐn)嚅_(kāi)狀態(tài)。若串口接收到上位機(jī)發(fā)送的數(shù)據(jù),可切換至地面模擬器接口,電磁繼電器通電,16路LED動(dòng)作指示燈亮起。
在模擬器工作狀態(tài)下,地面測(cè)試模擬器為9路飛機(jī)艙門(mén)信號(hào)提供狀態(tài)指示,每個(gè)艙門(mén)的艙門(mén)信號(hào)有三種狀態(tài),即開(kāi)啟,關(guān)閉,鎖定。另外模擬器為13路開(kāi)關(guān)量信號(hào)提供信號(hào)指示,開(kāi)關(guān)量信號(hào)支持電平為12 V/OPEN。當(dāng)激勵(lì)信號(hào)發(fā)送時(shí),STM32對(duì)命令進(jìn)行解析,判斷激勵(lì)來(lái)自上位機(jī)還是觸摸屏。若來(lái)自上位機(jī),控制器再對(duì)控制命令進(jìn)行解析,識(shí)別具體艙門(mén)的具體狀態(tài),通過(guò)串口2將數(shù)據(jù)回傳至觸摸屏,屏上顯示艙門(mén)顏色狀態(tài)變化。同時(shí),模擬器通過(guò)串口1將數(shù)據(jù)回溯至上位機(jī)。上位機(jī)也可顯示艙門(mén)顏色狀態(tài)變化;觸摸屏也可作為激勵(lì)模塊,發(fā)送艙門(mén)開(kāi)閉信號(hào),在上位機(jī)端與觸摸屏端完成同樣的顯示功能。
主控制器采用意法半導(dǎo)體(ST)公司生產(chǎn)的STM32F103系列芯片。STM32芯片采用庫(kù)開(kāi)發(fā)的形式,高度集成的庫(kù)函數(shù)不同于以往的單片機(jī)產(chǎn)品對(duì)寄存器進(jìn)行操作,大大方便了用戶(hù)的開(kāi)發(fā)。STM32外圍接口十分豐富,有多達(dá)5個(gè)USART接口,512 kB的閃存程序存儲(chǔ)器,最高工作頻率72 MHz,具有運(yùn)算速度快、低電壓、低功耗的特點(diǎn)。STM32豐富的硬件資源給PACU地面模擬器的復(fù)雜系統(tǒng)及今后的開(kāi)發(fā)預(yù)留了空間[8-9]。
STM32接外圍設(shè)備如圖2所示。
圖2 STM32接外圍設(shè)備示意圖
繼電器模塊設(shè)計(jì)的是16路、12 V供電的繼電器模塊,帶有光耦保護(hù)。每路繼電器都帶有動(dòng)作指示燈。吸合時(shí)燈亮,斷開(kāi)時(shí)燈熄滅。I/O口驅(qū)動(dòng)低電平有效。其中,繼電器采用電磁式繼電器,即通過(guò)電磁鐵通電后產(chǎn)生的吸引力控制銜鐵的上下移動(dòng),達(dá)到在常開(kāi)觸點(diǎn)與常閉觸點(diǎn)之間切換的目的。在硬件電路中,采用DS2E-S-DC12V的繼電器。它的標(biāo)準(zhǔn)值電壓是12 V,最小的斷開(kāi)電壓是8.4 V,線圈電阻是800 Ω。光耦隔離光敏三極管一側(cè)的電壓是5 V,需要發(fā)光二極管發(fā)出一定的光使得光敏三極管導(dǎo)通。電壓不足時(shí)無(wú)法使發(fā)光二極管導(dǎo)通,繼電器中電磁鐵未有電流通過(guò),處于常開(kāi)狀態(tài)。即使在不加任何附加電阻的情況下,電流值也是達(dá)不到繼電器的啟動(dòng)電流。因此必須加上電流開(kāi)關(guān)放大驅(qū)動(dòng)電路,利用光耦隔離控制開(kāi)關(guān)電路,進(jìn)而再控制繼電器的動(dòng)作情況。當(dāng)單片機(jī)發(fā)出高電平的信號(hào)時(shí),光偶隔離動(dòng)作,輸出一定的電流使得NPN的三極管放大電路觸發(fā);外加12 V電壓與繼電器形成通路,達(dá)到繼電器動(dòng)作值,觸電閉合;發(fā)出低電平時(shí)不動(dòng)作。
2.3.1 觸摸屏與STM32通信模塊
觸摸屏采用迪文公司生產(chǎn)的工業(yè)串口屏。觸摸屏支持RS-232與RS-485通信,因此需要RS-232電平轉(zhuǎn)換接口電路,模塊為MAX3232。藍(lán)牙模塊與STM32接線如圖3所示。MAX3232的TX端接STM32的PA2引腳,RX端接PA3引腳[10-13]。
2.3.2 上位機(jī)與STM32通信模塊
由于PACU轉(zhuǎn)接盒接線復(fù)雜,為尋求方便,在上位機(jī)與STM32通信時(shí)采用HC-05藍(lán)牙無(wú)線模塊,HC-05是主從一體的藍(lán)牙模塊,其作為主機(jī)時(shí)與計(jì)算機(jī)相連,作為從機(jī)時(shí)與STM32的TTL電平發(fā)送端(PA9),接收端(PA10)引腳相連。
圖3 藍(lán)牙模塊與STM32接線圖
軟件設(shè)計(jì)流程如圖4所示。
圖4 軟件設(shè)計(jì)流程圖
STM32接收的數(shù)據(jù)命令是可變的,加上幀頭和幀尾數(shù)據(jù)總字節(jié)數(shù)至少大于3個(gè)。工作流程為接收到上位機(jī)發(fā)送的數(shù)據(jù)后,STM32對(duì)數(shù)據(jù)命令進(jìn)行解析。首先判斷幀頭是否為0X55,然后對(duì)幀尾進(jìn)行判斷看是否為0xAA。當(dāng)接收到的一幀數(shù)據(jù)符合有效命令,即根據(jù)有效命令數(shù)據(jù)Payload進(jìn)行解析。當(dāng)有效Payload字節(jié)為3個(gè)時(shí),第一個(gè)自己代表艙門(mén),第二個(gè)字節(jié)代表艙門(mén)狀態(tài),第三個(gè)字節(jié)表示真機(jī)與模擬器之間的切換信號(hào)。如第三個(gè)字節(jié)為0x55,即代表連接真機(jī)信號(hào);如為0XAA,則代表連接地面模擬器信號(hào)。
當(dāng)接收到的有效Payload為2個(gè)字節(jié)時(shí),第一個(gè)字節(jié)代表通道號(hào),第二字節(jié)代表狀態(tài)量。 其中,第一個(gè)字節(jié)接收為數(shù)字1~9(十進(jìn)制),分別對(duì)應(yīng)客艙門(mén)、前服務(wù)艙門(mén)、前貨艙門(mén)、后貨艙門(mén)、登機(jī)梯門(mén)、EE艙門(mén)、前檢修門(mén)、左側(cè)應(yīng)急門(mén)與右側(cè)應(yīng)急門(mén)等。第二字節(jié)接收數(shù)字0~2分別代表開(kāi)啟、關(guān)閉和鎖定狀態(tài)。同樣,開(kāi)關(guān)量也用通道號(hào)+狀態(tài)量來(lái)表示。例如,從串口1接收到的Payload字節(jié)為0x0101,則第一個(gè)字節(jié)0x01代表客艙門(mén);第二個(gè)字節(jié)表示狀態(tài)量,接收為0x01代表處于關(guān)閉狀態(tài)。同樣,STM32通過(guò)串口1轉(zhuǎn)發(fā)數(shù)據(jù)至上位機(jī),通過(guò)串口2轉(zhuǎn)發(fā)數(shù)據(jù)至觸摸屏,客艙門(mén)顏色都相應(yīng)發(fā)生變化。另外,觸摸屏也可以作為激勵(lì)信號(hào)發(fā)送指令,STM32將數(shù)據(jù)通過(guò)串口1回傳至上位機(jī),上位機(jī)可以顯示艙門(mén)狀態(tài)的改變。
總線接收到數(shù)據(jù),單片機(jī)會(huì)對(duì)其進(jìn)行多字符的解析。因此,串口如何判斷自己收到的是一串?dāng)?shù)據(jù)而不是單字節(jié)的數(shù)據(jù)是非常關(guān)鍵的。譬如本文中設(shè)定客艙門(mén)開(kāi)啟的命令為0x0101,串口1接收55 01 01 AA,串口將其視作一幀數(shù)據(jù),格式包括幀頭-數(shù)據(jù)1-數(shù)據(jù)2-幀尾,否則會(huì)出現(xiàn)丟包,內(nèi)容不完整等情況。當(dāng)有一幀數(shù)據(jù)發(fā)送完成后,USART_SR寄存器中的第六位被置1。如果單片機(jī)不停地查詢(xún)這個(gè)標(biāo)志位,會(huì)耗費(fèi)內(nèi)核寶貴的資源,所以可將串口發(fā)送完一幀數(shù)據(jù)事件配置為可觸發(fā)中斷,進(jìn)入IDLE中斷服務(wù)函數(shù),判斷接收到的一幀數(shù)據(jù)包含的字節(jié)數(shù)。
以STM32 USART1為例,程序設(shè)計(jì)如下。當(dāng)串口接收到一個(gè)字節(jié)數(shù)據(jù)時(shí)會(huì)產(chǎn)生一次RXNE中斷。將其存入串口1的數(shù)據(jù)緩沖區(qū)中,直到緩沖區(qū)存滿4 B數(shù)據(jù),會(huì)產(chǎn)生一次IDLE中斷。單片機(jī)將這4 B數(shù)據(jù)視為一幀數(shù)據(jù)。接收到一幀數(shù)據(jù)后,要清除USART_SR寄存器中的標(biāo)志位,否則會(huì)影響下一周期數(shù)據(jù)的接收。清除方法是先讀SR寄存器,再讀DR寄存器。
設(shè)計(jì)觸摸屏模塊的目的是能夠和地面模擬器進(jìn)行交互,主要用迪文觸摸屏完成指令、數(shù)據(jù)等參數(shù)以及相應(yīng)物理信號(hào)的注入。操作方面主要包括9路艙門(mén)信號(hào)與13路開(kāi)關(guān)量信號(hào)的顯示與激勵(lì)。艙門(mén)變量分為9個(gè)模塊,分別是客艙門(mén)、前服務(wù)艙門(mén)、前貨艙門(mén)、后貨艙門(mén)、登機(jī)梯門(mén)、EE艙門(mén)、前檢修門(mén)、左側(cè)應(yīng)急門(mén)與右側(cè)應(yīng)急門(mén)。它們都在同一個(gè)變量地址下,變量地址為0x0001,鍵值分別為0x0100~0x0900。每個(gè)艙門(mén)有三種狀態(tài),即開(kāi)啟、關(guān)閉、鎖定。0x0010變量地址對(duì)應(yīng)的按鍵返回值為0x0000~0x0002。圖標(biāo)變量有紅黃綠三種。每個(gè)艙門(mén)對(duì)應(yīng)一個(gè)圖標(biāo)變量,分別為01~09。圖標(biāo)變量的變量地址上限為2,下限為0。在觸摸屏、STM32、上位機(jī)進(jìn)行通信過(guò)程中,遵循的觸摸屏通信協(xié)議如表1所示。
表1 觸摸屏通信協(xié)議
表1中:0x55為幀頭;0xAA為幀尾;協(xié)議中間內(nèi)容為艙門(mén)變量的按鍵返回值與狀態(tài)變量按鍵返回值的組合。
本文以客艙門(mén)為例,進(jìn)行了初步的系統(tǒng)測(cè)試。首先,在上位機(jī)中配置好COM口與波特率后,檢查藍(lán)牙通信狀況良好,繼電器切換為PACU模擬器狀態(tài)。然后,如果點(diǎn)擊客艙門(mén)開(kāi)啟(OPEN)按鈕,系統(tǒng)可將客艙門(mén)設(shè)置為開(kāi)啟狀態(tài),上位機(jī)和觸摸屏中客艙門(mén)顏色均顯示為紅色;如果點(diǎn)擊客艙門(mén)鎖定(LOCK)按鈕,系統(tǒng)可將客艙門(mén)設(shè)置為鎖定狀態(tài),上位機(jī)和觸摸屏中客艙門(mén)顏色均顯示為綠色;如果點(diǎn)擊客艙門(mén)關(guān)閉(CLOSE)按鈕,則系統(tǒng)可將客艙門(mén)設(shè)置為關(guān)閉狀態(tài),上位機(jī)和觸摸屏中客艙門(mén)顏色均顯示為黃色。其余艙門(mén)與開(kāi)關(guān)量系統(tǒng)測(cè)試流程和效果相似,經(jīng)檢測(cè),系統(tǒng)狀況良好,與設(shè)計(jì)初衷相符。
本文設(shè)計(jì)了基于STM32的PACU模擬器多功能轉(zhuǎn)接盒,可實(shí)現(xiàn)真機(jī)與模擬器之間信號(hào)可自由切換;同時(shí),串口可以提供艙門(mén)系統(tǒng)信號(hào)與開(kāi)關(guān)量信號(hào)的激勵(lì),在觸摸屏上實(shí)現(xiàn)信號(hào)反饋。該設(shè)計(jì)的主要優(yōu)勢(shì)在于摒除了過(guò)往在飛機(jī)測(cè)試過(guò)程中真機(jī)與真機(jī)的連接方式,避免了對(duì)真機(jī)件的設(shè)備損耗。另外,可采用采用地面模擬器的軟件模擬控制完成硬件在環(huán)測(cè)試,能夠很好地支持艙門(mén)系統(tǒng)以及28 V/OPEN等開(kāi)關(guān)量的交互試驗(yàn)。在地面綜合試驗(yàn)中,PACU多功能模擬器轉(zhuǎn)接盒為民航飛機(jī)的航電系統(tǒng)的順利測(cè)試起到了很好的推進(jìn)作用。