這一篇介紹D/A轉換原理以及在TX-1C上的接線方式(實現方法),再用一個例子來加深理解。
D/A轉換原理及參數指標
1.基本原理
數字量是二進制代碼數位組合而來的,每位都有一定的權重,在D/A轉換中,怎么樣把這些權重以合適的方法表示出來是轉換的關鍵。
為了讓數字量轉換成模擬量,必須將每一位代碼按其權重的大小轉換為相應的模擬量,然后再把這些模擬量相加。D/A轉換的示意圖如下:

即輸入相應的二進制數,得出一個模擬量的輸出,而作為一個三位的轉換,模擬量與數字量的對應關系可以用下圖來表示。在右圖中D分別對應了相應的V0 。
?

下面介紹集中D/A轉換器,他們思路大致相同,常用的分別有這幾類:
1.權電阻D/A轉換
如果一個n位二進制數用D n = d n ? 1 d n ? 2 d n ? 3 … d 1 d 0 來表示,那它從高位到低位的權重分別為2 n ? 1 ,2 n ? 2 … 如果可以通過電阻阻值的不同來對各支路進行處理最后加和,應該是可以達到預期效果的。下來展示一個4位的權網絡轉換電路。

這其中d i 的值可以為0或1,表示開關的打開與閉合,之后通過一個求和放大器輸出相應的模擬量。
因為是反相放大器,故推導過程如下:

從推導過程可發現當VREF為正電壓時最后導出的結果為負值。故在運用中向VREF導入負值就可。
這個電路的問題是電阻的值之間相差可能過大,可能會引起誤差,另外開關應該也是有阻值的,也會帶來分壓的問題。下面是基于此問題的改進版電路
2.倒T形電阻D/A
這里只用了兩種電阻R/2R,但通過并聯分流同樣實現了電流的加和。

且此電路中的2R電阻均接地或虛地,這樣做的的好處是流經2R電阻的電流與開關位置無關,是一個確定的值。通過進一步推導可得:

注意也要對模擬開關導通電阻的阻值做限制,不然會出現電流不準確的情況。
3.權電流D/A(利用電流源)
倒T型D/A中一旦開關或電阻的阻值沒有保持二倍關系,電流關系就會隨之變化,不太穩定。采取進一步的改進方案。
采用恒流源就可以避免電阻阻值對電路的影響。

相應分析如下,可發現輸出量是正比于輸入的數字量的。

4.雙極性輸出D/A
考慮到在實際情況中常把二進制數轉換為補碼的形式,則若把原碼輸入后對應的數再轉換為轉化為補碼時偏移的輸出就更完善了。對應關系如下。

且由于之前的電路只能單極輸出,不滿足現在的需求,可通過在運放負極加一個帶有V B ( + ) 和R的偏置電路解決。下面引出的VREF(?) 當然是負的,這樣就能實現原碼轉化為補碼并雙極輸出。
電路圖如下:

D/A的參數指標與A/D相差不大,在此不作贅述。
因采取電流輸出方式,有IOUT1和IOUT2兩個輸出接口,引腳分布圖如下:

出現了兩個新的引腳XFER和ILE。
XFER為數據傳輸控制信號輸入端,ILE 為鎖存允許段,另外Rfb為反饋電阻端,與IOUT1端接有一電阻??纯词謨陨系慕泳€,大概清楚除了數據總線外還要把哪些端口與控制總線相連。

其內部結構如下圖,可看到CS和WR1相與后再和ILE相與接至鎖存器,故這個輸入鎖存器應當擁有三態功能,且三個接口都有效時才能傳送數據。關注DAC寄存器上的連接線,XFER 起到了控制另外一個寫入端的作用。

TX-1C實驗板上將DAC外圍電路接為直通方式(其可以雙緩沖,單緩沖或者直通),同樣的道理,我們需要研究它的接線以及操作時序圖。

操作時序圖相較于A/D的改變就是將V0換為了IOUT1,且多了ILE鎖存允許的引腳,其余相同。

現用一道例題來融會貫通所學知識。

分析:1.需要用sbit定義蜂鳴器,dula,wela,以及WR,CS的引腳
2.蜂鳴器的警報用高低電平控制,則發光二極管D12流程為滅→亮 →滅 兩個過程各需要2.5s
3.又說是均勻點亮/熄滅,則考慮找一個步進,定義好中間變量且將系統初始化后,用大循環分別對這兩種情況進行處理(滅→亮/亮→滅 )
4.對于步進n要有一個計算,之后需要delayms(2500ms/n)
具體程序如下:


電子發燒友App
































評論