arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理...

数字信号与脉冲序列调理

数字IO接口

数字信号

采用数字信号进行通信是计算机和外设、仪器以及其他电子设备之间最常见的通信方式,因为这是计算机工作的基本元素。任何信号,都必须转换为数字信号之后,才能输入计算机,并进行处理。

数字信号流入或流出系统时,或是单个信号,或是一串脉冲,可以只经过单一端口,也可以经过多个并行端口,并行端口上每根信号线代表字符中的一个bit。计算机的数字输出信号线往往用于控制继电器,以间接控制其他设备的开关。类似地,数字输入信号线可以代表某个传感器或开关的两种状态之一,而一串脉冲序列可以指示某个设备的当前位置或瞬时速度。输入信号可能来自继电器或其他固态设备。

大电流、高电压数字IO

通过继电器,可控制超出计算机内部处理范围的电压或电流,但信号或状态的响应速度受限于线圈的频率响应和触点移动。同时,当电感负载由闭合切换至断开时,两端的反向自感电动势必须被抑制,可将续流二极管反接在负载两端,为脉冲电流提供通路,以释放能量。如果没有这个二极管,继电器两端的电弧会缩短自身使用寿命(见图11.01)。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第1张图片

TTL和CMOS设备通常用于连接高速低压信号,例如速度或位置传感器的输出信号。但是在需要用计算机去激励继电器线圈的应用中,TTL或CMOS设备也许无法满足电压和电流需求。因此需要在TTL信号和继电器之间接入一级缓冲,以提供30V,100mA的驱动能力。

这种系统的一个例子是用于数字IO仪器的板卡,板载放大/衰减单元,由一个PNP晶体管、一个续流二极管和一个电阻组成(见图11.02)。为了控制标准的24V继电器,需要从外部引入24V电源。内部TTL输出高电平时,三极管导通,输出低电平(约0.7V);TTL输出低电平时,三极管进入截止区,输出被拉到24V。因为继电器线圈是感性负载,所以需要反接一个续流二极管,用于在开关切换时保护继电器。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第2张图片

图11.03演示了高压数字输入的降压电路。这使得TTL电路可以处理高达48V的电压。高压信号接入电阻分压电路,得到衰减。选取一个阻值适当的电阻R,用于处理不同程度的高压信号。图11.04中的表格提供一些常用方案。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第3张图片
arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第4张图片

数字输入

计算机处理数字输入的方法各种各样,有难有易。这一章节简要讨论软件触发,单字节读取;硬件控速,数字输入;外部触发,数字输入。

数字输入的异步读取

当计算机周期性的采样数字引脚时,需要使用软件触发的异步读取方式。有时,读取数字输入的速度和时机至关重要,但是采用软件触发的单字节读取方式,读取间隔很难保持稳定,尤其是当应用程序运行在多任务操作系统下的时候,例如在PC机上运行。原因是读取间隔受计算机的运行速度和其他并发任务的影响。读取间隔的不稳定可用软件定时器进行补偿,但是小于10ms的时间分辨率在PC上很难得到保证。

数字输入的同步读取

有些系统提供硬件控速的数字输入读取方式,用户可以设置数字输入端口的读取频率。例如,某系统能够以100kHz的频率读取16位IO口,某些系统可以达到1MHz的速度。硬件控制的读取,最大优点就是可以做到比软件快得多的速度。最后,此类设备可以在读取模拟输入的同时读取数字输入,使得模拟输入和数字输入的数据具有紧密的关联性。

数字输入的外部触发读取

某些外部设备以独立于数据采集系统的速率,产生以比特、字节或字为单位的数据。只有当新数据可读时才进行读数,并非以预先设置好的速率读数。因此,这些外部设备通常采用信号交换技术进行数据传输。当新的事件发生,例如外部数据就绪或门控信号输入时,外部设备在单独一根信号线上产生电平翻转。为了与这些设备交互,数据采集系统必须具备可被外部信号控制的输入锁存功能。这样,一个逻辑信号会提交到主控计算机,提示新数据准备就绪,可从锁存器中读取。

举例来说,一个以此方式工作的设备,在其6根控制信号线中有一根线用来通知外部设备主机正在读取输入锁存器中的数据。这个动作使外部设备能够保持住新数据,直到本次读取完成。

数字隔离

