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