logo资料库

利用FPGA技术实现数字通信中的交织器和解交织器.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
本地磁盘
template
template 可编程逻辑器件 (FPGA/PLD) 中文网站 推荐使用1024x768分辨率 主 页 新手入门 设计进阶 HDL语言 PLD厂商 参考设计 开发软件 应用文章 PLD论坛 欢迎来到可编程逻辑器件中文网站! www.PLD.com.cn   作者: 北京理工大学电子工程系(100081) 邹 翊 匡镜明 来源:《电子技术应用》   利用FPGA技术实现数字通信中的 交织器和解交织器 摘要:介绍用FPGA实现数字通信中的交、解交织器的一种比较通用的方案,详细说明了设计中的一 些问题及解决办法。还介绍了一种实现FPGA中信号延时的方法。 关键词:交织器与解交织器 FPGA技术 地址序列 最小时延 信号延时 在现代数字通信系统中,FPGA的应用相当广泛。尤其是在对基带信号的处理和整个系统的控制中, FPGA不但能大大缩减电路的体积,提高电路的稳定性,而且先进的开发工具使整个系统的设计调试周 期大大缩短。 1 交织器与解交织器的原理 数字通信中经常用信道编码来提高数据传输的可靠性,其中一些信道编码加入了交织模块,以进一步提 高抗干扰性能。交织器的主要作用就是将原始数据序列打乱,使得交织前后数据序列的相关性减弱,这样 做很突出的一个优点便是大大降低了数据突发错误的影响。在现代的高效编码调制技术中,无论是级联编 码还是Turbo编码中都要使用交织器。 数字通信中常用的交织器按交织方式可分为分组交织器和随机交织器两种,按交织对象分可分为字节交 织和位交织。本文所介绍的实现方案主要针对字节交织器。下面用一个模型来说明交织器的工作过程。设 外码RS码字长度为n=7,交织器深度Id=4,相邻码字之间的交错字节数di=[(n-1) / Id=Sm allest Integer≥(n-1) / Id=2,则交织器的功能如下图1所示。 输入码字按行排列,按列 输出,图中“*”为无效数 据,即交织器输出的前端有 一些无效数据。 解交织器将交织器打乱的字 节序列重新排列恢复原始码 字。如图1,即将串行输入 的字节序列先按列方式读 入,再逐行将码字读出。从 图中可以看出,行与行的码 字间均有di字节交错,这 种斜交织方式的优点可以减 小系统时延。 2 交织器的实现 2.1 实现模型: 在本课题中,交织器的几个参数分别为:n=219,Id=8,di=[219-1 / 8]=28。图2是实现 交织器模型。 file:///F|/工作参考资料/编解码/交织/利用FPGA技术实现数字通信中的交织器和解交织器.htm(第 1/4 页)2006-12-6 17:17:01
template 图中粗线内的方块区域为实现交织器所必须的一块数据缓冲区(存储器),考虑到交织器的功能特性是 须对此缓冲区同时读写,故选用双口RAM实现最好,因为1024<219×8<2048,故容量用 2Kbytes即可。模型中所标识的数字是存储器的地址,画斜线的区域为空闲缓存区,右边存储器外 虚线下数据实际上是存储在存储器左下角的区域内。交织器实际工作时,一边按写地址序列向缓存区中写 入数据,另一边按读地址序列读出。图2模型的写地址序列为:0,1,2...218,284,28 5...437,256,257...283,568,569...656,512,513... 567,852......,依次写入每行,直到1987,下一字节再从0地址开始,循环写入。读 地址序列为:0,256,512,768,1024...1792,1,257,51 3......,直到1751地址,再从0地址开始循环。 对于解交织 器,读地址序 列正好是交织 器的写地址序 列,写地址序 列是交织器的 读地址序列。 2.2 FPGA 的选用及实现 的原理框图 目前主要的FPGA厂商有Xilinx、Altera、AMD、Lattice、Actel、L ucent及Atmel等。Altera公司生产的FLEX 10K系列的FPGA,具有规模覆盖 范围广、布线资源丰富、时间可预测性好的优点,故而在数字通信系统设计中得到了广泛的应用。此外, FLEX 10K系列芯片都具有EAB(Embeded Array Block),可以实现片内存储 器功能,若用EAB做交织器、解交织器的数据缓存区,就可以用单片FPGA完成交、解交织器的功 能,从而大大减小电路的复杂度和体积。但实际应用中,由于FLEX 10K芯片的片内EAB资源有 限,所以要完全实现交、解交织器,至少要选择FLEX 10K130(内部有13万门左右的资源) 以上规模的FPGA。可是实现交织器的时序控制逻辑并不复杂,大概需要一万门左右的资源就够了,再 加上系统其它功能块也不过几万门,若使用10K130芯片就会造成资源浪费,而且成本过高。综合考 虑,决定用外部双口RAM(IDT 7132)当作数据缓冲区,FPGA选用FLEX 10K20芯 片。 图3即为用FPGA实现交织器的原理框图,FPGA的内部可由读、写地址序列发生器和时序控制器 三部分组成。时序控制器主要产生双口RAM读写控制信号,并决定读、写地址序列发生器何时启动工 作。因为解交织器仅是数据进出双口RAM的顺序不同,故上原理图中只须变换读、写地址序列发生器便 可构成解交织器。 3 实现中的若干问题 3.1 读写地址的产生问题 最一般的方案为查找表的方法。令输入数据顺序存入双口RAM,即写地址序列变为:0,1,2, 3...1750,1751,0......,对照模型找出对应的读地址序列。这样重新编址的好处 是使写地址序列易于产生,可以由FPGA直接生成。将读地址序列做成表顺序存入E2PROM(或其 它只读存储器,如Flash),需要读双口RAM 时,FPGA产生0,1,2...1751顺序序 列作地址送给E2PROM,映射出的数据送给双口 RAM作读地址。这种查找表的方法具有很好的通用 性,可以适用于各类字节交织器,但缺点是须额外附 加存储器,而且E2PROM的读取速度一般较慢, 在数据传输速率较高的情况下不适用。 本课题中的交织器在图2所示的模型和编址方法 下,读、写地址序列具有较强的规律性,可以用在F PGA中构造计数器的方式来直接产生。下面介绍一 下地址序列的产生方法。将11位地址分成两部分: 高3位和底8位,在物理实现上构造3位和8位计数 器各一个,然后级联起来。对于交织器的读地址序 列,具体实现时,用数据输入时钟DataInClk驱动3位计数器计数,3位计数器记满同步清0时 产生脉冲驱动8位计数器计数,8位计数器计到218后同步清0。交织器的写地址序列产生稍复杂,但 file:///F|/工作参考资料/编解码/交织/利用FPGA技术实现数字通信中的交织器和解交织器.htm(第 2/4 页)2006-12-6 17:17:01
template 同样可用两计数器的级联产生。 3.2 交织、解交织器的最小时延问题 无论是交织器还是解交织器,数据缓冲区的读相对于写必须有一个延时,这个延时即为交织器和解交织 器的时延。为了尽量减小系统的时延,应使交织器和解交织器的时延降至最小。 首先分析交织器,设数据周期为T,则每个缓冲区单元的读或写地址的保持时间也为T。考察图2模型 中从第i行的交错后的第一个元素A到第i+1行的元素B所用的时间,若按写操作进行需219×T, 按读操作进行需•28×8+1•T=225T>219T。这表明若读、写同时从0地址开始,则缓冲区 那的每个存储单元的写操作都在读操作之前,从而保证每个读出的数据都有效。这里对于交错所产生的左 下角区域元素,交织器开始工作时读出的都是无效数据,但在循环往复的连续数据读写中,读出的则是上 一页所写码字的部分字节,是有效数据。故在交织器中,读、写缓冲区可以同时开始,考虑到双口RAM 对同一单元不能同时读写,所以设计时令读滞后于写一个数据周期T,这样交织器的最小时延为T。 解交织器的分析方法类似。由模型二可推算出,当系统写双口RAM的E单元时,读从0地址单元开 始,故解交织器的最小时延为:•28×7×8+1•T= 1569T。 3.3 FPGA中延时功能的实现 在FPGA的开发设计中,经常需要用到延时模块。如本设计中,实现双口RAM的读写时序时就需 要。以IDT 7132的读时序为例,时序图如图4所示。 无论用CE还是OE来控制读取,都需要CE 或OE保持一段低电平。令OE保持低电平,C E平时为高电平,读双口RAM时触发CE变为 低电平,延迟一小段时间再恢复高电平。本设计 产生这段延时的方法是用高频计数器产生,具体 方法为:在FPGA中设计一个计数器,取系统 可用的高频时钟(周期小于所需延时)驱动它计 数,计到设定好的终值时产生触发脉冲。不同的 计数终值可以产生不同的延时。此方法所产生的 延时为高频时钟周期的整数倍,若高频时钟周期与所需延时相比很小,则延时较精确,否则只能做一粗略 的延时。 当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电 路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效 果。用Altera公司的Maxplus II开发FPGA时,可以通过插入一些LCELL原语来 产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因 此Altera并不提倡这样做。在此,沿用上一段中的思想,可以用高频时钟来驱动一移位寄存器,待 延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此 方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输 出端用数据时钟对延时后信号重新采样,就可以消除误差。 总之,本文着重介绍了用FPGA实现数字通信中的交、解交织器的一种比较通用的方案。其它种类的 交织器,只需更换读、写地址产生模块,确定读、写时差即可完成。除了随机交织器须用查找表的方式产 生读地址序列外,大部分的交织器读、写地址都可用本文介绍的类似方法实现,这样既节省芯片,缩小电 路体积,速度又快,调试也大大简化。文中还介绍了一种实现FPGA中信号粗略延时的方法以供大家参 考。 返回 本文著作权归作者和相关媒体,如有著作权争议,请告知,本站将立即删除 about us | Site Map | file:///F|/工作参考资料/编解码/交织/利用FPGA技术实现数字通信中的交织器和解交织器.htm(第 3/4 页)2006-12-6 17:17:01
分享到:
收藏