DSP原理與開(kāi)發(fā)_第1頁(yè)
DSP原理與開(kāi)發(fā)_第2頁(yè)
DSP原理與開(kāi)發(fā)_第3頁(yè)
DSP原理與開(kāi)發(fā)_第4頁(yè)
DSP原理與開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 DSPF2812原理與開(kāi)發(fā) TMS320C2000系列是美國(guó)TI公司推出的最佳測(cè)控應(yīng)用的定點(diǎn)DSP芯片,其主流產(chǎn)品分為四個(gè)系列:C20 x、C24x、C27x和C28x。C20 x可用于通信設(shè)備、數(shù)字相機(jī)、嵌入式家電設(shè)備等;C24x主要用于數(shù)字馬達(dá)控制、電機(jī)控制、工業(yè)自動(dòng)化、電力轉(zhuǎn)換系統(tǒng)等。近年來(lái),TI公司又推出了具有更高性能的改進(jìn)型C27x和C28x系列芯片,進(jìn)一步增強(qiáng)了芯片的接口能力和嵌入功能,從而拓寬了數(shù)字信號(hào)處理器的應(yīng)用領(lǐng)域。 TMS320C28x系列是TI公司最新推出的DSP芯片,是目前國(guó)際市場(chǎng)上最先進(jìn)、功能最強(qiáng)大的32位定點(diǎn)DSP芯片。它既具有數(shù)字信號(hào)處理能力,又具有強(qiáng)大的事件管

2、理能力和嵌入式控制功能,特別適用于有大批量數(shù)據(jù)處理的測(cè)控場(chǎng)合,如工業(yè)自動(dòng)化控制、電力電子技術(shù)應(yīng)用、智能化儀器儀表及電機(jī)、馬達(dá)伺服控制系統(tǒng)等C28x系列芯片的功能框圖DSP F2812數(shù)字信號(hào)處理器介紹TMS320X28XX系列DSPl高性能靜態(tài)CMOS技術(shù):150MHz,低功耗(核電壓1.8V,I/O口電壓3.3V)。l兼容性好:C28x系列向下兼容C24X系列DSP程序。l片內(nèi)集成大容量存儲(chǔ)器:最多128K字的Flash存儲(chǔ)器、1K字的OTP型ROM、18K字RAM。l兩個(gè)事件管理器EVA、EVB。每個(gè)包含2個(gè)16位通用定時(shí)器、8個(gè)PWM(脈寬調(diào)制信號(hào))輸出通道、3個(gè)捕獲單元、QEP(正交編

3、碼脈沖)接口電路。l12位ADCl3個(gè)通用定時(shí)器TIMER0/1/2l8到16位可編程的SCI(Serial Communication Interface異步串口)l16位SPI(Serial Peripheral Interface串行外設(shè)接口)l多通道緩沖串行口(McBSP)l增強(qiáng)型CAN控制器l最多56個(gè)通用I/O(出入輸出接口)F2812外設(shè)介紹1、事件管理器 在2812上有兩個(gè)事件管理器,EVA和EVB,是數(shù)字電機(jī)控制應(yīng)用的使用到的非常重要的外設(shè),能夠?qū)崿F(xiàn)機(jī)電設(shè)備控制的多種必要功能,每個(gè)事件管理器包括:定時(shí)器、比較器、捕捉單元、PWM邏輯電路、正交編碼脈沖電路以及中斷邏輯電路等。2

4、、模數(shù)轉(zhuǎn)換模塊 2812上的ADC模塊將外部的模擬信號(hào)轉(zhuǎn)換成數(shù)字量,ADC模塊可以將控制信號(hào)進(jìn)行濾波或者實(shí)現(xiàn)運(yùn)動(dòng)控制系統(tǒng)的閉環(huán)控制,尤其在電機(jī)控制系統(tǒng)中,采用ADC模塊采集電機(jī)的電流或者電壓實(shí)現(xiàn)電流環(huán)、電壓環(huán)的閉環(huán)控制。3、SPI和SCI通信接口 SPI是一個(gè)高速同步串行通信接口,能夠?qū)崿F(xiàn)DSP與外部設(shè)備或另一個(gè)DSP之間的串行通信。SCI屬于異步通信接口,支持標(biāo)準(zhǔn)的UART異步通信模式,可以通過(guò)SCI串口與CPU或者其他的一般外設(shè)進(jìn)行通信。4、CAN總線通信模塊 F2812上的CAN總線是增強(qiáng)型的eCAN接口,支持完整的CAN2.0協(xié)議,有32個(gè)可以配置的收/發(fā)郵箱,支持消息定時(shí)功能,而且抗

5、干擾性強(qiáng),最高通信速率可達(dá)到1Mbps,通過(guò)該接口可以構(gòu)建可靠地CAN總線控制或檢測(cè)系統(tǒng)。5、看門(mén)狗 當(dāng)我們進(jìn)行軟件編程時(shí)經(jīng)常會(huì)遇到看門(mén)狗復(fù)位。看門(mén)狗主要用來(lái)檢測(cè)軟件和硬件的運(yùn)行狀態(tài),當(dāng)內(nèi)部計(jì)數(shù)器一處使將產(chǎn)生一個(gè)復(fù)位信號(hào)。為了比便不必要的復(fù)位,用戶需定期的對(duì)看門(mén)狗定時(shí)器進(jìn)行復(fù)位。如果不明原因使CPU得程序中斷,看門(mén)狗將產(chǎn)生一個(gè)復(fù)位信號(hào)。最常見(jiàn)的就是系統(tǒng)軟件進(jìn)入了一個(gè)死循環(huán)或者CPU的程序運(yùn)行到了不確定的的程序空間,從而使系統(tǒng)不能正常工作,這種情況先看門(mén)狗自動(dòng)復(fù)位,能夠有效的提高系統(tǒng)的可靠性6、通用數(shù)字引腳I/O口 F2812引腳中的一部分可以作為特殊功能引腳或普通的GPIO引腳,具體選擇何種功

6、能通過(guò)對(duì)相應(yīng)控制寄存器的設(shè)置實(shí)現(xiàn)。7、PLL時(shí)鐘模塊 PLL(鎖相環(huán))主要用于控制DSP內(nèi)核的工作頻率,外部提供一個(gè)參考時(shí)鐘輸入,經(jīng)過(guò)鎖相環(huán)倍頻或者分頻后提供給DSP內(nèi)核。8、外部中斷接口 F2812數(shù)字信號(hào)處理器支持多種外設(shè)中斷,外設(shè)中斷擴(kuò)展模塊最多支持96個(gè)獨(dú)立的中斷。這些中斷分成8組,每組12個(gè)中斷源。根據(jù)中斷向量表來(lái)確定產(chǎn)生的中斷的類(lèi)型。CPU將自動(dòng)獲取中斷向量,在響應(yīng)中斷時(shí),CPU需要在9個(gè)系統(tǒng)時(shí)鐘地時(shí)間段內(nèi)完成中斷向量的取或運(yùn)算和重要CPU寄存器的保護(hù)。當(dāng)我們?cè)跁r(shí)間敏感程序的設(shè)計(jì)時(shí)需要將由該中斷響應(yīng)延時(shí)所需要的9個(gè)系統(tǒng)時(shí)鐘考慮進(jìn)去。9、存儲(chǔ)器及其接口 2812采用統(tǒng)一編址方式,芯片

7、內(nèi)部提供18KB的SARAM和128KB的Flash存儲(chǔ)器。芯片同時(shí)提供外部存儲(chǔ)器擴(kuò)展接口,外部最高可達(dá)1MB的尋址空間。對(duì)于存儲(chǔ)器的使用我們將在.CMD文件的編寫(xiě)是做詳細(xì)的介紹。第二章 如何開(kāi)始DSP的學(xué)習(xí)與開(kāi)發(fā)2.1 DSP的基本知識(shí)2.2 DSP與MCU、ARM、FPGA的區(qū)別2.3 學(xué)習(xí)開(kāi)發(fā)DSP需要的知識(shí)2.4 如何選擇DSP2.5 DSP開(kāi)發(fā)所需要的準(zhǔn)備工具以及開(kāi)發(fā)平臺(tái)的搭建 2.1DSP的基礎(chǔ)知識(shí)DSP最早的時(shí)候是由TI公司設(shè)計(jì)用來(lái)在玩具上的一款芯片,經(jīng)過(guò)20-30年的發(fā)展,如今DSP已經(jīng)成為我們數(shù)字化信息時(shí)代的一種主控芯片,被廣泛應(yīng)用到各個(gè)領(lǐng)域里面,例如通信,我們的手機(jī)里面很多

