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