《现代电子技术》2007年第6期摘录:李晓娟等:基于FPGA的HDI
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
李晓娟等:基于FPGA的HDI。c设计实现据组合有可能与标志字(0¨l】110)相同,为了防止接收端误判为帧头或帧尾,在一帧的帧头和帧尾之间每当传输连续5个“1”比特之后,就自动插入一个“O”比特,此“O”不进行CRC计算。而接收端在接收到帧头后,每连续接收到5个“1”比特,就自动将其后的一个“O”比特删除,以恢复信息的原有形式。经过此操作保证了数据链路的透明传输(即可以传输任意组合的比特流)。2.3(2RC校验HDI。C规程中数据位信息是以帧方式来传送,为了保证数据传送的可靠性,在一帧的格式中加入了帧校验(Frame(;heckingSequence,FCS)序列。}-ID[,C规程采用循环冗余校验码(CRC),对所传送的数据进行检错与纠错。在HDLC规程中,帧校验序列通常与一码生成多项式相对应。对于16位帧校验序列。码生成多项式为:P(z)一z’‘+z”+z。+1对于32位帧校验序列,码生成多项式为:P(z)一,。+,。+z。。+-T。。+T’。+z。。+一。+z’。+z。+z’+.r。+一+,+z+1本设计中采用16位帧校验序列,CRC计算由软件完成。在HDI。C协议中,除了标志位和自动插入的“O”位外,所有的信息都参与CRC计算。3基于FPGA的HDI。C协议器设计考虑到实际要求及在雷达中的应用,在可编程器件FPGA(EPt?lOK)内设计HDI。C协议器,该器件的优点是可以在线编程、方便调试、支持仿真。同时该器件内融合了雷达系统的多种控制功能。在FPGA内实现HDI。C功能采用的是“自顶向下”的设计方法,即根据要求的功能先设计出顶层的原理框图,该图由若干个功能模块组成。再把各个模块细化为子模块,对较复杂的设计则把各子模块分成一层层的下级子模块,各层的功能可以用硬件描述语言或电路图实现。该设计中主要使用VHDL语言编写程序代码,经过综合、仿真和优化等过程,最终将程序下载到芯片中。HDLC协议器的工作原理为CPLJ将收到的大量数据通过数据总线,地址总线不断地送到FPGA中,FPGA将该数据存到HDI。C协议器的缓存区内,并根据一定的时钟频率将该数据进行长度设定,通过并/串转换,“O”比特插入,增加标志字等模块处理后,将数据按照HDI,C协议发送。接收端将接收到的数据进行校验显示,对比发送端的数据判断数据发送的可靠性。整个系统的收发端采用同一个全局时钟。HDLC协议处理框图如图2所示,虚线框为HDI。C协议器。3.1FIFo缓存区及端口控制在数据发送时,为了平滑CPI_T与}tDI。C协议控制器之间的数据传输速率,采用一个异步FIF()作为两者之间36的接口模块。该FIF()接收数据总线上送来的数据转换成固定速率的并行数据输出,并且将自身状态信息(wrfull,rdempty)通过指定的地址接口送给CP~J。考虑实际要求及FPGA的自身特性,本设计中采用一个64×8的FIF0完成速率转换和数据缓存功能。FPGA内的功能模块如图3所示。图2HDI。C协议处理框图图3FP(;A的内部功能模块3.2HDLC协议器通过HDLC协议处理框图(图2)分析可知,要将数据以HDLC协议透明传送出去,还需要在FPGA中完成将FIF()送出的数据进行数据分段(SENDCONTR()I。)、并/串转换(PSC()NTR()I。)、插“0”操作(AZER())和增-加标志字(A}IEAD)等模块处理。经过这些处理,送出的就是满足HDLC协议的数据(sdataout)和全局时钟(sclkout。)。该功能在FPGA中的设计实现如图4所示。图4HDLC在FP(;A中的设计实现(1)时钟与分频器雷达中要求HDLC传输数率为telk,同时提供数据时钟。本设计中采用分频器对已有的时钟进行分频,产生所需的rdelk作为FIF()读时钟及计数时钟。从FIF0读出的数据数率即为rdclk的时钟周期。其中分频器以V}tDI。语言写成,是一个通用型分频器,程序代码如下。其中若要求对时钟进行z分频,则m—z/2,”一z一1;图5所示为8分频器的仿真波形:删l_,一,一赫
阅读此文(图):
点击此处在线翻阅