基于8051内核MCU的满足物联网应用需求的通信接口选择浅析

发布时间:2023-10-26  

0 引言
对于基于flash控制器的8051的芯片结构,一般在进行数据传输时,都是先通过串口将数据传送到flash控制器的buffer中。由于buffer的大小为512 bytes,所以每次传输的最大数据量为512bytes。本文中所讨论的三种检错方法的传输数据量均为512 bytes。


1 检错方式
基于8051的串口数据通信系统的硬件开发平台框图如图1所示。利用该平台进行数据传输时,通常有三种数据检错方式。

1.1 奇偶校验
奇偶校验是检错中比较常见的一种方法。它利用数据中的1的个数作为检错的标志位,若1的个数为奇数个,则错误检测的标志位为1,若1的个数为偶数,则错误检测的标志位为0。在发送端和接收端同时检测奇偶位,若得到相同的结果,则说明数据传输过程无错误发生;若得到不同的结果,则说明数据传输过程中有错误发生,此时8051会发送一个错误重传的信号,让PC端再次发送数据。

1.2 循环冗余校验(CRC)
CRC是利用除法和余数的原理来进行错误检测(Error Detecting)。如果原始数据为多项式JP(x),则将P(x)对生成的多项式G(x)进行模2除法,再将得到的余式R(x)作为生成的CRC校验码,用公式可以表示为:
P(x)=Q(x)·G(x)+R(x)

上式中的Q(x)为除法得到的商。发送端将原始数据P(x)和生成的CRC校验码R(x)发送到接收端。接收端则根据接收到的数据P'(x)算出另外的一个CRC校验码R'(x),然后对两个CRC校验码进行比较,即可得出在传输过程中是否有错误发生。若发生错误,则用发送端重传。本文中所采用的CRC8所生成的多项式G(x)为:x2+x5+x4+1。


1.3 汉明码(Hamming)
汉明码是在一组代码中加入一定数量的冗余,以形成一组新的数据。新加入的冗余数据被称为校验位。若某个信息位出错,则将引起几组奇偶校验结果均出错,由此根据奇偶组的检错,便可确定误码的信息位及性质。汉明码具有如下特点:
    码长:N=2m-1
    信息码位:k=2m-m-1
    监督码位:r=N-k=m,其中m≥2正整数
    由于本文中的检错对象是串口发送,一次发送8 bits数据,故需要的冗余位为4 bits,本文采用的汉明码为(12,8),其编码由8 bits数据和4bits组成。设数据分别为a0,a1,a2,a3,a4,a5,a6,a7。检验位为a8,a9,a10,a11,它们可按下面的式子决定:


2 测试环境及原理
本文的测试平台分为两部分,即PC串口发送部分和8051串口接收部分。PC通过串口发送数据,每次串口发送的单位为8 bits。8051通过串口接收PC发送的数据。由于硬件的限制,8051中存储数据的buffer最大为512 bytes。所以PC端的数据每次也只发送512 bytes,总共测试的数据大小为8 K bytes,传输完8 K bytes的数据需要16次。串口传输的波特率为57600。8051接收来自PC的数据,每次接收512 bytes数据,并进行错误检测。若检测到错误,则给PC发送一个重传请求,若没有检测到错误,则给PC发送一个继续传输的命令。

为了提高传输效率,在不影响检错的情况下,可分别对奇偶校验、CRC校验、汉明码校验采用不同的数据传输结构。

奇偶校验每发送8 bits数据就算出1 bit的奇偶位,在算出8 bits的奇偶位之后,再将校验位一起发送到8051,其中数据D为512 bytes,Group为64bytes,data为8 bits数据。其数据结构如图2所示。


    CRC校验时,每512 bytes数据产生1bytes校验位并发送到8051,其数据结构如图3所示。其中D为512 bytes,data为512 bytes,CRC byte为8bit。即每512个bytes得到一个CRC校验值。汉明码由于采用了(12,4),每8 bits数据产生4 bits的校验位。故其数据结构如图4所示,图中,D为512 bytes的数据,data为8 bits的数据。


3 测试结果分析
本文通过相同的环境,综合比较了三种错误检测的实际效率,其实验结果如表1所列。


表1是根据发送数据的长短和波特率计算出来的理论值,实际测试值则是调用PC端的时间函数来测试的。为了提高汉明码的解码效率,本文在8051上通过汇编语言进行解码。通过对得出的表中数据进行分析可见,CRC校验具有最好的检错效率,且差错率低,耗时适中。


4 结束语
本文通过对串口传输中三种检错方法的大量数据进行比较,分析了它们的检错结果和效率。在奇偶校验中,为了提高检错速度,8051端可采用汇编语言直接读取标志位寄存器中的奇偶标识。而在汉明码中,则可分别采用C语言和汇编语言来进行编程。三种检错方法中,耗时最低的是奇偶校验,其检错的速度最快,CRC8次之,检错最慢的是汉明码。误差率最低的为CRC8,其次为汉明码,奇偶校验发生错误的概率比较大。

由于是串口通信,出错的概率比较小,因此,传输较大文件时,检错一般采用奇偶校验,只有对误差率要求较高的场合,才用到CRC。汉明码一般很少用于检错场合。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>