基于DSP的串口通信設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文1
《基于DSP的串口通信設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文1》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于DSP的串口通信設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文1(31頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于DSP的串口通信設(shè)計(jì)與實(shí)現(xiàn) 摘 要 本次畢業(yè)設(shè)計(jì)的主要工作就是基于在TMS320F2812 DSP芯片的SCI(同步串行通信)口上的串口通信的設(shè)計(jì)與實(shí)現(xiàn)。由于TMS320F2812包含了兩個(gè)串行通信接口(SCI)模塊,所以SCI模塊提供了DSP與其他標(biāo)準(zhǔn)NRZ格式的異步外圍之間的數(shù)字通訊。SCI接收者和發(fā)送者皆采用雙總線模式,因?yàn)槊恳粋€(gè)皆有自己獨(dú)自的使能位和中斷位。故本文以SCI模塊的全雙工式通信系統(tǒng)的分析與設(shè)計(jì)為主線。首先了解串行通信理論的有關(guān)概念,
2、并提出了一個(gè)既能同時(shí)進(jìn)行,又能夠獨(dú)立進(jìn)行發(fā)送和接收操作的可行方案。因此,為了保證串口通信過(guò)程中數(shù)據(jù)的完整性,最主要的還是FIFO時(shí)鐘系統(tǒng)的設(shè)計(jì)。故本文的重點(diǎn)又是基于SCI模塊的FIFO設(shè)計(jì)。 關(guān)鍵字:DSP ; TMS320F2812 SCI ;SCI口FIFO; Abstract The main graduation design is based on TMS320F2812 DSP chip SCI (synchronous se
3、rial communication) serial communication port on the design and implementation.The TMS320F2812 includes two serial communication interface (SCI) module, so SCI module provides DSP and other standard asynchronous NRZ format digital communication between peripheral.SCI receiver and transmitter by key
4、dual-bus mode, because each has its own own bit and interrupt enable bit.Therefore, this papers full-duplex type SCI module communication systems analysis and design of the main line.Serial communication theory to first understand the relevant concepts, and presents a both at the same time, but also
5、 capable of independent operations to send and receive options.Therefore, the process of serial communications in order to ensure data integrity, the most important thing is FIFO clock system design.Therefore, the focus of this paper is designed based on FIFO SCI module. Keyword:DSP ;TMS320F2812
6、 SCI ; SCI FIFO ; 目 錄 第一章 緒 論 - 1 - 1.1 引言 - 1 - 1.2 DSP發(fā)展簡(jiǎn)介 - 1 - 1.3 論文各章節(jié)的安排 - 2 - 第二章 TMS320F2812 DSP及SCI口結(jié)構(gòu)與原理 - 3 - 2.1 TMS320F2812 DSP結(jié)構(gòu)與原理 - 3 - 2.2 TMS320F2812 SCI結(jié)構(gòu)與原理 - 5 - 2.3 SCI模塊發(fā)送和
7、接收數(shù)據(jù)的工作原理 - 7 - 2.4 SCI數(shù)據(jù)格式 - 8 - 2.5 SCI通信波特率 - 12 - 2.6 SCI FIFO描述 - 13 - 第三章 串口通信硬件與軟件設(shè)計(jì) - 17 - 3.1 基于TMS320F2812的DSP最小系統(tǒng)設(shè)計(jì) - 17 - 3.1.1電源及復(fù)位電路的設(shè)計(jì) - 17 - 3.1.2 時(shí)鐘電路設(shè)計(jì) - 18 - 3.1.3 DSP與JTAG接口設(shè)計(jì) - 19 - 3.2 串口通信硬件設(shè)計(jì) - 19 - 3.3 串口通信軟件設(shè)計(jì) - 21 - 第四章 總結(jié)與展望 - 26 - 4.1 結(jié)論 - 26 - 4.2 展望 - 26 -
8、 致 謝 - 27 - 參考文獻(xiàn) - 28 - III 第一章 緒 論 1.1 引言 串口是計(jì)算機(jī)上一種非常通用通信設(shè)備的協(xié)議,同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議,也還可以用來(lái)獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。串口通信的概念非常簡(jiǎn)單,串口按位發(fā)送和接收字節(jié)??梢栽谑褂靡桓€發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù),它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。 本文主要研究的是基于DSP串口通信在TMS320F2812 SCI口的設(shè)計(jì)與實(shí)現(xiàn)。而DSP是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收
9、模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào)。再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。 DSP優(yōu)點(diǎn)主要如下所示: 對(duì)元件值的容限不敏感,受溫度、環(huán)境等外部參與影響??;容易實(shí)現(xiàn)集成;VLSI可以分時(shí)復(fù)用,共享處理器;方便調(diào)整處理器的系數(shù)實(shí)現(xiàn)自適應(yīng)濾波;可實(shí)現(xiàn)模擬處理不能實(shí)現(xiàn)的功能:線性相位、多抽樣率處理、級(jí)聯(lián)、易于存儲(chǔ)等;可用于頻率非常低的信號(hào)。 DSP技術(shù)的
10、應(yīng)用:主要是在處理語(yǔ)音、圖像/圖形、軍事、儀器儀表、自動(dòng)控制、醫(yī)療、家用電器和生物醫(yī)學(xué)信號(hào)處理等等方向的應(yīng)用。 1.2 DSP發(fā)展簡(jiǎn)介 DSP產(chǎn)業(yè)在約40年的歷程中經(jīng)歷了三個(gè)階段: 第一階段,DSP意味著數(shù)字信號(hào)處理,并作為一個(gè)新的理論體系廣為流行。 第二個(gè)階段,開始與80年代,DSP從概念走向了產(chǎn)品,TMS32010所實(shí)現(xiàn)的出色性能和特性備受業(yè)界關(guān)注。 第三個(gè)階段,則是始于21世紀(jì),市場(chǎng)競(jìng)爭(zhēng)更加激烈,TI及時(shí)調(diào)整DSP發(fā)展戰(zhàn)略全局規(guī)劃,并以全面的產(chǎn)品規(guī)劃和完善的解決方案,加之全新的開發(fā)理念,深化產(chǎn)業(yè)化進(jìn)程。 而DSP未來(lái)的發(fā)展方向主要是這幾個(gè)方面: 1、數(shù)字信號(hào)處理器的內(nèi)核結(jié)構(gòu)
11、進(jìn)一步改善,多通道結(jié)構(gòu)和單指令多重?cái)?shù)據(jù)(SIMD)、特大指令字組(VLIM)將在新的高性能處理器中將占主導(dǎo)地位。 2、DSP 和微處理器的融合。 3、DSP 和高檔CPU的融合。 4、DSP 和SOC的融合。 5、DSP 和FPGA的融合。 1.3 論文各章節(jié)的安排 這次的畢業(yè)論文設(shè)計(jì),從接到題目后,就開始著手與論文相關(guān)質(zhì)料的查找和論文進(jìn)度的安排。從了解串口通信的概念到最后選定由TMS320F2812 DSP芯片來(lái)完成本次的論文設(shè)計(jì),再基于對(duì)TMS320F2812芯片各個(gè)引腳的熟悉和了解,最后決定了由TMS320F2812的SCI模塊來(lái)實(shí)現(xiàn)本次論文所想要達(dá)到的目的即基于DSP串口
12、通信的設(shè)計(jì)與實(shí)現(xiàn)。又由于TMS320F2812包含了兩個(gè)串行通信接口(SCI)模塊,所以SCI模塊提供了DSP與其他標(biāo)準(zhǔn)NRZ格式的異步外圍之間的數(shù)字通訊。SCI接收者和發(fā)送者皆采用雙總線模式,因?yàn)槊恳粋€(gè)皆有自己獨(dú)自的使能位和中斷位。故本文以SCI模塊的全雙工式通信系統(tǒng)的分析與設(shè)計(jì)為主線。首先了解串行通信理論的有關(guān)概念,并提出了一個(gè)既能同時(shí)進(jìn)行,又能夠獨(dú)立進(jìn)行發(fā)送和接收操作的可行方案。因此,為了保證串口通信過(guò)程中數(shù)據(jù)的完整性,最主要的還是FIFO時(shí)鐘系統(tǒng)的設(shè)計(jì)。故本文的重點(diǎn)又是基于SCI模塊的FIFO設(shè)計(jì)。 論文章節(jié)安排: 第一章緒論主要是敘述了DSP應(yīng)用領(lǐng)域和發(fā)展歷程。 第二章介紹
13、了TMS320F2812 DSP及SCI口結(jié)構(gòu)與原理。 第三章介紹了串口通信硬件與軟件設(shè)計(jì)。 第四章為總結(jié)和展望。 第二章 TMS320F2812 DSP及SCI口結(jié)構(gòu)與原理 2.1 TMS320F2812 DSP結(jié)構(gòu)與原理 32位的TMS320F2812 DSP整合了DSP和微控制器的最佳特性,能夠在一個(gè)周期內(nèi)完成3232位的乘法累加運(yùn)算,或兩個(gè)1616位乘法累加運(yùn)算。此外,由于器件集成了快速的中斷管理單元,使得中斷延遲時(shí)間大幅減少,滿足了適時(shí)控制的需要。其功能框圖如圖1所示: 圖1
14、TMS320F2812 DSP功能框圖 歸納起來(lái)TMS320F2812 DSP有以下特點(diǎn): ◆ 高性能的靜態(tài)CMOS工藝 ,可使主頻達(dá)到150MHz ,即每個(gè)指令周期是 6167ns ;低功率設(shè)計(jì)(供電電壓只有118V和313V) ; ◆ 高性能的32位CPU。能夠?qū)崿F(xiàn)16X16和32X32乘操作 ,快速的中斷操作 ,尋址程序空間可達(dá)4M,尋址數(shù)據(jù)空間可達(dá)4G,在 C/ C + +和匯編語(yǔ)言中代碼可得 到優(yōu)化 ,另外還可向下兼容 TMS320F24X/ LF240X處理器的代碼; ◆ 片上存儲(chǔ)器:閃存 128K字 ,單訪問(wèn)雙口 RAM(SARAM) 18k字;
15、 ◆ 啟動(dòng)只讀存儲(chǔ)器 ROM4K字 ,具有軟件啟動(dòng)模式并包含標(biāo)準(zhǔn)的數(shù)學(xué)表; ◆ 時(shí)鐘和系統(tǒng)控制采用鎖相環(huán)技術(shù)PLL來(lái)控制系統(tǒng)各模塊所需要的頻率; ◆ 具有很強(qiáng)的外圍通訊功能:包括同步串行口SPI ,通用異步串行口SCI ,增強(qiáng)的 eCAN 和多通道緩存串行口McBSP。 ◆ 可以在一個(gè)周期內(nèi)對(duì)任何內(nèi)存地址完成讀取、修改、寫入操作,使得效率及程序代碼達(dá)到最佳。此外,還提供多種自動(dòng)指令提高了程序的執(zhí)行效率,簡(jiǎn)化了程序的開發(fā)。 ◆ 針對(duì)嵌入式控制領(lǐng)域應(yīng)用的特殊要求,已推出一款針對(duì)C28x內(nèi)核的C編輯器,能夠提供非常杰出的1.1C匯編語(yǔ)言轉(zhuǎn)換比例。C28x DSP的內(nèi)
16、核還支持IQ變換函數(shù)庫(kù),使研發(fā)人員很方便的使用便宜的定點(diǎn)DSP來(lái)實(shí)現(xiàn)浮點(diǎn)運(yùn)算。 在串行通信的應(yīng)用中,TMS320F2812含有兩個(gè)接口:外設(shè)接口SPI和通信接口SCI,本文研究的是基于TMS320F2812串行通信接口SCI的設(shè)計(jì)與實(shí)現(xiàn)。 而TMS320F2812串行通信接口(SCI)是一個(gè)雙線通信異步串行通信接口。為減少串口通信時(shí)CPU的開銷,TMS320F2812的串口支持16級(jí)接收和發(fā)送FIFO。串行通信接口支持與CPU以及其它使用非歸零格式的異步外設(shè)之間的異步串行數(shù)字通信。它的接收器和發(fā)送器都是雙級(jí)緩沖的,有各自獨(dú)立的控制位與中斷位,都可以同時(shí)工作在全雙工模式下。為保證
17、數(shù)據(jù)的完整性,串行通信接口對(duì)接收的數(shù)據(jù)進(jìn)行間斷檢測(cè)、奇偶性、超時(shí)和幀錯(cuò)誤檢查。串行通信接口可以通過(guò)16位的波特率選擇寄存器,設(shè)置多達(dá)65000種通信速度。TMS320F2812的SCI和以往的DSP的SCI相比具有兩個(gè)特點(diǎn):一是傳送、接收都具有獨(dú)立的FIFO;二是波特率可以自動(dòng)檢測(cè)。 2.2 TMS320F2812 SCI結(jié)構(gòu)與原理 SCI(Serial Communication Interface),即串行通信接口,是一個(gè)雙線 的異步串口,即具有接收和發(fā)送兩根信號(hào)線的異步串口,一般可以看作是 UART (通用異步接收/發(fā)送裝置)。F2812的SCI模塊支持DSP與采用NR
18、Z標(biāo)準(zhǔn)格式的異步 外圍設(shè)備之間進(jìn)行數(shù)字通信。2812 內(nèi)部具有兩個(gè)相同的SCI模塊,SCIA和SCIB, 每一個(gè)SCI模塊都各有一個(gè)接收器和發(fā)送器。SCI的接收器和發(fā)送器各具有一個(gè)16 級(jí)深度的FIFOFirst in fist out 先入先出)隊(duì)列,它們還都有自己獨(dú)立的使能 位和中斷位,可以在半雙工通信中進(jìn)行獨(dú)立的操作,或者在全雙工通信中同時(shí)進(jìn) 行操作。 首先,我們從圖2可以看到,SCI模塊具有兩個(gè)引腳,SCITXDA和SCIRXDA,分別實(shí)現(xiàn)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的功能,這兩個(gè)引腳對(duì)應(yīng)于GPIOF模塊的第4和第5位,在編程初始化的時(shí)候,需要將GPIOFMUX寄存器的第4
19、和第5位置為1,才能使得這兩個(gè)引腳具有發(fā)送和接收的功能,否則就是普通的I/O引腳。外部晶振通過(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。從圖2,我們可以清楚的看到SCIA可以產(chǎn)生兩個(gè)中斷,SCIRXINTA 和SCITXINTA,即發(fā)送中斷和接收中斷。
20、 圖2 SCIA的 CPU接口 SCI相關(guān)信號(hào)如表1所示: 信號(hào)名稱 描述 外部信號(hào) RXD SCI異步串行數(shù)據(jù)接收信號(hào) TXD SCI異步串行數(shù)據(jù)發(fā)送信號(hào) 控制信號(hào) 通信速率 低速外設(shè)預(yù)分頻時(shí)鐘 中斷信號(hào) TXINT 發(fā)射中斷 RXINT 接收中斷 表 1 SCI相關(guān)信號(hào) SCI模塊的其他一些特點(diǎn)如表2所示: 序號(hào) SCI模塊的特點(diǎn) 1 具有4 個(gè)錯(cuò)誤檢測(cè)標(biāo)志:極性(parity)、溢出(overrun)、 幀 (framing)、中斷(break)檢測(cè)。 2 多
21、處理器模式下具有兩種喚醒方式:空閑線方式和地址位方式。通常使用的時(shí)候很少遇到多處理器模式,我們采用的是空閑線方式。 3 通信工作于半雙工或者全雙工模式。 4 具有雙緩沖接收和發(fā)送功能,接收緩沖寄存器為SCIRXBUF,發(fā)送緩沖寄存器為SCITXBUF。 5 發(fā)送和接收可以通過(guò)中斷方式來(lái)實(shí)現(xiàn),也可以通過(guò)查詢方式來(lái)實(shí)現(xiàn)。 6 具有獨(dú)立的發(fā)送中斷使能位和接收中斷使能位。 7 SCIA 模塊具有 13 個(gè)控制寄存器,值得注意的是,這些寄存器都是 8 位的寄存器,當(dāng)某器被訪問(wèn)時(shí),數(shù)據(jù)位于低8 位,高8位為0,因此,把數(shù)據(jù)寫入高8 位將是無(wú)效的。 表2 SCI模塊特點(diǎn) 2
22、.3 SCI模塊發(fā)送和接收數(shù)據(jù)的工作原理 圖3 SCI模塊的工作原理 SCI模塊的工作原理如圖3所示,之所以SCI能工作于全雙工模式,是因?yàn)樗歇?dú)立的數(shù)據(jù)發(fā)送器和數(shù)據(jù)接收器,這樣能夠保證SCI既能夠同時(shí)進(jìn)行,也能夠獨(dú)立進(jìn)行發(fā)送和接收的操作。 SCI發(fā)送數(shù)據(jù)的過(guò)程如下:如圖3右半部分所示,在FIFO功能使能的情況下,首先,發(fā)送數(shù)據(jù)緩沖寄存器SCITXBUF從TX FIFO中獲取由CPU加載的需要發(fā)送的數(shù)據(jù),然后SCITXBUF將數(shù)據(jù)傳輸給發(fā)送移位寄存器TXSHF,如果SCI的發(fā)送功能使能,TXSHF則將接收到的數(shù)據(jù)逐位逐位
23、的移到SCITXD引腳上。 SCI接收數(shù)據(jù)的過(guò)程如下:如圖3的左半部分所示,首先,接收移位寄存器 RXSHF逐位逐位的接收來(lái)自于SCIRXD引腳的數(shù)據(jù),如果SCI的接收功能使能,RXSHF將這些數(shù)據(jù)傳輸給接收緩沖寄存器SCIRXBUF,CPU就能從SCIRXBUF讀取外部發(fā)送來(lái)的數(shù)據(jù)。當(dāng)然,如果FIFO功能使能的話,SCIRXBUF會(huì)將數(shù)據(jù)加載到RX FIFO的隊(duì)列中,CPU再?gòu)腇IFO的隊(duì)列讀取數(shù)據(jù)。 2.4 SCI數(shù)據(jù)格式 在SCI中,通信協(xié)議體現(xiàn)在SCI的數(shù)據(jù)格式上。通常將SCI的數(shù)據(jù)格式稱之為可編程的數(shù)據(jù)格式,原因就是可以通過(guò)SCI的通信控制寄存器SCICCR來(lái)
24、進(jìn)行設(shè)置,規(guī)定通信過(guò)程中所使用的數(shù)據(jù)格式。SCI 使用的是NRZ的數(shù)據(jù)格式,NRZ數(shù)據(jù)格式包括了如表3所示: 序號(hào) 內(nèi)容 1 1個(gè)起始位 2 1-8個(gè)數(shù)據(jù)位 3 1個(gè)奇/偶/非極性位 4 1-2個(gè)結(jié)束位 5 在地址位模式下,有1個(gè)用于區(qū)別數(shù)據(jù)或者地址的特殊位 表3據(jù)格式包 數(shù)據(jù)是1—8 位,1個(gè)字符的長(zhǎng)度。將帶有格式信息的每一個(gè)數(shù)據(jù)字符叫做一幀。SCI有空閑線模式和地址 位模式,若是在兩個(gè)處理器之間的通信,例如2812和 PC機(jī)或者2812和2812之間通信,更適合使用空閑線模式,
25、而地址位模式一般用于多處理器之間的通信。 SCI通信控制寄存器(SCICCR): SCICCR定義了SCI使用的字符格式、協(xié)議和通信模式,如圖4和表4所示。 圖4 SCI通信控制寄存器(SCICCR) 位 名稱 功能描述 1 STOP BITS SCI停止位的個(gè)數(shù) 該位決定的停止位的個(gè)數(shù),接收器僅對(duì)一個(gè)停止位檢查 0 一個(gè)停止位 1 兩個(gè)停止位 2 PARITY 奇偶校驗(yàn)選擇位 如果PARITY ENABLE位被置位,則PARITY確定采用奇校驗(yàn)還是偶校驗(yàn). 0 奇校驗(yàn) 1 偶校驗(yàn)
26、 3 PARITY SCI奇偶校驗(yàn)使能位 表4 SCI通信控制寄存器(SCICCR)的功能描述 SCI控制寄存器1(SCICTL1): SCICTL1控制接收/發(fā)送使能、TXWAKE和SLEEP功能以及SCI軟件復(fù)位,如圖5和表5所示。 圖5 SCI控制寄存器1(SCICTL1) 位 名稱 功能描述 1 RX ERR INT ENA 接收錯(cuò)誤中斷使能位 如果由于產(chǎn)生錯(cuò)誤而置位了接收錯(cuò)誤位(SCIRXST,位7),則置位該位使能一個(gè)接收錯(cuò)位中斷。 0 禁止接收錯(cuò)誤中斷; 1
27、 使能接收錯(cuò)誤中斷; 2 SW RESET 軟件復(fù)位位(低有效) 將0寫入該位,初始化SCI狀態(tài)機(jī)和操作標(biāo)志至復(fù)位狀態(tài)。直至將1寫入到軟件復(fù)位位,所有起作用的邏輯都保持確定的復(fù)位狀態(tài)。因此,系統(tǒng)復(fù)位后,應(yīng)將該位置1以重新使能SCI。 在檢測(cè)到一個(gè)接收器間斷(BRKDT標(biāo)志位,位SCIRXST,位5)后清除該位。 表5 SCI控制寄存器1 (SCICTL1) 的功能描述 SCI控制寄存器2(SCICTL2): SCI控制寄存器2(SCICTL2)控制使能接收準(zhǔn)備好、間斷檢測(cè)、發(fā)送準(zhǔn)備中斷、發(fā)送器準(zhǔn)備好及空標(biāo)
28、志,如圖6和表6所示。 圖6 SCI控制寄存器2 (SCICTL2) 位 名稱 功能描述 1 TXRDY 發(fā)送緩沖寄存器準(zhǔn)備好標(biāo)志位 當(dāng)TXRDY置位時(shí),表示發(fā)送數(shù)據(jù)緩沖寄存器(SCITXBUF)已經(jīng)準(zhǔn)備接收另一個(gè)字符。向SCITXBUF寫數(shù)據(jù)自動(dòng)清除TXRDY位。如果SCITXBUF置位時(shí),中斷使能位TXINT ENA(SCICTL2.0)置位,將會(huì)產(chǎn)生一個(gè)發(fā)送中斷請(qǐng)求 。 0 SCITXBUF滿: 1 SCITXBUF準(zhǔn)備好接收下一個(gè)字符: 5-2 保留 讀返回
29、0,寫沒(méi)有影響 3 RX/BK INT 接收緩沖器/間斷中斷使能 該位控制由于RXRDY標(biāo)志位或BRKDT標(biāo)志位置位引起的中斷請(qǐng)求,但是RX/BK INT ENA 并不能阻止RX/BK INT置位。 0 禁止RXRDY/BRKDT中斷; 1 使能RXRDY/BRKDT中斷; 4 TX INT ENA SCITXBUF寄存器中斷使能位 該位控制由TXRDY標(biāo)志位(SCICTL2.7)置位引起的中斷請(qǐng)求。但是它并不能阻止TXRDY被置位 0 禁止TXRDY中斷; 1 使能TXRDY
30、中斷; 表6 SCI控制寄存器2(SCICTL2)功能描述 SCI接收器狀態(tài)寄存器 (SCIRXST) : SCIRXST包含7個(gè)接收器狀態(tài)標(biāo)志位(其中2個(gè)能產(chǎn)生中斷請(qǐng)求)。每次一個(gè)完整的字符發(fā)送到接收緩沖器(SCIRXEMU和SCIRXBUF)后,狀態(tài)標(biāo)志位刷新。每次緩沖器被讀取時(shí),標(biāo)志位被清除。 圖7給出了寄存器位的關(guān)系, 表7給出了SCI接收狀態(tài)寄存器的功能定義。 圖7 SCI接收器狀態(tài)寄存器(SCIRXST) 位 名稱 功
31、能描述 1 RXRDY 接收器準(zhǔn)備好標(biāo)志位 2 OE 超時(shí)錯(cuò)誤標(biāo)志位 在前一個(gè)字符被CPU或DMAC完全讀走前,當(dāng)字符被發(fā)送到SCIRXEMU和SCIRXBUF時(shí),SCI就置位該位。前一個(gè)字符將會(huì)被覆蓋或丟失。 0 沒(méi)有檢測(cè)到超時(shí)錯(cuò)誤; 1 檢測(cè)到超時(shí)錯(cuò)誤; 3 FE 幀錯(cuò)誤標(biāo)志位 當(dāng)檢測(cè)不到一個(gè)期望的停止位時(shí),SCI就置位該位。丟失停止位表明沒(méi)有能夠和起始位同步,且字符幀發(fā)生了錯(cuò)誤。 0 沒(méi)有檢測(cè)到幀錯(cuò)誤; 1 檢測(cè)到幀錯(cuò)誤; 4 RXRDY 接收器準(zhǔn)備好標(biāo)志位 當(dāng)準(zhǔn)備好從SCIRXBUF寄存器中讀一個(gè)新的
32、字符時(shí),接收器置位接收器準(zhǔn)備好標(biāo)志位,并且如果RX/BK INT ENA位(SCICTL2.1)是1則產(chǎn)生接收器中斷。 0 在SCIRXBUF中沒(méi)有新的字符; 1 準(zhǔn)備好從SCIRXBUF中讀取字符; 5 保留 讀返回0,寫操作沒(méi)有影響 表7 SCI接收器狀態(tài)寄存器 (SCIRXST)功能描述 在空閑線模式下,SCI發(fā)送或者接收一幀的數(shù)據(jù)格式如圖3所示,其中LSB是數(shù)據(jù)的最低位,MSB是數(shù)據(jù)的最高位如圖8所示。 圖8 空閑線模式下SCI-幀的數(shù)據(jù)式 具體的定義如圖3所示的這些數(shù)據(jù)格式的
33、寄存器是通信控制寄存器SCICCR,其內(nèi)容如圖4所示。使用SCICCR進(jìn)行數(shù)據(jù)格式編程如圖9所示。 圖9 SCI通信控制寄存器SCICCR 使用SCICCR進(jìn)行數(shù)據(jù)格式編程如表8所示: 使用SCICCR進(jìn)行數(shù)據(jù)格式編程 SciaRegs.SCICCR.bit.SCICHAR=8; //選擇數(shù)據(jù)長(zhǎng)度,為8 個(gè)數(shù)據(jù)位 SciaRegs.SCICCR.bit.PARITYENA=1; //開啟極性功能,值為0的時(shí)候取消極性功能 SciaRegs.SCICCR.bit.PAR
34、ITY=0; //在開啟極性功能的前提下,該位值為0 時(shí)選擇偶極性,值為1時(shí)選擇奇極性 SciaRegs.SCICCR.bit.STOPBITS=0; //選擇停止位,該位為0時(shí)有1 個(gè)停止位,該位為1 時(shí)有2 個(gè)停止位 當(dāng)然,上述這幾個(gè)語(yǔ)句,我們也可以合并成如下的語(yǔ)句: SciaRegs.SCICCR.all=0x13; 表8 SCICCR數(shù)據(jù)編程 空閑線模式中數(shù)據(jù)格式里沒(méi)有額外的地址位,在處理10個(gè)字節(jié)以上的數(shù)據(jù)塊時(shí)比地址位模式更為有效,被應(yīng)用于典型的非多處理器SCI通信場(chǎng)合。而地址位模式由于有專門的位來(lái)進(jìn)行識(shí)別地址
35、信息,所以數(shù)據(jù)塊之間不需要空閑時(shí)間等待,所以這種模式在處理一些小的數(shù)據(jù)塊的時(shí)候更為有效。 2.5 SCI通信波特率 TMS320F2812的每個(gè)SCI都具有兩個(gè)8位的波特率寄存器,SCIHBAUD和SCILBAUD,通過(guò)編程,可以實(shí)現(xiàn)達(dá)64K不同的速率。波特率的計(jì)算公式如下所示: (1) 因此
36、 (2) 其中 BRR=波特率選擇寄存器中的值,從十進(jìn)制轉(zhuǎn)換成十六進(jìn)制后,高8位賦值給 SCIHBAUD,低8位賦值給SCILBAUD。值得注意的是,式1 所示的波特率公式適用于1≤BRR≤65535,當(dāng)BRR=0是,波特率如公式(3)所示: (3) BRR的值是16位波特率選擇寄存器內(nèi)的值,其選擇值如表9所示: 理想波特率 LSPCLK時(shí)鐘頻
37、率,37.5MHZ BRR 實(shí)際波特率 錯(cuò)誤百分比/% 2400 1952(7A0H) 2400 0 4800 976(3D0H) 4798 -0.04 9600 487(1E1H) 9606 0.06 19200 243(00F3H) 19211 0.06 38400 121(0079H) 38422 0.06 表9 波特率值選擇表 在SCI通信時(shí)雙方都必須以相同的數(shù)據(jù)格式和波特率進(jìn)行通信,否則通信會(huì)失敗。 2.6 SCI FIFO描述 1. 復(fù)位:在上電復(fù)位時(shí),SCI工作在標(biāo)
38、準(zhǔn)SCI模式,禁止FIFO功能。FIFO 的寄存器SCIFFTX、SCIFFRX和SCIFFCT都被禁止。 2. 標(biāo)準(zhǔn) SCI:標(biāo)準(zhǔn)F24xSCI模式,TXINT/RXINT 中斷作為 SCI的中斷源。 3. FIFO使能:通過(guò)將SCIFFTX寄存器中的SCIFFEN位置 1,使能FIFO模式。在任何操作狀態(tài)下SCIRST都可以復(fù)位FIFO模式。 4. 寄存器有效:所有SCI寄存器和SCI FIFO寄存器(SCIFFTX,SCIFFRX和SCIFFCT)有效。 5. 中斷:FIFO模式有兩個(gè)中斷,一個(gè)是發(fā)送FIFO中斷TXINT,另一個(gè)是接收 F
39、IFO中斷RXINT 。FIFO接收、接收錯(cuò)誤和接收FIFO溢出共用RXINT中斷。標(biāo)準(zhǔn)SCI 的 TXINT 將被禁止,該中斷將作為 SCI發(fā)送 FIFO中斷使用。 6. 緩沖: 發(fā)送和接收緩沖器增加了兩個(gè)16級(jí)的FIFO, 發(fā)送FIFO寄存器是6位長(zhǎng)度,接收FIFO寄存器都是10位長(zhǎng)度。標(biāo)準(zhǔn)SCI的一個(gè)字的發(fā)送緩沖器作為發(fā)送FIFO和移位寄存器間的發(fā)送緩沖器。只有移位寄存器的最后一位被移出后,一個(gè)字的發(fā)送緩沖才從發(fā)送 FIFO裝載。在使能FIFO后,經(jīng)過(guò)一個(gè)可選擇的延遲(SCIFFCT),TXSHF被直接裝載而不使用 TXBUF。 7. 延遲發(fā)送:FIFO 中的數(shù)據(jù)傳送到發(fā)送移位
40、寄存器的速率是可編程的,可以通過(guò)SCIFFCT 寄存器的位 FFTXDLY(7-0)設(shè)置發(fā)送數(shù)據(jù)間的延遲。FFTXDLY(7-0)確定延遲的SCI波特率時(shí)鐘周期數(shù),8位寄存器可以定義0個(gè)波特率時(shí)鐘周期的最小延遲到256個(gè)波特率始終周期的最大延遲。當(dāng)使用0延遲時(shí),SCI模塊的 FIFO數(shù)據(jù)移出時(shí)數(shù)據(jù)沒(méi)有延時(shí),一位緊接一位地從FIFO移出,實(shí)現(xiàn)數(shù)據(jù)的連續(xù)發(fā)送。當(dāng)選擇256個(gè)波特率時(shí)鐘延遲時(shí),SCI模塊工作在最大延遲模式,F(xiàn)IFO移出的每個(gè)數(shù)據(jù)字之間有256個(gè)波特率時(shí)鐘延遲。在慢速SCI/UART的通信時(shí),可編程延遲減少CPU對(duì)SCI通信的開銷。 8.FIFO狀態(tài)位:發(fā)送和接收 FIFO都有狀
41、態(tài)位TXFFST或RXFFST(位12-0),這些狀態(tài)位顯示當(dāng)前FIFO內(nèi)有用數(shù)據(jù)的個(gè)數(shù)。當(dāng)發(fā)送FIFO復(fù)位位TXFIFO和接收復(fù) 位位RXFIFO將FIFO指針復(fù)位為0時(shí),狀態(tài)位清零。一旦這些位被設(shè)置為1,則FIFO從開始運(yùn)行。 9.可編程的中斷級(jí):發(fā)送和接收FIFO都能產(chǎn)生CPU中斷,只要發(fā)送FIFO狀態(tài)位TXFFST(位 12-8)與中斷觸發(fā)優(yōu)先級(jí)位TXFFIL(位 4-0)相匹配,就能產(chǎn)生一個(gè)中斷觸發(fā),從而為SCI的發(fā)送和接收提供了一個(gè)可編程的中斷觸發(fā)邏輯。接收FIFO的默認(rèn)觸發(fā)優(yōu)先級(jí)為0x11111,發(fā)送FIFO的默認(rèn)觸發(fā)優(yōu)先級(jí)為0x00000。0x00000 。FIF
42、O模式下SCI中斷的操作和配置如圖10所示: 圖10 SCI FIFO 中斷標(biāo)志和使能邏輯位 大多數(shù)的SCI硬件模塊不支持自動(dòng)波特率檢測(cè),而在TMS320F2812處理器上, 增強(qiáng)功能的SCI模塊硬件支持自動(dòng)波特率檢測(cè)邏輯和發(fā)送/接受FIFO操作。自動(dòng)波特率檢測(cè)邏輯主要解決中斷過(guò)程中波特率的確定問(wèn)題。16字的FIFO可極大減少通信中斷次數(shù)以提高通信速率。通過(guò)設(shè)置SCIHBAUD, SCILBAUD 的值可到64K種不同的波特率,本系統(tǒng)的外部晶振 20MHz 經(jīng)過(guò) PLL5 倍頻后達(dá)100MHz, 該系統(tǒng)中的PC 與 DSP 的通信速率設(shè)置為19 200 bps, 通過(guò)對(duì)SCI 的進(jìn)行初始
43、化即可。計(jì)算機(jī)端利用串口調(diào)試助手實(shí)現(xiàn)接收顯示, 將其設(shè)置成與DSP 相同的波特率、有無(wú)校驗(yàn)位、數(shù)據(jù)位長(zhǎng)度、停止位長(zhǎng)度以及數(shù)據(jù)位數(shù)即可正常顯示收/ 發(fā)數(shù)據(jù)。 在兩個(gè)不同時(shí)鐘域中傳送數(shù)據(jù)時(shí),異步先進(jìn)先出( FIFO, First In FirstOut)通常被用來(lái)保證數(shù)據(jù)傳送的安全性。將某一個(gè)時(shí)鐘域中的數(shù)據(jù)安全地傳送到另一個(gè)時(shí)鐘域中 ,需要多異步時(shí)鐘設(shè)計(jì)技術(shù)。 1、在同步FIFO中的應(yīng)用 設(shè)計(jì)同步FIFO時(shí) ,首先要充分認(rèn)識(shí)到它的特點(diǎn)—— 所謂“同步”是指讀寫時(shí)鐘是同步的。根據(jù)這個(gè)特點(diǎn) ,設(shè)計(jì)者可以使用一個(gè)計(jì)數(shù)器來(lái)記錄FIFO的使用情況 ,并把計(jì)數(shù)器的值作為產(chǎn)生FIFO狀態(tài)信號(hào)的判據(jù)。當(dāng)計(jì)
44、數(shù)器的值為0時(shí) , EMPTY信號(hào)有效;當(dāng)計(jì)數(shù)器的值達(dá)到FIFO的最大深度時(shí) , FULL信號(hào)有效。 2、在異步FIFO中的應(yīng)用 在異步 FIFO的設(shè)計(jì)中,由于FIFO兩端的時(shí)鐘不是同步的,上面介紹的設(shè)計(jì)方法就行不通了。異步FIFO的空滿信號(hào)只有通過(guò)比較讀寫指針來(lái)生成。通常使用“超前”的指針工作方式,即讀寫指針指向的是下一個(gè)應(yīng)該被讀或應(yīng)該被寫的地址。當(dāng)FIFO執(zhí)行寫操作的時(shí)候,首先,將數(shù)據(jù)寫入指針指向的存儲(chǔ)地址;隨后 ,寫指針增加 ,指針指向下一個(gè)寫操作時(shí)數(shù)據(jù)需要存放的地址。 為了保證異步FIFO設(shè)計(jì)的安全性和正確性 ,需要注意以下幾點(diǎn): (1) 在設(shè)計(jì)指針控制邏輯
45、的時(shí)候 ,所設(shè)計(jì)出的指針控制邏輯能夠保證讀寫操作的絕對(duì)正確和安全;能夠保證讀寫邏輯同存儲(chǔ)器通信時(shí),能及時(shí)、高效地傳輸數(shù)據(jù);能夠?qū)喎€(wěn)態(tài)的出現(xiàn)有一定抑制作用。 (2) 對(duì)讀寫指針、握手信號(hào)進(jìn)行比較的時(shí)候 ,必須保證信號(hào)是在同一個(gè)時(shí)鐘域中進(jìn)行比較 (可以是寫時(shí)鐘域同步到讀 ,也可以是讀時(shí)鐘域同步到寫 );也必須保證數(shù)據(jù)同步所引入的延時(shí)對(duì)FIFO狀態(tài)信號(hào)的正確性沒(méi)有影響。只有嚴(yán)格把握上面幾點(diǎn) ,才有可能設(shè)計(jì)出符合要求的異步 FIFO。 第三章 串口通信硬件與軟件設(shè)計(jì) 3.1 基于TMS320F2812的DS
46、P最小系統(tǒng)設(shè)計(jì) 一個(gè)典型的DSP最小系統(tǒng)如圖11所示,包括了復(fù)位電路、時(shí)鐘電路及JTAG接口電路等等。 圖11 DSP最小系統(tǒng) 3.1.1電源及復(fù)位電路的設(shè)計(jì) DSP系統(tǒng)一般都采用多電源系統(tǒng) ,電源及復(fù)位電路的設(shè)計(jì)對(duì)于系統(tǒng)性能有重要影響。TMS320F2812是一個(gè)較低功耗芯片 ,核電壓為1.8V , IO電壓為
47、3.3V。本設(shè)計(jì)采用TI公司的 TPS767D318電源芯片。該芯片屬于線性降壓型DC/DC變換芯片 ,可以由5V電源同時(shí)產(chǎn)生兩種不同的電壓( 3.3V、1.8V 或2.5V ) ,其最 大 輸出電流為1000mA ,可以同時(shí)滿足一片DSP芯片和少量外圍電路的供電需要 ,如圖12所示。該芯片自帶電源監(jiān)控及復(fù)位管理功能 ,可以方便地實(shí)現(xiàn)電源及復(fù)位電路設(shè)計(jì)。復(fù)位電路原理圖如圖13所示。 圖12 電源電路原理圖 圖
48、13 復(fù)位電路原理圖 3.1.2 時(shí)鐘電路設(shè)計(jì) TMS320F2812 DSP的時(shí)鐘可以有兩種連接方式,即外部振蕩器方式和諧振器方式。如果使用內(nèi)部振蕩器,則必須在X1/XCL KIN和X2兩個(gè)引腳之間連接一個(gè)石英晶體。如果采用外部時(shí)鐘,可將輸入時(shí)鐘信號(hào)直接連到X1/CL KIN 引腳上,X2 懸空。本設(shè)計(jì)采用的是外部有源時(shí)鐘方式,直接選擇一個(gè)3.3V 供電的30MHz有源晶振實(shí)現(xiàn)。系統(tǒng)工作是通過(guò)編程選擇5倍頻的PLL功能,可實(shí)現(xiàn)F2812的最高工作頻率(150MHz) 。晶振電路如圖14所示: 圖1
49、4 晶振電路原理圖 3.1.3 DSP與JTAG接口設(shè)計(jì) DSP仿真器通過(guò)DSP芯片上提供的掃描仿真引腳實(shí)現(xiàn)仿真功能,掃描仿真消除了傳統(tǒng)電路仿真存在的電纜過(guò)長(zhǎng)會(huì)引起的信號(hào)失真及仿真插頭的可靠性差等問(wèn)題。采用掃描仿真,使得在線仿真成為可能,給調(diào)試帶來(lái)極大方便。JTAG接口電路如圖15所示: 圖15 JTAG電路原理圖 3.2 串口通信硬件設(shè)計(jì) 串行通信是指使用一條數(shù)據(jù)線(另外需要地線,可能還需要控制線),將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,
50、特別使用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信。使用串口通信時(shí),發(fā)送和接收到的每一個(gè)字符實(shí)際上都是一次一位的傳送的,每一位為1或者為0。如圖16所示: 圖16 串口通信 TMS320F2812芯片內(nèi)部集成了一個(gè)串行通信接口(SCI)模塊,該模塊是一個(gè)標(biāo)準(zhǔn)的通用異步接收/發(fā)送(UART)通信接口,通信接口有SCITXD(SCI發(fā)送輸出引腳)和SCIRXD(SCI接收輸入引腳)兩個(gè)外部引腳,引腳的信號(hào)電平為TTL類型。而DSP串口的異步串行通信基于RS232C標(biāo)準(zhǔn),兩者的信號(hào)邏輯電平不一
51、致,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。TMS320F2812接口電路如圖17所示: 圖17 TMS320F2812 接口電路 -以RS232C通信標(biāo)準(zhǔn)進(jìn)行通信,在保證通信準(zhǔn)確性的前提下,通信距離一般以不超過(guò)12m為宜,在工業(yè)控制現(xiàn)場(chǎng)很受限制。為保證硬件設(shè)計(jì)的兼容性和易擴(kuò)展性,能夠應(yīng)用于不同場(chǎng)合,在DSP硬件電路板端還采用了一個(gè)MAX489芯片,添加了一個(gè)RS485/RS422通信接口。因?yàn)镸AX489芯片功耗低,集成度高,+5V
52、供電,具有兩個(gè)接收和發(fā)送通道。由于TMS320LF2812采用+3.3V供電,所以在MAX489與TMS320LF2812之間必須加電平轉(zhuǎn)換電路。 實(shí)際使用過(guò)程中,系統(tǒng)在選擇不同的通信標(biāo)準(zhǔn)時(shí),切換十分方便。如圖6所示,當(dāng)跳線端子JUMP2與JUMP3的2、3腳短接時(shí),SCITXD接通MAX232芯片的T1I引腳,SCIRXD接通MAX232芯片的R1O引腳,即DSP的通信接口與MAX232芯片相連,此時(shí)系統(tǒng)采用RS232C的通信標(biāo)準(zhǔn)。當(dāng)跳線端子JUMP2與JUMP3的1、2腳短接時(shí),SCITXD接通MAX489芯片的DI引腳,SCIRXD接通MAX489芯片的RO引腳,即DSP的通
53、信接口與MAX489芯片相連,此時(shí)系統(tǒng)采用RS485/422的通信標(biāo)準(zhǔn),DSP端只需添加一個(gè)RS232C/RS485轉(zhuǎn)換器即可進(jìn)行通信接口電平轉(zhuǎn)換。 3.3 串口通信軟件設(shè)計(jì) - 在DSP端的軟件程序設(shè)計(jì)中,通過(guò)中斷方式接收發(fā)送端發(fā)送過(guò)來(lái)的數(shù)據(jù)包,并校驗(yàn)確認(rèn)后接收有效數(shù)據(jù),再將發(fā)送端所需的數(shù)據(jù)打包回送?;贒SP功能模塊化的特點(diǎn),其串行通信匯編程序的編制主要分三個(gè)步驟: (1)初始化設(shè)置時(shí)鐘源模塊,得到所需的CPUCLK和SYSCLK(因?yàn)橛?jì)算波特率時(shí)與之有關(guān)); (2)設(shè)置SCI模塊,初始化各SCI控制寄存器; (3)編寫串行通信中斷服務(wù)子程序,即可完成DSP
54、發(fā)送端與接收端之間的串行通信。 SCI模塊采用了一個(gè)比較經(jīng)典的通信類模型,很好的體現(xiàn)了分層結(jié)構(gòu),應(yīng)用層調(diào)接口函數(shù)對(duì)緩沖區(qū)進(jìn)行操作,不直接操作硬件。 應(yīng)用層只需 要將需要發(fā)送的字節(jié)送入緩沖區(qū),驅(qū)動(dòng)程序會(huì)自行判斷是否啟動(dòng)首次發(fā)送,啟動(dòng)首次發(fā)送后,應(yīng)用程序不再需要參與發(fā)送流程,驅(qū)動(dòng)會(huì)自動(dòng)完成全部的工作,直到緩沖區(qū)為空。當(dāng)SCI接受到數(shù)據(jù)后,會(huì)觸發(fā)接收中斷,由接收中斷負(fù)責(zé)將收到的數(shù)據(jù)送入到緩沖區(qū)。 在串行通信中斷服務(wù)子程序的編制過(guò)程中,參考圖18所示的DSP串行通信流程圖 接線引腳(RxD) 發(fā)送引
55、腳(TxD) 發(fā)送移位寄存器 接收移位寄存器 SCI數(shù)據(jù)寄存器 MCU內(nèi)部總線 SCI狀態(tài)寄存器 SCI波特率寄存器 SCI控制寄存器 圖 18 SCI程序流程圖 而通常使用的有兩種方式:一種是查詢方式,另一種是中斷方式。 1、查詢方式,就是程序不斷去查詢狀態(tài)標(biāo)志位,看看SCI是不是已經(jīng)做好 了數(shù)據(jù)發(fā)送或者接收的準(zhǔn)備。 當(dāng)數(shù)據(jù)發(fā)送時(shí),需要查詢的是位于SCI控制寄存器 2(SCICTL2)的
56、第7位TXREADY,發(fā)送緩沖寄存器就緒標(biāo)志。當(dāng)這個(gè)位為1的時(shí)候, 表明發(fā)送數(shù)據(jù)緩沖寄存器SCITXBUF已經(jīng)準(zhǔn)備好開始接收并發(fā)送下一個(gè)數(shù)據(jù)了。當(dāng) 數(shù)據(jù)寫入SCITXBUF,TXREADY自動(dòng)會(huì)清零,如果TXENA使能了,發(fā)送移位寄存器 TXSHF就會(huì)把SCITXBUF里面的數(shù)據(jù)發(fā)送出去。當(dāng)數(shù)據(jù)接收時(shí),需要查詢的是SCI 接收狀態(tài)寄存器(SCIRXST)中的RXRDY,接收器就緒標(biāo)志。當(dāng)從SCIRXBUF寄存器 中已經(jīng)準(zhǔn)備好一個(gè)字符的數(shù)據(jù),等待CPU去讀時(shí),RXRDY位就會(huì)置1。當(dāng)數(shù)據(jù)被CPU 從SCIRXBUF 讀出后,或者系統(tǒng)復(fù)位,都可以使RXRDY清0。其流程圖如圖20所示。
57、 2、中斷方式,根據(jù)前面所學(xué)的三級(jí)中斷的知識(shí),必須使能外設(shè)自己的中斷、 PIE中斷和CPU中斷。SCIA的發(fā)送和接收中斷分別位于PIE模塊第9組的第1和第2 位,同時(shí)對(duì)應(yīng)于CPU中斷的INT9。前面所述的TXRDY是中斷標(biāo)志位,當(dāng)該位置1時(shí), 就會(huì)產(chǎn)生發(fā)送中斷事件,如果各級(jí)中斷都已經(jīng)使能,則會(huì)響應(yīng)SCI的發(fā)送中斷 函數(shù)。當(dāng)接收中斷標(biāo)志位RXRDY置1時(shí),就會(huì)產(chǎn)生接收中斷標(biāo)志。如果各級(jí)中斷已 經(jīng)使能,則會(huì)響應(yīng)SCI的接收中斷。其流程圖如21所示。 特別注意:外設(shè)中斷的標(biāo)志位一定要手動(dòng)復(fù)位,在這里SCI是個(gè)例外,原因 如下:當(dāng)發(fā)送器緩沖寄存器SCITXBUF
58、做好準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),TXRDY置1,但是當(dāng)CPU 將數(shù)據(jù)寫入SCITXBUF的時(shí)候,TXRDY自動(dòng)會(huì)清0。而當(dāng)接收器緩沖寄存器已經(jīng)準(zhǔn)備 好數(shù)據(jù)等待CPU去讀取時(shí),RXRDY置1,當(dāng)CPU將數(shù)據(jù)從SCIRXBUF讀出時(shí),RXRDY也 會(huì)自動(dòng)清0。這是和其他外設(shè)中斷不一樣的地方。 圖20 查詢方式流程圖 圖21 中斷方式流程圖 1、使用查詢方式發(fā)送或者接收數(shù)據(jù)的程序結(jié)構(gòu)如下: 調(diào)用主程序: //發(fā)送程序 If (Sc
59、iaTx_Ready() == 1) { SciaRegs.SCITXBUF =SCI_Senddata; //SCI_senddata 為需要發(fā)送的數(shù)據(jù) } //接收程序 if(SciaRx_Ready() == 1) { Sci_Receivedata = SciaRegs.SCIRXBUF.all; //SCI_Receivedata 用于存放 接收的數(shù)據(jù) } //發(fā)送就緒標(biāo)志狀態(tài)查詢函數(shù) int SciaTx_Re
60、ady(void) { unsigned int i; if(SciaRegs.SCICTL2.bit.TXRDY == 1) { i = 1;//返回 1 說(shuō)明發(fā)送器已經(jīng)準(zhǔn)備就緒,可以接收新的數(shù)據(jù)進(jìn)行發(fā)送 } Else { i = 0; } return(i); } //接收就緒標(biāo)志狀態(tài)查詢函數(shù) int SciaRx_Ready(void) { unsigned int i; if(SciaRegs.SCIRXST.bit.RXRDY == 1) {
61、 i = 1; //返回 1 說(shuō)明數(shù)據(jù)接收已經(jīng)就緒,等待 CPU 去讀取數(shù)據(jù) } Else { i = 0; } return(i); } 2、使用中斷方式發(fā)送或者接收的程序: Void main() { InitPieCtrl();/*初始化 PIE 中斷*/ InitPieVectTable();/*初始化 PIE 中斷矢量表*/ /*設(shè)置中斷服務(wù)程序入口地址*/ EALLOW; // This is needed to write to EALLOW protected regi
62、sters PieVectTable.TXAINT = &SCITXINTA_ISR; PieVectTable.RXAINT = &SCIRXINTA_ISR; EDIS; // This is needed to disable write to EALLOW protected registers //PIE 中斷使能 PieCtrl.PIEIER9.bit.INTx1=1; //使能 SCI 發(fā)送中斷 PieCtrl.PIEIER9.bit.INTx2=1;//使能 SCI 接收中斷 IER |= M_INT9
63、; /*開 CPU 中斷*/ EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM } //接收中斷函數(shù) interrupt void SCIRXINTA_ISR(void) // SCI-A { PieCtrl.PIEACK.bit.ACK9 = 1; //釋放 PIE 同組中斷 if(SciaRx_Ready() == 1) { Sci_Receivedata = SciaRegs.SCIRXBUF.all;
64、//SCI_Receivedata 用于存放接收的數(shù)據(jù) } EINT;//使能全局中斷 } //發(fā)送中斷函數(shù) interrupt void SCITXINTA_ISR(void) // SCI-A { PieCtrl.PIEACK.bit.ACK9 = 1; //釋放PIE同組中斷 if(SciaTx_Ready() == 1) { SciaRegs.SCITXBUF =SCI_Senddata; //SCI_senddata為需要發(fā)送的數(shù)據(jù) } EINT; //使能全局中斷 }
65、 第四章 總結(jié)與展望 4.1 結(jié)論 TMS320F2812有極高的主頻 ,每個(gè)指令周期僅有6167ns ,在具有復(fù)雜的算法、要求實(shí)時(shí)控制的場(chǎng)合能充分顯示出其優(yōu)越性。隨著工業(yè)的發(fā)展 ,人們對(duì)工業(yè)控制的要求越來(lái)越高。DSP芯片處理數(shù)據(jù)的速度在不斷的提高 ,能滿足工業(yè)控制中實(shí)時(shí)處理數(shù)據(jù)的要求 ,而且其價(jià)格在不斷的下降。因此 ,DSP的普及指日可待 ,其應(yīng)用前景十分看好。 4.2 展望 畢業(yè)設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程. 回顧起此次DSP原理及應(yīng)用的畢業(yè)設(shè)計(jì),
66、至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整一個(gè)月的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次畢業(yè)設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。 在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟是第一次綜合應(yīng)用DSP技術(shù)來(lái)做設(shè)計(jì),難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固……通過(guò)這次畢業(yè)設(shè)計(jì)之后,得以把以前所學(xué)過(guò)的知識(shí)重新溫故。這次畢業(yè)設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的辛勤指導(dǎo)下,同學(xué)的幫助下終于迎刃而解。在此我表示感謝! 參考文獻(xiàn) [1] DSP原理及應(yīng)用 [M],鄒彥:電子工業(yè)出版社. [2] TI1 20041 TMS320F2810 , TMS320
- 溫馨提示:
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. 裝配圖網(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ǎn)源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會(huì)知識(shí)問(wèn)答
- 8 各種煤礦安全考試試題
- 9 危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)管理人員模擬考試題庫(kù)試卷附答案
- 加壓過(guò)濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹脂砂混砂工藝知識(shí)總結(jié)
- XXXXX現(xiàn)場(chǎng)安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級(jí))職業(yè)技能理論知識(shí)考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫(kù)試卷含答案
- 工段(班組)級(jí)安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫(kù)試卷含答案-4
- 建筑起重司索信號(hào)工安全操作要點(diǎn)
- 實(shí)驗(yàn)室計(jì)量常見(jiàn)的30個(gè)問(wèn)問(wèn)答題含解析