文献标识码: 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.