??? 關鍵詞:AT89CX051,A/D轉換,電阻電容器(RC)
?
1引言
AT89CX051系列單片機是一種低功耗、高性能的片內含有閃速可編程存儲器的8位CMOS微控制器,使用高密度、非易失存儲技術制造,輸出管腳少,工作電壓范圍寬,內部集成了模擬比較器,與80C51引腳和指令系統完全兼容。該系列芯片將具有多種功能的8位CPU與FPEROM結合在一個芯片上,為很多嵌入式控制應用提供了非常靈活而又價格便宜的方案,其性價比遠高于8751。
由于AT89CX051系列單片機內部不具備A/D轉換功能,使一些需要進行模擬量處理的應用裝置的成本提高,為此,本文介紹一種利用AT89CX051內部比較器及RC阻容器件使AT89CX051能夠處理模擬量的簡單技術。在這種使用少量元件的轉換方法中,分辨率為50mV,精度低于0.1V,轉換時間為7ms或更長,可見它是以損失精度和轉換時間為代價的。但在精度要求不高的應用場合不失為一種有效的方法。
2硬件原理
如圖1所示,實現A/D轉換僅需要兩個電阻、一個電容和一片AT89CX051。AT89CX051的輸出引腳P11的電位從地到Vcc之間擺動,一交替充放電的電容被連接到AT89CX051內部比較器的正向輸入引腳P12上,AT89CX051的檢測時間為電容上電壓達到與施加在內部比較器反向輸入端P13上的被
測電壓相等時所需的時間。顯然,被測電壓是測量時間的函數。
可以看出,該轉換方法的本質就是利用電容的充放電原理。對于典型的電容充放電,其波形的充放電部分相等并在Vc=Vcc/2處轉變,電容上的電壓是一時間函數:
?
![](/article/UploadPic/2009-5/2009510132427257.jpg)
式中,Vc表示時間t內電容上的電壓;Vcc為電源電壓;RC為時間常數,其大小影響波形的形狀。
![](/article/UploadPic/2009-5/2009510132427578.jpg)
![](/article/UploadPic/2009-5/2009510132428790.jpg)
![](/article/UploadPic/2009-5/2009510132428978.jpg)
基于RC的A/D轉換方法中對元件參數的變化比較敏感。如圖2所示,由于電阻、電容值的變化引起了電容上電壓的變化。從圖中可以看出,當電容容量減小時,電容上電壓也相應減小。利用電容充放電的對稱性可以減小器件參數變化對準確度的影響。理由在于充電周期的測量電壓<VCC/2,放電周期的測量電壓>VCC/2,這樣,最大誤差不會超過VCC/2,所以RC參數的確定至關重要。
在確定RC參數之前,必須確定比較器輸出的采樣間隔。采樣間隔應盡可能短,以提高轉換精度,縮短轉換時間。采樣間隔主要受執行時間的限制,而程序代碼的執行速度取決于單片機的時鐘速率。
RC時間常數影響充放電波形的形狀,為使波形最陡段的可分辨率達到希望的值,必須對時間常數進行選擇。充電周期波形的最陡處發生在原點附近,而放電周期的最陡處靠近Vcc。由于波形的對稱性,在充放電周期性中均采用同一時間常數。圖3給出了充電初期電壓和采樣時間的關系曲線。在圖中,△V是希望的轉換器電壓分辨率;△t為采樣間隔;Vc表示電容上的電壓,在圖示比例下表現為線性。采樣點位于電壓當量的中間,曲線的斜率有可能比圖示小,但不可能比圖示大(或降低分辨率)。為了獲得首次采樣要求斜率所需要的最小時間常數,由(1)式得:
![](/article/UploadPic/2009-5/2009510132428586.jpg)
??? 設△V為小分辨率(0.05V),△t為采樣間(2)隔(5μs),計算首次采樣點的RC,取Vc=1/2△V,t=1/2△t
![](/article/UploadPic/2009-5/2009510132428141.jpg)
R與C的積不能小于最小時間常數的計算值,利用誤差為1%的電阻及誤差為5%的電容,即:
![](/article/UploadPic/2009-5/2009510132428157.jpg)
在圖1中,所選電阻值為267kΩ,電容值為2μF則相應的時間常數近似為5.02×10-4。單片機的P11連接了一個5.1kΩ的上拉電阻,該電阻用于補充單片機內部上拉的不足,但它在充放電周期的充放電過程中對時間常數有不利影響,導致充放電周期的非對稱性,產生轉換誤差。為減小這種影響,R標稱值的選擇應遠遠大于上拉電阻值。
時間常數是期望轉換精度和確定電容充放電持續時間的函數,電容充放電的時間越長,整個測量過程要求的采樣次數也就越大。電容充放電的要求時間近似于電容上電壓從漸近線上升到最小電壓當量的一半所需的時間。對于充電,漸近線位于Vcc。由于波形的對稱性,下面的計算值適合于充放電兩個周期,
![](/article/UploadPic/2009-5/2009510132428168.jpg)
由(1)式得,假定分辨率為0.05V,則電容上的電壓為:
![](/article/UploadPic/2009-5/2009510132428545.jpg)
整個測量中,采樣次數的最小值由電容上電壓由(5)式得:
?
![](/article/UploadPic/2009-5/2009510132428371.jpg)
則充電或放電周期的最小采樣次數為:
? 為增加準確度,在充放電周期的充電段測量電壓范圍為0~Vcc/2,放電段為Vcc~Vcc/2,從而使搜索表的數據前面對每個半周期采樣的兩倍。
4算法
搜索表包含與每個采樣點相對應的計算電壓值,對于每半個周期,表中第N個入口(條目)與t=(N-1)時刻的電壓相對應(△t為采樣間隔),對充電的半周期,每個采樣點的電壓通過等式(1)計算,t取值為充電開始到該采樣點的累計時間;對于放電的半周期,每個采樣點的電壓通過下式計算,t的取值為放電開始到該采樣點的累計時間,即:
? 表的內容大小是變化的,它取決于采樣間隔和轉換精度,當分辨率增加時,表中的條目就增加,當分辨率為0.05V時,表中的條目為158。
對充電周期,將等式(1)的t用N△t代替,便可計算出相應采樣點的電壓。這里N表示采樣點數(0~78)。設△t等于5μs的采樣間隔,R=267kΩ,C=2μF,Vcc=5V,則等式(1)變為:
同理,對于放電周期,將等式(10)中的t用N△t代替,其余同上,則等式(10)變為:
在充電周期電壓值為升序,在放電周期為降序,電容上電壓的軌跡即為表的條目順序。
5誤差分析
RC型A/D轉換方法的準確度為±0.1V,但實際上有可能達不到,即使采用精密器件,其參數的變化將會引起±0.104V的誤差。
當Vc=2.5V時,誤差最大,由(5)式:
結果表明,有0.208的變化,或者說最大誤差為±0.104V這種轉換誤差可通過利用更多允許誤差的器件來減小。
2 李大有,姜秀芳.單片微型機硬件、軟件及應用.北京:高等教育出版社,1992
3 吳萬峰,吳萬釗.模糊數學與計算機應用.北京:電子工業出版社,1998
評論