所有关于电路
工业文章

使用GreenPak实现二进制奇偶校验生成器和检查器

2018年6月12日经过对话框半导体

这个应用程序实现了一个二进制奇偶校验生成器和校验器,有两个数据输入变量,一个并行数据输入,一个串行数据输入。描述了实现逻辑、GreenPAKs实现以及得到的结果。

这个应用程序实现了一个二进制奇偶校验生成器和校验器,有两个数据输入变量,一个并行数据输入,一个串行数据输入。描述了实现逻辑、GreenPAKs实现以及得到的结果。

二进制串行传输是使用有线或非有线传输在设备之间共享信息的最广泛使用的技术之一。在这些传输中,数据错误是必须分析的最重要的问题之一,以获得可靠的通信系统。

奇偶生成/校验方法是数据传输中应用最广泛的错误检测技术之一;在传输的数据上附加一个奇偶校验位,使二进制数据的1和变为偶数或奇数。此位用于检测二进制数据传输过程中的错误。

包含数据位和奇偶位的消息从发送节点传输到接收节点。接收节点统计消息的高比特数。如果这个数字与传输的奇偶校验位不匹配,它意味着在接收的数据中有一个错误。

有几个不同品牌的商用IC (CD40101, 74HC/HCT280)实现了奇偶校验发生器/检查器。补充一个对话框GreenPAK设计可以积极地影响可购性,大小和模块化的设计。例如,无论预期的I/O是active-high、active-low或混合状态,都可以使用相同的通用GreenPAK设计。

在本应用笔记中,实现了由控制信号管理的集成奇偶校验发生器/检查器所需的数字逻辑。为此,app note实现了奇偶校验的两种变体。第一种变体具有并行输入,以便要验证的数据位同时加载。第二种变体实现串行输入,用异步串行数据传输加载数据。为此,在GreenPAK中实现了一个串行到并行的转换。

要实现并行输入二进制奇偶校验发生器和检查器,使用SLG46536V。为了实现串行输入变量,使用SLG46620V。

数字通信和奇偶校验位

在数字通信中,奇偶位是加在二进制流上的一个位,以确保1值位的总数是偶数或奇数。该技术是一种简单而广泛使用的检测误差的方法。奇偶校验位方法有两种,称为偶偶校验位和奇偶校验位。

奇偶校验位系统由计算数据流中值为1的位的出现次数组成。如果数目是偶数,则奇偶校验位值设置为1,因此包括奇偶校验位在内的整个流中出现高位的总次数为奇数。当高位数为奇数时,奇偶校验位值为0。图1显示了一个示例。

奇数奇偶校验二进制流

图1。奇数奇偶校验二元系统

偶奇偶校验位方法采用反向逻辑。如果数据流中值为1的比特数为偶数,则奇偶校验位值设置为0,使包括奇偶校验在内的整个流中的高比特总数为偶数。如果值为1的比特数是奇数,则奇偶校验位设置为1,这样整个流的高比特数是偶数。

系统图

图2。系统图

为了检测错误,接收器必须计算接收到的二进制数据流的奇偶校验位并将其与接收到的奇偶校验位进行比较。如果奇偶校验位相同,则不会检测到错误。如果它们不同,则检测到错误。

奇偶校验位仅适用于检测错误。它无法纠正任何错误,因为无法确定流在流中的位置不正确。如果接收到具有错误的二进制流,则接收器必须丢弃它。

这使得奇偶校验错误方法不适用于高信噪比的介质,因为成功的传输需要很长时间。这种方法的优点是它只需要一个比特来检测错误,这可以增加一个周期内的传输次数。

作为示例,奇数奇偶校验位发送器发送先前分析的流。如果流的一位流改变,则接收器如果与发送的一个比较它,则接收器获得不同的奇偶校验位。这种效果如图3所示。

错误的奇偶校验检查

图3。对错误流的奇偶校验

奇偶校验位用于需要简单错误检测器并且如果发生错误,则可以重复传输。最重要的应用程序是串行数据传输。它基于常见的格式为7或8数据位,偶数奇偶校验位和一个或两个停止位。

奇偶校验位的其他应用是SCSI总线、PCI总线和许多微处理器指令缓存。因为L-cache数据只是主存的一个副本,所以如果发现它损坏了,可以忽略它并重新获取它。

逻辑实现