8、是使用DSP做主控芯片的,另外家電中的變頻空調(diào)、冰箱等都是用DSP做主控芯片。但是目前國(guó)內(nèi)還沒(méi)有能力來(lái)設(shè)計(jì)和生產(chǎn)DSP芯片。DSP還被應(yīng)用到航空航天,工業(yè)的測(cè)量、控制,生物醫(yī)學(xué)工程以及軍事等很多領(lǐng)域。DSP具有兩層含義;一個(gè)是數(shù)字信號(hào)處理技術(shù),另外一個(gè)就是數(shù)字信號(hào)處理器,以往大家接觸到的多是偏于理論的,在本課程中我們?yōu)榇蠹抑v述的主要是數(shù)字信號(hào)處理器,更具體一點(diǎn)是TI公司生產(chǎn)的TMS320F2812這一款芯片的使用,如何將數(shù)字信號(hào)處理技術(shù)應(yīng)用到數(shù)字信號(hào)處理器當(dāng)中。 2.2 DSP與MCU、ARM、FPGA的區(qū)別DSP的特點(diǎn);采用哈佛結(jié)構(gòu),程序空間與數(shù)據(jù)空間是分開(kāi)的,使得CPU能夠同時(shí)訪問(wèn)指令和數(shù)

9、據(jù),從這一點(diǎn)來(lái)看可以發(fā)現(xiàn)DSP比單片機(jī)等采用馮諾依曼結(jié)構(gòu)的MCU先進(jìn)很多。但單片機(jī)價(jià)格很低。 TI公司的C2000系列DSP的價(jià)格相對(duì)來(lái)說(shuō)也比較便宜,性價(jià)比高,除了強(qiáng)大的數(shù)據(jù)處理能力以外在控制領(lǐng)域應(yīng)用也很廣泛。ARM是一個(gè)面向低預(yù)算市場(chǎng)的微處理器,具有比較強(qiáng)的事物管理功能,適合用來(lái)做操作系統(tǒng),主要的有事體現(xiàn)在控制方面。FPGA是現(xiàn)場(chǎng)可編程門(mén)陣列的縮寫(xiě),內(nèi)部含有含有大量的邏輯單元陣列,用戶可以通過(guò)對(duì)FPGA內(nèi)部的邏輯模塊和IO模塊進(jìn)行重新配置,來(lái)實(shí)現(xiàn)用戶自己的功能,使用FPGA可以大大縮短數(shù)字電路的設(shè)計(jì)時(shí)間,但FPGA的價(jià)格非常貴。2.3 學(xué)習(xí)開(kāi)發(fā)DSP需要的知識(shí)主要分為軟件和硬件兩部分 對(duì)于軟

10、件部分而言,在dsp的開(kāi)發(fā)過(guò)程中主要是采用C語(yǔ)言編寫(xiě)的,在一些對(duì)于時(shí)間要求比較嚴(yán)格的情況下可能會(huì)采用匯編語(yǔ)言,有了C 語(yǔ)言的基礎(chǔ)我們就可以學(xué)習(xí)DSP的開(kāi)發(fā)。 硬件部分:我們所接觸到的硬件的基本原理都是相通的,如果大家有了單片機(jī)的基礎(chǔ)學(xué)習(xí)DSP還是比較簡(jiǎn)單的。2.4 DSP芯片的選擇 DSP的選型是主要考慮的是處理速度、功耗(功耗越小越好)、存儲(chǔ)空間(又分為程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間)、片內(nèi)資源(比如片內(nèi)定時(shí)器、IO口、DMA通道數(shù),中斷的數(shù)量)(1)系統(tǒng)特點(diǎn)每種DSP都有自己比較適合的應(yīng)用領(lǐng)域。以TI公司的DSP為例,C2000系列處理器提供多種控制系統(tǒng)使用的外圍設(shè)備,比較適合控制領(lǐng)域;C50

11、00系列處理速度快、功耗低、相對(duì)成本低廉等特點(diǎn),主要用于便攜設(shè)備及消費(fèi)類(lèi)電子設(shè)備使用;C6000系列預(yù)算速度快,精度高,更適合圖像處理、通信設(shè)備領(lǐng)域。因此在系統(tǒng)設(shè)計(jì)是首先要根據(jù)系統(tǒng)特點(diǎn)進(jìn)行處理器的選擇。(2)算法格式DSP分為定點(diǎn)和浮點(diǎn)兩類(lèi)。數(shù)字信號(hào)處理算法有多種,不同系統(tǒng)、不同算法對(duì)算法格式和處理進(jìn)精度要求不同,浮點(diǎn)運(yùn)算可以實(shí)現(xiàn)大的動(dòng)態(tài)數(shù)據(jù)范圍。采用浮點(diǎn)DSP設(shè)計(jì)系統(tǒng)時(shí),一般不需要考慮處理的動(dòng)態(tài)范圍和精度,更適合高級(jí)語(yǔ)言編寫(xiě),但成本和功耗較高??梢酝ㄟ^(guò)算法模擬確定動(dòng)態(tài)范圍和精度,確定選用的DSP類(lèi)型。(3)處理速度處理速度是選擇DSP時(shí)最重要的考慮因素,與時(shí)鐘的頻率有密切關(guān)系。(4)功耗(5

12、)性價(jià)比。 TI公司目前主推的DSP有C2000、C5000、C6000、達(dá)芬奇、OMAP等幾個(gè)系列 C2000主要用于數(shù)字控制和運(yùn)動(dòng)控制,常用的有24系列和28 系列。其中2406、2407、2802、2812是定點(diǎn)的芯片,28335是浮點(diǎn)的芯片。本教程主要來(lái)講2812。C2000些列主要用于控制領(lǐng)域,他的一個(gè)主要特點(diǎn)是有大量的外設(shè)資源,比如說(shuō)有AD、定時(shí)器、各種串口(包括同步的和異步的)、看門(mén)狗、CAN總線和PWM發(fā)生器,只有C2000系列的DSP里面才有FLASH和異步通信串口(能夠和PC機(jī)連接進(jìn)行通信)。C5000主要面向低功耗的首次設(shè)備無(wú)線終端,主頻可達(dá)到80M-400M之間。用的比

13、較多的是C55系列和C54系列。當(dāng)前來(lái)說(shuō)C5000些列應(yīng)用的比較少。 C6000主要面向高端的寬帶網(wǎng)絡(luò)、數(shù)字圖像處理。C6000系列的只提供BGA封裝的,也只能夠用于多層的PCB板。用的比較多的是C64XX和C67XX。 達(dá)芬奇系列用的比較多的是安全監(jiān)控領(lǐng)域。用得較多的比如DM642。 OMAP系列實(shí)際上是在DSP的基礎(chǔ)上增加了一個(gè)RAM核,是一個(gè)雙核的處理器。繼承了RAM的命令和控制功能,加上DSP的實(shí)時(shí)信號(hào)處理能力使得比較適合用于移動(dòng)上網(wǎng)設(shè)備和多媒體家電當(dāng)中。DSP芯片的具體含義芯片上會(huì)寫(xiě)有TMS320F2812PGFA,這些數(shù)值具體代表了那些含義TMS:代表的是合格產(chǎn)品,除此之外還有TM

