|
|
| <!--插入廣告JS代碼--> |
摘要:介紹了串行A/D、D/A芯片 MAX1270和DAC7734E,對于DSP上的串行接口McBSP(多通道緩沖串口)進行了細致的說明,給出了TMS320C6713與串行A/D、D/A接口芯片的硬件設計及軟件實現。
關鍵詞:DSP、MAX1270、DAC7734、多通道緩沖串口。
1.引言
隨著數字化時代的到來,數字信號處理逐漸成為一個核心的概念。作為一種數字信號處理器件,DSP專門用于處理數字信號。而自然界的信號多以模擬信號形式存在,若進行數字信號處理,則必須經過模數和數模的轉換過程,所以在一個以DSP為核心的信號處理系統,必然會涉及A/D和D/A的接口問題。
在DSP與A/D或D/A芯片連接時經常采用兩種接口方式:串口和并口。并行接口的優勢在于資源豐富,但是使用過程中要加入譯碼電路,不僅連線復雜,增加了布線的面積,而且一定程度上引入了干擾和不穩定的因素。串行接口則連線簡單、布線少,相較于并行接口更穩定,但硬件資源較少。對于一些信號處理系統,基于連線簡單、結構更加緊湊的考慮,經常會采用串行接口來控制A/D和D/A。
作為TI公司推出的新一代浮點DSP芯片,TMS320C6713已經在圖像處理、數字信號處理以及自動控制等領域得到了廣泛的應用。在前幾個系列的基礎上,TMS320C6713提供了增強的串口--------McBSP與外界進行通信或與串行芯片進行接口,利用它與串行的A/D、D/A接口具有連接簡單、可靠性好的優點。
本文將詳細介紹基于TI公司C6000系列DSP的串口應用連接方案。主要包括:A/D、D/A芯片介紹,DSP通用串行接口McBSP的介紹,并對A/D、D/A的連接方案進行了詳細描述。
2.A/D、D/A芯片簡介
2.1 A/D轉換芯片MAX1270
MAX1270芯片是MAX公司生產的8通道的12位串行A/D轉換芯片,可以采用內部或外部電壓參考,具有4個軟件可編程的輸入范圍。模擬輸入通道共有 8個,最大的采樣率可以高達110kbps,采樣時鐘內部或外部可選。輸入電壓具有保護,最大可以承受+/-16.5V的電壓[1]。
作為一種串行的A/D轉換芯片,MAX1270提供與SPI兼容的接口,支持通過三線協議與處理器串行口或SPI接口器件進行連接。
作為一種支持SPI協議的芯片,它的主要的管腳有:SCLK:串行時鐘輸入;/CS:片選信號,僅僅為低時數據才可以輸入;DIN:串行數據輸入;SSTRB:轉換結束時串行脈沖輸出。
2.2 D/A轉換芯片DAC7734E
DAC7734E是由BB公司推出的16位串行D/A轉換芯片,其轉換輸出范圍亦是軟件編程可選的。具有雙緩沖的輸入結構,恰當采用可以提高轉換速度。帶有4個輸出通道以供選擇。它接收24位的串行數據輸入,其中最高的兩位在傳輸數據時,用作通道選擇,最低的16位則為要轉換的數據[2]。
芯片的主要管腳有:CLK:時鐘信號輸入;SDI:串行數據輸入;/LOAD:DAC輸入寄存器裝載信號;LDAC:DAC寄存器裝載控制信號;/CS:片選信號;RST:異步復位信號;RSTSEL:復位選擇模式信號。
3.接口設計
在TMS320C6713中有2個多通道緩沖串口(McBSP),它是一種同步串行接口,支持多種通信方式和SPI協議,并且可以根據設計者的不同需求進行配置,使用非常靈活。
每個McBSP包括7個管腳,其功能與名稱如下:DX與DR分別負責串行數據的發送和接受;幀同步信號FSX/FSR負責提供發送/接受幀同步信號;還有3個引腳提供時鐘信號:發送時鐘信號CLKX、接收時鐘信號CLKR、外時鐘輸入CLKS[3]。
數據通過多級緩沖的結構進行數據的發送和接收,CPU與McBSP之間數據傳送方式一共有3類:查詢方式、DMA方式、中斷方式。
SPI協議是一種4根信號線的串行接口協議,包括主/從兩種模式,通過串行數據輸入、串行數據輸出、移位時鐘、從設備使能等四個接口信號完成串行通信。SPI協議的最大特點是由主設備的時鐘信號的出現與否界定通信的發生。
MCBSP在設定為時鐘停止模式時,可以兼容SPI協議,McBSP支持兩種2種SPI傳輸格式,可以通過對寄存器SPCR的CLKSTP位操作來設置[4]。
在MCBSP設定為SPI模式時,采用串口與A/D、D/A進行連接。硬件接口如圖1所示。

