马豪凡 薛志远
摘要:根据1553B总线在空空导弹上的应用,提出一种基于FPGA的1553B总线协议设计与实现方法。分析了1553B总线在空空导弹上的通信需求,对1553B总线协议进行设计,给出了1553B总线解码、编码、命令字处理等关键技术的设计方法,最终实现了空空导弹1553B总线通讯。经验证,1553B总线协议满足空空导弹通讯需求,且运行稳定。
关键词:1553B总线协议;空空导弹;FPGA;芯片
中图分类号:TP368.11
文献标识码:A
DOI:10.15913/j .cnki.kj ycx.2019.11.023
1553B总线是航空电子系统常用的数据总线,是空空导弹与载机通信采用的主要通讯总线,目前中国空空导弹研究院的1553B设计多采用协议芯片方式,协议芯片价格昂贵,且体积偏大。FPGA(现场可编程门阵列)内部集成大量可编程器件门电路,具有设计灵活、可重构、并行性好等优点,是空空导弹核心处理芯片。本文通过在FPGA上实现1553B协议替代协议芯片的方法,提高了1553B总线设计的灵活性,减少了电路设计的成本与面积。
本文分析了空空导弹与载机之间的通讯需求,总结出基于空空导弹的1553B总线协议功能和指标,编写了1553B总线协议逻辑,并通过了测试验证。
1
1553B总线设计功能要求
1.1 空空导弹1553B总线通讯需求
導弹使用1553B总线与载机进行通讯,载机需要向导弹查询其内部数据更新情况,并能够控制接收导弹内部数据和发送消息字给导弹。每个消息都是以数据字的形式进行传输,最多包含30个数据字[1]。
1553B总线系统由总线控制器(BC)、远程终端(RT)和总线监视器(BM)组成,载机与导弹在1553B总线系统中分别为BC和RT。载机与导弹通讯过程为:载机通过外围接口对导弹RT地址进行设置,以命令字和数据字的形式向导弹发送信息;导弹以状态字响应载机的命令;载机以读取矢量字的方式查询导弹的数据变化,并通过命令字要求导弹发送数据,同时导弹根据内部数据对矢量字进行置数,以方便载机知悉导弹内部数据变化[2]。
1.2 1553B总线通信需求分析
根据对空空导弹1553B通讯需求描述,总结出空空导弹1553B总线功能要求[1]:①具备响应BC命令字和数据字发送和接收功能的RT端;②能够通过外围接口对RT地址进行设置;③接收空间子地址应不少于10个,每个子地址能够存储至少30个数据字;④发送空间子地址应不少于10个,每个子地址能够存储至少30个数据字;⑤能够响应载机的方式代码发送矢量字。
1.3 1553B协议逻辑设计
本文采用Xilinx公司的7K325T芯片,使用ISE14.7编译环境进行逻辑设计。考虑到空空导弹通讯需求与所实现1553B总线的通用性,本设计具备除了正常响应BC端的命令字外,同时具备数据总线、地址总线和控制总线,能够供CPU对RT端进行设置、读写数据和矢量字[3]。发送空间和接收空间各具有30个子地址,提供每个子地址32个16 bit存储空间,发送和接收空间示意图如图1所示。
基于空空导弹1553B总线的整体方案如图2所示,分为四个部分[4]:接收模块解码曼彻斯特码,识别接收到的命令字和数据字,并进行缓存;RT处理器对接收模块的一帧消息进行校验,根据命令字的类型对存储空间进行操作,完成数据存储或者发送;存储空间存储接收数据、发送数据、矢量字、RT地址等信息,并具备并行接口与CPU进行通信;发送模块在规定时间内发送相应的消息字。
1.3.1 接收模块
曼彻斯特码外部输入接收模块,经过预处理后,输入解码模块,解码模块首先进行同步字头检测,解析出命令字和数据字,并进行奇偶校验,根据消息字类型存入相应的FIFO中,FIFO输出命令字和数据字个数给RT处理器[5],接收模块设计如图3所示。在1553B总线传输过程中,高电平会出现衰减延时情况,本设计为保证曼彻斯特码解码的可靠性,对输入信号进行预处理,如图4所示。
预处理模块在P端和N端两个信号的上升沿进行信号翻转,得出整形之后的曼彻斯特码[6]。
曼彻斯特码双极编码信号I/O解码为逻辑1,双极编码信号O/I解码为逻辑0,如图5所示。
1553B信号的传输速率为1 Mb/s,本设计在解码过程中采用8 MHz时钟,每位数据采8个点,提高解码的可靠性。首先识别同步字头,之后根据时序对同步字头后面数据进行提取。在设计中采用datasftreg[0:4]和sync_sftreg[0: 23]两个寄存器,将预处理后信号通过8 MHz时钟由高位到低位依次转入data_sftreg寄存器中,同时data_sftreg[0]将数据按照[23]到[o]的顺序依次存人sync_sftreg寄存器中,当data_sftreg[3]和data_sftreg[4]为异或时,对sync_sftreg寄存器进行检测,若sync_sftreg[0: 11]全为1,sync_sftreg[12:23]全为O,则说明消息字为命令字;反之,为数据字。该部分巧妙地使用了同步字头占用三位字长且高低电平各占一半,同时在下一位数据来临时必存在高低电平的特点,准确地检测到同步字头。根据检测到同步字头的时序,对后续数据进行延时7个时钟检测,并取反,准确得到所解码的数据。将得到的消息字依照类型存人响应FIFO中,等待RT处理器处理。
1.3.2 RT处理器
1553B总线协议具有很严格的传输机制,RT处理器对接收模块的命令字进行解析,做出相应的响应。在16位的命令字中包含了RT地址、子地址、发送接收、数据个数、方式代码等多种信息,如图6所示。
RT处理器对命令字进行解析,并生成状态字和存储空间的控制指令。如图7所示,根据命令字所解析的内容,RT处理器对RT地址是否正确、RT执行接收/发送命令、命令字是子地址/方式代码形式、接收数据字个数与命令字中要求数据个数是否一致等内容进行判断,并将相应控制指令的输出至存储模块,根据校验结果生成状态字,在判断消息正确传输之后产生中断。
1.3.3 存储模块
存储模块主要完成两项内容:识别RT处理器的控制指令,对存储空间进行操作;与CPU进行数据通讯。
如图8所示,存储模块若接收接收指令,按照子地址与数据字个数将接收模块的数据存储到相应接收空间;若接收发送指令,按照子地址与数据字个数将发送空间相应地址数据发送至发送模块;若为方式代码命令,发送矢量字至发送模块。
总线接口支持TI公司的EMIF接口[4],可以对RT地址进行设置,对矢量字进行置数,读取接收空间数据,并发送空间的数据存储[3]。
1.3.4 发送模块
发送模块主要由FIFO模块、发送控制器与曼彻斯特码编码组成,如图9所示。首先存储模块将状态字与消息字按照先后顺序写入FIFO,FIFO将输出非空信号;之后发送控制器从FIFO中读取数据,并对数据进行按照协议发送消息字时间周期把数据发送到曼彻斯特码编码器中;最后曼彻斯特码编码器以2 MHz时钟对数据进行编码,若数据为逻辑1,编码器将P端编译为1/O,若数据为逻辑0,编码器将输出P端O/1;N端输出反之[7]。
2 仿真测试
本项目测试分为两个阶段,第一阶段为逻辑上的仿真测试,第二阶段为硬件电路测试。
2.1 仿真测试
编译环境采用的Xilinx公司的ISE开发软件,仿真软件采用modelsim软件。仿真测试软件仿照1553B总线BC端,发送相应命令字和数据字,检测1553B协议RT端输出是否符合要求,本次共做了3次仿真测试。
测试一:仿真激励发送接收数据指令的命令字和一个数据字以及对相应地址进行读取。激励发出命令字1OO1O_010000 00001 1,该命令字表示往地址为18的RT端子地址为16的空间发送一个数据字,紧接着后面发送数据字1001001000000001_1,如图10所示。
测试二:仿真激励发送发送数据指令的命令字,观测RT的响应和发送的数据。激励发出命令字IOOI0 1 10000_00011 1,该命令字表示地址为18的RT端,将子地址为16的三个数据发送到BC端,如图11所示。
测试三:仿真激励在矢量字空间写数据,发送命令字。其中,所发送的命令字为10010 1 00000 10000 1,该命令字采用方式代码的形式,是地址为18的RT端发送矢量字,如图12所示。
通过仿真波形可以看出,RT端能够正确地识别BC所发的命令字,并响应相应数据。
2.2 硬件测试
1553B总线硬件测试环境如图13所示。设计电路通过DSP仿真器与PC端连接,通过耦合器与1553B测试盒子连接,1553B测试盒与PC端连接,构成一个闭環。PC端对1553B测试盒的BC端、RT地址、子地址、传输类型进行设置,通过TI公司CCS软件对DSP进行传输数据读写,以此方式对传输过程进行验证。
PC通过上位机软件对1553B测试盒设置,设置RT地址为18,设置BC发送数据,设置为随机数据,循环向RT端发送命令字和数据字,通过对照BC发送的数据和CCS读取数据,本文设计的1553B总线传输数据正常,满足空空导弹通讯需求。
3 总结
本文根据空空导弹与载机之间的通讯需求,完成基于FPGA的1553B总线协议RT端设计。仿真测试表明,该设计满足基于空空导弹的通讯需求,且能够稳定运行。该设计方法灵活性高,为之后空空导弹低成本、一体化、小型化设计提供有效支持。
参考文献:
[1]易凡,雷杰.1553B总线在某制导控制系统中的设计与实现[J].航空兵器,2011(2):61-64.
[2]陈亮,刘丽霞,刘经宇.基于1553B协议的导弹控制系统信息流设计探讨[J]。计算机测量与控制,2012,20(8):2180-2182, 2196.
[3]孙涛,张华春.基于1553B协议的总线控制器和远程终端的FPGA实现[J].中国科学院大学学报,2010,27(4): 523-529.
[4]方晨.1553B总线协议控制器设计[D].哈尔滨:哈尔滨工业大学,2010.
[5]滕明晖,张瑞峰.基于1553B总线协议的解码器设计与FPGA实现[J].电子技术,2011,38 (3): 27-29.
[6]潘亮,司斌,张从霞,等.基于FPGA的1553B总线曼彻斯特编解码器设计与实现[J].航空兵器,2018(2): 83-88.
[7]解彦.基于FPGA的1553B远置终端IP核的设计与实现[D].北京:中国科学院研究生院(空间科学与应用研究中心),2011.