集成外設(shè)及DSP/BIOS應(yīng)用實例(上)_第1頁
集成外設(shè)及DSP/BIOS應(yīng)用實例(上)_第2頁
集成外設(shè)及DSP/BIOS應(yīng)用實例(上)_第3頁
集成外設(shè)及DSP/BIOS應(yīng)用實例(上)_第4頁
集成外設(shè)及DSP/BIOS應(yīng)用實例(上)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、集成外設(shè)及DSPBIOS應(yīng)用實例(上)本文將主要介紹C6000系列DSP的外設(shè),分別從硬件接口特點、接口設(shè)計和接口設(shè)置等方面介紹了主機口HPI、多通道緩沖串口McBSP和直接存取控制器DMAEDMA等外設(shè)。另外,介紹了如何利用DSPBIOS操作系統(tǒng)提供的芯片支持庫(CSL)訪問和控制各個外設(shè)。1  集成外設(shè)資源概述C6000系列DSP在內(nèi)部集成了豐富的外圍設(shè)備(Peripherals),方便用于控制片外的存儲器、主機以及串行通信設(shè)備。對于每種型號的外設(shè)資源都是不一樣的,具體的需要查詢該芯片的技術(shù)資料。    在C6000系列DSP中集成的外設(shè)資源有:&#

2、160;   1DMA與EMDA控制器DMA、EDMA控制器最人的特點是可以在沒有CPU參與的情況下完成映射存儲空間中的數(shù)據(jù)搬移。這些數(shù)據(jù)搬移可以是在片內(nèi)存儲器、片內(nèi)外設(shè)或是外部器件之間,而且是在CPU后臺進行的。C620xC670x內(nèi)部集成了DMA外設(shè),其特點如下:  (1)DMA摔制器獨立于CPU 工作,具有單周期的數(shù)據(jù)吞葉率。  (2)四個通道,外加專用的輔助通道,每一個通道對十CPU的優(yōu)先級可設(shè)置。  (3)32位尋址能力,可以對存儲器映射空間的任何一個區(qū)域進行訪問。  (4)傳送數(shù)據(jù)支持81632位字長。  (5)

3、具有靈活的地址產(chǎn)生方式,有單通道分割(split-channel)操作模式。  (6)每次數(shù)據(jù)塊傳輸完畢后,可以進行DMA通道的自動初始化。  (7)傳輸操作可以由選擇的同步事件觸發(fā)。  (8)每個通道都可以觸發(fā)中斷事件。  C621xC671x內(nèi)部集成的是EDMA外設(shè),其特點如下:  (1)16個通道,EDMA可以對16個通道進行彼此獨立的控制。  (2)連接:EMDA通道可以被連接起來,構(gòu)成一個傳輸鏈。  (3)事件同步:每一個通道都有一個特定的事件來觸發(fā)。  (4)主機接口HPI。主機口(HPI)是一個163

4、2位寬度的并行端口,主機可以通過它直接訪問CPU的整個存儲空間,包括C6000片內(nèi)存儲映射的外圍設(shè)備。C62xC67x HPI與CPU存儲空間的互連是通過DMA控制器實現(xiàn)的。借助專門的地址和數(shù)據(jù)寄存器,通過DMA輔助通道,完成HPI對存儲空間的訪問。主機和CPU都可以對HPI控制寄存器(HPIC)進行訪問,主機還可以訪問HPI地址寄存器(HPIA)和HPI數(shù)據(jù)寄存器(HPID)。對于C64x器件,CPU也可以訪問HPIA寄存器。2多通道緩沖串口McBSPC6000的多通道緩沖串口(McBSP)是存C2x和C54x的串口的基礎(chǔ)上發(fā)展起來的,McBSP的功能包括:  (1)全雙工通信。&

5、#160; (2)兩級緩沖數(shù)據(jù)寄存器,允許連續(xù)的數(shù)據(jù)流。  (3)收發(fā)獨立的幀信號和時鐘信號。  (4)可以與工業(yè)標準的編解碼器、AICs(模擬接口芯片)以及其他串行AD,DA接口。  (5)數(shù)據(jù)傳輸可以利用外部時鐘,或者是片內(nèi)的可編程時鐘。  (6)當利用DMA、McBSP服務(wù)時,串口數(shù)據(jù)讀寫具有自動緩沖能力。  3外設(shè)存儲接口EMIF  EMIF是實現(xiàn)外設(shè)存儲器與DSP無縫連接的橋梁,EMIF支持的存儲器包括:  (1)同步突發(fā)靜態(tài)RAM(SBSRAM)。  (2)同步動態(tài)RAM(SDRAM)。  (

