用FPGA实现1553B总线接口中的曼码编解码器

发布者:黄金大花猫最新更新时间:2012-05-05 来源: dzsc关键字:曼彻斯特码  1553B总线  VHDL  FPGA 手机看文章 扫描二维码
随时随地手机看文章

引言

曼彻斯特码编码、解码器是1553B总线接口中不可缺少的重要组成部分。曼彻斯特码编解码器设计的好坏直接影响总线接口的性能。本文介绍的是MIL-STD-1553B接口中最曼彻斯特码的编码和解码器的设计实现。

在电子设计领域,可编程器件的广泛应用为数字系统的设计带来极大的灵活性,1片FPGA/CPLD芯片可替代上百个IC电路。同时,Altera公司开发的MAX+PLUS II和QUARTUS II软件,是完全集成化的可编程逻辑设计环境;Synplicity公司的Synplify是专门用于FPGA和CPLD的一种优秀逻辑综合工具;VHDL更是一种功能强大的硬件设计语言,可用简洁的代码描述来进行复杂控制逻辑的设计。所这些使得硬件的设计如同软件那样方便,极大方便了数字电路的设计。所有这些条件都为在实验室开发实现MIL-STD-1553B协议接口提供了有利条件。文中所设计的编码、解码器就是采用硬件描述语言VHDL进行编程,用Synplify进行综合,以及采用MAX+PLUS II进行时序仿真,在FPGA上实现的MIL-STD-1553B总线接口中的曼彻斯特码编码、解码器。


1 1553B总线及其接口功能

MIL-STD-1553B的全称是:飞机内部时分制指令/响应式多路传输数据总线。它用可屏蔽双绞线进行数据传输,信号是以串行数字脉冲的形式进行传输,其数据代码用双相曼彻特码的形式来表示,其传输速率为1Mb/s。1553B数据总线上连接有三种类型的系统:①总线控制器(BC)——控制总线上的数据传输;②远程终端控制器(RT)——响应BC来的命令,执行数据传输;③总线监视器(BM)——有选择地接收数据总线上的信息并保存之。每个子系统可以通过1553B总线连接到任何一个子系统。数据就是在总线上进行传输的。


在总线上传输的有三种类型的字:命令字、状态字和数据字。每种字的字长为20位,有效信息位是16位每个字的前三位为同步字头,最后一位为奇校验位。有效信息(16位)及奇偶校验位在总线上以曼彻斯特码的形式进行传输,每位占的时间为1μs。同步字头占三位,或先正后负(命令字、状态字)或先负后正(数据字)。正/负电平各占1.5μs,即占同位场的一半。由于系统的类型不同,可辨别出命令字和状态字,命令字由现行的总线控制器发出,而状态字总是由远程终端RT发出。



作为MIL-STD-1553B总线的接口应完成以下功能:①将总线上的串行信息流转换成处理机可以处理的并行信息或者与之相反;②接收或发送信息时,能够识别或生成标准的1553B信息字和消息;③完成与处理机之间的信息交换,包括1553B信息地址的分配,命令字(或状态字)的译码或返回状态字、发送数据字等。曼彻斯特码编解码器完成的是曼彻斯特码的编码及解码,并检测错误。它接收具有有效同步字的曼彻斯特码,并进行译码,

以及识别其类型和串/并转换、奇偶校验等;或者将处理器发出的并行二进制数据进行曼彻斯特码编码,再加上同步字头及奇偶位使之成为符合1553B标准的字进行输出。

编解码器是总线接口的一部分。一般说来,1553B总线接口由电平转换电路、曼彻斯特码编解码器、命令字/状态字译码逻辑和CPU及相关电路组成,如图1所示。

除了编解码器可由FPGA来实现外,它与CPU之间的相关电路,如共享RAM、命令字/状态字译码和存储器管理、处理器与存储器接口逻辑等也可以由FPGA来实现;CPU可采用TMS320LF2407。本文所介绍的就是其中的编码和解码器的设计。

2 曼彻斯特码编解码器的总体设计

在介绍编解码器的设计之前,有必要了解曼彻斯特码的特征,以便在设计中对其加以利用,达到简化电路的效果。

曼彻斯特码是一种广泛应用于航空电子综合系统中的总线数据传输的双极性码。它在每个码位中点存在一个跳变。1信号是一个由1到0的负跳沿,而0信号是由0到1的正跳沿。它本身包含了自定时的信息。因此它不需要独立的信道来传输位定信息,它可以直接从数据中分离出定时时钟,同时还能与变压器耦合相协调,十分适合用在变压器耦合形式,长度为150m(500英尺)左右的场合,因此在航空电子综合系统中,它是最主要的形式。



