新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051F的模數(shù)轉(zhuǎn)換及直流電機(jī)驅(qū)動(dòng)系統(tǒng)中的應(yīng)用

基于C8051F的模數(shù)轉(zhuǎn)換及直流電機(jī)驅(qū)動(dòng)系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2012-05-24 來(lái)源:網(wǎng)絡(luò) 收藏

1引言

本文引用地址:http://2s4d.com/article/148994.htm

隨著微型計(jì)算機(jī)的迅速發(fā)展,單片機(jī)的性能也大大增強(qiáng)。本文介紹SiliconLabs公司的8位單片機(jī)001系列,該系列器件內(nèi)部集成了A/D器,這給測(cè)量模擬信號(hào)帶來(lái)了極大方便。利用單片機(jī)自身的PWM口可實(shí)現(xiàn)對(duì)數(shù)字的控制,提高了控制精度,大大簡(jiǎn)化了電路,符合小型化和低功耗的設(shè)計(jì)要求。

2ADC的內(nèi)部結(jié)構(gòu)和特點(diǎn)

001/2/5/6/7系列自帶一個(gè)9通道的可配置模擬開(kāi)關(guān)(AMUX),一個(gè)可編程增益放大器(PGA)和一個(gè)100kS/s,12位分辨率的逐次逼近型ADC,ADC還集成了跟蹤保持電路和可編程窗口檢測(cè)器。AMUX、PGA、方式和窗口檢測(cè)器都可通過(guò)軟件對(duì)特殊功能寄存器的設(shè)置來(lái)實(shí)現(xiàn)。模擬多路開(kāi)關(guān)AMUX中的8個(gè)通道用于外部測(cè)量,第9通道內(nèi)部接至片內(nèi)溫度傳感器。采樣的模擬量由多路開(kāi)關(guān)配置后進(jìn)入可編程放大器。值得注意的是,PGA的增益對(duì)溫度傳感器也起作用。PGA增益可以用軟件編程為0。5、1、2、4、8或16,復(fù)位時(shí)的默認(rèn)增益為1。可以對(duì)AMUX編程為工作在差分方式或單端方式。復(fù)位后AMUX的默認(rèn)方式為單端輸入。ADC功能框圖如1所示。

3ADC工作原理

從外圍設(shè)備中采集出來(lái)的模擬量被選通后,由采樣和保持電路通過(guò)PGA增益放大,經(jīng)過(guò)一個(gè)12位的逐次逼近寄存器(SAR)轉(zhuǎn)化為數(shù)字量,具體過(guò)程是將二進(jìn)制規(guī)則變化的參考電壓逐次與模擬輸入電壓作比較,以尋找一個(gè)與輸入電壓最接近的參考電壓,最后在逐次逼近寄存器(SAR)中獲得12位的結(jié)果。

4初始化設(shè)置

設(shè)置寄存器REF0CNR的0位選擇是否內(nèi)部電壓基準(zhǔn)緩沖器,設(shè)置AMUX配置寄存器A-MUX0CF以選擇模擬端口的輸入方式。通道選擇寄存器AMUX0SL的低3位用于選擇0~7個(gè)通道或者溫度傳感器(AMXAD0),配置寄存器ADC0CF用來(lái)設(shè)置SAR轉(zhuǎn)換時(shí)鐘和ADC內(nèi)部放大增益。控制寄存器ADCOCN用于設(shè)置ADC啟動(dòng)方式、ADC窗口比較中斷及ADCOH和ADCOL的對(duì)齊方式。最后將ADCEN置1,使能ADC,準(zhǔn)備轉(zhuǎn)換數(shù)據(jù)。寄存器ADCOCN的內(nèi)容如圖2所示。

5ADC的啟動(dòng)方式

A/D轉(zhuǎn)換的啟動(dòng)方式有4種,由ADC0CN的ADC啟動(dòng)轉(zhuǎn)換方式選擇位(ADSTM1,ADSTM0)的狀態(tài)決定。轉(zhuǎn)換觸發(fā)源有:

1)寫(xiě)1到ADC0CN的ADBUSY位;

2)定時(shí)器3溢出(即定時(shí)的連續(xù)轉(zhuǎn)換);

3)外部ADC轉(zhuǎn)換啟動(dòng)信號(hào)的上升沿,CNVSTR;

4)定時(shí)器2溢出(即定時(shí)的連續(xù)轉(zhuǎn)換)。

向ADBUSY寫(xiě)1方式提供在需要時(shí)用軟件控制ADC啟動(dòng)轉(zhuǎn)換的性能。ADBUSY位在轉(zhuǎn)換期間置1,轉(zhuǎn)換結(jié)束后復(fù)0。ADBUSY位的下降沿觸發(fā)一個(gè)中斷(當(dāng)被允許時(shí))并置1中斷標(biāo)志ADCINT。注意:當(dāng)轉(zhuǎn)換是由軟件(on-demand)啟動(dòng)時(shí),應(yīng)查詢(xún)ADCINT標(biāo)志(而不是ADBUSY)判斷轉(zhuǎn)換何時(shí)結(jié)束。轉(zhuǎn)換結(jié)果保存在ADC數(shù)據(jù)字的MSB和LSB寄存器:ADC0H和ADC0L中。轉(zhuǎn)換數(shù)據(jù)在寄存器對(duì)ADC0H:ADC0L中的存儲(chǔ)方式可以是左對(duì)齊或右對(duì)齊,由ADC0CN寄存器中ADLJST位的編程狀態(tài)決定。

