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