12位數(shù)模轉(zhuǎn)換器DAC7311的通信控制及其電流驅(qū)動電路設(shè)計
摘要:采用TI公司的TMS320F28335系列DSP作為主控制器與12bit的數(shù)模轉(zhuǎn)換芯片DAC731進行串行通信,通信采用SPI方式。通過CCS軟件編程實現(xiàn)數(shù)模轉(zhuǎn)換芯片DAC7311的輸出電壓的的設(shè)定,且利用INA132U差分運放及其后端電路構(gòu)成的電壓到電流的轉(zhuǎn)換電路實現(xiàn)驅(qū)動電流的輸出,電流輸出范圍可以從0~20mA不等。
關(guān)鍵字:DSP;SPI;數(shù)模轉(zhuǎn)換芯片
在工業(yè)現(xiàn)場,存在許多的電流驅(qū)動型的電氣設(shè)備,儀器儀表,例如機車用的雙針速度表等。而且與電壓信號相比,電流對噪聲并不敏感,所以如果用電流來傳輸信號的話可以避免傳輸線受到噪聲的干擾造成系統(tǒng)不穩(wěn)定甚至誤操作。在工業(yè)自動化控制系統(tǒng),及儀器儀表、傳感器應(yīng)用中,廣泛采用4~20mA電流來傳輸控制、檢測信號。本文就是針對此類設(shè)備和儀器儀表,闡述設(shè)計輸出驅(qū)動電流范圍從0~20mA的方法。
1 硬件設(shè)計分析
1.1 總體結(jié)構(gòu)說明
本設(shè)計主控制器件選擇TI公司的TMS320F28335.數(shù)模轉(zhuǎn)換芯片選擇TI公司的DAC7311芯片,后端的差分放大器選擇INA132U。整個設(shè)計的結(jié)構(gòu)框圖為圖1所示。
[!--empirenews.page--]
1.2 主控制器使用分析
本設(shè)計數(shù)模轉(zhuǎn)換器DAC7311與主控制器的接口采用SPI (Serial Peripheral Interlface)接口。SPI接口是一種高速串行輸入輸出接口用于CPU和外圍低速器件之間進行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度可達到幾Mbps。
本文主控制器為TMS320F28335系列的DSP。芯片內(nèi)部集成有SPI模塊,與SPI模塊相關(guān)的信號線為SPISIMO;SPISOMI;;SPICLK。本設(shè)計只用到SPISIMO和SPICLK,并且用一個普通的GPIO引腳用作DAC7311的同步脈沖輸入信號(DACS)。本設(shè)計SPI模塊采用主模式工作,波特率選擇250Kbps,傳輸?shù)臄?shù)據(jù)位數(shù)為16位,時鐘方式為無延遲的上升沿方式(Rising edge wilbout delay)即SPI模塊在上升沿的前半周期發(fā)送數(shù)據(jù),在上升沿接收數(shù)據(jù)。主控制器控制著整個設(shè)計的工作流程,首先它給從器件DAC7311的同步輸入脈沖引腳輸入低電平DACS,選中DAC73 11并對其進行初始化。然后通過SPI模塊設(shè)定串行傳輸時鐘脈沖,并且也決定著從器件數(shù)模轉(zhuǎn)換器DAC7311的波特率。SPI模塊的內(nèi)部結(jié)構(gòu)框圖如圖2所示。如圖可知,在時鐘脈沖的控制下,數(shù)據(jù)從SPIDAT移位寄存器按既定的波特率從SPISIMO引腳按位移出數(shù)據(jù)入DAC7311的數(shù)據(jù)輸入引腳。
1.3 DAC7311數(shù)模轉(zhuǎn)換芯片介紹
DAC7311芯片是一個12bit的,低功率、單通道、電壓輸出的數(shù)模轉(zhuǎn)換芯片。采用通用的三線串行接口,時鐘頻率可達50MHz與標準的SPI,QSPI,數(shù)字信號處理器(DSP)的接口兼容。
它內(nèi)部的數(shù)模轉(zhuǎn)換采用的是電阻網(wǎng)絡(luò)的組成形式。它的結(jié)構(gòu)框圖如圖3所示,其中AVDD由外部的基準源提供了。二進制位流從DAC Regist er移入芯片,通過電阻網(wǎng)絡(luò)(Register String)轉(zhuǎn)換為相應(yīng)的電壓,通過輸出放大器輸出。
DAC7311的輸入位流為標準的二進制位流,其輸出電壓計算公式為
其中n為轉(zhuǎn)換精度(本設(shè)計為12);D為輸入的二進制流對應(yīng)的十進制值:AVDD為外部基準源電壓(本設(shè)計為4.096V)。
1.4 V/I轉(zhuǎn)換電路的分析
本部分電路主要是對數(shù)模轉(zhuǎn)換芯片DAC7311的電壓輸出V_OUT進行處理,把電壓輸出轉(zhuǎn)換為電流輸出。在V/I轉(zhuǎn)換電路中采用一個差分放大器INA132U作為輸入端,能夠起到抑制共模和零點漂移的作用。電路原理圖如圖4所示。Q1和Q2組成復(fù)合管,電流放大倍數(shù)為兩個管子各自的電流放大倍數(shù)的乘積,有效的增大了電流的輸出范圍。并且與采用單管相比可以大大緩解工作負荷以及發(fā)熱量。U2為運算放大器,采用射極跟隨的接法。它的輸入阻抗為無窮大,輸出阻抗為0。這樣,就能夠起到增大輸出驅(qū)動電流的作用。因為,從R1(精密電阻)支路流出的電流就全部從負載Rload流出以驅(qū)動后級的儀表設(shè)備。
[!--empirenews.page--]
根據(jù)圖4以及運算放大電路的“虛短”和“虛斷”的概念可以得出輸出驅(qū)動電流的計算公式為
從公式中可以得出輸出的電流只與DAC7311的輸出電壓V_out和精密電阻R1大小有關(guān)。其中由軟件編程設(shè)定,如果R1確定,那么電流的輸出范圍就完全可以通過軟件編程設(shè)定。
2 軟件設(shè)計分析
本設(shè)計的軟件集成開發(fā)環(huán)境為CCS3.3 (Code Composer Studio 3.3),采用查詢的方式進行軟件設(shè)計。根據(jù)DAC7311的datasheet可知,其輸入移位寄存器為16位,故要求F28335的SPI模塊發(fā)送的數(shù)據(jù)為16位,且最高兩位(PD1,PD0)為模式選擇位,見表1,本設(shè)計采用正常模式。接下來的12 bit為數(shù)據(jù)位,最后兩位任意。
軟件設(shè)計的流程圖如圖5所示。
SPI初始化子程序主要是對F28335中與SPI模塊及本程序相關(guān)的GPIO口進行設(shè)置:SPI的FIFO寄存器設(shè)置;SPI控制及狀態(tài)寄存器進行配置。通過公式(1)和(2),得出不同的輸出電流對應(yīng)的二進制值sdata。并通過軟件編程給變量sdata復(fù)不同的16位二進制數(shù)值(最高兩位為“00”)。
3 數(shù)據(jù)分析
由于受DA轉(zhuǎn)換器的轉(zhuǎn)換精度,分辨率,建立時間,十進制與二進制的轉(zhuǎn)換誤差,以及其他元器件特別是精密電阻R1的精度的影響,理論值與實測值有一定的誤差。表2為不同的12位二進制值對應(yīng)的輸出電流值(R1=125Ω+0.1%),測試工具為福祿克FLUKE741B校準器(電流測量精度及范圍為:30.000 mA 0.01%+0.015%)。
4 結(jié)束語
從表2中的測量數(shù)據(jù)可知,在R1為125Ω±0.1%,輸出電流為0~20mA時,與理論值相比,電流的輸出精度范圍為±1%左右,基本符合一般的電流驅(qū)動型儀器儀表(如機車的雙針速度表)的使用要求。