郭熙宝,曹大平
(武汉大学 物理科学与技术学院,湖北 武汉430072)
高精度磁传感器用于在大的地球背景磁场下,探测微弱的目标磁场变化信号,需要使用高分辨率、低功耗的模数转换器(ADC)。本文介绍了一种基于Σ-Δ模数转换器的高精度磁传感器数据采集系统的设计,该数据采集系统可以采集、处理和发送磁传感器前置模拟电路发送来的X、Y、Z三路模拟信号。与其他数据采集系统相比,该系统具有分辨率高、转换速度快、功耗低等优点。文中给出系统各模块电路和软件的设计,并给出了系统的性能测试结果,在此基础上对整个系统进行评价。
本文讨论的高精度数据采集系统应用于磁传感器模拟信号的采集和处理。磁传感器接收外界的磁信号,输出相应的模拟信号,数据采集系统负责采集此模拟信号,并处理、发送。为了获得磁传感器输出的微弱信号,数据采集系统必须符合高精度、低功耗、规模小、转换速率快等设计指标。
常用的模数转换器类型主要有积分型ADC、逐次逼近型 ADC、并行/串并行比较型 ADC和 Σ-Δ型 ADC等。积分型ADC由于转换精度依赖于积分时间,因此转换速率极低。逐次比较型ADC在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。并行/串并行比较型ADC转换速率极高,但电路规模极大,价格高。Σ-Δ型ADC具有分辨率高、转换速度快、电路规模小、功耗低、价格便宜等优点,能够很好地达到设计要求。在众多的Σ-Δ型ADC中,AD7192抗干扰能力强,接口方便,价格低,因此选择AD7192作为模数转换芯片。AD7192[1]是一款适合高精度精密测量的低噪声、24位Σ-Δ型模数转换器 (ADC)。 由于采用 Σ-Δ 技术[2],使得整个 A/D芯片具有精度高、抗干扰能力强、噪声小和线性读取好的优点,在片内功能全开的情况下,电流为4.35 mA。
微控制器对整个系统的功耗和性能起着决定性的作用,为达到设计要求,必须选用功耗低、性能稳定的微处理器。在本系统中微控制器采用PIC24FV32KA304[3],该器件采用了16位改进型哈佛架构,引入了Microchip超低功耗的理念,该器件带有内部时钟,同时具有打盹模式操作和基于指令的三种节能模式,这一系列的功能,大幅度地降低了器件的功耗。
本系统设计主要分为硬件设计和软件设计两部分。其中硬件设计主要包括数据采集模块、微控制器、电源模块、数据发送模块等。软件设计主要包括各器件的初始化模块、数据采集模块、数据发送模块、数据显示模块等。系统结构框架图如图1所示。
图1 系统结构框架图
首先在微控制器PIC24FV32KA304的控制下,3片AD7192芯片分别将采集到的模拟信号转换成数字信号,然后微控制器PIC24FV32KA304读取数字信号,并处理此数字信号,将其转化为所需要的数据,最后微控制器通过串口将数据发送到上位机,在上位机上通过VB显示、处理和分析,实现目标磁场变化信号的显示。
图2 PIC24FV32KA304与AD7192的连接电路图
数据采集模块由3片AD7192和外围电路组成。如图2所示,X路输入为待转换的模拟信号,AINCOM接地。AD7192以伪差分模式采集外部的模拟信号。信号与芯片的AIN1脚连接,信号的参考地与芯片的AINCOM连接,输入的模拟电压值为两者之差。伪差分输入减小了信号源与设备的参考地电位 (地环流)不同所造成的影响,提高了测量的精度。AD7192的15脚REFIN1+为正基准输入,16脚 REFIN1-为负基准输入,REFIN1+输入可以是AVDD与 AGND+1 V之间的任意值,REFIN1-输入可以是AGND与AVDD-1 V之间的任意值,基准电压(REFIN1+-REFIN1-)最大为 AVDD。在此设计中,REFIN1+接2.048 V外部标准电压,REFIN1-直接与地相连,基准电压值即为2.048 V。AD7192与PIC24FV32KA304之间通过SPI串行通信。AD7192的SPI串行接口包含3个信号:DIN、SCLK和DOUT/RDY。DIN线路用于将数据传输至片内寄存器中;DOUT/RDY则用于从片内寄存器中获取数据;SCLK是器件的串行时钟输入,所有数据传输 (无论是 DIN上还是DOUT/RDY上)均相对于 SCLK信号进行。CS用于选择器件,设计中有3片AD7192,微控制器在读取转换结果时,必须使用片选信号CS来选择不同AD7192。
微控制器通过SPI串行接口向AD7192发送指令和读取数据。其中微控制器的 SDO1、SCK1、SDI1分别与AD7192的DIN、SCLK和DOUT/RDY相连。为了降低系统的功耗,微控制器的振荡器选用PIC24FV32KA304的内部带后分频的8 MHz快速RC振荡器,在软件中,可以设置此振荡器的分频系数,使振荡频率降低为2 MHz。从微控制器的OSCO引脚输出时钟信号CLKIN作为AD7192的振荡源,连接在AD7192的MCLK2引脚上。系统工作时,微控制器PIC24FV32KA304将初始化命令发送至AD7192,AD7192接收到初始化命令后,开始工作,将采集到的模拟信号转换成数字信号。微控制器等待上位机发送的报文头,当接收到报文头以后,微控制器判断报文头是否正确,如果错误,微控制器继续等待接收报文头;如果正确,则微控制器读取AD7192转换后的数字信号并处理。处理结束后微控制器将数据发送给上位机显示软件,在上位机上通过VB显示、处理和分析,发送结束后微控制器和AD7192进入休眠,以降低功耗。休眠一段时间(大约 400 ms)后,唤醒微控制器和 AD7192,进入下一次转换。PIC24FV32KA304与AD7192的连接电路如图2所示,图中X为输入的模拟信号。
该系统采用ADP150作为稳压源,为系统提供3.3 V的稳定电压。PIC24F32KA304器件引脚的最大电压为3.6 V,不能承受5 V电压。故选用3.3 V电压。ADP150是一款超低噪声(9 μV)、低压差线性调节器,采用2.2 V至5.5 V电源供电,电路如图3所示。
图3 稳压源电路图
AD7192工作时,需要有2.048 V的参考电压,参考电压稳定与否,对AD7192的转换精度有很大影响,故选用高精度的稳压电源。本系统采用ADR360B将3.3 V电压转换为标准的2.048 V参考电压,ADR360B具有功耗小,输出电压稳定等优点,电路图如图4所示。
图4 参考电压电路图
微控制器与上位机之间采用RS-485接口方式进行数据传输。图5为数据发送模块电路图。图中MAX3471的/RE(2)、DE(3)引脚并接在一起由微控制器控制,当DE/RE为低电平时,处于接收状态,A、B的差分信号经MAX3471转换成单端信号由微控制器的串行口线RXD接收;当DE/RE为高电平时,微控制器串口线TXD发送出的数据经MAX3471转换为差分信号发送出去。在差分线A、B上并接120 Ω的终端电阻,用以吸收信号反射。
图5 数据发送模块电路图
为了减小系统的体积,在设计印制电路板时,采用四层板。为了降低系统噪声,提高系统的稳定性和精度,在元器件布局和电路板走线时,需要遵循以下规则[4]:
(1)电路板模拟部分与数字部分分离,并限制在电路板的一定区域内。当距离很近时,中间要用地线隔开。
(2)元器件在整个板面上应紧凑分布,尽量缩短元器件间的布线长度。属于同一模块的器件,要就近放置。
(3)加宽电源线和地线。数字地和模拟地分开,在电源入口处单点汇集。
(4)输入和输出尽量避免相邻平行,电路板相邻两个信号层的导线应相互垂直、斜交或弯曲走线。印制导线拐角一般选择45°,或采用圆弧拐角。
本系统软件主要包括初始化模块、数据采集处理模块、数据发送模块、数据显示模块等。其中初始化模块、数据采集处理模块、数据发送模块是在MPLAB IDE编译器上用C[5]语言编写,数据显示模块在Visual Basic[6]环境下编写。
初始化模块,主要是系统各个功能模块初始化,包括微控制器端口初始化,UART串口初始化,SPI初始化,AD7192初始化等,初始化结束后,系统即进入工作状态,采集并转换模拟信号。转换结束,输出转换输出码[1],ADC配置为单极性工作模式,输出码为自然(直接)二进制码;零差分输入电压对应的码为000……000,中间电平电压对应的码为100……000,满量程输入电压对应的码为111……111。任意模拟输入电压的输出码可以表示为式(1):
其中,AIN为模拟输入电压,Gain为电压增益设置,此处设置为 1,VREF为参考电压(2.048 V),N=24。
数据采集处理模块,主要是编程使微控制器通过SPI通信读取AD7192的转换结果,并进行简单处理,得到需要的数据。AD7192转换结束后,产生一个32位的数据,其中高8位是状态位,屏蔽高8位的状态位后,剩下的24位数据即为所得的数据位 (输出码)。由任意模拟输入电压输出码表达式反推可得模拟电压AIN。
在数据发送模块中,微控制器通过UART串口通信,将所得的模拟电压值AIN通过UART通信发送到上位机,在上位机上通过数据显示模块显示、处理。然后微控制器和AD7192进入休眠状态,等待下一次转换。程序框图如图6所示。
由于AD7192和PIC24FV32KA304自身功耗比较低,在设计中,又使用了单片机内部振荡器作为AD7192和PIC24FV32KA304的时钟信号,并且工作结束即让AD7192和PIC24FV32KA304进入休眠状态,所以系统的功耗很低。通过数字电流表显示,系统平均功耗为0.8 mA,低于系统设计要求的1 mA。
图6 数据采集流程图
在输入模拟电压为零的情况下,上位机Visual Basic上显示的图形即为系统噪声图。图7为在Visual Basic上显示的X路数据采集系统的噪声(Y路、Z路噪声和X路基本一致),其中横坐标表示测试时间,一格为1 min。纵坐标表示数据采集系统的自噪声,单位为μV,从图中可以看出系统自噪声峰值基本在10 μV左右,低于系统设计要求的 20 μV。
本系统采用了内置低噪声、24位Σ-Δ型模数转换器AD7192,保证了系统的高精度、低噪声。采用微控制器PIC24FV32KA304内部快速RC振荡器作为微控制器和AD7192的振荡器,有效降低了系统的功耗。多次测量结果显示,该系统完全满足了高精度、低噪声、低功耗的要求,可以作为磁传感器的数据采集系统使用。
图7 数据采集系统的噪声
[1]Analog Device.AD7192.4.8 kHz,Ultralow Noise,24 bit Sigma-Delta ADC with PGA[Z].2009:1-38.
[2]张静,罗丁利.Σ-ΔADC原理及应用[J].火控雷达技术,2006(3):10-13.
[3]PIC24FV32KA304.General Purpose,16-Bit Flash Microcon trollers with XLP Technology[Z], 2002:165-172.
[4]李俊婷.计算机辅助电路设计与protel DXP[M].北京:高等教育出版社,2010:61-64.
[5]谭浩强.C程序设计[M].北京:清华大学出版社,2005:281-318.
[6]谭浩强.Visual Basic程序设计教程[M].北京:清华大学出版社,2006:13-47.