14、X(試驗(yàn)產(chǎn)品)和TMP(模型產(chǎn)品),目前市場(chǎng)上能夠買(mǎi)到的都是TMS系列。320是TI公司的一個(gè)DSP產(chǎn)品系列,除此之外還有430(單片機(jī)的一個(gè)系列)和470(RAM的一個(gè)產(chǎn)品系列)。F指的是內(nèi)部的存儲(chǔ)器是FLASH,除此之外還有C(內(nèi)部的存儲(chǔ)器是ROM)。2812是產(chǎn)品的系列。PGF是指芯片的封裝是176引腳。除此之外還有PBK(128引腳)GHH(179個(gè)引腳)。A代表溫度的范圍指的是-45到85 。還有S級(jí)是-45到125之間。 除此之外芯片上的字符表示的是芯片的產(chǎn)地批次等信息。2.5 DSP開(kāi)發(fā)用到的工具主要分為硬件和軟件兩部分軟件主要是TI提供的CCS。CCS版本主要有2.2版,3.1

15、版和3.3版,最新的已經(jīng)出到了4.0版。用的最多的還是CCS3.3。CCS軟件的安裝比較簡(jiǎn)單,網(wǎng)絡(luò)上可以很容易下載到,需要注意的是安裝時(shí),安裝路徑不能含有中文字符。否則在打開(kāi)我們自己建立的工程時(shí)會(huì)產(chǎn)生錯(cuò)誤。硬件主要是指仿真器和DSP的版子。仿真器就是一個(gè)橋梁將CCS與DSP連接起來(lái),能夠把DSP內(nèi)部的寄存器的數(shù)據(jù)傳到CCS,主要是仿真和調(diào)試的功能。當(dāng)仿真調(diào)試完成以后,將程序固化到DSP也需要仿真器。平時(shí)使用時(shí)仿真器和DSP版通過(guò)JATGA接口連接。仿真器通過(guò)USB口連接到計(jì)算機(jī)。以前有使用并口實(shí)現(xiàn)仿真器與計(jì)算機(jī)的連接,但由于現(xiàn)在筆記本上已經(jīng)將并口取消,而且USB傳輸速度比較快,并口基本上已經(jīng)被

16、USB取代。 嵌入式系統(tǒng)通常使用兩種語(yǔ)言,一種匯編語(yǔ)言,一種是C語(yǔ)言。F2812的開(kāi)發(fā)及支持匯編語(yǔ)言也支持C語(yǔ)言。絕大多數(shù)情況下是使用C語(yǔ)言開(kāi)發(fā),只有在對(duì)時(shí)間要求非常嚴(yán)格的情況下才會(huì)插入?yún)R編,使用匯編與C混合編程的方法進(jìn)行編程。第三章 F2812片內(nèi)資源、存儲(chǔ)器映射v3.1 F2812的片內(nèi)資源v3.2 F2812的存儲(chǔ)器映像3.1 F2812的片內(nèi)資源 vTMS320F2812采用了高性能的靜態(tài)CMOS技術(shù),時(shí)鐘頻率可達(dá)150MHZ(6.67ns),其核心電壓為1.8V,I/O口電壓3.3V,F(xiàn)lash編程電壓也為3.3V,所以我們?cè)谠O(shè)計(jì)2812電源部分的時(shí)候,需要將常用的5V電壓轉(zhuǎn)換成1.

17、8V和3.3V的電壓之后,才能供給2812。v我們首先需要知道2812的存儲(chǔ)器空間被分成了2塊,一塊是程序空間,一塊是數(shù)據(jù)空間,而無(wú)論是那一塊的內(nèi)容,我們都需要借助于兩種總線來(lái)進(jìn)行傳送相關(guān)的內(nèi)容地址總線和數(shù)據(jù)總線,用地址總線來(lái)傳送存儲(chǔ)單元的地址,而用數(shù)據(jù)總線來(lái)傳送存儲(chǔ)單元內(nèi)的內(nèi)容。2812的存儲(chǔ)器接口具有3條地址總線和3條數(shù)據(jù)總線,片內(nèi)集成了RAM、ROM和FLASH,具體的存儲(chǔ)器資源如下表所示存儲(chǔ)器名稱存儲(chǔ)器容量存儲(chǔ)器名稱存儲(chǔ)器容量FLASH 128K*16位 M0(SRAM) 1K*16位 H0(SRAM) 8K*16位 M1(SRAM) 1K*16位 L0(SRAM) 4K*16位 Bo

18、ot ROM 4K*16位 L1(SRAM) 4K*16位 OTP(一次性可編程程序空間) 1K*16位 3.2 F2812的存儲(chǔ)器映像 存儲(chǔ)器映像也就是存儲(chǔ)器的地圖,給存儲(chǔ)器單元?jiǎng)澐值刂罚覀兛梢愿鶕?jù)這些地址找到相應(yīng)的存儲(chǔ)器,才可以將指令或數(shù)據(jù)放到相應(yīng)的存儲(chǔ)單元里面去??梢越o每一個(gè)存儲(chǔ)單元分配地址,相臨的存儲(chǔ)單元地址加1。F2812的存儲(chǔ)器是統(tǒng)一編址的,使用連續(xù)的地址范圍從0 x0000000 x3fffff。把所有的存儲(chǔ)器(包括外擴(kuò)的片外存儲(chǔ)器)都放到這個(gè)線性的地址空間里面,每一個(gè)存儲(chǔ)單元的地址都是唯一的。F2812的存儲(chǔ)器映射如圖 v外設(shè)幀0、1、2這三個(gè)空間只能為數(shù)據(jù)空間,而且這三塊用

19、來(lái)存儲(chǔ)2812所有的外設(shè)寄存器。外設(shè)幀1、2為protected類(lèi)型。也就是說(shuō)這些空間里面的外設(shè)寄存器不能隨便進(jìn)行配置。在改變這些寄存器的值時(shí)需要“EALLOW”和“EDIS”。v地址0 x0020000 x006000到的片內(nèi)存儲(chǔ)器被保留,用戶不能使用,一部分的地址用來(lái)為外部擴(kuò)展存儲(chǔ)器第0區(qū)和第1區(qū)的地址范圍。第0區(qū)大小為8K地址范圍0 x0020000 x004000,第1區(qū)大小也是8K,地址范圍是0 x0040000 x006000,而且第0區(qū)和第1區(qū)使用一個(gè)公用的片選信號(hào)XZCS0ANDCS1。第1區(qū)也是protected類(lèi)型,受到EALLOW和EDIS保護(hù)。外部存儲(chǔ)區(qū)的第2區(qū)和第6區(qū)

20、最大都可外擴(kuò)512K的空間。其中第2區(qū)的地址范圍是0 x0800000 x100000,第6區(qū)的地址范圍是0 x1000000 x180000。vOTP也就是一次可編程空間,當(dāng)數(shù)據(jù)寫(xiě)到其中之后,里面的內(nèi)容無(wú)法再改變。地址范圍是0 x3D78000 x3D7C00,其中的1K空間已經(jīng)有TI公司留作系統(tǒng)測(cè)試所用,剩下的1K空間可供用戶使用。一般不使用該區(qū)域,如果使用即可做程序存儲(chǔ)區(qū)也可作為數(shù)據(jù)存儲(chǔ)區(qū),同時(shí)該模塊中的內(nèi)容也受到代碼安全模塊(CSM)的保護(hù)。大小為2K *16位空間。之后的區(qū)域?yàn)镕2812的128K FLASH空間。FLASH空間的0 x3FFF80 x3F8000的部分一共為8 x

21、16K,共128位。這128位用作FLASH的密碼取,用來(lái)保護(hù)FLASH中的內(nèi)容。這128位密碼還可以保護(hù)L0、L1區(qū)域,因?yàn)長(zhǎng)0、L1也是Security Block,受到密鑰的保護(hù)。v接下來(lái)的8K 16位空間為H0空間,最后為Boot Rom和外擴(kuò)第7區(qū)的空間。地址范圍0 x3FF0000 x3FFFC0同時(shí)對(duì)應(yīng)這兩個(gè)空間。由于每個(gè)地址只能對(duì)應(yīng)一個(gè)唯一的存儲(chǔ)空間,也就是這兩個(gè)區(qū)域同時(shí)只能使用一個(gè)區(qū)域。這取決于MP/MC引腳的狀態(tài)。如果引腳MP/MC接地,MP/MC的值時(shí)0的話,那么我們使用的是片內(nèi)的Boot Rom空間,也就是說(shuō)程序是從片內(nèi)存儲(chǔ)區(qū)啟動(dòng)的。如果說(shuō)MP/MC這個(gè)引腳接的是3.3

