掌桥专利:专业的专利平台
掌桥专利
首页

兼容多种fec、defec与crc算法的装置

文献发布时间:2023-06-19 19:27:02


兼容多种fec、defec与crc算法的装置

技术领域

本发明是关于双模蓝牙或多种无线RF协议收发数据处理的技术领域,特别是关于一种兼容多种fec、defec与crc算法的装置。

背景技术

在AIOT无线智能传感集成技术、无线通信技术以及无线MCUSoC产品应用以及无线传输控制家居、智能家电以及智能健康监测、智能物联等技术领域,fec/crc算法、纠错、数据bit流的通信编码等控制应用的越来越广泛,现有的各算法控制装置兼容性低,缺少通用性,功耗高,成本高。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种兼容多种fec、defec与crc算法的装置,其能够基于发送和接收的数据bit流根据配置的通信编码模式进行通信编码处理,并根据配置算法模式的寄存器进行发送数据bit流的fec算法和接收数据bit流的defec纠错算法传输控制以及crc算法校验处理,低功耗、低成本、高集成度、通用性强。

为实现上述目的,本发明的实施例提供了一种兼容多种fec、defec与crc算法的装置,包括:

fec模块,用于基于寄存器的配置对传输的bit流数据进行不同的fec算法处理;

所述fec模块包括用于实现fec23算法处理的fec23自加计数器和fec23算法装置、用于实现fec13算法处理的fec13自加计数器和fec13算法装置、用于实现fec12算法的fec12自加计数器和fec12算法装置;

defec模块,用于基于寄存器的配置对传输的bit流数据进行不同的defec纠错算法处理;

所述defec模块包括用于实现defec23纠错算法处理的defec23自加计数器和defec23算法装置、用于实现defec13算法处理的defec13自加计数器和defec13算法装置、用于实现defec12算法的fec12自加计数器和defec12算法装置;

crc模块,用于基于寄存器的配置对接收bit流数据进行crc算法处理;

bit流控制模块,用于基于寄存器的配置和fec模块输出的第一控制信号进行bit流数据的通信编码控制处理;

所述bit流控制模块包括自减计数器、自加计数器以及控制模块,所述自减计数器基于初始值控制信号、不同的编码模式和第一控制信号进行不同初始值的自减计数而输出第一计数值,所述控制模块基于寄存器的配置、自减计数器的第一计数值和第一控制信号输出第二控制信号和初始值控制信号,所述自加计数器基于第二控制信号进行自加计数而输出第二计数值。

在本发明的一个或多个实施例中,所述defec23算法装置包括算法处理模块、移位寄存器和纠错模块,所述算法处理模块用于对原始数据进行计算得到计算值,所述移位寄存器用于对原始数据和计算值进行移位储存而获得最终值,所述纠错模块用于基于原始数据、计数值和最终值输出用于表征原始数据是否错误的表征信号并基于表征信号来对原始数据进行处理。

在本发明的一个或多个实施例中,所述纠错模块包括判断模块和纠正模块,所述判断模块用于基于原始数据、计算值和最终值输出用于表征原始数据是否错误的表征信号,所述纠正模块用于基于表征信号来对原始数据进行处理。

在本发明的一个或多个实施例中,所述判断模块包括第一异或门、第二异或门、第三异或门、第四异或门、第五异或门;

所述第一异或门的第一输入端用于接收原始数据,所述第一异或门的第二输入端、第二异或门的第二输入端、第三异或门的第二输入端、第四异或门的第二输入端和第五异或门的第二输入端分别用于接收不同的计算值,所述第二异或门的第一输入端、第三异或门的第一输入端、第四异或门的第一输入端、第五异或门的第一输入端分别用于接收不同的最终值,所述第一异或门的输出端用于输出第五表征信号,所述第二异或门的输出端用于输出第四表征信号,所述第三异或门的输出端用于输出第三表征信号,所述第四异或门的输出端用于输出第二表征信号,所述第五异或门的输出端用于输出第一表征信号。

在本发明的一个或多个实施例中,所述纠正模块包括第一与门、第二与门、第三与门、第四与门、第五与门、第六与门、第七与门、第八与门、第九与门、第十与门、第一非门、第二非门、第三非门、第四非门、第五非门、第六非门、第七非门、第八非门、第九非门、第十非门、第十一非门、第十二非门、第十三非门、第十四非门、第十五非门、第十六非门、第十七非门、第十八非门、第六异或门、第七异或门、第八异或门、第九异或门、第十异或门、第十一异或门、第十二异或门、第十三异或门、第十四异或门和第十五异或门;