6ADC可編程窗口檢測(cè)器

8051中的ADC可編程窗口檢測(cè)器非常有用。它不停地將ADC輸出與用戶(hù)編程的限制量進(jìn)行比較,并在檢查到越限條件時(shí)通知控制器,這在中斷的系統(tǒng)中尤其有效,既可以節(jié)省代碼空間和CPU帶寬,又能提供快速響應(yīng)時(shí)間。窗口檢測(cè)器中斷標(biāo)志(ADCOCN中的ADWINT位)也可被用于查詢(xún)方式。參考字的高字節(jié)和低字節(jié)被裝入到ADC下限(大于)和ADC上限(小于)寄存器(ADC0GTH、ADC0GTL、ADC0LTH和ADC0LTL)。注意,窗口檢測(cè)器標(biāo)志即可以在測(cè)量數(shù)據(jù)位于用戶(hù)編程的極限值以?xún)?nèi)時(shí)有效,也可以在測(cè)量數(shù)據(jù)位于用戶(hù)編程的極限值以外時(shí)有效,這些全部取決于ADC0GTx和ADC0LTx的編程值。

7實(shí)際

圖3是測(cè)速發(fā)與單片機(jī)的接口電路。在該系統(tǒng)中,通過(guò)單片機(jī)口產(chǎn)生PWM信號(hào)控制的轉(zhuǎn)速。在電機(jī)的軸上安裝直流測(cè)速發(fā)電機(jī),用來(lái)測(cè)量電動(dòng)機(jī)的轉(zhuǎn)速,測(cè)速發(fā)電機(jī)輸出是模擬量,所以必須經(jīng)過(guò)A/D轉(zhuǎn)換將輸出信號(hào)轉(zhuǎn)換成數(shù)字測(cè)速信號(hào),通過(guò)單片機(jī)將測(cè)速信號(hào)和給定的PWM信號(hào)進(jìn)行比較,用于加速或減速。從而形成電動(dòng)機(jī)的閉環(huán)控制系統(tǒng)。

該電路采用了C8051005單片機(jī)。用模擬通道0采集信號(hào),采用2。4V內(nèi)部參考電壓,模擬輸入端具有限流和限壓保護(hù)。直流測(cè)速發(fā)電機(jī)要與被測(cè)電機(jī)同軸,兩者以相同轉(zhuǎn)速轉(zhuǎn)動(dòng),測(cè)速發(fā)電機(jī)的輸出電壓必須經(jīng)過(guò)RC濾波處理后才能得到穩(wěn)定的直流電壓。R1為限壓電阻,調(diào)整滑動(dòng)變阻器的位置使測(cè)速電機(jī)達(dá)到最大轉(zhuǎn)速時(shí),滑變抽頭采樣得到的電壓為2。4V。通過(guò)脈寬調(diào)制PWM控制開(kāi)關(guān)管工作的開(kāi)關(guān)狀態(tài),柵極輸入高電平時(shí),開(kāi)關(guān)管導(dǎo)通,12V電壓加在電動(dòng)機(jī)兩端,時(shí)間為t1;柵極輸入低電平時(shí),開(kāi)關(guān)管截止,電動(dòng)機(jī)兩端電壓為0,時(shí)間為t2??傻玫秸伎毡萢=t1/(t1+t2)。在t2時(shí)段內(nèi),電源斷開(kāi),電動(dòng)機(jī)電感通過(guò)二極管D1釋放電能,D1起到續(xù)流作用。

圖4為產(chǎn)生PWM波的程序圖,圖5為調(diào)速子程序的流程圖。

CA生成PWM波主要是調(diào)節(jié)PCA0CPH0的值改變PWM波的占空比a=[256-(PCA0CPH0)]/256。下面是調(diào)速子程序,設(shè)電機(jī)給定值存放在50H單元中。

8進(jìn)行A/D轉(zhuǎn)換時(shí)應(yīng)注意的問(wèn)題

8。1信號(hào)處理

內(nèi)部基準(zhǔn)電壓的范圍為AGND~AV±0。3V,任意引腳在任何情況下(不論ADC或PGA的設(shè)置如何)必須使其輸入電壓保持在AGND和AV+之間,如果測(cè)試的模擬輸入電壓范圍為0~5V,必須使信號(hào)衰減才能輸入ADC引腳。這里用到8051內(nèi)部的PGA(可編程增益放大器)。如果選用放大倍數(shù)為0。5倍,那么信號(hào)將衰減一半。如使用外部1。25V參考電壓,PGA增益GAIN為0。5,允許的電壓輸入范圍是0V~2。5V,AIN電壓還必須在AGND和VREF/GAIN之間。假設(shè)一個(gè)12位的ADC,AINx引腳的輸人電壓小于AGND,結(jié)果將是0x000;如果輸入電壓大于(VREF/GAIN),結(jié)果將是0xFFF。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