利用FPGA技术实现数字通信中的交织器和解交织器_邹翊

发布于:2021-09-18 15:29:58

DOI:10.16157/j.issn.0258-7998.2000.10.016

通讯与电视

利用 !"#$ 技术实现数字通信中的 交织器和解交织器
北 京 理 工 大 学 电 子 工 程 系 < #"""J# >


邹 翊

匡镜明

要 : 介 绍 用 *4/) 实 现 数 字 通 信 中 的 交 、 解交织器的一种比较通用的方案, 详细说明了设计

中 的 一 些 问 题 及 解 决 办 法 。 还 介 绍 了 一 种 实 现 *4/) 中 信 号 延 时 的 方 法 。 关键词: 交织器与解交织器

*4/) 技 术

地址序列

最小时延

信号延时

在现代数字通信系统中, *4/) 的 应 用 相 当 广 泛 。 尤其是在对基带信号的处理和整个系统的控制中,

解交织器将交织器打乱的字节序列重新排列恢 即将串行输入的字节序列先按 复原始码字。如图 #, 列方式读入, 再逐行将码字读出。 从图中可以看出, 行 与 行 的 码 字 间 均 有 "$ 字 节 交 错 , 这 种 斜 交 织 方 式 的 优点可以减小系统时延。

*4/) 不 但 能 大 大 缩 减 电 路 的 体 积 , 提 高 电 路 的 稳 定
性, 而且先进的开发工具使整个系统的设计调试周期 大大缩短。

! 交织器与解交织器的原理
数字通信中经常用信道编码来提高数据传输的 可靠性, 其中一些信道编码加入了交织模块, 以进一 步 提 高 抗 干 扰 性 能 。交 织 器 的 主 要 作 用 就 是 将 原 始 数 据序列打乱,使得交织前后数据序列的相关性减弱, 这样做很突出的一个优点便是大大降低了数据突发 错误的影响。在现代的高效编码调制技术中, 无论是 级 联 编 码 还 是 56789 编 码 中 都 要 使 用 交 织 器 。 数字通信中常用的交织器按交织方式可分为分 组交织器和随机交织器两种, 按交织对象分可分为字 节 交 织 和 位 交 织 。本 文 所 介 绍 的 实 现 方 案 主 要 针 对 字 节交织器。下面用一个模型来说明交织器的工作过 交 织 器 深 度 ! ". ’ , 相 程 。 设 外 码 :; 码 字 长 度 为 # . 3 , 邻 码 字 之 间 的 交 错 字 节 数 "$.

" 交织器的实现
"#! 实 现 模 型 :
在本课题中,交织器的几个参数分别为: # . !#I ,

! ". J , " $ . K !#I = # L . !J 。 图 ! 是 实 现 交 织 器 模 型 。 J
图中粗线内的方块区域为实现交织器所必须的 一块数据缓冲区 (存储器) , 考虑到交织器的功能特性 是 须 对 此 缓 冲 区 同 时 读 写 , 故 选 用 双 口 :)M 实 现 最 好, 因 为 #"!’ N !#I O J N !"’J , 故 容 量 用 ! P8QDBC 即 可 。 模型中所标识的数字是存储器的地址, 画斜线的区域 为空闲缓存区, 右边存储器外虚线下数据实际上是存 储在存储器左下角的区域内。交织器实际工作时, 一 边按写地址序列向缓存区中写入数据, 另一边按读地 址序列读出。图 ! 模型的写地址序列为: ", #, !RRR

<#=#> . ;?@AABCD ! " !
"

EFDBG

