文獻(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),為滿(mǎn)足乘客旅途及舒適度要求而逐步提供了機(jī)上休閑及娛樂(lè)功能,當(dāng)乘客娛樂(lè)功能及數(shù)據(jù)迅速發(fā)展而帶來(lái)大量數(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)的面向過(guò)程開(kāi)發(fā)方法已不適應(yīng)當(dāng)前嵌入式軟件的大規(guī)模、高復(fù)雜的需求,面向?qū)ο?/a>設(shè)計(jì)技術(shù)采用封裝、繼承等抽象機(jī)制降低了系統(tǒng)復(fù)雜性,在嵌入式軟件的開(kāi)發(fā)過(guò)程過(guò)中用來(lái)提高軟件的可重用性、可擴(kuò)展性[4]。本文設(shè)計(jì)了一種基于單片機(jī)的嵌入式千兆交換機(jī)系統(tǒng),實(shí)現(xiàn)對(duì)交換機(jī)進(jìn)行配置以及自測(cè)試,從而實(shí)現(xiàn)飛機(jī)娛樂(lè)系統(tǒng)對(duì)大量數(shù)據(jù)傳輸?shù)囊?。采用面向?qū)ο蟮腢ML開(kāi)發(fā)技術(shù)[5],使嵌入式開(kāi)發(fā)后軟件具有可移植性及良好擴(kuò)展性。
1 機(jī)載千兆交換機(jī)系統(tǒng)總體設(shè)計(jì)
機(jī)載交換機(jī)系統(tǒng)需根據(jù)外部ID1~ID3離散量的不同配置,實(shí)現(xiàn)交換機(jī)的不同工作模式配置,并通過(guò)CPCI對(duì)外提供20路千兆以太網(wǎng);同時(shí)需周期性對(duì)交換機(jī)進(jìn)行自測(cè)試,將測(cè)試結(jié)果通過(guò)串口輸出。
根據(jù)交換機(jī)系統(tǒng)需求,本文設(shè)計(jì)了一種機(jī)載交換機(jī)系統(tǒng)。通過(guò)單片機(jī)實(shí)現(xiàn)交換機(jī)不同工作模式的配置和自測(cè)試(BIT),實(shí)現(xiàn)對(duì)外提供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)口,對(duì)交換機(jī)進(jìn)行讀寫(xiě)操作可通過(guò)SPI總線;同時(shí)此交換機(jī)有下電控制寄存器,可實(shí)現(xiàn)異常狀態(tài)下低功耗工作要求。
根據(jù)系統(tǒng)需求及嵌入式軟件存儲(chǔ)要求,單片機(jī)程序存儲(chǔ)空間應(yīng)不低于128 KB的Flash,輸出測(cè)試結(jié)果的串口不少于1路,對(duì)交換機(jī)讀寫(xiě)操作的SPI不少于1路,BIT測(cè)試觸發(fā)的定時(shí)器不少于1個(gè),GPIO不少于3個(gè),同時(shí)單片機(jī)應(yīng)有支持調(diào)試接口的JTAG。
根據(jù)上述要求,單片機(jī)采用TI的TM4C1231H6PGE[7](簡(jiǎn)稱(chēng)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斷開(kāi);(2)3個(gè)交換機(jī)級(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測(cè)試、總線接口。為實(shí)現(xiàn)嵌入式交換機(jī)系統(tǒng)軟件的移植性、擴(kuò)展性,本文采用基于UML的面向?qū)ο笤O(shè)計(jì)方法。交換機(jī)系統(tǒng)的靜態(tài)模型如圖2。類(lèi)Sw_Config實(shí)現(xiàn)交換機(jī)配置功能;類(lèi)BIT實(shí)現(xiàn)對(duì)交換機(jī)硬件檢測(cè)、交換機(jī)狀態(tài)的檢測(cè)結(jié)果輸出;類(lèi)Timer實(shí)現(xiàn)整個(gè)軟件中精確定時(shí)事件觸發(fā);類(lèi)UART實(shí)現(xiàn)通過(guò)串口收發(fā)數(shù)據(jù);類(lèi)SPI實(shí)現(xiàn)單片機(jī)對(duì)交換機(jī)的讀寫(xiě)操作;類(lèi)Initialization實(shí)現(xiàn)對(duì)定時(shí)器、SPI、UART的初始化配置。
2.2 軟件流程圖
機(jī)載交換機(jī)系統(tǒng)軟件的運(yùn)行流程如圖3。首先對(duì)所需要使用的資源進(jìn)行初始化,包括定時(shí)器、串口、SPI,當(dāng)初始化成功后讀取ID1~ID3離散量,根據(jù)不同離散量值完成對(duì)交換機(jī)的配置;周期執(zhí)行BIT測(cè)試,在BIT檢測(cè)結(jié)果無(wú)故障后通過(guò)串口將測(cè)試結(jié)果輸出。在初始化失敗或者周期執(zhí)行BIT測(cè)試時(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)對(duì)交換機(jī)不同工作模式的配置。
系統(tǒng)上電后,單片機(jī)首先讀取外部ID1~ID3的離散量值,然后根據(jù)離散量值對(duì)交換機(jī)進(jìn)行工作模式配置,即當(dāng)離散量ID1、1D2、ID3的取值為001b時(shí),交換機(jī)配置為獨(dú)立工作模式;當(dāng)離散量ID1、DI2、ID3的取值為010b時(shí),交換機(jī)配置為級(jí)聯(lián)工作模式;當(dāng)ID1、DI2、ID3的取值為其他時(shí),交換機(jī)配置模式為下電模式。
2.3.3 BIT
機(jī)載交換機(jī)系統(tǒng)周期性BIT測(cè)試交換機(jī)硬件、交換機(jī)端口連接狀態(tài)。交換機(jī)硬件的檢測(cè)內(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í),檢測(cè)到任一交換機(jī)故障,則軟件終止運(yùn)行。
2.3.4 UART/SPI/TIMER
UART類(lèi)實(shí)現(xiàn)串口收發(fā)數(shù)據(jù),周期性BIT測(cè)試結(jié)果無(wú)故障后輸出測(cè)試結(jié)果。
SPI類(lèi)實(shí)現(xiàn)單片機(jī)對(duì)交換機(jī)的讀寫(xiě)操作,SPI類(lèi)包含SPI的讀寫(xiě)操作。
Timer實(shí)現(xiàn)整個(gè)交換機(jī)系統(tǒng)的精確定時(shí),當(dāng)定時(shí)周期到時(shí),完成周期性BIT測(cè)試。
3 機(jī)載千兆交換機(jī)系統(tǒng)實(shí)現(xiàn)
根據(jù)上述基于單片機(jī)嵌入式千兆交換機(jī)系統(tǒng)硬件平臺(tái)及軟件設(shè)計(jì),軟件在Keil 4.5.3開(kāi)發(fā)環(huán)境上完成開(kāi)發(fā),并通過(guò)J-LINK仿真器將程序下載到單片機(jī)上。通過(guò)串口調(diào)試助手,對(duì)以下3種情形的實(shí)現(xiàn)進(jìn)行驗(yàn)證。
(1)BIT測(cè)試結(jié)果無(wú)故障,離散量ID1、1D2、ID3的取值為001b時(shí),交換機(jī)配置為獨(dú)立工作模式——模式1。當(dāng)SW1/SW2/SW3的Port7分別連接到PC上,實(shí)現(xiàn)驗(yàn)證結(jié)果如圖4所示。
(2)BIT測(cè)試結(jié)果無(wú)故障,散量ID1、DI2、ID3的取值為010b時(shí),交換機(jī)配置為級(jí)聯(lián)工作模式——模式2。當(dāng)SW1的Port7連接到PC時(shí),實(shí)現(xiàn)驗(yàn)證結(jié)果如圖5所示。
(3)BIT測(cè)試結(jié)果無(wú)故障,離散量ID1、1D2、ID3的取值為非001b/010b時(shí),交換機(jī)配置為靜默工作模式——模式3,此時(shí)所有的交換機(jī)任何時(shí)候均處于down(非連接)狀態(tài)。實(shí)現(xiàn)驗(yàn)證結(jié)果如圖6所示。
(4)BIT測(cè)試結(jié)果有故障,SW1/SW2/SW3實(shí)現(xiàn)驗(yàn)證結(jié)果與圖6一致,即任何時(shí)候均處于down(非連接)狀態(tài)。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種基于單片機(jī)的嵌入式千兆交換機(jī)系統(tǒng)硬件平臺(tái)及軟件,根據(jù)外部離散量實(shí)現(xiàn)交換機(jī)不同工作模式的配置,實(shí)現(xiàn)了交換機(jī)的BIT測(cè)試功能。
采用基于UML的面向?qū)ο笤O(shè)計(jì)方法,使得低層驅(qū)動(dòng)獨(dú)立而不依賴(lài)硬件平臺(tái),上層應(yīng)用具有良好的移植性。機(jī)載交換機(jī)系統(tǒng)軟件已在不同的單片機(jī)平臺(tái)上測(cè)試運(yùn)行,均表明功能正常,滿(mǎn)足移植性、擴(kuò)展性要求。本文對(duì)機(jī)載交換機(jī)進(jìn)行自測(cè)試,可以有效地實(shí)現(xiàn)交換機(jī)健康管理,為故障診斷、維護(hù)測(cè)試的研究進(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] 車(chē)葵,程保中,牛曉太,等.UML在嵌入式系統(tǒng)開(kāi)發(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.