参考文献
对于相关的文档和软件,请访问:
https://www.dialog-seminile.com/produ雷电竞官网登录cts/greenpak.
下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。
雷竞技电竞平台对话框半导体提供了一个完整的应用程序库注意[4],其中包含了设计示例以及对话框IC中的功能和块的说明。
- GreenPak Designer软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
- AN-1139二进制序列检测器,GreenPak设计文件,对话半导体雷竞技电竞平台
- GreenPak开发工具,GreenPak开发工具网页,对话半导体雷竞技电竞平台
- GreenPak应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台
- SLG46110对话框数据表,半导体雷竞技电竞平台
- SLG46531对话框数据表,半导体雷竞技电竞平台
介绍
在基带数字通信信道中,二进制串行传输是发射机和接收机之间共享信息的最普遍的方式。这些串行通道用于网络,在这些网络中,计算机、嵌入式系统甚至物联网设备都可以通过一些标准协议实现连接,如TCP、UDP、RS232等。
在二进制数据以高数据速率一次发送一位的通道中,二进制传输被称为流,携带的信息被称为包。这种类型的传播的挑战是定义传播的开始和结束。通常,标志用于允许接收方识别数据包的开始和结束。
为了实现此目标,定义位序列以识别消息的开头和结束,它们用于设置或清除标志。二进制序列检测器用于检测接收端的这些序列。
这个应用程序说明展示了如何使用Dialog的GreenPAK实现基于状态机的设计。在本例中,从二进制流中检测到模式“101”。
状态机设计
在数字设计中,有组合电路和顺序电路。前者仅使用输入的逻辑函数进行操作,而不依赖于以前的状态。然而,在后一类电路中,任何阶段的输出都依赖于前面的状态,这意味着电路中涉及到某些存储元素。
这也是二进制序列检测器的情况,必须使用前面的位来检测所需的序列。
在时序电路设计中,重要的是要确定系统的输出是否只依赖于当前状态,还是也依赖于输入电流。这两种结构的可能性分别被称为摩尔状态机或米尔顿状态机。在摩尔机器中,输出只依赖于当前的状态,而与当前的输入无关。在Mealy机器中,输出取决于当前状态和当前输入。Moore机器使用起来更安全,因为输出不会与时钟同步变化。本应用笔记使用摩尔机器。
在本例中,在二进制流中检测到模式“101”(X是输入)。当序列尚未被检测到时,系统的输出将保持在低电平。当序列被检测到时,输出变为高电平,直到在流中找到0为止。
图1显示了摩尔状态图。
州0(s0)是第一个州。这里,系统等待0作为输出,直到检测到序列的第一个1。在这种情况下,它进入州1(s1),它停留直到收到0。这是因为系统可以接收像“11111101”的流。当检测到0时,我们达到州2(s2).这是最终的决定状态。如果在这里检测到“0”,则意味着序列为“100”(这不是所需的模式),因此机器将重置为状态0。如果我们在这里检测到一个' 1 ',这意味着接收到所需的模式,将机器设置为状态3 (S3.),在输出时达到高水平(1)。系统在状态3中等待,直到接收到' 0 '。
逻辑设计
从上一节中所示的状态图,可以获得以下转换表(参见表1)。
实际状态 |
下一个州 |
输出 |
|
x = 0. |
x = 1 |
||
S0 |
S0 |
S1 |
0 |
S1 |
S2 |
S1 |
0 |
S2 |
S0 |
S3 |
0 |
S3 |
S0 |
S3 |
1 |
可以得出结论,由于包括4个状态的实施,设计需要2个触发器。所有对话框的GreenPak IC都有D型触发器,因此如果所选的GreenPak没有异步状态机(ASM)模块,则实现必须生成触发器输入的功能。
逻辑功能依赖于流输入和先前状态,因此它们是X和Q1 / Q0的函数(触发器输出)。
对于第一个触发器(Q0输出),逻辑函数的真值表必须如表2所示。
第一季度 |
Q0处 |
X |
D0. |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
对于第二个触发器(Q1输出),逻辑函数的真值表如表3所示。
第一季度 |
Q0处 |
X |
D1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
最后,对于系统输出(Z),逻辑函数的真值表如表4所示。
第一季度 |
Q0处 |
Z |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
实现
我们可以通过各种方式实现GreenPak Desgin,具体取决于特定GreenPak版本中的资源。我们将探讨使用GreenPak触发器的实现,以及一些GreenPak中可用的内置ASM(异步状态机)。
FLIP - 基于FLOP的实施
在本例中,使用了2个人字拖和3个查找表。图2显示了框图。
在该图中,可以看出,输入(x)映射到引脚2,时钟输入被映射到引脚3(也连接到上升沿触发的触发器的时钟输入)和输出连接到引脚8.引脚2和引脚3被配置为数字 - 没有施密特触发器,没有电阻。引脚8用作输出,其输出使能绑定到VDD。
DFF0输入的逻辑功能实现为LUT2;其配置如图3所示。
对应于DFF1的输入的逻辑功能作为LUT3驾失,如图4所示配置。
最后,输出逻辑函数使用LUT0实现,因为我们只需要输入2位。配置如图5所示。
|
|
|
基于ASM的实现
本设计基于GreenPak5中的ASM(异步状态机)模块。由于所实现的系统具有同步特性,因此必须考虑该模块的异步特性。框图如图6所示。
从图中可以看出,输入(X)映射到pin4,时钟输入映射到pin3,输出连接到pin10。pin3和pin4配置为数字-在施密特触发器和没有电阻器。
pin10用作输出,其输出使能绑定到VDD。
解释d型人字拖的存在很重要。由于ASM的电平敏感和有源高过渡输入,使用nReset输入触发器来获得高电平,只有当所需的过渡必须完成时。
当相应状态未激活时,每个触发器都被重置(因此输出低)。当相应状态处于活动状态时,ASM输出转向高电平,触发器变为活动状态。
只有当时钟上有上升沿和输入的相应状态时,FF的输出才应该获得高电平。为了实现这一点,使用2位LUT1对信号进行反转。这有助于在输入较低的地方获取高层次的转换。使用这个方案,ASM能够执行同步行为。
基于图1所示的状态机,使用ASM编辑器配置ASM。只有当机器处于相应状态时,才能高的输出。这可以在图7中看到。
在图8和9中,示出了2位LUT1和触发器配置。
|
|
只有当检测到上升沿、X高且状态0有源时,DFF3输出才应该为1;因此,只有在满足这些条件时,才会从状态0过渡到状态1。
检测到相应边缘时,DFF4输出高,X为0(倒转信号高),状态1为有源。这个输出处理从状态1到状态2的转换。
DFF5控制状态2到状态0的过渡,因此当在X中检测到时钟上升沿为0时,当状态2处于活动状态时,将其设置为输出高电平。DFF6是DFFX的补充。它控制从状态2到状态3的过渡,所以当在X中检测到上升沿和状态2活跃时,它的输出是高的。最后,DFF7处理状态3到状态0的转换。只有当检测到上升沿时,当状态3处于活动状态时,X为0时,它才高。
该设计的输出直接连接到ASM中的状态3的输出,因为当状态机在状态3上时,它必须高。
测试和结论
在捕获输入和输出的同时,使用逻辑分析仪测试此应用笔记中的两种设计。
图10和11示出了第一实现的信号。在图中,信道1是时钟,信道2是输入,通道3是输出。在图10中,“101”序列不存在于输入端,使得输出始终为0.在图11中,检测到“101”序列(它在时钟的第二上升沿开始),输出转动高直到检测到输入处的低电平。
图12和13示出了第二实施方式的信号。同样,信道1是时钟,通道2是输入,通道3是输出。
在图12中,“101”序列在输入处没有出现,因此输出保持为0。在图13中,“101”序列被检测到(它从时钟的第四个上升沿开始),输出变为高电平,直到检测到输入端的低电平。
结论
在此应用笔记中,使用对话框的GreenPak IC的功能来实现两个版本的二进制序列检测器。在第一实施方式中,使用触发器和LUT,而在第二个中,使用ASM,触发器和LUT。
注意ASM与附加触发器的同步使用是很重要的。如果二进制序列很短(就像本例中那样),那么基于触发器的实现可能比基于ASM的实现更简单。对于更复杂的设计,使用ASM可能更有效。