在MIL-STD-1553B协议中其数据格式为如图2所示。

根据1553B的数据格式以及曼彻斯特码的特点,可采用状态机对其进行编码、解码的实现。状态机是一个广义的时序电路,像移位寄存器、计数器等都算是它的特殊功能类型中的一种。根据输入、输出及状态之间的关系,状态机可分为两类:一种是输出状态有关,而输入与状态无在的状态机类型,称为More状态机;另一种是输出及输入与状态皆有关系的状态机,称为Mealy状态机。本设计采用的是Mealy状态机。编码和解码是两个相互独立的模块。[page]

2.1 解码

解码的过程可分为三部分:①同步字头检测,并辨别其为数据字还是命令字。②对曼码形式的数据进行解码。由于曼彻斯特码自带定时时钟,故可从数据中分离出同步时钟。本设计采用的是传统的用数字锁相环的方法来分离时钟;将时钟和数据进行处理使曼码数据转化为非归零二进制数据。③将串行数据转化为并行数据,并进行奇偶校验。解码器的逻辑图如图3所示。图中data为串行输入数据。当data开始发生跳变时进行同步头检测,若在data发生变化后检测到大于一个位时的高(或低)电平,则认为同步头有效,输出同步头类型(comnd)及同步头检测位(synerr)(为低电平,若为高电平则表示同步头有错)。在同步头有效后,进行时钟分离及码型变换及移位,移位完成后进行奇偶校验,并把数据定写入保持寄存器,此时rxrdy变为高电平,表示数据准备好可以读出数据。进入下一个解码周期,等待串行输入数据。


该逻辑可由状态机实现,可划分为四个状态进行:第一个状态是空闲状态,当检测到数据跳变沿时,进入第二个状态;第二个状态为有效同步字头检测状态;当检测到有效同步字头,启动第三个状态,用锁相环分离时钟,进行码型转换;当数据有效时进入第四个状态,进行并/串转换及奇偶校验。其状态机状态转换如图4所示,以下是具体实现过程。

①同步字头检测。当检测到数据跳变沿(下跳沿为命令字,上跳沿为数据字)时,用16MHz时钟对数据进行采集;当采集到大于一个位时的低电平或高电平时,认为同步字头有效,启动第二状态,进行处理。启动位产生的时间要注意选择,这对于消除数据中的毛刺和减少数据的延时都很重要。

②码型转换。检测到有效同步字后,启动锁相环开始分离时钟。此设计采用超前-滞后锁相环,锁相环如图5所示。

图5中边沿检测器的输出e是在u2(t)的跳变沿时产生的窄脉冲,d是c的反相,c、d、e经过与门后在f和g形式滞后和超前脉冲。h和g分别用来控制和扣除门和添加门,通过扣除门和除脉冲和通过添加门添加脉冲,它们的和输出经过分频器2得到c,也即u2(t)就能跟随u1(t)的相位了。



边沿检测器的工作原理是在u1(t)的上跳沿时放过一个16MHz的时钟脉冲,这样产生的边沿检测脉冲e只会在f和g中的一个产生脉冲,也就避免了超前一滞后型数字锁相环存在的相位模糊问题。该锁相环的相位锁定时间最大为42ns,因此在与数据进行模二加之前,应将数据进行延时,以便消除毛剌。要想完全将毛剌消除还要配合同步字头检测时,启动位产生时间的设置。这在后面毛剌处理中有详细的介绍。

③奇偶校验和串行并转换。用移位寄存器可实现数据的串/并转换。在设计移位寄存器时,要注意奇偶位的分离,因此在设计寄存器时需设置一定的标志位,其源代码如下:

if reset='0'then

rsr<=(others=>'0');

--全为零可确保在移位过程中idle为低电平;

rxparity<='1';

--确保在移位过程中idle=0,而在移位结束时,idle=1;

tag<='0';

--移位标志位设置,当tag=1时,移位完成;

paritygen<=paritymode;

--为奇校验时paritymode赋值为1,若为偶校验则设置为0;

elsif rxclk'event and rxclk='1'then

if idle='1'then

rsr<=(others=>'0');

rxparity<='1';

tag<='0';

paritygen<=paritymode;

elsif hunt='1'then

