文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2014)05-0077-04
高精度磁傳感器用于在大的地球背景磁場下,探測微弱的目標(biāo)磁場變化信號(hào),需要使用高分辨率、低功耗的模數(shù)轉(zhuǎn)換器(ADC)。本文介紹了一種基于Σ-Δ模數(shù)轉(zhuǎn)換器的高精度磁傳感器數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),該數(shù)據(jù)采集系統(tǒng)可以采集、處理和發(fā)送磁傳感器前置模擬電路發(fā)送來的X、Y、Z三路模擬信號(hào)。與其他數(shù)據(jù)采集系統(tǒng)相比,該系統(tǒng)具有分辨率高、轉(zhuǎn)換速度快、功耗低等優(yōu)點(diǎn)。文中給出系統(tǒng)各模塊電路和軟件的設(shè)計(jì),并給出了系統(tǒng)的性能測試結(jié)果,在此基礎(chǔ)上對(duì)整個(gè)系統(tǒng)進(jìn)行評(píng)價(jià)。
1 主要器件選擇
本文討論的高精度數(shù)據(jù)采集系統(tǒng)應(yīng)用于磁傳感器模擬信號(hào)的采集和處理。磁傳感器接收外界的磁信號(hào),輸出相應(yīng)的模擬信號(hào),數(shù)據(jù)采集系統(tǒng)負(fù)責(zé)采集此模擬信號(hào),并處理、發(fā)送。為了獲得磁傳感器輸出的微弱信號(hào),數(shù)據(jù)采集系統(tǒng)必須符合高精度、低功耗、規(guī)模小、轉(zhuǎn)換速率快等設(shè)計(jì)指標(biāo)。
常用的模數(shù)轉(zhuǎn)換器類型主要有積分型ADC、逐次逼近型ADC、并行/串并行比較型ADC和Σ-Δ型ADC等。積分型ADC由于轉(zhuǎn)換精度依賴于積分時(shí)間,因此轉(zhuǎn)換速率極低。逐次比較型ADC在低分辯率(<12位)時(shí)價(jià)格便宜,但高精度(>12位)時(shí)價(jià)格很高。并行/串并行比較型ADC轉(zhuǎn)換速率極高,但電路規(guī)模極大,價(jià)格高。Σ-Δ型ADC具有分辨率高、轉(zhuǎn)換速度快、電路規(guī)模小、功耗低、價(jià)格便宜等優(yōu)點(diǎn),能夠很好地達(dá)到設(shè)計(jì)要求。在眾多的Σ-Δ型ADC中,AD7192抗干擾能力強(qiáng),接口方便,價(jià)格低,因此選擇AD7192作為模數(shù)轉(zhuǎn)換芯片。AD7192 [1]是一款適合高精度精密測量的低噪聲、24位Σ-Δ 型模數(shù)轉(zhuǎn)換器 (ADC)。由于采用Σ-Δ技術(shù)[2],使得整個(gè)A/D芯片具有精度高、抗干擾能力強(qiáng)、噪聲小和線性讀取好的優(yōu)點(diǎn),在片內(nèi)功能全開的情況下,電流為4.35 mA。
微控制器對(duì)整個(gè)系統(tǒng)的功耗和性能起著決定性的作用,為達(dá)到設(shè)計(jì)要求,必須選用功耗低、性能穩(wěn)定的微處理器。在本系統(tǒng)中微控制器采用PIC24FV32KA304[3],該器件采用了16位改進(jìn)型哈佛架構(gòu),引入了Microchip超低功耗的理念,該器件帶有內(nèi)部時(shí)鐘,同時(shí)具有打盹模式操作和基于指令的三種節(jié)能模式,這一系列的功能,大幅度地降低了器件的功耗。
2 系統(tǒng)組成與各部分功能
本系統(tǒng)設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。其中硬件設(shè)計(jì)主要包括數(shù)據(jù)采集模塊、微控制器、電源模塊、數(shù)據(jù)發(fā)送模塊等。軟件設(shè)計(jì)主要包括各器件的初始化模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)顯示模塊等。系統(tǒng)結(jié)構(gòu)框架圖如圖1所示。
首先在微控制器PIC24FV32KA304的控制下,3片AD7192芯片分別將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),然后微控制器PIC24FV32KA304讀取數(shù)字信號(hào),并處理此數(shù)字信號(hào),將其轉(zhuǎn)化為所需要的數(shù)據(jù),最后微控制器通過串口將數(shù)據(jù)發(fā)送到上位機(jī),在上位機(jī)上通過VB顯示、處理和分析,實(shí)現(xiàn)目標(biāo)磁場變化信號(hào)的顯示。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊由3片AD7192和外圍電路組成。如圖2所示,X路輸入為待轉(zhuǎn)換的模擬信號(hào),AINCOM接地。AD7192以偽差分模式采集外部的模擬信號(hào)。信號(hào)與芯片的AIN1腳連接,信號(hào)的參考地與芯片的AINCOM連接,輸入的模擬電壓值為兩者之差。偽差分輸入減小了信號(hào)源與設(shè)備的參考地電位(地環(huán)流)不同所造成的影響,提高了測量的精度。AD7192的15腳REFIN1+為正基準(zhǔn)輸入,16腳REFIN1-為負(fù)基準(zhǔn)輸入,REFIN1+輸入可以是AVDD與AGND+1 V之間的任意值,REFIN1-輸入可以是AGND與AVDD-1 V之間的任意值,基準(zhǔn)電壓(REFIN1+-REFIN1-)最大為AVDD。在此設(shè)計(jì)中,REFIN1+接2.048 V外部標(biāo)準(zhǔn)電壓,REFIN1-直接與地相連,基準(zhǔn)電壓值即為2.048 V。AD7192與PIC24FV32KA304之間通過SPI串行通信。AD7192 的SPI串行接口包含3個(gè)信號(hào):DIN、SCLK和DOUT/RDY。DIN 線路用于將數(shù)據(jù)傳輸至片內(nèi)寄存器中;DOUT/RDY 則用于從片內(nèi)寄存器中獲取數(shù)據(jù);SCLK 是器件的串行時(shí)鐘輸入,所有數(shù)據(jù)傳輸(無論是 DIN 上還是DOUT/RDY 上)均相對(duì)于 SCLK 信號(hào)進(jìn)行。CS用于選擇器件,設(shè)計(jì)中有3片AD7192, 微控制器在讀取轉(zhuǎn)換結(jié)果時(shí),必須使用片選信號(hào)CS來選擇不同AD7192。
3.2 微控制器
微控制器通過SPI串行接口向AD7192發(fā)送指令和讀取數(shù)據(jù)。其中微控制器的SDO1、SCK1、SDI1分別與AD7192的DIN、SCLK 和DOUT/RDY相連。為了降低系統(tǒng)的功耗,微控制器的振蕩器選用PIC24FV32KA304的內(nèi)部帶后分頻的8 MHz 快速RC振蕩器,在軟件中,可以設(shè)置此振蕩器的分頻系數(shù),使振蕩頻率降低為2 MHz。從微控制器的OSCO引腳輸出時(shí)鐘信號(hào)CLKIN作為AD7192的振蕩源,連接在AD7192的MCLK2引腳上。系統(tǒng)工作時(shí),微控制器PIC24FV32KA304將初始化命令發(fā)送至AD7192,AD7192接收到初始化命令后,開始工作,將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。微控制器等待上位機(jī)發(fā)送的報(bào)文頭,當(dāng)接收到報(bào)文頭以后,微控制器判斷報(bào)文頭是否正確,如果錯(cuò)誤,微控制器繼續(xù)等待接收?qǐng)?bào)文頭;如果正確,則微控制器讀取AD7192轉(zhuǎn)換后的數(shù)字信號(hào)并處理。處理結(jié)束后微控制器將數(shù)據(jù)發(fā)送給上位機(jī)顯示軟件,在上位機(jī)上通過VB顯示、處理和分析,發(fā)送結(jié)束后微控制器和AD7192進(jìn)入休眠,以降低功耗。休眠一段時(shí)間(大約400 ms)后,喚醒微控制器和AD7192,進(jìn)入下一次轉(zhuǎn)換。PIC24FV32KA304與AD7192的連接電路如圖2所示,圖中X為輸入的模擬信號(hào)。
3.3 電源模塊
該系統(tǒng)采用ADP150作為穩(wěn)壓源,為系統(tǒng)提供3.3 V的穩(wěn)定電壓。PIC24F32KA304器件引腳的最大電壓為3.6 V,不能承受5 V 電壓。故選用3.3 V電壓。ADP150是一款超低噪聲(9 μV)、低壓差線性調(diào)節(jié)器,采用2.2 V至5.5 V電源供電,電路如圖3所示。
3.4 數(shù)據(jù)發(fā)送模塊
微控制器與上位機(jī)之間采用RS-485接口方式進(jìn)行數(shù)據(jù)傳輸。圖5為數(shù)據(jù)發(fā)送模塊電路圖。圖中MAX3471的/RE(2)、DE(3)引腳并接在一起由微控制器控制,當(dāng)DE/RE為低電平時(shí),處于接收狀態(tài),A、B的差分信號(hào)經(jīng)MAX3471轉(zhuǎn)換成單端信號(hào)由微控制器的串行口線RXD接收;當(dāng)DE/RE為高電平時(shí),微控制器串口線TXD發(fā)送出的數(shù)據(jù)經(jīng)MAX3471轉(zhuǎn)換為差分信號(hào)發(fā)送出去。在差分線A、B上并接120 Ω的終端電阻,用以吸收信號(hào)反射。
為了減小系統(tǒng)的體積,在設(shè)計(jì)印制電路板時(shí),采用四層板。為了降低系統(tǒng)噪聲,提高系統(tǒng)的穩(wěn)定性和精度,在元器件布局和電路板走線時(shí),需要遵循以下規(guī)則[4]:
(1)電路板模擬部分與數(shù)字部分分離,并限制在電路板的一定區(qū)域內(nèi)。當(dāng)距離很近時(shí),中間要用地線隔開。
(2)元器件在整個(gè)板面上應(yīng)緊湊分布,盡量縮短元器件間的布線長度。屬于同一模塊的器件,要就近放置。
(3)加寬電源線和地線。數(shù)字地和模擬地分開,在電源入口處單點(diǎn)匯集。
(4)輸入和輸出盡量避免相鄰平行,電路板相鄰兩個(gè)信號(hào)層的導(dǎo)線應(yīng)相互垂直、斜交或彎曲走線。印制導(dǎo)線拐角一般選擇45°,或采用圓弧拐角。
4 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件主要包括初始化模塊、數(shù)據(jù)采集處理模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)顯示模塊等。其中初始化模塊、數(shù)據(jù)采集處理模塊、數(shù)據(jù)發(fā)送模塊是在MPLAB IDE編譯器上用C [5]語言編寫,數(shù)據(jù)顯示模塊在Visual Basic[6]環(huán)境下編寫。
初始化模塊,主要是系統(tǒng)各個(gè)功能模塊初始化,包括微控制器端口初始化,UART串口初始化,SPI初始化,AD7192初始化等,初始化結(jié)束后,系統(tǒng)即進(jìn)入工作狀態(tài),采集并轉(zhuǎn)換模擬信號(hào)。轉(zhuǎn)換結(jié)束, 輸出轉(zhuǎn)換輸出碼[1],ADC配置為單極性工作模式,輸出碼為自然(直接)二進(jìn)制碼;零差分輸入電壓對(duì)應(yīng)的碼為000……000,中間電平電壓對(duì)應(yīng)的碼為100……000,滿量程輸入電壓對(duì)應(yīng)的碼為111……111。任意模擬輸入電壓的輸出碼可以表示為式(1):
輸出碼=(2N×AIN×Gain)/VREF (1)
其中,AIN為模擬輸入電壓,Gain為電壓增益設(shè)置,此處設(shè)置為1,VREF為參考電壓(2.048 V),N=24。
數(shù)據(jù)采集處理模塊,主要是編程使微控制器通過SPI通信讀取AD7192的轉(zhuǎn)換結(jié)果,并進(jìn)行簡單處理,得到需要的數(shù)據(jù)。AD7192轉(zhuǎn)換結(jié)束后,產(chǎn)生一個(gè)32位的數(shù)據(jù),其中高8位是狀態(tài)位,屏蔽高8位的狀態(tài)位后,剩下的24位數(shù)據(jù)即為所得的數(shù)據(jù)位(輸出碼)。由任意模擬輸入電壓輸出碼表達(dá)式反推可得模擬電壓AIN。
在數(shù)據(jù)發(fā)送模塊中,微控制器通過UART串口通信,將所得的模擬電壓值A(chǔ)IN通過UART通信發(fā)送到上位機(jī),在上位機(jī)上通過數(shù)據(jù)顯示模塊顯示、處理。然后微控制器和AD7192進(jìn)入休眠狀態(tài),等待下一次轉(zhuǎn)換。程序框圖如圖6所示?!?/p>
5 系統(tǒng)性能測試
5.1 系統(tǒng)功耗測試
由于AD7192和PIC24FV32KA304自身功耗比較低,在設(shè)計(jì)中,又使用了單片機(jī)內(nèi)部振蕩器作為AD7192和PIC24FV32KA304的時(shí)鐘信號(hào),并且工作結(jié)束即讓AD7192和PIC24FV32KA304進(jìn)入休眠狀態(tài),所以系統(tǒng)的功耗很低。通過數(shù)字電流表顯示,系統(tǒng)平均功耗為0.8 mA,低于系統(tǒng)設(shè)計(jì)要求的1 mA。
5.2 系統(tǒng)噪聲測試
在輸入模擬電壓為零的情況下,上位機(jī)Visual Basic上顯示的圖形即為系統(tǒng)噪聲圖。圖7為在Visual Basic上顯示的X路數(shù)據(jù)采集系統(tǒng)的噪聲(Y路、Z路噪聲和X路基本一致),其中橫坐標(biāo)表示測試時(shí)間,一格為1 min。縱坐標(biāo)表示數(shù)據(jù)采集系統(tǒng)的自噪聲,單位為μV,從圖中可以看出系統(tǒng)自噪聲峰值基本在10 μV左右,低于系統(tǒng)設(shè)計(jì)要求的20 μV。
本系統(tǒng)采用了內(nèi)置低噪聲、24位Σ-Δ 型模數(shù)轉(zhuǎn)換器AD7192,保證了系統(tǒng)的高精度、低噪聲。采用微控制器PIC24FV32KA304內(nèi)部快速RC振蕩器作為微控制器和AD7192的振蕩器,有效降低了系統(tǒng)的功耗。多次測量結(jié)果顯示,該系統(tǒng)完全滿足了高精度、低噪聲、低功耗的要求, 可以作為磁傳感器的數(shù)據(jù)采集系統(tǒng)使用。
參考文獻(xiàn)
[1] Analog Device. AD7192. 4.8 kHz, Ultralow Noise, 24 bit Sigma-Delta ADC with PGA[Z]. 2009:1-38.
[2] 張靜,羅丁利. Σ-ΔADC原理及應(yīng)用[J].火控雷達(dá)技術(shù),2006(3):10-13.
[3] PIC24FV32KA304.General Purpose,16-Bit Flash Microcon trollers with XLP Technology[Z], 2002:165-172.
[4] 李俊婷. 計(jì)算機(jī)輔助電路設(shè)計(jì)與protel DXP[M].北京:高等教育出版社,2010:61-64.
[5] 譚浩強(qiáng). C程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005:281-318.
[6] 譚浩強(qiáng).Visual Basic程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2006:13-47.