O 引 言
數(shù)據(jù)采集技術(shù)已廣泛應(yīng)用于信號(hào)處理,、通信,、過程控制、遙感遙測(cè)等領(lǐng)域,,各種高科技技術(shù)的發(fā)展對(duì)數(shù)據(jù)采集系統(tǒng)的精度進(jìn)一步加強(qiáng),。本文所介紹的就是一種高精度的數(shù)據(jù)采集系統(tǒng),它在筆者的工作中已經(jīng)得到了充分的應(yīng)用和試驗(yàn),。
該系統(tǒng)采用的∑一△型A/D轉(zhuǎn)換器ADS1212它具有分辨率高,,線性度好,,抗干擾能力強(qiáng)(對(duì)噪聲的抑制能力不亞于雙積分ADC),,成本低等不可多得的優(yōu)點(diǎn),恰好能滿足這種要求,。
單片機(jī)采用SST公司8位微處理器FLAsH-Flex51系列成員SST89E564RD,,它采用先進(jìn)的Super-FLASH CMOS半導(dǎo)體技術(shù)設(shè)計(jì)和制造,是采用8051的指令集,,并與標(biāo)準(zhǔn)的8051控制器管腳兼容,,而且具有SPI端口,接口簡單,,易于編程控制,。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 ADS1212的結(jié)構(gòu)及特點(diǎn)
ADS1212芯片內(nèi)部由可編程增益放大器(PGA)、二階∑-△調(diào)制器,、調(diào)制控制單元,、可編程數(shù)字濾波器、微控制器單元,、寄存器組(指令寄存器,、命令寄存器、數(shù)據(jù)寄存器,、校準(zhǔn)數(shù)據(jù)寄存器)和1個(gè)串行接口,,1個(gè)時(shí)鐘電路,1個(gè)內(nèi)部2.5 V電壓基準(zhǔn)等組成,。
ADS1212是高精度,、寬動(dòng)態(tài)特性的∑-△型模擬/數(shù)字轉(zhuǎn)換器,。它的差動(dòng)輸入端可以直接與傳感器或微小的電壓信號(hào)相連。其內(nèi)部的∑-△結(jié)構(gòu)可確保它的寬動(dòng)態(tài)特性和24位的分辨率,。
由于采用了低噪聲的輸入放大器,,可以在轉(zhuǎn)換速度為10 Hz時(shí)獲得23位的有效分辨率;借助于其內(nèi)部獨(dú)特的調(diào)制器加速操作模式,,在轉(zhuǎn)換速度為1 kHz時(shí)仍可達(dá)到20位的有效分辨率,。該轉(zhuǎn)換器動(dòng)態(tài)特性的大大提高主要依賴于其前級(jí)的低噪聲程控放大器,其放大倍數(shù)可從1~16進(jìn)行設(shè)定,,以2倍步長增加,。該A/D轉(zhuǎn)換器都有一個(gè)靈活的同步串行接口,它與SPI兼容,,并且可以提供雙線控制模式,。該A/D轉(zhuǎn)換器為單一+5 V供電,有內(nèi)/外參考電壓和內(nèi)部自校準(zhǔn)系統(tǒng),。
ADS1212主要用于工業(yè)過程控制,、儀器儀表、色譜分析,、靈巧傳感器,、便攜式儀表、稱重儀器,、壓力傳感器,、高分辨率測(cè)量的場(chǎng)合。
1.2 SST單片機(jī)的結(jié)構(gòu)及特點(diǎn)
系統(tǒng)采用SST89E564RD作為處理機(jī),,它是SST公司8位微處理器FLASHFlex51系列的成員,,是采用先進(jìn)的SuperFLASH CMOS半導(dǎo)體技術(shù)設(shè)計(jì)和制造,是采用8051的指令集,,并與標(biāo)準(zhǔn)的8051控制器管腳兼容,。
器件帶有72 KB的片內(nèi)FLASH E2PROM存儲(chǔ)器,使用了SST公司專利的CMOS Super_FLASH E2PROM技術(shù),,存儲(chǔ)器被分成兩塊獨(dú)立的程序存儲(chǔ)器,,第一塊(BLCK0)占用64 KB的內(nèi)部程序存儲(chǔ)器空間,第二塊(BLOCK0)占用8 KB的內(nèi)部程序存儲(chǔ)器空間,。8 KB的第二塊FLASH可以映射到64 KB空間的低地址,,還可以被隱藏和當(dāng)成類似E2PROM的獨(dú)立的數(shù)據(jù)存儲(chǔ)器。
1.3 SPI接口的特點(diǎn)
SST單片機(jī)的串行外設(shè)接口(Serial PeripheraI In-terface,,SPI)總線系統(tǒng)是一種同步串行外設(shè)接口,,它可以使MCU與各種外圍設(shè)備,以串行方式進(jìn)行通信以交換信息,。外圍設(shè)置 FLASHRAM,、網(wǎng)絡(luò)控制器,、LCD顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器和MCU等,。該接口一般使用4條線:串行時(shí)鐘線(SCK),、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線 MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOST和低電平有效的從機(jī)選擇線SS,。SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,,高位在前,,低位在后,為全雙工通信,,總體來說數(shù)據(jù)傳輸速度比I2C總線要快,。
SPI接口是以主從方式工作的,這種模式通常有一個(gè)主器件和一個(gè)或多個(gè)從器件,,其接口包括以下四種信號(hào):
(1)MOSI為主器件數(shù)據(jù)輸出,,從器件數(shù)據(jù)輸入;
(2)MISO為主器件數(shù)據(jù)輸入,,從器件數(shù)據(jù)輸出,;
(3)SCLK為時(shí)鐘信號(hào),由主器件產(chǎn)生,;
(4)SS為從器件使能信號(hào),,由主器件控制。
1.4 ADS1212與SST89E564RD的接口電路
ADS1212與SST89E564RD的接口采用四線制通信方式,,如圖1所示。ADS1212的DRDY與 SST89E564RD的INT1相連,,即采用外部中斷方式讀取采樣數(shù)據(jù)結(jié)果,。采樣數(shù)據(jù)由SDOUT輸出,命令數(shù)據(jù)由SDIO輸入,,SCLK作為同步時(shí)鐘,,同時(shí)SST89E564RD還留有2根口線與MAX232相連,在需要的時(shí)候可完成與計(jì)算機(jī)通信,。根據(jù)采集需要,,本系統(tǒng)將ADS1212設(shè)置為從動(dòng)方式(即Slave方式),同步信號(hào)輸入端DSYNC接高電平,。
2 系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)軟件采用單片機(jī)高級(jí)語言C51編寫,,C51是一種專為MCS-51系列單片機(jī)設(shè)計(jì)的高效率C語言編譯器。它具有編程方便易用的特點(diǎn),,能夠很方便地操作硬件接口地址,,C51編譯器具有極高的編譯效率,,編譯代碼可與匯編語言相媲美,而編程效率比匯編語言高很多,,采用高級(jí)語言C51編程可以提高源程序的可讀性,,便于以后的改進(jìn)和升級(jí)。
軟件部分包括主程序,、數(shù)據(jù)采集子程序,、串行口通信子程序。主程序的主要功能為系統(tǒng)初始化以及查詢各軟件標(biāo)志,,決定系統(tǒng)不同工作模式,,執(zhí)行各功能模塊。
2.1 單片機(jī)SPI接口程序
單片機(jī)SPI接口程序主要包括SPI接口初始化,,以及SPI數(shù)據(jù)輸入/輸出程序,,SPI接口初始化主要是針對(duì)SPI控制寄存器(SPCR)進(jìn)行相應(yīng)設(shè)置的,SPI控制寄存器(SPCR)格式如下:
SPIE是SPI中斷使能位,,當(dāng)SPIE和ES同時(shí)置為“1”,,則SPI中斷使能;
SPE是SPI使能位,,“0”為不使能,,“1”為使能;
DORD是數(shù)據(jù)傳輸?shù)捻樞蛭唬?ldquo;0”為從高位到低位,,“1”為從低位到高位,;
MSTR是主/從選擇位,“0”為從方式,,“1”為主方式,;
CPOL是時(shí)鐘極性位,“0”為時(shí)鐘高電平有效,,“1”為時(shí)鐘低電平有效,;
CPHA是時(shí)鐘相位控制位,“0”為時(shí)鐘上升沿左觸發(fā),,“1”為時(shí)鐘下降沿左觸發(fā),;
SPR0,SPR1是SPI時(shí)鐘頻率選擇位,,控制SPI時(shí)鐘為單片機(jī)時(shí)鐘的幾分頻,,如表1所示:
SPI接口初始化程序如下所示:
2.2 A/D數(shù)據(jù)采集程序
ADS1212內(nèi)部有5種功能寄存器。其中,,指令寄存器(INSR)和命令寄存器(CMR)用于控制轉(zhuǎn)換器的操作,。數(shù)據(jù)輸出寄存器(DOR)用于存放最新的轉(zhuǎn)換結(jié)果。零點(diǎn)校準(zhǔn)寄存器(OCR)和滿量程寄存器(FCR)用于對(duì)轉(zhuǎn)換結(jié)果進(jìn)行校準(zhǔn),。
指令寄存器INSR是一個(gè)8位寄存器,,對(duì)ADS1212的每一步操作都是從它開始的,。具體格式如下:
R/W是讀寫控制位;“1”為讀操作,,“0”為寫操作,。
MB1MB0是欲讀寫的字節(jié)數(shù)。“00”~“11”對(duì)應(yīng)“1”~“4”,;
A3~A0是欲讀寫寄存器的地址,。
命令寄存器CMR是一個(gè)32位寄存器,通過對(duì)它的操作可以設(shè)置ADS1212的各種工作模式,,格式如下:
采樣精度同增益和加速因子的設(shè)置都有關(guān)系,,具體如表3所示。這里需要指出的是,。不能同時(shí)追求采樣速度和采樣精度,,只有選取合適的速度和精度才能體現(xiàn)出該芯片的優(yōu)勢(shì)。
注:G=1,,fXIN=1 MHz(fXIN是外部晶體振蕩囂頻率)
零點(diǎn)校準(zhǔn)寄存器(OCR)和滿量程寄存器(FCR)用于對(duì)轉(zhuǎn)換結(jié)果進(jìn)行校準(zhǔn),。它們都是24位寄存器,可以在初始化中對(duì)其寫入,,以便用于校準(zhǔn)輸出數(shù)據(jù),。
數(shù)據(jù)采集程序的流程圖如圖2所示。
如下是程序的部分片段:
數(shù)據(jù)輸出寄存器DOR為24位寄存器,,用于存放最新的轉(zhuǎn)換結(jié)果,。只有在DRDY信號(hào)為低時(shí),DOR中的數(shù)據(jù)才有效,。如果在(1/fDATA)-12 (1/fXIN)時(shí)間內(nèi)沒有讀出DOR中的數(shù)據(jù),,則它將會(huì)被新的數(shù)據(jù)所覆蓋。DOR中輸出的數(shù)據(jù)格式可以用補(bǔ)碼形式表示,,如 “FFFFFFH~000000H~7FFFFFH”,,表示“負(fù)最大量程~0~正最大量程”;也可以用原碼形式表示,,如 “000000H~800000H~FFFFFFH”,表示“負(fù)最大量程~0~正最大量程”,,這可用設(shè)置CMR3的DF位來實(shí)現(xiàn),。
3 結(jié) 語
采用ADS1212與SST89E564RD完成的數(shù)據(jù)采集處理系統(tǒng)采集速度快,精度高,,還能將數(shù)據(jù)及時(shí)通過串口發(fā)送給上位機(jī)程序,,且外圍電路簡單。因此,,能用于較為復(fù)雜的系統(tǒng)開發(fā),,非常適用于工業(yè)控制,、自動(dòng)測(cè)試、儀器儀表,、遠(yuǎn)程通信等領(lǐng)域的數(shù)據(jù)采集與傳輸,。