基于交织异或算法的串行UART编解码结构及方法技术

技术编号:33993942 阅读:62 留言:0更新日期:2022-07-02 10:24
本发明专利技术所述的基于交织异或算法的串行UART编解码结构及方法,本方法在硬件结构中使用双通道进行数据传输,双通道分别为第一通道和冗余通道,每个通道由一个信号发送器和一个信号接收器构成;第一通道传输经过串行UART协议编码后的待传输信号,冗余通道传输经过串行UART协议编码后的冗余数据;在解码模块通过串行UART协议对接收端接收到的双通道数据解码,当传输信道干扰较小时,可直接使用第一通道数据以降低功耗,当传输信道干扰较大时,通过抽样博弈算法对接收数据进行算法处理来应对高干扰环境下的信道数据传输,当接收数据出现异常时在数据恢复模块通过与编码模块相同的交织异或算法实现对异常数据的纠错。织异或算法实现对异常数据的纠错。织异或算法实现对异常数据的纠错。

【技术实现步骤摘要】
基于交织异或算法的串行UART编解码结构及方法


[0001]本专利技术涉及通信
,具体是涉及一种基于交织异或算法的串行UART编解码方法。

技术介绍

[0002]串行UART指通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART),是一种异步串行收发协议,由一个信号发送器和一个信号接收器构成,将信号发送器的发送数据端和信号接收器的接收数据端相连即可进行数据发送与接收,因此只需要两根传输线就可以完成数据交互。
[0003]串行UART通信在电力、自动控制领域应用广泛,当串行UART收发应用于FPGA(Field Programmable Gate Array,基于现场可编程逻辑门阵列)时,一般传输速度较高,常大于4Mbps,由于串行收发的发送数据端和接收数据端为单端传输,因此当传输信道出现如电磁干扰或噪声等因素的影响时,传输信道所传输的信号会由于毛刺的产生而导致数据采样错误,从而导致接收到的数据异常,容易出现误码。通常串行收发会设置奇偶校验位(数据位最后一位)来对接收到的数据进行校验以判断传输的信号是否正确,但奇偶校验位只能判断传输信号的正确性,却不能够帮助使用者将这些异常纠正,这在一些对数据可靠性要求较高的场合是不被允许的。

技术实现思路