错误检测的奇偶位置位的主要优点之一是其计算的简单性。为了获得均匀的奇偶校验,必须仅执行二进制流中的数据位的模数-2和xor以获得奇偶校验位。

一旦获得偶数奇偶性,则可以获得偶数奇偶性的倒数。

如前所述,此应用笔记实现二元奇偶校验发生器和检查器的两个变体。如果检测到相应的奇偶校验,则两者都具有均匀的输出位和奇数输出位,其被设置为高电平。此外,它们具有启用输入。如果启用高,则计算奇偶校验。否则,两个奇偶校验输出都设置为低电平。

在并行版本中,生成程序或检查程序获得9长度二进制流的奇偶校验位。有了这个长度,它可以被生成器用作9位的处理器或作为超过9位的处理器,只使用MSB(第9位)作为另一个处理器的级联输入。

图4显示了9位长度并行输入奇偶校验器的逻辑图。

奇偶校验发生器逻辑图

图4。奇偶校验发生器逻辑图。

表1显示了奇偶校验发生器和检查器的功能表。

在串行变量中,输入级包括串行转换,因此转换器的输出连接到奇偶校验发生器电路。该方案如图5所示。

串行输入平移发生器示意图

图5。串行输入奇偶校验发生器原理图

该变体还包括附加的级联输入,因此可以通过使用几个8位奇偶校验检查器处理更多比特。

串行到并行数据转换是基于Dialog的AN-1120。

当串行输入引脚上没有数据时,串行总线被高举。当一个字节将要被发送时,在字节之前发送一个逻辑低起始位来指示传输。之后,8个数据位被发送,最后,一个停止高级位被发送。这个序列可以在图6中看到。

串行数据帧

图6。串行数据帧

在几个GreenPAK ICs中,SPI块可用于实现串行到并行的转换。串行通信的波特率必须为9600。

实现了下降沿检测以检测起始位。当检测到时,设置连接标志位,因此触发两个计数器/延迟。其中一个标题为位计时器,被配置为具有等于比特时间持续时间(1/9600)的时段。另一个计数器标题为帧延迟,被配置为具有等于10位帧周期(10/9600)的延迟时间。

使用这些计时器,SPI块被连接,以便串行数据输入引脚连接到MOSI输入,位计时器输出连接到CLK。这8个数据位被SPI块接收。

额外的逻辑用于控制时钟信号,因此当帧周期结束时,SPI时钟停止,数据保存在寄存器上。

对话框的AN-1120中可以找到SPI与“平行转换器的更多细节”。

实现和配置

如前所述,有两个奇偶校验发生器和检查器的变体,用两种不同的对话绿色节点实现。

并行输入变量用SLG46536V实现。

要实现位反转,如图4所示,使用9个LUT,配置为逆变器。这可以在图7中看到。

位逆变器

图7。位逆变器

通过使用两个4位LUT来实现XOR以获取每个蚕食数据的结果位。它们配置如图8所示。由于没有更多的2位LUT可用,因此使用连接到GND的第三输入的3位LUT3处理两个啃的XOR。

XOR处理器

图8。XOR处理器

为了得到处理第9位输入的结果位,将输入2连接到地,使用3位的LUT11和3位的LUT12。它们的配置如图9和图10所示,分别处理XOR和XNOR。

图9。9 -TH.位XOR

9日一点XNOR

图10。9日一点XNOR

最后,偶位和奇位分别使用3位LUT14和3位LUT15到使能位和VDD。这些配置可以在图11和图12中看到。

即使输出控制

图11。即使输出控制

奇怪的输出控制

图12。奇怪的输出控制

整个并行输入奇偶校验发生器和校验器设计如图13所示。

并行输入奇偶校验发生器和检查器

图13。并行输入奇偶校验发生器和检查器

串行输入变量用SLG46536V实现。它有两个可以互连的矩阵,因此其中一个用于实现串行转换器,另一个用于实现奇偶校验逻辑。

在图14和图15中,我们可以看到SLG46536V在实现串并联变换器后的矩阵0。

图14。串并联变换器(矩阵0)

图15。串并联变换器(矩阵1)

引脚10用作串行数据输入。如前所述,具有延迟输出的下降沿检测器用p dly0实现。该信号用于指示由DFF0和DLY6保持的接收开始。