由于多种原因,数字信号往往需要被隔离,比如保护系统一端免受另一端随时可能出现的高压信号的损害、使得不共地的两个设备之间正常通信或保证医学应用中用户的安全。常见的隔离方案是光耦。光耦包含一个用于发射数字信号的LED或激光二极管,和一个用于接收信号的光电二极管或光电三极管(见图11.05)。光耦体积虽小,但可以隔离500V高压,这种技术还可以用于控制并监控不共地的设备。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第5张图片

脉冲序列信号调理

在许多测量频率的应用中,脉冲信号被计数或与某个固定的时基单元做比较。脉冲也可作为一种数字信号,因为只有上升沿或下降沿会被计数。在很多情况下,脉冲序列甚至可能来自模拟信号源,比如电磁拾波器(magnetic pickup)。

举例来说,数据采集系统中应用广泛的频率采集卡,提供4路频率输入通道,并包含2个独立的前端电路,一个用于数字信号输入,另一个用于模拟信号输入。采集卡将数字输入划分为不同逻辑状态,将模拟输入转换成一个随时间变化的纯净的数字脉冲序列。

图11.06演示了原理框图:总共模拟输入和信号调理两部分。前端RC网络提供交流耦合,允许高于25Hz的信号通过。衰减比例可调的衰减器降低了波形的整体幅度,削弱了不必要的低压噪声的影响。当需要使用来自继电器闭合时的脉冲序列时,此电路单元为用户提供了软件可配置去抖时间的功能。数字电路监控着被调节的脉冲序列,保持高电平或低电平。如果没有去抖动环节,信号中额外的边沿将导致过高的、不稳定的频率读数。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第6张图片

大量传感器输出调频信号,而不是调幅信号。比如用于测量转动和流体流速的传感器,通常属于这一类。光电倍增管(photomultiplier tubes)和带电粒子探测器(charged-particle detectors)常用于测量领域,并输出频率信号。原则上,这些信号也可以用AD采集,但这个方法将产生大量冗余数据,使得分析工作难以进行。直接进行频率测量效率则高得多。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第7张图片

频率 - 电压转换

数据采集系统可通过多种途径测量频率:对连续的AC信号或脉冲序列做积分,产生与频率成比例关系的DC电压,或用AD将交流电压转换成二进制的数字信号,或对数字脉冲计数。

脉冲序列积分

一种常见的用于单通道的转换技术,模块化的信号调节:对输入脉冲做积分,并输出与频率成比例的电压信号。首先, AC信号经过一系列电容耦合,滤除超低频和DC分量,此输入信号每次经过零点,比较器产生一个恒定宽度的脉冲,脉冲再经过积分电路,如低通滤波器,然后输出一个变化缓慢的信号,信号电压将正比于输入信号频率(见图11.08)。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第8张图片

频压转换器的响应时间比较慢,约为低通滤波器截止频率的倒数。截止频率必须远低于待测信号频率,又要足够高,以保证所需的响应时间。若待测信号频率接近于截止频率,明显的纹波将会成为一个严重的问题,如图11.09所示。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第9张图片

外部电容决定了专用频压转换的IC时间常数,使得电路可测量较宽频率范围内的信号,但频率改变时,电容也必须随之改变。不幸的是,这种频压转换器在频率低于100Hz时,表现得很差,因为截止频率低于10Hz的低通滤波器需要超级电容器。

数字脉冲计数

另一种用于测量数字脉冲或AC耦合模拟信号频率的技术。可输出正比于输入信号频率的DC电压,类似上面提到的积分法,只不过这里的DC电压来源于DAC。前端电路将输入的模拟或数字信号转换成纯净的脉冲序列,使其在进入DAC之前,不会带有来自继电器的毛刺,高频噪声以及其他多余信号(见图11.10)。

arduino数字端口输出电压可驱动多大继电器呢_「白皮书」数字信号与脉冲序列调理..._第10张图片

举例来说,一个标准的带有频率输入的数据采集卡,模拟输入通道前置低通滤波器,截止频率可设置为100kHz、300Hz或30Hz,测频范围1Hz至100kHz,信号峰峰值50mV至80V。数字输入部分直流耦合至TTL电平的施密特触发器,可测量0.001Hz至950kHz,±15VDC的信号。采集卡通常具有上拉电阻,用于继电器或开关应用。