所述第一非门的输出端与第一与门的第三输入端相连,所述第二非门的输出端与第一与门的第五输入端相连,所述第三非门的输出端与第二与门的第一输入端相连,所述第四非门的输出端与第二与门的第四输入端相连,所述第五非门的输出端与第三与门的第四输入端相连,所述第六非门的输出端与第三与门的第五输入端相连,所述第七非门的输出端与第四与门的第一输入端相连,所述第八非门的输出端与第四与门的第五输入端相连,所述第九非门的输出端与第五与门的第一输入端相连,所述第十非门的输出端与第五与门的第二输入端相连,所述第十一非门的输出端与第六与门的第三输入端相连,所述第十二非门的输出端与第六与门的第四输入端相连,所述第十三非门的输出端与第七与门的第二输入端相连,所述第十四非门的输出端与第七与门的第五输入端相连,所述第十五非门的输出端与第八与门的第一输入端相连,所述第十六非门的输出端与第八与门的第三输入端相连,所述第十七非门的输出端与第十与门的第二输入端相连,所述第十八非门的输出端与第十与门的第四输入端相连;

所述第一与门的第一输入端、第一与门的第二输入端、第一非门的输入端、第一与门的第三输入端、第二非门的输入端依次用于接收第一至第五表征信号;所述第三非门的输入端、第二与门的第二输入端、第二与门的第三输入端、第四非门的输入端、第二与门的第五输入端依次用于接收第一至第五表征信号;所述第三与门的第一输入端、第三与门的第二输入端、第三与门的第三输入端、第五非门的输入端、第六非门的输入端依次用于接收第一至第五表征信号;所述第七非门的输入端、第四与门的第二输入端、第四与门的第三输入端、第四与门的第四输入端、第八非门的输入端依次用于接收第一至第五表征信号;所述第九非门的输入端、第十非门的输入端、第五与门的第三输入端、第五与门的第四输入端、第五与门的第五输入端依次用于接收第一至第五表征信号;所述第六与门的第一输入端、第六与门的第二输入端、第十一非门的输入端、第十二非门的输入端、第六与门的第五输入端依次用于接收第一至第五表征信号;所述第七与门的第一输入端、第十三非门的输入端、第七与门的第三输入端、第七与门的第四输入端、第十四非门的输入端依次用于接收第一至第五表征信号;所述第十五非门的输入端、第八与门的第二输入端、第十六非门的输入端、第八与门的第四输入端、第八与门的第五输入端依次用于接收第一至第五表征信号;所述第九与门的第一输入端、第二输入端、第三输入端、第四输入端、第五输入端依次用于接收第一至第五表征信号;所述第十与门的第一输入端、第十七非门的输入端、第十与门的第三输入端、第十八非门的输入端、第十与门的第五输入端依次用于接收第一至第五表征信号;

所述第六异或门的第一输入端、第七异或门的第一输入端、第八异或门的第一输入端、第九异或门的第一输入端、第十异或门的第一输入端、第十一异或门的第一输入端、第十二异或门的第一输入端、第十三异或门的第一输入端、第十四异或门的第一输入端和第十五异或门的第一输入端用于接收原始数据;

所述第六异或门的输出端、第七异或门的输出端、第八异或门的输出端、第九异或门的输出端、第十异或门的输出端、第十一异或门的输出端、第十二异或门的输出端、第十三异或门的输出端、第十四异或门的输出端和第十五异或门的输出端用于输出纠正值。

在本发明的一个或多个实施例中,所述crc算法包括crc24算法、crc16算法和crc8算法,所述crc24算法采用的3byte crc多项式为:X24+X10+X9+X6+X4+X3+X+1,所述crc16算法采用的2byte crc多项式为:X16+X12+X5+1,所述crc8算法采用的1 byte crc多项式为:X8+X2+X+1。

在本发明的一个或多个实施例中,所述fec13算法为3次重复fec code的bit数据流;所述fec23算法以汉明码实现,所述fec12算法以卷积码实现。

在本发明的一个或多个实施例中,所述fec23算法采用的多项式为g(D)=(D+1)(D4+D+1),所述fec12算法采用的多项式为G0(x)= 1+x+x2+x3,G1(x) =1+x2+x3。