则交织器的功能如下图 # 所示。 HB7 ! < # = # > . ! , !" 输入码字按行排列, 按列输出, 图中 “,” 为无效数 据, 即交织器输出的前端有一些无效数据。
输入交织器顺序 … $% $& $’ $( $! $# $" )% )& )’ )( )! )# )"

!#J, !J’, !J&RRR’(3, !&%, !&3RRR!J(, &%J, &%IRRR %& % , &#! , &#( R R R &%3 , J&! R R R R R R , 依 次 写 入 每 行 , 直 到 下一字节再从 " 地址开始, 循 环 写 入 。读 地 址 序 #IJ3 , 列 为 : ", !&% , &#! , 3%J , #"!’ R R R #3I! , #, !&3 , &#( R R R R R R , 直 到 #3&# 地 址 , 再从 " 地址开始循环。
对于解交织器, 读地址序列正好是交织器的写地 址序列, 写地址序列是交织器的读地址序列。

!".’

… *’ *( *! *# *"

+% +& +’ +( +! +# +"

,

,

- #.!
… /! /# /" 0% 0& 0’ 0( 0! 0# 0" , , , , … 1" 2% 2& 2’ 2( 2! 2# 2"

" # " $%&’ 的 选 用 及 实 现 的 原 理 框 图 目 前 主 要 的 *4/) 厂 商 有 STATFU 、 )ADB7@ 、 )M2 、 V@DDTWB 、 )WDBA 、 V6WBFD 及 )D?BA 等 。 )ADB7@ 公 司 生 产 的 具有规模覆盖范围广、 布线 *V$S #" P 系 列 的 *4/) ,
资源丰富、 时间可预测性好的优点, 故而在数字通信 系统设计中得到了广泛的应用。此外, *V$S #" P 系 列 芯 片 都 具 有 $)+ ( $?8B-B- )77@Q +A9WX ) , 可以实现 解 片 内 存 储 器 功 能 , 若 用 $)+ 做 交 织 器 、 交织器的数据缓存区, 就 可 以 用 单 片 *4/)

,

, , , , ,

#.3
… 交织器输出的字节序列为:

, 0" +! )’ , , +# )( , , +" )( , , +" )! , , , )# , , , )"
图 # 交织器工作原理

’!

单 片 机 综 合 服 务 网 %&’( 拨 入 电 话 ( )*) ) +,--)./)

《电子技术应用》!""" 年第 #" 期

通讯与电视

图 ! 交、 解交织器数据缓冲区模型

完成交、 解交织器的功能, 从而大大减小电路的复杂度 和 体 积 。 但 实 际 应 用 中 , 由 于 $%& ’ # " ( 芯 片 的 片 内 所以要完全实现交、 解交织器, 至少要 & )* 资 源 有 限 , 选 择 $%& ’ # " (# + " ( 内 部 有 #+ 万 门 左 右 的 资 源 ) 以上 规 模 的 $,-) 。可 是 实 现 交 织 器 的 时 序 控 制 逻 辑 并 不 复 杂, 大概需要一万门左右的资源就够了, 再加上系统其 它功能块也不过几万门, 若 使 用 # " (# + " 芯 片 就 会 造 成 资源浪费, 而且成本过高。综合考虑, 决定用外部双口 ( 012 3 # + ! ) 当作数据缓冲区, .)/ $,-) 选 用 $%& ’ # " (! " 芯 片 。 图 + 即 为 用 $,-) 实 现 交 织 器 的 原 理 框 图 , $,-) 的内部可由读、 写地址序列发生器和时序控制器三部 分 组 成 。 时 序 控 制 器 主 要 产 生 双 口 .)/ 读 写 控 制 信 号, 并决定读、 写地址序列发生器何时启动工作。 因为 解 交 织 器 仅 是 数 据 进 出 双 口 .)/ 的 顺 序 不 同 , 故 上 原理图中只须变换读、 写地址序列发生器便可构成解 交织器。
$,-)
写地址发生器 数据输出 双口

对照模型找出对应的读地址序列。这样 #35# , "444444, 重新编址的好处是使写地址序列易于产生,可以由

$,-) 直 接 生 成 。 将 读 地 址 序 列 做 成 表 顺 序 存 入 (或其它只读存储器, 如 $789: ) , 需要读双口 & ! ,.6/ .)/ 时 , $,-) 产 生 " , #, ! 4 4 4 #35# 顺 序 序 列 作 地 址 送 给 & ! ,.6/ , 映 射 出 的 数 据 送 给 双 口 .)/ 作 读 地 址 。
这种查找表的方法具有很好的通用性, 可以适用于各 类字节交织器,但缺点是须额外附加存储器,而且

& ! ,.6/ 的 读 取 速 度 一 般 较 慢 , 在 数 据 传 输 速 率 较 高
的情况下不适用。 本课题中的交织器在图 ! 所示的模型和编址方法 下, 读、 写地址序列具有较强的规律性, 可 以 用 在 $,;

-) 中 构 造 计 数 器 的 方 式 来 直 接 产 生 。 下 面 介 绍 一 下 地 址 序 列 的 产 生 方 法 。 将 ## 位 地 址 分 成 两 部 分 : 高 + 位和底 < 位, 在物理实现上构造 + 位和 < 位计数器各
一个, 然后级联起来。 对于交织器的读地址序列, 具体 实现时, 用 数 据 输 入 时 钟 18=80>?7@ 驱 动 + 位 计 数 器 计 数, + 位计数器记满同步清 " 时产生脉冲驱动 < 位计 数器计数, < 位 计 数 器 计 到 !#< 后 同 步 清 " 。交 织 器 的 写地址序列产生稍复杂, 但同样可用两计数器的级联 产生。 解交织器的最小时延问题 !"$ 交 织 、 无论是交织器还是解交织器, 数据缓冲区的读相 对于写必须有一个延时, 这个延时即为交织器和解交 织器的时延。为了尽量减小系统的时延, 应使交织器 和解交织器的时延降至最小。 则每个缓冲区 首先分析交织器, 设数据周期为 !, 单 元 的 读 或 写 地 址 的 保 持 时 间 也 为 ! 。考 察 图 ! 模 型 中 从 第 A 行 的 交 错 后 的 第 一 个 元 素 ) 到 第 A B# 行 的 元素 * 所用的时间, 若 按 写 操 作 进 行 需 !#C D ! , 按读 操 作 进 行 需 E !< D < B # F ! G !!5 ! H !#C ! 。 这 表 明 若 读 、 写 同时从 " 地址开始, 则缓冲区那的每个存储单元的写 操作都在读操作之前, 从而保证每个读出的数据都有 效。这里对于交错所产生的左下角区域元素, 交织器

数据 输出

<

<
写地址

.)/ !(D<

读、 写 控制 信号 发生

写起始控制

读起始控制

##
读地址

!

读地址发生器

## 18=80> ?7@ ?7@ ?7 I
图 + 交 织 器 的 $,-) 实 现 原 理 框 图

18=86J= ?7@

! 实现中的若干问题
!"# 读 写 地 址 的 产 生 问 题
最一般的方案为查找表的方法。令输入数据顺序 即写地址序列变为: 存 入 双 口 .)/ , ", #, !, + 4 4 4 #35" ,

《电子技术应用》!""" 年第 #" 期

