基于FPGA的多路数字位移传感器的分析系统设计

2011-10-09 09:45沈瑞
电子设计工程 2011年23期
关键词:温度传感器特性频率

沈瑞

(西南交通大学 电磁所,四川 成都 610031)

位移传感器是新技术革命和信息社会的重要技术基础,传感器技术是实现测试与自动控制的重要环节。在传统的传感器研究当中,以各种以模拟信号输出的位移传感器为主,对这类传感器的工作原理以及特性进行了分析说明。然而,随着工业的不断发展,要求各种传感器具有智能——自诊断,自识别以及自决策功能,要实现这些功能,则必须要配合一些控制器核,比如专用集成电路(ASIC),或者专用指令处理器(ASIP)等。由于模拟信号相对于数字信号而言,处理起来更加的复杂,而且抗干扰能力相对于数字信号而言,也比较弱,因此,数字位移传感器在未来的应用性上,具有更好的适应能力。

对于一个系统而言,为了更加准确利用数字位移传感器测试位移量,往往需要在一个系统中加入多个数字位移传感器,这样通过数据对比,得到更加准确的位移。同时,需要考虑到温度对传感器的影响,还需要在系统中加入温度传感器,从而使得位移传感器能够随着温度的变化而做出适当的调整,保证输出数据的精确与正确性。基于上述的要求,要求系统内部含有多个传感器,并且传感器的测试量是不同的。

当前传感器的数据采集方式主要以微控制器或者微处理器进行采集;由于控制器的接口限制,无法在同一时刻对多个传感器的数据进行采集;如果同时使用多个微处理器对多个传感器进行数据采集,一方面使系统成本增加,另一方面对采集的数据进行整合的时候,需要采取相应的比较繁琐的整合方案,这样不利于对于数据的分析,特别是在需要进行数据融合的地方,无法保证采集数据具有同一个时间坐标。

传感器的数据形式多种多样,对传感器的控制信号也是形式多样的,这就要求传感器的控制系统具有很强的灵活性。在对不同的传感器进行控制时,要求不同的操作步骤。如果采用传统的以微控制器或者微处理器为主的系统,由于针对不同的操作步骤具有先后次序,导致采集数据具有先后次序,从而无法保证数据的实时性,同时,操作起来也相当复杂[1]。

FPGA具有丰富的I/O资源,一般可用的I/O资源至少上百个,这就意味了FPGA可以与相当可观的传感器进行连接,加上FPGA内部的丰富资源以及灵活的数字信号处理方式,能够在同一时间控制多个传感器,从而可以实时性的采集不同传感器的数据。如果资源足够多,完全可以在FPGA内部对采集的数据进行一些数字信号处理的算法。

1 数据采集系统

数据采集系统主要由4部分组成:1)数字位移传感器的数据采集模块;2)温度传感器的数据采集模块;3)UART控制模块;4)数据输出控制模块。

1.1 设计的整体构架

数据采集系统的整体构架如图1所示。

数字位移传感器模块用于采集数字位移传感器的数据。由于数字位移传感器传输到FPGA的位移数据是频率格式的数据,所以需要进行一个数据转换,即把频率格式的数据转换成精度足够高的16位的数据。

图1 数据采集系统的整体构架Fig.1 Architecture of data acquisition

温度传感器采集模块用于采集温度传感器的数据。这里所使用的温度传感器是DS18B20,要采集该传感器的数据,要经过初始化,写入命令字等步骤,这通过FPGA可以十分方便的进行控制,它的输出是16位的温度数据[2]。

数据输出控制模块的作用就是把采集的位移数据以及温度数据以一定的格式,通过UART口发送出去,发送的格式可以按照如下描述:

首先发送采集数据的序号,接着分别发送10路位移传感器数据的高八位以及第八位,然后发送温度传感器的高八位以及第八位,最后发送采集数据的序号。

之所以采用这种格式,一方面是传感器数目的要求,另一方面是由于采用了UART口进行传输的原因。由于UART最大支持8位的数据传输,所以在传输的过程中,需要把16位的数据分为高8位和低8位进行传输。

UART控制模块在数据输出控制模块的控制下,向通过电脑的串口向电脑发送数据,从而用电脑将接收到的传感器数据进行处理。

1.2 数字位移传感器模块的构架

数字位移传感器的工作原理可以简单的描述为:随着位移的改变,它的输出频率相应的会加以改变。对于这种频率信号的处理,有两种简化的处理方式:1)直接法。就是设定一个时间窗口(时间段),在这个时间窗口内计算采集到的周期数,然后以该周期数作为位移数据进行输出;2)间接法。该方法的原理是应用一个比传感器输出频率高的参考频率,利用该参考频率计算一个传感器频率中有多少个参考频率,从而得到传感器的16位精度的输出数据[3]。

