




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第七周串口控制器原理與編程第一頁,共46頁。上周教學(xué)內(nèi)容回顧大課CC2530電源的管理CC2530系統(tǒng)時鐘的編程(難點(diǎn))小課8路流水燈,會看原理圖,會接線;GPIO口按鍵狀態(tài)的獲取第二頁,共46頁。本周教學(xué)主要內(nèi)容串行通信基礎(chǔ)知識串口控制器的原理與編程,相關(guān)SFR在控制器運(yùn)行過程中所器的作用。CC2530串口控制器編程步驟第三頁,共46頁。教學(xué)目標(biāo)了解串行通信的基礎(chǔ)知識;掌握CC2530串口的編程步驟;重點(diǎn)理解相關(guān)SFR在控制器運(yùn)行過程中所器的作用。第四頁,共46頁。
計算機(jī)與外界的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。所謂并行通信是指數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收。串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。一、
串行通信基礎(chǔ)知識了解第五頁,共46頁。
目前串行通信在單片機(jī)雙機(jī)、多機(jī)以及單片機(jī)與PC機(jī)之間的通信等方面得到了廣泛應(yīng)用。圖1并行通信示意圖發(fā)送方接收方圖2串行通信示意圖了解發(fā)送方接收方8位數(shù)據(jù)同時傳送8位順次傳送第六頁,共46頁。1.1異步通信和同步通信
計算機(jī)通信按同步方式可分為異步通信和同步通信兩種基本通信方式。1.同步通信(SynchronousCommunication)
同步通信是一種連續(xù)傳送數(shù)據(jù)的通信方式,一次通信傳送多個字符數(shù)據(jù),稱為一幀信息。數(shù)據(jù)傳輸速率較高,通??蛇_(dá)56000bps或更高。其缺點(diǎn)是要求發(fā)送時鐘和接收時鐘保持嚴(yán)格同步。了解幀...流方向幀第七頁,共46頁。2.異步通信(AsynchronousCommunication)
在異步通信中,數(shù)據(jù)通常是以字符或字節(jié)為單位組成數(shù)據(jù)幀進(jìn)行傳送的。收、發(fā)端各有一套彼此獨(dú)立,互不同步的通信機(jī)構(gòu),由于收發(fā)數(shù)據(jù)的幀格式相同,因此可以相互識別接收到的數(shù)據(jù)信息。了解起始位停止位數(shù)據(jù)位第八頁,共46頁。2.異步通信(AsynchronousCommunication)異步通信信息幀格式如圖4所示。D0D1D2D3D4
D5
D6
D7
0/1
1111D7
0/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位5~8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀圖4異步通信幀格式8位數(shù)據(jù)
了解第九頁,共46頁。(1)起始位:在沒有數(shù)據(jù)傳送時,通信線上處于邏輯“1”狀態(tài)。當(dāng)發(fā)送端要發(fā)送1個字符數(shù)據(jù)時,首先發(fā)送1個邏輯“0”信號,這個低電平便是幀格式的起始位。其作用是向接收端表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。接收端檢測到這個低電平后,就準(zhǔn)備接收數(shù)據(jù)信號。(2)數(shù)據(jù)位:在起始位之后,發(fā)送端發(fā)出(或接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴(yán)格的限制,5~8位均可。由低位到高位逐位傳送。了解第十頁,共46頁。(3)奇偶校驗位:數(shù)據(jù)位發(fā)送完(接收完)之后,可發(fā)送一位用來檢驗數(shù)據(jù)在傳送過程中是否出錯的奇偶校驗位。奇偶校驗是收發(fā)雙方預(yù)先約定好的有限差錯檢驗方式之一。有時也可不用奇偶校驗。(4)停止位:字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位或2位。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準(zhǔn)備。了解第十一頁,共46頁。1.2串行通信的波特率
波特率(BaudRate)是串行通信中一個重要概念,它是指傳輸碼元/信號的速率。
比特率的定義是每秒傳輸二進(jìn)制數(shù)的位數(shù)。
比特率
=
波特率·log2一個碼元所攜帶的信息量了解第十二頁,共46頁。1.3串行通信的制式1.單工制式(Simplex)在串行通信中,數(shù)據(jù)是在兩個站之間傳送的。按照數(shù)據(jù)傳送方向,分為三種。發(fā)送器A接收器B2.半雙工制式(Halfduplex)發(fā)送接收發(fā)送接收A端B端3.全雙工制式(Fullduplex)發(fā)送接收接收發(fā)送A端B端了解第十三頁,共46頁。1.4PC機(jī)與單片機(jī)間的串行通信串口:如RS-232C、RS-422、RS-423、RS-485等。單片機(jī)內(nèi)是TTL電平2.4~5V:邏輯10~0.5V:邏輯0只適用于通信距離很短的場合,遠(yuǎn)距離傳輸必然會使信號衰減和畸變。PC機(jī)
其中RS-232C在異步串行通信中應(yīng)用最廣的總線標(biāo)準(zhǔn),采用負(fù)邏輯標(biāo)準(zhǔn):+3V~+15V表示邏輯0; -3V~-15V表示邏輯1標(biāo)準(zhǔn)串行總線通信接口單片機(jī)單片機(jī)單片機(jī)第十四頁,共46頁。圖5微機(jī)9針D形串口連接器1.4.1RS-232C總線標(biāo)準(zhǔn)RS-232C實(shí)際上是串行通信的總線標(biāo)準(zhǔn),定義了25條信號線,使用25個引腳的連接器,目前在PC機(jī)中使用9針的串口。
標(biāo)準(zhǔn)數(shù)據(jù)傳送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200bit/s。工業(yè)控制的RS-232一般只使用RXD、TXD、GND三條線。2:接收3:發(fā)送5:地第十五頁,共46頁。1.4.2RS-232C接口電路
由于RS-232C信號電平與TTL電平不一致,必須進(jìn)行信號電平轉(zhuǎn)換。實(shí)現(xiàn)這種電平轉(zhuǎn)換的電路稱為RS-232C接口電路。一般有兩種形式:一種是采用運(yùn)算放大器、晶體管、光電隔離器等器件組成的電路來實(shí)現(xiàn);另一種是采用專門集成芯片(如MC1488、MC1489、MAX232等)來實(shí)現(xiàn)。下面介紹由專門集成芯片MAX232構(gòu)成的接口電路。1.MAX232接口電路MAX232芯片是MAXIM公司生產(chǎn)的具有兩路接收器和驅(qū)動器的IC芯片,其內(nèi)部有一個電源電壓變換器,可以將輸入+5V的電壓變換成RS-232C輸出電平所需的±12V電壓。所以采用這種芯片來實(shí)現(xiàn)接口電路特別方便,只需單一的+5V電源即可。第十六頁,共46頁。C1+C1-C2+C2-CC2530GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V++++圖6用MAX232實(shí)現(xiàn)串行通信接口電路圖2.串行通信時使用MAX232進(jìn)行電平轉(zhuǎn)換圖中C1、C2、C3、C4用于電源電壓變換,提高抗干擾能力,一般取1.0μF/16V。C5的作用是對+5V電源的噪聲干擾進(jìn)行濾波,一般取0.1μF。發(fā)送與接收的對應(yīng)關(guān)系不能接錯,否則將不能正常工作。第十七頁,共46頁。二、CC2530串口控制器CC2530的串口控制器USART:universalsynchronous/asynchronousreceiverandtransmitter 通用同步異步收發(fā)器USART0和USART1是串行通信接口,兩個USART具有同樣的功能,可以分別運(yùn)行于在兩種模式下:
異步UART模式同步SPI模式
由于異步UART允許發(fā)送和接收的時鐘不一致,容易實(shí)現(xiàn),我們在討論串口時經(jīng)常采用異步UART。
第十八頁,共46頁。2.1串口模式異步UART模式:UART模式提供異步串行接口,在UART模式中,有2種接口選擇方式:2線接口和4線接口。2線接口:RXD(接收)、TXD(發(fā)送)。4線接口:RXD、TXD、RTS和CTS(硬件流控制)4線接口復(fù)雜點(diǎn),教學(xué)上講解2線接口單片機(jī)GNDGND單片機(jī)TXDTXDRXDRXDRTSCTSCTSRTS第十九頁,共46頁。2.1串口模式UART模式提供全雙工傳送,接收器中的位同步不影響發(fā)送功能。傳送一個UART字節(jié)包含1個起始位,8個數(shù)據(jù)位,1個作為可選的第9位數(shù)據(jù)或者奇偶校驗位,再加上1個或者2個停止位D0D1D2D3D4
D5
D6
D7
0/1
1111D7
0/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀
串口異步通信幀格式8位數(shù)據(jù)第二十頁,共46頁。1.控制和狀態(tài)寄存器UxCSR(見手冊P140)2.2串口控制器的特殊功能寄存器SFR串口操作由控制和狀態(tài)寄存器UxCSR以及控制寄存器UxUCR
U0CSR|=0x80;//設(shè)置UART模式U0CSR|=0x40;//允許接收第二十一頁,共46頁。2.控制寄存器UxUCR2.2串口控制器的特殊功能寄存器SFR第二十二頁,共46頁。當(dāng)收發(fā)數(shù)據(jù)緩沖器UxDBUF寫入數(shù)據(jù)時,該字節(jié)發(fā)送到輸出引腳TXD。UxDBUF寄存器是雙緩沖的。unsignedchartemp;//定義一個字符型變量temp=U0DBUF;//讀出U0DBUF中的數(shù)據(jù)3.收發(fā)數(shù)據(jù)緩沖器UxDBUF2.2串口控制器的特殊功能寄存器SFR第二十三頁,共46頁。4.UxGCR通用控制寄存器2.2串口控制器的特殊功能寄存器SFR第二十四頁,共46頁。5.波特率控制寄存器UxBAUD2.2串口控制器的特殊功能寄存器SFR第二十五頁,共46頁。2.3波特率產(chǎn)生當(dāng)運(yùn)行UART模式時,內(nèi)部的波特率發(fā)生器設(shè)置UART波特率。當(dāng)運(yùn)行在SPI模式時,內(nèi)部的波特率發(fā)生器設(shè)置SPI主時鐘頻率。波特率由寄存器UxBAUD.BAUD[7:0]和UxGCR.BAUD_E[4:0]定義,該波特率用于UART傳送,也用于SPI傳送的串行時鐘速率。F是系統(tǒng)時鐘頻率,等于16MHzRCOSC或者32MHzXOSC第二十六頁,共46頁。標(biāo)準(zhǔn)波特率所需的寄存器值該表適用于典型的32MHz系統(tǒng)時鐘//設(shè)置波特率為57600U0GCR|=10;U0BAUD|=216;第二十七頁,共46頁。2.4系統(tǒng)時鐘設(shè)置波特率發(fā)生器的時鐘是從所選的主系統(tǒng)時鐘源獲得的,主系統(tǒng)時鐘源可以是32MHzXOSC或16MHzRCOSC。通過CLKCONCMD.OSC位可選擇主系統(tǒng)時鐘源CLKCONCMD&=~0x40;//設(shè)置時鐘晶振為32MHZwhile(!(SLEEPSTA&(1<<6)));/*等待晶振穩(wěn)定*/CLKCONCMD&=~0x07;第二十八頁,共46頁。1.UART總線資源
數(shù)據(jù)手冊P72表7-1外設(shè)I/O引腳映射
串口0同步模式:
串口0異步模式:
串口1同步模式:
串口1異步模式:
2.5UART資源第二十九頁,共46頁。2.相關(guān)特殊功能寄存器(1)PERCFG:設(shè)置各設(shè)備IO口位置在P0還是P1;在P0口在P1口第三十頁,共46頁。(2)P2DIR:當(dāng)PERCFG所設(shè)定的設(shè)備IO位置沖突時,由該sfr決定位置到底歸屬于單個控制器。(3)PxSEL:置管腳功能為設(shè)備模式(4)UxCSR[7]:設(shè)置uart還是spi模式;以上4個sfr的正確設(shè)置可以完成我們的uart的總線初始化;第三十一頁,共46頁。2.6中斷標(biāo)志位1.UART發(fā)送
當(dāng)USART收/發(fā)數(shù)據(jù)緩沖器、寄存器UxDBUF寫入數(shù)據(jù)時,該字節(jié)發(fā)送到輸出引腳TX。當(dāng)USART發(fā)送緩沖寄存器為空時,準(zhǔn)備接收新的發(fā)送數(shù)據(jù)時,就會由硬件置對應(yīng)的中斷標(biāo)志位UTXxIF為1。
如果我們要通過串口0發(fā)送字符’h’,則該如下操作:voiduart0_send_byte(chartmp){//發(fā)送字符tmpwhile(UTX0IF==0);UTX0IF=0;//可以省掉嗎?U0DBUF=tmp;}第三十二頁,共46頁。UART接收當(dāng)接收緩沖區(qū)UXDBUF接收到一個新的字符時,會由硬件把中斷標(biāo)志位URXxIF置1。
如果我們希望從串口0獲取一個字符,代碼如下:charuart0_receive_byte(){//從串口接收一個字符
while(URX0IF==0);URX0IF=0;//不可以省掉returnU0DBUF;}2.6中斷標(biāo)志位第三十三頁,共46頁。1、總線初始化: PERCFGP2DIRPxSELUxCSR2、數(shù)據(jù)鏈路格式化(數(shù)據(jù)位、停止位、校驗位、波特率) UxUCRUxGCRUxBAUD注意:設(shè)置波特率時,一定要清楚當(dāng)前的時鐘速度。3、讀寫串口收發(fā)寄存器UxDBUFUTXxIFURXxIF三、CC2530串口控制器編程步驟
第三十四頁,共46頁。3.1UART發(fā)送過程1.當(dāng)字節(jié)傳送開始時,UxCSR.ACTIVE位變?yōu)楦唠娖?,而?dāng)字節(jié)傳送結(jié)束時為低電平。2.當(dāng)傳送接收結(jié)束時,UxCSR.TX_BYTE位設(shè)置為1。3.當(dāng)USART收/發(fā)數(shù)據(jù)緩沖寄存器就緒,準(zhǔn)備接收新的發(fā)送數(shù)據(jù)時,就產(chǎn)生了一個中斷請求。該中斷在傳送開始之后立刻發(fā)生,因此,當(dāng)字節(jié)正在發(fā)送時,新的字節(jié)能夠裝入數(shù)據(jù)緩存器。第三十五頁,共46頁。1.當(dāng)1寫入UxCSR.RE位時,數(shù)據(jù)接收開始。2.UART在輸入引腳RXDx中尋找有效起始位,并且設(shè)置UxCSR.ACTIVE位為1。3.當(dāng)檢測出有效起始位時,收到的字節(jié)就傳入到接收寄存器,UxCSR.RX_BYTE位設(shè)置為1。該操作完成時,產(chǎn)生接收中斷。同時UxCSR.ACTIVE變?yōu)榈碗娖?。通過寄存器UxBUF提供收到的數(shù)據(jù)字節(jié)。5.當(dāng)UxBUF讀出時,UxCSR_BYTE位由硬件清零。3.2UART接收過程第三十六頁,共46頁。3.3UART硬件流控制當(dāng)UxUCR.FLOW位設(shè)置為1,硬件流控制使能;硬件流控制適用于“4線接口”。
發(fā)送數(shù)據(jù)時僅在RTS線為低電平時可以發(fā)送,當(dāng)可以接收數(shù)據(jù)時把CTS線置為低電平。
了解第三十七頁,共46頁。3.4UART特征格式如果寄存器UxUCR中的BIT9和奇偶校驗位設(shè)置為1,那么奇偶校驗產(chǎn)生且使能。奇偶校驗計算出來,作為第9位來傳送。在接收期間,奇偶校驗位計算出來而且與收到的第9位進(jìn)行比較。如果奇偶校驗位出錯,則UxCSR.ERR位設(shè)置為1。當(dāng)讀取UxCSR時,UxCSR.ERR位清除。第三十八頁,共46頁。voidinitUARTtest(void){
InitClock();//初始化時鐘
PERCFG=0x00;//使用串口備用位置1P0口
P0SEL=0x3c;//P0用作串口
P2DIR&=~0XC0;//選擇串口0優(yōu)先作為串口
U0CSR|=0x80;//UART方式
U0GCR|=10;//波特率baud_e的選擇
U0BAUD|=216;//波特率設(shè)為57600
UTX0IF=0;//串口0發(fā)送中斷標(biāo)志清零
}串口0初始化:選擇工作時鐘。選擇串口外設(shè)備用位置。初始化I/O口。設(shè)置波特率。舉例:第三十九頁,共46頁。串口發(fā)送字符串函數(shù)voidUartTX_Send_String(char*Data,intlen){intj;for(j=0;j<len;j++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}了解第四十頁,共46頁。主函數(shù)//包含的頭文件#include<ioCC2530.h>#include<string.h>#defineuintunsignedint#defineucharunsignedchar//定義控制燈的端口#defineLED1P1_0#defineLED2P1_1//函數(shù)聲明voidDelay(uint);voidinitUARTtest(void);voidUartTX_Send_String(char*Data,intlen);/*延時函數(shù)*/voidDelay(uintn){ uinti; for(i=0;i<n;i++); for(i=0;i<n;i++); for(i=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)合同管理人員職責(zé)
- 中部地區(qū)工業(yè)園區(qū)升級改造方案
- 購房意向金合同范本:旅游地產(chǎn)投資
- 貓膩規(guī)避:股權(quán)轉(zhuǎn)讓補(bǔ)充協(xié)議法律保障與全解析
- 知識產(chǎn)權(quán)運(yùn)營股權(quán)質(zhì)押投資協(xié)議書
- 資源開發(fā)企業(yè)股權(quán)并購與交割協(xié)議
- 股票投資與環(huán)保產(chǎn)業(yè)合作協(xié)議
- 股份制企業(yè)股權(quán)轉(zhuǎn)讓合作協(xié)議范本
- 跨國公司股權(quán)交易分期支付與知識產(chǎn)權(quán)保護(hù)合同
- 股東以股權(quán)質(zhì)押向公司借款合同
- 2025年廣東省高考生物真題(解析版)
- 2024年哈爾濱市道里區(qū)執(zhí)法輔助人員招聘考試真題
- 2025年7月自考13811績效管理試題及答案含解析
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》教育法律法規(guī)經(jīng)典案例分析及強(qiáng)化試題集(含答案)
- CGF生長因子在口腔醫(yī)學(xué)中的應(yīng)用
- 互聯(lián)網(wǎng)新聞信息服務(wù)安全評估報告模板(2025年7月修訂)
- 《等腰三角形的性質(zhì)》課件
- 工業(yè)互聯(lián)網(wǎng)與船舶行業(yè)融合應(yīng)用參考指南 2025
- 應(yīng)征公民政治考核表(含示例)
- 南通國家級南通經(jīng)濟(jì)技術(shù)開發(fā)區(qū)公開招聘招商人員筆試歷年參考題庫附帶答案詳解析
- 2025年廣東省深圳市中考道德與法治 總復(fù)習(xí)法治教育檢測卷(含答案)
評論
0/150
提交評論