6、3)異步器件(包括異步SRAM,ROM和FIFO等)。  (4)外部共享存儲空間的操作。EMIF整個外部空間最大容量為64MB,分為4個空間(2E0CE3,每個CE空間彼此獨立,可以進行不同的訪問控制,但是某些控制信號線是復用的,使用時一定要注意。數(shù)據(jù)總線寬度32bit,同時也提供816位存儲器的讀寫支持。4擴展總線XBUS擴展總線(XBUS)是一個32位寬度的總線,支持多種異步外設(shè)、異步或同步FIFOs、PCI接口芯片和其他類型的外部主機。在主機口接口方面,擴展總線的功能較HPI有了很大增強。XBUS提供了曲種模式,即同步和異步主機口模式。異步模式相當于一個32位的HPI,同步模式

7、支持多種協(xié)議的接口。目前在C6202和C6203中具有擴展總線XBUS功能。5自舉邏輯控制 TI C6000系列DSP芯片使用多種加載方式。根據(jù)復位前管腳的狀態(tài)執(zhí)行相應(yīng)的加載方式。目前提供的3種加載方式如下:(1)沒有BOOT處理:CPU直接從地址0處開始運行。(2)ROM加載模式:通過DMA控制器,把存儲在外部存儲器里的程序加載到內(nèi)部首地址0處,在加載過程中,CPU已經(jīng)脫離復位狀態(tài),但是仍處于stall狀態(tài)。對于C620xC670x DSP,要求程序代碼必須是以Little-Endian模式存儲在外部存儲器中,尤其是ROM設(shè)備。(3)主機加載模式:在主機加載模式下,外部主機可以通過HPI接口

8、讀寫訪問CPU的存儲空間,包括內(nèi)部配置的寄存器,如EMIF控制寄存器或其他外設(shè)。一旦主機完成了所有的初始化工作后,必須置DSPINT為1,表示已經(jīng)完成加載過程,同時使CPU脫離stall狀態(tài),CPU開始從地址0處運行程序。在C6201C6701有專門的管腳BOOTMODE4:O決定DSP芯片復位后運行的加載方式,而C6211C6711是利用主機口的HD4:0管腳復用,C6202C6203是利用擴展總線的XD4:0管腳復用。6定時器(26000系列集成了32位的通用定時器。定時器的輸入時鐘可以由內(nèi)部產(chǎn)生,也可以是外部時鐘;可以通過輸出口TOUT輸出時鐘。TINT和。TOUT兩個管腳也可以被配置為

9、GPIO口。定時器可以用于  (1)計時。  (2)事件計數(shù)。  (3)產(chǎn)生脈沖。  (4)產(chǎn)生CPU中斷信號。  (5)產(chǎn)生DMA的同步信號。2  DSPBlOSCCS(Code Composer Studio)是一個完整的DSP集成開發(fā)環(huán)境,所有的TI DSP都可以使用該軟件進行丌發(fā)。在CCS中,不僅集成了常規(guī)的開發(fā)工具如源程序編輯器、代碼生成工具(編譯、連接器)以及調(diào)試環(huán)境外,還提供了DSPBIOS開發(fā)工具。DSPBIOS是一個可裁剪的實時操作系統(tǒng),方便用戶編寫多任務(wù)應(yīng)用程序。DSPBIOS提供了類似于先占式的多線程運行方式、硬

10、件驅(qū)動、實時分析和配置工具。DSPBIOS已經(jīng)是DSP開發(fā)過程中重要的工具。在本節(jié)將介紹DSPBIOS工具的使用。2.1  DSP/BIOS概述DSPBIOS是一個可裁剪的實時操作系統(tǒng),本身占用很少的CPU資源,被集成在CCS開發(fā)環(huán)境里。該操作系統(tǒng)由TI公司免費提供。DSPBIOS提供底層的應(yīng)用函數(shù)接口,可用于支持系統(tǒng)實時分析、線程管理、調(diào)度軟件中斷、周期函數(shù)idle函數(shù)(后臺運行函數(shù))以及外部硬件中斷與各種外設(shè)的管理。DSPBIOS主要包括以下幾個部分:    1DSPBlOS配置工具CCS提供了DSPBIOS GUI功能,即DSPBIOS配置工具。使

11、用該工具,可以靜態(tài)創(chuàng)建和配置程序中使用的DSPBIOS對象,也可以配置存儲器分配、線程管理和中斷句柄。2DSPBIOS實時分析工具DSPBIOS提供的一個強大的實時分析工具。使用該工具可以實時觀測程序的運行狀況,如各個線程占用CPU運行時間、代碼執(zhí)行時間統(tǒng)計、顯示輸出信息等。    3DSPBIOS應(yīng)用程序接口(API)DSPBIOS提供了超過150個API函數(shù),其中有與C語言、C+語言和匯編語言接口的函數(shù)。這些API函數(shù)是為在硬件目標的嵌入式程序工作的,包括實時統(tǒng)計、IO模塊、軟件中斷管理和時鐘管理等模塊。由于應(yīng)用程序的不同,DSPBIOS API函數(shù)的代碼長度

12、從2002000B不等。程序通過調(diào)用API函數(shù)米使用DSPBIOS的資源。目前DSPBIOS中主要的API模塊有CLK模塊、HST模塊、HWI模塊、IDL模塊、LOG模塊、MEM模塊、PIP模塊、PRD模塊、RTDX模塊、STS模塊、SWI模塊、DEC模塊、SIO模塊、MXB模塊、QUE模塊和SEM模塊。2.2  DSPBIOS GUI配置在DSPBIOS的程序里,有一個DSPBIOS的配置文什,該配置文件的后綴名為.cdb。這是一個圖形界面的參數(shù)設(shè)置窗口,如圖4-1所示。主要有兩種功能:(1)確定DSPBIOS使用的各種參數(shù)。(2)可以靜態(tài)說明需要調(diào)用的DSPBIOS模塊,包括中斷

13、、任務(wù)和內(nèi)部集成的外設(shè)等。 1系統(tǒng)設(shè)置項系統(tǒng)設(shè)置項包括全局設(shè)置、存儲器段管理器、系統(tǒng)設(shè)置和模塊鉤子管理器,如圖4-2所示。在全局設(shè)置的屬性窗口中可以設(shè)置正使用的DSP型號、選擇使用的片級支持庫CSL、Endian模式和Cache模式等多種參數(shù)。在存儲器段管理器的屬性窗口中可以進行系統(tǒng)程序存儲段的管理。通過該項設(shè)置,系統(tǒng)將自動生成系統(tǒng)程序連接時使用的.cmd文件。2實時分析工具實時分析工具包括LOG管理器和統(tǒng)計類管理器,如圖4-3所示。用戶可以利用LOG模塊中的事件日志來記錄實時的事件。系統(tǒng)口志記錄系統(tǒng)所有運行事件包括系統(tǒng)出錯等事件。用戶可以用LOG_printf或LOG_event函

14、數(shù)在用戶日志中添加消息。用戶可以利用STS模塊仝面了解中斷、任務(wù)以及用戶自己定義的代碼段或函數(shù)的運行時間。3線程管理DSPBIOS是一個類似于先占式的多任務(wù)操作系統(tǒng)。BIOS把任務(wù)稱之為線程,一個線程是一個單獨的控制點,可能包含一個子程序、一個宏或者足一個函數(shù)調(diào)用。DSPBIOS內(nèi)核支持具有不同優(yōu)先級的多種類型線程運行,高優(yōu)先級的線程可以中斷低優(yōu)先級的線程,因此具有類似的先占式特點。   DSPBIOS提供了以下幾種線程類型,優(yōu)先級從高到低。  (1)硬件中斷HWI(含CLK模塊)。   (2)軟件中斷SWI(含PRD模塊)。 

15、60; (3)任務(wù)TSK。   (4)后臺線程IDL。   線程管理的界面如圖4-4所示,使用GUI可以很方便地增加刪除線程。   4同步同步主要的任務(wù)就是負責線程之間的協(xié)調(diào),如同步通信、數(shù)據(jù)交換等。其中包括旗語、郵箱、隊列管理和資源鎖定管理等部分,如圖4-5所示。5輸入輸出    DSPBIOS內(nèi)核提供了豐富的數(shù)據(jù)交換途徑。利用BIOS可以方便地實現(xiàn)主機和DSP之間的實時數(shù)據(jù)交換(RTDX和HST)以及各種線程之間的數(shù)據(jù)交換。DSPBIOS的PIP模塊和SIO模塊將主要用于IO數(shù)據(jù)流的緩沖,這些數(shù)據(jù)流稱

16、為線程、DSP芯片和實時外圍設(shè)備提供了牢固的數(shù)據(jù)軟件結(jié)構(gòu)。輸入輸出界面如圖4-6所示。6片級支持庫片級支持庫(CSL)提供了一個C語言接口的配置和控制片內(nèi)外設(shè)1具。CSL集成在BIOS里,系統(tǒng)程序可以使用該功能,也可以不使用。使用片級支持庫(CSL)簡化了DSP片上外設(shè)開發(fā)時間,可以加快項目開發(fā)進度。片劑支持庫(CSL)可以預先靜態(tài)設(shè)置,也可以在程序運行時動態(tài)設(shè)置。2.3  DSPBIOS編程實例DSPBIOS是一個嵌入式實時操作系統(tǒng)。在BIOS基礎(chǔ)上編程與普通的編寫程序不同,下面將以TI的例了來介紹BIOS的編程特點。    (1)首先新建一個BIOS

17、配置文件。建市兩個軟件中斷SWl0和SWll,SWl0的優(yōu)先級設(shè)為1,SWll優(yōu)先級設(shè)為2,如圖4-7所示。保存例子,名稱為switest.cdb。(2)新建一個工程,工程名switest.pit。把配置文件switest.cdb加入到工程文件中去,同時把switestcfg.cmd文件也加入到工程文件中。(3)新建switest.C文件。源文件如下:(4)編譯連接工程,打開execution graph、statistics view和message log窗口,然后運行程序。在實時分析工具中可以觀察到線程SWIO和SWll運行一次,部分時間是其他線程和KNL-swi運行,如圖4-8圖4-1

18、0所示。3  TMS320C6000的HPl接口設(shè)計本節(jié)主要介紹主機接口外設(shè)HPI,其中介紹了主機如何通過主機接口(Host-port interface,HPI)讀寫訪問C6000的存儲器資源,包括HPI的控制寄存器設(shè)置,有關(guān)信號的作用與接口等。3.1  HPI硬件介紹主機口(HPI)是一個1632位寬度的并行端口,主機可以通過它直接訪問CPU的整個存儲空間,包括C6000片內(nèi)的存儲映射的外圍設(shè)備。HPI與CPU存儲空間的互連是通過DMA/EDMA控制器實現(xiàn)的。借助專門的地址和數(shù)據(jù)寄存器,通過DMA輔助通道,完成HPI對存儲空間的訪問。主機和CPU都呵以對HPI控制寄存器

19、(HPlC)進行訪問,另外主機可以訪問HPI地址寄存器(HPIA)和HPI數(shù)據(jù)寄存器(HPID)。對于C64x器件,CPU也可以訪問HPIA寄存器。圖4-11中的陰影部分是HPI在C620xC670x整個芯片中的位置。圖4-12是HPI在C621xC671XC64x整個芯片中的位置(陰影部分)。表4-1列出了在C6000系列芯片中HPI外設(shè)的區(qū)別。3.2 HPI接口及其應(yīng)用在這里將仔細介紹HPI接口的特點,分析HPI接口信號和總線時序的特點,硬件接口設(shè)計和軟件設(shè)計特點。    1HPI接口與信號主機可以通過HPI接口與CPU連接,HPI管腳信號功能如表4-2所示,

20、詳細的信號描述可以參照TI相關(guān)文檔。 C6000 DSP不同芯片的HPI外設(shè)與主機接口有所不同,下面簡要介紹其區(qū)別。對于C620xC670x芯片的HPI外設(shè),HPI是16位寬度的并行接口,CPU可以自動地把主機連續(xù)寫入的兩個16位數(shù)據(jù)組合成一個32位數(shù)據(jù)。豐機把數(shù)據(jù)寫入HPID寄存器,DMA輔助通道可以訪問所有的CPU地址,把寫入的數(shù)據(jù)存儲到指定地址的存儲空間中去。C620xC670x芯片的HPI外設(shè)與主機連接框圖如圖4-13所示。C621xC671x的HPI管腳接口與C620xC670x類似,但是不支持字節(jié)使能信號線HBE1:0。C621xC671x沒有提供特殊的EDMA通道來專門

21、進行HPI存取,而是直接將HPI與片內(nèi)的地址產(chǎn)生單元相連,完全由硬件來處理硬件請求,如圖4-14所示。C64x芯片的HPI外設(shè)與主機連接框圖如圖4-15所示。C64x HPI外沒有32根外部數(shù)據(jù)引腳,支持1632位數(shù)據(jù)傳輸。C64x器件根據(jù)自舉加載配置和器件配置決定是16位還是32位數(shù)據(jù)通道。C64x HPll6是C621xC67lx的HPI外設(shè)增強版本。除了C621xC67lx的HPI外設(shè)功能外,HPll6允許DSP訪問HPI地址寄存器HPIA。如圖4-15所示,地址寄存器HPIA分成兩個寄存器,即HPIA寫寄存器(HPIAW)和HPIA讀寄存器(HPIAR)。HPI 32和HPI16功能類

22、似,區(qū)別在于數(shù)據(jù)總線寬度不一樣,而且HPI 32不使用 HHWIL信號線。2HPI總線時序圖4-16圖4-19分別給出了HPI讀和寫操作的時序。HSTROBE是內(nèi)部選通信號,由HDSl、HDS2和,HCS信號邏輯組合產(chǎn)生。控制信號:HCNTL1:0、HRW、HHWIL和HBE1:0是輸入信號,由主機驅(qū)動。HCNTL1:0和HRW控制對兩個半字的訪問。HRDY低電平表示HPI已經(jīng)準備好收發(fā)數(shù)據(jù)。HAS信號為高電平或者沒有使用,那么HSTROBE的下降沿鎖存控制信號。如果使用了HAS信號,在HAS的下降沿鎖存控制信號??梢愿鶕?jù)具體的情況來決定是否在接口中應(yīng)用選通信號HAS,因此下面的讀寫時序中部各

23、自給出了有HAS和沒有HAS信號時的情況。3HPI控制寄存器HPI外設(shè)利用3個寄存器完成主機和DSP之間的數(shù)據(jù)交換。3個寄存器分別是HPI數(shù)據(jù)寄存器(HPID)、HPI地址寄存器(HPIA)和HPI控制寄存器(HPIC)。對于C64x器件,HPI地址寄存器分為地址讀寄存器(HPIAR)和地址寫寄存器(HPIAW)。HPIA中存放主機訪問DSP存儲空間的地址,這是一個30位值,最低2位固定為0。對于C62xC67x,只有主機才能訪問HPIA,DSP不可以訪問。對于C64x,主機和DSP都可以訪問HPIA寄存器,主機可以對DSP的不同存儲空問進行讀寫操作。HPID中存放的是主機從存儲空問讀取的數(shù)據(jù)

24、,或者是主機要向DSP的存儲空間寫入的數(shù)據(jù)。HPIC是32位寄存器,高16位和低16位對應(yīng)的是同一個物理存儲區(qū),因此高16位和低16位的內(nèi)容是一樣的。在寫HPIC時,必須保證寫入數(shù)據(jù)的高16位和低16位的內(nèi)容一致。HPIC寄存器如圖4-20所示,其中各位意義如表4-3所示。 4主機訪問操作順序  主機按照以下的順序完成對HPI的訪問:  (1)初始化HPIC寄存器。  (2)初始化HPIA寄存器。  (3)從HPID寄存器讀取寫入數(shù)據(jù)。對HPI任何一個寄存器的訪問,主機都需要在HPI總線上進行兩次half-word的存取(第1個16位HHWIL

25、為0,第2個HHWIL為1)。一般主機不會打斷這樣的兩次存取,一旦打斷可能會引起整個數(shù)據(jù)的丟失或者數(shù)據(jù)被破壞。如果前一次HPI的訪問尚未完成,那么當前的第一個half-word的存取需要等待,此時HPI會置HRDY信號為高。但是在第2個半字存取訪問時,HRDY可以為有效狀態(tài)。C64xfPl32把兩個半字組合成一個字傳輸。在訪問任何數(shù)據(jù)之前,必須對HPI進行初始化,包括設(shè)置HPIC和HPIA寄存器。對C62xC67x和C64x是有所不同的。   HPI的數(shù)據(jù)傳輸模式有4種:   (1)不帶地址白增的讀操作。   (2)帶地址自增的讀操作

26、。   (3)不帶地址自增的寫操作。       (4)帶地址自增的寫操作。這些模式由HPI的HCNTL1:O信號以及HHWIL進行控制,具體如表4-4所示。其中的地址自增功能使主機可以很便捷地訪問一個線性存儲區(qū)域,而無需反復地向HPIA中寫入需要的地址。5HP的自舉加載操作通過HPI接口也提供了相應(yīng)的HPI加載方式。當CPU復位時,根據(jù)相應(yīng)的加載配置,CPU進入HPI加載處理方式。在HPI加載處理方式中,DSP處在復位狀念,而其他部分脫離復位狀態(tài)。通過HPI接口,主機可以訪問DSP的全部存儲空間,包括片內(nèi)外設(shè)寄存器、片內(nèi)存

27、儲器和片外存儲器。主機完成初始化DSP后,需要向HPI控制寄存器HPIC的DSPHlNT位寫1,這樣才可以使DSP脫離復位狀態(tài)開始從地址0處執(zhí)行程序。HPI加載處理過程如圖4-21所示。3.3 BlOS中HPI設(shè)置實例HPI模塊提供了訪問HPI寄存器的API函數(shù),其中用于訪問HPI狀態(tài)位和設(shè)置中斷事件。對于C64x,還包括讀寫HPlA寄存器。在CCS中沒有提供HPI設(shè)置圖形用戶接口。     HPI模塊提供的API函數(shù)如表4-5所示。4  TMS320C6000的McBSP接口設(shè)計本節(jié)對多通道緩沖串口McBSP(Multi-channel Bu

28、ffered Serial Port)的硬件及其操作進行介紹,包括有關(guān)的控制寄存器設(shè)置和時序圖。此外,還介紹在BIOS中McBSP模塊的特點和應(yīng)用。4.1  McBSP硬件介紹C6000的多通道緩沖串口(McBSP)是在TMS320C2xC3xC5x和TMS320C54x串口的基礎(chǔ)上發(fā)展起來的,McBSP的功能包括:   (1)全雙工通信。   (2)雙緩沖數(shù)據(jù)寄存器,允許連續(xù)的數(shù)據(jù)流。   (3)收發(fā)獨立的幀信號和時鐘信號。   (4)可以與工業(yè)標準的編解碼器、AICs(模擬接口芯片)以及其他串行AD,

29、DA接口。   (5)數(shù)據(jù)傳輸可以利用外部時鐘,或者是片內(nèi)的可編程時鐘。   (6)通過5通道的DMA控制器,串口數(shù)據(jù)讀寫具有自動緩沖能力。   另外,McBSP有以下特點:   (1)支持以下方式的傳輸接口:   TIE1幀協(xié)議   MVIP兼容的交換方式以及STBUS兼容設(shè)備,包括:MVIP幀方式、H.100幀方   式和SCSA幀方式   IOM-2兼容設(shè)備   AC97兼容設(shè)備   IIS

30、兼容設(shè)備   SPI設(shè)備  (2)可與多達128個通道進行收發(fā)。  (3)傳輸?shù)臄?shù)據(jù)字長可以是8位、12位、16位、20位、24位和32位。  (4)-律/A-律壓擴硬件。  (5)對8位數(shù)據(jù)的傳輸,可選擇LSB先傳還是MSB先傳。  (6)可設(shè)置幀同步信號和數(shù)據(jù)時鐘信號的極性。  (7)內(nèi)部傳輸時鐘和幀同步信號可編程程度高。所有的C6000器件有著同樣的McBSP接口,但是C621xC671x和C64x器件的McBSP接口卻有所不同,增加了新的特色和增強功能。4.2  McBSP接口及應(yīng)用McBSP外設(shè)