在本发明的一个或多个实施例中,所述原始数据包括a0、a1、a2、a3、a4、a5、a6、a7、a8、a9,所述算法处理模块得到计算值的计算公式包括:

fec23_data_reg[4] =a0+a2+a5+a6+a8+a9;

fec23_data_reg[3] =a0+a1+a2+a3+a5+a7+a8;

fec23_data_reg[2] =a1+a2+a3+a4+a6+a8+a9;

fec23_data_reg[1] =a0+a3+a4+a6+a7+a8;

fec23_data_reg[0]=a1+a4+a5+a7+a8+a9。

在本发明的一个或多个实施例中,所述控制模块包括第十一与门、第十二与门、第十三与门、第十四与门、第十五与门、第十九非门、第一或门和第二或门;

第十二与门的第二输入端与第十九非门的输出端相连,第一或门的第一输入端与第十一与门的输出端相连,第一或门的第二输入端与第十二与门的输出端相连,第一或门的第三输入端与第十三与门的输出端相连,第十四与门的第一输入端与第一或门的输出端相连,第十四与门的第二输入端用于接收第一控制信号,所述第十四与门的输出端用于输出第二控制信号,第二或门的第二输入端与第十五与门的输出端相连,所述第二或门的输出端用于输出初始值控制信号。

与现有技术相比,根据本发明实施例的兼容多种fec、defec与crc算法的装置,可作为需要兼容双模蓝牙,兼容多种无线RF传输,多种无线协议兼容传输的基带协议特性。

根据bit流控制模块控制数据传输,读取数据后进行串行数据的通信编码控制,发送的串行数据bit流进行fec算法和crc算法,接收的串行数据bit流进行defec算法、crc算法以及通信编码的译码控制。

通过寄存器配置fec算法和crc算法进行数据bit流的不同算法处理,并对传输的数据包实现兼容性以及defec纠错、crc校验、通信编码等数据算法控制,进而控制不同的无线设备和接收兼容多种无线数据传输,可达到兼容性强、通用性强、低功耗、低成本等需求。

兼容双模蓝牙以及多种RF协议的基带控制中的编码及算法,可作为一个通用的具有可以配置兼容多种通信编码、fec/defec算法、crc算法的IP模块集成于SoC或MCU电路中,具有功耗低、通用性强、占用面积小、节约成本。

附图说明

图1是根据本发明的兼容多种fec算法的fec模块结构图。

图2是根据本发明的fec模块的内部结构图。

图3是根据本发明的bit流控制模块结构图。

图4是根据本发明的自减计数器和自加计数器的结构示意图。

图5是根据本发明的控制模块的结构示意图。

图6是根据本发明的兼容多种crc算法的crc模块的结构示意图。

图7是根据本发明的兼容多种defec算法的defec模块结构图。

图8是根据本发明的defec模块的内部结构示意图。

图9是根据本发明的算法处理模块和移位寄存器的结构示意图。

图10是根据本发明的defec算法原理图。

图11是根据本发明的判断模块的结构示意图。

图12是根据本发明的纠正模块的结构示意图。

具体实施方式

下面结合附图,对本发明的具体实施例进行详细描述,但应当理解本发明的保护范围并不受具体实施例的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

说明书中的“耦接”或“连接”或“相连”既包含直接连接,也包含间接连接。间接连接为通过中间媒介进行的连接,如通过电传导媒介进行的连接,其可具有寄生电感或寄生电容;间接连接还可包括在实现相同或相似功能目的的基础上通过其他有源器件或无源器件的连接,如通过开关、跟随电路等电路或部件的连接。另外,在本发明中,例如“第一”、“第二”之类的词语主要用于区分一个技术特征与另一个技术特征,而并不一定要求或暗示这些技术特征之间存在某种实际的关系、数量或者顺序。

一种兼容多种fec、defec与crc算法的装置,包括:fec模块、defec模块、crc模块和bit流控制模块。

fec模块用于基于寄存器的配置对传输的bit流数据进行不同的fec算法处理;defec模块用于基于寄存器的配置对传输的bit流数据进行不同的defec纠错算法处理;crc模块用于基于寄存器的配置对接收bit流数据进行crc算法处理;bit流控制模块用于基于寄存器的配置和fec模块输出的第一控制信号进行bit流数据的通信编码控制处理。

图1示出的是兼容多种fec算法的fec模块结构图,其中,fec_init为fec算法模块的初始化控制信号;fec_en是fec算法模块的使能信号;tx_datain为fec算法模块的串行输入数据;clk为fec算法模块的时钟信号;reset为fec算法模块的复位信号。