22、V的高電平,那么它的值是1,使用的是外接的第7區(qū),程序是從外擴(kuò)的第7區(qū)啟動(dòng)的。當(dāng)MP/MC這個(gè)引腳接地時(shí),CPU處在微計(jì)算機(jī)模式下;當(dāng)MP/MC這個(gè)引腳接高電平時(shí),CPU處在微處理器模式下。我們通常讓CPU運(yùn)行在微計(jì)算機(jī)模式下。vBoot Rom區(qū)域也稱為引導(dǎo)Rom,實(shí)現(xiàn)DSP的Boot Leader功能,這一部分空間里主要安裝TI產(chǎn)品的版本號(hào)、發(fā)布的數(shù)據(jù)、校驗(yàn)求和信息、復(fù)位矢量、CPU矢量以及一些數(shù)學(xué)表格。廠家在芯片出廠時(shí)已經(jīng)在Boot Rom的0 x3FFC000 x3FFFBF這一段裝有TI的引導(dǎo)裝載程序。當(dāng)DSP被設(shè)置為微計(jì)算機(jī)模式時(shí),CPU在復(fù)位后就會(huì)執(zhí)行這段程序,然后完成Boot

23、Leader功能。平時(shí)使用時(shí),當(dāng)CCS通過(guò)仿真器與DSP建立連接后會(huì)彈出一個(gè)代碼段,其中的內(nèi)容可以看到程序的指針指在了0 x3FFC00地址上。第四章 F2812的振蕩器、鎖相環(huán)PLL和時(shí)鐘機(jī)制v4.1DSP的鎖相環(huán)、振蕩器v4.2 DSP內(nèi)部時(shí)鐘信號(hào)的產(chǎn)生F2812的振蕩器、鎖相環(huán)PLL和時(shí)鐘機(jī)制v為了讓2812執(zhí)行相應(yīng)的代碼,除了給DSP提供電源以外,與其他的控制芯片都一樣,都需要一個(gè)類(lèi)似于心臟的模塊來(lái)提供其正常運(yùn)行的動(dòng)力和節(jié)奏。CPU提供有規(guī)律的時(shí)鐘脈沖,這一部分功能主要有2812內(nèi)部的振蕩器(OSC)和鎖相環(huán)(PLL)模塊來(lái)實(shí)現(xiàn)。v 在后續(xù)的課程中,我們會(huì)涉及到2812內(nèi)部大量的寄存器

24、單元,由于寄存器的內(nèi)容和各個(gè)位的定義都是固定的,在我們的課程中將不會(huì)對(duì)寄存器做詳細(xì)的介紹,請(qǐng)大家各自參考手中的書(shū)籍,查詢相關(guān)寄存器的內(nèi)容。v 為了能夠讓F2812按部就班的執(zhí)行相應(yīng)的代碼,實(shí)現(xiàn)功能,我們得讓F2812“活“起來(lái),得向它不斷的提供規(guī)律的時(shí)鐘脈沖,這一功能就由F2812內(nèi)部的振蕩器OSC和基于PLL的時(shí)鐘模塊來(lái)實(shí)現(xiàn)了。讓我們一起來(lái)看下面的圖: 4.1 F2812的振蕩器、鎖相環(huán)PLL和時(shí)鐘機(jī)制 從圖中可以看到30M的外部晶振通過(guò)X1、X2兩個(gè)引腳輸入到片內(nèi)振蕩器以后,然后產(chǎn)生OSCCLK的信號(hào),然后通過(guò)PLL模塊變成CLKIN,然后這個(gè)信號(hào)被送到CPUv如圖所示,2812基于PLL

25、的時(shí)鐘模塊可以采用兩種模式,一種是PLL未被禁止的情況下(旁路或使能),使用外部晶振給2812提供時(shí)鐘信號(hào),使用X1/CLKIN引腳和X2引腳;另外一種PLL被禁止的情況下,旁路片內(nèi)振蕩器,由外部時(shí)鐘源提供時(shí)鐘信號(hào),即將外部振蕩器的信號(hào)輸入到X1/XCLKN引腳,此時(shí)X2引腳不使用。通常情況下,我們都是采用前面的方式,由外部晶振通過(guò)片內(nèi)OSC來(lái)產(chǎn)生時(shí)鐘信號(hào)。 4.2 各種時(shí)鐘信號(hào)的產(chǎn)生 2812內(nèi)部出了CPU以外還有很多的外設(shè),為了是這些時(shí)鐘正常的工作我們也得給這些外設(shè)提供時(shí)鐘信號(hào),下面我們就看一下2812內(nèi)部各種時(shí)鐘信號(hào)是怎樣產(chǎn)生的 。外部晶振的信號(hào)經(jīng)過(guò)振蕩器和PLL鎖相環(huán)模塊以后產(chǎn)生了一個(gè)

26、CLKIN時(shí)鐘信號(hào)輸入給CPU,然后CPU產(chǎn)生SYSCLKOUT信號(hào)分發(fā)到各個(gè)外設(shè),這里的SYSCLKOUT實(shí)際上就等于CLKIN。從這幅圖上可以看出系統(tǒng)時(shí)鐘通過(guò)系統(tǒng)控制寄存器來(lái)使能或者禁止相應(yīng)外設(shè)的時(shí)鐘,為了降低系統(tǒng)的功耗,一般只使能所使用到的外設(shè)時(shí)鐘。SYSCLKOUT經(jīng)過(guò)低速預(yù)定標(biāo)器產(chǎn)生低速時(shí)鐘LSPCLK,這個(gè)時(shí)鐘提供給低速的外設(shè),比如串口SCI、SPI等。SYSCLKOUT經(jīng)過(guò)高速預(yù)定標(biāo)器產(chǎn)生低速時(shí)鐘HSPCLK, 提供給運(yùn)行速度比較快的外設(shè)。無(wú)論是低速時(shí)鐘還是高速時(shí)鐘在供給外設(shè)的時(shí)候每個(gè)外設(shè)也都喲喲一個(gè)時(shí)鐘預(yù)定表器,對(duì)LSPCLK或者HSPCLK在進(jìn)行一次分頻,然后在提供給外設(shè)使用

27、。 這就是2812產(chǎn)生內(nèi)部時(shí)鐘的一個(gè)基本機(jī)制。第五章 2812的中斷系統(tǒng)5.1 什么是中斷5.2 2812的外設(shè)級(jí)中斷5.3 2812的PIE級(jí)中斷5.4 2812的CPU中斷5.5 2812三級(jí)中斷處理機(jī)制5.1什么是中斷?什么是中斷?中斷(Interrupt)是硬件和軟件驅(qū)動(dòng)事件,它使得CPU暫停當(dāng)前的主程序,并轉(zhuǎn)而去執(zhí)行一個(gè)中斷服務(wù)程序。我們以辦公時(shí)接電話為例來(lái)闡述一下中斷的概念,通過(guò)這個(gè)例子大家也可以體會(huì)一下CPU執(zhí)行中斷時(shí)候的一些流程的原理。中斷理解假如您正在辦公桌前專心致志的寫(xiě)程序,突然電話鈴響了(很顯然,電話是不可錯(cuò)過(guò)的,相比手中的活而言肯定是更加重要和緊急的,電話事件相當(dāng)于產(chǎn)生

28、了一個(gè)中斷請(qǐng)求,因?yàn)槟撤N需要不得不請(qǐng)求您打斷手中正在做的事情),您拿起了電話進(jìn)行交談(您響應(yīng)了電話的請(qǐng)求,相當(dāng)于CPU響應(yīng)了一個(gè)中斷,停下了正在執(zhí)行的主程序,并轉(zhuǎn)向執(zhí)行中斷服務(wù)程序)。電話很快就講完了,您掛上了電話,又接著剛才停下來(lái)的地方開(kāi)始寫(xiě)程序了(中斷服務(wù)子程序執(zhí)行完成之后,CPU又回到了剛才停下來(lái)的地方開(kāi)始執(zhí)行)。 當(dāng)然,CPU執(zhí)行中斷的時(shí)候肯定要比上面的例子復(fù)雜的多,但是通過(guò)這個(gè)簡(jiǎn)單的生活實(shí)例,我想大家應(yīng)該能比較感性的理解什么是中斷,以及中斷產(chǎn)生時(shí)CPU是如何去執(zhí)行的一些步驟。 如下面的圖1所示,2812的CPU能夠支持一個(gè)不可屏蔽中斷NMI和16個(gè)可屏蔽的中斷INT1-INT14、R