两者各有优缺点。直接法使用起来相对比较简单,但是为了保证精度足够,需要设置较长的时间窗口,这就要求更长的采集时间,比如传感器的输出频率在2 MHz左右,如果设置的时间窗口是300,也就意味着每采集一次数据,需要使用150 μs;间接法需要额外产生一个较高频率的参考频率,但是能够实时的获得位移数据,比如传感器的输出频率是2 MHz,那么采集一次数据只需要500 ns,然而,它的缺点就是只有频率足够高的时候,才能满足所需的精度。这里所使用的FPGA是Xilinx的Spartan DSP 3A,该FPGA支持的最大频率是300 MHz。综合考虑两种方法的优缺点,在设计中选用间接法进行设计,选用的参考频率是200 MHz。

数字位移传感器的频率输出由于受到外界因素的干扰,其频率会在一定的范围内改变,导致采集的数据值出现参差不齐的变化,为了减小这种变化带来的分析麻烦,对于采集到的数据还要经过一个求平均值的滤波处理。

传感器的均值滤波模块的原理是:对最新采集到的16个数据求平均值,然后作为16位数据输出。为了加快系统整体的频率,采用流水线的处理方式求平均值[4]。其过程可以描述如下:

第1个周期:缓存最新的数据;

第2个周期:同时进行8个加法运算,b1=a1+a2,b2=a3+a4, b3=a5+a6, b4=a7+a8,……,b8=a15+a16;

第3个周期:同时进行4个加法运算,c1=b1+b2,c2=b3+b4, c3=b5+b6, c4=b7+b8;

第4个周期:同时进行2个加法运算,d1=c1+c2,b2=c3+c4;

第5个周期:进行1个加法运算,s=d1+c2;

第6个周期:对第5个周期的结果向右移动4位,相当于除16运算;

第7个周期:输出均值数据;

1.3 温度传感器数据采集的架构

温度传感器采用的是DS18B20,该传感器的温度测量范围是-55~+125℃,在-10~+85℃的精度是±0.5℃。 由于该传感器是一款“一线总线”传感器,对于它的操作有些复杂,但是由于FPGA具有很大的灵活性,在一定程度上降低了它的复杂性。

要获取该传感器的温度数据,需要经过以下几个步骤:

1)初始化 DS18B20;

2)写入“跳过序列号命令字 skip rom”(0xCC);

3)写入“温度转换命令字 convenrt”(0x44);

4)初始化 DS18B20;

5)写入“跳过序列号命令字 skip rom”(0xCC);

6)写入“读取数据字 read”(0xBE);

针对该传感器的控制特性,可以设计分成3个子模块,它们分别是:状态控制模块,字节控制模块及比特位控制模块。

状态控制模块的作用是控制整个温度传感器的初始化以及命令字的产生,它是一个状态机。 它的状态对应于上述的每个步骤,每当一个步骤完成之后,该模块就会收到一个指示信号,然后跳转到下一个状态,直到每个步骤完成。

字节控制模块接收来自状态控制模块的各种命令字,然后将这些命令字转换成一个一个的比特位发送出去,同时控制传感器温度转换过程当中所需要的延时。

比特位控制模块的作用是控制各种操作,对数据总线进行适当的操作,比如什么时候释放总线,什么时候拉高总线,同时,读取总线的串行数据,将其转换成16位的数据。

由于温度数据不是一个直观的温度数据,需要进行一定的计算得到,所以在分析数据的时候,还要使用一些计算工具,比如matlab对其进行计算,从而得到准确的温度数据。

1.4 数据输出控制模块

数据输出控制模块的作用是缓存来自数字位移传感器以及温度传感器的16位数据,然后将这些数据分别分为高8位和低8位的形式,控制UART发送出去。

如果需要增加传感器的个数,只需要增大内部常量thick_no的值,以及增加内部常量thick_ram的个数便可以方便地将各个传感器的值有次序的进行输出。

1.5 UART控制模块

UART控制模块根据串口协议,把8位的并行数据按照规定格式的比特位发送出去。除了串口数据的发送与接收功能外,它还拥有一个控制功能:定时发送数据的功能,即在规定的时间内只发送规定的数据个数。之所以需要这样一个功能,是因为在分析传感器数据的时候,不仅仅需要分析某个时刻的数据,而且需要分析某个时间段的数据,这就需要长时间的发送传感器的数据。对于PC机而言,PC机能够缓存串口的数据个数是有限的,一旦缓存的个数达到上限,则不再存储从串口发送的数据。为了能让PC机内缓存的数据是一个较长时间内的数据,需要控制FPGA发送的数据个数。