tag<=rsr(15);

rsr(15 downto 1)<=rsr(14 downto 0);

rsr(0)<=rxparity;

rxparity<=data1;

--进行移位,为右移寄存器;

paritypen<=parityegen xor rxparity;

--进行奇偶校验;

end if;

end if;

至此曼彻斯特的解码就完成了,其时序仿真波形如图6所示。[page]


畋6中data1.Q时,进行码型转换后的数据。由图中可以看出采用此种方法进行转换,数据没有毛刺,产生的数据完全正确。

2.2 编码

编码的过程也可分为三部分:①检测编码周期是否开始,产生同步字头;②进行串行转换,产生奇偶校验位;③对16位有效数据及奇偶位进行编码,编码周期结束。与解码同理,编码也由状态机来实现。

由此状态机可划分为四个状态进行实现,其状态机状态转换如图7所示。

编码器的输入时钟(mclk)为16MHz。当写信号(wr)为低电平时,同步头选择位(cmnd)为高是怦,开始产生命令字同步字头;反之,为同步字头。由于同步字头的高低电平各占1.5个位时,所以选取它的发送时钟为2MHz,该时钟由mclk八分频得到。同步字头产生完成,则发出控制信号开始移位。移位时钟(1MHz)由同步头生成时用的时钟两分频产生。在数据移位完成时自动添加厅偶位。曼码形成器对数据、奇偶位、同步头进行处理形成符合1553B标准的双极性字tx和ntx,完成后txrdy为高电平,等待下一个数据的写入开始再一次的编码过程,逻辑框图如图8所示。

编码其实是解码的逆过程,其工作原理非常相似,这里就不详细介绍了。编码的时序仿真波形如图9所示。

图9中tx为经过编码后的串行数据。采用此种方法进行编码,产生的数据完全正确,并且也不存在毛剌。

3 设计中存在的问题及解决办法

信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关。由于这两方面的因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序。它们并不是同时变化,而且往往会出现一些不正确的类峰信号,这些类峰信号称为“毛刺”。另外,FPGA器件与分立元件不同,其内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在PLD、FPGA设计中尤为突出。消除数据中的毛剌是设计中的一个重要问题。如果毛刺处理不好,就会影响系统性能甚至引起逻辑错误。

本设计中消除毛剌采用的方法有:①在有毛剌的输出端加D触发器;②计数器采用格雷码计数器。采用D触发器是因为D触发器的D输入端对毛剌不敏感,只要毛刺不存时钟上跳沿时出现在D输入端,就不会对输出产生影响,这样就可以消除毛刺了。采用格雷码计数器代替普通的二进制计数器,是因为格雷码计数器的输出每次只有一位数据产生变化,这就消除了竞争冒险产生的条件,避免了毛刺的产生。例如在解码器的设计中,进行码型变换时,要将接收时钟与接收的串行数据进行模2加。因为时钟滞后于数据,为了消除毛刺要将数据进行延时再进行模2加;同时还要考虑到1553B对时间的要求(两个数据之间的间隔最小只有1.5μs),因此在时钟分离时就考虑提前进行他高。在检测同步头时,一旦其高(或低)电平大于1个位时的宽度就认为同步头有效,开始进行时钟分离,这样就减小了数据延时,可有效节省时间。进行模2加后,加一D触发器可确保完全将毛刺消除。在编码器设计中在串行数据输出端加一D触发器,数据的毛刺 也被了。另外,在电路的设计中尽可能地消除毛刺产生的条件,例如分频计数器采用格雷码计数器。


4 仿真及FPGA实现

为了确保设计的可行性,必须对设计进行时序仿真;为了提高芯片的性能及资源利用率,要采用专门的综合软件对设计进行优化、综合。由此采用Synplify7.1进行综合,采用MAX+PLUS II进行时序仿真。在Synplify中使用有效的代码,优化组合逻辑、减少逻辑延时等措施来提高整体性能,还进行了多个文件的分块设计,然后将这些文件映射到顶层文件进行综合,并运用VHDL对单个文件进行编写、仿真和优化。在用到组合逻辑时,Synplify会尽量避免锁存器的出现,节省逻辑单元。Synplify和其它综合软件一样,编译后生成的电子设计交换格式文件(EDIF)可以在MAX+PLUS II或Quartus II 3.0中进行编译、仿真、分配引脚和其它优化处理。因此,采用MAX+PLUS II和Synplify 7.1相结合对FPGA进行设计、优化、综合,可提高系统性能和芯片资源的利用率。