一旦传输开始,CNT2就会产生频率为9600的信号。这是通过分割振荡器的输出时钟来完成的,它对应于由2位L1控制的内环振荡器。CNT2配置如图16所示。

图16。CNT2配置

数据由SPI块接收,以S2P模式配置和8位数据长度。这可以在图17中看到。

SPI配置

图17。SPI配置

直到CNT5达到最大计数,该计数被配置为8/9600来接收8个数据位。计数器使用内部RC振荡器(2mhz)除以24。其配置如图18所示。

CNT5配置

图18。CNT5配置

一旦数据被接收,它将被矩阵1中实现的逻辑处理。矩阵1如图19所示。

串行输入奇偶校验器

图19所示。串行输入奇偶校验器

从SPI模块的并行输出获得数据比特。八位的XOR用3位LUT10,4位LUT1,2位LUT4和2位LUT5实现。最后,2位LUT6和2位LUT7分别用级联输入(引脚12)实现XOR和XNOR。使能控件由3位LUT8和LUT9和LUT9。

结果

为了测试实现,分别分析了二进制奇偶校验生成器和校验器的两种变体。

通过生成由发电机处理的已知数据来测试并行输入奇偶校验发生器,以便可以检查输出。在这种情况下,使用的数据是

数据

0x1110011

X定期从0到1更换。这样,当x为0时,预期奇数结果甚至是x当x为1时的结果。

输入信号和奇数甚至检测用逻辑分析仪测量的输出。在图20中,记录的信号显示出正确行为。

并行输入奇偶校验发生器测试

图20。并行输入奇偶校验发生器测试

对串行输入奇偶校验发生器变体进行了测试,分别传输两个字节,进行处理,并对结果进行验证。选择传输的字节来分析奇数字节和偶数字节。

在奇数数据情况下,使用的数据是

奇怪的数据

11001101

在图21中,显示了串行输入数据和奇数甚至检测输出,记录为逻辑分析仪。

串行输入奇偶校验生成器奇检验

图21。串行输入奇偶校验发生器奇数测试

奇数输出低至接收到奇数数据。之后,奇数检测输出高,均匀检测输出低。

偶数情况下,使用的数据为10011001。

图22显示了逻辑分析仪记录的串行输入数据和奇偶检测输出。

串行输入奇偶校验发生器偶校验

图22。串行输入奇偶校验发生器偶校验

在这种情况下,重新发送先前的奇数数据,因此奇数输出高,并且在接收到偶数数据之前,偶数输出低。在接收到偶数数据之后,奇数检测输出低,偶数检测输出高。

结论

在本应用笔记中,我们实现了二进制奇偶校验发生器和检查器的两个变体,以用作数据传输的错误检测技术。将奇偶校验位添加到发送的数据中以使偶数或奇数的数量为1s。此位用于检测二进制数据传输过程中的错误。可以用对话的GreenPak替换几个商业IC,以便可以减少应用程序规模和成本。这两个变体显示数据输入方法如何是平行的或串行的。这对于在不同应用程序中应用奇偶校验发生器非常有用。

本文是合作的Alberto I. Leibovich.巴勃罗·e·Leibovich

参考

对于相关的文件和软件,请访问:

https://www.dialog-seminile.com/configurable-mixed-signal.

下载我们的免费GreenPak Designer软件[1]打开.gp文件[2]并查看提出的电路设计。使用GreenPak开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。对话框半导体提供完整的应用程序库注意[4],其中包含了设计示例以及对话框IC中的功能和块的说明。

  1. GreenPak Designer软件、软件下载及使用指引
  2. AN-CM-xxx二进制奇偶校验生成器和检查器。gp, GreenPAK设计文件
  3. GreenPak开发工具, GreenPAK开发工具网页
  4. GreenPAK应用笔记,GreenPak应用笔记网页
  5. SLG46536V Datasheet.(PDF)
  6. SLG46620V数据表(PDF)
  7. AN-1120蓝牙控制的汽车/机器人,应用笔记(可以下载来自这个页面

行业文章是一种内容形式,它允许行业合作伙伴以编辑内容不太适合的方式与All About Circuits阅读器共享有用的新闻、消息和技术。所有的行业文章都受到严格的编辑指导,目的是为读者提供有用的新闻,技术专长,或故事。在行业文章中所表达的观点和意见是合作伙伴的观点,而不一定是所有关于电路或其作者的观点和意见。