




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MSP430串行通信外設(shè)第1節(jié)串行通信的基本概念第2節(jié)MSP430USART外設(shè)第3節(jié)MSP430的異步串行方式(UARTMode)第4節(jié)MSP430的異步串行方式編程方法本章教學(xué)目標(biāo)
1.了解異步串行通信原理;
2.掌握MSP430異步串行接口的組成和工作原理;
3.掌握MSP430異步串行接口的編程方法。第1節(jié)串行通信的基本概念并行—— 多位信息沿著各自的信號線或引腳 同時(shí)輸入/輸出D15D14
D1D0CPUP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0MSP430接存儲器、I/O接口接外擴(kuò)并口器件或設(shè)備
RxDTxD接收器發(fā)送器D7
D6D5D4D3D2
D1
D0Td串行—— 多位信息沿著同一根信號線或引腳 依次分時(shí)輸入/輸出串行方式的優(yōu)點(diǎn): 信號線少,傳輸距離遠(yuǎn),接線方便、成本低等串行方式的缺點(diǎn): 傳輸速度相對較慢串行通信的基本概念波特率=1/Td,單位:bps(bitspersecond)①波特率(Baudrate)是串行通信中衡量數(shù)據(jù)傳輸速率的單位,即每秒傳送的二進(jìn)制數(shù)據(jù)的位數(shù),以位/秒(bps)表示。常用的波特率有:1200、2400、4800、9600、19200bps等
RxDTxD接收器發(fā)送器D7
D6D5D4D3D2
D1
D0Td②檢錯(cuò)與奇偶校驗(yàn)(奇校驗(yàn)、偶校驗(yàn))數(shù)據(jù)在傳輸過程中,由于干擾可能引起信息的出錯(cuò)。檢查傳輸中的錯(cuò)誤,叫檢錯(cuò);
最簡單的檢錯(cuò)方法是奇偶校驗(yàn),即在傳送字符的各位之外,再傳送1位奇/偶校驗(yàn)位??刹捎闷嫘r?yàn)或偶校驗(yàn):
奇校驗(yàn):使所有傳送的數(shù)位(含校驗(yàn)位)中1的個(gè)數(shù)為奇數(shù)
偶校驗(yàn):使所有傳送的數(shù)位(含校驗(yàn)位)中1的個(gè)數(shù)為偶數(shù)LSBMSB起始位數(shù)據(jù)位校驗(yàn)位停止位按照數(shù)據(jù)流的方向,分成三種基本的傳送方式:單工方式、全雙工方式、半雙工方式③串行數(shù)據(jù)傳送方式發(fā)送器接收器AB發(fā)送器發(fā)送器AB接收器接收器需要兩根數(shù)據(jù)線單工方式全雙工方式半雙工方式數(shù)據(jù)能從A方傳送到B方,也能從B方傳送到A方,但是不能同時(shí)在兩個(gè)方向上傳送,每次只能由一方發(fā)送,另一方接收。通信雙方通過軟件控制實(shí)現(xiàn)發(fā)送/接收方的角色轉(zhuǎn)換發(fā)送器接收器AB接收器發(fā)送器發(fā)送器接收器AB接收器發(fā)送器半雙工方式廣泛地應(yīng)用于主從結(jié)構(gòu)的系統(tǒng)中主站從站1從站2從站n
每個(gè)站均有通信地址(定址原則)平時(shí)從站都處于接收狀態(tài),等待來自主站的命令當(dāng)從站接收到來自主站的命令后,若需要響應(yīng),則將自己置為發(fā)送狀態(tài),并發(fā)送響應(yīng),發(fā)送完畢后再置為接收狀態(tài)當(dāng)主站要發(fā)送命令時(shí),置主站為發(fā)送狀態(tài)當(dāng)主站發(fā)送命令完畢后,置主站為接收狀態(tài),以接收從站的響應(yīng)例:RS-485總線集散系統(tǒng)分布式系統(tǒng)④異步串行與同步串行同步串行:使用獨(dú)立的同步時(shí)鐘信號線來實(shí)現(xiàn)位同步異步串行:不使用獨(dú)立的同步時(shí)鐘信號線,位同步靠起始位、停止位等實(shí)現(xiàn)LSBMSB起始位數(shù)據(jù)位校驗(yàn)位停止位DATADATASCLK第2節(jié)MSP430USART外設(shè)UART方式(MSP430x1xxFamily)USARTUSART的兩種工作方式:UARTMode ——異步串行通信方式SPIMode ——同步串行通信方式USART:
UniversalSynchronous/Asynchronous Receive/TransmitUART:
UniversalAsynchronousReceive/TransmitSPI: SynchronousperipheralinterfaceUARTModeSYNC=0SPIModeSYNC=1實(shí)現(xiàn)字符格式、自發(fā)自收、同步異步、多處理器方式和軟件復(fù)位使能等的控制USART控制寄存器UxCTL(USARTcontrolregister)0:paritydisabled1:parityenabled0:oddparity1:evenparity0:onestopbit1:twostopbits0:7-bitdata1:8-bitdata0:listendisabled1:listenenabled0:UARTmode1:SPImode0:idle-linemultiprocessorprotocol1:address-bitmultiprocessorprotocol0:softwareresetdisabled1:softwareresetenabled第3節(jié)MSP430的異步串行通信方式(UARTMode,SYNC=0)發(fā)送控制/狀態(tài)寄存器UxTCTL數(shù)據(jù)緩沖控制邏輯地址譯碼MDB8接收緩沖器UxRXBUF接收移位寄存器發(fā)送緩沖器UxTXBUF發(fā)送移位寄存器MABUARTmode的主要編程結(jié)構(gòu)URXDxUTXDx接收控制/狀態(tài)寄存器UxRCTL控制寄存器UxCTL波特率設(shè)置用寄存器UxMCTLUxBR0UxBR1中斷使能寄存器IE1/IE2中斷標(biāo)志寄存器IFG1/IFG2模塊使能寄存器ME1/ME2MCB讀寫信號中斷信號時(shí)鐘信號其它特殊功能寄存器SFRUxCTLSPB=1]UARTMode字符格式(CharacterFormat)USART控制寄存器SYNC=0異步串行字符格式舉例:8位數(shù)據(jù)位、偶校驗(yàn)、2位停止位、無地址位格式LSBMSB起始位數(shù)據(jù)位校驗(yàn)位停止位D0D1D2D3D4D5D6D7UxCTL1111000xBIS.B #PENA+PEV+SPB+CHAR,&U0CTLUxCTL異步通信格式(AsynchronousCommunicationFormats)無地址位格式(MM=0),字符中無地址位(無AD位)帶地址位格式(MM=1),字符中帶AD位(AD=1:地址字節(jié);AD=0:數(shù)據(jù)字節(jié))該格式中的塊間間隔與塊內(nèi)字符間間隔有特殊要求:塊間間隔≥10Bits;0≤塊內(nèi)字符間間隔<10Bits
如果格式中有2位停止位,則后一位被自動計(jì)入間隔中無地址位格式(MM=0)的間隔規(guī)定塊間間隔的生成方法:
11bitsblockofcharacterblockofcharacter塊間間隔UxTCTL置位TXWAKE,然后寫任意一個(gè)字符到UxTXBUF
中該方法可以自動發(fā)送一個(gè)寬度為11位的間隔(高電平)TXWAKE
自動清零注意:待UTXIFGx=1(UxTXBUF已空)時(shí)才能寫UxTXBUF。
UTXIFG0=IFG1.7,UTXIFG1=IFG2.7塊間間隔與字符間間隔無特殊要求;注意:PC機(jī)中無此格式,因此該格式的應(yīng)用會受到限制。Eachcharactercontainsanaddressindictor帶地址位格式(MM=1)的間隔規(guī)定地址位(ADbit)的生成方法:1.編程UxTCTL的TXWAKE位: 發(fā)送地址字符時(shí),使TXWAKE=1
發(fā)送數(shù)據(jù)字符時(shí),使TXWAKE=02.在將被發(fā)送字符由UxTXBUF傳入發(fā)送移位寄存器時(shí),
TXWAKE的值由USART自動地裝載入AD位,然后自動清零TXWAKE位。UxTCTL編程寫入自動裝載自動清零UARTMode的接收原理位起始同步:與USART的時(shí)鐘同步在中間位置3次采樣并按少數(shù)服從多數(shù)的表決機(jī)制確定每位的值(majorityvotetaken)MSP430UARTMode的同步與定位原理以N=14為例USART接收控制寄存器(UxRCTL)編程狀態(tài)狀態(tài)100:若接收到錯(cuò)誤字符,則不存入U(xiǎn)xRXBUF,并且不置位URXIFGx1:接收到的字符無論錯(cuò)對,都存入U(xiǎn)xRXBUF,并置位URXIFGx0:接收到的字符無論是地址還是數(shù)據(jù),都置位URXIFGx(URXEIE=1)1:僅接收到地址字符時(shí),才置位URXIFGx(URXEIE=1)URXEIE=URXWIE=UxRCTLUSART的接收器的狀態(tài)幀錯(cuò)誤(framingerrors):停止位錯(cuò)誤(第1個(gè)停止位=“0”)奇偶校驗(yàn)錯(cuò)(parityerrors)溢出錯(cuò)誤(overrunerrors):未及時(shí)讀出,被新接收到的字節(jié)覆蓋斷開條件(breakconditions):連續(xù)接收到10位及以上的“0”1:錯(cuò)誤0:正確接收錯(cuò)誤
RXERR=FE+PE+OE+BRK讀UxRXBUF操作將清零FE,PE,OE,BRK,RXERR等標(biāo)志位因此錯(cuò)誤標(biāo)志位的判斷應(yīng)在讀UxRXBUF操作前進(jìn)行。錯(cuò)誤標(biāo)志位也可由軟件清零。0:receivedcharacterisdata1:receivedcharacterisanaddressMSP430USART的波特率發(fā)生器波特率=BRCLK/N (3≤N<0FFFFh)最大波特率=BRCLK/3波特率調(diào)整寄存器當(dāng)BRCLK能被波特率整除時(shí)UxMCTL=0N=BRCLK周期數(shù)每bit波特率時(shí)鐘選擇波特率寄存器N=BRCLK周期數(shù)每bitN=BRCLK/波特率=32768/1200=27.31整數(shù)部分確定波特率寄存器UxBR1和UxBR0的值27=001Bh--->高字節(jié):UxBR1=00h,低字節(jié):UxBR0=1Bh小數(shù)部分確定波特率調(diào)整寄存器UxMCTL的值0.31×8=2.48---取整--->2------>
8位中使其中的2個(gè)bit的寬度=(27+1)個(gè)BRCLK, 其它的6個(gè)bit的寬度=27個(gè)BRCLKUxMCTL=00000011bor00010001bor00100010b……波特率寄存器值計(jì)算舉例要求:
BRCLK=ACLK=32768Hz
波特率=1200BPSN=32768/2400=13.65 13=0x000D------>UxBR1=00h,UxBR0=0Dh0.65*8=5.2------>5------>8位中使其中的5個(gè)bit的寬度=13+1個(gè)BRCLKUxMCTL=01101011bor01101101bor11011010b……N=32768/4800=6.83 6=0x0006------>UxBR1=00h,UxBR0=06h0.83*8=6.64------>6------>8位中使其中的6個(gè)bit的寬度=6+1個(gè)BRCLKUxMCTL=01101111bor11101110bor11011011b……N=32768/9600=3.41 3=0x0003------>UxBR1=00h,UxBR0=03h0.41*8=3.28------>3------>8位中使其中的3個(gè)bit的寬度=3+1個(gè)BRCLKUxMCTL=01001010bor01001001bor10010010b……波特率寄存器值計(jì)算舉例(BRCLK=32768Hz)常用波特率、波特率寄存器的值、波特率誤差6MHz6MHz6MHz/8=750,000HzDivider=8波特率發(fā)生器時(shí)鐘選擇USART發(fā)送控制寄存器(UxTCTL)時(shí)鐘源選擇ME1ME2USART的收發(fā)模塊允許/禁止使能控制
——通過編程模塊使能寄存器實(shí)現(xiàn)
0:disable(defaultvalue) 1:enable第4節(jié)MSP430USARTUARTMode編程方法
1.查詢方式
2.中斷方式1.
查詢方式串口通信編程2).USART引腳配置編程(UARTMode)UART0收發(fā)引腳UART1收發(fā)引腳編程使P3.4=1,P3.5=1,以選擇USART0功能
引腳方向設(shè)置由USART自動完成例: 奇偶校驗(yàn)允許(PENA=1)、偶校驗(yàn)(PEV=1)、 停止位2位(SPB=1)、數(shù)據(jù)位8位(CHAR=1)、 非自發(fā)自收(LISTEN=0)、異步串行(SYNC=0)、 無地址位格式(MM=0)、SWRST
不變UxCTL1111000xBIS.B#PENA+PEV+SPB+CHAR,&U0CTL3).USART控制寄存器UxCTL編程4).USART收發(fā)控制寄存器編程接收控制寄存器(UxRCTL)編程發(fā)送控制寄存器(UxTCTL)編程USART發(fā)送控制寄存器(UxTCTL)編程時(shí)鐘源選擇0:禁止起始沿接收功能0:發(fā)送數(shù)據(jù)字符1:發(fā)送地址字符發(fā)送器空狀態(tài)標(biāo)志位1:空例: 時(shí)鐘選用SMCLK(SSELx=11) 禁止起始沿接收功能(URXSE=0) 發(fā)送數(shù)據(jù)字符(TXWAKE=0)0011000xMOV.B#SSEL_3,&U0TCTLUxTCTLUSART接收控制寄存器(UxRCTL)編程狀態(tài)狀態(tài)URXEIE=0: 若接收到錯(cuò)誤字符,則不存入U(xiǎn)xRXBUF, 并且不置位URXIFGxURXEIE=1: 接收到的字符無論錯(cuò)對,都存入U(xiǎn)xRXBUF, 并置位URXIFGxURXWIE=0:接收到的字符無論是地址還是數(shù)據(jù), 都置位URXIFGx(URXEIE=1)URXWIE=1:僅接收到地址字符, 才置位URXIFGx(URXEIE=1)10BIS.B#URXEIE,&U0RCTL5).USART波特率控制寄存器編程BRCLK=SMCLK=6MHz/8=750,000Hzbaudrate=1200bpsN=6MHz/8/1200bps=625=0271hUxBR1=02h,UxBR0=71hUxMCTL=00hMOV.B#71h,&U0BR0MOV.B#02h,&U0BR1MOV.B#00h,&U0MCTL判斷發(fā)送緩沖器空: Tcheck BIT.B #UTXIFG0,&IFG1 JNZ Tcheck MOV.B R5,&UTXBUF0判斷接收緩沖器滿:Rcheck BIT.B #URXIFG0,&IFG1 JNZ Rcheck MOV.B &URXBUF0,R60:U0RXBUFhasnotreceivedacompletecharacter1:U0RXBUFhasreceivedacompletecharacter0:U0TXBUFisnotempty1:U0TXBUFisemptyUTXIFG0URXIFG0IFG176543210rw-1rw-0串口查詢方式發(fā)送數(shù)據(jù)流程N(yùn)YN
向發(fā)送緩沖器寫1字節(jié)已發(fā)送完所有數(shù)據(jù)?結(jié)束開始發(fā)送緩沖器空?串口初始化Y超時(shí)等待判斷
…… CALL UART0_INIT
……Tchk1 BIT.B #UTXIFG0,&IFG1 JNZ Tchk1 BIS.B #TXWAKE,&U0TCTL MOV.B R5,&U0TXBUF ;生成11bits
塊間間隔
MOV #16,R9 MOV #BUFFER,R5Tchk2 BIT.B #UTXIFG0,&IFG1 JNZ Tchk2 MOV.B @R5+,&U0TXBUF ;R5pointstoadatabyte DEC R9 JNZ Tchk2 ……無地址位格式查詢方式發(fā)送程序舉例——發(fā)送從BUFFER開始的16字節(jié)串口查詢方式接收數(shù)據(jù)流程N(yùn)YN
讀接收緩沖器已接收完所有字符?結(jié)束開始接收緩沖器滿?串口初始化Y超時(shí)等待判斷
…… CALL UART0_INIT
…… MOV #16,R9 MOV #0,R5Rchk BIT.B #URXIFG0,&IFG1 JNZ Rchk MOV.B &U0RXBUF,BUFFER(R5) BIC.B #URXIFG0,&IFG1 INC R5 DEC R9 JNZ Rchk
……無地址位格式查詢方式接收程序舉例—— 共接收16字節(jié)并存入BUFFER開始的存儲器中。 不考慮超時(shí)等待假定接收器已初始化為:接收到的字符無論是地址還是數(shù)據(jù),無論錯(cuò)對,都存入U(xiǎn)xRXBUF,并置位URXIFGx。
2.中斷方式串口通信編程USART發(fā)送中斷原理及其控制USART軟件復(fù)位(SWRST=1)將置位UTXIFGx(以表示發(fā)送器空),但禁止USART的發(fā)送中斷。因此,欲使用中斷方式發(fā)送字符,應(yīng)編程清零SWRST當(dāng)
SWRST=0(允許中斷請求),且不考慮PUC時(shí):當(dāng)被發(fā)送的字符從發(fā)送緩沖器(UxTXBUF)移入發(fā)送移位寄存器時(shí)置位UTXIFGx。此時(shí)若UTXIEx=1并且GIE=1,則向CPU產(chǎn)生中斷請求。USART接收中斷原理及其控制每當(dāng)USART接收器接收到一個(gè)字符或檢測到一個(gè)Break,則有可能(見下面分析)置位URXIFGx。若URXIFGx=1并且URXIEx=1,則USART將向CPU發(fā)出中斷請求。UARTMode(SYNC=0)UART起始沿接收功能URXSE=0:禁止起始沿接收功能,常用方式。UARTMode(SYNC=0)URXSE=0:禁止UART起始沿接收功能SWRST=0:允許UART工作SYNC=0:UARTModeURXSE=0:禁止UART起始沿接收功能SWRST=0:允許UART工作URXEIE=1: 接收到的字符無論錯(cuò)對,都存入U(xiǎn)xRXBUF, 并置位URXIFGxURXWIE=0: 接收到的字符無論是地址還是數(shù)據(jù), 都置位URXIFGx(URXEIE=1)SYNC=0: UARTMode——UxCTLURXSE=0: 禁止UART起始沿接收功能——UxTCTLSWRST=0: 允許UART工作——UxCTL只要接收到一個(gè)字符,無論是地址字符還是數(shù)據(jù)字符,無論是正確字符還是錯(cuò)誤字符,均置位URXIFGx。并且在URXIEx=1和GIE=1時(shí)向CPU請求中斷。URXEIE=1: 接收到的字符無論錯(cuò)對,都存入U(xiǎn)xRXBUF, 并置位UR
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傷口造口護(hù)理科普知識
- 利用情感營銷吸引消費(fèi)者注意
- 領(lǐng)導(dǎo)與管理的區(qū)別與聯(lián)系計(jì)劃
- 學(xué)校安全教育與應(yīng)急演練計(jì)劃
- 生產(chǎn)計(jì)劃中的關(guān)鍵績效指標(biāo)
- 推動企業(yè)文化建設(shè)的實(shí)施方案計(jì)劃
- 關(guān)愛每一位孩子讓他們快樂成長計(jì)劃
- 資產(chǎn)管理制度修訂計(jì)劃
- 法律事務(wù)部合規(guī)風(fēng)險(xiǎn)評估方案計(jì)劃
- 2024陪診師考試各類題型的試題及答案
- 人教版(PEP)英語2023年小升初模擬卷(含答案)
- 尾貨銷售合同范本
- 佛山市2023-2024學(xué)年高二下學(xué)期7月期末英語試題(解析版)
- GB 31825-2024制漿造紙單位產(chǎn)品能源消耗限額
- 《車間主任培訓(xùn)》課件
- 西南師大版四年級下冊數(shù)學(xué)全冊教案(2024年春季版)
- 汽車維修車間消防安全培訓(xùn)
- 第25課 等差數(shù)列的前n項(xiàng)和公式
- 幼兒園優(yōu)質(zhì)公開課:小班語言《小兔乖乖》課件
- 團(tuán)章考試試題及答案
- 廠房、綜合樓工程腳手架專項(xiàng)安全方案
評論
0/150
提交評論