1 引言
A/D轉(zhuǎn)換器的種類很多,不同的應(yīng)用場合對其要求不同,有的要求高轉(zhuǎn)換速率,有的要求有高精度,還有的用于便攜式儀表中,需要低功耗等等。用于數(shù)據(jù)采集板的A/D轉(zhuǎn)換器,一般是和計算機(jī)或微處理器結(jié)合在一起使用。隨著單片機(jī)在各種智能儀器儀表中的廣泛應(yīng)用,出現(xiàn)了一些將A/D轉(zhuǎn)換器和單片機(jī)內(nèi)核集成在一塊芯片上的數(shù)據(jù)采集芯片,ADuC812就是這樣一種芯片。
ADuC812是8通道12位逐次逼近式A/D轉(zhuǎn)換器,它具有如下特點(diǎn)(見Analog Devices公司的資料:MicroConverter,Multichannel 12-Bit ADC withEmbedded Flash MCU ADuC812,2002):
內(nèi)含8通道高精度12位A/D轉(zhuǎn)換器;高達(dá)200kHz的采樣轉(zhuǎn)換速率;可通過DMA控制器實現(xiàn)由ADC到外部數(shù)據(jù)存儲器之間的高速數(shù)據(jù)存儲;片內(nèi)還包含2個12位D/A轉(zhuǎn)換器;片內(nèi)包含有溫度傳感器;片內(nèi)集成有和8051兼容的MCU內(nèi)核,工作頻率為12MHz,最高可達(dá)16MHz,MCU上帶有3個16位定時/計數(shù)器,9個中斷源,兩級中斷優(yōu)先級;片內(nèi)帶8K字節(jié)的FLASH程序存儲器,640字節(jié)FLASH數(shù)據(jù)存儲器,以及256字節(jié)的片內(nèi)RAM數(shù)據(jù)存儲器,同時還可擴(kuò)展16M字節(jié)外部數(shù)據(jù)存儲器以及64K字節(jié)的程序存儲器;低電壓3V或5V供電,有節(jié)電模式;帶UART和SPI串行接口;帶看門狗定時器。
2 管腳說明
ADuC812采用S-52封裝,它的大部分管腳和8051相應(yīng)管腳功能相同,幾個主要管腳功能如下:
P1口:和8051的P1口功能不同,它只能作為模擬或數(shù)字信號的輸入口,而不能作為輸出口,缺省狀態(tài)為8路模擬信號輸入端,要使它們中的某位變?yōu)閿?shù)字信號輸入腳,應(yīng)向P1口對應(yīng)的特殊功能寄存器的相應(yīng)位寫入“0”信號,如果該特殊功能寄存器的相應(yīng)位為“1”,則該位對應(yīng)的管腳為模擬信號輸入腳;
DAC0、DAC1:為兩路D/A轉(zhuǎn)換器的模擬信號輸出腳;
SS、SCLK、MOSI、MISO:為串行設(shè)備接口(SPI)。
SS為SPI接口的從屬設(shè)備選擇,在多機(jī)通信中使用,SCLK為SPI接口時鐘,MOSI以及MISO為輸入/輸出數(shù)據(jù)線;
D0、D1:和SPI接口復(fù)用的數(shù)字輸出腳,通過DCON特殊功能寄存器控制從D0或D1腳輸出數(shù)字信號;
T2:定時器2數(shù)字信號輸入腳;
T2EX:數(shù)字輸入腳,讀取定時器2的計數(shù)器或重裝該計數(shù)器的觸發(fā)腳,負(fù)跳變時有效。
其它腳的功能和8051相應(yīng)腳的功能相同。
3 使用方法
3.1 程序存儲器
程序存儲器分為片內(nèi)程序存儲器和片外程序存儲器,片內(nèi)含有8K字節(jié)的FLASH可編程程序存儲器,可滿足大部分?jǐn)?shù)據(jù)采集系統(tǒng)的設(shè)計要求,該段程序存儲器可以用兩種方式寫入,一種是通過標(biāo)準(zhǔn)的UART串行接口進(jìn)行串行下載寫入,當(dāng)PSEN管腳通過外部電阻接地時,在上電后自動進(jìn)入串行下載模式,通過串行口自動從外部開發(fā)系統(tǒng)中下載程序;第二種方式和E2PROM的編程方式相同,通過編程器進(jìn)行并行寫入。
3.2 數(shù)據(jù)存儲器
ADuC812的用戶數(shù)據(jù)存儲器包含三部分,片內(nèi)640字節(jié)的FLASH數(shù)據(jù)存儲器、256字節(jié)的RAM以及片外可擴(kuò)展到16M字節(jié)的數(shù)據(jù)存儲器,其中640字節(jié)的數(shù)據(jù)存儲器被分成160頁,每頁4字節(jié),通過6個特殊功能寄存器來進(jìn)行存取,即通過ECON、EADRL以及EDATA1~4來存取,EADRL寄存器指定要進(jìn)行數(shù)據(jù)存取的頁地址,ECON控制寄存器可控制EDATA1~4寄存器和EADRL指定的頁內(nèi)4個存儲器之間進(jìn)行數(shù)據(jù)交換,而ECON還可控制FLASH數(shù)據(jù)存儲器的擦除、校驗等操作,它的控制模式如表1所示。
外部數(shù)據(jù)存儲器的尋址范圍為000000H~0FFFFFFH,共有16M字節(jié)地址空間,低16位地址線的連接和8051單片機(jī)系統(tǒng)中的外部數(shù)據(jù)存儲器的地址連接方式相同,高8位的連接方式是復(fù)用P2口,利用ALE地址鎖存信號在鎖存P0口的低8位地址信號的同時鎖存高8位地址信號,來實現(xiàn)16M字節(jié)地址空間的尋址。它的數(shù)據(jù)指針和8051單片機(jī)不同,是由3個8位寄存器組成,即DPP(頁字節(jié))、DPH(高位字節(jié))、DPL(低位字節(jié))。
3.3 A/D轉(zhuǎn)換器
ADuC812包含一個8通道單電源12位逐次逼近A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器的線性誤差為±1/2 LSB,轉(zhuǎn)換時間為5μs,可以提供內(nèi)部2.5V參考電源,同時也可以外接從2.5V到AVDD的參考電源,通過ADCCON1~3三個特殊功能寄存器來控制A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果可保存在ADCDATAH/L二個特殊功能寄存器中,轉(zhuǎn)換數(shù)據(jù)的低8位保存在ADCDATAL寄存器中,而高4位保存在ADCDATAH的低4位中,ADCDATAH的高四位用來保存采樣的通道號。如果采樣數(shù)據(jù)較大,如以200kHz的速率對被輸入的模擬信號進(jìn)行連續(xù)采樣,這時必須用DMA模式,將采樣數(shù)據(jù)直接保存在外部數(shù)據(jù)存儲器中,采樣結(jié)束后再對數(shù)據(jù)進(jìn)行處理。
三個控制寄存器的功能如下。
?。?)ADCCON1控制采集和轉(zhuǎn)換時間以及轉(zhuǎn)換模式,各位的功能如下:
CK1、CK0選擇主時鐘分頻系數(shù),從主時鐘分頻來產(chǎn)生ADC時鐘,CK1-0為00~11,分別按1、2、4、8分頻。
AQ1、AQ0選擇ADC采樣保持時鐘,分頻系數(shù)從ADC時鐘分頻產(chǎn)生,AQ1-0為00~11時分別按1、2、4、8分頻。
T2C:定時器2溢出觸發(fā)位,通過置位該位,可使用定時器2的溢出信號作為ADC轉(zhuǎn)換觸發(fā)信號。
EXC:ADC轉(zhuǎn)換外部觸發(fā)使能位,通過置位該位,可由外部引腳(CONVST)來觸發(fā)ADC轉(zhuǎn)換。
?。?)ADCCON2控制通道選擇和轉(zhuǎn)換模式:
其中,ADCI為中斷標(biāo)志位;DMA為DMA模式使能位;CCONV為連續(xù)轉(zhuǎn)換模式使能位;SCONV為單次轉(zhuǎn)換模式使能位;CS3、CS2、CS1、CS0為通道選擇位,用戶通過程序指定須進(jìn)行A/D轉(zhuǎn)換的通道。CS3-0為0000~0111時指示8個通道號,1000時指示溫度傳感器,1111為DMA終止信號,其他情況保留。
?。?)ADCCON3用于給出ADC狀態(tài)指示位,只有第7位為BUSY位,其它位保留,BUSY位為只讀位,在一個有效的ADC轉(zhuǎn)換或校驗周期中,該位為“1”,當(dāng)轉(zhuǎn)換或校驗結(jié)束后,該位清“0”。
3.4 D/A轉(zhuǎn)換器
ADuC812包含兩個12位的D/A轉(zhuǎn)換器,每個D/A轉(zhuǎn)換器可用于轉(zhuǎn)換12位或8位數(shù)據(jù),兩個D/A轉(zhuǎn)換器共用一個控制寄存器DACCON,每個轉(zhuǎn)換器還有兩個數(shù)據(jù)寄存器,實現(xiàn)A/D轉(zhuǎn)換的12位數(shù)據(jù)在寄存器中是右調(diào)整,低8位在DACxL寄存器中,高4位在DACxH的低4位中,控制寄存器DACCON各位
的作用如下所示:
其中,MODE用于控制DAC轉(zhuǎn)換的模式,“1”為8位模式,“0”為12位模式;RNG1、RNG0用于輸出范圍控制,“1”為0~VDD,“0”為0~VREF;CLR1、CLR0為輸出清除位,“0”使輸出強(qiáng)迫為0V,“1”使輸出正常;SYNC為兩通道輸出同步控制位,為“1”時,改寫DACxL寄存器,輸出即產(chǎn)生變化,要使兩通道同步變化,須在SYNC為“0”時,更新兩個通道的DACxL/H寄存器,然后使SYNC位置“1”,兩通道同步更新輸出值;PD1、PD0為節(jié)電模式位,“0”關(guān)閉相應(yīng)通道的D/A轉(zhuǎn)換,“1”打開D/A轉(zhuǎn)換。
D/A轉(zhuǎn)換器的參考電壓可由DACCON控制寄存器通過軟件選擇VREF或VDD,使輸出電壓范圍分別為0~VREF或0~VDD,D/A轉(zhuǎn)換的響應(yīng)時間小于15μs。
4 應(yīng)用
基于ADuC812的諸多特點(diǎn),如果加上必要的外部信號調(diào)理電路,就可以構(gòu)成一個完整實用的數(shù)據(jù)采集及控制系統(tǒng),并且系統(tǒng)的硬件結(jié)構(gòu)非常簡單。
圖1是一個由ADuC812構(gòu)成的動平衡機(jī)測量系統(tǒng)?! ?nbsp;
轉(zhuǎn)子在旋轉(zhuǎn)過程中,由于不平衡而產(chǎn)生離心力引起擺架系統(tǒng)振動,動平衡機(jī)通過傳感器將此機(jī)械振動量變成電信號,然后經(jīng)平面分離、衰減和定標(biāo)調(diào)整、濾波放大等處理電路,最后由指示儀表進(jìn)行顯示。動平衡機(jī)在平衡轉(zhuǎn)子時,轉(zhuǎn)子的任一平面上有不平衡量,必然要在左右兩個支承上同時引起振動,振動的大小可以通過左、右兩個傳感器測量出來,設(shè)m1r1和m2r2為左右校正面上的不平衡量,左校正面上的單位不平衡量在左右兩端引起的振動分別為αL1和αR1,右校正面上的單位不平衡量在左右兩端引起的振動分別為αL2和αR2,左右兩端總的振動為VL和VR,如圖2所示,則有,
式中,Δ=αL1αR2-αR1αL2是方程組的系數(shù)行列式,如果通過分壓電路,將右端的振動量取出和左端的振動量相減,則左端的不平衡量m1r1只與左端的振動VL有關(guān),只是與左端不平衡量大小有關(guān)的一個標(biāo)量,通過定標(biāo)設(shè)定可以補(bǔ)償它們。這樣就消除了右端的不平衡量對左端的影響,同樣也可以消除左端的不平衡量對右端的影響,通過信號調(diào)理電路,可完成對信號的衰減控制、平面分離、信號放大以及電平的偏置,使輸出信號既包含交流的振動信號,又包含直流的偏置電平。因A/D轉(zhuǎn)換電路是單電源器件,只能轉(zhuǎn)換0~VREF的正電壓,不能轉(zhuǎn)換負(fù)電壓,通過信號調(diào)理電路后的振動信號在經(jīng)過相敏檢波后,輸出的是正的直流電壓,滿足A/D轉(zhuǎn)換的要求。
經(jīng)過R00和R900相敏檢波,可將右端的振動信號VR在00和900方向上進(jìn)行分解,設(shè)分別為VR0和VR90,而經(jīng)過L00和L900相敏檢波,可將左端的振動信號VL在00和900方向上進(jìn)行分解,設(shè)分別為VL0和VL90,則左右兩端的振動的幅值分別為:
因此,相敏檢波后,得到了左右兩端兩個相位差為90°的分量,對它們進(jìn)行A/D轉(zhuǎn)換后,由MCU分別計算左右兩端的幅值和相角,振動的幅值|VL|和|VR|反映了左右兩端振動的大小,通過|VL|和|VR|的計算,可解算出左右兩端不平衡量的大小,而振動的相位ΦL和ΦR反映了不平衡量所處的位置,相角的計算可求出不平衡量所在的相位,指示出重點(diǎn)或輕點(diǎn)的相位位置。
轉(zhuǎn)子的轉(zhuǎn)速由外部中斷0腳控制定時/計數(shù)器0的計時時間來實現(xiàn),由8051的定時/計數(shù)器在工作方式0和方式1的結(jié)構(gòu)可看出,當(dāng)TCON的TR0位為1,TMOD的GATE位為1,且T0工作于定時方式時,內(nèi)部振蕩信號經(jīng)過12分頻后給T0提供時鐘信號,T0計數(shù)與否與外部中斷0的電平高低有關(guān),如果INT0=0,T0不計數(shù),如果INT0=1,T0開始計數(shù),這樣就可測量脈沖寬度,通過光電頭將轉(zhuǎn)子的轉(zhuǎn)速轉(zhuǎn)換成脈沖信號后再2分頻,得到頻率為轉(zhuǎn)子旋轉(zhuǎn)頻率一半的方波信號,通過方波信號的高電平去控制T0的計數(shù),該數(shù)值為轉(zhuǎn)子的旋轉(zhuǎn)周期,由轉(zhuǎn)子的旋轉(zhuǎn)周期可得到轉(zhuǎn)子的轉(zhuǎn)速大小。
轉(zhuǎn)子轉(zhuǎn)速及不平衡量的計算通過外部中斷0完成,光電頭產(chǎn)生的脈沖信號經(jīng)2分頻后,得到頻率為轉(zhuǎn)子旋轉(zhuǎn)頻率一半的方波信號,該信號加到INT0上,將外部中斷0設(shè)置成邊緣觸發(fā),在每個方波的下降沿產(chǎn)生中斷,MCU讀取TL0和TH0寄存器值,并將TL0和TH0清零,開始下一次計時,然后根據(jù)TL0和TH0的數(shù)值,計算轉(zhuǎn)子轉(zhuǎn)速,并根據(jù)TL0和TH0中轉(zhuǎn)子旋轉(zhuǎn)周期值的四分之一配置定時/計數(shù)器1的TL1和TH1,定時/計數(shù)器1工作于定時方式,通過定時/計數(shù)器1的中斷由兩路DAC產(chǎn)生相位差為90°兩路方波信號,用于對振動信號的相敏檢波,MCU對ADC0~ADC3進(jìn)行A/D轉(zhuǎn)換,計算左右兩平面的不平衡量的大小和相位,然后將轉(zhuǎn)速及不平衡量的大小和相位送8279進(jìn)行顯示。不平衡量測量的流程圖如圖3所示。該系統(tǒng)用于一臺渦輪轉(zhuǎn)子動平衡機(jī)的改造,收到了預(yù)期的效果。