31、具有很多強大功能,在這里將要介紹外設(shè)的信號接口、控制寄存器、時序特點以及初始化工作;同時介紹了作為SPI接口和通用IO口使用的原理和方法。對于McBSP的多通道工作模式和-律A-律壓擴硬件功能沒有介紹,有興趣的讀者可以參照TI相關(guān)文檔。    1信號接口和寄存器McBSP包括一個數(shù)據(jù)通道和一個控制通道,連接到外部器件。數(shù)據(jù)通過發(fā)送(DX)和接收(DR)引腳與外部器件通信,而其他的4個引腳起時鐘和幀同步信號作用。C6000通過片內(nèi)的外設(shè)總線訪問串口的32位控制寄存器,進而實現(xiàn)與McBSP間的通信與控制。McBSP結(jié)構(gòu)如圖4-23所示。外部引腳含義如表4-6所示。&#

32、160;數(shù)據(jù)通道完成數(shù)據(jù)的發(fā)送和接收。CPU或DMA控制器將待發(fā)送的數(shù)據(jù)寫入發(fā)送寄仔器(DXR)中,從接收寄存器(DRR)讀取接收到的數(shù)據(jù)。寫入DXR的數(shù)據(jù)通過發(fā)送移化寄存器(XSR)移位,從DX管腳輸出。同樣,DR管腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR)中,然后被復制到接收緩沖寄存器(RBR)中,RBR再將數(shù)據(jù)復制到DRR中,最后等候CPU或DMA控制器將數(shù)據(jù)讀走。這種多級緩沖方式使得片內(nèi)的數(shù)據(jù)搬移和外部數(shù)據(jù)的通信可以同時進行。McBSP可以觸發(fā)多種中斷事件,中斷事件可以中斷CPU執(zhí)行中斷服務(wù)子程序:也可以產(chǎn)生同步事件告知DMA控制器,見表4-7。2數(shù)據(jù)的收發(fā)如圖4-23所示,Mc

