术语和定义
参考文献
有关文件及软件,请浏览:
//www.wsdof.com/configurable-mixed-signal.
下载免费的GreenPAK™设计器软件[1]打开。gp文件[2],查看电路设计方案。使用GreenPAK开发工具[3]可以在几分钟内将设计冻结到您自己的定制IC。雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和块的解释。
- GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
- AN-CM-294使用GreenPAK.gp的另一种单线数据传输方式,GreenPAK设计文件,Dialog S雷竞技电竞平台emiconductor
- GreenPAK开发工具,GreenPAK开发工具网页,Dialog Semiconductor雷竞技电竞平台
- GreenPAK申请须知GreenPAK应用说明网页,Dialog Semiconductor雷竞技电竞平台
- 一个- 1028GPIO扩展单线接口,应用说明,Dialog半导体。雷竞技电竞平台
- 一个- 1186循环冗余检查发电机单元,1线协议,应用说明,对话半导体。雷竞技电竞平台
- 一个- 1029添加nSETnRESET到DFF的,应用说明,对话半导体。雷竞技电竞平台
作者:Oleksiy Kravchenko
本文最初发表于ElectronicDesign.com.
简介
单线数据传输线路在操作电子设备的多个部件时具有优势,不需要高速运行。同时要求系统具有良好的灵活性,可以在需要时快速修改设计。这种数据传输方法的部分优点包括减少导体数量,减小最终电子产品的尺寸和成本,增加可靠性等。本应用笔记的目的是介绍一种单线数据传输的替代方法GreenPAK集成电路。为了说明这种方法,提出了一种新的单线发射和接收变换器的设计方法。与现有方法相比(一个- 1028,一个- 1186),建议的方法似乎更简单。
方法主要思想
让我们从经典的积分rc元素(图1 >)及其属性开始。积分rc元件可用于数字电路中改变脉冲长度,或更准确地说,产生或延长脉冲持续时间,利用积分定律处理脉冲等。让我们利用积分rc元的这些性质。
电容上的电压不能立即改变。它的充放电时间取决于电容值C,以及电阻r的电阻,充放电时间可以用RC元件的时间常数计算,公式如下:
方程1:
然后对积分元件的输入施加长脉冲,电容器将有时间完全充电和放电。但如果脉冲很短,比时间常数短得多,那么电容器C电压几乎不会发生变化。为了传输串行代码,我们需要有两条数据线——“数据”和“时钟”。如果用宽脉冲传输“数据”,有时间给RC元件的电容器充电,用窄而短的脉冲传输“时钟”,不能通过集成元件,那么将有可能将这两条线合并为一条。因此,积分RC单元将作为信号接收器的分隔符(图2)。有必要在RC单元之前取“Clock”信号,其中只有上升边是重要的,在RC单元之后取“Data”信号。如果现在正确地生成了位序列的传输信号,那么问题就解决了。
图2显示了为传输而生成的字节“10010111”(输入信号)的示例。人们可以很容易地看到,为了传输逻辑数据“1 / 0”,有必要生成一个相应的“高/低”足够宽的脉冲,在末端有一个短的“时钟”脉冲(图3)。
在这一点上,细心的读者可能会问:为什么使用外部RC元素来分离“Data”和“Clock”信号,而这可以直接在内部完成GreenPAK使用经典的延迟元件?展望未来,我们可以说,使用外部RC元件可以显著降低接收器消耗的电流,因为我们不再需要内部振荡器来运行延迟元件。
通过RC单元后接收到的“Data”信号电压必须在逻辑1电压的一定范围内(图2中绿色区域)。“Clock”信号电压不能通过RC单元,不能超出逻辑0电压的范围(图2中红色区域)。它们之间存在一个模糊区域,在这个区域内完全有可能存在错误状态。因此,必须选择电容器和电阻器的值,以使所有“充电/放电”瞬态电压值不落入此区域。如何做到这一点如下所示。
让我们考虑积分RC元件(图1)作为电阻R和电容c的串联连接。下面的公式用于这样的电路:
方程2:
给定VR= r = rC)/dt时,我们可以写出以下关于电容电压的微分方程,它是积分元素V的输出电压C= V出:
方程3:
这个微分方程的解是众所周知的:
方程4:
其中τ -时间常数(见eq. 1)。让我们分析这个解。在初始时刻t = 0输入脉冲输入积分元件时,输出电压为V出= 0,之后V出开始以与τ值成反比的速度增加,并达到以下值(表1):
如下所述,我们的发射机设计中比特序列传输信号的时间特征如图3所示。在构建我们的接收机时使用了具有以下值的RC元素:R = 120 Ω, С = 10 nF, τ = 1.2µs(图12,13)。因此,当具有这种持续时间的脉冲通过RC元件时,计算得到的结果电压是可能的。持续时间T1 = 5µs的“Data”脉冲将适合t = 4τ(更准确地说,t = 4,17τ)的情况(表1)。在VDD = 3.3 V的电压下,RC元素后的输出电压将为V出= 0.981684∙3.3 V≈3.23 V,即逻辑HIGH电平,这正是我们所需要的。然而,短脉冲T2 = 240 ns必须被RC元件过滤掉。t = τ /5的情况对于持续时间为T2 = 240 ns的“时钟”脉冲是有效的(表1)。在VDD = 3.3 V的电压下,RC元素之后的输出电压将为V出= 0.181269∙3.3 V≈0.59 V,因此“Clock”脉冲不会显著通过RC元件。为了检查目的,让我们将得到的信号电压电平与各自的特征逻辑“零/一”电压电平进行比较GreenPAKs.在电源电压为VDD = 3.3 V的情况下进行对比(表2)。
GreenPAK3
SLG46170 |
GreenPAK5
SLG46533 |
RC电路后“数据”信号电压 |
“时钟”信号电压后RC电路 |
|
---|---|---|---|---|
高水平 |
3.30 V |
3.30 V |
3.23 V |
|
1.59 V |
1.64 V |
|||
区
模棱两可 |
||||
低的水平 |
1.39 V |
1.44 V |
0.59 V |
|
0.0 V |
0.0 V |
所得到的“Data”和“Clock”信号的逻辑电平电压保证对应于所需的逻辑“0 / 1”电压值,并且不落入歧义区。综上所述,选择一个集成RC元素来分离“Data”和“Clock”信号有两个主要标准:
- 在所选信号传输频率处的信号持续时间T1应至少比RC元素τ的时间常数大3倍(在本例中为4.17倍):
方程5:
- 传输信号末端的短“时钟”脉冲T2的持续时间应该至少比RC元素τ的时间常数短4倍(在我们的例子中是5倍):
方程6:
设计分析
“Transmitter_170”的设计(图4)主要由两个部分组成:
- 基于2位LUT1, 3位LUT0 ÷ 3位LUT5, 3位LUT9, DFF0 ÷ DFF6,管道延迟的并行串行转换器;
- 基于CNT1、CNT4、DLY2、DLY5、2位LUT2、2位LUT3、3位LUT6、4位LUT0、FILTER0、P DLY的必要比特序列传输信号发生器。
CNT1计数器定义传输信号时间(如前所述,它被设置为~ 5µs)。CNT4计数器形成八个这样的时间段的包,并使用2位LUT3逆变器控制2位LUT1, 3位LUT0 ÷ 3位LUT5, 3位LUT9多路复用器。当来自2位LUT3逆变器输出的内部“开关”信号低时(图5,“中断”信号),通过多路复用器将输入引脚#2,#8,#10的信息记录到相应的触发器。然后,当“开关”(“中断”信号)信号变高时,触发器上的数据会发生移位,并形成一个串行代码(图5,“Serial_OUT”信号)。延迟元素DLY5和3位LUT6元素,以及基于FILTER0和2位LUT2的上升边检测器,允许改变生成的数据包之间的时间持续时间t2(图5,b),即设置并行数据输出的持续时间。当“开关”(“中断”信号)信号低时,在接收转换器的相应设计中产生并行代码。在我们的设计中,生成数据包的时间t1和生成时间t2大致相同。
来自最后一个管道延迟触发器输出的生成的串行代码被馈送到4位LUT0元素中,其中,使用延迟元素DLY2和上升边检测器P DLY,形成所需的特定形式的输出信号(图5,“DATA_OUTPUT”信号)。上升沿和下降沿检测器由FILTER1和2位LUT4组成,旨在将延迟元件DLY2的振荡器时钟频率提高一倍,以提高延迟时间设置的分辨率。
频道1(黄线/顶线)- |
引脚#14 (Serial_OUT) /测试点/ |
频道2(浅蓝色/第二条线)- |
引脚#13(中断)/测试点/ |
第三频道(洋红色/第三线)- |
引脚12号(CLK) /测试点/ |
第四频道(蓝色/底线)- |
销# 11 (DATA_OUTPUT) |
“Receiver_170”的设计(图6)执行将串行代码转换为并行代码的反向功能。对于此操作,设计使用:
- 基于管道延迟(3个触发器)、DFF0 ÷ DFF3和DFF5的8个触发器链;
- 8个基于3位LUT0 ÷ 3位LUT7的锁存器,用于向输出引脚发送并行代码;
- 上升沿检测器pdly上的触发器链时钟电路;
- CNT2计数器和FILTER0逆变器上的锁存控制电路(3位LUT0 ÷ 3位LUT7元件)。
- 信号被外部RC元件(图12)分离后,来自输入PIN#2(图7)的“数据”信号被馈送到触发器链的第一个触发器。然后,我们使用P DLY检测器只选择“时钟”信号pin# 5的上升沿,并形成触发链和计数器CNT2的时钟信号。当内部“CNT2”信号较低时(图7,“CNT2”信号),串行代码被解码为触发器链上的并行代码,其中触发器由于来自FILTER0逆变器输出的高“resDFF”信号而处于工作状态。
指示每个触发器当前状态的信号被馈送到各自的锁存器,并在“CNT2”信号从低变高时存储。与此同时,解码链的触发器被重置到初始状态,因为“resDFF”信号从高变低。锁存信号在“CNT2”信号高的时候被馈送到相应的输出PIN,这个定时对应于“Transmitter_170”设计中生成的数据包之间的时间t2。
DFF5触发器没有nRESET输出。因此,它有一个额外的复位逻辑电路,基于4位LUT0和2位LUT1元素,如an -1029[7]所述。
|
|
|
|
引脚3 (CNT2) /测试点/ |
|
频道2(浅蓝色/第二条线)- |
外部信号,在RC电路之前,到引脚5号 |
第三频道(洋红色/第三线)- |
外部信号,RC电路后,到引脚2号 |
第四频道(蓝色/底线)- |
引脚4 (CLK) /测试点/ |
仔细观察启动“Transmitter_170”和“Receiver_170”时的初始条件,可以注意到一个缺点。如果接收端开始操作的时间晚于发送端,那么串行代码到并行代码的转换可能不会从数据包的开头开始,而是从中间开始。反过来,这将导致数据输出过程的转变。因此,为了保证发射机-接收机的正确工作,接收机必须与发射机同时开始工作,换句话说,它们必须有一个共同的电源(图12)。消除这一缺点的一种方法是在每个数据包的开始处传输一个服务辅助信号,在开始转换串行数据的过程之前重置接收机设计中的所有触发器。这将确保数据转换过程从包的开头开始。这样我们就会得到一个可靠的数据传输系统,其中发射机和接收机可以有自己的电源,可以在任何时候开始工作,彼此独立。为了测试这一点,设计被修改为“Transmitter_533”和“Receiver_533”(图13)。
“Transmitter_533”的设计(图8)也包括两个主要部分:
- 基于2位LUT3的并行串行转换器,3位LUT14 ÷ 3位LUT17, 3位LUT5 ÷ 3位LUT7, DFF2, DFF0, DFF5 ÷ DFF9,管道延迟;
- 发生器,基于CNT5、CNT6、DLY0、DLY1、DFF4、3位LUT0、3位LUT13、EDGE DET0、P DLY、4位LUT2、2位LUT1产生必要的比特序列传输信号。
本设计的工作原理与之前的设计没有什么不同。类似地,CNT5计数器定义传输信号时间(5µs)。与之前的设计不同,CNT6计数器形成了一个由10个这样的时间段组成的包。也就是说,除了用于传输数据的八个时间段外,还有两个额外的时间段S1, S0用于生成所需的业务信号(图9,c)。
可能有许多方法可以创建一个特殊的服务信号,然后在接收器中检测它。我们选择了第一个想到的。使用DFF4和3位LUT0,服务信号的S1时间段被振荡器频率(2 MHz)填充,并与使用2位LUT1的主传输信号混合。S0周期没有任何变化(图9,d)。这样做的原因将在接收机设计的描述中解释。
与前面的发射器设计一样,延迟元件DLY0与3位LUT13元件和下降沿检测器edge DET0允许改变生成的数据包之间的时间持续时间。在DLY1、4位LUT2和P DLY的基础上,形成所需的输出信号(图3)的特定形式。由于数据包由10个时间段组成,必须向链中添加两个触发器才能正确生成串行代码。这是通过管道延迟完成的,其中OUT0设置为= 3。
|
|
|
|
引脚#16 (Serial_OUT) /测试点/ |
|
频道2(浅蓝色/第二条线)- |
引脚#15(中断)/测试点/ |
第三频道(洋红色/第三线)- |
引脚14 (CLK) /测试点/ |
第四频道(蓝色/底线)- |
销# 13 (DATA_OUTPUT) |
因此,在“Transmitter_533”的设计中,除了数据字节外,还传输了两个额外的位S1和S0。S1位由振荡频率为2 MHz的周期信号填充。
“Receiver_533”(图10)的设计与前面的设计一样,完成了将串行码解码为并行码的逆功能,并在开始串行数据转换过程之前检测业务信号(由发射机产生)并重置所有触发器。
为了实现这一功能,使用DLY5延迟元件,其中引脚#5作为时钟信号源,即RC元件之前的“clock”信号。两侧的检测器P DLY对填充附加S1位的周期信号(频率为2 MHz)的响应将与滤波器响应类似,即有可能为DLY5生成发射信号(图11,“P_DLY”信号)。DLY5是上升沿上的延迟元件,这就是为什么我们可以很容易地看到DLY5只有在额外的S1位到达时才会工作(图11,“DLY5”信号)。反过来,DLY5延迟元件总是在开始并行到串行转换之前为CNT6计数器生成一个重置信号。这样,CNT6计数器和两个锁存器LATCH1、LATCH2将在解码链中产生重置触发器所需的信号(图11,“res_DFF”信号),而输出锁存数据的信号在并行数据输出时锁存3位LUT5、3位LUT6、3位LUT12 ÷ 3位LUT16(图11,“LATCH1”信号)。
|
|
|
|
频道1(黄线/顶线)- |
引脚#15(中断)/测试点/ |
频道2(浅蓝色/第二条线)- |
外部信号,在RC电路之前,到引脚5号 |
4频道(蓝线/3线)- |
外部信号,RC电路后,到引脚2号 |
D8 - |
引脚3 (P_DLY) /测试点/ |
D9 - |
引脚4 (CLK) /测试点/ |
D10 - |
引脚#6 (DLY5) /测试点/ |
这里, |
引脚#7 (CNT6) /测试点/ |
D12 - |
引脚#10 (res_DFF) /测试点/ |
D13 - |
引脚#12 (LATCH1) /测试点/ |
虽然填充额外S1位的频率为2 MHz的信号满足了“不通过RC元素”的要求(见eq. 6),但是,由于它在5µs(我们选择的一个比特的持续时间)内多次重复,它设法将电容充电到可以识别为逻辑电压的电压水平。然后,为了允许电容器放电到保证的逻辑零水平,并且不能够影响数据信号的第7位,我们使用第二个额外的S0位。此外,为了提高系统的可靠性,触发链和计数器CNT6的时钟信号由上升沿探测器edge DET0形成,其中信号在P DLY元件之后采集。反过来,这将防止在服务S1位解码期间产生寄生时钟信号“CLK”。(图11,“CLK”信号)。
其余元素执行与前面设计相同的功能。
电路分析
如前所述,为了演示所提出的数据传输原理的效率,我们创建了一对发送-接收设备(图14)。下图是这些设备的基本电路图。
|
|
|
|
|
|
|
|
如上所述,“Transmitter_170 - Receiver_170”对(图12)共用一个来自78L33稳压器的3.3V电源。在发射电路中有八个按钮S0 - S7用于产生所需的传输信号。因此,接收电路中的8个LED0 - LED7 led用于可视化接收和解码的信号。
“Transmitter_533 - Receiver_533”对中的发射机和接收机(图13)有独立的电源节点,如上所述,代表一个独立的数据接收-传输系统。与前面的电路类似,可以使用按钮S0 - S7来设置所需的传输信号,接收电路中的LED0 - LED7 led可以监控结果。
我们测量了在所介绍的发射-接收器对的工作过程中IC消耗的电流:“Receiver_170”的IC1电路和“Receiver_533”的IC2电路,以及它们的R1C1元件,没有考虑led消耗的电流。事实证明,测量的电流值也取决于串行信号字节中传输的逻辑数(这是由于RC元件电容器的充电电流)。为了便于比较,测量结果汇总如表3所示。
电流消耗 |
||
“Receiver_170” |
“Receiver_533” |
|
0 0 0 0 0 0 0 |
7.9µ |
17.0µ |
0 0 0 0 0 0 1 |
11.2µ |
20.0µ |
0 0 0 0 0 0 1 1 |
12.6µ |
22.2µ |
0 0 0 0 0 1 1 |
14.0µ |
23.3µ |
- // - |
- // - |
- // - |
1 1 1 1 1 1 1 1 1 1 |
19.8µ |
27.6µ |
如果我们将使用内部OSC (2MHz) |
~ 80 μ a |
~ 60µa |
实测电流值表明,“Receiver_533”电路IC消耗的电流略高于“Receiver_170”电路的电流。这是由于“Receiver_533”电路中的传输信号由于使用额外的辅助服务位S1, S0而长了两位。
因此,可以总结出,带有RC元件的IC所消耗的电流远小于带有OSC 2 MHz振荡器的IC所消耗的电流。
图15而且图16基于上述工作原理,演示了运行数据传输接收系统。
结论
在单线线上使用对话框传输串行数据的建议替代方法GreenPAK雷电竞官网登录产品非常高效,具有竞争力。基于该原理的两套数据收发系统,以及对其运行的全面测试,充分证实了这一点。
对话框GreenPAK雷电竞官网登录产品是开发这类系统的理想解决方案,因为需要大量的功能元件来实现各种电路设计方案。而这,反过来,允许显着减少外部电路元件的数量。额外的优势GreenPAK雷电竞官网登录产品具有设计时间短、可配置性好、功耗低、板面积小、成本低等特点。