利用I/O模拟多路复用器PSoC简化传感器控制设计
扫描二维码
随时随地手机看文章
CY8C21×34可编程系统级芯片(PSoC)混合信号阵列具有一个I/O模拟多路复用器,由于每个引脚都可以被用作一个模拟输入,因此采用单个SoC便能够轻松实现需要大量不同类型传感器的控制应用。本文介绍了在多种传感器控制应用中如何利用该器件来简化设计。
图1:模拟多路复用器/系统连接。
工业控制应用常常需要许多模拟输入,即使是具有一个PWM输出的最简单的风扇控制器也有可能需要对数量众多的温度传感器进行监控。模拟输入是宝贵的资源,经常很快就会被消耗殆尽。在很多场合,设计工程师不得不采用一个更加昂贵的部件,从而导致一些多余的空闲资源,或者必须增加外部多路复用器,以满足对模拟输入信号访问次数增加的需要。而且,传感器并不总是提供一个缓冲输出电压,它们有可能将信号转换成某些非电压参数,比如电阻或电容。在不少情况下,信号调节的成本会超过控制器的成本。
在选择控制器的时候,始终存在这样一个问题,那就是设计工程师必须规定多少个模拟输入。对于一个只需要6个输入的系统而言,8个输入是否足够?需求会不会继续提高?一个特定的控制器系列能够处理多少个模拟输入?如果我的设计需要升级至一个具有更多输入的器件,那么我的可选方案是什么?这种选择必须在竭力满足项目的成本要求、并同时顺应客户和市场部门不断变化的规格要求的情况下做出。一种简单的解决方案便是使每个引脚都能够成为一个模拟输入,而这在过去是做不到的,I/O模拟多路复用器将其变为了现实。
I/O模拟多路复用器是一种大型交叉开关,它允许将任何引脚连接至一个控制系统的模拟阵列。就是这样的一个多路复用器被内置于CY8C21x34可配置混合信号阵列之中。该器件每个引脚均具有一个开关,当某个开关被选择时,则将其所在的引脚与一根模拟总线相连。该控制器系列提供了多达28个I/O引脚,每个引脚都有可能成为一个模拟输入。该总线还与一个模拟阵列相连。模拟阵列由4个可配置模块组成,当这些模块与数字资源组合在一起时,将形成复杂的信号处理器。可能的模拟功能包括10位模拟-数字转换器(ADC)和比较器。
图2:具有电流DAC的模拟多路复用器。
传感器是一种换能器,用于把某种物理量变换成可进行电气测量的参数。对于许多换能器来说,这种转换的最终结果是电压。例如,LM35温度传感器就提供了一个与温度成正比的输出电压。温度的测量只需对输出电压进行数字化处理,采用适当的转换公式(在本例中为:Temp=Vmeasured/10mV)即可把电压转换成温度。
以一个需要在系统中测量16处温度的控制应用为例,简单的做法是在所需之处安放传感器并将其各自连接至一个引脚。模拟阵列被配置为一个ADC并连接至模拟总线。利用该拓扑结构,即可将每个传感器顺序连接至模拟总线并进行数字化处理。某些类型的传感器具有一个阻性输出,此类传感器包括热敏电阻、光电管、应力计和传导单元。这些传感器的信息读出需要通过电阻测量来完成,通常的做法是采用一个DC电流来模拟传感器输出并测量负载电压。
为了方便电阻的测量,在CY8C21x34的模拟总线上增设了一个可编程电流DAC。该电流DAC可在两个范围内进行选择和调节:0~20μA或0~400μA。如需读出电阻,则只要把传感器连接至一个与模拟总线相连的引脚并开启电流DAC即可,将会产生一个与电阻和电流的乘积相等的负载电压。可利用被配置为ADC的模拟模块来读出该电压。对该设计方案进行校准的方法之一是牺牲一个引脚来连接一个外部基准电阻器。首先测量基准电阻,测得的电压始终与电阻成正比;接着测量传感器电阻,在已知测量电压和基准电阻器阻值的情况下,即可计算传感器电阻:
[!--empirenews.page--]
现在,传感器电阻读数的准确度仅受限于基准电阻器的准确度和ADC的分辨率。任何增益误差都不会被带入计算之中。
然后,假设先前讨论的控制应用在规格上有一个变化,即要求用热敏电阻来代替LM35。所选的特定热敏电阻具有10kW/25℃的标称电阻,简单的实现方法是把热敏电阻布设于所需的位置并将它们各自连接至一个引脚。将一个多余的引脚连接至10kW基准电阻器,并设定电流DAC产生一个100μA的电流。通过将模拟阵列配置为一个ADC,即可顺序测量每个负载电压并计算所有热敏电阻的阻值,再利用合适的方程来把这些电阻值转换为温度值。
图3:具有放电电路的模拟多路复用器。
有些类型的传感器具有容性输出,其中包括加速计和压力传感器。与产生DC负载电压的阻性传感器不同,当采用DC电流来激励时,容性传感器将产生一个斜坡电压,斜率与激励电流成正比,而与测量电容成反比。为了方便该转换速率的测量,在CY8C21x34的模拟总线上增设了一个放电开关。当被选择时,该开关将把模拟总线放电至地电位。可采用多种可配置资源来控制其操作。如欲测量斜坡,则把模拟模块配置成采样比较器。
比较器的输出负责控制放电开关。该拓扑结构形成了一个弛张振荡器(relaxaTIon oscillator)。当斜坡电压上升至跳变点(trip point)时,比较器将关闭放电通路并重新把模拟总线放电至地电位。然后,比较器释放开关,电压继续上升。比较器输出被馈送至配置了一个频率计数器或周期定时器的数字部分。电容值可以从测量的数字信号推导出来。
现在,假设一个需要测量压力的控制应用。微加工技术的发展使得能够利用固定在玻璃衬底上的硅薄膜来制作廉价的压力传感器。压力的变化会使薄膜产生偏移,从而导致电容的改变。然而,热膨胀也会引发电容的变化,使得这些传感器容易受到温度的影响。相应的解决方案是在相同的衬底上设置一个基准电容器,并测量两个电容的比值。
在测量压力时,将两个容性输出均与PSoC引脚相连。模拟部分如今被配置为一个具有1.3V触发电平的采样比较器,并用于控制放电开关。电流源被设定为10μA。对于一个10pF的标称电容,产生的电压变化斜率为1V/μs。在该速率条件下,斜坡电压将需要1300ns的时间才能达到1.3V的跳变点。数字部分计算出的频率为769kHz。测量频率与测量电容成反比。对每个电容进行顺序测量,并计算一个比值。这两个数值之比将消除任何由于电流源或用于计算频率的系统时钟的不精确性所引发的误差。