微控制器准确测量几个脉冲的周期之和,频率分辨率取决于用户可配置的最小脉冲宽度。从测得的周期数据中可换算出频率,再根据频率值,控制DAC向数据采集系统输出相应的模拟信号,信号流入DC调理电路,最后,软件再将此电压转换成频率值。这种方法可以测量幅值和频率范围很宽的信号,且响应迅速。程序可控的频率量程可以最佳匹配ADC的量程,提高测量性能。

DAC输出范围±5V,用户配置的最低频率对应-5V,最高频率对应+5V。实际上,用户可任意配置频带范围,如500Hz-10kHz、59.5Hz-60.5Hz。但ADC固定为12位分辨率,不管频宽如何,-5V至+5V的电压都会被按比例划分为4096个等级,所以设置的频宽越窄,频率分辨率越高。例如1Hz的频宽划分为4096份,分辨率高达1/4096Hz(0.00244Hz),而100Hz的频宽,分辨率则降至24.41Hz。

虽然不同量程下,分辨率都是固定的12位,但测量速度却有所不同。从1Hz至自定义的频率上限,电压转换时间2至4ms,最长不超过输入信号的周期。0至10kHz范围内的信号,更新速率2至4ms;0至60Hz,则需要16.6ms。随着输入量程越来越窄,例如49至51Hz,12位分辨率去处理2Hz的带宽,消耗时间越来越长,转换时间大约59ms。

除了低通滤波器,内置的迟滞功能也可防止由于高频噪声导致的错误计数。去抖时间可被软件配置为0.6ms至10ms,用于处理机电设备,如开关、继电器等切换状态时会产生毛刺的设备。

基于门控脉冲计数的频率测量

门控脉冲计数相对于频压转换法精准度更高。门控脉冲计数法记录在指定时间内出现的脉冲个数,除以计数时间即频率值,频率误差可以低至计数时间的倒数,例如以2s作为计数时间,频率误差低至0.5Hz。

许多数据采集系统包含TTL电平兼容的计数器/定时器IC,可以产生门控脉冲、测量数字输入,然而并不适用于未经调理的模拟信号。所幸多数频率输出设备可以输出TTL电平。有些产品上的一个计数器/定时器IC,包含了5个计数器/定时器,而且通常使用数据采集系统的内部晶振,或外部晶振。这些IC通常使用多个通道配合完成计数功能,每路通道都包含一个输入部分,一个门控部分和一个输出部分。最简单的计数只需使用输入部分,PC以一定的周期读取计数值并复位计数器,这种方法的不足之处是读取周期不确定,函数执行过程中突然出现的情况可能随时启动或停止计数。另外,延时函数,例如延时50ms,依赖于不精确的软件定时器。这两点原因致使计数时间较短的频率测量毫无意义,但是,这种技术足以应对计数时间超过1秒的频率测量。

门控信号控制着计数时间,所以改变门控信号可以获得更高的精准度。这样,频率测量就变得与软件方面的时间问题无关。可以配置门控信号,在其高电平时才进行脉冲计数。同样的,也可以配置成在检测到一个脉冲时开始计数,检测到另一个脉冲时停止计数。

这种方法的一个缺点是需要额外的计数器用于控制。但在多通道频率采集的应用中,一个计数器可以控制多个通道。例如在5个通道的系统中,4通道用于计数,1通道用于控制。

计时应用

计数器/定时器同样可用于需要计时/定时的应用场合。将连接至输入通道的时钟信号作为门控信号是不错的选择,当信号为高电平时,使能计数。同样的方法可用于测量两个脉冲之间的时间间隔,只需配置成在第一个脉冲到来时开始计数,下一个脉冲到来时停止计数。

由于16位计数器在计数到65535时,即将发生溢出,所以以1MHz的时钟频率计数时,可测脉宽不超过65.535ms,更宽的脉冲将会导致计数器溢出,除非降低时钟频率。

如需了解更多内容请关注嘉兆科技

嘉兆公司拥有40年测试测量行业经验,专业的销售、技术、服务团队,在众多领域都非常出色,包括:通用微波/射频测试、无线通信测试、数据采集记录与分析、振动与噪声分析、电磁兼容测试、汽车安全测试、精密可编程测量电源、微波/射频元器件、传感器等,并分别在深圳、北京、上海、武汉、西安、沈阳、珠海、成都设有全资分公司、生产工厂、办事处。

你可能感兴趣的:(最长连续子序列偏移)