29、TOSINT和DLOGINT,我們主要討論的是可屏蔽中斷中的INT1-INT12,這也是我們平時(shí)使用時(shí)經(jīng)常要用到的中斷 PIE可以支持96個(gè)不同的中斷,這些中斷分成了12個(gè)組,每個(gè)組有8個(gè)中斷,而且每個(gè)組都被反饋到CPU內(nèi)核的12條中斷線中的某一條上(INT1-INT12),我們平時(shí)用到的所有的外設(shè)中斷都被歸入了這96個(gè)中斷中,被分布在不同的組里,這里其實(shí)也是用到了多路復(fù)用的原理。值得一提的是,PIE目前只使用了96個(gè)終端中的45個(gè),其他的等待將來(lái)的功能擴(kuò)展。 v2812內(nèi)部具有很多外設(shè),每個(gè)外設(shè)又可以產(chǎn)生一個(gè)或者多個(gè)中斷請(qǐng)求,對(duì)于2812的CPU而言,它沒(méi)有足夠的能力去同時(shí)處理所有外設(shè)的中斷

30、請(qǐng)求。這就好比一個(gè)公司,每天會(huì)有很多員工向老總提交文件,請(qǐng)求老總處理,老總一般事務(wù)繁忙,他一個(gè)人沒(méi)有能力同時(shí)去處理所有的事情,那怎么辦呢?一般老總都會(huì)配有秘書(shū),由秘書(shū)們將內(nèi)部員工或者公司外部人員提交的事情進(jìn)行分類(lèi)篩選,然后再提交到老總那處理,這樣效率就提高上來(lái)了,老總也能忙的過(guò)來(lái)了。v同樣的,2812的CPU為了能夠及時(shí)有效的處理好各個(gè)外設(shè)的中斷請(qǐng)求,特別設(shè)計(jì)了一個(gè)專門(mén)處理外設(shè)中斷的擴(kuò)展模塊(the Peripheral Interrupt Expansion block),叫做外設(shè)中斷控制器PIE,它能夠?qū)Ω鞣N中斷請(qǐng)求源(例如來(lái)自于外設(shè)或者其他外部引腳的請(qǐng)求)做出判斷以及相應(yīng)的決策。 上圖所

31、示的就是2812的PIE內(nèi)部的中斷分布圖,8列12行,總共有96個(gè)中斷,黃色部分表示已經(jīng)使用的中斷,有興趣的話數(shù)數(shù)是不是剛好45個(gè)。來(lái)看看事件管理器EVA中定時(shí)器T1的周期中斷T1PINT在圖中的哪里?我們可以看到T1PINT在行號(hào)為INT2,列號(hào)為INTx.4的位置,也就是說(shuō)T1INT對(duì)應(yīng)于INT2,是INT2中的第四個(gè)中斷。這樣,我們就可以找到所有外設(shè)中斷的所屬分組情況以及在改組中的位置。 5.2外設(shè)級(jí)中斷外設(shè)級(jí)中斷v假如在程序的執(zhí)行過(guò)程中,某一個(gè)外設(shè)產(chǎn)生了一個(gè)中斷事件,那么在這個(gè)外設(shè)的某個(gè)寄存器中與該中斷事件相關(guān)的中斷標(biāo)志位(IF=Interrupt Flag)被置為1。此時(shí),如果該中斷

32、相應(yīng)的中斷使能位(IE=Interrupt Flag)已經(jīng)被置位,也就是為1,外設(shè)就會(huì)向PIE控制器發(fā)出一個(gè)中斷請(qǐng)求。相反的,如果雖然中斷事件產(chǎn)生了,相應(yīng)的中斷標(biāo)志位也被置1了,但是該中斷沒(méi)有被使能(相應(yīng)的使能位為0),那么外設(shè)就不會(huì)向PIE發(fā)出中斷請(qǐng)求,但是值得一提的是,相應(yīng)的中斷標(biāo)志位會(huì)一直保持置位狀態(tài),直到用程序清楚它為止。當(dāng)然,在中斷標(biāo)志位保持在1的時(shí)候,一旦該中斷被使能了,那么外設(shè)立馬會(huì)向PIE發(fā)出中斷申請(qǐng)。 v我們用具體的T1PINT來(lái)進(jìn)行進(jìn)一步的說(shuō)明。當(dāng)定時(shí)器T1的計(jì)數(shù)器寄存器T1CNT計(jì)數(shù)到和T1周期寄存器T1PINT的值匹配時(shí)(相等時(shí)),就產(chǎn)生了一個(gè)T1PINT事件,即T1的

33、周期中斷。這時(shí)候,事件管理器EVA的中斷標(biāo)志寄存器A(EVAIFRA)中的第7位T1PINT FLAG被置為1,這時(shí)候如果EVA的中斷屏蔽寄存器A(EVAIMRA)中的第7位T1PINT的使能位是1,則EVA就會(huì)向PIE發(fā)出中斷請(qǐng)求,當(dāng)然,如果該位的值是0,也就是該中斷未被使能(被屏蔽),則EVA不會(huì)向PIE發(fā)出中斷請(qǐng)求,而且EVAIFRA中T1PINT FLAG位將一直保持為1,除非通過(guò)程序?qū)⑵淝宄P枰⒁獾氖?,不管在什么情況下,外設(shè)寄存器中的中斷標(biāo)志位都必須手工清除。 5.3 PIE級(jí)中斷 當(dāng)外設(shè)產(chǎn)生中斷事件,相關(guān)中斷標(biāo)志位置位,中斷使能位使能之后,外設(shè)就會(huì)把中斷請(qǐng)求提交給我們的PIE模

34、塊。在前面我們已經(jīng)講到,PIE模塊將96個(gè)外設(shè)和外部引腳的中斷進(jìn)行了分組,每8個(gè)中斷為1組,一共是12組,分別是PIE1-PIE12。每個(gè)組的中斷被多路匯集進(jìn)入1個(gè)CPU中斷,例如PDPINDA, PDPINDB, XINT1, XINT2, ADCINT,TINT0,WAKEINT這7個(gè)中斷都在PIE1組內(nèi),這些中斷都匯集到CPU中斷的INT1,同樣的,PIE2的中斷都被匯集到CPU中斷的INT2,INT12組的中斷都被匯集到了CPU中端的INT12。 總結(jié)一下,在PIE級(jí)需要我們手動(dòng)的地方有: vPIE中斷的使能。需要使能某個(gè)外設(shè)中斷,就得將其相應(yīng)組的使能寄存器PIEIERx的相應(yīng)位進(jìn)行置

35、位; vPIE中斷的屏蔽。這是和使能相反的操作; vPIE應(yīng)答寄存器PIEACK相關(guān)位的清除,以使得CPU能夠響應(yīng)同組的其他中斷。 v將PIE級(jí)的中斷和外設(shè)級(jí)的中斷相比較之后發(fā)現(xiàn),外設(shè)中斷的中斷標(biāo)志位是需要手工清除的,而PIE級(jí)的中斷標(biāo)志位都是自動(dòng)置位或者清除的。但是PIE多了一個(gè)PIEACK寄存器,相當(dāng)于一個(gè)同行的關(guān)卡,同一時(shí)間只能放一個(gè)中斷過(guò)去,只有等到這個(gè)中斷被響應(yīng),給關(guān)卡一個(gè)放行命令之后,才能讓同組的下一個(gè)中斷過(guò)去,被CPU響應(yīng)。 5.4 CPU級(jí)和前面兩級(jí)類(lèi)似的,CPU也有標(biāo)志寄存器IFR和使能寄存器IER。當(dāng)某一個(gè)外設(shè)中斷請(qǐng)求通過(guò)PIE發(fā)送到CPU時(shí),CPU級(jí)中與INTx相關(guān)的中斷

