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