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