帶嵌入式MCU的8通道12位AD轉(zhuǎn)換器ADuC812及其應(yīng)用
介紹了帶嵌入式MCU的8通道12位A/D轉(zhuǎn)換器ADuC812的結(jié)構(gòu)和使用方法,及其在動(dòng)平衡機(jī)測(cè)量系統(tǒng)中的應(yīng)用。
??? 關(guān)鍵詞:MCU,A/D轉(zhuǎn)換器,ADuC812,動(dòng)平衡機(jī)
1 引 言
A/D轉(zhuǎn)換器的種類很多,不同的應(yīng)用場(chǎ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)(見(jià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)換速率;可通過(guò)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串行接口;帶看門(mén)狗定時(shí)器。
2 管腳說(shuō)明
?? 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)位寫(xiě)入“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ù)字輸出腳,通過(guò)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ǔ)器可以用兩種方式寫(xiě)入,一種是通過(guò)標(biāo)準(zhǔn)的UART串行接口進(jìn)行串行下載寫(xiě)入,當(dāng)PSEN管腳通過(guò)外部電阻接地時(shí),在上電后自動(dòng)進(jìn)入串行下載模式,通過(guò)串行口自動(dòng)從外部開(kāi)發(fā)系統(tǒng)中下載程序;第二種方式和E2PROM的編程方式相同,通過(guò)編程器進(jìn)行并行寫(xiě)入。
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頁(yè),每頁(yè)4字節(jié),通過(guò)6個(gè)特殊功能寄存器來(lái)進(jìn)行存取,即通過(guò)ECON、EADRL以及EDATA1~4來(lái)存取,EADRL寄存器指定要進(jìn)行數(shù)據(jù)存取的頁(yè)地址,ECON控制寄存器可控制EDATA1~4寄存器和EADRL指定的頁(yè)內(nèi)4個(gè)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)交換,而ECON還可控制FLASH數(shù)據(jù)存儲(chǔ)器的擦除、校驗(yàn)等操作,它的控制模式如表1所示。
外部數(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),來(lái)實(shí)現(xiàn)16M字節(jié)地址空間的尋址。它的數(shù)據(jù)指針和8051單片機(jī)不同,是由3個(gè)8位寄存器組成,即DPP(頁(yè)字節(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的參考電源,通過(guò)ADCCON1~3三個(gè)特殊功能寄存器來(lái)控制A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果可保存在ADCDATAH/L二個(gè)特殊功能寄存器中,轉(zhuǎn)換數(shù)據(jù)的低8位保存在ADCDATAL寄存器中,而高4位保存在ADCDATAH的低4位中,ADCDATAH的高四位用來(lái)保存采樣的通道號(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)換模式,各位的功能如下:
AQ1、AQ0選擇ADC采樣保持時(shí)鐘,分頻系數(shù)從ADC時(shí)鐘分頻產(chǎn)生,AQ1-0為00~11時(shí)分別按1、2、4、8分頻。
T2C:定時(shí)器2溢出觸發(fā)位,通過(guò)置位該位,可使用定時(shí)器2的溢出信號(hào)作為ADC轉(zhuǎn)換觸發(fā)信號(hào)。
EXC:ADC轉(zhuǎn)換外部觸發(fā)使能位,通過(guò)置位該位,可由外部引腳(CONVST)來(lái)觸發(fā)ADC轉(zhuǎn)換。
??? (2)ADCCON2控制通道選擇和轉(zhuǎn)換模式:
其中,ADCI為中斷標(biāo)志位;DMA為DMA模式使能位;CCONV為連續(xù)轉(zhuǎn)換模式使能位;SCONV為單次轉(zhuǎn)換模式使能位;CS3、CS2、CS1、CS0為通道選擇位,用戶通過(guò)程序指定須進(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í),改寫(xiě)DACxL寄存器,輸出即產(chǎn)生變化,要使兩通道同步變化,須在SYNC為“0”時(shí),更新兩個(gè)通道的DACxL/H寄存器,然后使SYNC位置“1”,兩通道同步更新輸出值;PD1、PD0為節(jié)電模式位,“0”關(guān)閉相應(yīng)通道的D/A轉(zhuǎn)換,“1”打開(kāi)D/A轉(zhuǎn)換。
D/A轉(zhuǎn)換器的參考電壓可由DACCON控制寄存器通過(guò)軟件選擇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)非常簡(jiǎn)單。
??? 圖1是一個(gè)由ADuC812構(gòu)成的動(dòng)平衡機(jī)測(cè)量系統(tǒng)。
轉(zhuǎn)子在旋轉(zhuǎn)過(guò)程中,由于不平衡而產(chǎn)生離心力引起擺架系統(tǒng)振動(dòng),動(dòng)平衡機(jī)通過(guò)傳感器將此機(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)的大小可以通過(guò)左、右兩個(gè)傳感器測(cè)量出來(lái),設(shè)m1r1和m2r2為左右校正面上的不平衡量,左校正面上的單位不平衡量在左右兩端引起的振動(dòng)分別為αL1和αR1,右校正面上的單位不平衡量在左右兩端引起的振動(dòng)分別為αL2和αR2,左右兩端總的振動(dòng)為VL和VR,如圖2所示,則有,
式中,Δ=αL1αR2-αR1αL2是方程組的系數(shù)行列式,如果通過(guò)分壓電路,將右端的振動(dòng)量取出和左端的振動(dòng)量相減,則左端的不平衡量m1r1只與左端的振動(dòng)VL有關(guān),只是與左端不平衡量大小有關(guān)的一個(gè)標(biāo)量,通過(guò)定標(biāo)設(shè)定可以補(bǔ)償它們。這樣就消除了右端的不平衡量對(duì)左端的影響,同樣也可以消除左端的不平衡量對(duì)右端的影響,通過(guò)信號(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ù)電壓,通過(guò)信號(hào)調(diào)理電路后的振動(dòng)信號(hào)在經(jīng)過(guò)相敏檢波后,輸出的是正的直流電壓,滿足A/D轉(zhuǎn)換的要求。
經(jīng)過(guò)R00和R900相敏檢波,可將右端的振動(dòng)信號(hào)VR在00和900方向上進(jìn)行分解,設(shè)分別為VR0和VR90,而經(jīng)過(guò)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)的大小,通過(guò)|VL|和|VR|的計(jì)算,可解算出左右兩端不平衡量的大小,而振動(dòng)的相位ΦL和ΦR反映了不平衡量所處的位置,相角的計(jì)算可求出不平衡量所在的相位,指示出重點(diǎn)或輕點(diǎn)的相位位置。
??? 轉(zhuǎn)子的轉(zhuǎn)速由外部中斷0腳控制定時(shí)/計(jì)數(shù)器0的計(jì)時(shí)時(shí)間來(lái)實(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)過(guò)12分頻后給T0提供時(shí)鐘信號(hào),T0計(jì)數(shù)與否與外部中斷0的電平高低有關(guān),如果INT0=0,T0不計(jì)數(shù),如果INT0=1,T0開(kāi)始計(jì)數(shù),這樣就可測(cè)量脈沖寬度,通過(guò)光電頭將轉(zhuǎn)子的轉(zhuǎn)速轉(zhuǎn)換成脈沖信號(hào)后再2分頻,得到頻率為轉(zhuǎn)子旋轉(zhuǎn)頻率一半的方波信號(hào),通過(guò)方波信號(hào)的高電平去控制T0的計(jì)數(shù),該數(shù)值為轉(zhuǎn)子的旋轉(zhuǎn)周期,由轉(zhuǎn)子的旋轉(zhuǎn)周期可得到轉(zhuǎn)子的轉(zhuǎn)速大小。
轉(zhuǎn)子轉(zhuǎn)速及不平衡量的計(jì)算通過(guò)外部中斷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清零,開(kāi)始下一次計(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í)方式,通過(guò)定時(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ù)期的效果。
2 房小翠,王金鳳編著.單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù).北京:國(guó)防工業(yè)出版社,1999
評(píng)論
查看更多