传感器的数据是来自数据输出控制模块输出的8位数据;连接控制模块与发送模块的控制信号就是控制某个时间段内发送的数据个数[5]。在测试传感器的一些特性,比如精度,线性度的时候,可以把时间间隔设置为0或者其它合适的短时间段;然而,在测试其他一些特性,比如数字位移传感器与温度的特性的时候,需要把时间间隔设置长一些,这是由于试验中没有专门改变温度的设备,只能通过环境温度的自然变化来观测与分析数字位移传感器与温度的关系。

2 数据分析

通过基于FPGA的数据采集系统,可以得到多个传感器的数据,同时,可以根据需要,改变数据的采集方式。对于数据的分析也可以灵活把握,如果只是针对数字位移传感器的线性度以及精度进行测试,可以不用分析温度数据;如果是针对数字位移传感器与温度之间的关系,则需要将两者的数据相结合起来分析。

采集到的部分数据如图2所示。

图2 采集的部分数据Fig.2 Part of data acquired

其格式正如前面所述的,第1列与最后1列是数据;第2列到倒数第4列是数字位移传感器的数据,倒数第2列到倒数第3列是温度传感器的数据。

对于所采集的数据,需要分析3个特性:1)线性度。即数字位移传感器的输出数据随着位移变化的特性;2)精度。即相邻位移之间的数据之差,用于表现位移每变化单位距离,数据将改变多少,该特性用于评定该位移传感器是否灵敏;3)温度漂移。对于任何传感器的分析都少不了温度的影响,因为传感器的输出数据会受到温度的影响,只有考虑到温度的因素,才可以让传感器在不同的温度环境下,根据具体的温度进行特性调整,从而让输出数据正确。

把采集到的数据导入到matlab中,然后根据不同的分析方式编写不同的分析代码,可以绘制如图3所示的曲线。

图3 各种特性曲线Fig.3 Variety of characteristic

图3(a)是线性度的特性曲线,图 3(b)是精度的特性曲线,图3(c)是温度漂移的特性曲线,下面分别对各个曲线进行分析。

图3(a)中,横坐标是数字位移传感器的输出数据,纵坐标是对应的位移量。通过曲线,可以直观的看到数字位移传感器的输出数据随着位移的增大而不断变大,但是随着位移的不断增大,变化的幅度逐渐变小。

图3(b)中,横坐标是数字位移传感器的输出数据,纵坐标是对应的位移量。通过曲线可以直观的看到随着位移的不断增大,精度(需要对横坐标取绝对值)不断的变小,也就意味着当位移相对于传感器不是很大的时候,该传感器是灵敏的,随着位移的不断增大,灵敏度变小[6]。

图3(c)中,黑色的曲线是位移传感器的输出数据,蓝色的曲线是温度传感器的输出数据。通过两种传感器的数据对比,可以发现:位移传感器的输出数据随着温度的增大而减小,两者变化的趋势是相反的。

通过上述3种特性的分析,基本上可以了解数字位移传感器的特性。

3 结束语

文中介绍了如何通过FPGA,对多路且不同类型的传感器进行数据采集与数据分析,显示了FPGA在处理复杂传感器系统方面的优势。如今数字位移传感器受到了越来越广泛的应用,并且随着智能仪器的发展,要求传感器系统能够智能的对数据进行处理,将不同类型的传感器结合在一个系统中是很好的解决方式,而FPGA丰富的资源以及强大的数字信号处理能力,为复杂传感器系统的发展提供了很好的平台。

[1]何林.高速数据采集系统的关键技术[J].高新技术产业发展,2011(13):37.

HE Lin.Key technology of high speed data acquisition[J].Development of Hi-tech Industry,2011(71):37.

[2]王春侠,聂翔.基于FPGA的温度控制系统设计与实现[J].陕西理工学院学报,2011(2):15-19.

WANG Chun-xia,NIE Xiang.Design and implementation of temperature control system based on FPGA[J].Journal of Shanxi University of Technolog,2011(2):15-19.

[3]N.V.基里阿纳基,S.Y.尤里斯.智能传感器数据采集与信号处理[M].北京:化工工业出版社,2006.

[4]IanGrout,黄以华.基于FPGA和CPLD的数字系统设计[M].北京;电子工业出版社,2009.

[5]苏明,姚冬苹.专用异步串口通信电路的FPGA实现[J].物联网技术,2011(3):65-67.

SU Ming,YAO Dong-ping.FPGA implementation of special asynchronous serialcommunication interface circuit[J].Internet of Things Technologies,2011(3):65-67.

[6]彭冬亮,文成林,薛安克.多传感器多源信息融合理论及应用[M].北京:科学出版社,2010.

猜你喜欢
温度传感器特性频率
谷稗的生物学特性和栽培技术
振动与频率
色彩特性
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
进一步凸显定制安装特性的优势 Integra DRX-5.2
XTR105电流变送器在温度传感器中的应用
Quick Charge 4:什么是新的?
无线电频率的特点
温度传感器在笔记本电脑散热系统中的应用