基于SoC技术的1553B总线软件设计
摘 要:介绍基于1553B SoC的软件设计,针对GJB289A-97中规定的总线控制器和远程终端的相关要求提出一种基于1553B SoC模块的软件设计实现方法。使得该MBI模块在兼容之前版本的驱动接口情况下,提高可靠性,减少子系统主机的资源开销。
关键词:1553B总线;总线控制器(BC);远程终端(RT)
中图分类号:TP273 文献标识码:A 文章编号:1672-7800(2011)03-0046-02
基金项目:武器装备预研重点基金项目(9140A1601)
作者简介:赵彬(1985-),男,陕西铜川人,西安石油大学计算机学院硕士研究生,研究方向为计算机体系结构;田泽(1965-),男,中航工业西安航空计算技术研究所研究员、硕士生导师,研究方向为嵌入式系统及航空微电子关键技术。
0 引言
美国军用数据总线标准MIL-STD-1553B是一种集中控制式、命令/ 响应、时分制的串行总线标准,具有较高的可靠性、确定的传输延迟、较强的容错能力等特点, 已经在航空、航天、舰船和车载等领域得到了广泛的应用。随着航空电子系统的不断发展,其系统越来越复杂,处理的数据量越来越大,使用基于1553B SoC的MBI模块能够有效提高系统的集成度和可靠性,减轻子系统主机的负担,减轻模块重量。
1 1553B总线简介
1553总线采用指令/响应式协议,属于集中式控制,通信系统由一个总线控制器(BC)和最多30个远程终端(RT)组成。数据交换完全由BC控制,RT执行完总线命令后,通过状态字报告消息传输情况,响应时间限定在4~12微秒以内,保证系统良好的时钟同步能力。
1553协议定义了3类16位的数据字、命令字、状态字,加上每个字起始的3位同步头和字结束的奇偶校验位,每字传送20位格式,1553字的格式如图1所示。
2 MBI模块介绍
基于1553B SoC的MBI模块,其绝大部分功能都已集成到SoC内部,外围仅需要少量的电源、时钟等外围电路即可实现MBI模块功能。如图2所示。
PC-MBI模块使用的主机接口为标准PCI接口,子系统主机通过该接口可直接访问MBI模块中SoC内部的64Kbyte DPRAM空间和IO寄存器。子系统通过操作DPRAM中的信息区来控制SoC进行相关的状态切换和收发数据。
3 软件设计
3.1 航空电子通信系统
航空电子通信系统分为5层:应用层、驱动层、传输层、数据链路层和物理层,如图3所示。MBI模块软件也遵循航空电子通信系统的划分,其中物理层与数据链路层由SoC芯片硬件实现,传输层由驻留在SoC芯片上的传输层软件实现,驱动层由驻留在主机上的驱动软件实现,应用层与特定的子系统有关,由子系统应用软件实现其功能。层与层之间相对独立,较低层向较高层提供服务。
3.2 MBI模块软件
MBI模块的软件由驱动软件和传输软件组成,实现1553B总线通信和网络管理。在驱动软件中出过MBI模块相关API接口函数外,还包含有主机接口的初始化函数接口。
主机和MBI之间的通信采用“命令/响应”方式,即主机向MB I模块DPRAM中命令字单元写相应命令,而MBI执行该命令之后,会在DPRAM中响应字单元写响应字。
MBI主要执行的命令有:初始化、自测试、启动、停止、软复位等,
3.2.1 MBI传输软件
传输软件是运行于MBI模块的1553B SoC上的软件,使用ARM公司的ADS1.2开发。传输软件固化于MBI模块的Flash中,系统上电后,由SoC从Flash中将传输软件搬运到片内的SRAM中运行。
传输软件用于控制总线上的通信行为,主要功能是解释并执行驱动层的命令,进行1553B 总线消息处理、通道切换、同步等各项操作,通过状态字及数据缓冲将命令响应结果回传给驱动层,完成交互。传输软件结构如图4所示。
3.2.2 MBI驱动软件
驱动软件是子系统主机系统软件与传输软件的接口软件,为实现子系统主机应用软件的管理功能,驱动软件应能控制完成SoC的初始化、启动、停止、启动自测试、监控SoC的状态、控制SoC和子系统主机的数据交换。在MBI模块的驱动软件设计中,保持与之前MBI模块驱动API接口统一,能够做到MBI模块的无缝升级。驱动软件结构如图5所示。
基本接口驱动提供:主机读、写MB I模块DPRAM,主机读、写MB I模块IO端口的基本接口函数。
MB I控制程序提供了:主机向MB I模块DPRAM命令字单元写初始化命令、自测试命令、启动命令、停止命令、加载WDT命令,然后获取MB I模块响应字的相应驱动程序接口函数。
TMR控制程序提供了主机读、写MBI模块上RTC以及读取BC与RT的RTC差值等驱动程序。系统控制驱动程序提供了主机更改MB I模块作为BC时的子系统模式,获取RT通道状态和通道切换状况,以及软复位MB I模块的驱动程序。
消息控制程序提供了主机从MB I模块接收消息缓冲区中提取消息数据以及向发送消息缓冲区写消息数据,以及找出两个消息号之间,接收消息数据已经刷新的消息逻辑号的驱动接口函数。
中断服务程序提供了主机依据MB I模块所发出的中断和记录的中断原因,进行相关中断处理的过程。MB I中断主机的原因有:紧急消息中断、看门狗上溢中断、自测试失败中断、RT上下网中断、热备份RT同时上线中断等。
3.2.3 主机接口初始化函数
由于该MBI模块所采用的主机接口为PCI接口,所以在为MBI的软件设计中应当考虑添加初始化主机接口的函数接口。PC--MBI模块是位于PC机或工控机中的1553B总线仿真模块,其所对应的子系统主机为Windows平台的主机,所以主机接口的驱动开发应遵循Windows平台下的驱动开发规则。
一般的Windows下的驱动开发可选用DDK、DriverStudio和WinDriver这3种开发工具,为了缩短开发周期并保证驱动程序的稳定性和可靠性,我们在这里选择比较智能的WinDriver作为PCI主机接口的驱动开发工具。该工具可直接生成我们需要的初始化PCI设备接口、读写PCI存储空间和IO空间的驱动接口,在MBI模块的驱动软件开发中我们只需调用相应的读写PCI接口即可完成对SoC片内DPRAM的访问。
4 结束语
基于1553 SoC的MBI模块极大地提高了MBI模块的集成度和可靠性,MBI模块的软件保持与之前版本的驱动API兼容,这样就将用户后续升级的代价降到最低。方便用户以最低的成本提高整个系统的可靠性和稳定性。
参考文献:
[1] 郭蒙,田泽,蔡叶芳,等.1553B 总线接口SoC 验证平台的实现[J].航空计算技术,2008(6).
[2] 许宏杰,田泽,袁晓军.高速1553B IP 核的设计与实现[J].计算机技术与发展,2009(12).
[3] 李新民,张旭.小型化1553B通信协议芯片Mini2ACE的开发和应用 [J] .计算机技术与发展,2009(2).
(责任编辑:周晓辉)