基于FPGA的1553B总线编码解码器的设计
2024-10-18
来源:威能网
计测技术计算机技术与应用・45・基于FPGA的1553B总线编码解码器的设计李志刚,盖宇 (空军贵阳局,贵州贵阳550025)摘要:介绍用现场可编程逻辑器件(FPGA)设计实现1553B总线接口板中的曼彻斯特码编解码器。 该设计采用VHDL硬件描述语言编程,并用专门的综合工具Synplify对设计进行综合、优化,在Modelsim进行时序仿真,最后在FPGA上实现。关键词:曼彻斯特码;1553B总线; FPGA ;VHDL中图分类号: V243. 02文献标识码:B文章编号:1002-6061(2006)04-0045-04The Design of the Manchester 11 Coders and Decoders for the 1553B Bus Based on FPGA LI Zhi-gang,GAI Yu(Br eau of Military Representative in Guiyang,Guiyang 550025,China) Abstract:This paper discusses the design and realization of the manchester II coders and decodersfor the 1553B bus interface card based on FPGA,The design is described by VHDL language and befitted to the FPGA chips after logic synthesizing based on Synplify and timing simulation based onModelsim.Key words: the manchester II coders and decoders;1553B bus ;FPGA ;VHDL0引言航空电子综合化系统是以1553B总线为联网工具 而构成的分布式计算机系统,各个独立航空电子子系计算机内。1553B总线有10种消息格式。每个消息至少包含两个字,每个字有16个信息位,一个奇偶校验位和3个位长的同步头,所有的消息字都采用曼彻斯特11型统的处理机完成数据的采集、计算和处理,通过1553B总线接口板完成信息的融合和交换、任务的协调和控制,因此对于1553B总线系统,接口板的设计就显得尤为重要。曼彻斯特码编解码器是1553B总线接口板中不可缺少的重要组成部分。其设计的好坏直接影响1553B总线接口板的性能。本文所介绍的就是其中的编码和解码器的设计实现。码构成。在总线上传输的有三种类型的字:命令字、状态字和数据字,上述三种字的字长都是20位,字长度20tcs,每位位长1 ps。前三位都为同步头,虽然命令字和状态字都是先正后负,但由于他们分别由BC和RT判断,是可以区别的。本文所设计的1553B总线接口板由DSP模块电路 和FPGA模块电路组成,执行通讯协议,正确接收总线上的曼彻斯特编码的数据,按照规定的格式发送曼彻斯特II型编码的数据、状态或命令字,实现1553B总线和终端的连接通道的接口功能。其中,曼彻斯特码编解码器由FPGA模块电路实现,用于完成数据的发送和接收、曼彻斯特码的调制与解调、串/并和并串转换、同1 1553B总线接口板功能MI L-STD-1553B数据总线具有双向传输特性,实时性和可靠性高,广泛应用在军用飞机上。该总线的工作频率是1Mb/s。采用曼彻斯特11型码,半双工工作方式。主要的硬件部分为总线控制器(BC)、远程终端(RT)、和可选用的总线监控器。一般情况下,这三部分通过一个多路总线接口(MBI)来完成。可把MBI嵌在步头的产生与检测、状态字的自动响应、RT地址识别以及错误检测等功能。收稿日期:2006-01-09;收修改稿日期:2006-05-22作者简介:李志刚(1973-),男,工程师,硕士,主要从事航空电子综合系统研究。2设计环境美国赛灵思( Xilinx)公司最新推出的可编程逻辑器件开发工具ISE (Integrated Synthesis Environment)提供了完全集成化的可编程逻辑设计环境;用户界面・46・计算机技术与应用2006年第26卷第4期直观友好,只需下列五步就能产生并实现一个设计。据。或者1都为2位编码,所以脉冲宽度最小为500 ns・项目形成: File-NewProject ;(2 MHz),所以发送单元所需要的最小时钟频率为2・产生/添加设计文件:Pr oject ̄ Newsource或MHz.Project-Addsource或Project-Add Copy of Source;用32 MHz的时钟源分频产生该时钟所需要的最・时序约束输入:De sign Entry Utilities小分频数为32/2=16,该16分频的电路原理如图1所Comstraints Editor;示。该电路由4个2分频的电路组成,每个2分频电路由・设计实现: Processes-Implement Design;一个D触发器和一个非门组成,D触发器的Q输出端通・设计分析。 过非门连接到该触发器的D输人端就可完成2分频功 在ISE中,项目导航器(Project Navigator)是项目管理工具的主体,集成了设计过程中要使用的一系列软件工具,主要包括设计输人(Design Entry),设计综合(Design Synthesis),设计约束(Design Constraints),设计实现(Design Implement),设计仿真(Design图1分频时钟产生原理电路Simulation)和器件编程(Device Programming).所有这些极大地方便了数字电路的设计,为在实 由于发送单元的时钟周期为500 ns(2 MHz),即每位为500 ns,同步头的长度为3000 ns,所以同步头要用6验室开发实现MIL-STD-1553B协议接口提供了有利位来表示,每位数据采用两位,奇偶校验位采用两位,条件。所以整个1553B总线数据要用40位表示。当VC5410A3受彻斯特码编解码器的总体设计通过FPGA的接口单元向I/O口写人数据后,数据进人 1553B总线用的是双相码中的曼彻斯特码。这种码发送单元的缓存中。根据写入的I/O地址,发送单元可在每个码位中点处存在一个跳变,"1”信号是由1到。以形成同步头,例如,写人命令字时,同步头为111000,的负跳,而“0”信号则是由0到1的正跳。所谓双相,是数据字的同步头为000111。对于这40位数据,在500 ns指双极性,本身包含了自定时的信息,能与变压器藕合的时钟下,每周期发送一位。当前正在发送的数据放在协调。曼彻斯特码型适宜用于变压器祸合形式和电缆一个锁存器中锁存,前面一级有一个缓存器,发送完当长度为150 m(500英尺)左右的航电综合系统中。前数据后,如果缓存器中有数据,则把数据取过来放人3.1编码锁存器中进行发送,这样就可以实现数据的连续发送。 曼彻斯特码编码的过程是指FPGA程序模块从而且这时发送单元会把FPGA的EMPTY引脚输出置DSP程序模块接收16位的GJB-289A数据、指令和状为低电平,通过VC5410A的异步串行口告诉它缓存器态字,并以1 Mb/s曼彻斯特11型编码串行数据发送到空,可以再通过I/O端口写入数据。收发器HI-1567,在FPGA程序模块完成包括发送控图2是在Maxpl uxII下的向1/O地址1F写人数据制、同步/数据编码、奇偶产生等功能,从其中出来的数2222时的仿真波形。图中clock32m是32 MHz的时钟,据经过HI-1567完成电平变换后被送到数据总线上。txdataa,txdatab是编码后要发送到收发器的数据,其发送单元的时钟基准来自于TMS320VC5410A的 中txdataa是参考数据,txdatab是它的反相。由于写入32 MHz时钟源。由曼彻斯特11型编码的特性可知,数地址为1F所以同步头为111000,奇偶位为0(奇校验)。24.96面时亩一一丁L 图2FPGA发送数据仿真波形 在该单元还有一个比较重要的控制信号将所有数据发送完以后,就会把TIMERSTART信号TIMERSTART,它的作用是启动计数器。在发送单元置为高电平,通知超时计数器开始记数,当计测技术TIMERSTART为低电平时,该计数器不会启动。该计数器为一个4^-12 Lts的1553B计数器。3.2解码曼彻斯特码解码的过程是指总线接口板接收数据 时,FPGA程序模块从收发器接收曼彻斯特11型编码的串行数据,实现同步头检出、数据检出、曼彻斯特11码错误检出、奇偶检测、位/字计数功能,将处理后的数据通过16位数据线送人DSP程序模块进行分析。接收数据是采用采样判定的方法来实现的,采样的时钟是32 MHz,其前提条件是两根数据线rxdataa和rxdatab总是反相数据。3.2.1同步头的接收 接收单元的时间基准是32 MHz的输入。根据标准,同步头只可能有两种,101' , ,10'。从接收到的信号波形上看,只可能出现如图3所示的四种情况。所以同步头的识别可分为三类情况(更特殊的情况是数据连续时,此时前一个数据的最后一位和后一个数据的同步头连在了一起):1)同步头前半部分脉冲宽度是1500 ns,按照标准,误差范围为士150 ns,所以,只要是收到宽度为(1500士150)ns的脉冲,即是收到了同步头的前半部分。用32MHz的频率来采样计数的话,那么计数值就在42^51之间,也就是说,如果计数器的计数范围在这个区间里,就可以认为是收到了同步头的前半部分,否则,接收单元就继续检测同步头。2)如果同步头后半部分脉冲宽度为1500 ns,按照标准,误差范围为士150 ns,所以,只要是收到宽度为(1500士150)ns的脉冲,即是收到了同步头的后半部分。用32 MH:的频率来采样计数的话,那么计数值就在42^-51之间,也就是说,如果计数器的计数范围在这个区间里,就可以认为是收到了同步头的后半部分,下面就可以接收数据部分了;否则,接收单元就继续检测同步头的前半部分。3)如果同步头后半部分脉冲宽度为2000 ns,按照标准,误差范围为士150 ns,所以,只要是收到宽度为(200。士150)ns的脉冲,即是收到了同步头的后半部分。用32 MHZ的频率来采样计数的话,那么计数值就在51^-62之间。也就是说,如果计数器的计数范围在这个区间里,就可以认为是收到了同步头的后半部分和第一位数据位的前半部分,下面就可以接收剩余数据部分了;否则,接收单元就继续检测同步头的前半部分。计算机技术与应用・47・500nsl 1500n150onsl 20oaTXDATAA暨TXDATAB同步头1同步头2一卿TXDATAA1500nsln051巧OOnsl 2000mTXDATAB同步头3同步头4图3同步头译码原理3.2.2数据位的接收数据位的检测也基本一样, 从波形上看,它也会出现和图3相似的四种情况,不过区别是脉冲的宽度而已。任何两位数据的组合结果只有四种:00,01,10,11;其可能出现的波形如图4所示。可以看出,此时只可能有两种脉冲宽度,(500士150)ns和(1000士150)ns,用32 MHz时钟采样计数,相应的计数值的范围是11^20和26^35之间。所以,只要收到的数据位数满足以上两个宽度范围,则数据正确。即完成了数据同步接收。巡跳变点竺5n0s0型1000 sn溯/尸跳变点跳变点一竺5ns尸跳变点0n0s010001000 nS 姗一数据1sn数据《)图4总线数据译码原理 此后,还应该完成数据部分曼彻斯特II译码功能。曼彻斯特II码特性是在每位数据脉冲的中间时刻都有一个电压跳变,所以对数据的译码可以从跳变沿分为前后两部分,前后两半部分可能的长度都是(500士150)ns和(1000士150)ns,只要在该范围内就可认为收到了一位数据,在跳变沿的后半部分把txdataa取反就是该位数据的值。正确收到数据后, 接收单元把数据保存在I/O寄存器data1553中,把同步头的类型和奇偶校验值保存在I/O寄存器status1553中,同时向中断产生单元送出一个控制信号,向VC5410A发送数据接收好中断INT1,由VC5410A读出该数据和状态信息。如果数据有错误,VC5410A就可以从status1553中读出错误的类型。・48・计算机技术与应用2006年第26卷第4期位在前(左边),低位在后,其中不包括同步头和奇偶校 图5是在MaxplusII下的接收数据仿真波形。其中,rxdatal是1553B总线数据,rxdata2是它的反相数据,clock32m是时钟信号(32 MHz), rxhibit是从VC5410A过来的控制信号,databuffer是对数据译码后的缓存,也就是收到的16位数据,它存放的顺序是高验位(这两位放到了状态寄存器status1553中),可以看到,在最后一位收到后,databuffer中存放的是7CDB,通过验证,可知接收数据译码是正确的。接收数据仿真波形仿真及FPGA实现为了确保设计的可行性,必须对设计进行时序仿真;为了提高芯片的性能及资源利用率,要采用专门的信息)就会自动加载到XCS30XL中,整个过程不超过 40 ms。之后XCS30XL就可以按照用户所加载配置程序工作。3V的XCS30XL器件有如下三种编程模式: M1/综合软件对设计进行优化、综合。为此采用Synplify7. 1M0=11,为从串模式;Ml/MO=10,为主串模式;M1/进行综合,采用Modelsim进行时序仿真。在Synplify中M0=0x,为快速模式。通过采取使用有效的代码、优化组合逻辑、减少逻辑延通常在编程开始前,芯片会自动检测MO脚以确定 时等措施来提高整体性能;进行多个文件的分块设计,编程模式。而在编程结束后,这些引脚就没有用了。当将这些文件映射到顶层文件进行综合,并运用VHDLMO脚为高电平时,为从串模式,这也是目前最常用的对单个文件进行编写、仿真和优化。在用到组合逻辑此时MO脚可悬空。如果要选择时,Synplify会尽量避免锁存器的出现,节省逻辑单元。一种编程模式,实际上,主串模式,则MO脚必须与地相连或通过1kO的下拉电Synplify和其它综合软件一样,编译后生成的电子设计阻接地。由于SRAM内部的数据在掉电后会丢失,所交换格式文件(EDIF)可以在Modelsim中进行编译、仿以,基于SRAM的XCS30XL必须配置一个EPROM芯真、分配引脚和其它优化处理。因此,采用Modelsim和Synplify 7. 1相结合的方法对FPGA进行设计、优化、片,以存放XCS30XL的编程数据。综合,可提高系统性能和芯片资源的利用率。本设计在Xi linx公司生产的Spartan系列芯片<XCS30XL)上进行了实现。它采用的是SRAM工艺,密度高,触发器多,但是缺点是掉电后内部的可编程信息就会消失。因此,需要外接一个配置器件完成开机配5设计总结 该编码解码器在ISE完全集成化的可编程逻辑设计环境中采用VHDL语言作为设计输人,用Modelsim和Synplify分别进行仿真、综合,主要实现了1553B总线接口板中位/字处理器的功能,其特点在于避开了具体的器件结构,从逻辑行为上对编解码的过程进行描述和设计,用VHDL语言实现了曼彻斯特码的编解码过程。 [1] Douglas. MIL STD 1533 Validation and Test Facility [A].IEEEA/AIAA 9th conference proceeding[C]. 1990.[2]罗志强.航空电子综合化系统〔M].北京: 北京航空航天大学出版社,1990.置功能,对于XCS30XL, Xilinx公司规定,应选用专用的配置芯片XCS17S30来完成配置。两者的连接如图6所示。参考文献 [3〕陆彦,等.航空火力控制技术〔M].北京:国防工业出版社, 1994.[4〕徐志军,等.CPLD/FPGA的开发与应用〔M].北京:电子工业 出版社,2002.图6本系统中XCS30XL的配置 当系统刚上电时,XCS30XL的引脚(除配置引脚外)都处于锁定状态,这时配置器件中的内容(可编程 CPLD/FPGA可编程逻辑器件应用与开发[M].北京:[5困王道宪,国防工业出版社,2004.[6〕石红梅,等.用FPGA实现1553B总线接口中的曼码编解码器 [J].单片机及嵌人式系统应用,2005,(4):42-46.