36、標(biāo)志位就會(huì)被置位。例如,T1的周期中斷T1PINT的請(qǐng)求到達(dá)CPU這邊時(shí),與其相關(guān)的INT2的標(biāo)志位就會(huì)被置位。這時(shí)候,該標(biāo)志位就會(huì)被所存在IFR中,這時(shí)候,CPU不會(huì)馬上去執(zhí)行相應(yīng)的中斷,而是等待CPU使能IER寄存器的相關(guān)位,并且對(duì)CPU寄存器ST1中的全局中斷屏蔽位做適當(dāng)?shù)氖鼓?。如果IER中的相關(guān)位被置位了,并且INTM的值為0,則中斷就會(huì)被CPU響應(yīng)。在T1PINT的例子里,當(dāng)IER的第2位即INT2被置位,INTM為0,則CPU就會(huì)響應(yīng)定時(shí)器T1的周期中斷。 CPU接到了終端的請(qǐng)求,就得暫停正在執(zhí)行的程序,轉(zhuǎn)而去響應(yīng)中斷程序,但是此時(shí),它必須得做一些準(zhǔn)備工作,以便于執(zhí)行完中斷程序之后

37、回過(guò)頭來(lái)還能找到原來(lái)的地方和原來(lái)的狀態(tài)。CPU會(huì)將相應(yīng)的IER和IFR位進(jìn)行清除,EALLOW也被清除,INTM被置位,就是不能響應(yīng)其他中斷了,CPU向其他中斷發(fā)出了通知,正在忙,沒(méi)空來(lái)處理你們的請(qǐng)求了,得等到處理完手上的中斷之后才能再來(lái)處理你們的請(qǐng)求。然后,CPU會(huì)存儲(chǔ)返回地址并自動(dòng)保存相關(guān)的信息,例如將正在處理的數(shù)據(jù)放入堆棧等等,做好這些準(zhǔn)備工作之后,CPU會(huì)從PIE塊中取出對(duì)應(yīng)的中斷向量ISR,從而轉(zhuǎn)去執(zhí)行中斷子程序。 我們可以看到,CPU級(jí)的操作都是自動(dòng)的,不管是中斷標(biāo)志位,還是中斷的使能位。下面的圖能夠更好的幫助我們理解2812的3級(jí)中斷。大家可以結(jié)合這個(gè)圖反復(fù)自己的琢磨一下。 下面

38、我們就詳細(xì)講述2812內(nèi)部外設(shè)中斷的執(zhí)行機(jī)制及其具體的處理過(guò)程。 如圖所示,2812的中斷是3級(jí)中斷機(jī)制,分別是外設(shè)級(jí),PIE級(jí)以及CPU級(jí),對(duì)于某一個(gè)具體的外設(shè)中斷請(qǐng)求,任意一級(jí)的不許可,CPU最終都不會(huì)執(zhí)行該外設(shè)中斷。就像一個(gè)文件需要三級(jí)領(lǐng)導(dǎo)批示一樣,任意一級(jí)領(lǐng)導(dǎo)的不同意,都不能被送至上一級(jí)領(lǐng)導(dǎo),更不可能得到最終的批準(zhǔn),中斷機(jī)制的原理也是如此。5.5 2812三級(jí)中斷處理機(jī)制第六章 事件管理器EVA/EVB6.1 事件管理器的功能6.2 通用定時(shí)器6.3 比較單元與PWM電路6.4 時(shí)間管理器產(chǎn)生PWM的機(jī)制6.1 2812的事件管理器 2812具有兩個(gè)事件管理器模塊EVA和EVB,這兩個(gè)

39、EV模塊就像孿生兄弟一樣,具有相同的功能,例如它們的定時(shí)器、比較單元、捕捉單元的功能都是完全一樣的,只是各個(gè)單元的名稱因?yàn)镋VA和EVB有所區(qū)別而已,我們?cè)谙旅娴姆治鲋兄饕訣VA為例。 v簡(jiǎn)單來(lái)講的話,每個(gè)EV模塊都具有2個(gè)通用定時(shí)器、3個(gè)比較單元、3個(gè)捕獲單元以及1個(gè)正交編碼電路,我們重點(diǎn)來(lái)講定時(shí)器和比較單元部分的內(nèi)容。EVA和EVB的資源詳見(jiàn)上面的表格所示,表格中藍(lán)色的字表示該信號(hào)是低電平有效。v 通用定時(shí)器就像秒表一樣,是可以用來(lái)計(jì)時(shí)的,而且每個(gè)定時(shí)器還能產(chǎn)生1路獨(dú)立的PWM波形;比較單元主要功能就是用來(lái)生成PWM波形的,EVA具有3個(gè)比較單元,每個(gè)單元可以生成一對(duì)(兩路)互補(bǔ)的PWM

40、波形,生成的6路PWM波形正好可以驅(qū)動(dòng)一個(gè)三相橋電路。v捕獲單元的功能是捕捉外部輸入脈沖波形的上升沿或者下降沿,可以統(tǒng)計(jì)脈沖的間隔,也可以統(tǒng)計(jì)脈沖的個(gè)數(shù)。正交編碼電路的話應(yīng)該用的比較少,它可以對(duì)輸入的正交脈沖進(jìn)行編碼和計(jì)數(shù),它和光電編碼器相連可以獲得旋轉(zhuǎn)機(jī)械部件的位置和速率等信息。 6.2通用定時(shí)器通用定時(shí)器 v下面我們將和大家一起探討通用定時(shí)器相關(guān)的內(nèi)容,主要圍繞EVA下面的定時(shí)器1,也就是T1進(jìn)行討論。v T1PR是定時(shí)器T1的周期寄存器,用于存放為T(mén)1設(shè)置的周期值。T1CMPR是定時(shí)器T1的比較寄存器,用于存放為T(mén)1設(shè)置的比較值。而T1CNT為T(mén)1的計(jì)數(shù)器寄存器,其內(nèi)容是隨著時(shí)鐘脈沖不斷

41、增加或者減少的,每1個(gè)HSPCLK的脈沖,T1CNT的值增加1或者減少1。vT1PR和T1CMPR在一般情況下是在初始化的時(shí)候進(jìn)行賦值,然后就成為了一個(gè)參考標(biāo)準(zhǔn),CPU會(huì)實(shí)時(shí)的將T1CNT的值和這兩個(gè)標(biāo)準(zhǔn)進(jìn)行比較,當(dāng)T1CNT的值和T1PR相等時(shí),T1CNT就會(huì)復(fù)位成0重新開(kāi)始計(jì)數(shù)或者逐漸減少直至0,完成1個(gè)周期的計(jì)數(shù),然后再?gòu)?開(kāi)始計(jì)數(shù)至T1PR里面的數(shù)值,這樣循環(huán)下去。當(dāng)T1CNT的值和T1CMPR的值相等時(shí),就會(huì)產(chǎn)生一些比較事件,例如PWM波形就是依靠這個(gè)原理來(lái)實(shí)現(xiàn)的。6.3PWM與比較單元與比較單元脈寬調(diào)制,簡(jiǎn)稱PWM(Pulse Width Modulation)是利用微處理器的數(shù)字

