版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第七周串口控制器原理與編程第一頁,共46頁。上周教學(xué)內(nèi)容回顧大課CC2530電源的管理CC2530系統(tǒng)時鐘的編程(難點)小課8路流水燈,會看原理圖,會接線;GPIO口按鍵狀態(tài)的獲取第二頁,共46頁。本周教學(xué)主要內(nèi)容串行通信基礎(chǔ)知識串口控制器的原理與編程,相關(guān)SFR在控制器運行過程中所器的作用。CC2530串口控制器編程步驟第三頁,共46頁。教學(xué)目標了解串行通信的基礎(chǔ)知識;掌握CC2530串口的編程步驟;重點理解相關(guān)SFR在控制器運行過程中所器的作用。第四頁,共46頁。
計算機與外界的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。所謂并行通信是指數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收。串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。一、
串行通信基礎(chǔ)知識了解第五頁,共46頁。
目前串行通信在單片機雙機、多機以及單片機與PC機之間的通信等方面得到了廣泛應(yīng)用。圖1并行通信示意圖發(fā)送方接收方圖2串行通信示意圖了解發(fā)送方接收方8位數(shù)據(jù)同時傳送8位順次傳送第六頁,共46頁。1.1異步通信和同步通信
計算機通信按同步方式可分為異步通信和同步通信兩種基本通信方式。1.同步通信(SynchronousCommunication)
同步通信是一種連續(xù)傳送數(shù)據(jù)的通信方式,一次通信傳送多個字符數(shù)據(jù),稱為一幀信息。數(shù)據(jù)傳輸速率較高,通常可達56000bps或更高。其缺點是要求發(fā)送時鐘和接收時鐘保持嚴格同步。了解幀...流方向幀第七頁,共46頁。2.異步通信(AsynchronousCommunication)
在異步通信中,數(shù)據(jù)通常是以字符或字節(jié)為單位組成數(shù)據(jù)幀進行傳送的。收、發(fā)端各有一套彼此獨立,互不同步的通信機構(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)。當發(fā)送端要發(fā)送1個字符數(shù)據(jù)時,首先發(fā)送1個邏輯“0”信號,這個低電平便是幀格式的起始位。其作用是向接收端表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。接收端檢測到這個低電平后,就準備接收數(shù)據(jù)信號。(2)數(shù)據(jù)位:在起始位之后,發(fā)送端發(fā)出(或接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴格的限制,5~8位均可。由低位到高位逐位傳送。了解第十頁,共46頁。(3)奇偶校驗位:數(shù)據(jù)位發(fā)送完(接收完)之后,可發(fā)送一位用來檢驗數(shù)據(jù)在傳送過程中是否出錯的奇偶校驗位。奇偶校驗是收發(fā)雙方預(yù)先約定好的有限差錯檢驗方式之一。有時也可不用奇偶校驗。(4)停止位:字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位或2位。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準備。了解第十一頁,共46頁。1.2串行通信的波特率
波特率(BaudRate)是串行通信中一個重要概念,它是指傳輸碼元/信號的速率。
比特率的定義是每秒傳輸二進制數(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機與單片機間的串行通信串口:如RS-232C、RS-422、RS-423、RS-485等。單片機內(nèi)是TTL電平2.4~5V:邏輯10~0.5V:邏輯0只適用于通信距離很短的場合,遠距離傳輸必然會使信號衰減和畸變。PC機
其中RS-232C在異步串行通信中應(yīng)用最廣的總線標準,采用負邏輯標準:+3V~+15V表示邏輯0; -3V~-15V表示邏輯1標準串行總線通信接口單片機單片機單片機第十四頁,共46頁。圖5微機9針D形串口連接器1.4.1RS-232C總線標準RS-232C實際上是串行通信的總線標準,定義了25條信號線,使用25個引腳的連接器,目前在PC機中使用9針的串口。
標準數(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電平不一致,必須進行信號電平轉(zhuǎn)換。實現(xiàn)這種電平轉(zhuǎn)換的電路稱為RS-232C接口電路。一般有兩種形式:一種是采用運算放大器、晶體管、光電隔離器等器件組成的電路來實現(xiàn);另一種是采用專門集成芯片(如MC1488、MC1489、MAX232等)來實現(xiàn)。下面介紹由專門集成芯片MAX232構(gòu)成的接口電路。1.MAX232接口電路MAX232芯片是MAXIM公司生產(chǎn)的具有兩路接收器和驅(qū)動器的IC芯片,其內(nèi)部有一個電源電壓變換器,可以將輸入+5V的電壓變換成RS-232C輸出電平所需的±12V電壓。所以采用這種芯片來實現(xiàn)接口電路特別方便,只需單一的+5V電源即可。第十六頁,共46頁。C1+C1-C2+C2-CC2530GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V++++圖6用MAX232實現(xiàn)串行通信接口電路圖2.串行通信時使用MAX232進行電平轉(zhuǎn)換圖中C1、C2、C3、C4用于電源電壓變換,提高抗干擾能力,一般取1.0μF/16V。C5的作用是對+5V電源的噪聲干擾進行濾波,一般取0.1μF。發(fā)送與接收的對應(yīng)關(guān)系不能接錯,否則將不能正常工作。第十七頁,共46頁。二、CC2530串口控制器CC2530的串口控制器USART:universalsynchronous/asynchronousreceiverandtransmitter 通用同步異步收發(fā)器USART0和USART1是串行通信接口,兩個USART具有同樣的功能,可以分別運行于在兩種模式下:
異步UART模式同步SPI模式
由于異步UART允許發(fā)送和接收的時鐘不一致,容易實現(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ù)雜點,教學(xué)上講解2線接口單片機GNDGND單片機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頁。當收發(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)生當運行UART模式時,內(nèi)部的波特率發(fā)生器設(shè)置UART波特率。當運行在SPI模式時,內(nèi)部的波特率發(fā)生器設(shè)置SPI主時鐘頻率。波特率由寄存器UxBAUD.BAUD[7:0]和UxGCR.BAUD_E[4:0]定義,該波特率用于UART傳送,也用于SPI傳送的串行時鐘速率。F是系統(tǒng)時鐘頻率,等于16MHzRCOSC或者32MHzXOSC第二十六頁,共46頁。標準波特率所需的寄存器值該表適用于典型的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:當PERCFG所設(shè)定的設(shè)備IO位置沖突時,由該sfr決定位置到底歸屬于單個控制器。(3)PxSEL:置管腳功能為設(shè)備模式(4)UxCSR[7]:設(shè)置uart還是spi模式;以上4個sfr的正確設(shè)置可以完成我們的uart的總線初始化;第三十一頁,共46頁。2.6中斷標志位1.UART發(fā)送
當USART收/發(fā)數(shù)據(jù)緩沖器、寄存器UxDBUF寫入數(shù)據(jù)時,該字節(jié)發(fā)送到輸出引腳TX。當USART發(fā)送緩沖寄存器為空時,準備接收新的發(fā)送數(shù)據(jù)時,就會由硬件置對應(yīng)的中斷標志位UTXxIF為1。
如果我們要通過串口0發(fā)送字符’h’,則該如下操作:voiduart0_send_byte(chartmp){//發(fā)送字符tmpwhile(UTX0IF==0);UTX0IF=0;//可以省掉嗎?U0DBUF=tmp;}第三十二頁,共46頁。UART接收當接收緩沖區(qū)UXDBUF接收到一個新的字符時,會由硬件把中斷標志位URXxIF置1。
如果我們希望從串口0獲取一個字符,代碼如下:charuart0_receive_byte(){//從串口接收一個字符
while(URX0IF==0);URX0IF=0;//不可以省掉returnU0DBUF;}2.6中斷標志位第三十三頁,共46頁。1、總線初始化: PERCFGP2DIRPxSELUxCSR2、數(shù)據(jù)鏈路格式化(數(shù)據(jù)位、停止位、校驗位、波特率) UxUCRUxGCRUxBAUD注意:設(shè)置波特率時,一定要清楚當前的時鐘速度。3、讀寫串口收發(fā)寄存器UxDBUFUTXxIFURXxIF三、CC2530串口控制器編程步驟
第三十四頁,共46頁。3.1UART發(fā)送過程1.當字節(jié)傳送開始時,UxCSR.ACTIVE位變?yōu)楦唠娖?,而當字?jié)傳送結(jié)束時為低電平。2.當傳送接收結(jié)束時,UxCSR.TX_BYTE位設(shè)置為1。3.當USART收/發(fā)數(shù)據(jù)緩沖寄存器就緒,準備接收新的發(fā)送數(shù)據(jù)時,就產(chǎn)生了一個中斷請求。該中斷在傳送開始之后立刻發(fā)生,因此,當字節(jié)正在發(fā)送時,新的字節(jié)能夠裝入數(shù)據(jù)緩存器。第三十五頁,共46頁。1.當1寫入UxCSR.RE位時,數(shù)據(jù)接收開始。2.UART在輸入引腳RXDx中尋找有效起始位,并且設(shè)置UxCSR.ACTIVE位為1。3.當檢測出有效起始位時,收到的字節(jié)就傳入到接收寄存器,UxCSR.RX_BYTE位設(shè)置為1。該操作完成時,產(chǎn)生接收中斷。同時UxCSR.ACTIVE變?yōu)榈碗娖?。通過寄存器UxBUF提供收到的數(shù)據(jù)字節(jié)。5.當UxBUF讀出時,UxCSR_BYTE位由硬件清零。3.2UART接收過程第三十六頁,共46頁。3.3UART硬件流控制當UxUCR.FLOW位設(shè)置為1,硬件流控制使能;硬件流控制適用于“4線接口”。
發(fā)送數(shù)據(jù)時僅在RTS線為低電平時可以發(fā)送,當可以接收數(shù)據(jù)時把CTS線置為低電平。
了解第三十七頁,共46頁。3.4UART特征格式如果寄存器UxUCR中的BIT9和奇偶校驗位設(shè)置為1,那么奇偶校驗產(chǎn)生且使能。奇偶校驗計算出來,作為第9位來傳送。在接收期間,奇偶校驗位計算出來而且與收到的第9位進行比較。如果奇偶校驗位出錯,則UxCSR.ERR位設(shè)置為1。當讀取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ā)送中斷標志清零
}串口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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025榆林市橫山區(qū)艾好峁衛(wèi)生院招聘(4人)模擬筆試試題及答案解析
- 2025年甘肅省天水市秦州區(qū)眼科醫(yī)院招聘超聲影像工作人員備考考試試題及答案解析
- 2025廣西百色平果市發(fā)展和改革局城鎮(zhèn)公益性崗位人員招聘1人考試參考試題及答案解析
- 深度解析(2026)《GBT 26006-2010船用鋁合金擠壓管、棒、型材》
- 2026云南昆明市官渡區(qū)矣六街道辦事處招聘7人參考考試試題及答案解析
- 深度解析(2026)《GBT 25911-2010信息技術(shù) 藏文編碼字符集 24×48點陣字型 朱匝體》
- 2025河北邢臺市人民醫(yī)院招聘編外工作人員41人備考筆試試題及答案解析
- 2025西安交通大學(xué)第一附屬醫(yī)院醫(yī)學(xué)影像科招聘勞務(wù)派遣助理護士備考考試試題及答案解析
- 深度解析(2026)《GBT 25815-2010酸性紅NM-3BL(C.I.酸性紅414)》
- 深度解析(2026)《GBT 25765-2010滾動軸承 汽車變速箱用球軸承》(2026年)深度解析
- 2025秋人教版(新教材)初中美術(shù)八年級上冊知識點及期末測試卷及答案
- 2026年保安員考試題庫500道附完整答案(歷年真題)
- 2025至2030中國司法鑒定行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評估報告
- (2025年)危重病人的觀察與護理試題及答案
- 膝關(guān)節(jié)韌帶損傷康復(fù)課件
- 個人契約協(xié)議書范本
- 醫(yī)藥區(qū)域經(jīng)理述職報告
- 建筑施工項目職業(yè)病危害防治措施方案
- 船員上船前安全培訓(xùn)課件
- 袖閥注漿管施工方案
- 中職思政一年級“中國特色社會主義”期末考試試卷
評論
0/150
提交評論