文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.09.010
中文引用格式: 茹偉,張軍才,趙臘才. 基于單片機的機載千兆交換機系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(9):39-41.
英文引用格式: Ru Wei,Zhang Juncai,Zhao Lacai. Design and implementation of airborne gigabit switch system based on micro control unit[J].Application of Electronic Technique,2015,41(9):39-41.
0 引言
隨著A380、B787等大型民用飛機的出現(xiàn),為滿足乘客旅途及舒適度要求而逐步提供了機上休閑及娛樂功能,當(dāng)乘客娛樂功能及數(shù)據(jù)迅速發(fā)展而帶來大量數(shù)據(jù)傳輸,傳統(tǒng)的AFDX網(wǎng)絡(luò)100 Mb/s傳輸帶寬已不適應(yīng)大量數(shù)據(jù)傳輸,基于IEEE802.3ah協(xié)議的EPON技術(shù)及基于時間觸發(fā)以太網(wǎng)的TTE技術(shù)都具有更高的傳輸速率[1]。
目前,嵌入式技術(shù)已在機載軟件[2]、物聯(lián)網(wǎng)[3]等方面廣泛應(yīng)用,傳統(tǒng)的面向過程開發(fā)方法已不適應(yīng)當(dāng)前嵌入式軟件的大規(guī)模、高復(fù)雜的需求,面向?qū)ο?/a>設(shè)計技術(shù)采用封裝、繼承等抽象機制降低了系統(tǒng)復(fù)雜性,在嵌入式軟件的開發(fā)過程過中用來提高軟件的可重用性、可擴(kuò)展性[4]。本文設(shè)計了一種基于單片機的嵌入式千兆交換機系統(tǒng),實現(xiàn)對交換機進(jìn)行配置以及自測試,從而實現(xiàn)飛機娛樂系統(tǒng)對大量數(shù)據(jù)傳輸?shù)囊?。采用面向?qū)ο蟮腢ML開發(fā)技術(shù)[5],使嵌入式開發(fā)后軟件具有可移植性及良好擴(kuò)展性。
1 機載千兆交換機系統(tǒng)總體設(shè)計
機載交換機系統(tǒng)需根據(jù)外部ID1~ID3離散量的不同配置,實現(xiàn)交換機的不同工作模式配置,并通過CPCI對外提供20路千兆以太網(wǎng);同時需周期性對交換機進(jìn)行自測試,將測試結(jié)果通過串口輸出。
根據(jù)交換機系統(tǒng)需求,本文設(shè)計了一種機載交換機系統(tǒng)。通過單片機實現(xiàn)交換機不同工作模式的配置和自測試(BIT),實現(xiàn)對外提供20路千兆以太網(wǎng)。交換機選用Broadcom公司的一款二層9 口千兆以太網(wǎng)交換芯片BCM53118[6],芯片符合IEEE 802.3規(guī)范,8路10/100/1 000 Mb/s自適應(yīng)以太網(wǎng)口,對交換機進(jìn)行讀寫操作可通過SPI總線;同時此交換機有下電控制寄存器,可實現(xiàn)異常狀態(tài)下低功耗工作要求。
根據(jù)系統(tǒng)需求及嵌入式軟件存儲要求,單片機程序存儲空間應(yīng)不低于128 KB的Flash,輸出測試結(jié)果的串口不少于1路,對交換機讀寫操作的SPI不少于1路,BIT測試觸發(fā)的定時器不少于1個,GPIO不少于3個,同時單片機應(yīng)有支持調(diào)試接口的JTAG。
根據(jù)上述要求,單片機采用TI的TM4C1231H6PGE[7](簡稱TM4C)。TM4C是一款基于Cortex-M4F的處理器、具有256 KB的Flash、32 KB的SRAM、8路串口UART、4路SPI、多個定時器、1個JTAG口。機載千兆交換機系統(tǒng)硬件設(shè)計如圖1所示。
圖1中,根據(jù)ID1~ID3離散量的不同值,實現(xiàn)交換機3種不同工作模式,即:(1)3個交換機獨立工作,此時SW2的Port5與SW1的Port5、SW2的Port6與SW3的Port6斷開;(2)3個交換機級聯(lián)工作,此時SW2的Port5與SW1的Port5、SW2的Port6與SW3的Port6連接;(3)3個交換機靜默工作,即3個交換機下電。
2 機載千兆交換機系統(tǒng)軟件總體設(shè)計
2.1 軟件靜態(tài)模型
按照機載千兆交換機系統(tǒng)要求,軟件功能劃分為初始化、交換機配置、BIT測試、總線接口。為實現(xiàn)嵌入式交換機系統(tǒng)軟件的移植性、擴(kuò)展性,本文采用基于UML的面向?qū)ο笤O(shè)計方法。交換機系統(tǒng)的靜態(tài)模型如圖2。類Sw_Config實現(xiàn)交換機配置功能;類BIT實現(xiàn)對交換機硬件檢測、交換機狀態(tài)的檢測結(jié)果輸出;類Timer實現(xiàn)整個軟件中精確定時事件觸發(fā);類UART實現(xiàn)通過串口收發(fā)數(shù)據(jù);類SPI實現(xiàn)單片機對交換機的讀寫操作;類Initialization實現(xiàn)對定時器、SPI、UART的初始化配置。
2.2 軟件流程圖
機載交換機系統(tǒng)軟件的運行流程如圖3。首先對所需要使用的資源進(jìn)行初始化,包括定時器、串口、SPI,當(dāng)初始化成功后讀取ID1~ID3離散量,根據(jù)不同離散量值完成對交換機的配置;周期執(zhí)行BIT測試,在BIT檢測結(jié)果無故障后通過串口將測試結(jié)果輸出。在初始化失敗或者周期執(zhí)行BIT測試時交換機有故障,則立即停止運行。
2.3 軟件設(shè)計
2.3.1 Initialization
初始化是交換機系統(tǒng)軟件的入口,其主要功能如下:(1)完成UART的初始化,包括波特率、數(shù)據(jù)位、奇偶校驗、停止位;(2)完成SPI的初始化;(3)完成Timer初始化,包括定時器工作模式、定時器分辨率等。
2.3.2 Sw_Config
Sw_Config主要功能為:(1)ID1、ID2、ID3離散量值的獲取;(2)實現(xiàn)對交換機不同工作模式的配置。
系統(tǒng)上電后,單片機首先讀取外部ID1~ID3的離散量值,然后根據(jù)離散量值對交換機進(jìn)行工作模式配置,即當(dāng)離散量ID1、1D2、ID3的取值為001b時,交換機配置為獨立工作模式;當(dāng)離散量ID1、DI2、ID3的取值為010b時,交換機配置為級聯(lián)工作模式;當(dāng)ID1、DI2、ID3的取值為其他時,交換機配置模式為下電模式。
2.3.3 BIT
機載交換機系統(tǒng)周期性BIT測試交換機硬件、交換機端口連接狀態(tài)。交換機硬件的檢測內(nèi)容是交換機是否有故障,交換機端口連接狀態(tài)內(nèi)容包含端口狀態(tài)(Up/Down)、端口速度(10 Mb/s、100 Mb/s、1 000 Mb/s)、傳輸方式(Full-Duplex/Half-Duplex)。在進(jìn)行周期性BIT時,檢測到任一交換機故障,則軟件終止運行。
2.3.4 UART/SPI/TIMER
UART類實現(xiàn)串口收發(fā)數(shù)據(jù),周期性BIT測試結(jié)果無故障后輸出測試結(jié)果。
SPI類實現(xiàn)單片機對交換機的讀寫操作,SPI類包含SPI的讀寫操作。
Timer實現(xiàn)整個交換機系統(tǒng)的精確定時,當(dāng)定時周期到時,完成周期性BIT測試。
3 機載千兆交換機系統(tǒng)實現(xiàn)
根據(jù)上述基于單片機嵌入式千兆交換機系統(tǒng)硬件平臺及軟件設(shè)計,軟件在Keil 4.5.3開發(fā)環(huán)境上完成開發(fā),并通過J-LINK仿真器將程序下載到單片機上。通過串口調(diào)試助手,對以下3種情形的實現(xiàn)進(jìn)行驗證。
(1)BIT測試結(jié)果無故障,離散量ID1、1D2、ID3的取值為001b時,交換機配置為獨立工作模式——模式1。當(dāng)SW1/SW2/SW3的Port7分別連接到PC上,實現(xiàn)驗證結(jié)果如圖4所示。
(2)BIT測試結(jié)果無故障,散量ID1、DI2、ID3的取值為010b時,交換機配置為級聯(lián)工作模式——模式2。當(dāng)SW1的Port7連接到PC時,實現(xiàn)驗證結(jié)果如圖5所示。
(3)BIT測試結(jié)果無故障,離散量ID1、1D2、ID3的取值為非001b/010b時,交換機配置為靜默工作模式——模式3,此時所有的交換機任何時候均處于down(非連接)狀態(tài)。實現(xiàn)驗證結(jié)果如圖6所示。
(4)BIT測試結(jié)果有故障,SW1/SW2/SW3實現(xiàn)驗證結(jié)果與圖6一致,即任何時候均處于down(非連接)狀態(tài)。
4 結(jié)束語
本文設(shè)計了一種基于單片機的嵌入式千兆交換機系統(tǒng)硬件平臺及軟件,根據(jù)外部離散量實現(xiàn)交換機不同工作模式的配置,實現(xiàn)了交換機的BIT測試功能。
采用基于UML的面向?qū)ο笤O(shè)計方法,使得低層驅(qū)動獨立而不依賴硬件平臺,上層應(yīng)用具有良好的移植性。機載交換機系統(tǒng)軟件已在不同的單片機平臺上測試運行,均表明功能正常,滿足移植性、擴(kuò)展性要求。本文對機載交換機進(jìn)行自測試,可以有效地實現(xiàn)交換機健康管理,為故障診斷、維護(hù)測試的研究進(jìn)行了一些探索。
參考文獻(xiàn)
[1] 徐科華,陳謀,徐揚,等.民用飛機機載電子系統(tǒng)分布式體系架構(gòu)研究[J].工程設(shè)計學(xué)報,2012,19(6):494-498.
[2] 黃志球,徐丙鳳,闞雙龍,等.嵌入式機載軟件安全性分析標(biāo)準(zhǔn)、方法及工具研究綜述[J].軟件學(xué)報,2012,25(2):200-218.
[3] 張鋒,劉美.基于嵌入式與物聯(lián)網(wǎng)技術(shù)的城市綠化在線監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,40(7):13-16,20.
[4] 王道乾,張楊.基于UML的嵌入式系統(tǒng)模型設(shè)計[J].計算機科學(xué),2006,33(11):293-295.
[5] 車葵,程保中,牛曉太,等.UML在嵌入式系統(tǒng)開發(fā)中的研究與應(yīng)用[J].計算機工程與設(shè)計,2009,30(15):3559-3564.
[6] Broadcom Corporation.BCM53118 datasheet[Z].2009.
[7] Texas Instruments Incorporated. Stellaris TM4C1231H6PGE,Microcontroller datasheet[Z].2011.