42、輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中,簡(jiǎn)單的描述就是一些如下圖所示的矩形脈沖波形,PWM波形最重要的三個(gè)參數(shù)是周期、頻率和占空比。 EV的比較機(jī)制能夠產(chǎn)生多路PWM功能。EVA的兩個(gè)通用定時(shí)器能夠產(chǎn)生2路獨(dú)立的PWM波形T1PWM和T2PWM,三個(gè)比較單元每一個(gè)都能產(chǎn)生一對(duì)互補(bǔ)的PWM波形,比較單元1產(chǎn)生PWM1和PWM2,比較單元2產(chǎn)生PWM3和PWM4,比較單元3產(chǎn)生PWM5和PWM6。這樣,EVA一共能產(chǎn)生8路PWM波形。EVB和EVA一樣,同樣能夠產(chǎn)生8路PWM波形。6.4 EV產(chǎn)生PWM的機(jī)制v首先來(lái)介紹通用定時(shí)器產(chǎn)生的PW

43、M波。我們已經(jīng)知道T1和T2分別能夠產(chǎn)生1路獨(dú)立的PWM,我們以T1為例進(jìn)行介紹。當(dāng)T1計(jì)數(shù)寄存器T1CNT的值和T1CMPR的值相等時(shí),就會(huì)發(fā)生比較匹配事件,這時(shí)如果PWM的功能使能,則T1PWM引腳便可以輸出PWM波形。vT1能夠產(chǎn)生兩種類(lèi)型的PWM,一種是不對(duì)稱的PWM波形,一種是對(duì)稱的PWM波形,究竟產(chǎn)生哪種類(lèi)型的PWM波形取決于T1CNT的計(jì)數(shù)方式。 6.4.1當(dāng)T1CNT的計(jì)數(shù)方式為連續(xù)增計(jì)數(shù)時(shí),T1PWM引腳輸出不對(duì)稱的PWM波形v當(dāng)定時(shí)器T1的控制寄存器T1CON的TMODE1和TMODE0為10時(shí),定時(shí)器T1工作于連續(xù)增模式。當(dāng)T1CNT的值計(jì)數(shù)到和T1CMPR的值相等時(shí),發(fā)

44、生比較匹配事件。如果T1CON的第1位定時(shí)器比較使能為T(mén)ECMPR為1,即定時(shí)器比較操作被使能,且GPTCONA的第6位比較輸出使能位TCMPOE為1,同時(shí)GPTCONA下的T1PIN引腳輸出極性為高電平或者低電平的話,T1PWM就會(huì)輸出不對(duì)稱的PWM波形,如圖所示。 6.4.2 當(dāng)T1CNT的計(jì)數(shù)方式為連續(xù)增/減計(jì)數(shù)時(shí),T1PWM引腳輸出對(duì)稱的PWM波形v當(dāng)定時(shí)器T1的控制寄存器T1CON的TMODE1和TMODE0為01時(shí),定時(shí)器T1工作于連續(xù)增/減計(jì)數(shù)模式。當(dāng)T1CNT的值計(jì)數(shù)到和T1CMPR的值相等時(shí),發(fā)生比較匹配事件。如果T1CON的第1位定時(shí)器比較使能為T(mén)ECMPR為1,即定時(shí)器比

45、較操作被使能,且GPTCONA的第6位比較輸出使能位TCMPOE為1,同時(shí)GPTCONA下的T1PIN引腳輸出極性為高電平或者低電平的話,T1PWM就會(huì)輸出對(duì)稱的PWM波形,如圖所示。 6.4.3 比較單元產(chǎn)生的可帶有死區(qū)的PWM波形 v我們?cè)陔姍C(jī)控制、開(kāi)關(guān)電源、變頻器、逆變器等電力電子電路中,經(jīng)常會(huì)遇到如下圖所示的三相全橋控制電路,該電路由6個(gè)開(kāi)關(guān)管組成,上下兩個(gè)開(kāi)關(guān)管組成1個(gè)橋壁。任何一個(gè)開(kāi)關(guān)管在輸入的PWM波形處于高電平時(shí)導(dǎo)通,處于低電平時(shí)關(guān)斷。同一橋壁上的上下兩個(gè)開(kāi)關(guān)管不能同時(shí)導(dǎo)通,因?yàn)槿绻瑫r(shí)導(dǎo)通,電源和地就會(huì)短接,也就是會(huì)發(fā)生短路。因此,PHa1和PHa2,PHb1和PHb2,PH

46、c1和PHc2必須都是互補(bǔ)的,以PHa1和PHa2為例,理想情況下當(dāng)PHa1為高電平時(shí),PHa2為低電平;當(dāng)PHa1為低電平時(shí),PHa2為高電平。為房子同一橋臂上的兩個(gè)晶閘管同時(shí)導(dǎo)通,需要上下管輸出的驅(qū)動(dòng)波形具有一定的死區(qū)時(shí)間的延遲。 2812的EV還為我們提供了3個(gè)全比較單元,分別是比較單元1,比較單元2和比較單元3。如圖13所示,這3個(gè)全比較單元每一個(gè)都能產(chǎn)生一對(duì)互補(bǔ)的PWM波形,也可以通過(guò)相應(yīng)的寄存器設(shè)置死區(qū)時(shí)間。比較單元輸出的PWM波形的各種參數(shù)和T1產(chǎn)生的PWM的各種參數(shù)、原理基本一樣,我們重點(diǎn)研究比較單元的死區(qū)電路。當(dāng)比較單元的比較操作被使能,就會(huì)產(chǎn)生波形PHx。PHx經(jīng)過(guò)死區(qū)單元

47、,就會(huì)輸出兩路互補(bǔ)的帶有死區(qū)的PWM波形DTPHx和DTPHx_。我們仔細(xì)看看PHx、DTPHx、DTPHx_之間的關(guān)系,如果沒(méi)有死區(qū),那么DTPHx和DTPHx_應(yīng)該是完全互補(bǔ)的。DTPHx的導(dǎo)通時(shí)刻是在PHx的基礎(chǔ)上延時(shí)了1個(gè)死區(qū)時(shí)間,而關(guān)閉時(shí)刻未變。DTPHx_是在PHx取反的基礎(chǔ)上,也將導(dǎo)通時(shí)間延遲了1個(gè)死區(qū)時(shí)間,而關(guān)斷的時(shí)間沒(méi)有發(fā)生改變。 具體的死區(qū)時(shí)間是通過(guò)死區(qū)控制寄存器的配置來(lái)實(shí)現(xiàn)的。第七章第七章模數(shù)轉(zhuǎn)換器模數(shù)轉(zhuǎn)換器ADC7.1 2812內(nèi)部的ADC模塊7.2 ADC的工作方式7.3 ADC模塊的觸發(fā)方式7.1 F2812的AD 我們將和大家一起來(lái)學(xué)習(xí)2812中另外一個(gè)重要的部分

48、,模數(shù)轉(zhuǎn)換部分,即AD。2812內(nèi)部自帶了12位,總共16路的AD,這對(duì)于需要節(jié)省成本的項(xiàng)目來(lái)說(shuō)是一件好事,因?yàn)槲覀冎?,AD的價(jià)格一般都是比較貴的,2812的內(nèi)部AD既然能夠滿足我們的基本需求,也就可以不用另外設(shè)計(jì)AD電路了。但是,由于一些內(nèi)部的原因,使得2812的AD精度達(dá)不到12位的精度,而且誤差比較大,為了提高內(nèi)部AD的精度,我們通常在硬件和軟件的角度采用補(bǔ)償措施對(duì)其進(jìn)行校正,使得其精度能夠有所提高,能夠滿足大多數(shù)的應(yīng)用場(chǎng)合。 2812內(nèi)部ADC的特點(diǎn) v2812的ADC模塊是一個(gè)12位分辨率的、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器。它具有16個(gè)通道,可以配置為2個(gè)獨(dú)立的8通道模塊,也可以級(jí)聯(lián)成

