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





