基于USB接口的數(shù)模轉(zhuǎn)換系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在控制系統(tǒng)中經(jīng)常用到一些模擬信號(hào),通常使用數(shù)模轉(zhuǎn)換器輸出所需的模擬信號(hào)。計(jì)算機(jī)控制數(shù)模轉(zhuǎn)換器需要借助外部總線接口,USB接口是常用的外部總線接口,用來(lái)控制數(shù)模轉(zhuǎn)換器非常便捷。作者以典型的USB接口芯片和D/A轉(zhuǎn)換器芯片為例,詳細(xì)說(shuō)明了基于USB接口的數(shù)模轉(zhuǎn)換系統(tǒng)的電路及程序設(shè)計(jì)方法。
0引言
在控制系統(tǒng)中經(jīng)常需要產(chǎn)生和控制一些模擬信號(hào),而常用的微處理器外部總線接口為數(shù)字信號(hào),無(wú)法直接產(chǎn)生需要的模擬信號(hào),這就用到了D/A轉(zhuǎn)換器。可以通過(guò)USB接口來(lái)控制D/A轉(zhuǎn)換器,使其輸出要求的模擬量電壓或模擬量電流。
USB接口作為微處理器常用的外部總線接口,目前已經(jīng)得到了廣泛的應(yīng)用,采用USB接口減少了開(kāi)發(fā)的時(shí)間、風(fēng)險(xiǎn)以及費(fèi)用,從而用最快捷的方法實(shí)現(xiàn)最經(jīng)濟(jì)的解決方案。
本文以USB接口芯片PDIUSBD12和電壓輸出型D/A轉(zhuǎn)換芯片AD558為例,詳細(xì)闡述了基于USB接口的DAC系統(tǒng)電路及程序設(shè)計(jì)方法。
1 USB接口芯片
PDIUSBD12簡(jiǎn)介本系統(tǒng)選用的USB接口芯片是Philips公司生產(chǎn)的USB1.1接口芯片PDIUSBD12,它是一款性?xún)r(jià)比很高的USB器件,通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口。它還支持本地的DMA傳輸。PDIUSBD12芯片的主要特性如下:。符合USB1.1規(guī)范;。集成了SIE、FIFO存儲(chǔ)器、收發(fā)器以及電壓調(diào)整器;。完全自治的直接內(nèi)存存?。―MA)操作;。集成320字節(jié)多結(jié)構(gòu)FIFO存儲(chǔ)器;。在批量模式和同步模式下均可實(shí)現(xiàn)1MB/s的數(shù)據(jù)傳輸速率;。具有良好EMI特性的總線供電能力;。可通過(guò)軟件控制與USB的連接;。具有可編程的時(shí)鐘頻率輸出;。符合ACPI、OnNOW和USB電源管理的要求;。高于8kV的在片靜電防護(hù)電路;。雙電源操作:3.3±0.3V或擴(kuò)展的5V電源,范圍為3.6~5.5V;所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時(shí)使USB功能在外設(shè)上的應(yīng)用變得容易。低功耗使它可以應(yīng)用于通過(guò)總線供電的外設(shè)。
2 D/A轉(zhuǎn)換芯片
AD558簡(jiǎn)介本系統(tǒng)選用的DAC芯片是ADI公司推出的8位電壓輸出型D/A轉(zhuǎn)換器AD558.電壓輸出型D/A轉(zhuǎn)換器主要特點(diǎn)是沒(méi)有放大部分的延遲,可以做到很高的速度,但負(fù)載能力有限,一般用于高阻抗負(fù)載的場(chǎng)合。
D/A轉(zhuǎn)換所采用的基本方法是將數(shù)字量轉(zhuǎn)化成二進(jìn)制數(shù)據(jù)。其每一位產(chǎn)生一個(gè)相應(yīng)的電壓或者電流,而這個(gè)電壓或者電流的大小正比于相應(yīng)的二進(jìn)制位的權(quán)。最后將這些電壓或者電流相加并輸出。一個(gè)完整的D/A轉(zhuǎn)換器主要包括3部分,即加權(quán)電阻解碼網(wǎng)、數(shù)字量控制的電子開(kāi)關(guān)組合和由運(yùn)算放大器構(gòu)成的電流電壓轉(zhuǎn)換器。D/A轉(zhuǎn)換器的原理如圖1所示。
一般來(lái)說(shuō),并行D/A轉(zhuǎn)換器的數(shù)字一模擬轉(zhuǎn)換速度要比串行D/A轉(zhuǎn)換器要高。并行D/A轉(zhuǎn)換器轉(zhuǎn)換速度快的原因是在數(shù)字量的輸入端,各個(gè)數(shù)字位是同時(shí)輸入到轉(zhuǎn)換器相應(yīng)的端口的。整個(gè)器件的轉(zhuǎn)換時(shí)間取決于電源電壓的建立時(shí)間和各個(gè)權(quán)位的求和時(shí)間。而這些時(shí)間一般都很短,一般可以達(dá)到納秒或微秒量級(jí)。因此,對(duì)于速度要求比較高的場(chǎng)合,應(yīng)該優(yōu)先選用并行D/A轉(zhuǎn)換器。
在AD558型D/A轉(zhuǎn)換器中,電子開(kāi)關(guān)組和輸入二進(jìn)制數(shù)D0~D7相對(duì)應(yīng)。當(dāng)某個(gè)二進(jìn)制位為1時(shí),對(duì)應(yīng)的電子開(kāi)關(guān)閉合,基準(zhǔn)電壓Vref連接加權(quán)電阻解碼網(wǎng)絡(luò),使該支路電阻上有電流通過(guò);當(dāng)某個(gè)二進(jìn)制位為0時(shí),對(duì)應(yīng)的電子開(kāi)關(guān)斷開(kāi),該支路電阻上便無(wú)電流通過(guò)。加權(quán)電阻解碼網(wǎng)絡(luò)各個(gè)分支的電阻值與輸入的二進(jìn)制數(shù)據(jù)D0~D7的權(quán)成反比關(guān)系。權(quán)大的電阻值小,權(quán)小的電阻值大。D/A轉(zhuǎn)換器根據(jù)各個(gè)權(quán)位的情況以及輸入的二進(jìn)制數(shù),通過(guò)求和及電流電壓轉(zhuǎn)換電路,得到總和的模擬電壓值并輸出。
在D/A轉(zhuǎn)換器中,數(shù)字量的位數(shù)也反映了D/A轉(zhuǎn)換器的分辨率,即輸入數(shù)字量發(fā)生單位數(shù)字的變化時(shí),對(duì)應(yīng)的模擬量輸出值的改變。對(duì)于8位電壓型D/A轉(zhuǎn)換器,輸入數(shù)字量發(fā)生單位變化時(shí),模擬量輸出的改變?yōu)閂/255,其中V電壓輸出的滿量程。
AD558的主要性能指標(biāo)如下:。8位并行接口;。電壓的輸出范圍0~+10V;。相對(duì)精度±(1/2)最低有效位;。輸出轉(zhuǎn)換建立時(shí)間1us;。使用單一電源供電,電源電壓范圍+4.5~+16.5V;。內(nèi)部具有基準(zhǔn)電壓源,無(wú)須外接基準(zhǔn)源;。內(nèi)部集成有數(shù)據(jù)鎖存器;。75mW低功耗。
3電路設(shè)計(jì)
本系統(tǒng)采用USB控制芯片PDIUSBD12和D/A轉(zhuǎn)換器AD558來(lái)實(shí)現(xiàn)DAC控制。計(jì)算機(jī)可以通過(guò)USB接口控制AD558輸出所需的各種模擬信號(hào)。由于計(jì)算機(jī)的USB接口具有向外供電的功能,因此這里采用USB接口的電源為PDIUSBD12芯片供電。USB接口部分的電路原理圖如圖2所示。
AD558的數(shù)據(jù)總線連接到PDIUSBD12.AD558工作于0~+10V模擬電壓輸出模式。電容C9和C10用于改善輸出波形。AD558采用單一的12V供電,不需要外接基準(zhǔn)電壓源。數(shù)模轉(zhuǎn)換部分的電路原理圖如圖3所示。
在制作PCB的時(shí)候,應(yīng)遵守高速USB印刷電路板的要求。為了達(dá)到較高的信號(hào)質(zhì)量,需要采用4層板甚至6層板來(lái)布線。將USB芯片放置在信號(hào)層,并盡可能離GND層近些。
USB接口中的D+和D-用于高速的USB數(shù)據(jù)傳輸,因此這兩根信號(hào)線直接影響USB接口電路的穩(wěn)定性,在印制電路板布線的時(shí)候需要仔細(xì)布置。D+和D-的走線應(yīng)盡可能短且相等,并且合理設(shè)置D+和D-的導(dǎo)線寬度和間距。D+和D-之間的差分阻抗應(yīng)該為90W±10%。保證在D+和D-信號(hào)的下面是完整的GND層。中間斷開(kāi)的GND層將導(dǎo)致差分阻抗不匹配,并增加信號(hào)的干擾。
4程序設(shè)計(jì)
上位機(jī)的程序在VisualC++6.0編譯環(huán)境中進(jìn)行設(shè)計(jì),分為設(shè)備初始化、USB設(shè)備檢測(cè)、輸出電壓三個(gè)部分,程序代碼分別介紹如下。
4.1設(shè)備初始化
需要先初始化USB設(shè)備變量、控制端點(diǎn)變量和線程變量。主要是在OnInitDialog()函數(shù)中進(jìn)行。
4.3輸出電壓
用于從文本框中讀取輸入的電壓值,然后轉(zhuǎn)換為浮點(diǎn)數(shù),接著轉(zhuǎn)換成最接近的并行數(shù)據(jù),最后通過(guò)自定義請(qǐng)求輸出給USB設(shè)備。
5小結(jié)
本文通過(guò)一個(gè)完整的實(shí)例,講解了如何使用USB接口芯片實(shí)現(xiàn)上位機(jī)控制D/A轉(zhuǎn)換輸出模擬電壓。D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換成為模擬信號(hào),可以利用成熟的數(shù)字電路技術(shù)實(shí)現(xiàn)控制,應(yīng)用非常廣泛。熟練掌握這種方法以后對(duì)于相關(guān)領(lǐng)域的設(shè)計(jì)工作十分有用。