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