当前位置:首页 > 单片机 > 单片机
[导读]介绍数据传输中BCH解码校验用汇编语言实现的算法。算法包含BCH码的差错检验、差错位查找和差错纠正,同时列出相关主要子程序清单并予说明。

摘要:介绍数据传输中BCH解码校验用汇编语言实现的算法。算法包含BCH码的差错检验、差错位查找和差错纠正,同时列出相关主要子程序清单并予说明。

    关键词:BCH解码 校验算法 汇编语言

数据传输通信中,常常因传输差错造成误码错码,尤其在无线通信中,空中的突发或随机干扰噪声会造成编码差错。为了提高传输的正确率,往往采用一些校验方法,以检验纠正传输差错。通信中校验的方法很多,其中的BCH编码有其独特的优点:不仅可以检纠突发差错,还能检纠随机差错,被广泛地采用在微机级的通信中。但对更低层的单片机级的数据传输通信纠错,往往采用奇偶校验等简单的校验方法。BCH校验因其算法复杂,尤其是动态实时的无线通信中,单片机的通信往往无法采用BCH解码检纠。

笔者近几年在工业测控和无线通信系统开发,摸索了BCH解码检纠在实时的、动态的、单片机级的通信中的算法,并取得十分突出的效果。以下以BCH(31:21)码为例进行探讨。

1 BCH码结构

BCH码是一种检纠能力较强的循环码。它由信息多项式M(X)和校验多项式J(X)组成,如以T(X)表示整个BCH(31:21)码字的31位码组多项式,则:

T(X)=M(X)+J(X)   (1)

在31位BCH码的后面再加上1位,以保证整个码字32位中“1”的个数为偶数。该位称偶校验位。这样就形成BCH(31:21)加1位偶校验位的标准码字,其结构为:

其中校验多项式J(X)由公式(2)计算:

X0X1……X20 X21……X30 X31
T(X) J(X) 偶校验位

J(X)=M(X)/S(X)    (2)

式中S(X)是BCH(31:21)码的生成多项式,见式(3):

生成多项式S(X)的值在BCH(31:21)码的值是固定的。

BCH码是一种循环码,循环码是利用除法来纠错的。由于任一码组多项式T(X)都能被生成多项式S(X)整除,所以在接收端可以将接收码组R(X)用S(X)去除。若在传输中未发生错误,接收码与发送码相同,即R(X)=T(X),故接收码组R(X)必定能被生成多项式S(X)整除;若码组在传输中发生错误,即R(X)≠T(X),R(X)被S(X)除时,可能除不尽而有余项Y(X),因此,可根据余项是否为零来判断码中有无错误(检错),如有余项,通过一定的运算就可以确定错误位置,从而加以纠正(纠错)。

这里R(X)被S(X)除,是32位被11除,这在非实时静态的微机级实现非常简单;但在实时的、动态的、单片机级的通信中实现要快速巧妙的算法才能实现,否则,现有的码未检错及纠错完毕,下一个码已经到了。因为动态中位和位的时距t往往只有几十μs,以9.6b/s的短信为例,t=104μs。在这104μs中要完成检错、定位和纠错三个算法程序,才是一个完整的解码检纠过程。

2 检错

根据上述原理,检错过程也就是求算R(X)被S(X)除的余项Y(X)的过程,如余项Y(X)=0,则R(X)=T(X),传输无差错;如余项Y(X)≠0,则R(X)≠T(X),检出传输差错。

在算法语言中,所有的运算总归于二种运算:加和减。这是电子计算机的二进制基本电路特性所决定的,也是汇编语言唯一的算术运算方法。为此,这里把除法用模二加法再加右移位实现。

已知:S(X)=11101101001

R(X)=r3r4r5r6 (ri为8位寄存器)

调用下面的模二加法右移子程序,得到R(X)/S(X)的余项Y(X)=r3r4。

;32位/16位模二加法右移子程序

m2add:mov r7,#00

m2ddgx:mov a,r3

xrl a,#0edh ;S(x)的高位=oed(h)

mov r3a

mov a,r4

cpl acc.5 ;S(x)的低3位=001(b)

mov r4,a

mov a,r3

acc7e10:jb acc.7m2addgx ;R(x)的最高位为“0”,则R(x)右移

mov a,r6

rlc a

mov r6,a

mov a,r5

rlc a

mov r5,a

mov a,r4

rlc a

mov r4,a

mov a,r3

rlc a

mov r3,a

mov r7

cjne r7,#10h,acc7e10 ;右移总次数为16次

ret

余项Y(X)的高8位在r3寄存器中,低3位在r4的高3位。

3 定位

如果Y(X)=r3r4≠0,表示接收到的码组R(X)有差错,下一步则由Y(X)的值推算差错在R(X)中的位置。

理论上要找出R(X)中差错的位置,必须计算出差错校验子C(X)。在实践中,校验子C(X)的计算不仅费时间,而且多位检纠还需多个校验子C(X)。为此,经过几年的实践,把Y(X)(即r3r4)直接作为综合校验子,通过快速查表找到差错位置。查找程序的大小和检纠差错位数有关,这里以检纠4位差错为例,说明定位纠错的方法。

;4位差错位址查找子程序

bitposi:mov b,0 ;对R(X)高位至低位的移动计数

mov r2,#1fh ;设表格长度

bto a: mov a,b

inc b

acall tabsub ;调用表格子程序,读入表格值

clr c

subb a,r3 ;Y(X)中的r3 和表格值比较

jnz binc1 :不相等,转出

mov a,b ;相等,继续

acall tabsub

clr

subb a,r4 ;Y(X)中的r4和表格值比较

jnz r2decl:不相等,转出

setb f0 ;相等,置标志位返回

ret

bincl:inc b

r2decl:djnz r2,btoa

ret ;表格查毕,没有相等的值,不置标志位返回

从查找子程序返回的B寄存器的值,即为差错在R(X)中从高位到低位的位数值。

;4位差错表格子程序

tabsub:inc a

movc a,@a+pc;将相对位置的表格送入a寄存器

ret

db 0ebh ;表格开始,长度为查找子程序中

db 00 ;r2寄存器的预置值

db 76h

.

.

.

4 纠错

找到了差错在R(X)位置,就可以纠错了。

纠错的原理比较简单,因为单片机处理的是二进制数,而二进制数只有二个状态,即不是“0”就是“1”。也就是说,R(X)中差错位是“0”,则改为“1”;差错位是“1”,则改为“0”。所以纠错要对所在位求反就行了,程序见本刊网络补充版(http://www.dpj.com.cn)。

至此,整个检错、定位、纠错的BCH码校验检纠过程结束。BCH码校验算法,经过实践的检验,不失为单片机级的数据传输校验好算法。这种方法可以对多位随机差错和多位突发差错进行检验和纠错,具体位数的多少仅受单片机工作频率的限制,而不受方法的限制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP

2型炎症领域新突破 上海2023年9月22日 /美通社/ -- 赛诺菲今天宣布,达必妥®(度普利尤单抗注射液)获得中国国家药品监督管理局(NMPA)批准,用于治疗适合系统治疗的中度至重度结节性痒疹的成...

关键字: PRIME BSP REPORT SAR

欧莱雅中国旗下上海美次方投资有限公司达成首次开放式创新投资 法国克里希2023年9月22日 /美通社/ -- 欧莱雅集团宣布对中国创新型生物科技公司杉海创新进行少数股权投资,以建立长期合作伙伴关系,共同开发新...

关键字: AN BSP DEVELOPMENT FOR
关闭
关闭