基于FPGA的1553+B总线远程终端的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文章编号:1001-9081(2014)S2-0055-04
基于FPGA的1553B总线远程终端的设计与实现
商伟峰1*,冯建文1,刘小旦2
(1.杭州电子科技大学计算机学院,杭州310018;2.杭州航天电子技术有限公司,杭州310052)
(*通信作者电子邮箱shangwfa@)
摘要:为了降低1553B节点的成本和提高应用开发的灵活性,设计并实现一种基于现场可编辑逻辑器件(FPGA)的1553B总线的远程终端系统。
首先根据1553B总线协议和远程终端在整个总线中的功能进行了模块的划分,然后用Verilog HDL硬件描述语言对各个功能模块进行了实现,并使用Modelsim-altera软件对各个模块的功能进行了仿真。
最后通过quartus13.0生成下载文件,下载至板卡上进行测试,结果显示1553B总线远程终端满足项目要求的各项性能指标。
关键词:1553B协议;双余度总线;FPGA;Verilog HDL;远程终端
中图分类号:文献标志码:A
Design and implementation of1553B remote terminal based on FPGA
SHANG Weifeng1*,FENG Jianwen1,LIU Xiaodan2
(1.School of Computer Science and Technology,Hangzhou Dianzi Uiversity,Hangzhou Zhejiang310018,China;
2.Hangzhou Aerospace Electronic Technology Company Limited,Hangzhou Zhejiang310052,China)
Abstract:In order to reduce the cost of the1553B remote node and improve the flexibility of the application and development,a1553B bus remote terminal based on FPGA(Field Programmable Gate Array)was designed and implemented in the paper.Firstly,according to the protocols of1553B bus and the function of the remote terminal in the bus system,the system was divided into several modules.Then all the functional modules were realized by Verilog HDL,and simulated with Modelsim-altera software.The result of testing on the board shows that the performances meet the design requirement.
Key words:1553B protocol;dual-redundancy bus;FPGA(Field Programmable Gate Array);Verilog HDL;remote terminal
0 引言
1553B总线是一种集中控制的时分制指令/响应的串行多路传输总线,是美国军方于20世纪80年代为军用飞机、车辆等制定的一种军用总线标准[1]。
由于该总线具有确定的传输延迟、较高实时性、可靠的数据传输能力和较强的容错能力等优点[2],在航空、舰载以及车载领域的综合电子信息系统中得到了广泛的应用。
1553B总线远程终端的设计从结构上可分为两种。
一种是采用专用的1553B协议芯片,譬如DDC公司的BU-61580[3]、UT公司的UT1553B,还有国产的1553B B61580芯片等,这些芯片虽然实现了协议的功能,但灵活性较差,价格昂贵,在一定程度上限制了设计者的应用开发。
另一种是基于FPGA的设计与实现,又可分为两类:一类采用DSP+ FPGA相结合的实现方式[4],这种方式采用FPGA实现数据的编解码,而DSP实现1553B总线协议的解析和上层控制器的功能;第二类采用FPGA实现1553B总线协议的数据的编解码、协议的解析和上层的通信。
本文根据具体的应用环境和1553B远程终端在整个系统中的功能,设计并实现了一种1553B总线远程终端系统。
1 1553B总线远程终端的总体架构
一个1553B总线系统包括一个总线控制器(Bus Controller,BC)(可能有一个或若干个备份BC)、一个或多个远程终端(Remote Terminal,RT)(最多可达31个)、零个或者若干个总线监控器(通常不多于一个,但可以为任意个)。
BC 负责系统控制,它启动RT收发数据的消息或控制RT的操作。
RT按BC要求接收BC发给它的数据,向BC或其他RT 发送数据,或执行BC命令的控制功能。
由远程终端RT在1553B总线系统中所承担的角色可知,RT主要实现如下几个功能:接收总线上的命令字和数据字、发送状态字和数据字、把接收到的命令字和数据字发送至上位机和上位机,把要发送的数据和具体的服务写入远程终端RT中。
针对远程终端RT所实现的功能对其进行功能的划分如图1
所示。
图1 远程终端RT系统设计框图
两个编译码器模块通过收发器搭接1553B的双余度总线上,实时监测总线上传输的数据,通过编译码器实现编解码;
Journal of Computer Applications 计算机应用,2014,34(S2):55-58ISSN1001-9081
CODEN JYIIDU
2014-12-15
收稿日期:2014-05-15;修回日期:2014-08-10。
作者简介:商伟峰(1987-),男,河南郑州人,硕士研究生,主要研究方向:FPGA;冯建文(1971-),女,河南汝南人,副教授,主要研究方向:智能控制;刘小旦(1981-),女,浙江金华人,高级工程师,主要研究方向:航天通信。
通道选择模块接收编译码器发送过来的数据,并标识是从哪个通道上接收到的数据,以确保相应的数据从正确的通道发送出去;命令解析模块用于把接收到的命令字进行解析译码,实现对其他模块的控制;状态字发送模块用于把系统当前的状态信息发送出去;数据字发送模块用于数据字的接收和发送,并控制RAM 存储的读写;RAM 模块用于数据字存储;寄存器配置模块用于状态字寄存器和指令集寄存器的配置,实现系统的功能配置;分频模块用于给其他各模块提供适当的工作时钟。
2 RT 的模块设计
2.1 编译码器模块1553B 编译码器模块由译码器和编码器构成,其具体实现如图2、3
所示。
图2 译码器框图
图2译码器模块中,dec
clk 为8MHz 的译码时钟信
号,rx data 为1553B 总线上
传输的数据(命令字、数据字和状态字),rst n 为模块的异步复位信号,上述三个信号量为模块输入信号;rx dword [0:15]为模块译码后
的数据,由16位构成,rx dval 为译码后数据有效标识,rx csw 为译码后数据为命令字
的标识,rx dw 为译码后数据为数据字的标识,rx perr 为译码
后数据奇偶校验标识。
图3 编码m 器框图
译码器通过rx data 不断检测1553B 上传输数据信息,且数据信息由同步头(3位)、数据(16位)和奇偶校验位(1位)构成。
译码器模块采用一个24位的移位寄存器移位存储
1553B 总线上的串行数据,当判断24位的寄存器等于24’hfff000或者24’h000fff 时,判定为同步头,并接收后边的数据,把1553B 总线的串行数据转换成16位的并行数据rx dword [0:15]。
rx csw 和rx dw 由24位移位寄存器决定,当为24’hfff000时,rx csw =1;当为24’h000fff 时,rx dw =1。
奇偶校验位rx perr 有接受的16位数据位异或决定。
图3编码器模块中,
enc clk 为2MHz 的编码时钟信号,tx dword [0:15]为要发送的数据,tx csw 用于标识发送的数据
为状态字,tx dw 用于标识发送数据为数据字,rst n 为模块的异步复位信号,上述五个信号量为输入信号;tx data 为发往1553B 总线上的串行数据,tx busy 为标识译码器工作状态,tx dval 用于标识tx data 发出的数据有效,tx done 用于表示一
数据发送完标识,tx time out 用于标识编码器是否超时发送。
tx dword [0:15]为编码器要发送的数据位,通过tx csw 和tx dw 为要发送的数据添加状态字同步头(6’b111000)或者数据字同步头(6’b000111),且通过tx dword [0:15]自身的异或为要发送的数据添加奇偶校验位,最后通过tx data 发
送到1553B 总线上。
由于编译码器模块功能明确单一,简单来说用于实现
1553B 总线数据信息的接收和发送,除了实现1553B 总线数据的接收和发送外,还实现了一个额外的功能发送超时检测功能。
1553B 总线要求每一个BC 或者RT 禁止总线上发送超过800μs 数据信息,在模块中实现该功能,能够提高系统
设计的紧凑性和数据处理的高效性,同时也保证数据在
1553B 上传输的可靠性。
2.2 通道选择模块
系统设计采用的是双余度总线,而1553B 总线协议有以
下两方面的要求:一是在任何给定的时间内,仅有一路数据总线处于活动状态;二是,当远程终端RT 正处于指令的处理中时,若此时又从另一路数据总线上接收到另一个有效的指令,那么,远程终端RT 应立即停止复位原来的操作,并在接收到新命令字的数据总线上,按协议规定对新的命令字作出相应的响应。
为了实现这两方面的要求,1553B 总线系统采用两个编译码器,分别用于检测两条总线上的数据信息,通过编译码器模块的receive instrucction a 和receive instruction b 进行通道的选择,同时通道选择模块标记当前工作通道,以确保当从A (或B )通道接受命令字、数据字信息时,也从A (或B )通道把
状态字、数据字信息发送到相应的1553B 总线上。
这样就能确保在任何给定的时间内,只有一条总线处于活动状态。
图4
为通道选择模块框图。
图4 通道选择模块框图
2.3 命令解析模块
远程终端RT 作为1553B 总线上数据传输的响应端,需
要对接收到的命令作出响应,因此,第一步就要对命令字进行解析。
根据通道选择模块传入的信号判断接收1553B 总线上
的命令,由于该系统的解码器采用8MHz 时钟进行数据解码,而命令解析模块采用16MHz 的时钟进行数据的处理,因此就存在数据不同步的问题,而在数据的发送过程中也是存在同样的问题。
同步处理的方法如下:对于一位的异步信号可以采用两级触发器来实现;对于多位的异步信号,这种情况相对复杂,可采用保持寄存器和握手信号相结合的方法或者异步FIFO 。
系统中采用的是保持寄存器和握手信号相结合的方法,采用该方法能很好地解决同步的问题。
接收的命令可分为有效命令和无效命令。
所谓无效命令是指协议允许实现的命令,但远程终端RT 并没有实现的命令,反之远程终端实现的命令为有效命令,可以通过vec reg [0:15]寄存器的配置来制定有效命令集。
协议指出:允许、但不要求RT 检测非法指令,并仅用带消息差错位置位的状态字响应非法指令。
系统实现了以下两种非法指令处理方式:检测并反馈状态字,或者对非法指令不予检测(即不予进一步处理)。
上层模块可通过对控制寄存器进行配置选择两个不同的方式。
这种通过配置寄存器实现两种不同的处理方式,提高了系统的灵活性,也能满足不同的应用需求。
图5为命令解析模块框图。
命令解析模块从通道选择模块rx dword [0:15]获取命令字,根据1553B 对命令字的定义进行解析,输出标识具体接收
65 计算机应用
第34卷
得到的命令以作相应的处理。
具体的实现过程如图6
所示。
图5
命令解析模块框图
图6 命令解析模块实现流程
2.4 状态字发送模块
状态字发送模块其实就是把当前远程终端的状态反馈给1553总线上的总线控制器BC。
状态字有内部和外部决定,因此各个模块内部对模块的自身的状态进行实时监测,并随时把各模块的状态反馈给状态字模块,以便真实反映远程终端的当前状态。
图7为状态发送模块功能框图。
协议指出,远程终端RT必须能检测到对RT有效的指令的出现。
当检测到指令时,能够在接收到指令后4~12μs内启动要求的响应。
系统设计了一个计数器,以8μs作为默认响应间隔,
通过测试能够达到应用需求。
图7 状态字发送模块功能框图
大部分方式命令可以在这里得到正确的响应,比如:发送上一状态命令等,只有带数据字的命令不能立刻反馈状态字,只能待远程终端接收到数据字后,才能反馈状态字,由此先由数据字接收发送模块处理。
2.5 数据字接收发送模块
数据字接收发送模块实现以下结构功能:
1)当系统接收到接收数据字命令,接收译码器发送过来的数据字,并控制存储在RAM中,根据命令字中的数据字个数,判断接收数据字是否正确接收。
若正确接收,模块通知上位机子系统读取模块接收到的数据;若不正确,模块通知状态字发送模块设置状态寄存器的相应位。
2)当系统接收到数据字发送命令,模块根据上位机子系统的请求,读取RAM中的数据,发送至编码器模块。
3)当系统接收到带数据字的方式命令,待状态寄存器的状态字发送后,通知模块中矢量数据字寄存器中的数据发送至译码器模块中。
4)模块提供与上位机子系统的接口,用于系统的寄存器的配置、子系统服务请求的发送和以中断的形式通知子系统读取接收到的数据字等。
图8为数据字发送接收模块框图,其中包含了模块的主要输入输出变量,并不是全部的,其他的变量为控制模块间同步性的变量。
rx dword[0:15]、rx dval、rx csw、rx dw、rx perr 这些变量用于获取接收数据字的个数和数据字;rce inst dword、send inst dword分别表示数据字接收命令和数据字发送命令;vector inst[0:3]表示接收到的带数据字的方式命令,其默认值为4’d0000,各位含义为发送矢量字命令,带数据字的同步方式命令,发送上一指令字方式命令和发送自检测方式命令字。
若接收到相应命令,则相应位置1;tx dword[0:15]和tx dw为模块发送至编码器模块的数据字;fpga to arm dword[0:15]是双向的,用于1553B系统与上位机子系统进行数据的通信;rg config ctrl[0:1]与fpga to dword配合对系统的状态字寄存器和系统的指令集选择寄存器进行配置;INT 用于通知系统接收到数据,以便上位机子系统读取;rd dval 与fpga to arm dword[0:15]结合用于上位机子系统读取系统RAM中接收到的数据;wr dval与fpga to arm dword[0:15]结合用于上位机向系统RAM
中写数据。
图8 数据字发送接收模块框图
2.6 配置寄存器模块和双口ram存储模块
配置寄存器指的是状态字寄存器和指令集配置寄存器。
状态字寄存器存储的是RT远程终端系统自身状态情况的数据,状态字寄存器为16位,如图9所示。
该寄存器对状态字中各位进行配置,为1表示使用状态字中的该位,为0则表示不使用,系统采用的默认配置为16’b11111 1 0 1 000 0 0 0 0 0。
图9 状态字寄存器
指令集配置寄存器,该寄存器对RT所实现的命令进行配置,如图10所示。
1553B总线目前包含的命令有16个,所以指令集配置寄存器采用16位进行配置。
若为1,表示相应
75
增刊2商伟峰等:基于FPGA的1553B总线远程终端的设计与实现
的命令实现;若为0,表示相应的命令没有实现。
根据1553B 协议可知,最少实现的命令包括:接收数据字命令、发送数据字命令、发送上一状态字命令、发送器关闭命令、取消发送器关闭命令和复位远程终端命令。
由于系统采用的是双余度总线,因此选定发送器关闭命令和取消选定发送器关闭命令不用实现,相应为常置为0。
系统默认配置为16’b1 1 0 0 1 0
图10 指令集配置寄存器
RAM存储器模块,系统采用两个双口RAM,其大小为32ˑ16,从系统端来看一个作为数据字接收用,另一个用作发送数据字用,且两个RAM都有数据字接收发送模块控制读写。
3 远程终端RT系统仿真
为验证此系统的正确性,利用Modelsim-Altera软件对程序进行仿真。
如图11所示,总线控制器在1553B的A通道上发送远程终端RT接收数据字命令字16ˊb00111 0 01010 00011,紧接着发送三个数据字,远程终端接收数据字,并反馈响应的状态字从A通道输出。
图11 远程终端RT接收数据字时序仿真图
如图12所示,总线控制器在1553B的B通道上发送远程终端RT发送数据字命令16ˊ00111 1 01010 00011,检测总线上是否有数据输出,并正确反馈状态字从B通道上发送出去。
如图13所示,总线控制器在1553B的A通道上发送一些方式命令字,检测总线上的数据输出,并正确反馈状态字从A 通道上发送数据以及发送相关的数据。
图12 远程终端RT发送数据时序仿真图
图13 远程终端接收方式命令字的时序仿真图
4 结语
系统利用了FPGA结构自身的特点,实现了1553B总线远程终端RT的基本功能,很大程度上降低了产品开发的成本,并通过内部实现和子系统接口的定义,可以根据不同的应用需求在一定程度上扩展其功能,提高了其适应性和灵活性。
由于1553B总线自身的复杂性,该系统难免会存在一些缺点和不足,仍旧需要进一步的研究和完善。
参考文献:
[1]夏清发,胡晓吉.基于FPGA的1553B总线板卡的设计[J].计算
机工程与设计,2012,33(11):4131-4137.
[2]戴虹.1553b数据总线协议分析[J].科学技术与工程,2008
(13):3536-3538.
[3]周远林,吴忠,丑武胜.基于BU-61580的1553B总线接口设计
[J].计算机工程与应用,2010,46(35):65-68.
[4]何鹏.基于DSP+FPGA的1553B总线接口通讯模块的研究和
应用[D].西安:长安大学,2009.
[5]武恒州,王维.基于FPGA的1553B总线控制器接口芯片设计
[J].仪器仪表用户,2010(3):45-46.
[6]张飞,王焕玉,徐玉朋,等.基于FPGA控制实现的1553B总线
通讯设计[J].航天控制,2010(6):67-71.
[7]汤晓曦,尹蕾,许晏,等.基于FPGA的曼彻斯特编解码器设计
[J].电子设计工程,2011(23):171-173,177.
[8]李鹏,郑宾.基于FPGA的MIL-STD-1553B总线接口设计[J].
科技信息,2012(6):112-113.
[9]李志刚,盖宇.基于FPGA的1553B总线编码解码器的设计[J].
计测技术,2006(4):45-48.
(上接第30页)
[13]HEINZELMAN W R,CHANDRAKASAN A,BALAKRISHNAN
H.Energy-efficient communication protocol for wireless
microsensor networks[C]//HICSS'00:Proceedings of the33rd
Hawaii International Conference on System Sciences.Washington,
DC:IEEE Computer Society,2000,8:8020.
[14]DEBROY B K,SADI M S,IMRAN M A.An efficient approach to select cluster head in wireless sensor networks[J].Journal of
Communications,2011,6(7):529-539.
[15]NURHAYATI S H C,LEE K O.A cluster based energy efficient location routing protocol in wireless sensor networks[J].International
Journal of Computers and Communications,2011,2(5):67-74.[16]YOUNIS O,FAHMY S.HEED:A hybrid,energy-efficient,distributed clustering approach for Ad Hoc sensor networks[J].
IEEE Transactions on Mobile Computing,2004,3(4):366-379.[17]ZYTOUNE O,FAKHRI Y,ABOUTAJDINE D.A novel energy aware clustering technique for routing in wireless sensor networks
[J].Wireless Sensor Network,2010,2(3):233-238.[18]VIPIN P,GIRDHARI S,YADAV R P,et al.Energy efficient clustering scheme for wireless sensor networks:a survey[J].Journal
of Wireless Networking and Communications,2012,2(6):168-174.[19]SHILPA M.Energy efficient cluster head selection criterion in wireless sensor network[J].International Journal of Computer
Science and Engineering,2013,2(2):65-74.
[20]NINGHUI H,HONGSHENG L,JING G.Energy-saving routing algorithm based on cluster in WSN[J].TELKOMNIKA Indonesian
Journal of Electrical Engineering,2013,11(2):839-847.
85计算机应用第34卷
基于FPGA的1553 B总线远程终端的设计与实现
作者:商伟峰, 冯建文, 刘小旦, SHANG Weifeng, FENG Jianwen, LIU Xiaodan
作者单位:商伟峰,冯建文,SHANG Weifeng,FENG Jianwen(杭州电子科技大学 计算机学院,杭州,310018), 刘小旦,LIU Xiaodan(杭州航天电子技术有限公司,杭州,310052)
刊名:
计算机应用
英文刊名:Journal of Computer Applications
年,卷(期):2014(z2)
引用本文格式:商伟峰.冯建文.刘小旦.SHANG Weifeng.FENG Jianwen.LIU Xiaodan基于FPGA的1553 B总线远程终端的设计与实现[期刊论文]-计算机应用 2014(z2)。