杨 勇,王占领,张登福
(1.解放军93594部队,内蒙古巴彦淖尔014413;2.空军工程大学航空航天工程学院,西安710038)
一种1553B总线协议编解码器的设计研究*
杨勇1*,王占领1,2,张登福2
(1.解放军93594部队,内蒙古巴彦淖尔014413;2.空军工程大学航空航天工程学院,西安710038)
摘要:编解码器是1553B协议芯片中的重要组成部分。为了自主研发1553B总线协议的IP核,满足对1553B协议芯片的广泛需求,设计了基于1553B总线协议的编解码器。对编码器和解码器采用自顶向下和独立设计的方法,充分利用同步时钟方法,提高了可靠性,有效解决了数据间干扰和亚稳态问题。通过仿真验证,结果表明设计实现了编码与解码功能。最后在FPGA硬件平台上进行了实际调试,测试取得了良好的效果,结果符合设计要求。
关键词:1553B总线;编解码器;FPGA;Verilog HDL
1553B总线是一种航空串行总线标准,凭借着其突出的可靠性及灵活性等性能,广泛应用在航空航天、舰船、坦克等军事平台上,并发挥着越来越重要的作用[1]。随着对1553B总线的不断深入研究,开发出了大量的1553B专用协议芯片,如DDC公司的ACE系列产品,INTEL公司的M82553以及ACTEL研发的1553BBC等。目前国内使用的1553B芯片绝大多数是从国外进口,但是集成化程度还不是太高,且有很多功能略显多余,同时价格也非常昂贵。
针对此情况,国内的一些单位也开展了针对1553B协议芯片的研究。在研发的过程中,比较关键的部分是对1553B协议芯片的编解码器的设计,从而真正打破国外对技术核心的封锁。由于DDC公司的BU-61580是目前市场上应用最广泛的1553B协议芯片[2],本文就以其数据手册为基础,研究了协议芯片的特性,并结合以往设计的编解码器存在的问题,设计了一种高速可靠的1553B总线协议编解码器。为后续设计1553B协议芯片打下了坚实的基础。最后对所设计的编解码器进行了全面测试。
1553B总线又称为MIL-STD-1553B数据总线,全称为飞行器内部时分命令/响应式多路数据总线。1553B总线具有3种工作模式,分别为总线控制器(BC),远程终端(RT),总线监视器(MT)[3]。BC负责对1553B总线数据传输的控制与管理,也是所有信息传输过程的发起者,任何时刻总线上只能有一个BC;RT对从总线上接收到的有效命令做出响应,回送状态字;MT监听和记录总线上传输的命令和数据的终端,它受BC控制,不参与任何总线传输。
1553B总线采用半双工的方式进行通信,总线上的信息流由一串1553B消息构成,消息又可分为3种类型的字组织:命令字、数据字、状态字,每个字长均为20 bit,可表示为:3 bit同步头+16 bit数据/命令/状态位+1bit奇偶校验位。根据字的类型,命令字与状态字的同步头先正后负,数据字的同步头先负后正,正负各占1.5 bit。
总线上的数据传输速度是1 Mbit/s,传输的数据码是曼彻斯特Ⅱ型双相电平码。逻辑1为双极编码信号1/0,即一个正脉冲继之以一个负脉冲。逻辑0为双极编码信号0/1,即一个负脉冲继之以一个正脉冲[4]。过零跳变发生在每一位时的中点。曼彻斯特Ⅱ型数据编码格式如图1所示。
图1 曼彻斯特Ⅱ型数据编码
在使用VerilogHDL描述语言设计FPGA时,本文采用同步时钟的方法进行设计,以避免出现建立时间和保持时间无效的情况,从而达到清晰高效的目的[5]。整个编解码器采用2 MHz的时钟。
编解码器由编码器和解码器两部分组成。编码器接收来自1553B协议处理器的16 bit并行数据,经并串转换、生成同步头和奇偶校验位,转换成曼彻斯特Ⅱ型码格式的串行数据,再经模拟收发器发送到1553B总线上。
解码器接收由1553B总线发送来的曼彻斯特Ⅱ型串行数据,对数据进行数据有效检测,奇偶校验位检测,并经串并转换输出16 bit并行数据。
2.1编码器设计
编码器的功能有同步头与有效数据编码、产生奇偶校验位。编码器接收需要编码的16 bit并行数据,根据数据类型,前面加上同步头,在20 bit处补上奇偶校验位,编码生成曼彻斯特Ⅱ型码[6],再通过模拟收发器处理后,从A、B两个通道发送到1553B总线上。
这里采用2 MHz时钟。由于总线上数据的传输速度为1 Mbit/s,那么传输一个比特则需要计数2个时钟周期[7]。具体编码步骤如下:在复位信号为高电平时,在时钟信号的上升沿,锁存待编码数据。根据输入tx_csw和tx_dw信号,生成相应的同步头,3 bit的同步头需要计数6个编码时钟周期。在完成16 bit数据的编码后,由锁存器生成奇偶校验位,最后从tx_data输出20 bit曼彻斯特Ⅱ型数据。编码器原理框图如图2所示,编码器模块接口信号定义如表1所示。
图2 编码器原理框图
表1 编码器接口信号定义
2.2解码器设计
解码器的工作流程是编码器的逆过程。
解码器的功能有同步头检测、把串行曼彻斯特Ⅱ型码转换成并行非归零二进制数据、曼彻斯特Ⅱ型码错误检测以及奇偶位校验。
解码器具体过程:按其功能分离出同步头信号,将接收的曼彻斯特Ⅱ码解码成二进制电平信号,并进行奇偶校验。如果数据出错(rx_dval=0)或校验位出错(rx_perr=1),发送出错信号。为了保证解码过程的正确性,解码器需要产生以下几个判断信号:(1)同步头正误判断信号,在同步头结束时发送;(2)数据有效判断信号,校验位结束时发送;(3)校验位错误判断信号,校验位结束时发送。
接收到一个完整的带同步头和奇校验位的20 bit曼彻斯特码字后,检测到正确的同步头,若数据有效信号置‘1’(rx_dval=1),数据被读取或错误信号被读取后回到‘0’。通过判断解码数据校验位错误信号的值,若rx_perr=0,表示数据正确,读取16 bit的数据(rx_dword)。如果有任何一位判断信号无效,表示数据出错,读取出错消息,不再读取16 bit数据。读取数据正确,则输出数据并锁存至数据寄存器。数据错误,则读取相应错误信息,存放到相应的寄存器。
在解码过程中,为了减小亚稳态的影响,首先对输入的待解码数据rx_data寄存一个解码时钟周期,这样可使整个解码过程与2 MHz时钟同步,然后再进行同步头的检测,在命令字或数据字的同步头检测正确后,开始采集数据以读取。
编码器原理框图如图3所示,编码器模块接口信号定义如表2所示。
图3 解码器原理框图
表2 编码器接口信号定义
设计采用Verilog HDL语言进行描述,在集成开发环境Quartus 7.2中实现仿真综合验证[8]。
在编码器中,通过计数操作实现并串转换。
图4 数据编码流程图
用该编码器对1011010100111001B进行命令字的编码,接着分别对两个数据字1011010100111010B 和1011010100111011B编码,仿真时序图如图5和图6所示。
图5 编码器时序仿真图(命令字)
图6 编码器时序仿真图(数据字)
在解码器中,通过移位操作实现串并转换,串并转换的代码如下:
always @(posedge dec_clk or negedge rst_n)begin
if(! rst_n)begin
data_sftreg<=5'd0;
sync_sftreg<=24'd0;
endelse begin
data_sftreg<=
{data_sftreg[1:4],rx_data};
sync_sftreg<=
{sync_sftreg[1:23],data_sftreg[0]};
end
end
用该解码器分别对命令字和数据字解码,rx_csw为高电平时,数据为命令字,rx_dw为高电平时,数据为数据字。仿真时序图如图7所示。
最后,将该编解码器下载到Altera CycloneⅡ系列的EP2C5T144C8芯片上进行硬件调试[9]。为使得1553B总线上的通信能够更加直观,这里用示波器来捕获信息流,部分消息串如图8所示。
图7 解码器时序仿真图
图8 测得总线上的部分消息串
采用ATTEN公司的ADS1022C示波器对编解码器进行测试。将其USB Device接口与PC连接后,再利用ATTEN公司的示波器测试软件EasyS⁃cope3.0显示捕获的波形、数据和测量值。根据测试波形可以看出,其频率、电压幅值以及波形升降均符合1553B总线的协议标准。
经多次测试,结果表明:该解码器效果良好,能高效实现相应功能。
本文设计了1553B总线协议编解码器,用Ver⁃ilog HDL语言描述并实现了曼彻斯特Ⅱ型码与二进制码数据间的相互转换。在设计过程中充分利用了FPGA芯片资源。经软件仿真与硬件实际测试,符合设计要求,为后续设计1553B协议芯片的IP核奠定了理论与实验基础。
参考文献:
[1]DDC. ACE/Mini- ACE Series BC/RT/MT Advanced Communica⁃tion Engine Integrated 1553 Terminal User’s Guide[EB/OL]. 2010. http://www.ddc-web.com.
[2]DDC. MIL-STD-1553 Designer’s Guide(sixth edition)[S]. 2003.
[3]李辉,张敬波,张磊. 1553B多功能RT IP核的设计与实现[J].航天控制,2012,30(1),60-64.
[4]孙涛,张华春.基于1553B协议的总线控制器和远程终端的FP⁃GA实现[J].中国科学院研究生院学报,2010,27(4),523-526.
[5]解彦.基于FPGA的1553B远置终端IP核的设计与实现[D].北京:中国科学院研究生院,2011:31-39.
[6]许宏杰,田泽,袁晓军.高速1553BIP核的设计与实现[J].计算机技术与发展,2009,19(12):155-158.
[7]孙涛,张华春.基于MIL-STD-1553B协议的远程终端的FPGA实现[J].电子器件,2010,33(3):353-356.
[8]夏宇闻. Verilog数字系统设计教程[M].第2版.北京:北京航空航天大学出版社,2008:16-19.
[9]姚爱红,张国印,武俊鹏.基于FPGA的硬件系统设计实验与实践教程[M].北京:清华大学出版社,2011:38-45.
杨勇(1981-),男,汉族,陕西商洛人,工程师,主要研究方向为航空通信电子系统;
王占领(1988-),男,汉族,河南商丘人,硕士,CCF会员,主要研究方向为综合航空电子系统,wangzhanling1988@163.com。
An Modified Weak BDS Signal Acquisition Algorithm*
LI Deng’ao*,NIU Wenhui,ZHAO Jumin,LI Shuai,LIU Jinqiang
(College of Information Engineering,Taiyuan University of Technology,Taiyuan 030024,China)
Abstract:The Beidou satellite signal strength is often less than -133 dBW under the weak environment,the coher⁃ent integration time are limited only in a period of primary code. A new algorithm which is based on combining seri⁃al and parallel search was presented to extended the coherent integration time so as to achieve acquisition of the weak Compass signal. Firstly,obtain the code phrase of the primary code by serial search within a period of PRN code,and then get the secondary code phase and Doppler shift by parallel search on the entire secondary code,thereby extending the coherent integration time to achieve weak Compass signal acquisition,simulation shows that the algorithm could be able to achieve accurate acquisition even the strength of the signal as low as -150 dBm.
Key words:BDS;secondary code;acquisition;serial;parallel
doi:EEACC:614010.3969/j.issn.1005-9490.2016.01.011
收稿日期:项目来源:国防科技重点实验室基金项目(9140C6001070801)2015-03-22修改日期:2015-05-17
中图分类号:TP336
文献标识码:A
文章编号:1005-9490(2016)01-0046-05