33、BSP的接收操作采用三級緩沖方式,發(fā)送操作采用兩級緩沖方式。接收數(shù)據(jù)到達DR管腳后移位進入RSR,一旦整個數(shù)據(jù)單元(8位,12位,16位,20位,24位或32位)接收完畢,如果RBR寄存器末滿,則RSR將數(shù)據(jù)復制到RBR中。如果DRR中舊的數(shù)據(jù)已經(jīng)被CPU或DMAEDMA控制器讀走,則RBR將新的數(shù)據(jù)復制到DRR中。發(fā)送數(shù)據(jù)被CPU或DMAEDMA控制器寫到DXR。如果XSR寄存器沒有數(shù)據(jù),則DXR中的值被復制到XSR中:否則,DXR會等待XSR中舊數(shù)據(jù)完全發(fā)送完,才將數(shù)據(jù)復制到XSR中。McBSP的復位有兩種方式:(1)一種是芯片復位,那么McBSP中發(fā)送、接收和采樣時鐘都同時被復位。(2)

34、另一種是通過設(shè)置串口控制寄存器SPCR中的相應(yīng)位,單獨使McBSP復位。設(shè)置XRST使得發(fā)送復位。RRST=0將分別使接收復位,GRST=0將使采樣速率發(fā)生器復位。復位后,整個串口初始化為默認狀態(tài)。所有計數(shù)器及狀態(tài)標志均被復位,這包括接受狀態(tài)標志RFULL、RRDY及RSYNCERR,發(fā)送狀態(tài)標志XEMPTFY、XRDY及XSYNCERR。器件復位和McBSP控制器復位對寄存器標志位和管腳將產(chǎn)生不同的影響。RRDY和XRDY分別是McBSP接收和發(fā)送狀態(tài)準備標志位。讀山DRR數(shù)據(jù)和寫入DXR數(shù)據(jù)都將分別對RRDY和XRDY狀態(tài)位產(chǎn)生影響。讀寫串口數(shù)據(jù)有多種方式進行同步:  

