McBSP在數(shù)據(jù)傳輸中的應(yīng)用
DSP芯片主要完成數(shù)字信號的采集、存儲、處理與傳輸?shù)娜蝿?wù)。多通道緩沖串口(McBSP)是最重要的數(shù)據(jù)采集和傳輸設(shè)備之一,是一種典型的可配置外設(shè),通過對其接口參數(shù)和數(shù)據(jù)格式的編程設(shè)定,可以實現(xiàn)對具有同步串行口的編碼器等外部IC芯片的無縫連接。這里將以TMS32 0VC5502DSP和TLV1572模數(shù)轉(zhuǎn)換器為例介紹DSP的多通道緩沖串口(McBSP)在數(shù)據(jù)傳輸中的應(yīng)用。
本文引用地址:http://m.butianyuan.cn/article/257783.htm1 硬件構(gòu)成
1.1 TMSC320VC5502
DSP芯片采用TI公司的TMS 320 VC5502,它是一種高性能、低功耗、定點數(shù)字信號處理器,它主要有以下特點:
1)最高主頻能夠達到300 MHz,指令周期3.33ns。
2)包括1條32位的程序數(shù)據(jù)總線,5條16位的數(shù)據(jù)總線,6條24位的程序地址總線。這種并行的多總線結(jié)構(gòu),使CPU能夠在一個CPU周期內(nèi)完成一個32程序代碼的讀、3個16位數(shù)據(jù)的讀和2個16位數(shù)據(jù)的寫。5502還擁有2個乘法累加器,每個累加器都能夠在一個周期內(nèi)執(zhí)行一個17x17 bit的乘法運算。
3)包含28kx16bit的片上ROM,包括64kBytes的DARAM(8塊,每塊4 kx16 bit),192 kBytes的SARAM(24塊,每塊4 kx16 bit)、64 kBytes的一等待片上ROM(32 kx16 bit)和最大可尋址8 Mx16 bit的外部存儲空間。16位的外部存儲器擴展接口可實現(xiàn)與異步存儲器件(SRAM、EPROM)和同步存儲器件(SDRAM)的無縫連接。
4)片上外設(shè)包含1個六通道的直接存儲器訪問控制器(DMA)、3個多通道緩沖串行口(McBSP)、1個可編程的數(shù)字鎖相環(huán)時鐘發(fā)生器、2個64 bit通用定時器、1個64 bit看門狗定時器、1個64 bit DSP/BIOS計數(shù)器、8 bit/16 bit主機接口(HPI)、7個通用輸入輸出口(GPIO)和1個外部標志輸出引腳(XF)、1個內(nèi)部集成電路模塊(I2C)、1個通用異步接收/發(fā)送器(UART)、1個符合IEEEl941.1標準(JTAG)邊界掃描邏輯的JTAG仿真接口。
1.2 McBSP(多通道緩沖串口)
TMS320VC5502 DSP提供了3個高速多通道同步緩沖串口(McBSP),使得TMS320VC5502DSP可以直接和其它C55xDSP、多媒體數(shù)字信號編解碼器以及系統(tǒng)中的其它設(shè)備接口。該串口提供了全雙工通信;雙緩沖數(shù)據(jù)寄存器,允許傳送連續(xù)的數(shù)據(jù)流;獨立的收發(fā)時鐘和幀信號:可與工業(yè)標準的編解碼器、模擬接口芯片及其它串行A/D、D/A芯片直接連接;可用128個通道進行收發(fā);具有可編程的采樣率發(fā)生器;能夠向CPU發(fā)送中斷,向DMA控制器發(fā)送DMA事件;可設(shè)置幀同步脈沖和時鐘信號的極性;傳輸?shù)淖珠L可以是8位、12位、16位、20位、24位或32位;可將McBSP引腳配置為通用輸入輸出引腳。McBSP結(jié)構(gòu)框圖如圖1所示,可以分為數(shù)據(jù)通道和控制通道2部分。
數(shù)據(jù)發(fā)送引腳DX負責數(shù)據(jù)的發(fā)送,數(shù)據(jù)接收引腳DR負責數(shù)據(jù)的接收,發(fā)送時鐘引腳CLKX、接收時鐘引腳CLKR、發(fā)送幀同步引腳FSX和接收幀同步引腳FSR提供串行時鐘和控制信號。CPU和DMA控制器通過外設(shè)總線與McBSP進行通信。當發(fā)送數(shù)據(jù)時,CPU和DMA將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(DXR1,DXR2),接著復(fù)制到發(fā)送移位寄存器(XSR1,XSR2),通過發(fā)送移位寄存器輸出至DX引腳。同樣當接收數(shù)據(jù)時,DR引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR1,RSR2),接著復(fù)制到接收緩沖寄存器(RBR1,RBR2),RBR再將數(shù)據(jù)復(fù)制到數(shù)據(jù)接收寄存器(DRR1,DRR2)中,并通知串口事件通知CPU或DMA讀取數(shù)據(jù)。這種多級緩沖方式使得片內(nèi)數(shù)據(jù)通信和串行數(shù)據(jù)通信能夠同時進行。
1.3 TLV1572
A/D轉(zhuǎn)換器用TI公司的10位高速串行逐次逼進型A/D轉(zhuǎn)換器,采用5 V單電壓供電,最高采樣速率可達1.25 Msps,可與TMS320系列DSP通過McBSP(Multi-channel Buffered Serial Ports,多通道緩沖串口)實現(xiàn)無縫連接。TLV1572的采樣速率最高可達1.25 Msps、10位分辨率、單電壓供電是3~5V、低功耗(3 V時8 mW、5 V時25 mW)、自動節(jié)電功能(最大電流為10μA)、具有內(nèi)部采樣保持功能。TLV1572的功能模塊圖如圖2所示。
TLV1572有2種工作模式,即DSP模式和微控制器模式,這2種工作模式是由它的P3(幀同步輸入信號)的電平?jīng)Q定的,F(xiàn)S引腳連接電源VCC,一直為高電平,則TLV1572工作在微控制器工作模式下;如果TLV1572在DSP工作模式下,則FS引腳或者由TMS320 DSP的MCBSP的幀同步信號(FSR)提供,或者由系統(tǒng)外部引入。
1.4 TLV1572與DSP的McBSP緩沖串口的連接
TLV1572與TMS320VC5502 DSP串口連接如圖3所示。
TLV1572工作在DSP模式下,其典型時序圖如圖4所示。
在DSP模式下工作時,當TLV1572 A/D的片選信號/CS變低時,F(xiàn)S也必須為低,而且為了確保TLV1572的DSP模式的正確鎖定,F(xiàn)S信號電平要被檢測2次,一次是在/CS下降沿時檢測FS電平(也就是對于/CS下降沿的FS建立時間,最小6 ns),一次是緊接其后的相對于/CS下降沿來說的一個內(nèi)部延遲檢測(也就是對于/CS下降沿的FS保持時間,最小為9 ns)。綜上所述,為了保證TLV1572能正確鎖定在DSP模式下,在/CS變低后FS要至少維持15ns的時間。
在確保TLV1572工作在DSP模式下后,也就是FS的低電平至少要維持15 ns的時間后,TLV1572 A/D要在每一個SCLK時鐘信號的下降沿檢測FS的電平狀態(tài),一旦FS變高,說明A/D進入復(fù)位狀態(tài),之后當FS變低時,TLV1572等待DSP鎖存第一個0。這里,F(xiàn)S的上升沿對于對SCLK的下降沿來說有一個FS的建立時間(至少10 ns),然后相對應(yīng)這個SCLK的下降沿,F(xiàn)S有一個保持時間(至少要4 ns)。滿足至少上述的14 ns后,F(xiàn)S才能變低。
采樣從FS變低后的第一個SCLK的下降沿開始,一直到輸出第6個0時的那個SCLK的上升沿,在這個SCLK的上升沿,開始轉(zhuǎn)換并輸出相應(yīng)轉(zhuǎn)換的數(shù)據(jù),這里有1 bit的延遲,而DSP對轉(zhuǎn)換數(shù)據(jù)的采樣發(fā)生在SCLK的下降沿。經(jīng)TLV1572轉(zhuǎn)換的數(shù)據(jù)前導有6個0,之后才是轉(zhuǎn)換的由高位到低位的10 bit數(shù)據(jù)輸出。也就是說TLV1572對一次的數(shù)據(jù)完整轉(zhuǎn)換需要16個SCLK。如果在第16個SCLK時鐘的下降沿檢測到FS變高了,則在即后的下一個SCLK,也就是第17個SCLK開始下一次的新的數(shù)據(jù)的采樣與轉(zhuǎn)換,這樣就實現(xiàn)了TLV1572的對數(shù)據(jù)的連續(xù)轉(zhuǎn)換。
2 軟件構(gòu)成
當所傳輸?shù)男盘枏腡LV1572的模擬信號輸入端輸入后,TLV1572再對輸入的信號進行采樣,并將采樣后的數(shù)據(jù)傳送到DSP。程序主要包括初始化DSP和緩沖串口McBSP,將McBSP配置為接收器,包括復(fù)位MeBSP的接收器,根據(jù)需要對McBSP的寄存器編程,使能接收器,啟動A/D,采集數(shù)據(jù)并存儲,其流程如圖5所示。
在對DSP的McBSP進行操作時,McBSP的內(nèi)部采樣率發(fā)生器的輸出時鐘CLKG驅(qū)動給CLKR,CLKR同時提供給A/D的SCLK。而McBSP的采樣率發(fā)生器的時鐘源(CLKSRG)由CPU提供的,對CPU時鐘進行分頻以產(chǎn)生CLKG。由于CPU的時鐘極性總為正,因此CPU時鐘信號的上升沿產(chǎn)生CLKG的上升沿。對采樣率發(fā)生器的寄存器編程后,要等待2個CLKSRG(時鐘源)周期以確保內(nèi)部同步。當采樣率發(fā)生器使能后,要等待2個CLKC周期,以保證采樣率發(fā)生器穩(wěn)定工作。在CLKSRG的下一個上升沿,CLKRG變?yōu)?,啟動頻率如式(1)所示的時鐘。
幀同步信號(內(nèi)部FSR),對于串口來說,都是內(nèi)部信號,都是高電平有效。如果將串口配置成外部幀同步(FSR輸入到McBSP),且FSRP=1(接收幀同步信號低有效),則外部低電平有效的信號在送給接收器(內(nèi)部FSR)之前要做轉(zhuǎn)換。當McBSP的FSR為輸入時,McBSP在CLKR的下降沿檢測這個FSR信號。到達DR引腳的接收數(shù)據(jù),也在內(nèi)部CLKR的下降沿采樣。這里的內(nèi)部時鐘CLKR是由采樣率發(fā)生器時鐘(CLKG)驅(qū)動,內(nèi)部送給McBSP。
接收器可以在時鐘的上升沿可靠的對輸入數(shù)據(jù)進行采樣。接收時鐘的極性(CLKRP)設(shè)置成采樣接受數(shù)據(jù)所用的沿。注意:McBSP總是在內(nèi)部CLKR的下降沿對數(shù)據(jù)采樣,因此如果CLKRP=1,且選擇內(nèi)部時鐘(CLKRM=1),則內(nèi)部下降沿觸發(fā)的時鐘,在送給CLKR引腳輸出之前,要轉(zhuǎn)換成上升沿觸發(fā)的時鐘。
DSP的CPU或DMA控制器與McBSP的通信,是通過16 bit的寄存器訪問內(nèi)部的外設(shè)總線來實現(xiàn)的。McBSP的數(shù)據(jù)接收寄存器2個,DRR1和DRR 2,當字長小于16 bit時使用DRR1。把McBSP要傳輸?shù)拇凶侄x成為16 bit(剛好是10 bit A/D轉(zhuǎn)換數(shù)據(jù)出的6個0+10 bit二進制數(shù)),并自行定義McBSP傳輸數(shù)據(jù)的一幀就是16 bit。這樣McBSP接收完一幀數(shù)據(jù)后,就觸發(fā)中斷,進行這一幀數(shù)據(jù)的存儲,然后進行下一幀數(shù)據(jù)的采樣轉(zhuǎn)換與傳輸,直到數(shù)據(jù)傳輸采集完畢。
下面是MeBSP配置成接收器要做的操作。
1)全局設(shè)置包括設(shè)置接收器的引腳為McBSP的引腳、使能或者禁止數(shù)字回環(huán)模式、使能或者禁止時鐘停止模式、使能或者禁止多通道選擇模式。
2)設(shè)置數(shù)據(jù)即選擇每個接收幀是單段還是雙段、設(shè)置接收字長、設(shè)置幀長度、使用或者禁止忽略接收幀同步功能、設(shè)置接收壓縮擴展模式、設(shè)置接收數(shù)據(jù)延遲、設(shè)置接收數(shù)據(jù)擴展和校驗?zāi)J?、設(shè)置接收中斷模式。
3)幀同步設(shè)置 即設(shè)置接收幀同步模式、設(shè)置接收幀同步極性、設(shè)置采樣率發(fā)生器幀同步周期和脈沖寬度。
4)時鐘設(shè)置即設(shè)置接收時鐘模式、設(shè)置接收時鐘極性、設(shè)置采樣率發(fā)生器的時鐘分頻值、設(shè)置采樣率發(fā)生器的時鐘同步方式、設(shè)置采樣率發(fā)生器的時鐘模式(選擇輸入時鐘)、設(shè)置采樣率發(fā)生器輸入時鐘的極性。
調(diào)試程序所用的軟件是TI公司的Code Composer Studio(CCStudio),它是TI公司開發(fā)的專用于進行TMS320系列DSP軟件設(shè)計的集成軟件開發(fā)環(huán)境。McBSP初始化程序如下:
3 結(jié)束語
本文以TMS320VC5502 DSP芯片與TLV1572模數(shù)轉(zhuǎn)換芯片為例,詳細討論了TLV1572與DSP的多通道緩沖串口(MeBSP)通信的硬件接口和軟件設(shè)計。其設(shè)計方案簡單易行,具有一定的通用性,根據(jù)需要可以在中斷服務(wù)子程序中嵌入適合的數(shù)據(jù)處理程序代碼,就可以構(gòu)成一個完整的數(shù)據(jù)采集與傳輸程序。本文中采集的數(shù)據(jù)是存放在TMS320VC5502芯片內(nèi)部的RAM中,由于TMS320VC55x DSP的外部存儲器接口(EMIF)支持8bi-t、16 bit、32 bit數(shù)據(jù)的訪問,并為異步存儲器、同步突發(fā)SRAM、同步DRAM提供了無縫接口,所以如果系統(tǒng)所要采集的數(shù)據(jù)量很大,也可以通過EMIF接口外擴存儲器。
評論