fec_type[1:0]由寄存器配置而作为fec算法模块的配置信号,如下表1所示,fec_type[1:0]配置为00则为no fec算法,fec_type[1:0]配置为01则为fec13算法,fec_type[1:0]配置10则为fec23算法,fec_type[1:0]配置11则为fec12算法。

如图2所示,fec模块包括用于实现fec23算法处理的fec23自加计数器和fec23算法装置、用于实现fec13算法处理的fec13自加计数器和fec13算法装置、用于实现fec12算法的fec12自加计数器和fec12算法装置。

fec13算法、fec23算法以及fec12算法可以选择配置。fec13算法为3次重复feccode的bit数据流;fec23算法以汉明码实现,采用的多项式是g(D)=(D+1) (D4+D+1);fec12算法以卷积码实现,采用的多项式为G0(x)= 1+x+x2+x3,G1(x) =1+x2+x3;其中G0(a0)传输在前,G1(a1)传输在后。

图3示出的是串行数据输出的bit流控制模块,bit流控制模块用于控制从先进先出的数据缓存器或RAM中读取的数据进行发送数据的串行输出bit流数据的控制和进行通信编码控制处理。编码模式包括采用非归零编码、曼彻斯特编码、8b/10b编码、数据交错编码。如图3所示,bit流控制模块的输入信号分别有init_cnt, fec_ready,data_type[1:0],reset,clk;bit流控制模块的输出信号分别有bit_cnt[4:0],data_bit_cnt[3:0],data_bit_cnt_en;其中data_type[1:0]为通信编码模式寄存器的配置信号,其意义如下表2所示。init_cnt为数据传输控制的fec模块内部计算bit_cnt的初始化信号,fec_ready是fec模块输出的第一控制信号,即每一个fec_ready有效时,进行内部bit流的有效计数。reset为控制fec模块内部计数器的复位信号,clk进行fec模块内部bit流的有效计数的时钟信号。

bit流控制模块包括自减计数器、自加计数器以及控制模块。

图4示出的是自减计数器和自加计数器,自减计数器基于初始值控制信号、不同的编码模式和第一控制信号fec_ready进行不同初始值的自减计数而输出第一计数值bit_cnt[4:0],当load_bit_cnt有效时,bit_cnt进行load初始值,对于不同输入的data_type[1:0],bit_cnt进行load不同的初始值。自加计数器基于第二控制信号进行自加计数而输出第二计数值。自加计数器的输入信号有init_cnt,data_bit_cnt_en,reset,clk;当外部输入信号init_cnt为1时,输出信号data_bit_cnt的初始化值为0,当data_bit_cnt_en有效时。输出信号data_bit_cnt进行自加计数。在图4中,clk为计数器的时钟信号,reset为计数器的复位信号。

图5示出的是控制模块,控制模块基于寄存器的配置、自减计数器的第一计数值bit_cnt[4:0]和第一控制信号fec_ready输出第二控制信号data_bit_cnt_en和初始值控制信号load_bit_cnt。

控制模块包括第十一与门、第十二与门、第十三与门、第十四与门、第十五与门、第十九非门、第一或门和第二或门。第十一与门的第一输入端用于接收bit_cnt非16'h0016'h0516'h0a16'h0f值逻辑,第十一与门的第二输入端用于接收data8b/10b,第十九非门的输入端用于接收bit_cnt[0],第十二与门的第一输入端用于接收data_man,第十二与门的第二输入端与第十九非门的输出端相连,第十三与门的第一输入端用于接收data_nrz,第十三与门的第二输入端用于接收data_interleave,第一或门的第一输入端与第十一与门的输出端相连,第一或门的第二输入端与第十二与门的输出端相连,第一或门的第三输入端与第十三与门的输出端相连,第十四与门的第一输入端与第一或门的输出端相连,第十四与门的第二输入端用于接收第一控制信号fec_ready,第十三与门的输出端用于输出第二控制信号data_bit_cnt_en。第十四与门的第一输入端用于接收bit_cnt==5’b0000,第十四与门的第二输入端用于接收fec_ready,第二或门的第一输入端用于接收init_cnt,第二或门的第二输入端与第十五与门的输出端相连,第二或门的输出端用于输出初始值控制信号load_bit_cnt。

