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