四通工控 %&’ 软起动器经销商((#() )$)$)#** )$)$)#*+

K+

通讯与电视
开始工作时读出的都是无效数据, 但在循环往复的连 续数据读写中, 读出的则是上一页所写码字的部分字 节, 是有效数据。故在交织器中, 读、 写缓冲区可以同 时开始, 考 虑 到 双 口 G5< 对 同 一 单 元 不 能 同 时 读 写 , 所以设计时 令 读 滞 后 于 写 一 个 数 据 周 期 %, 这样交织 器的最小时延为 %。 解交织器的分析方法类似。由模型二可推算出, 当 系 统 写 双 口 G5< 的 E 单 元 时 , 读 从 " 地 址 单 元 开 始 , 故 解 交 织 器 的 最 小 时 延 为 :D !I J H J I K # L % M 的延时。 当需要对某一信号作一段延时时, 初学者往往在 此信号后串接一些非门或其它门电路, 此方法在分离 电 路 中 是 可 行 的 。 但 在 3145 中 , 开 发 软 件 在 综 合 设 计时会将这些门当作冗余逻辑去掉, 达不到延时的效 果 。 用 5N.0?- 公 司 的 <-O%NF+ (( 开 发 3145 时 , 可以通 但这样形 过 插 入 一 些 &7E&& 原 语 来 产 生 一 定 的 延 时 , 成 的 延 时 在 3145 芯 片 中 并 不 稳 定 , 会 随 温 度 等 外 部 环 境 的 改 变 而 改 变 , 因 此 5N.0?- 并 不 提 倡 这 样 做 。 在 此, 沿用上一段中的思想, 可以用高频时钟来驱动一 移位寄存器, 待延时信号作数据输入, 按所需延时正 确设置移位寄存器的级数, 移位寄存器的输出即为延 时 后 的 信 号 。此 方 法 产 生 的 延 时 信 号 与 原 信 号 比 有 误 差, 误差大小由高频时钟的周期来决定。对于数据信 号的延时, 在输出端用数据时钟对延时后信号重新采
$ 57E !" #" $ 5>E

#:,9 % 。 ! " ! #$%& 中 延 时 功 能 的 实 现
经常需要用到延时模块。 在 3145 的 开 发 设 计 中 , 如本设计中, 实 现 双 口 G5< 的 读 写 时 序 时 就 需 要 。以 时序图如图 $ 所示。 (2@ H#=! 的 读 时 序 为 例 ,

样, 就可以消除误差。 总 之 , 本 文 着 重 介 绍 了 用 3145 实 现 数 字 通 信 中 的交、 解交织器的一种比较通用的方案。其它种类的 交织器, 只需更换读、 写地址产生模块, 确定读、 写时 差 即 可 完 成 。除 了 随 机 交 织 器 须 用 查 找 表 的 方 式 产 生
A5&(2 25@5

2-.->F.

读地址序列外, 大部分的交织器读、 写地址都可用本 文介绍的类似方法实现, 这样既节省芯片, 缩小电路 体积, 速度又快, 调试也大大简化。 文中还介绍了一种 实 现 3145 中 信 号 粗 略 延 时 的 方 法 以 供 大 家 参 考 。 参考文献 # (P.0N+-. E-?.Q ’.-.*RP ’.-PS-?S+ D (E’’ L 2R/F T0P.+ <-V #99H (E’’ B =#" D G0U 6 ; L ,
清华大学出版社, ! 王 小 军 编 著 6 AW2& 简 明 教 程 6 北 京 :

图 $ 双 口 G5< (2@ H#=! 读 操 作 时 序 图

无 论 用 7E 还 是 >E 来 控 制 读 取 , 都 需 要 7E 或 >E 保 持 一 段 低 电 * 。 令 >E 保 持 低 电 * , 7E * 时 为 高 电 *, 读 双 口 G5< 时 触 发 7E 变 为 低 电 * , 延迟一小段 时 间 再 恢 复 高 电 * 。本 设 计 产 生 这 段 延 时 的 方 法 是 用 高 频 计 数 器 产 生 , 具 体 方 法 为 : 在 3145 中 设 计 一 个 计数器, 取系统可用的高频时钟 (周期小于所需延时) 驱动它计数, 计到设定好的终值时产生触发脉冲。不 同 的 计 数 终 值 可 以 产 生 不 同 的 延 时 。此 方 法 所 产 生 的 延时为高频时钟周期的整数倍, 若高频时钟周期与所 需延时相比很小, 则延时较精确, 否则只能做一粗略

#99H EO0T%N-? &RX*/ = &0RP-?SR W2& ’VP.Q0+*+ 4F*S0 ,
李 健 航 编 译 6 <5C 1NF+ (( 入 门 6 清 华 大 学 $ 马群生,

5N.0?- 培 训 中 心 , #99, 6 $
(收稿日期: !""" B ": B !! )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
( 上 接 第 $# 页 ) 经过上述步骤, %&’( ) *+%&’( #"#, 就 成 为 一 个 具 有 一定功能的逻辑器件了, 我们也就可以在系统电路板 上使用它了。 “在系统可编程 ( *+% ) ” 总之, 美 国 &-..*/0 公 司 将 技术应用到高密度可编程器件中, 形成既有可编程逻 辑器件 ( 1&2 ) 的性能与特点, 又有现场可编程逻辑阵 列 ( 3145 ) 高 密 度 和 灵 活 性 的 在 系 统 可 编 程 逻 辑 器 件。本设计就是对这种器件进行了一定的开发及应 用, 设计出一种通用数字信号源。 有 关 *+% 器 件 的 开 发 及应用还值得我们作进一步的探索。 参考文献 # 章 开 和 6 用 *+%&’( 高 密 度 在 系 统 可 编 程 器 件 实 现 双
(!) 718 控 制 器 6 电 子 技 术 , #99: ; 廖 先 芸 编 著 6 (;< 微 型 机 实 用 接 口 技 术 6 科 学 ! 张旭东、 技术文献出版社, #99= 年 黄美慧、 周 金 贤 编 著 6 >?752 ) ’2@ (A 电 脑 辅 = 黄德荣、 助 电 路 设 计 的 研 究 6 #99$ 年 ( ":!" ) 系列系统 $ 周 明 德 编 著 6 微 型 计 算 机 (;< B 17 ) C@ 原理及应用 (修订版) , 上6清华大学出版社, #99# 年

D收稿日期: !""" B ", B ", )

$$

单片机综合服务网 ( 试 运 行 ) !""# $ % % &’’ ( &&& ( )* ( ’+

《电子技术应用》!""" 年第 #" 期


相关推荐