结合图4和图5,自减计数器的第一计数值bit_cnt[4:0]和寄存器配置的不同的data_type[1:0]产生data_bit_cnt_en。具体的,data_type[1:0]配置为00: NRZ law data(即data_nrz数据类型),对应的图5中的data_nrz则为1;data_type[1:0]配置为01:Manchester data type(即data_man数据类型),对应的图5中的data_man为1;data_type[1:0]配置为10: 8/10 bits line code(即data8b/10b数据类型),对应的图5中的data8b/10b为1;data_type[1:0]配置为11: Interleave data type(即data_interleave数据类型),对应的图5中的data_interleave为1。当输入信号init_cnt为1,或满足bit_cnt计数值为零且fec_ready为1时,以上两种情况,都会使load_bit_cnt为1。

图6示出的是兼容多种crc算法的crc模块。其中,crc_md[1:0]由寄存器配置而作为crc算法选择输出的配置信号,crc_init_sel用于控制crc模块的初始化,datain即crc模块的串行输入信号,data_en为选择data串行数据流进行crc算法的数据流使能信号,data_bit_cnt_en为图5产生的逻辑控制信号,即其有效时选择bit流数据进行crc算法,fec_ready同图1产生的fec ready信号;crc_en是控制crc模块进行crc算法的使能信号,clk为crc模块内部计数器的时钟信号,reset为crc模块内部计数器的复位信号;crc_data[23:0]是进行crc24算法而产生的数据信号,crc_data[15:0]是进行crc16算法而产生的数据信号,crc_data[7:0]是进行crc8算法而产生的数据信号。

根据寄存器输出的串行数据,serial_data_crc选择不同的crc_data输出,具体的,当crc_md[1:0]配置值为2’b10时,选择crc_data[23];当crc_md[1:0]配置值为2’b01时,选择crc_data[15];当crc_md[1:0]配置值为2’b00时,选择crc_data[7]。

crc模块对于收发数据都会进行crc算法计算,crc模块内部具有接收数据的crc校验逻辑电路。如图6所示,crc校验逻辑电路包括第十六异或门、第十六与门、第二十非门、第十七与门和D触发器。第十六异或门的第一输入端用于接收datain,第十六异或门的第二输入端用于接收serial_data_crc,第十六与门的第一输入端用于接收rx_en,第十六与门的第二输入端用于接收fec_ready,第十六与门的第三输入端用于接收crc_en,第十六与门的第四输入端用于接收data_bit_cnt_en,第十六与门的第五输入端与第十六异或门的输出端相连,第二十非门的输入端用于接收crc_init,第十七与门的第一输入端与第二十非门的输出端相连,第十七与门的第二输入端与第十七与门的输出端相连,D触发器的D输入端与第十七与门的输出端相连,D触发器的Q输出端用于输出rx_crc_err。

在本实施例中,当crc_init有效时,rx_crc_err为0;crc_init为0时,逻辑datain异或serial_data_crc输出的值与逻辑rx_en,fec_ready,crc_en和data_bit_cnt_en进行与运算产生rx_crc_err信号。

另外crc24算法采用的3byte crc多项式为:X24+X10+X9+X6+X4+X3+X+1;crc16算法采用的2byte crc多项式为:X16+X12+X5+1;crc8算法采用的1 byte crc多项式为:X8+X2+X+1。

图7示出的是兼容多种defec算法的defec模块。对于fec算法产生的信号需要进行defec运算,输入信号有defec_init、defec_en、fec_type[1:0]、rx_datain、reset和clk,输出信号有defec_ready,defec_dataout信号。

如图8所示,defec模块包括用于实现defec23纠错算法处理的defec23自加计数器和defec23算法装置、用于实现defec13算法处理的defec13自加计数器和defec13算法装置、用于实现defec12算法的fec12自加计数器和defec12算法装置。

根据配置的fec_type而进行不同的defec算法,其中,defec13算法对连续的3个bit流纠错,在3个bit中,将其中两个具有相同的值的bit值取为有效值。defec12算法采用卷积维特比纠错译码电路进行译码和纠错,维特比纠错译码电路内部仍采用目前通用的模块,维特比纠错译码电路内部主要由加、比、选这3个模块组成,以每次32bit计算完,选择最小路径进行输出;defec23算法采用汉明码纠错译码电路实现。

如图9、图10、图11和图12所示,defec23算法装置包括算法处理模块、移位寄存器和纠错模块。算法处理模块用于对原始数据进行计算得到计算值,移位寄存器用于对原始数据和计算值进行移位储存而获得最终值,纠错模块用于基于原始数据、计数值和最终值输出用于表征原始数据是否错误的表征信号并基于表征信号来对原始数据进行处理。