[0004]为解决上述技术问题,本专利技术提供了一种基于现场可编程逻辑门阵列(FPGA)的高可靠性串行UART编解码方法,该方法主要应用于高干扰环境下的信道数据传输,并实现对信道数据传输异常时进行纠错;在发送端对待传输的链路信号通过交织异或算法处理后使用串行UART协议进行再编码,作为冗余数据通过冗余通道发送端发送,在接收端通过抽样博弈算法来应对高干扰环境下的信道数据传输,当环境干扰较大时,通过与发送端相同的交织异或算法对串行UART通信过程中信道传输异常信号进行纠错。
[0005]本专利技术所述的基于交织异或算法的串行UART编解码结构,所述串行UART编解码结构包括第一FPGA和第二FPGA,所述第一FPGA包括编码模块、第一通道信号发送器和冗余通道信号发送器,所述第二FPGA包括解码模块、第一通道信号接收器和冗余通道信号接收器;所述编码模块包括第一UART编码模块及算法编码模块,第一UART编码模块对待传输的链路信号编码,通过第一通道信号发送器将编码后的待传输链路信号发送给第一通道信号接收器;算法编码模块对待传输的链路信号进行处理得到一组冗余数据,对冗余数据进行编码,通过冗余通道信号发送器将编码后的冗余数据发送给冗余通道信号接收器;所述解码模块包括第一UART解码模块、第二UART解码模块、第一抽样博弈算法模块、第二抽样博弈算法模块及数据恢复模块,第一UART解码模块、第二UART解码模块分别对接收的编码后的待传输链路信号及编码后的冗余数据进行解码,然后同时通过第一、第二抽样博弈算法模块对解码后的数据进行处理,当接收的数据出现异常时通过数据恢复模块
对其进行纠错。
[0006]进一步的,所述算法编码模块包括在交织异或算法编码模块及第二UART编码模块,所述交织异或算法编码模块对待传输的链路信号进行算法处理,然后使用第二UART编码模块对处理后的数据编码。
[0007]基于交织异或算法的串行UART编解码方法,采用上述的基于交织异或算法的串行UART编解码结构进行编解码,其步骤为:步骤1、确定待传输的链路信号;步骤2、第一UART编码模块通过串行UART编码方式对待传输的链路信号进行编码处理;通过第一通道信号发送器的发送数据端将编码后的待传输链路信号发送;步骤3、算法编码模块对待传输的链路信号同时做交织异或算法运算,将待传输信号的低位到高位定义为(p(0),p(1),p(2)......,p(n

1)),构成信息序列,通过交织异或算法对所述信息序列进行再编码,得到冗余数据;步骤4、将所述冗余数据通过第二UART编码模块编码,将编码后的冗余数据通过冗余通道信号发送器的发送数据端将数据发送;步骤5、通过第一通道信号接收器接收第一通道信号发送器发送的数据;通过冗余通道信号接收器接收冗余通道信号发送器发送的数据;步骤6、第一UART解码模块、第二UART解码模块分别对接收的编码后的待传输链路信号及编码后的冗余数据进行解码,然后同时通过第一、第二抽样博弈算法模块对解码后的数据进行处理,当接收的数据出现异常时通过数据恢复模块对其进行纠错。
[0008]进一步的,步骤2中,待传输的链路信号通过UART协议编码,然后通过第一通道信号发送器的发送数据端将数据发送,此时的编码协议不使用奇偶校验位对传输信号检错。
[0009]进一步的,步骤3中,算法编码模块通过交织异或算法将待传输的链路信号的相继比特离散化,再对离散化后的数据进行再编码,对所述信息序列进行再编码的交织异或算法公式具体为:当时,定义多项式当时,定义多项式,X:当前传输位,r:离散系数,n:传输信号位数。
[0010]进一步的,第一通道信号接收器接收待传输的链路信号后,通过第一抽样博弈算法模块对解码后的待传输的链路信号的每个位进行抽样处理,抽样次数为CYCLE=CLK_FRE / BAUD_RATE,CLK_FRE为解码模块系统时钟频率,BAUD_RATE为串行传输波特率;在第一抽样博弈算法模块设置一个高电平计数器及一个低电平计数器,当抽样信号为高电平时,高电平计数器加一,当抽样信号为低电平时,低电平计数器加一;当每对一位抽样CYCLE次后,对高电平计数器和低电平计数器的计数值进行博弈,根据博弈算法中少数服从多数的原则,来抉择出该位的高低电平;当位接收结束后,对两个计数器执行寄存器清零操作,并紧接着对下一位继续博弈;当出现高电平计数器和低电平计数器计数值相等的情况时,将该位置为警告位。
[0011]进一步的,在冗余通道信号接收器接收冗余数据后,通过第二抽样博弈算法模块对冗余数据的每个位进行抽样处理,抽样次数为CYCLE=CLK_FRE / BAUD_RATE,CLK_FRE为
解码模块系统时钟频率,BAUD_RATE为串行传输波特率;在第二抽样博弈算法模块设置一个高电平计数器,一个低电平计数器,当抽样信号为高电平时,高电平计数器加一,当抽样信号为低电平时,低电平计数器加一;当每对一位抽样CYCLE次后,对高电平计数器和低电平计数器的计数值进行博弈,根据博弈算法中少数服从多数的原则,来抉择出该位的高低电平,当位接收结束后,对两个计数器执行寄存器清零操作,并紧接着对下一位继续博弈;当出现高电平计数器和低电平计数器计数值相等的情况时,将该位置为警告位。
[0012]进一步的,当冗余通道的数据出现异常时,通过使用与编码时相同的交织异或算法来对数据进行解码从而达到对异常恢复的效果;当交织异或算法的系数中只存在一位警告位的情况下,通过交织异或算法对该警告位的异常进行恢复,当交织异或算法中的两位以上系数为警告位,此时仅对这几位警告位做接收操作而不进行其它操作,此时继续接收数据,直到有算法中有两位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于交织异或算法的串行UART编解码结构,所述串行UART编解码结构包括第一FPGA和第二FPGA,其特征在于,所述第一FPGA包括编码模块、第一通道信号发送器和冗余通道信号发送器,所述第二FPGA包括解码模块、第一通道信号接收器和冗余通道信号接收器;所述编码模块包括第一UART编码模块及算法编码模块,第一UART编码模块对待传输的链路信号编码,通过第一通道信号发送器将编码后的待传输链路信号发送给第一通道信号接收器;算法编码模块对待传输的链路信号进行处理得到一组冗余数据,对冗余数据进行编码,通过冗余通道信号发送器将编码后的冗余数据发送给冗余通道信号接收器;所述解码模块包括第一UART解码模块、第二UART解码模块、第一抽样博弈算法模块、第二抽样博弈算法模块及数据恢复模块,第一UART解码模块、第二UART解码模块分别对接收的编码后的待传输链路信号及编码后的冗余数据进行解码,然后同时通过第一、第二抽样博弈算法模块对解码后的数据进行处理,当接收的数据出现异常时通过数据恢复模块对其进行纠错。2.根据权利要求1所述的基于交织异或算法的串行UART编解码结构,其特征在于,所述算法编码模块包括在交织异或算法编码模块及第二UART编码模块,所述交织异或算法编码模块对待传输的链路信号进行算法处理,然后使用第二UART编码模块对处理后的数据编码。3.基于交织异或算法的串行UART编解码方法,其特征在于,采用权利要求1或2任意一项所述的基于交织异或算法的串行UART编解码结构进行编解码,其步骤为:步骤1、确定待传输的链路信号;步骤2、第一UART编码模块通过串行UART编码方式对待传输的链路信号进行编码处理;通过第一通道信号发送器的发送数据端将编码后的待传输链路信号发送;步骤3、算法编码模块对待传输的链路信号同时做交织异或算法运算,将待传输信号的低位到高位定义为(p(0),p(1),p(2)......,p(n

1)),构成信息序列,通过交织异或算法对所述信息序列进行再编码,得到冗余数据;步骤4、将所述冗余数据通过第二UART编码模块编码,将编码后的冗余数据通过冗余通道信号发送器的发送数据端将数据发送;步骤5、通过第一通道信号接收器接收第一通道信号发送器发送的数据;通过冗余通道信号接收器接收冗余通道信号发送器发送的数据;步骤6、第一UART解码模块、第二UART解码模块分别对接收的编码后的待传输链路信号及编码后的冗余数据进行解码,然后同时通过第一、第二抽样博弈算法模块对解码后的数据进行处理,当接收的数据出现异常时通过数据恢复模块对其进行纠错。4.根据权利要求3所述的基于交织异或算法的串行UART编解码方法,其特征在于,步骤2中,待传输的链路信号通过UART协议编码,然后通过第一通道信号发送器的发送数据端将数据发送,此时的编码协议不使用奇偶校验位对传输信号检错。5.根据权利要求3所述的基于交织异或算法的串行UART编解...

【专利技术属性】
技术研发人员:郝学元孙炜王洪超唐珂
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1