张姣
摘要:GJB289A总线是国产化总线中应用广泛的一种数据总线,基于MBI模块可实现该总线通信,具有小型化、通用化和集成度高的优点。以往关于MBI模块的介绍着重模块本身的软硬件设计,关于基于MBI模块与子系统主机端实现GJB289A总线通信的设计介绍很少。本文着重于介绍软件实现方法,将MBI模块通信软件分为传输层协议和驱动层协议,对上电和正常数据传输过程中各自的职能进行分析,为基于MBI实现GJB289A总线通信的软件设计人员提供参考。
关键词:GJB289A总线;MBI模块;子系统主机;传输层协议;驱动层协议。
1引言
GJB289A总线是国内航空、航天、舰船及坦克领域中广泛应用的数据总线,传输速率可达到10Mbps。目前国内已有厂家研发出了GJB289A总线的协议处理芯片,满足了小体积低功耗,能适应恶劣环境的要求。将协议处理芯片、微处理器及多种外设资源集成在SoC片上系统中,形成智能化、通用化、小型化的模块,再外搭辅助电路组成MBI模块,可用于各种GJB289A总线通信场景。本文主要讨论MBI模块实现GJB289A通信的软件实现方法。
2GJB289A总线原理
GJB289A总线系统由若干个子系统和数据总线组件构成。子系统是从数据总线接收数据服务的设备,终端是具有GJB289A总线接口的电子组件,是数据总线与子系统间互连的接口,终端分为总线控制器BC、远程终端RT和总线监控器BM。
总线控制器BC是总线系统中组织信息传输的终端,远程终端RT是总线系统中除了总线控制器和总线监控器之外的所有终端,总线监控器BM是总线系统中接收、记录总线上传输的信息并有选择地提取信息的终端。
3MBI功能介绍
MBI是由GJB289A總线接口SoC芯片、GJB289A数据收发电路、电源转换电路、时钟电路、复位电路、以太网接口模块、UART接口等电路组成的通讯接口模块,与主机端的接口为PCI,是连接GJB289A总线与子系统主机端的桥梁。
其中GJB289A总线接口SoC芯片是高性能、智能化、通用化和小型化的通信处理芯片,可依靠其内嵌的协议处理器核实现GJB289A中规定的RT/BC/BM功能。GJB289A协议处理芯片的主机接口与子系统主机连接,子系统主机通过访问协议处理芯片内部的双端口存储器,实现对GJB289A数据总线数据的处理和对MBI模块的控制。
4基于MBI的GJB289A通信实现
在GJB289A航空电子通信系统中,子系统通过接口模块与GJB289A总线交互数据。本研究中MBI是直接与GJB289A总线交连的接口模块,将总线上的数据转发给主机端,主机端基于MBI模块完成GJB289A数据的收发。
软件架构
GJB289A总线通信中,MBI和主机的工作包括初始化过程和数据交互过程。初始化过程中启动MBI模块,使其具备与GJB289A数据总线交互能力,在成功初始化后,MBI模块和主机同GJB289A总线上的其他子系统终端进行数据交互。
GJB289A通信软件包括传输软件、驱动软件和应用软件。软件的分工描述为:
a)传输软件完成传输层协议,负责GJB289A总线上的数据传输。传输软件驻留在MBI中,主要完成MBI传输层功能,包括MBI初始化、运行、与GJB289A总线交互数据等。
b)驱动软件完成驱动层协议,负责驱动MBI模块并控制其工作状态。驱动软件驻留在主机端,驱动MBI模块工作及控制MBI的运行状态。
c)应用软件完成应用层协议,负责对接收MBI模块的数据缓冲区的数据进行处理。GJB289A应用软件驻留在主机中,进行数据解析处理。
初始化过程
上电后,MBI进行上电自检测及初始化配置。初始化配置完后MBI进入停止工作状态,循环等待主机端驱动软件的工作命令。
主机首先判断MBI是否为停止状态,然后主机中驱动软件在MBI停止状态下向MBI模块发送命令。驱动软件在命令字偏移地址中根据DPRAM中消息定义写入置为RT模式、初始化和启动控制命令字,使MBI分别执行置为RT模式、初始化和启动命令,等待MBI响应。初始化工作过程如下图所示。
MBI在读到主机命令字后,将命令字单元清0,执行命令字指定的操作,然后将命令字转存到响应字单元。驱动软件三种命令的响应分别为:
a)置为RT模式命令,MBI进行RT地址配置,RT地址可通过MBI读离散量获取或者由主机端进行设置,MBI在对应的缓冲区中写入获取的RT地址值。
b)初始化命令,MBI初始化包括初始化DPRAM中接收和发送描述区、初始化协议处理器寄存器、初始化RT地址和初始化并打开中断。
c)启动命令,主机端向MBI发送启动命令,MBI收到命令后,将当前状态字置为启动状态,启动协议处理器进行通信。
数据传输过程
MBI完成所有初始化工作后,中断功能已打开,MBI传输软件通过中断方式进行GJB289A总线上的数据传输。MBI传输软件进入标准中断服务程序后,获取当前处理的中断记录表项指针,根据指针指向的地址获取对应的描述符指针,如果指针落在发送描述符区域,则进入发送消息的处理程序,如果指针落在接收描述符区域,则进入接收消息处理程序。
5总结
本文首先介绍了GJB289A原理及MBI模块的功能,然后论述了基于MBI模块实现GJB289A总线通信的软件设计方法,从主机端和MBI端的配置过程及参数设置方面详细说明了如何完成初始化配置过程和数据传输过程,完成了子系统中GJB289A总线通讯,为基于MBI模块实现GJB289A总线通信的软件设计人员提供实践参考。
参考文献
[1]杨峰,廖寅龙,王鑫.GJB289A总线应用层协议分析及研究[J].电子技术应用.2016,8(3):1400-1414.
[2]田泽,王菁,寇学锋.高速GJB289A总线技术综述[J]. 电子技术应用.2016,24(11):31-32.
[3]郭蒙,索高华,霍卫涛.小型化GJB289A数据总线协议处理SoC芯片设计[J]. 电子技术应用.2016,24(11):31-32.