fec23算法同发送的fec23算法,对接收的数据datain进行fec23算法,得到计算值fec23_data_reg[4:0],移位寄存器对接收的数据datain进行移位储存。图10具体介绍了defec算法原理图,原发送数据以15bit为一组有效数据,而前10bit即a0~a9为原始数据,a10~a14为基于(a0,a1,a2,~a9)按fec23算法多项式生成的汉明码:

a10= fec23_data_reg[4]=a0+a2+a5+a6+a8+a9;

a11= fec23_data_reg[3]=a0+a1+a2+a3+a5+a7+a8;

a12= fec23_data_reg[2]=a1+a2+a3+a4+a6+a8+a9;

a13= fec23_data_reg[1]=a0+a3+a4+a6+a7+a8;

a14= fec23_data_reg[0]=a1+a4+a5+a7 +a8+a9。

对于接收的数据进行移位并通过fec_en使能,对串行输入的数据进行fec23算法,即得到fec23_data_reg[4:0]。

另外,空中接收的bit流串行数据存入buffer,bit流从高往低方式即后入串行数据在前存入datain,rxd_dly[10:1],接收方在串行数据(a0,a1,a2,~a9)即串行数据前10bit流也进行fec23算法,即rxd_dly[10:1]内存入(a0,a1,a2,~a9),接受方fec23_data_reg[0:4]通过接收的(a0,a1,a2,~a9)进行fec23算法,由于收发数据进行相同的fec23算法,当接收的a0~a9有错误时,接收的来自发送跟随的即存入移位寄存器的值与有效数据a0~a9出现异同,即判断接收的数据有错误。

纠错模块包括判断模块和纠正模块,判断模块用于基于原始数据datain、计算值和最终值输出用于表征原始数据datain是否错误的表征信号,纠正模块用于基于表征信号来对原始数据进行处理。

如图11所示,判断模块包括第一异或门、第二异或门、第三异或门、第四异或门、第五异或门。

第一异或门的第一输入端用于接收原始数据datain,第一异或门的第二输入端用于接收计数值fec23_data_reg[0],第二异或门的第二输入端用于接收计数值fec23_data_reg[1]、第三异或门的第二输入端用于接收计数值fec23_data_reg[2]、第四异或门的第二输入端用于接收计数值fec23_data_reg[3]和第五异或门的第二输入端用于接收计数值fec23_data_reg[4],第二异或门的第一输入端用于接收最终值rxd_dly[14],第三异或门的第一输入端用于接收最终值rxd_dly[13],第四异或门的第一输入端用于接收最终值rxd_dly[12],第五异或门的第一输入端用于接收最终值rxd_dly[11],第一异或门的输出端用于输出第五表征信号c[4],第二异或门的输出端用于输出第四表征信号c[3],第三异或门的输出端用于输出第三表征信号c[2],第四异或门的输出端用于输出第二表征信号c[1],第五异或门的输出端用于输出第一表征信号c[0]。

如图12所示,纠正模块包括第一与门、第二与门、第三与门、第四与门、第五与门、第六与门、第七与门、第八与门、第九与门、第十与门、第一非门、第二非门、第三非门、第四非门、第五非门、第六非门、第七非门、第八非门、第九非门、第十非门、第十一非门、第十二非门、第十三非门、第十四非门、第十五非门、第十六非门、第十七非门、第十八非门、第六异或门、第七异或门、第八异或门、第九异或门、第十异或门、第十一异或门、第十二异或门、第十三异或门、第十四异或门和第十五异或门。

第一非门的输出端与第一与门的第三输入端相连,第二非门的输出端与第一与门的第五输入端相连,第三非门的输出端与第二与门的第一输入端相连,第四非门的输出端与第二与门的第四输入端相连,第五非门的输出端与第三与门的第四输入端相连,第六非门的输出端与第三与门的第五输入端相连,第七非门的输出端与第四与门的第一输入端相连,第八非门的输出端与第四与门的第五输入端相连,第九非门的输出端与第五与门的第一输入端相连,第十非门的输出端与第五与门的第二输入端相连,第十一非门的输出端与第六与门的第三输入端相连,第十二非门的输出端与第六与门的第四输入端相连,第十三非门的输出端与第七与门的第二输入端相连,第十四非门的输出端与第七与门的第五输入端相连,第十五非门的输出端与第八与门的第一输入端相连,第十六非门的输出端与第八与门的第三输入端相连,第十七非门的输出端与第十与门的第二输入端相连,第十八非门的输出端与第十与门的第四输入端相连。