最后本设计在Altara公司ACEX1K系列的FPGA(EP1K100Q208-3)芯片上进行了实现。对于ACEX系列的芯片,它还支持寄存器配平技术、流水线操作、复制逻辑模块、使用LPM函数等技术来提高其整性性能,并针对其特点对设计进行了最后的优化。该编解码顺共占用了218个逻辑单元,占总逻辑资源的4%,这有利于今后对其进行完善和功能的添加。其输入时钟为16MHz,数据速率为1MHz,编码和解码时序波形分别如图6所示。

5 总结及设计通用性

该编码解码器采用自顶向下和自向上相结合的方法进行设计,用VHDL语言输入,用MAX+PLUS II和Synplify分别进行仿真、综合。在设计最后,针对器件进行了再一次的优化,缩短了设计周期,提高了系统性能,并且大大提高了芯片资源的利用率。

本设计具有一定的通用性,它的逻辑大部分只涉及到编、解码器本身;而它与外部的接口十分简单,只要对其读、写及同步字头选择信号进行有效控制,就能使其正常工作。它的设计是十分独立的。另外,由于选择器件资源比较丰富,故对其进行功能添加也十分方便,只需添加电路设计而不必对原有电路进行修改。

关键字:曼彻斯特码  1553B总线  VHDL  FPGA 引用地址:用FPGA实现1553B总线接口中的曼码编解码器

上一篇:用Verilog HDL实现I2C总线功能
下一篇:基于片内WISHBONE总线的高速缓存一致性实现

推荐阅读最新更新时间:2024-05-02 22:02

基于FPGA和SRAM的数控振荡器的设计与实现
摘要:介绍数控振荡器的工作原理,重点阐述用现场可编程门阵列(FPGA)和静态随机存储器(SRAM)实现数控振荡器的方法,同时给出采用此结构设计的数控振荡器的特点和性能。 关键词:数控振荡器(NCO);查找表;XC2V1000;CY7C1021;设计 中图分类号:TN914.3 文献标识码:A 文章编号:1006—6977(2006)01—0022一03 1 引言 数控振荡器是数字通信中调制解调单元必不可少的部分,同时也是各种数字频率合成器和数字信号发生器的核心。随着数字通信技术的发展。对传送数据的精度和速率要求越来越高。如何得到可数控的高精度的高频载波信号是实现高速数字通信系统必须解决的问题。可编程逻辑器件和大容量存储器的发展为
[半导体设计/制造]
基于FPGA动态背光源及其驱动电路设计
  引言   当代LCD 显示大部分采用的是冷阴极射线荧光灯(CCFL)背光或LED 静态背光,由于CCFL 亮度不易控制并且响应速度慢,造成能源浪费和动态模糊。LED 静态背光效果虽好,但是其耗能也较为严重,另外恒定亮度的背光使得图像的对比度下降,显示效果不理想。对图像RGB 像素进行分析,在某些区域适当地采用低一级亮度的LED 背光,不仅可以节能,而且会扩大图像显示的对比度,消除动态模糊现象。   1 设计方案及其原理   动态背光源表面上是个整体,其实内部在制作原理图时已经将之分成多个区域,分别控制其各自的亮度。可知背光灯的密集度越高,划分的区域越多、面积越小,显示出来的整体效果会越好。但是从成本、经济价值、制作工艺、
[电源管理]
基于<font color='red'>FPGA</font>动态背光源及其驱动电路设计
65nm FPGA向多模无线基站为代表的高端应用渗透
随着TD-SCDMA进入大规模商业实验,WiMAX加入ITU成为第4个3G标准,爱立信率先完成LTE全链路高速传输试验,IMT-Advanced 开始提案征集,移动通信越来越多地呈现了多标准共存的局面。在现实中则往往在一个站址上,同时有小灵通、CDMA、GSM、TD-SCDMA等多种标准的基站。如何降低研发生产成本,降低建设、运营、维护和升级成本,就成为设备厂商和运营商所面临的共同课题。对此,基站设备厂商提出面向全IP化多模无线基站,实现GSM、UMTS、CDMA、WiMAX多模块多模式基站,从而可以实现平滑演进,从现有TD-SCDMA、WCDMA等3G标准平滑升级到HSDPA/HSUPA甚至LTE等后3G标准。 F
[网络通信]
65nm <font color='red'>FPGA</font>向多模无线基站为代表的高端应用渗透
基于FPGA的可编程电压源系统设计
  可编程电源指某些功能或参数可以通过计算机软件编程进行控制的电源。可编程电源的实现方法有很多种。其中,现场可编程门阵列(Field ProgrammableGate Array,FPGA)具有性能好,规模大,可重复编程,开发投资小等优点。随着微电子技术的发展,FPGA的成本不断下降,正逐渐成为各种电子产品不可或缺的重要部件。由于FPGA有着如此众多的优点,因此系统采用FPGA作为控制芯片,实现可编程电压源系统,为需要可调电压源的电子产品提供高精度、高可靠性的电压。   1 系统设计   采用Altera公司Cyclone系列EP1C6Q240C8为控制芯片。通过Altera的IP工具MegaWizard管理器定制LPM_
