摘 要:根據(jù)高速定點DSP芯片TMS320F206的特點,提出使用串行A/D轉換器TLC2558作為DSP系統(tǒng)的模擬量輸入部分,解決了以往基于并行數(shù)據(jù)傳輸?shù)腁/D轉換器不能與高速DSP進行很好配合的問題。在此基礎上設計了DSP與串行A/D轉換器連接的硬件電路,并就A/D轉換在軟件設計時應注意的問題進行了探討。
關鍵詞:串行通信,A/D轉換,DSP,同步串行口
DSP(Digital Signal Processor)芯片與單片機相比,具有運算速度更快、功能更強的特點,它自誕生以來在工業(yè)控制領域的應用越來越廣泛。隨著DSP芯片應用的普及,DSP處理速度快的特點使它在與普通A/D轉換器接口時遇上了困難,使普通的、以并行接口傳輸數(shù)據(jù)的A/D轉換器與DSP接口時出現(xiàn)讀數(shù)不可靠的問題。為此,需要利用DSP芯片的其它接口資源作為A/D轉換數(shù)據(jù)的輸入。
1 芯片簡介
1.1 TMS320F206
TMS320F206是TI公司TMS320C2xx系列16位高速定點DSP芯片,具有先進的哈佛結構,采用流水線操作和高度專業(yè)化的指令系統(tǒng),集成了片內外圍設備和片內存儲器。當采用20MHz晶振作為時鐘源時,它的主時鐘周期為50ns。F206芯片具有一個同步串行口,它能提供與編譯碼器、串行A/D轉換器等串行器件的直接通信。在20MHz的時鐘下,發(fā)送和接收操作的最大傳輸速率是10Mbit/s,并有四級深度的發(fā)送和接收FIFO緩沖器,在與同步串行口相關的引腳中,DX為發(fā)送串行數(shù)據(jù)引腳;FSX是幀同步信號,用來啟動傳送(數(shù)據(jù)幀的開始);CLKX為發(fā)送時鐘信號,定時進行位傳送。同步串行口接收部分對應的引腳相應為DR、FSR和CLKR。
1.2 TLC2558
TLC2558也是TI公司生產(chǎn)的高性能12位串行模數(shù)轉換器,共有8路模擬通道,最大采樣率為400ksps,自帶有8級FIFO,輸入模擬量電壓在0~5V之間。TLC2558的內部結構原理如圖1所示。由圖1可見,TLC2558由控制邏輯電路、A/D轉換器、多路轉換開關和采樣/保持器、參考電壓、FIFO、配置寄存器(CFR)和命令寄存器(CMR)等部分構成。配置寄存器(CFR)用來設定TLC2558的工作方式,它和外部的控制信號一起可以有效地控制芯片的工作,包括采樣、轉換、讀取數(shù)據(jù)等;命令寄存器CMR用來選擇模擬量輸入通道和讀寫CFR。在外接的信號中,SCLK引腳接時鐘信號,芯片通過引腳SDI在SCLK時鐘的下降沿接收數(shù)據(jù),通過引腳SDO在SCLK時鐘的上升沿傳送數(shù)據(jù);CS/為片選信號;FS為DSP幀同步輸入,表示串行數(shù)據(jù)幀開始輸入或輸出;在擴展采樣時,CSTART/可用來控制模擬輸入采樣的開始:高電平到低電平的跳變開始模擬輸入信號的采樣,而低電平到高電平的跳變則置S/H為保持模式并啟動轉換,如不用,可將此引腳接正電源;PWDN/為邏輯零時,模擬及基準電路均斷電,使芯片低功耗運行。INT/可設定為主處理器的終端輸出信號,INT/的下降沿表示數(shù)據(jù)已轉換完畢,請求CPU接收數(shù)據(jù)。AD轉換器采用12位的逐次逼近的ADC。TLC2558片內還包含了一個8級12位的FIFO緩沖器,數(shù)據(jù)轉換完后,放入FIFO中等待主處理器讀取數(shù)據(jù),使用者能夠根據(jù)需要通過配置CFR選擇FIFO中數(shù)據(jù)滿2個、4個、6個、8個時或不經(jīng)過FIFO,由CPU讀取,這樣可以使用戶根據(jù)需要靈活選擇DSP讀取數(shù)據(jù)的方式。
2 硬件設計
在分析了F206同步串行口和串行A/D轉換器TLC2558外接信號的特點后,可以利用TLC2558能與F206的同步串行口進行無縫連接的特點,在F206的同步時鐘信號的作用下完成A/D轉換數(shù)據(jù)的傳輸。圖2是F206的同步串行口與TLC2558的硬件接口原理圖。圖中,A/D轉換器的A0~A7為模擬量輸入端,REFP與REFM分別接5V正電源和5V地線,使A/D模擬量輸入范圍為0~5V;FS接F206同步串行口的FSX和FSR,使數(shù)據(jù)輸入和輸出的幀脈沖信號均由DSP產(chǎn)生;FSX和FSR相連使DSP的輸入幀脈沖和輸出幀脈沖不再獨立,保證同步串行口數(shù)據(jù)的發(fā)送接收操作以相同的幀時鐘進行;SCLK接F206的CLKR和CLKX,這樣,數(shù)據(jù)輸入和輸出的同步時鐘信號均來自DSP;SDI和SDO分別接DSP同步串口信號輸出、輸入腳DX、DR,其中,SDI引腳用來接收DSP發(fā)送的命令,并寫入命令寄存器CMR和配置寄存器CFR,設定A/D轉換器的工作方式和采樣通道;CS/接DSP的XF,此時,XF相當于具有閉鎖功能的輸出腳,正常時為高電平,當需要對A/D進行讀/寫信息時,使XF輸出低電平,選中A/D,然后再對A/D進行操作;INT/接DSP的BIO/,當TLC2558的FIFO中已轉換的數(shù)據(jù)達到規(guī)定數(shù)量時,芯片發(fā)中斷信號(INT/變低)通知DSP讀取數(shù)據(jù),這樣,DSP就能以查詢方式檢測到BIO/為低電平,然后讀取數(shù)據(jù)。
通過對TLC2558的配置寄存器CFR進行寫操作,可以選擇A/D轉換的轉換方式,TLC2558共有四種轉換方式:(1)單次模式,它是唯一不用FIFO的模式,每采樣一次,就必須讀取數(shù)據(jù);(2)重復模式,即反復對一固定輸入端進行采樣、轉換,存入FIFO中的結果到設定的數(shù)量后,讀取這些數(shù)據(jù),然后開始新一輪的采樣、轉換;(3)掃描模式,它是對選中的通道依次進行采樣、轉換,當FIFO放置的數(shù)據(jù)達到規(guī)定值后,掃描方式結束,在啟動下一次掃描之前,CPU必須讀取FIFO中的數(shù)據(jù);(4)重復掃描模式,即重復模式和掃描模式的綜合,工作方式與掃描模式相似,當FIFO數(shù)據(jù)中的數(shù)據(jù)達到規(guī)定后,和重復模式一樣去讀取數(shù)據(jù)。掃描模式由于只要對TLC2558寫一次命令就可以完成所有通道的采樣和轉換,所以用時最少,是轉換效率最高的方式,因此,對于要求采集模擬量較多、速度要求較高的場合,采用掃描模式是理想的選擇。而對于采集模擬量較少或者速度要求不是很高的時候,可以選擇便于編程和調試的單次模式。
3 TLC2558工作時序分析
TLC2558是以DSP的同步時鐘脈沖CLKX和CLKR為基準進行數(shù)據(jù)的發(fā)送和接收的,當采樣頻率為600Hz時,采用單次模式就可以達到要求的速度,以單次模式為例,對某個通道進行A/D轉換時,首先要通過命令寄存器選擇該通道,由于命令寄存器是一個4位的寄存器,所以需要4個同步時鐘周期(SCLK),采樣一次需要12個SCLK,轉換一個模擬量需要14個SCLK,因此,完成一次轉換共需要30個SCLK。當DSP采用202MHz晶振作為時鐘源時,同步串行口的時鐘周期是主時鐘周斯的兩倍,即100ns。所以,采用單次模式時完成一次采樣/轉換總共需要3us。圖3是單次模式下A/D轉換的時序,由圖可見,在同步時鐘和幀脈沖的作用下,A/D轉換器通過SDI和SDO接收和發(fā)送數(shù)據(jù)。
4 編程時應注意的問題
由于TLC2558在上電或從低功耗方式重新啟動后第一次轉換的數(shù)據(jù)是無效數(shù)據(jù),所以,造成了此后每次轉換完成后從SDO讀出的不是當次轉換的數(shù)據(jù),而是前一次的數(shù)據(jù),如圖3中的SDO所示。為了在程序執(zhí)行中,在每個采樣中斷周期內都能得到正確的數(shù)據(jù),可以采用以下措施:當要對通道0~通道n(n≤7)進行轉換時,在每個中斷周期內,依次對通道0~通道n采樣和轉換后,再對通道0進行一次采樣和轉換。每次轉換完成后,讀出的是前一個通道的轉換數(shù)據(jù),因此,對通道1~n采樣完成后,讀出的是通道0~n-1的數(shù)據(jù),而當最后對通道0的采樣完成后,讀出的是通道n的數(shù)據(jù)。通過這種方式,使DSP能在每個采樣周期內都能正確讀出各通道A/D轉換的數(shù)據(jù)。
5 結束語
本文簡單介紹了串行A/D轉換器TLC2558的工作原理及高速DSP進行接口的設計。DSP通過其同步串行口接收A/D轉換的數(shù)據(jù),解決了以往DSP不能與并行接口A/D轉換器很好連接的問題。同時,就設計A/D轉換程序的過程中要注意的問題作了說明。