35、  ·輪詢RRDY和XRDY狀態(tài)位;    ·DMAEDMA控制器產(chǎn)生的同步事件(REVT和XEVT);    ·CPU事件(RINT和XINT)產(chǎn)生的中斷。McBSP的控制信號,如時鐘、幀同步和時鐘源都是可以設(shè)置的。圖4-24是McBSP時鐘和幀同步信號的一個典型時序。時鐘CLKR和CLKX對數(shù)據(jù)的接收發(fā)送進行同步,而幀同步信號17SR和FSX則與一個數(shù)據(jù)單元傳輸同步。McBSP允許對數(shù)據(jù)時鐘以及幀同步信號設(shè)置參數(shù),如下:·FSR、FSX、CLKX、CLKR的極性·選擇單相

36、幀或二相幀·定義每相中數(shù)據(jù)單元的個數(shù)·定義每相中,一個數(shù)據(jù)單元的位數(shù)·是選擇幀同步信號觸發(fā)新的串行數(shù)據(jù)發(fā)送流,還是被忽略·選擇幀同步與第一個數(shù)據(jù)位之間的延遲時間,可以是0位,l位,2位延遲·接收數(shù)據(jù)的左右調(diào)整,進行符號擴展或是填充0對McBSP的收發(fā)部分可以各自獨立地選擇時鐘以及幀同步配置。接收和發(fā)送的幀同步信號和時鐘可以由內(nèi)部或是外部產(chǎn)生,根據(jù)寄存器PCR、SRGR中相應(yīng)位的設(shè)置而定。     3SPl協(xié)議下的接口     McBSP中的傳輸時鐘具有停止模式,與S

37、PI協(xié)議的兼容。McBSP支持兩種SPI傳輸格式,在SPCR寄存器的CLKSTP位中設(shè)置。表4-9列出了CLKSTP與CLKXP相配合,對串口時鐘工作模式的控制。圖4-25和圖4-26分別給出了在兩種SPI格式下,時鐘傳輸接口的時序情況。 McBSP既可以作為SPI主設(shè)備又可以作為SPI從設(shè)備。作為SPI主設(shè)備時,由McBSP內(nèi)部的采樣率發(fā)生器產(chǎn)生時鐘CLKX和從設(shè)備使能信號FSX.CLKX定義為輸出口(CLKXM=1),F(xiàn)SX定義為輸出口,與從設(shè)備的使能端(SS)連接。SPI協(xié)議要求:McBSP在移位輸出數(shù)據(jù)之前,F(xiàn)SX信號就必須有效,所以XCR寄存器中XDATDLY位必須設(shè)置為1

38、。XDATDLY=0或2時將導致非法操作。用戶需要設(shè)置SRGR寄存器中的CLKSM位來選擇采樣率發(fā)生器的時鐘源,以及利用CLKGDV位設(shè)置需要的SPI數(shù)據(jù)傳輸速率。在McBSP內(nèi)部會產(chǎn)生一個連續(xù)的CLKX時鐘,在完成傳輸后時鐘禁止輸出,從而實現(xiàn)傳輸接口所需要的時鐘停止模式。因此在McBSP-端,對于發(fā)送和接收的內(nèi)部操作而言,時鐘信號實際上是連續(xù)的。選擇時鐘停止模式時,SRGR寄存器中的幀設(shè)置位(FPER和FWID)無意義。McBSP作為主設(shè)備時的接口框圖如圖4-27所示。當McBSP作為SPI從設(shè)備時,由外部的主設(shè)備產(chǎn)生所需的時鐘信號和從設(shè)備使能信號。串口按照時鐘進行數(shù)據(jù)同步傳輸。輸入的CLK

39、X和FSX信號同時也分別作為McBSP內(nèi)部接收端的CLKR信號和FSR信號。McBSP的FSX引腳信號同從設(shè)備SPI的使能信號SS要求一樣,在進行數(shù)據(jù)傳輸之前,外部主設(shè)備必須先將FSX信號置為有效(低電平)。圖4-28是McBSP作為SPI從設(shè)備的接口框圖。作為SPI從設(shè)備時,McBSP的CLKX管腳和FSX管腳配置為輸入管腳(CLKXM=FSXM=0)。McBSP的RCRXCR寄存器中的(RX)DATDLY位必須置為0,以保證發(fā)送的第一個數(shù)據(jù)能夠出現(xiàn)在DX管腳上,一旦檢測到串行時鐘CLKX有效,就可以立刻接收數(shù)據(jù)。雖然CLKX信號是由外部主設(shè)備產(chǎn)牛,但是McBSP內(nèi)部的采樣率發(fā)生器仍必須被使能,并被設(shè)置為相應(yīng)的SPI模式。內(nèi)部采樣時鐘對輸入的CLKX和FSX:信號進行同步化處理。寄存器SRGR中的CLKSM=I,指定內(nèi)部采樣時鐘由內(nèi)部CPU時鐘產(chǎn)生。必須保證內(nèi)部的CLKG信號頻率至少是SPI數(shù)據(jù)傳輸率的8倍,比如,可以令CLKGDV=l,將采樣率發(fā)生器設(shè)置為最大的速率。設(shè)定McBSP工作在SPI模式下,需要按照以下步驟初始化寄存器:(1)復位收發(fā)端口,將SPCR寄存器中XRST和RRST置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論