第一与门的第一输入端用于接收第一表征信号c[0],第一与门的第二输入端用于接收第二表征信号c[1],第一非门的输入端用于接收第三表征信号c[2],第一与门的第三输入端用于接收第四表征信号c[3],第二非门的输入端用于接收第五表征信号c[4]。

第三非门的输入端用于接收第一表征信号c[0],第二与门的第二输入端用于接收第二表征信号c[1],第二与门的第三输入端用于接收第三表征信号c[2],第四非门的输入端用于接收第四表征信号c[3],第二与门的第五输入端用于接收第五表征信号c[4]。

第三与门的第一输入端用于接收第一表征信号c[0],第三与门的第二输入端用于接收第二表征信号c[1],第三与门的第三输入端用于接收第三表征信号c[2],第五非门的输入端用于接收第四表征信号c[3],第六非门的输入端用于接收第五表征信号c[4]。

第七非门的输入端用于接收第一表征信号c[0],第四与门的第二输入端用于接收第二表征信号c[1],第四与门的第三输入端用于接收第三表征信号c[2],第四与门的第四输入端用于接收第四表征信号c[3],第八非门的输入端用于接收第五表征信号c[4]。

第九非门的输入端用于接收第一表征信号c[0],第十非门的输入端用于接收第二表征信号c[1],第五与门的第三输入端用于接收第三表征信号c[2],第五与门的第四输入端用于接收第四表征信号c[3],第五与门的第五输入端用于接收第五表征信号c[4]。

第六与门的第一输入端用于接收第一表征信号c[0],第六与门的第二输入端用于接收第二表征信号c[1],第十一非门的输入端用于接收第三表征信号c[2],第十二非门的输入端用于接收第四表征信号c[3],第六与门的第五输入端用于接收第五表征信号c[4]。

第七与门的第一输入端用于接收第一表征信号c[0],第十三非门的输入端用于接收第二表征信号c[1],第七与门的第三输入端用于接收第三表征信号c[2],第七与门的第四输入端用于接收第四表征信号c[3],第十四非门的输入端用于接收第五表征信号c[4]。

第十五非门的输入端用于接收第一表征信号c[0],第八与门的第二输入端用于接收第二表征信号c[1],第十六非门的输入端用于接收第三表征信号c[2],第八与门的第四输入端用于接收第四表征信号c[3],第八与门的第五输入端用于接收第五表征信号c[4]。

第九与门的第一输入端用于接收第一表征信号c[0],第九与门的第二输入端用于接收第二表征信号c[1],第九与门的第三输入端用于接收第三表征信号c[2],第九与门的第四输入端用于接收第四表征信号c[3],第九与门的第五输入端用于接收第五表征信号c[4]。

第十与门的第一输入端用于接收第一表征信号c[0],第十七非门的输入端用于接收第二表征信号c[1],第十与门的第三输入端用于接收第三表征信号c[2],第十八非门的输入端用于接收第四表征信号c[3],第十与门的第五输入端用于接收第五表征信号c[4]。

第六异或门的第一输入端用于接收原始数据a0,第七异或门的第一输入端用于接收原始数据a1,第八异或门的第一输入端用于接收原始数据a2,第九异或门的第一输入端用于接收原始数据a3,第十异或门的第一输入端用于接收原始数据a4,第十一异或门的第一输入端用于接收原始数据a5,第十二异或门的第一输入端用于接收原始数据a6,第十三异或门的第一输入端用于接收原始数据a7,第十四异或门的第一输入端用于接收原始数据a8,第十五异或门的第一输入端用于接收原始数据a9。

第六异或门的输出端用于输出纠正值a0_flip,第七异或门的输出端用于输出纠正值a1_flip,第八异或门的输出端用于输出纠正值a2_flip,第九异或门的输出端用于输出纠正值a3_flip,第十异或门的输出端用于输出纠正值a4_flip,第十一异或门的输出端用于输出纠正值a5_flip,第十二异或门的输出端用于输出纠正值a6_flip,第十三异或门的输出端用于输出纠正值a7_flip,第十四异或门的输出端用于输出纠正值a8_flip,第十五异或门的输出端用于输出纠正值a9_flip。

在本实施例中,算法处理模块得到计算值的计算公式包括:

fec23_data_reg[4]=a0+a2+a5+a6+a8+a9;

fec23_data_reg[3]=a0+a1+a2+a3+a5+a7+a8;

fec23_data_reg[2]=a1+a2+a3+a4+a6+a8+a9;

fec23_data_reg[1]=a0+a3+a4+a6+a7+a8;

fec23_data_reg[0]=a1+a4+a5+a7+a8+a9。

从上式可以看出当a0、a1、a2、a3、a4、a5、a6、a7、a8、a9中的某一或多个数据出错时,会使对应的fec23_data_reg产生错误,结合图11从而使得c[0]、c[1]、c[2]、c[3]、c[4]中对应的表征信号出现错误。

例如,如果a0出错,会使fec23_data_reg[4]、fec23_data_reg[3]、fec23_data_reg[1]出错,从而使得c[0]、c[1]、c[3]出错,结合图12中的第六异或门而求得a0根据异或逻辑得到纠错后的纠正值a0_flip,数据a0的纠错算法为a0_flip=a0+(c[0]*c[1]*(~c[2])*c[3]*(~c[4])),其中“+”表示或逻辑运算,“*”表示与逻辑运算,“~”表示非逻辑运算;其他数据的纠错算法方法相同。如图12所示,a1_flip对应数据a1出错时的纠正值,a2_flip对应数据a2出错时的纠正值,a3_flip对应数据a3出错时的纠正值,a4_flip对应数据a4出错时的纠正值,a5_flip对应数据a5出错时的纠正值,a6_flip对应数据a6出错时的纠正值,a7_flip对应数据a7出错时的纠正值,a8_flip对应数据a8出错时的纠正值,a9_flip对应数据a9出错时的纠正值。

在本实施例中,fec算法包括fec13、fec23、fec12以及相应的defec算法;其中根据蓝牙协议,Basic Rate数据传输会用到fec13、fec23编码与译码算法,而蓝牙的ble5.2使用的是fec12编码与译码算法。兼容蓝牙协议的Basic Rate使用crc16 bit算法g(D)=D16+D12+D5+1。兼容蓝牙协议的Low Energy Controller协议使用的crc24 bit算法g(D)=D24+D10+D9+D6+D4+D3+D+1。兼容的多种无线RF结构,使用的fec算法为fec13、fec23编码及译码算法;兼容的多种无线RF数据包结构使用的crc算法多项式:1byte crc g(D) = D8 + D2 + D+ 1;2byte crc g(D) = D16 + D12 + D5 + 1。

无线通信中为了正确传输数据,在基带传输中常常使用数据编码。通过配置寄存器可实现对传输的数据bit流实现非归零编码Non-Return-Zero(NRZ)、曼彻斯特编码Manchester Encoding、8b/10b编码8/10 bits line code、数据交错编码DataInterleaving四种编码可选的一种编码模式进行传输。

兼容多种fec/defec算法、crc算法的装置支持通过寄存器编程配置的算法模式进行数据bit流的fec/defec算法模式处理以及crc算法模式处理,还可以根据算法装置的控制使能信号与模式进行数据bit流算法的开启和结束。

为达到上述目的,本发明所采用的技术方案是设计出根据fec模式和使能信号进行发送数据的兼容fec13、fec23、fec12算法的装置,设计出根据fec模式和使能信号兼容相应的fec13、fec23、fec12进行defec算法的装置;设计出根据crc模式通过寄存器配置对发送和接收数据进行crc8/crc16/crc24算法的装置。设计出对传输的数据bit流实现非归零编码Non-Return-Zero(NRZ)、曼彻斯特编码Manchester Encoding、8b/10b编码8/10 bitsline code、数据交错编码Data Interleaving四种编码可选的一种编码模式传输的装置。由于传输的数据bit流进行通信编码、fec/defec算法、crc算法需要进行串行操作,所以设计褚对数据bit流进行串行通信编码、fec/defec算法、crc算法的装置,可用于兼容双模蓝牙并兼容多种无线传输的基带协议收发数据包的bit流数据的通信编码、fec编码、defec译码、crc校验等数据bit流控制和处理装置。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

相关技术
  • 兼容多种接口协议的M.2接口模块、装置及控制方法
  • 一种兼容多种线路的光通信应急装置
  • 一种兼容多种密码算法的电子印章系统及方法
  • 一种兼容多种密码算法的电子印章系统及方法
技术分类

06120115917895