潜江信息网
星座
当前位置:首页 > 星座

用FPGA实现数据远距离的高精度传输

发布时间:2019-11-27 06:55:16 编辑:笔名

用FPGA实现数据远距离的高精度传输 - FPGA/CPLD - 电子工程

①在子站、基站的收发端口与微处理器之间分别加入相应的编解码设备,使得子站与基站间传输的数据先经过编解码再传输,以达到增强容错的能力。

②用帧结构实现码字的交错。

③远距离传输,收发端最好选用同步方式,但这不是本设计的内容,不予以讨论。

(3)基于精度,对数据的每一位单独编码

实际应用中,对数据精确的定义并非数据的完全重合,而是要求某一个精度。完全重合只对用做标志的数据有意义,对单纯计算用的数据并没有必要。基于精度要求,显然一个数据信息的高位对精度影响远比低位大(如:FFH,当最高位出错变为7FH时,精度变化最大,而最低位出错变为FEH时,精度变化最小)。因此,我们并没有对8位数据信息进行整体编码,而是逐位分开进行编码:高数据位,采用更长的编码,以保证更高的正确率;低数据位,则可采用较短的编码,兼顾效率和设备容量。具体编码如表1所列。

表1

8位数据最低位(3,1)码 0对应010,1对应101,汉明距3,纠1错

8位数据第二位(3,1)码 0对应010,1对应101,汉明距3,纠1错

8位数据第三位(5,1)码 0对应01010,1对应10101,汉明距5,纠2错

8位数据第四位(5,1)码 0对应01010,1对应10101,汉明距5,纠2错

8位数据第五位(7,1)码 0对应,1对应,汉明距7,纠3错

8位数据第六位(7,1)码 0对应,1对应,汉明距7,纠3错

8位数据第七位(9,1)码 0对应,1对应,汉明距9,纠4错

8位数据最高位(9,1)码 0对应,1对应,汉明距9,纠4错

表2

第1位 第2位 第3位 第4位 第5位 第6位 第7位 最高位

0 010 010 01010 01010

1 101 101 10101 10101

对8个位远逐位编码,8个生成矩阵为1维矢量。因此用FPGA实现编码时,采用查表法更方便,如表2所列。

之所以选用010等作为码字,是因为01相间在组合为帧发送时,可以减少连0或连1的出现概率。

(4)帧结构实现交错发送技术

为纠突发错,码字要按交错格式发送。因此,用帧实现码字的交错,数据发端按帧发送,数据收端按帧解码。8个码字共48位(6字节),加帧头2字节,所以,帧为8字节。为说明帧结构,暂以字母表示码字各位:

码字0:a2a1a0; 码字3:d4d3d2ed1d0;

码字1:b2b1b0; 码字4:e6e5e4e3e2e1e0;

码字2:c4c3c2c1c0; 码字5:f6f5f4f3f2f1f0;

码字6:g8g7g6g5g4g3g2g1g0;

码字7:h8h7h6h5h4h3h2h1h0;

帧结构如表3所列。

利用帧头1和帧头2的重合特点来检测帧头,因为码字交错发送时相邻两字节对应位基本01相间的。由表3可得,第3字节到第8字节,相邻字节至少有6位不相同。因此可借用汉明距的纠错思想,认为帧头1和2不重合的位在2位以内,则表示正确收到帧头。

表3

帧头1 1 1 0 1 0 1 0 0

帧头2 1 1 0 1 0 1 0 0

第3字节 a0 c0 e0 f6 f0 g0 g6 h0

第4字节 a1 c1 e2 d0 f1 g1 g7 h1

第5字节 a2 c2 e2 d1 f2 g2 g8 h2

第6字节 b0 c3 e3 d2 f3 g3 h6 h3

第7字节 b1 c4 e4 d3 f4 g4 h7 h4

第8字节 b2 e6 e5 d4 f5 g5 h8 h5

3 FPGA实现设计

(1)单工条件下的实现

用两块FPGA分别实现编码器和解码器。按前面的编解码原理,编码器接收子站8位信息和1位同步,输出8字节×8位帧结构编码作远程传输,解码器收到帧结构编码,输出8位信息和1位同步给基站。(在实际应用中,子基站两MPU还要加入通常的累加和检错或偶校验检错。因不属编解码内容,不作讨论。)

家居装修
食疗养生
小吃