[电源管理]
基于<font color='red'>FPGA</font>的可编程电压源系统设计
基于FPGA+MCU的大型LED显示屏系统设计
  随着平板显示技术的不断更新,大型LED显示系统利用发光二极管构成的点阵模块或像素单元组成大面积显示屏,主要显示字符、图像等信息,具有低功耗、低成本、高亮度、长寿命、宽视角等优点。近年来广泛应用在证券交易所、车站机场、体育场馆、道路交通、广告媒体等场所。   通常用单一单片机作为主控器件控制和协调大屏幕显示。由多片单片机构成的多处理器系统,其中一片作为主CPU,其他作为子CPU共同控制大屏幕的显示,该系统可以减轻主CPU 的负担,提高了LED点阵的刷新频率。但单片机的驱动频率有限,无法驱动等分辨率LED屏幕,尤其是对于多灰度级彩色大屏幕,数据送到显示屏之前要进行灰度调制重现图像的色彩,对数据的处理速度要求更高,单片机控制在速度上
[单片机]
基于<font color='red'>FPGA</font>+MCU的大型LED显示屏系统设计
CrossLink-NX FPGA为Moorechip提供高性能高可靠串行接口解决方案
低功耗可编程器件的领先供应商莱迪思半导体公司宣布,Moorechip公司选择莱迪思CrossLink™-NX FPGA来实现支持1080p视频输出的四通道MIPI显示屏串行接口解决方案。CrossLink™-NX FPGA系列提供1066Mbps DDR3存储器接口、2.5Gbps MIPI D-PHY、大容量嵌入式RAM块(EBR)和大型SRAM加速90度图像旋转和高清视频桥接应用的算法实现。 CrossLink-NX系列FPGA的设计采用了业界首款28 nm FD-SOI制造工艺的Lattice Nexus低功耗FPGA技术平台。Nexus拥有莱迪思自主设计的FPGA架构,专为优化高性能、低功耗、小尺寸的设计。CrossL
[嵌入式]
赛灵思大涨25%背后的原因
在电子行业,通常受是产品越新越之前,旧产品都是不断降价的,尤其是芯片,你见过几年前甚至十几年的芯片涨价吗? 但偏偏就有这种例外,真是越老越吃香。日前,FPGA 巨头赛灵思意外宣布部分芯片涨价 25%,特别是那些长寿命芯片,这其实看起来是见匪夷所思的事,完全可以用更好的芯片代替,为何还一直用老旧的芯片? 因为那是 FPGA,不同于单片机,处理器,gpu 等既定的产品,它灵活可编程,所以,即便是几年前的产品,放在现在一样不过时,而且随着用户群体越来越多,越老越吃香的事情也就成真了。 赛灵思 Xilinx 现在是全球最大的 FPGA 芯片供应商,AMD 前不久传闻要花 300 亿美元价格收购的就是他们,看中的就是 FPGA 芯
[嵌入式]
赛灵思大涨25%背后的原因
基于FPGA的数字音频广播信道编码器的实现
    摘要: 介绍了数字音频广播(DAB)信道编码的原理和关键技术,并应用单片FLEX10K100系列FPGA实现DAB信道编码器。     关键词: 数字音频广播(DAB) 信道编码 FPGA 1 数字音频广播(DAB)发射系统及信道编码器 DAB是继调幅和调频广播之后的第三代广播体系。与模拟广播相比它不仅可以提供高质量的声音信号(CD音质),也可以提供数据、图像等多种其他附加服务。它可以保护在高速移动接收时的声音质量,具有很强的抗干扰能力,在同要瓣频带宽度和环境下,DAB可以提供高质量的多种多样的广播节目。    
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved