版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、集成外設(shè)及DSPBIOS應(yīng)用實(shí)例(上)本文將主要介紹C6000系列DSP的外設(shè),分別從硬件接口特點(diǎn)、接口設(shè)計(jì)和接口設(shè)置等方面介紹了主機(jī)口HPI、多通道緩沖串口McBSP和直接存取控制器DMAEDMA等外設(shè)。另外,介紹了如何利用DSPBIOS操作系統(tǒng)提供的芯片支持庫(kù)(CSL)訪問(wèn)和控制各個(gè)外設(shè)。1 集成外設(shè)資源概述C6000系列DSP在內(nèi)部集成了豐富的外圍設(shè)備(Peripherals),方便用于控制片外的存儲(chǔ)器、主機(jī)以及串行通信設(shè)備。對(duì)于每種型號(hào)的外設(shè)資源都是不一樣的,具體的需要查詢?cè)撔酒募夹g(shù)資料。 在C6000系列DSP中集成的外設(shè)資源有:
2、160; 1DMA與EMDA控制器DMA、EDMA控制器最人的特點(diǎn)是可以在沒(méi)有CPU參與的情況下完成映射存儲(chǔ)空間中的數(shù)據(jù)搬移。這些數(shù)據(jù)搬移可以是在片內(nèi)存儲(chǔ)器、片內(nèi)外設(shè)或是外部器件之間,而且是在CPU后臺(tái)進(jìn)行的。C620xC670x內(nèi)部集成了DMA外設(shè),其特點(diǎn)如下: (1)DMA摔制器獨(dú)立于CPU 工作,具有單周期的數(shù)據(jù)吞葉率。 (2)四個(gè)通道,外加專(zhuān)用的輔助通道,每一個(gè)通道對(duì)十CPU的優(yōu)先級(jí)可設(shè)置。 (3)32位尋址能力,可以對(duì)存儲(chǔ)器映射空間的任何一個(gè)區(qū)域進(jìn)行訪問(wèn)。 (4)傳送數(shù)據(jù)支持81632位字長(zhǎng)。 (5)
3、具有靈活的地址產(chǎn)生方式,有單通道分割(split-channel)操作模式。 (6)每次數(shù)據(jù)塊傳輸完畢后,可以進(jìn)行DMA通道的自動(dòng)初始化。 (7)傳輸操作可以由選擇的同步事件觸發(fā)。 (8)每個(gè)通道都可以觸發(fā)中斷事件。 C621xC671x內(nèi)部集成的是EDMA外設(shè),其特點(diǎn)如下: (1)16個(gè)通道,EDMA可以對(duì)16個(gè)通道進(jìn)行彼此獨(dú)立的控制。 (2)連接:EMDA通道可以被連接起來(lái),構(gòu)成一個(gè)傳輸鏈。 (3)事件同步:每一個(gè)通道都有一個(gè)特定的事件來(lái)觸發(fā)。 (4)主機(jī)接口HPI。主機(jī)口(HPI)是一個(gè)163
4、2位寬度的并行端口,主機(jī)可以通過(guò)它直接訪問(wèn)CPU的整個(gè)存儲(chǔ)空間,包括C6000片內(nèi)存儲(chǔ)映射的外圍設(shè)備。C62xC67x HPI與CPU存儲(chǔ)空間的互連是通過(guò)DMA控制器實(shí)現(xiàn)的。借助專(zhuān)門(mén)的地址和數(shù)據(jù)寄存器,通過(guò)DMA輔助通道,完成HPI對(duì)存儲(chǔ)空間的訪問(wèn)。主機(jī)和CPU都可以對(duì)HPI控制寄存器(HPIC)進(jìn)行訪問(wèn),主機(jī)還可以訪問(wèn)HPI地址寄存器(HPIA)和HPI數(shù)據(jù)寄存器(HPID)。對(duì)于C64x器件,CPU也可以訪問(wèn)HPIA寄存器。2多通道緩沖串口McBSPC6000的多通道緩沖串口(McBSP)是存C2x和C54x的串口的基礎(chǔ)上發(fā)展起來(lái)的,McBSP的功能包括: (1)全雙工通信。&
5、#160; (2)兩級(jí)緩沖數(shù)據(jù)寄存器,允許連續(xù)的數(shù)據(jù)流。 (3)收發(fā)獨(dú)立的幀信號(hào)和時(shí)鐘信號(hào)。 (4)可以與工業(yè)標(biāo)準(zhǔn)的編解碼器、AICs(模擬接口芯片)以及其他串行AD,DA接口。 (5)數(shù)據(jù)傳輸可以利用外部時(shí)鐘,或者是片內(nèi)的可編程時(shí)鐘。 (6)當(dāng)利用DMA、McBSP服務(wù)時(shí),串口數(shù)據(jù)讀寫(xiě)具有自動(dòng)緩沖能力。 3外設(shè)存儲(chǔ)接口EMIF EMIF是實(shí)現(xiàn)外設(shè)存儲(chǔ)器與DSP無(wú)縫連接的橋梁,EMIF支持的存儲(chǔ)器包括: (1)同步突發(fā)靜態(tài)RAM(SBSRAM)。 (2)同步動(dòng)態(tài)RAM(SDRAM)。 (
6、3)異步器件(包括異步SRAM,ROM和FIFO等)。 (4)外部共享存儲(chǔ)空間的操作。EMIF整個(gè)外部空間最大容量為64MB,分為4個(gè)空間(2E0CE3,每個(gè)CE空間彼此獨(dú)立,可以進(jìn)行不同的訪問(wèn)控制,但是某些控制信號(hào)線是復(fù)用的,使用時(shí)一定要注意。數(shù)據(jù)總線寬度32bit,同時(shí)也提供816位存儲(chǔ)器的讀寫(xiě)支持。4擴(kuò)展總線XBUS擴(kuò)展總線(XBUS)是一個(gè)32位寬度的總線,支持多種異步外設(shè)、異步或同步FIFOs、PCI接口芯片和其他類(lèi)型的外部主機(jī)。在主機(jī)口接口方面,擴(kuò)展總線的功能較HPI有了很大增強(qiáng)。XBUS提供了曲種模式,即同步和異步主機(jī)口模式。異步模式相當(dāng)于一個(gè)32位的HPI,同步模式
7、支持多種協(xié)議的接口。目前在C6202和C6203中具有擴(kuò)展總線XBUS功能。5自舉邏輯控制 TI C6000系列DSP芯片使用多種加載方式。根據(jù)復(fù)位前管腳的狀態(tài)執(zhí)行相應(yīng)的加載方式。目前提供的3種加載方式如下:(1)沒(méi)有BOOT處理:CPU直接從地址0處開(kāi)始運(yùn)行。(2)ROM加載模式:通過(guò)DMA控制器,把存儲(chǔ)在外部存儲(chǔ)器里的程序加載到內(nèi)部首地址0處,在加載過(guò)程中,CPU已經(jīng)脫離復(fù)位狀態(tài),但是仍處于stall狀態(tài)。對(duì)于C620xC670x DSP,要求程序代碼必須是以Little-Endian模式存儲(chǔ)在外部存儲(chǔ)器中,尤其是ROM設(shè)備。(3)主機(jī)加載模式:在主機(jī)加載模式下,外部主機(jī)可以通過(guò)HPI接口
8、讀寫(xiě)訪問(wèn)CPU的存儲(chǔ)空間,包括內(nèi)部配置的寄存器,如EMIF控制寄存器或其他外設(shè)。一旦主機(jī)完成了所有的初始化工作后,必須置DSPINT為1,表示已經(jīng)完成加載過(guò)程,同時(shí)使CPU脫離stall狀態(tài),CPU開(kāi)始從地址0處運(yùn)行程序。在C6201C6701有專(zhuān)門(mén)的管腳BOOTMODE4:O決定DSP芯片復(fù)位后運(yùn)行的加載方式,而C6211C6711是利用主機(jī)口的HD4:0管腳復(fù)用,C6202C6203是利用擴(kuò)展總線的XD4:0管腳復(fù)用。6定時(shí)器(26000系列集成了32位的通用定時(shí)器。定時(shí)器的輸入時(shí)鐘可以由內(nèi)部產(chǎn)生,也可以是外部時(shí)鐘;可以通過(guò)輸出口TOUT輸出時(shí)鐘。TINT和。TOUT兩個(gè)管腳也可以被配置為
9、GPIO口。定時(shí)器可以用于 (1)計(jì)時(shí)。 (2)事件計(jì)數(shù)。 (3)產(chǎn)生脈沖。 (4)產(chǎn)生CPU中斷信號(hào)。 (5)產(chǎn)生DMA的同步信號(hào)。2 DSPBlOSCCS(Code Composer Studio)是一個(gè)完整的DSP集成開(kāi)發(fā)環(huán)境,所有的TI DSP都可以使用該軟件進(jìn)行丌發(fā)。在CCS中,不僅集成了常規(guī)的開(kāi)發(fā)工具如源程序編輯器、代碼生成工具(編譯、連接器)以及調(diào)試環(huán)境外,還提供了DSPBIOS開(kāi)發(fā)工具。DSPBIOS是一個(gè)可裁剪的實(shí)時(shí)操作系統(tǒng),方便用戶編寫(xiě)多任務(wù)應(yīng)用程序。DSPBIOS提供了類(lèi)似于先占式的多線程運(yùn)行方式、硬
10、件驅(qū)動(dòng)、實(shí)時(shí)分析和配置工具。DSPBIOS已經(jīng)是DSP開(kāi)發(fā)過(guò)程中重要的工具。在本節(jié)將介紹DSPBIOS工具的使用。2.1 DSP/BIOS概述DSPBIOS是一個(gè)可裁剪的實(shí)時(shí)操作系統(tǒng),本身占用很少的CPU資源,被集成在CCS開(kāi)發(fā)環(huán)境里。該操作系統(tǒng)由TI公司免費(fèi)提供。DSPBIOS提供底層的應(yīng)用函數(shù)接口,可用于支持系統(tǒng)實(shí)時(shí)分析、線程管理、調(diào)度軟件中斷、周期函數(shù)idle函數(shù)(后臺(tái)運(yùn)行函數(shù))以及外部硬件中斷與各種外設(shè)的管理。DSPBIOS主要包括以下幾個(gè)部分: 1DSPBlOS配置工具CCS提供了DSPBIOS GUI功能,即DSPBIOS配置工具。使
11、用該工具,可以靜態(tài)創(chuàng)建和配置程序中使用的DSPBIOS對(duì)象,也可以配置存儲(chǔ)器分配、線程管理和中斷句柄。2DSPBIOS實(shí)時(shí)分析工具DSPBIOS提供的一個(gè)強(qiáng)大的實(shí)時(shí)分析工具。使用該工具可以實(shí)時(shí)觀測(cè)程序的運(yùn)行狀況,如各個(gè)線程占用CPU運(yùn)行時(shí)間、代碼執(zhí)行時(shí)間統(tǒng)計(jì)、顯示輸出信息等。 3DSPBIOS應(yīng)用程序接口(API)DSPBIOS提供了超過(guò)150個(gè)API函數(shù),其中有與C語(yǔ)言、C+語(yǔ)言和匯編語(yǔ)言接口的函數(shù)。這些API函數(shù)是為在硬件目標(biāo)的嵌入式程序工作的,包括實(shí)時(shí)統(tǒng)計(jì)、IO模塊、軟件中斷管理和時(shí)鐘管理等模塊。由于應(yīng)用程序的不同,DSPBIOS API函數(shù)的代碼長(zhǎng)度
12、從2002000B不等。程序通過(guò)調(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的程序里,有一個(gè)DSPBIOS的配置文什,該配置文件的后綴名為.cdb。這是一個(gè)圖形界面的參數(shù)設(shè)置窗口,如圖4-1所示。主要有兩種功能:(1)確定DSPBIOS使用的各種參數(shù)。(2)可以靜態(tài)說(shuō)明需要調(diào)用的DSPBIOS模塊,包括中斷
13、、任務(wù)和內(nèi)部集成的外設(shè)等。 1系統(tǒng)設(shè)置項(xiàng)系統(tǒng)設(shè)置項(xiàng)包括全局設(shè)置、存儲(chǔ)器段管理器、系統(tǒng)設(shè)置和模塊鉤子管理器,如圖4-2所示。在全局設(shè)置的屬性窗口中可以設(shè)置正使用的DSP型號(hào)、選擇使用的片級(jí)支持庫(kù)CSL、Endian模式和Cache模式等多種參數(shù)。在存儲(chǔ)器段管理器的屬性窗口中可以進(jìn)行系統(tǒng)程序存儲(chǔ)段的管理。通過(guò)該項(xiàng)設(shè)置,系統(tǒng)將自動(dòng)生成系統(tǒng)程序連接時(shí)使用的.cmd文件。2實(shí)時(shí)分析工具實(shí)時(shí)分析工具包括LOG管理器和統(tǒng)計(jì)類(lèi)管理器,如圖4-3所示。用戶可以利用LOG模塊中的事件日志來(lái)記錄實(shí)時(shí)的事件。系統(tǒng)口志記錄系統(tǒng)所有運(yùn)行事件包括系統(tǒng)出錯(cuò)等事件。用戶可以用LOG_printf或LOG_event函
14、數(shù)在用戶日志中添加消息。用戶可以利用STS模塊仝面了解中斷、任務(wù)以及用戶自己定義的代碼段或函數(shù)的運(yùn)行時(shí)間。3線程管理DSPBIOS是一個(gè)類(lèi)似于先占式的多任務(wù)操作系統(tǒng)。BIOS把任務(wù)稱(chēng)之為線程,一個(gè)線程是一個(gè)單獨(dú)的控制點(diǎn),可能包含一個(gè)子程序、一個(gè)宏或者足一個(gè)函數(shù)調(diào)用。DSPBIOS內(nèi)核支持具有不同優(yōu)先級(jí)的多種類(lèi)型線程運(yùn)行,高優(yōu)先級(jí)的線程可以中斷低優(yōu)先級(jí)的線程,因此具有類(lèi)似的先占式特點(diǎn)。 DSPBIOS提供了以下幾種線程類(lèi)型,優(yōu)先級(jí)從高到低。 (1)硬件中斷HWI(含CLK模塊)。 (2)軟件中斷SWI(含PRD模塊)。
15、60; (3)任務(wù)TSK。 (4)后臺(tái)線程IDL。 線程管理的界面如圖4-4所示,使用GUI可以很方便地增加刪除線程。 4同步同步主要的任務(wù)就是負(fù)責(zé)線程之間的協(xié)調(diào),如同步通信、數(shù)據(jù)交換等。其中包括旗語(yǔ)、郵箱、隊(duì)列管理和資源鎖定管理等部分,如圖4-5所示。5輸入輸出 DSPBIOS內(nèi)核提供了豐富的數(shù)據(jù)交換途徑。利用BIOS可以方便地實(shí)現(xiàn)主機(jī)和DSP之間的實(shí)時(shí)數(shù)據(jù)交換(RTDX和HST)以及各種線程之間的數(shù)據(jù)交換。DSPBIOS的PIP模塊和SIO模塊將主要用于IO數(shù)據(jù)流的緩沖,這些數(shù)據(jù)流稱(chēng)
16、為線程、DSP芯片和實(shí)時(shí)外圍設(shè)備提供了牢固的數(shù)據(jù)軟件結(jié)構(gòu)。輸入輸出界面如圖4-6所示。6片級(jí)支持庫(kù)片級(jí)支持庫(kù)(CSL)提供了一個(gè)C語(yǔ)言接口的配置和控制片內(nèi)外設(shè)1具。CSL集成在BIOS里,系統(tǒng)程序可以使用該功能,也可以不使用。使用片級(jí)支持庫(kù)(CSL)簡(jiǎn)化了DSP片上外設(shè)開(kāi)發(fā)時(shí)間,可以加快項(xiàng)目開(kāi)發(fā)進(jìn)度。片劑支持庫(kù)(CSL)可以預(yù)先靜態(tài)設(shè)置,也可以在程序運(yùn)行時(shí)動(dòng)態(tài)設(shè)置。2.3 DSPBIOS編程實(shí)例DSPBIOS是一個(gè)嵌入式實(shí)時(shí)操作系統(tǒng)。在BIOS基礎(chǔ)上編程與普通的編寫(xiě)程序不同,下面將以TI的例了來(lái)介紹BIOS的編程特點(diǎn)。 (1)首先新建一個(gè)BIOS
17、配置文件。建市兩個(gè)軟件中斷SWl0和SWll,SWl0的優(yōu)先級(jí)設(shè)為1,SWll優(yōu)先級(jí)設(shè)為2,如圖4-7所示。保存例子,名稱(chēng)為switest.cdb。(2)新建一個(gè)工程,工程名switest.pit。把配置文件switest.cdb加入到工程文件中去,同時(shí)把switestcfg.cmd文件也加入到工程文件中。(3)新建switest.C文件。源文件如下:(4)編譯連接工程,打開(kāi)execution graph、statistics view和message log窗口,然后運(yùn)行程序。在實(shí)時(shí)分析工具中可以觀察到線程SWIO和SWll運(yùn)行一次,部分時(shí)間是其他線程和KNL-swi運(yùn)行,如圖4-8圖4-1
18、0所示。3 TMS320C6000的HPl接口設(shè)計(jì)本節(jié)主要介紹主機(jī)接口外設(shè)HPI,其中介紹了主機(jī)如何通過(guò)主機(jī)接口(Host-port interface,HPI)讀寫(xiě)訪問(wèn)C6000的存儲(chǔ)器資源,包括HPI的控制寄存器設(shè)置,有關(guān)信號(hào)的作用與接口等。3.1 HPI硬件介紹主機(jī)口(HPI)是一個(gè)1632位寬度的并行端口,主機(jī)可以通過(guò)它直接訪問(wèn)CPU的整個(gè)存儲(chǔ)空間,包括C6000片內(nèi)的存儲(chǔ)映射的外圍設(shè)備。HPI與CPU存儲(chǔ)空間的互連是通過(guò)DMA/EDMA控制器實(shí)現(xiàn)的。借助專(zhuān)門(mén)的地址和數(shù)據(jù)寄存器,通過(guò)DMA輔助通道,完成HPI對(duì)存儲(chǔ)空間的訪問(wèn)。主機(jī)和CPU都呵以對(duì)HPI控制寄存器
19、(HPlC)進(jìn)行訪問(wèn),另外主機(jī)可以訪問(wèn)HPI地址寄存器(HPIA)和HPI數(shù)據(jù)寄存器(HPID)。對(duì)于C64x器件,CPU也可以訪問(wèn)HPIA寄存器。圖4-11中的陰影部分是HPI在C620xC670x整個(gè)芯片中的位置。圖4-12是HPI在C621xC671XC64x整個(gè)芯片中的位置(陰影部分)。表4-1列出了在C6000系列芯片中HPI外設(shè)的區(qū)別。3.2 HPI接口及其應(yīng)用在這里將仔細(xì)介紹HPI接口的特點(diǎn),分析HPI接口信號(hào)和總線時(shí)序的特點(diǎn),硬件接口設(shè)計(jì)和軟件設(shè)計(jì)特點(diǎn)。 1HPI接口與信號(hào)主機(jī)可以通過(guò)HPI接口與CPU連接,HPI管腳信號(hào)功能如表4-2所示,
20、詳細(xì)的信號(hào)描述可以參照TI相關(guān)文檔。 C6000 DSP不同芯片的HPI外設(shè)與主機(jī)接口有所不同,下面簡(jiǎn)要介紹其區(qū)別。對(duì)于C620xC670x芯片的HPI外設(shè),HPI是16位寬度的并行接口,CPU可以自動(dòng)地把主機(jī)連續(xù)寫(xiě)入的兩個(gè)16位數(shù)據(jù)組合成一個(gè)32位數(shù)據(jù)。豐機(jī)把數(shù)據(jù)寫(xiě)入HPID寄存器,DMA輔助通道可以訪問(wèn)所有的CPU地址,把寫(xiě)入的數(shù)據(jù)存儲(chǔ)到指定地址的存儲(chǔ)空間中去。C620xC670x芯片的HPI外設(shè)與主機(jī)連接框圖如圖4-13所示。C621xC671x的HPI管腳接口與C620xC670x類(lèi)似,但是不支持字節(jié)使能信號(hào)線HBE1:0。C621xC671x沒(méi)有提供特殊的EDMA通道來(lái)專(zhuān)門(mén)
21、進(jìn)行HPI存取,而是直接將HPI與片內(nèi)的地址產(chǎn)生單元相連,完全由硬件來(lái)處理硬件請(qǐng)求,如圖4-14所示。C64x芯片的HPI外設(shè)與主機(jī)連接框圖如圖4-15所示。C64x HPI外沒(méi)有32根外部數(shù)據(jù)引腳,支持1632位數(shù)據(jù)傳輸。C64x器件根據(jù)自舉加載配置和器件配置決定是16位還是32位數(shù)據(jù)通道。C64x HPll6是C621xC67lx的HPI外設(shè)增強(qiáng)版本。除了C621xC67lx的HPI外設(shè)功能外,HPll6允許DSP訪問(wèn)HPI地址寄存器HPIA。如圖4-15所示,地址寄存器HPIA分成兩個(gè)寄存器,即HPIA寫(xiě)寄存器(HPIAW)和HPIA讀寄存器(HPIAR)。HPI 32和HPI16功能類(lèi)
22、似,區(qū)別在于數(shù)據(jù)總線寬度不一樣,而且HPI 32不使用 HHWIL信號(hào)線。2HPI總線時(shí)序圖4-16圖4-19分別給出了HPI讀和寫(xiě)操作的時(shí)序。HSTROBE是內(nèi)部選通信號(hào),由HDSl、HDS2和,HCS信號(hào)邏輯組合產(chǎn)生??刂菩盘?hào):HCNTL1:0、HRW、HHWIL和HBE1:0是輸入信號(hào),由主機(jī)驅(qū)動(dòng)。HCNTL1:0和HRW控制對(duì)兩個(gè)半字的訪問(wèn)。HRDY低電平表示HPI已經(jīng)準(zhǔn)備好收發(fā)數(shù)據(jù)。HAS信號(hào)為高電平或者沒(méi)有使用,那么HSTROBE的下降沿鎖存控制信號(hào)。如果使用了HAS信號(hào),在HAS的下降沿鎖存控制信號(hào)??梢愿鶕?jù)具體的情況來(lái)決定是否在接口中應(yīng)用選通信號(hào)HAS,因此下面的讀寫(xiě)時(shí)序中部各
23、自給出了有HAS和沒(méi)有HAS信號(hào)時(shí)的情況。3HPI控制寄存器HPI外設(shè)利用3個(gè)寄存器完成主機(jī)和DSP之間的數(shù)據(jù)交換。3個(gè)寄存器分別是HPI數(shù)據(jù)寄存器(HPID)、HPI地址寄存器(HPIA)和HPI控制寄存器(HPIC)。對(duì)于C64x器件,HPI地址寄存器分為地址讀寄存器(HPIAR)和地址寫(xiě)寄存器(HPIAW)。HPIA中存放主機(jī)訪問(wèn)DSP存儲(chǔ)空間的地址,這是一個(gè)30位值,最低2位固定為0。對(duì)于C62xC67x,只有主機(jī)才能訪問(wèn)HPIA,DSP不可以訪問(wèn)。對(duì)于C64x,主機(jī)和DSP都可以訪問(wèn)HPIA寄存器,主機(jī)可以對(duì)DSP的不同存儲(chǔ)空問(wèn)進(jìn)行讀寫(xiě)操作。HPID中存放的是主機(jī)從存儲(chǔ)空問(wèn)讀取的數(shù)據(jù)
24、,或者是主機(jī)要向DSP的存儲(chǔ)空間寫(xiě)入的數(shù)據(jù)。HPIC是32位寄存器,高16位和低16位對(duì)應(yīng)的是同一個(gè)物理存儲(chǔ)區(qū),因此高16位和低16位的內(nèi)容是一樣的。在寫(xiě)HPIC時(shí),必須保證寫(xiě)入數(shù)據(jù)的高16位和低16位的內(nèi)容一致。HPIC寄存器如圖4-20所示,其中各位意義如表4-3所示。 4主機(jī)訪問(wèn)操作順序 主機(jī)按照以下的順序完成對(duì)HPI的訪問(wèn): (1)初始化HPIC寄存器。 (2)初始化HPIA寄存器。 (3)從HPID寄存器讀取寫(xiě)入數(shù)據(jù)。對(duì)HPI任何一個(gè)寄存器的訪問(wèn),主機(jī)都需要在HPI總線上進(jìn)行兩次half-word的存取(第1個(gè)16位HHWIL
25、為0,第2個(gè)HHWIL為1)。一般主機(jī)不會(huì)打斷這樣的兩次存取,一旦打斷可能會(huì)引起整個(gè)數(shù)據(jù)的丟失或者數(shù)據(jù)被破壞。如果前一次HPI的訪問(wèn)尚未完成,那么當(dāng)前的第一個(gè)half-word的存取需要等待,此時(shí)HPI會(huì)置HRDY信號(hào)為高。但是在第2個(gè)半字存取訪問(wèn)時(shí),HRDY可以為有效狀態(tài)。C64xfPl32把兩個(gè)半字組合成一個(gè)字傳輸。在訪問(wèn)任何數(shù)據(jù)之前,必須對(duì)HPI進(jìn)行初始化,包括設(shè)置HPIC和HPIA寄存器。對(duì)C62xC67x和C64x是有所不同的。 HPI的數(shù)據(jù)傳輸模式有4種: (1)不帶地址白增的讀操作。 (2)帶地址自增的讀操作
26、。 (3)不帶地址自增的寫(xiě)操作。 (4)帶地址自增的寫(xiě)操作。這些模式由HPI的HCNTL1:O信號(hào)以及HHWIL進(jìn)行控制,具體如表4-4所示。其中的地址自增功能使主機(jī)可以很便捷地訪問(wèn)一個(gè)線性存儲(chǔ)區(qū)域,而無(wú)需反復(fù)地向HPIA中寫(xiě)入需要的地址。5HP的自舉加載操作通過(guò)HPI接口也提供了相應(yīng)的HPI加載方式。當(dāng)CPU復(fù)位時(shí),根據(jù)相應(yīng)的加載配置,CPU進(jìn)入HPI加載處理方式。在HPI加載處理方式中,DSP處在復(fù)位狀念,而其他部分脫離復(fù)位狀態(tài)。通過(guò)HPI接口,主機(jī)可以訪問(wèn)DSP的全部存儲(chǔ)空間,包括片內(nèi)外設(shè)寄存器、片內(nèi)存
27、儲(chǔ)器和片外存儲(chǔ)器。主機(jī)完成初始化DSP后,需要向HPI控制寄存器HPIC的DSPHlNT位寫(xiě)1,這樣才可以使DSP脫離復(fù)位狀態(tài)開(kāi)始從地址0處執(zhí)行程序。HPI加載處理過(guò)程如圖4-21所示。3.3 BlOS中HPI設(shè)置實(shí)例HPI模塊提供了訪問(wèn)HPI寄存器的API函數(shù),其中用于訪問(wèn)HPI狀態(tài)位和設(shè)置中斷事件。對(duì)于C64x,還包括讀寫(xiě)HPlA寄存器。在CCS中沒(méi)有提供HPI設(shè)置圖形用戶接口。 HPI模塊提供的API函數(shù)如表4-5所示。4 TMS320C6000的McBSP接口設(shè)計(jì)本節(jié)對(duì)多通道緩沖串口McBSP(Multi-channel Bu
28、ffered Serial Port)的硬件及其操作進(jìn)行介紹,包括有關(guān)的控制寄存器設(shè)置和時(shí)序圖。此外,還介紹在BIOS中McBSP模塊的特點(diǎn)和應(yīng)用。4.1 McBSP硬件介紹C6000的多通道緩沖串口(McBSP)是在TMS320C2xC3xC5x和TMS320C54x串口的基礎(chǔ)上發(fā)展起來(lái)的,McBSP的功能包括: (1)全雙工通信。 (2)雙緩沖數(shù)據(jù)寄存器,允許連續(xù)的數(shù)據(jù)流。 (3)收發(fā)獨(dú)立的幀信號(hào)和時(shí)鐘信號(hào)。 (4)可以與工業(yè)標(biāo)準(zhǔn)的編解碼器、AICs(模擬接口芯片)以及其他串行AD,
29、DA接口。 (5)數(shù)據(jù)傳輸可以利用外部時(shí)鐘,或者是片內(nèi)的可編程時(shí)鐘。 (6)通過(guò)5通道的DMA控制器,串口數(shù)據(jù)讀寫(xiě)具有自動(dòng)緩沖能力。 另外,McBSP有以下特點(diǎn): (1)支持以下方式的傳輸接口: TIE1幀協(xié)議 MVIP兼容的交換方式以及STBUS兼容設(shè)備,包括:MVIP幀方式、H.100幀方 式和SCSA幀方式 IOM-2兼容設(shè)備 AC97兼容設(shè)備 IIS
30、兼容設(shè)備 SPI設(shè)備 (2)可與多達(dá)128個(gè)通道進(jìn)行收發(fā)。 (3)傳輸?shù)臄?shù)據(jù)字長(zhǎng)可以是8位、12位、16位、20位、24位和32位。 (4)-律/A-律壓擴(kuò)硬件。 (5)對(duì)8位數(shù)據(jù)的傳輸,可選擇LSB先傳還是MSB先傳。 (6)可設(shè)置幀同步信號(hào)和數(shù)據(jù)時(shí)鐘信號(hào)的極性。 (7)內(nèi)部傳輸時(shí)鐘和幀同步信號(hào)可編程程度高。所有的C6000器件有著同樣的McBSP接口,但是C621xC671x和C64x器件的McBSP接口卻有所不同,增加了新的特色和增強(qiáng)功能。4.2 McBSP接口及應(yīng)用McBSP外設(shè)
31、具有很多強(qiáng)大功能,在這里將要介紹外設(shè)的信號(hào)接口、控制寄存器、時(shí)序特點(diǎn)以及初始化工作;同時(shí)介紹了作為SPI接口和通用IO口使用的原理和方法。對(duì)于McBSP的多通道工作模式和-律A-律壓擴(kuò)硬件功能沒(méi)有介紹,有興趣的讀者可以參照TI相關(guān)文檔。 1信號(hào)接口和寄存器McBSP包括一個(gè)數(shù)據(jù)通道和一個(gè)控制通道,連接到外部器件。數(shù)據(jù)通過(guò)發(fā)送(DX)和接收(DR)引腳與外部器件通信,而其他的4個(gè)引腳起時(shí)鐘和幀同步信號(hào)作用。C6000通過(guò)片內(nèi)的外設(shè)總線訪問(wèn)串口的32位控制寄存器,進(jìn)而實(shí)現(xiàn)與McBSP間的通信與控制。McBSP結(jié)構(gòu)如圖4-23所示。外部引腳含義如表4-6所示。
32、160;數(shù)據(jù)通道完成數(shù)據(jù)的發(fā)送和接收。CPU或DMA控制器將待發(fā)送的數(shù)據(jù)寫(xiě)入發(fā)送寄仔器(DXR)中,從接收寄存器(DRR)讀取接收到的數(shù)據(jù)。寫(xiě)入DXR的數(shù)據(jù)通過(guò)發(fā)送移化寄存器(XSR)移位,從DX管腳輸出。同樣,DR管腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR)中,然后被復(fù)制到接收緩沖寄存器(RBR)中,RBR再將數(shù)據(jù)復(fù)制到DRR中,最后等候CPU或DMA控制器將數(shù)據(jù)讀走。這種多級(jí)緩沖方式使得片內(nèi)的數(shù)據(jù)搬移和外部數(shù)據(jù)的通信可以同時(shí)進(jìn)行。McBSP可以觸發(fā)多種中斷事件,中斷事件可以中斷CPU執(zhí)行中斷服務(wù)子程序:也可以產(chǎn)生同步事件告知DMA控制器,見(jiàn)表4-7。2數(shù)據(jù)的收發(fā)如圖4-23所示,Mc
33、BSP的接收操作采用三級(jí)緩沖方式,發(fā)送操作采用兩級(jí)緩沖方式。接收數(shù)據(jù)到達(dá)DR管腳后移位進(jìn)入RSR,一旦整個(gè)數(shù)據(jù)單元(8位,12位,16位,20位,24位或32位)接收完畢,如果RBR寄存器末滿,則RSR將數(shù)據(jù)復(fù)制到RBR中。如果DRR中舊的數(shù)據(jù)已經(jīng)被CPU或DMAEDMA控制器讀走,則RBR將新的數(shù)據(jù)復(fù)制到DRR中。發(fā)送數(shù)據(jù)被CPU或DMAEDMA控制器寫(xiě)到DXR。如果XSR寄存器沒(méi)有數(shù)據(jù),則DXR中的值被復(fù)制到XSR中:否則,DXR會(huì)等待XSR中舊數(shù)據(jù)完全發(fā)送完,才將數(shù)據(jù)復(fù)制到XSR中。McBSP的復(fù)位有兩種方式:(1)一種是芯片復(fù)位,那么McBSP中發(fā)送、接收和采樣時(shí)鐘都同時(shí)被復(fù)位。(2)
34、另一種是通過(guò)設(shè)置串口控制寄存器SPCR中的相應(yīng)位,單獨(dú)使McBSP復(fù)位。設(shè)置XRST使得發(fā)送復(fù)位。RRST=0將分別使接收復(fù)位,GRST=0將使采樣速率發(fā)生器復(fù)位。復(fù)位后,整個(gè)串口初始化為默認(rèn)狀態(tài)。所有計(jì)數(shù)器及狀態(tài)標(biāo)志均被復(fù)位,這包括接受狀態(tài)標(biāo)志RFULL、RRDY及RSYNCERR,發(fā)送狀態(tài)標(biāo)志XEMPTFY、XRDY及XSYNCERR。器件復(fù)位和McBSP控制器復(fù)位對(duì)寄存器標(biāo)志位和管腳將產(chǎn)生不同的影響。RRDY和XRDY分別是McBSP接收和發(fā)送狀態(tài)準(zhǔn)備標(biāo)志位。讀山DRR數(shù)據(jù)和寫(xiě)入DXR數(shù)據(jù)都將分別對(duì)RRDY和XRDY狀態(tài)位產(chǎn)生影響。讀寫(xiě)串口數(shù)據(jù)有多種方式進(jìn)行同步:
35、 ·輪詢RRDY和XRDY狀態(tài)位; ·DMAEDMA控制器產(chǎn)生的同步事件(REVT和XEVT); ·CPU事件(RINT和XINT)產(chǎn)生的中斷。McBSP的控制信號(hào),如時(shí)鐘、幀同步和時(shí)鐘源都是可以設(shè)置的。圖4-24是McBSP時(shí)鐘和幀同步信號(hào)的一個(gè)典型時(shí)序。時(shí)鐘CLKR和CLKX對(duì)數(shù)據(jù)的接收發(fā)送進(jìn)行同步,而幀同步信號(hào)17SR和FSX則與一個(gè)數(shù)據(jù)單元傳輸同步。McBSP允許對(duì)數(shù)據(jù)時(shí)鐘以及幀同步信號(hào)設(shè)置參數(shù),如下:·FSR、FSX、CLKX、CLKR的極性·選擇單相
36、幀或二相幀·定義每相中數(shù)據(jù)單元的個(gè)數(shù)·定義每相中,一個(gè)數(shù)據(jù)單元的位數(shù)·是選擇幀同步信號(hào)觸發(fā)新的串行數(shù)據(jù)發(fā)送流,還是被忽略·選擇幀同步與第一個(gè)數(shù)據(jù)位之間的延遲時(shí)間,可以是0位,l位,2位延遲·接收數(shù)據(jù)的左右調(diào)整,進(jìn)行符號(hào)擴(kuò)展或是填充0對(duì)McBSP的收發(fā)部分可以各自獨(dú)立地選擇時(shí)鐘以及幀同步配置。接收和發(fā)送的幀同步信號(hào)和時(shí)鐘可以由內(nèi)部或是外部產(chǎn)生,根據(jù)寄存器PCR、SRGR中相應(yīng)位的設(shè)置而定。 3SPl協(xié)議下的接口 McBSP中的傳輸時(shí)鐘具有停止模式,與S
37、PI協(xié)議的兼容。McBSP支持兩種SPI傳輸格式,在SPCR寄存器的CLKSTP位中設(shè)置。表4-9列出了CLKSTP與CLKXP相配合,對(duì)串口時(shí)鐘工作模式的控制。圖4-25和圖4-26分別給出了在兩種SPI格式下,時(shí)鐘傳輸接口的時(shí)序情況。 McBSP既可以作為SPI主設(shè)備又可以作為SPI從設(shè)備。作為SPI主設(shè)備時(shí),由McBSP內(nèi)部的采樣率發(fā)生器產(chǎn)生時(shí)鐘CLKX和從設(shè)備使能信號(hào)FSX.CLKX定義為輸出口(CLKXM=1),F(xiàn)SX定義為輸出口,與從設(shè)備的使能端(SS)連接。SPI協(xié)議要求:McBSP在移位輸出數(shù)據(jù)之前,F(xiàn)SX信號(hào)就必須有效,所以XCR寄存器中XDATDLY位必須設(shè)置為1
38、。XDATDLY=0或2時(shí)將導(dǎo)致非法操作。用戶需要設(shè)置SRGR寄存器中的CLKSM位來(lái)選擇采樣率發(fā)生器的時(shí)鐘源,以及利用CLKGDV位設(shè)置需要的SPI數(shù)據(jù)傳輸速率。在McBSP內(nèi)部會(huì)產(chǎn)生一個(gè)連續(xù)的CLKX時(shí)鐘,在完成傳輸后時(shí)鐘禁止輸出,從而實(shí)現(xiàn)傳輸接口所需要的時(shí)鐘停止模式。因此在McBSP-端,對(duì)于發(fā)送和接收的內(nèi)部操作而言,時(shí)鐘信號(hào)實(shí)際上是連續(xù)的。選擇時(shí)鐘停止模式時(shí),SRGR寄存器中的幀設(shè)置位(FPER和FWID)無(wú)意義。McBSP作為主設(shè)備時(shí)的接口框圖如圖4-27所示。當(dāng)McBSP作為SPI從設(shè)備時(shí),由外部的主設(shè)備產(chǎn)生所需的時(shí)鐘信號(hào)和從設(shè)備使能信號(hào)。串口按照時(shí)鐘進(jìn)行數(shù)據(jù)同步傳輸。輸入的CLK
39、X和FSX信號(hào)同時(shí)也分別作為McBSP內(nèi)部接收端的CLKR信號(hào)和FSR信號(hào)。McBSP的FSX引腳信號(hào)同從設(shè)備SPI的使能信號(hào)SS要求一樣,在進(jìn)行數(shù)據(jù)傳輸之前,外部主設(shè)備必須先將FSX信號(hào)置為有效(低電平)。圖4-28是McBSP作為SPI從設(shè)備的接口框圖。作為SPI從設(shè)備時(shí),McBSP的CLKX管腳和FSX管腳配置為輸入管腳(CLKXM=FSXM=0)。McBSP的RCRXCR寄存器中的(RX)DATDLY位必須置為0,以保證發(fā)送的第一個(gè)數(shù)據(jù)能夠出現(xiàn)在DX管腳上,一旦檢測(cè)到串行時(shí)鐘CLKX有效,就可以立刻接收數(shù)據(jù)。雖然CLKX信號(hào)是由外部主設(shè)備產(chǎn)牛,但是McBSP內(nèi)部的采樣率發(fā)生器仍必須被使能,并被設(shè)置為相應(yīng)的SPI模式。內(nèi)部采樣時(shí)鐘對(duì)輸入的CLKX和FSX:信號(hào)進(jìn)行同步化處理。寄存器SRGR中的CLKSM=I,指定內(nèi)部采樣時(shí)鐘由內(nèi)部CPU時(shí)鐘產(chǎn)生。必須保證內(nèi)部的CLKG信號(hào)頻率至少是SPI數(shù)據(jù)傳輸率的8倍,比如,可以令CLKGDV=l,將采樣率發(fā)生器設(shè)置為最大的速率。設(shè)定McBSP工作在SPI模式下,需要按照以下步驟初始化寄存器:(1)復(fù)位收發(fā)端口,將SPCR寄存器中XRST和RRST置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店協(xié)議價(jià)格合同
- 工程設(shè)計(jì)與勘察合同
- 幼兒園房屋出租合同
- 中小企業(yè)用工合同范文
- 采購(gòu)合同標(biāo)準(zhǔn)范本
- 指定車(chē)輛租賃合同書(shū)
- led燈具購(gòu)銷(xiāo)合同范文
- 爐渣銷(xiāo)售合同
- 單元樓裝修合同樓房裝修合同
- 承包合同如何寫(xiě)
- 中國(guó)成人暴發(fā)性心肌炎診斷和治療指南(2023版)解讀
- 復(fù)產(chǎn)復(fù)工六個(gè)一
- 招商引資項(xiàng)目落地工作方案
- 商業(yè)綜合體投資計(jì)劃書(shū)
- 2024妊娠期糖尿病指南課件
- 《鋼鐵是怎樣煉成的》練習(xí)題(含答案)
- 急診酒精中毒護(hù)理查房
- 施耐德低壓電器選型
- 碳纖維加固定額B013
- 脊柱外科進(jìn)修匯報(bào)
- 測(cè)繪工程產(chǎn)品價(jià)格表匯編
評(píng)論
0/150
提交評(píng)論