24小时联系电话:18217114652、13661815404
中文
行业资讯
单线数据传输不同的方式
如果不需要高速,但需要灵活性,则在操作多个分散组件时,单线数据传输很有用。该方法通过减小尺寸和成本来减少电缆中的导体数量。它还可以提高系统可靠性。
让我们从经典的集成RC元素(图1)及其属性开始。集成RC元件可用于逻辑和数字电路中以更改脉冲长度,或更准确地说,生成或扩展脉冲持续时间,使用积分定律处理脉冲等。
1.这是典型的集成RC电路。
众所周知,电容器电压不能立即改变。其充电和放电时间取决于电容器C的容量和电阻R的电阻。可以使用根据以下公式计算的RC元件的时间常数来估算该时间:τ= RC。
如果将足够长的脉冲发送到积分元件的输入,则电容器将有时间完全充电和放电。但是,如果脉冲短,比时间常数τ短得多,则电容器C的电压几乎不变。
要传输串行代码,我们需要有两条数据线-数据和时钟。如果以宽脉冲传输数据,而脉冲又有时间为RC元件的电容器充电,而时钟以窄脉冲传输而无法通过积分元件,则可以将这两条线合并为一条。因此,积分RC元件将用作信号接收器的分离器(图2)。
2.显示了为传输而生成的字节10010111(输入信号)的示例。可以很容易地看出,要传输逻辑数据“一零”,必须生成一个相应的“高低”足够宽的脉冲,并在最后加上一个短时钟脉冲。
必须将时钟信号放在RC元素之前,只有上升沿很重要,而数据信号则在RC元素之后。然后,如果正确生成位序列的传输信号,则可以解决该问题。图2显示了为传输而生成的字节10010111(输入信号)的示例。
可以很容易地看出,为了传输逻辑数据“一/零”,必须生成一个相应的“高/低”足够宽的脉冲,并在最后加上短时钟脉冲(图3)。
3.这显示了一位“ HIGH , LOW”信号。每个都有一个尾随时钟脉冲
在这一点上,一个细心的读者可能会提出一个逻辑问题:为什么可以直接使用经典延迟元件来完成,为什么要使用外部RC元件来分离数据和时钟信号呢?展望未来,我们可以说使用外部RC元件使我们能够大大减少接收器消耗的电流,因为我们停止使用延迟元件运行所需的内部振荡器。
通过RC元件后收到的数据信号电压必须在逻辑一个电压的一定范围内(图2的绿色区域)。 时钟信号电压不应通过RC元件,也不应超出逻辑零电压范围(图2的红色区域)。 它们之间有一个模糊区域,完全可能存在错误状态。因此,必须选择电容器的容量和电阻器的电阻,以使所有“充电/放电”瞬态电压值都不会落入该区域。这样做的方法如下:
让我们将图1中的集成RC元件视为电阻R和电容器C的串联连接。以下电路用于此类电路:
鉴于:
我们可以针对电容器电压写以下微分方程,实际上是积分元件的输出电压V C = V out:
这个微分方程的解是众所周知的:
其中τ =时间常数。让我们分析这个解决方案。在初始时间t = 0时,当输入脉冲馈入积分元件时,输出电压为V out = 0,此后Vout 开始以与τ值成反比的速度增加,并达到以下值(图4)。
4. RC元件后的数据信号电压。
4. RC元件后的数据信号电压。
如下所述,发射机设计中比特序列传输信号的时间特性如图3所示。接收器的结构中使用了具有以下参数的RC元件:R = 120Ω,С= 10 nF,τ= 1.2 µs (下面的图14和15)。因此,可以计算出具有这样持续时间的脉冲通过RC元件时获得的电压值。
持续时间为T1 = 5 µs的数据脉冲将适合t =4τ(更精确地说,t =4.17τ)的情况(图4)。在V DD = 3.3 V的电压下,RC元件之后的输出电压将为V out = 0.981684·3.3 V≈3.23 V;也就是我们需要的逻辑高电平。但是,短脉冲T2 = 240 ns必须由RC元件滤除。t =τ/ 5的情况对于持续时间T2 = 240 ns的时钟脉冲有效(图4)。
在V DD = 3.3 V的电压下,RC元件之后的输出电压将为V out = 0.181269·3.3 V≈0.59 V,因此时钟脉冲将不会通过RC元件。为了进行检查,让我们将获得的合成信号电压电平与特征逻辑“零/一”电压电平进行比较。针对电源电压为VDD 0 = 3.3 V的情况进行该比较(图5)。
5.信号电压电平。
因此,确保获得的数据和时钟信号的逻辑电平电压值对应于所需的逻辑零/一电压值,并且不会落入歧义区域。总结所有上述信息,选择集成RC元素以分离数据和时钟信号有两个主要标准:
所选信号传输频率下的信号持续时间T1应至少为RC元件时间常数τ的3倍,在我们的情况下为4.17倍:T1 =3τ
传输信号结束时短时钟脉冲T2的持续时间至少应比RC元件的时间常数τ短4倍,在我们的情况下为5倍:T2 =τ/ 4
设计分析
6.此“ Transmitter_170”设计实现了并行-串行转换器。
Transmitter_170的设计(图6)包含两个主要组件:
基于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反相器输出的内部“开关”信号为低电平时(图7,“中断”信号),则通过多路复用器记录来自输入PIN#2÷#8,#10的信息执行相应的触发器。然后,当“ switch”(“中断”信号)信号变高时,触发器上的数据发生移位,并形成一个串行代码(图7,“ Serial_OUT”信号)。
7.这些是“ Transmitter_170”传输的示例。通道1(黄色)是Serial_OUT,通道2(浅蓝色)是中断,通道3(品红色)是时钟,通道4(蓝色)是DATA_OUTPUT。这些图像显示当输入信号为00000000(a),输入信号为10010011(b),输入信号为10010011(c)时以及信号值较高的单个周期的缩放视图(d)。
延迟元件DLY5以及3位LUT6元件和基于FILTER0和2位LUT2的上升沿检测器允许改变所产生的数据分组之间的持续时间t2 (图7b)。即,设置并行数据输出的持续时间。当开关/中断信号为低电平时,在接收转换器的相应设计中会生成并行代码。在我们的设计中,生成数据包的时间t1和生成时间t2大致相同。
来自最后一个Pipe Delay触发器的输出的生成的串行代码被馈送到4位LUT0元素,在该元素中,使用延迟元素DLY2和上升沿检测器P DLY,形成了所需的特定形式的输出信号(图7,“ DATA_OUTPUT”信号。由FILTER1和2位LUT4组成的上升沿和下降沿检测器设计为使延迟元件DLY2的振荡器时钟频率加倍,以提高最后一个的分辨率。
8.“ Receiver_170”设计实现了串行到并行转换器。
Receiver_170的设计(图8)执行将串行代码转换为并行代码的相反功能。对于此操作,设计使用:
基于管道延迟(三个触发器),DFF0÷DFF3和DFF5的八个触发器链
基于3位LUT0÷3位LUT7的八个锁存器,用于将并行代码馈入输出PIN
在上升沿检测器P DLY上为触发器链计时的电路;
CNT2计数器和FILTER0反相器上的锁存器控制电路(3位LUT0÷3位LUT7元素)。
信号由外部RC元件分离后(图14),来自输入PIN#2 (图9)的数据信号被馈送到触发链的第一个触发器。然后,我们使用P DLY检测器仅选择时钟信号PIN#5的上升沿,并为触发链和计数器CNT2形成时钟信号。当内部CNT2信号为低电平(图9,CNT2信号)时,串行代码被解码为触发链上的并行代码,在此触发器由于来自FILTER0反相器输出的高resDFF信号而处于触发状态。
9.这些是“ Receiver_170”接收的示例。通道1(黄色)是CNT2,通道2(浅蓝色)是RC电路之前的外部信号,通道3(品红色)是RC电路之后的外部信号,通道4(蓝色)是CLK。这些图像显示当输入信号为00000000(a),输入信号为10010011(b),输入信号为10010011(c)时以及信号值较高的单个周期的缩放视图(d)。
当CNT2信号从低电平变为高电平时,表示每个触发器当前状态的信号将被馈入相应的锁存器并存储。同时,随着resDFF信号从高电平变为低电平,解码链的触发器将重置为初始状态。在“ CNT2”信号为高电平的时间期间,将锁存器存储的信号馈入相应的输出PIN,这又对应于Transmitter_170设计中生成的数据包之间的时间t2。
DFF5触发器没有nRESET输出。因此,它具有一个附加的复位逻辑电路,该电路基于AN-1029中所述的4位LUT0和2位LUT1元素。
仔细查看启动Transmitter_170和Receiver_170设计的初始条件,一个明显的缺点是。如果接收器比发送器晚开始运行,则串行代码到并行的转换可能不是从数据包的开头开始,而是从中间开始。反过来,这将导致数据输出过程发生变化。因此,为了确保发射器-接收器的正确操作,接收器必须与发射器同时开始工作。换句话说,它们必须具有公共电源(下面的图14)。
消除此缺陷的一种方法是,例如,在每个数据包的开头发送服务辅助信号,以在开始转换串行数据的过程之前重置接收机设计中的所有触发器。这将确保数据转换过程从程序包的开头开始。这样,我们将获得一个可靠的数据传输系统,在该系统中,发送器和接收器可以拥有自己的电源,并可以随时独立于彼此开始运行。为了对此进行测试,创建了另一对Transmitter_533和Receiver_533 (图15,进一步在下面)。
10.“ Transmitter_533”设计实现了并行-串行转换器。
Transmitter_533的设计(图10)也包含两个主要组件:
基于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,PDLY,4位LUT2和2位LUT1生成必要的位序列传输信号
此设计的操作原理与上一个没有什么不同。同样,CNT5计数器将传输信号时间定义为5 µs。但是,与先前的设计不同,CNT6计数器形成了10个此类时间段的数据包。即,除了设计用于发送数据的八个时段之外,还使用两个另外的时段S1,S0来生成所需的服务信号(图11c)。
11.这些是“ Transmitter_533”传输的示例。通道1(黄色)是Serial_OUT,通道2(浅蓝色)是中断,通道3(品红色)是时钟,通道4(蓝色)是DATA_OUTPUT。图像显示输入信号为00000000(a),输入信号为10010011(b),输入信号为10010011(c)以及服务信号的前两个周期的缩放视图(d)。
可能有很多方法来创建特殊服务信号,然后在接收器中对其进行检测。我们选择了第一个想到的:使用DFF4和3位LUT0,将服务信号的S1时间段填充为2 MHz的振荡器频率,并使用2位LUT1将其与主传输信号混合。留下S0时段而没有任何改变(图11d)。其原因将在接收机设计的描述中进行解释。
像以前的发射机设计一样,延迟元件DLY0以及3位LUT13元件和下降沿检测器EDGE DET0使得可以更改生成的数据包之间的持续时间。与之前的情况一样,根据DLY1、4位LUT2和P DLY创建所需的输出信号特定形式(图3)。由于数据包包含10个时间段,因此有必要在链中添加两个触发器以正确生成串行代码。这是在管道延迟上完成的,其中OUT0设置为= 3。
因此,除数据字节外,在Transmitter_533的设计中还发送了两个附加位S1和S0。S1位填充有振荡器频率为2 MHz的周期信号。
与先前的接收器一样,Receiver_533 (图12)的设计执行将串行码解码为并行码的逆功能。另外,它在开始转换串行数据的过程之前,会检测到服务信号(由发送器生成)并重置所有触发器。
12.“ Receiver_533”设计实现了串行到并行转换器。
此功能通过DLY5延迟元件执行,其中PIN#5用作时钟信号源。RC元素之前的Clock信号。检测器P DLY的两个边沿对周期信号的响应(以2 MHz的频率填充附加的S1位)类似于滤波器响应,这意味着可以为DLY5生成发射信号(图13, P_DLY信号)。
DLY5是上升沿上的延迟元件,这就是为什么人们可以轻易地看到DLY5仅在附加的S1位到达时才起作用的原因(图13,DLY5信号)。反过来,在开始并行到串行转换之前,DLY5延迟元件将始终为CNT6计数器生成一个复位信号。这样,CNT6计数器和两个锁存器(LATCH1和LATCH2)将生成必要的信号以重置解码链中的触发器(图13,res_DFF信号)。另外,在并行数据输出期间,用于在输出中锁存数据的信号锁存3位LUT5、3位LUT6和3位LUT12÷3位LUT16 (图13,LATCH1信号)。
13.这些是“ Receiver_533”接收的示例。通道1(黄色)是中断,通道2(浅蓝色)是RC电路之前的外部信号,通道4(蓝色)是RC电路之后的外部信号。信号D8-D13(绿色)分别是P_DLY,CLK,DLY5,CNT6,res_DFF和LATCH1。图像显示输入信号为00000000(a),输入信号为10010011(b),输入信号为10010011(c)以及服务信号的前两个周期的缩放视图(d)。
信号以其2 MHz的频率填充了附加的S1位,满足不通过RC元素的要求。但是,由于它在5 µs内多次重复,因此选择了一位的持续时间,因此它设法将电容器充电到可以识别为逻辑电平的电压电平。随后,为使电容器放电至保证的逻辑零电平且不影响数据信号的位7,我们使用了第二个额外的S0位。
此外,为了提高系统的可靠性,用于触发链和计数器CNT6的时钟信号由上升沿检测器EDGE DET0形成,该信号在P DLY元素之后获取。继而,这将防止在服务S1位的解码期间产生寄生时钟信号CLK (图13,“ CLK”信号)。
其余元素执行与先前设计相同的功能。
电路分析
如前所述,为了演示所提出的数据传输原理的效率,我们创建了一对收发器设备。
如上所述,Transmitter_170 – Receiver_170对(图14)具有由使用的78L33线路稳定器确定的公共电源,其电源电压为3.3V。在发射机电路中使用了八个按钮S0÷S7来生成所需的传输信号。 。因此,接收器电路中的八个LED0÷LED7 LED用于可视化接收和解码的信号。
14.这是典型的“ Transmitter_170 – Receiver_170”电路。
Transmitter_533-Receiver_533对(图15)中的发送器和接收器具有独立的电源节点,并且如上所述,它们代表一个独立的数据接收-发送系统。像前面的电路一样,按钮S0÷S7可用于设置所需的传输信号。接收电路中的LED0÷LED7 LED可以监控结果。
在不考虑LED消耗的电流的情况下,我们已经测量了在介绍的收发器对(Receiver_170的IC1电路和Receiver_533的IC2电路)工作期间芯片消耗的电流,以及它们的R1C1元件。事实证明,测得的电流值还取决于在串行信号字节中传输的逻辑电流的数量(这是由于RC元件电容器的充电电流所致)。为了比较,将测量结果汇总在图16中。
16.基于数据值的电流消耗。
测得的电流值表明Receiver_533电路芯片消耗的电流略高于Receiver_170电路的电流。这是因为由于使用了附加的辅助服务位S1和S0,Receiver_533电路中的传输信号要长两位。因此,可以总结出,带有RC元件的芯片所消耗的电流远小于带有OSC 2 MHz振荡器的芯片所消耗的电流。
图17和图18展示了基于上述工作原理的工作数据收发系统。
17.这是完整的“ Transmitter_170 – Receiver_170”系统(来自按钮的输入信号为00000101)。
18.这是一个完整的“ Transmitter_533 – Receiver_533”系统(来自按钮的输入信号为01001100)。