??? 摘? 要: 高精度微功耗數(shù)據(jù)采集系統(tǒng)的設(shè)計原理,敘述了其關(guān)鍵芯片ADS1212的結(jié)構(gòu)和原理以及使用方法,給出了詳細(xì)的設(shè)計電路圖和程序片段。?
??? 關(guān)鍵詞: 高精度? 微功耗? ADS1212? 數(shù)據(jù)采集系統(tǒng)
?
??? 對于水下弱磁信號的檢測和處理,需要一個能連續(xù)工作幾個月甚至一年以上的采樣精度很高的數(shù)據(jù)采集處理系統(tǒng),這就要求該系統(tǒng)必須具有高精度微功耗的功能。本文所介紹的就是能滿足這一要求的數(shù)據(jù)采集系統(tǒng),它在筆者的工作中已經(jīng)得到了充分的應(yīng)用和試驗。該系統(tǒng)采用ADS1212作為模/數(shù)轉(zhuǎn)換器,它是一個具有高精度、寬動態(tài)特性的Δ-Σ型A/D芯片。下面先對該芯片的主要特點和用法進(jìn)行簡要介紹,隨后介紹ADS1212與微功耗單片機PIC16F84A的接口電路及程序設(shè)計。?
1 ADS1212/B簡介?
1.1 特點及結(jié)構(gòu)?
??? ADS1212特點如下:?
??? (1)Δ-∑型A/D轉(zhuǎn)換器。?
??? (2)采樣數(shù)據(jù)輸出速率在10Hz時有效分辨率可達(dá)到20位,采樣數(shù)據(jù)輸出速率在1000Hz時有效分辨率可達(dá)16位。?
??? (3)最低功耗為1.4mW。?
??? (4)差分輸入。?
??? (5)具有可編程的增益放大器。?
??? (6)SPI兼容SSI接口。?
??? (7)可編程設(shè)置采樣速率。?
??? (8)可使用內(nèi)部或外部的參考電壓。?
????(9)具有芯片自校準(zhǔn)功能。?
??? ADS1212芯片為18腳DIP或SOIC封裝,ADS1213含有一個四通道多路開關(guān),為24腳DIP或SOIC封裝或28腳SSOP封裝。其結(jié)構(gòu)如圖1所示,其內(nèi)部由可編程增益放大器(PGA)、二階△-∑調(diào)制器、調(diào)制控制單元、可編程數(shù)字濾波器、微控制器單元、寄存器組(指令寄存器、命令寄存器、數(shù)據(jù)寄存器、校準(zhǔn)數(shù)據(jù)寄存器)、一個串行接口。一個時鐘電路和一個內(nèi)部2.5V電壓基準(zhǔn)等組成。?
?
?
1.2 主要性能?
??? 可編程增益放大器的增益(G)可設(shè)為1、2、4、8、16,而加速因子(TMR)也可設(shè)為1、2、4、8、16,它們之間的關(guān)系為乘積應(yīng)≤16,如表1所示。?
?
?
??? 采樣精度同增益和加速因子的設(shè)置都有關(guān)系,具體如表2所示。這里需要指出的是,不能同時追求采樣速度和采樣精度,只有選取合適的速度和精度才能體現(xiàn)出該芯片的優(yōu)勢。?
?
?
1.3 主要功能寄存器?
??? ADS1212/13內(nèi)部有5種功能寄存器。其中指令寄存器(INSR)和命令寄存器(CMR)用于控制轉(zhuǎn)換器的操作。數(shù)據(jù)輸出寄存器(DOR)用于存放最新的轉(zhuǎn)換結(jié)果。零點校準(zhǔn)寄存器(OCR)和滿量程寄存器(FCR)用于對轉(zhuǎn)換結(jié)果進(jìn)行校準(zhǔn)。?
??? 指令寄存器INSR是一個8位寄存器,對ADS1211/10的每一步操作都是從它開始的。具體格式如下:
??? ?
??? 是讀寫控制位。“1”為讀操作,“0”為寫操作。?
??? MB1MB0是欲讀寫的字節(jié)數(shù)。“00”~“11”對應(yīng)“1”~“4”。?
??? A3~A0是欲讀寫寄存器的地址。?
??? 命令寄存器CMR是一個32位寄存器,通過對它的操作可以設(shè)置ADS1211/10的各種工作模式,格式如表3所示。?
?
?
??? BIAS是參考電壓輸出開關(guān)位,“0”為關(guān),“1”為開。?
??? REFO是基準(zhǔn)電壓輸入開關(guān)位,“1”為使用內(nèi)部基準(zhǔn),“0”為使用外部基準(zhǔn)。?
??? DF是采樣數(shù)據(jù)輸出形式位,“0”為補碼形式輸出,“1”為原碼形式輸出。?
??? U/B是數(shù)據(jù)極性輸出,“0”為雙極性數(shù)據(jù)輸出,“1”單極性數(shù)據(jù)輸出。?
??? BD是讀字節(jié)的順序位,“0”為從高字節(jié)到低字節(jié),“1”為從低字節(jié)到高字節(jié)。?
??? MSB是位的順序位,“0”為從高位到低位,“1”為從低位到高位。?
??? SDL是數(shù)據(jù)輸出線選擇位,“0”為用“SDIO”輸出,“1”為用“SDOT”輸出。?
??? DRDY是只讀位,“0”表示輸出數(shù)據(jù)準(zhǔn)備好,“1”表示輸出數(shù)據(jù)沒有準(zhǔn)備好。?
??? DSYNC是只寫位,同DRDY共用一位,“0”表示不改變調(diào)制器的計數(shù)器值,“1”表示將調(diào)制器的計數(shù)器值復(fù)位至0。?
??? MD2~MD0是模式設(shè)置位,用于設(shè)置芯片的各種工作模式。?
??? G2~G0是增益設(shè)置位,用于對輸入信號設(shè)置增益。?
??? CH1CH0是通道選擇位,只適用于ADS1213,而ADS1212只有一個通道。?
??? SF2~SF0是加速因子選擇位。?
??? DR12~DR0是抽取率選擇位(Decimation Ratio)。這里需要指出的是,以前的資料對它的計算公式均有誤,現(xiàn)更正如下:?
??? fDATA=fXIN·TMR/(512·(Decimation Ratio+1))?
??? 數(shù)據(jù)輸出寄存器DOR為24位寄存器,用于存放最新的轉(zhuǎn)換結(jié)果。只有在DRDY信號為低的情況下,DOR中的數(shù)據(jù)才是有效數(shù)據(jù)。如果在1/fDATA-12×(1/fXIN)時間內(nèi)沒有讀出DOR中的數(shù)據(jù),那么它將會被新的數(shù)據(jù)所覆蓋。DOR中輸出的數(shù)據(jù)格式可以用補碼形式表示,如“FFFFFFH~000000H~7FFFFFH”,表示“負(fù)最大量程~0~正最大量程”;也可以用原碼形式表示,如“000000H~800000H~FFFFFFH”,表示“負(fù)最大量程~0~正最大量程”,這可用設(shè)置CMR3的DF位來實現(xiàn)。?
??? 零點校準(zhǔn)寄存器(OCR)和滿量程寄存器(FCR)用于對轉(zhuǎn)換結(jié)果進(jìn)行校準(zhǔn)。它們都是24位寄存器,可以在初始化中對其寫入,以便用于校準(zhǔn)輸出數(shù)據(jù)。?
2 系統(tǒng)設(shè)計?
??? 系統(tǒng)采用PIC16F84A作為處理機,它是Microchip公司生產(chǎn)的8位單片機。內(nèi)部程序存儲器是1K×14 E2PROM,可重復(fù)電擦寫;13個可獨立編程的雙向I/O引腳,驅(qū)動能力強;含片內(nèi)自振式看門狗;與51系列單片機相比具有在同等晶振頻率下速度快的特點,而且功耗極低,在5V電壓4MHz晶振時小于2mA,在3V電壓32kHz晶振時小于15μA。?
??? 系統(tǒng)采用MAX398作為多路開關(guān),并配有MAX233,可以同計算機串口相連,將采樣數(shù)據(jù)實時發(fā)送至計算機以便觀測。為了降低功耗,本系統(tǒng)使用的是外部基準(zhǔn)電壓源,即用ADR291作為2.5V基準(zhǔn)電壓輸出,用REF196作為3.3V參考電壓輸入。這樣可以使ADS1212的功耗降低約3mA。?
2.1 電源電路?
??? 由于本系統(tǒng)采樣精度高,所以電源電路的噪聲必須特別小。本系統(tǒng)采用MAX666作+5V電壓的穩(wěn)壓芯片, MAX664作-5V電壓的穩(wěn)壓芯片。根據(jù)ADS1212的特殊要求設(shè)計的電源電路如圖2所示。?
?
?
2.2 信號輸入電路?
??? 信號輸入電路如圖3所示。輸入信號通過多路開關(guān)選擇,然后經(jīng)過跟隨器輸出,再通過電阻網(wǎng)絡(luò)輸入到模/數(shù)轉(zhuǎn)換器的輸入端。為了使系統(tǒng)的噪聲對采樣的影響達(dá)到最小,ADS1212差分輸入的負(fù)端接到2.5V基準(zhǔn)電壓處。這是因為ADS1212的輸入端的輸入電壓不能大于電源電壓,且不能小于零。輸入信號在-5V~+5V內(nèi)變化時,通過計算可知AINP處的電壓范圍為1.25V~3.75V,2.5V對應(yīng)的是零點,而AINN接2.5V電壓基準(zhǔn),這樣就實現(xiàn)了對地信號的采樣轉(zhuǎn)換。?
?
?
2.3 ADS1212與PIC16F84A的接口電路?
??? ADS1212與PIC16F84A的接口采用四線制通信方式,如圖4所示。ADS1212的與PIC16F84的RB0相連,即采用外部中斷方式讀取采樣數(shù)據(jù)結(jié)果。采樣數(shù)據(jù)由SDOUT輸出,命令數(shù)據(jù)由SDIO輸入,SCLK作為同步時鐘,同時PIC16F84A還留有兩根口線與MAX233相連,在需要的時候可完成與計算機通訊。根據(jù)采集需要,本系統(tǒng)將ADS1212設(shè)置為從動方式(即Slave方式),片選端接地,而同步信號輸入端接高電平。?
?
?
2.4 程序設(shè)計?
??? 本系統(tǒng)是一個水下弱磁信號的測量處理裝置。軟件主要包括系統(tǒng)復(fù)位初始化模塊、A/D轉(zhuǎn)換控制模塊和數(shù)據(jù)處理模塊。由于A/D轉(zhuǎn)換控制模塊和數(shù)據(jù)處理模塊與具體應(yīng)用密切相關(guān),限于篇幅在此不作重點介紹。這里只介紹系統(tǒng)復(fù)位初始化模塊。?
??? 系統(tǒng)復(fù)位初始化模塊包括單片機端口初始化、ADS1212工作狀態(tài)初始化等。筆者認(rèn)為對于ADS1212的初始化完成后,應(yīng)讀出命令寄存器CMR中的一些字節(jié),與寫入的數(shù)值進(jìn)行比較,以確認(rèn)是否初始化正確,本系統(tǒng)中就是讀出CMR3進(jìn)行比較的。這里需要指出的是,不能用讀出CMR2進(jìn)行比較,因為ADS1212的工作模式已經(jīng)改變,比較肯定會發(fā)生錯誤。如下是軟件復(fù)位程序片段:?
??? START:CALL PORTINIT ;調(diào)用端口初始化子程序?
??????? MOVLW?? 64H ;WR_CMR=64H?
??????? MOVWF?? INSR?
??????? MOVLW?? 44H ;CMR3=22H(00100010B)雙極性信號輸入?
??????? MOVWF?? CMR3?
??????? MOVLW?? 14H ;CMR2=28H(00101000B,自校準(zhǔn)模式,G=4)?
??????? MOVWF?? CMR2?
??????? MOVLW?? 1AH ;CMR1=58H(加速因子TMR=4)?
??????? MOVWF?? CMR1?
??????? MOVLW?? 96H ;CMR0=69H(DR=1869H,DATA RATE=10Hz)?
??????? MOVWF?? CMR0?
??????? CALL????SPISCW?
??????? MOVLW?? 0E4H??????? ;讀CMR寄存器?
??????? MOVWF?? INSR?
??????? CALL????SPISCRD ? ;通信是否正常?
??????? MOVF??? CMR3,0?
??????? XORLW?? 44H?
??????? BTFSS???3,2?
??????? GOTO????START????? ;通信不正常,返回繼續(xù)?
??????? CALL PSCONVT??? ??? ;進(jìn)行數(shù)據(jù)轉(zhuǎn)換?
??? 采用ADS1212加PIC16F84A及微功耗基準(zhǔn)ADR291、REF196,實現(xiàn)了高精度微功耗數(shù)據(jù)采集系統(tǒng),系統(tǒng)工作電流為1.6~1.9mA,采樣精度可達(dá)20位。?
??? 信號輸入電路采用差分輸入,其負(fù)端接2.5V基準(zhǔn)電壓,有效降低了系統(tǒng)噪聲對采樣結(jié)果的影響。?
??? PIC16F84A具有微功耗的特點,但缺少通訊接口,通過軟件成功開發(fā)了標(biāo)準(zhǔn)異步串型通訊接口。?
??? 該系統(tǒng)已成功應(yīng)用于水下弱磁信號的檢測與處理。?
參考文獻(xiàn)?
1 22-Bit ANALOG-TO DIGITAL CONVERTER.Burr-Brown, 1996?
2 PIC16X系列單片機應(yīng)用設(shè)計手冊.福州高奇電子科技有限公司,1994