49、一個(gè)16通道的模塊。2812具有2個(gè)序列發(fā)生器SEQ1和SEQ2分別對(duì)應(yīng)于2個(gè)獨(dú)立的8通道模塊,當(dāng)ADC級(jí)聯(lián)成一個(gè)16通道的模塊時(shí),SEQ1和SEQ2也級(jí)聯(lián)成一個(gè)16狀態(tài)的序列發(fā)生器SEQ。對(duì)于每個(gè)序列發(fā)生器,一旦轉(zhuǎn)換結(jié)束,已選擇采樣的通道值就會(huì)被保存到各個(gè)通道的結(jié)果寄存器中去。2812總共有16個(gè)結(jié)果寄存Result Reg0Result Reg15,用于分別保存16個(gè)通道的轉(zhuǎn)換結(jié)果。 值得我們大家注意的。2812是非常脆弱的,AD采樣端口的最高采樣輸入電壓是3V,但是在實(shí)際設(shè)計(jì)中我們考慮余量,一般輸入最大值在3V的70%左右,但是防止萬(wàn)一,輸入AD采樣的電壓過(guò)高(超過(guò)3.3V燒毀DSP)或

50、者輸入電壓為負(fù)電壓,我們一般先將要采樣的信號(hào)經(jīng)過(guò)運(yùn)放處理,使輸入電壓范圍在AD正常工作采樣范圍之內(nèi),7.2 2812內(nèi)部AD的工作方式v2812的AD可工作于順序采樣和同步采樣兩種模式。順序采樣,顧名思義,就是按照順序一個(gè)通道一個(gè)通道的進(jìn)行采樣,例如ADCINA0, ADCINA1 ADCINA7 , ADCINB0,ADCINB1ADCINB7。而同步采樣,是一對(duì)通道一對(duì)通道的進(jìn)行采樣,即ADCINA0和ADCINB0同時(shí)采樣,ADCINA1和ADCINB1同時(shí)采樣ADCINA7和ADCINB7同時(shí)采樣。 v2812AD的16個(gè)通道是可以通過(guò)編程來(lái)進(jìn)行選擇在某一時(shí)刻究竟是哪一個(gè)通道被選通進(jìn)行

51、采樣的。這個(gè)功能就需要通過(guò)ADC輸入通道選擇序列控制寄存器ADCCHSELSEQx(x=1,2,3,4)來(lái)實(shí)現(xiàn)。每一個(gè)輸入通道選擇序列控制寄存器都是16位的,被分成了4個(gè)功能位CONVxx,每一個(gè)功能位占據(jù)寄存器的4位,在AD轉(zhuǎn)換的過(guò)程中,當(dāng)前CONVxx位定義了要進(jìn)行采樣和轉(zhuǎn)換的引腳。 v在順序采樣模式下,CONVxx的4位均用來(lái)定義輸入引腳。最高位為0時(shí),說(shuō)明采樣的是A組,采樣保持器用的是S/H-A,最高位為1時(shí),說(shuō)明采樣的是B組,采樣保持器用的是S/H-B。而低3位定義的是偏移量,決定了某一組內(nèi)的特定引腳。v在同步采樣模式下,因?yàn)槭且粚?duì)一對(duì)進(jìn)行采樣的,S/H-A和S/H-B會(huì)同時(shí)使用到,

52、所以,CONVxx的最高位被舍棄,也就是說(shuō)只有低3位的數(shù)據(jù)才是有效位v2812的AD還有一個(gè)最大轉(zhuǎn)換通道寄存器ADCMAXCONV,其值決定了本次采樣序列所要進(jìn)行采樣的通道總數(shù),其結(jié)構(gòu)如圖6所示。當(dāng)AD工作在兩個(gè)獨(dú)立的8通道序列發(fā)生器的時(shí)候,SEQ1使用位MAXCONV1_02,SEQ2使用位MACXCONV2_0-2。而當(dāng)AD工作在1個(gè)級(jí)聯(lián)的16通道序列發(fā)生器的時(shí)候,SEQ使用位MAXCONV1_0-3。最大通道數(shù)等于(MAXCONVn+1)。因此,如果我要轉(zhuǎn)換6個(gè)通道,則需要將MAXCONVn的值設(shè)定為5 7.3 ADC的觸發(fā)方式vADC模塊只有接收到轉(zhuǎn)換觸發(fā)信號(hào)才可開(kāi)始轉(zhuǎn)換,每個(gè)排序器都

53、有一系列可以使能或禁止的觸發(fā)源,SEQ1、SEQ2和級(jí)聯(lián)SEQ的有效輸入觸發(fā)如下表 v來(lái)自“未被激活”的排序器的啟動(dòng)轉(zhuǎn)換信號(hào)“SOC”請(qǐng)求,將在正在進(jìn)行的排序器完成采樣之后自動(dòng)開(kāi)始執(zhí)行,當(dāng)前的CONVxx位域定義了將被采樣和轉(zhuǎn)換的引腳。 SEQ1SEQ2級(jí)聯(lián)SEQ軟件觸發(fā)(軟件SOC)軟件觸發(fā)(軟件SOC)軟件觸發(fā)(軟件SOC)事件管理器A(EVA SOC)事件管理器B(EVB SOC)事件管理器A(EVA SOC)事件管理器B(EVB SOC)外部SOC引腳外部SOC引腳第八章 2812的SCI模塊8.1 2812 SCI特點(diǎn)8.2 SCI模塊發(fā)送和接收數(shù)據(jù)的工作原理8.3 SCI數(shù)據(jù)傳輸?shù)?/p>

54、格式 8.4 SCI發(fā)送和接收數(shù)據(jù)的機(jī)制8.1 F2812的SCI模塊特點(diǎn)vSCI(Serial Communication Interface),即串行通信接口,是一個(gè)雙線的異步串口,即具有接收和發(fā)送兩根信號(hào)線的異步串口,一般可以看作是UART(通用異步接收/發(fā)送裝置)v2812內(nèi)部具有兩個(gè)相同的SCI模塊,SCIA和SCIB,每一個(gè)SCI模塊都各有一個(gè)接收器和發(fā)送器。SCI的接收器和發(fā)送器各具有一個(gè)16級(jí)深度的FIFO(First in fist out 先入先出)隊(duì)列,它們還都有自己獨(dú)立的使能位和中斷位,可以在半雙工通信中進(jìn)行獨(dú)立的操作,或者在全雙工通信中同時(shí)進(jìn)行操作。v根據(jù)信息的傳送方

55、向,串行通信可以分為單工、半雙工和全雙工三種,其各自的定義如下圖所示。 v SCI模塊具有兩個(gè)引腳,SCITXDA和SCIRXDA,分別實(shí)現(xiàn)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的功能,這兩個(gè)引腳對(duì)應(yīng)于GPIOF模塊的第4和第5位,在編程初始化的時(shí)候,需要將GPIOFMUX寄存器的第4和第5位置為1,才能使得這兩個(gè)引腳具有發(fā)送和接收的功能,否則就是普通的I/O引腳。 v外部晶振通過(guò)PLL模塊產(chǎn)生了CPU的系統(tǒng)時(shí)鐘SYSCLKOUT,然后SYSCLKOUT經(jīng)過(guò)低速預(yù)定標(biāo)器之后輸出低速時(shí)鐘LSPCLK供給SCI。要保證SCI的正常運(yùn)行,系統(tǒng)控制模塊下必須使能SCI的時(shí)鐘,也就是在系統(tǒng)初始化函數(shù)中需要將外設(shè)時(shí)鐘控制寄存器PCLKCR的SCIAENCLK位置1。 v 從圖我們可以清楚的看到SCIA可以產(chǎn)生兩個(gè)中斷,SCIRXINTA和SCITXINTA,即發(fā)送中斷和接收中斷。 8.2SCI模塊發(fā)送和接收數(shù)據(jù)的工作原理模塊發(fā)送和接收數(shù)據(jù)的工作原理 vSCI模塊的工作原理如圖3所示,之所以SCI能工作于全雙工模式,是因?yàn)樗歇?dú)立的數(shù)據(jù)發(fā)送器和數(shù)據(jù)接收器,這樣能夠保證SCI既能夠同時(shí)進(jìn)行,也能夠獨(dú)立進(jìn)行發(fā)送和接收的操作。v SCI發(fā)送數(shù)據(jù)的過(guò)程如下:如圖3右半部分所示,在FIFO功能使能的情況下,首先,發(fā)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論