圖1 TMS320C6713與A/D、D/A的硬件連接
在圖1中,McBSP0、McBSP1分別與MAX1270和DAC7734進行連接,由于DSP的內外部供電電壓分別為1.2V和3.3V,而A/D和D/A芯片的供電電壓是5V,所以加入電平轉換芯片SN74ALVC164245完成邏輯電平的轉換。
對于A/D:DOUT、DIN、SCLK、/CS等4根信號線完成SPI協議,SSTRB引腳在轉換完成后將出現一個上升沿,并通過EXT_INT4引腳引起中斷,DSP在中段程序中進行轉換數據的讀取。
對于D/A:SDI、/CS、CLK提供SPI協議必需的信號,在24位數據移位到DAC7734的串行移位寄存器后,GP5輸出一個低脈沖把數據打入轉載寄存器,然后在GP6引腳輸出一個高脈沖刷新模擬電壓輸出。而RST引腳接受GP7的有效電平進行芯片復位操作。
4、軟件實現
4.1SPI模式初始化
因為DAC7743E和MAX1270都支持SPI協議,所以將MCBSP配置成時鐘停止模式來支持SPI接口。如果要MCBSP工作于SPI模式下,就必須進行如下的初始化步驟:
⑴將SPCR寄存器中的/XRST和/RRST置為1,收發端口復位。
⑵在McBSP保持復位的狀態下,設置相關的寄存器為需要的值,先設置CLKSTP=0xb,禁止時鐘停止模式。
⑶置SPCR寄存器中GRST=1,采樣率發生器退出復位態,開始工作。
⑷保持2個時鐘周期,以確保McBSP在初始化過程中,內部能夠正確的同步。
⑸按照傳輸時序,設置SPCR寄存器中CLKSTP為需要的值。
⑹如果采用CPU訪問,則置/XRST=/RRST=1,使能收發,SPCR寄存器中的其他設置值不變。
⑺發送端開始工作,接收端等待2個數據時鐘周期[5]。
4.2 A/D、D/A軟件流程
對于接口硬件設計的描述中,可以知道,整個軟件的編寫包括:1.A/D程序,完成對于采樣轉換后的數據進行讀取,并在DSP內進行處理。程序流程如圖2所示。2.D/A程序,將處理后的數據寫入,驅動D/A芯片輸出,程序流程如圖3所示。

對于A/D,寫入控制字到控制寄存器,當采樣并轉換完成,SSTRB的上升沿將觸發EXT_INT4的中斷,在中斷服務程序中進行數據的讀取。
在D/A的程序中,則要先設置相應的復用引腳為輸出,寫入要轉換的數據,然后在相應的引腳上輸出脈沖完成轉換輸出。
5、結論
本文的串行接口具有結構緊湊、工作穩定、節省硬件資源等優點,為同類串行芯片的接口設計提供了借鑒。上述接口用于某伺服系統,運行結果表明,采用串行接口能夠滿足系統的速度與精度要求,提高了系統的穩定性。
參考文獻
[1]MAX1270/MAX1271 :Multirange, +5V, 8-Channel,Serial 12-Bit ADCs,1999
[2]DAC7734:16-Bit, Quad Voltage Output, Serial Input DIGITAL-TO-ANALOG CONVERTER,1999
[3]TMS320C6000 Peripherals Reference Guide,February 2001
[4]王念旭,DSP基礎與應用系統設計,北京:北京航空航天大學出版社,2001。
[5]李方慧,王飛,何佩琨編著.TMS320C6000系列DSPs原理與應用(第二版),北京:電子工業出版社。