




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
MSP430串行通信外設(shè)第1節(jié)串行通信的基本概念第2節(jié)MSP430USART外設(shè)第3節(jié)MSP430的異步串行方式(UARTMode)第4節(jié)MSP430的異步串行方式編程方法本章教學目標
1.了解異步串行通信原理;
2.掌握MSP430異步串行接口的組成和工作原理;
3.掌握MSP430異步串行接口的編程方法。第1節(jié)串行通信的基本概念并行—— 多位信息沿著各自的信號線或引腳 同時輸入/輸出D15D14
D1D0CPUP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0MSP430接存儲器、I/O接口接外擴并口器件或設(shè)備
RxDTxD接收器發(fā)送器D7
D6D5D4D3D2
D1
D0Td串行—— 多位信息沿著同一根信號線或引腳 依次分時輸入/輸出串行方式的優(yōu)點: 信號線少,傳輸距離遠,接線方便、成本低等串行方式的缺點: 傳輸速度相對較慢串行通信的基本概念波特率=1/Td,單位:bps(bitspersecond)①波特率(Baudrate)是串行通信中衡量數(shù)據(jù)傳輸速率的單位,即每秒傳送的二進制數(shù)據(jù)的位數(shù),以位/秒(bps)表示。常用的波特率有:1200、2400、4800、9600、19200bps等
RxDTxD接收器發(fā)送器D7
D6D5D4D3D2
D1
D0Td②檢錯與奇偶校驗(奇校驗、偶校驗)數(shù)據(jù)在傳輸過程中,由于干擾可能引起信息的出錯。檢查傳輸中的錯誤,叫檢錯;
最簡單的檢錯方法是奇偶校驗,即在傳送字符的各位之外,再傳送1位奇/偶校驗位??刹捎闷嫘r灮蚺夹r灒?/p>
奇校驗:使所有傳送的數(shù)位(含校驗位)中1的個數(shù)為奇數(shù)
偶校驗:使所有傳送的數(shù)位(含校驗位)中1的個數(shù)為偶數(shù)LSBMSB起始位數(shù)據(jù)位校驗位停止位按照數(shù)據(jù)流的方向,分成三種基本的傳送方式:單工方式、全雙工方式、半雙工方式③串行數(shù)據(jù)傳送方式發(fā)送器接收器AB發(fā)送器發(fā)送器AB接收器接收器需要兩根數(shù)據(jù)線單工方式全雙工方式半雙工方式數(shù)據(jù)能從A方傳送到B方,也能從B方傳送到A方,但是不能同時在兩個方向上傳送,每次只能由一方發(fā)送,另一方接收。通信雙方通過軟件控制實現(xiàn)發(fā)送/接收方的角色轉(zhuǎn)換發(fā)送器接收器AB接收器發(fā)送器發(fā)送器接收器AB接收器發(fā)送器半雙工方式廣泛地應用于主從結(jié)構(gòu)的系統(tǒng)中主站從站1從站2從站n
每個站均有通信地址(定址原則)平時從站都處于接收狀態(tài),等待來自主站的命令當從站接收到來自主站的命令后,若需要響應,則將自己置為發(fā)送狀態(tài),并發(fā)送響應,發(fā)送完畢后再置為接收狀態(tài)當主站要發(fā)送命令時,置主站為發(fā)送狀態(tài)當主站發(fā)送命令完畢后,置主站為接收狀態(tài),以接收從站的響應例:RS-485總線集散系統(tǒng)分布式系統(tǒng)④異步串行與同步串行同步串行:使用獨立的同步時鐘信號線來實現(xiàn)位同步異步串行:不使用獨立的同步時鐘信號線,位同步靠起始位、停止位等實現(xiàn)LSBMSB起始位數(shù)據(jù)位校驗位停止位DATADATASCLK第2節(jié)MSP430USART外設(shè)UART方式(MSP430x1xxFamily)USARTUSART的兩種工作方式:UARTMode ——異步串行通信方式SPIMode ——同步串行通信方式USART:
UniversalSynchronous/Asynchronous Receive/TransmitUART:
UniversalAsynchronousReceive/TransmitSPI: SynchronousperipheralinterfaceUARTModeSYNC=0SPIModeSYNC=1實現(xiàn)字符格式、自發(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中斷標志寄存器IFG1/IFG2模塊使能寄存器ME1/ME2MCB讀寫信號中斷信號時鐘信號其它特殊功能寄存器SFRUxCTLSPB=1]UARTMode字符格式(CharacterFormat)USART控制寄存器SYNC=0異步串行字符格式舉例:8位數(shù)據(jù)位、偶校驗、2位停止位、無地址位格式LSBMSB起始位數(shù)據(jù)位校驗位停止位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位停止位,則后一位被自動計入間隔中無地址位格式(MM=0)的間隔規(guī)定塊間間隔的生成方法:
11bitsblockofcharacterblockofcharacter塊間間隔UxTCTL置位TXWAKE,然后寫任意一個字符到UxTXBUF
中該方法可以自動發(fā)送一個寬度為11位的間隔(高電平)TXWAKE
自動清零注意:待UTXIFGx=1(UxTXBUF已空)時才能寫UxTXBUF。
UTXIFG0=IFG1.7,UTXIFG1=IFG2.7塊間間隔與字符間間隔無特殊要求;注意:PC機中無此格式,因此該格式的應用會受到限制。Eachcharactercontainsanaddressindictor帶地址位格式(MM=1)的間隔規(guī)定地址位(ADbit)的生成方法:1.編程UxTCTL的TXWAKE位: 發(fā)送地址字符時,使TXWAKE=1
發(fā)送數(shù)據(jù)字符時,使TXWAKE=02.在將被發(fā)送字符由UxTXBUF傳入發(fā)送移位寄存器時,
TXWAKE的值由USART自動地裝載入AD位,然后自動清零TXWAKE位。UxTCTL編程寫入自動裝載自動清零UARTMode的接收原理位起始同步:與USART的時鐘同步在中間位置3次采樣并按少數(shù)服從多數(shù)的表決機制確定每位的值(majorityvotetaken)MSP430UARTMode的同步與定位原理以N=14為例USART接收控制寄存器(UxRCTL)編程狀態(tài)狀態(tài)100:若接收到錯誤字符,則不存入UxRXBUF,并且不置位URXIFGx1:接收到的字符無論錯對,都存入UxRXBUF,并置位URXIFGx0:接收到的字符無論是地址還是數(shù)據(jù),都置位URXIFGx(URXEIE=1)1:僅接收到地址字符時,才置位URXIFGx(URXEIE=1)URXEIE=URXWIE=UxRCTLUSART的接收器的狀態(tài)幀錯誤(framingerrors):停止位錯誤(第1個停止位=“0”)奇偶校驗錯(parityerrors)溢出錯誤(overrunerrors):未及時讀出,被新接收到的字節(jié)覆蓋斷開條件(breakconditions):連續(xù)接收到10位及以上的“0”1:錯誤0:正確接收錯誤
RXERR=FE+PE+OE+BRK讀UxRXBUF操作將清零FE,PE,OE,BRK,RXERR等標志位因此錯誤標志位的判斷應在讀UxRXBUF操作前進行。錯誤標志位也可由軟件清零。0:receivedcharacterisdata1:receivedcharacterisanaddressMSP430USART的波特率發(fā)生器波特率=BRCLK/N (3≤N<0FFFFh)最大波特率=BRCLK/3波特率調(diào)整寄存器當BRCLK能被波特率整除時UxMCTL=0N=BRCLK周期數(shù)每bit波特率時鐘選擇波特率寄存器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個bit的寬度=(27+1)個BRCLK, 其它的6個bit的寬度=27個BRCLKUxMCTL=00000011bor00010001bor00100010b……波特率寄存器值計算舉例要求:
BRCLK=ACLK=32768Hz
波特率=1200BPSN=32768/2400=13.65 13=0x000D------>UxBR1=00h,UxBR0=0Dh0.65*8=5.2------>5------>8位中使其中的5個bit的寬度=13+1個BRCLKUxMCTL=01101011bor01101101bor11011010b……N=32768/4800=6.83 6=0x0006------>UxBR1=00h,UxBR0=06h0.83*8=6.64------>6------>8位中使其中的6個bit的寬度=6+1個BRCLKUxMCTL=01101111bor11101110bor11011011b……N=32768/9600=3.41 3=0x0003------>UxBR1=00h,UxBR0=03h0.41*8=3.28------>3------>8位中使其中的3個bit的寬度=3+1個BRCLKUxMCTL=01001010bor01001001bor10010010b……波特率寄存器值計算舉例(BRCLK=32768Hz)常用波特率、波特率寄存器的值、波特率誤差6MHz6MHz6MHz/8=750,000HzDivider=8波特率發(fā)生器時鐘選擇USART發(fā)送控制寄存器(UxTCTL)時鐘源選擇ME1ME2USART的收發(fā)模塊允許/禁止使能控制
——通過編程模塊使能寄存器實現(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自動完成例: 奇偶校驗允許(PENA=1)、偶校驗(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)編程時鐘源選擇0:禁止起始沿接收功能0:發(fā)送數(shù)據(jù)字符1:發(fā)送地址字符發(fā)送器空狀態(tài)標志位1:空例: 時鐘選用SMCLK(SSELx=11) 禁止起始沿接收功能(URXSE=0) 發(fā)送數(shù)據(jù)字符(TXWAKE=0)0011000xMOV.B#SSEL_3,&U0TCTLUxTCTLUSART接收控制寄存器(UxRCTL)編程狀態(tài)狀態(tài)URXEIE=0: 若接收到錯誤字符,則不存入UxRXBUF, 并且不置位URXIFGxURXEIE=1: 接收到的字符無論錯對,都存入UxRXBUF, 并置位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ù)流程NYN
向發(fā)送緩沖器寫1字節(jié)已發(fā)送完所有數(shù)據(jù)?結(jié)束開始發(fā)送緩沖器空?串口初始化Y超時等待判斷
…… 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ù)流程NYN
讀接收緩沖器已接收完所有字符?結(jié)束開始接收緩沖器滿?串口初始化Y超時等待判斷
…… 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ù)據(jù),無論錯對,都存入UxRXBUF,并置位URXIFGx。
2.中斷方式串口通信編程USART發(fā)送中斷原理及其控制USART軟件復位(SWRST=1)將置位UTXIFGx(以表示發(fā)送器空),但禁止USART的發(fā)送中斷。因此,欲使用中斷方式發(fā)送字符,應編程清零SWRST當
SWRST=0(允許中斷請求),且不考慮PUC時:當被發(fā)送的字符從發(fā)送緩沖器(UxTXBUF)移入發(fā)送移位寄存器時置位UTXIFGx。此時若UTXIEx=1并且GIE=1,則向CPU產(chǎn)生中斷請求。USART接收中斷原理及其控制每當USART接收器接收到一個字符或檢測到一個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: 接收到的字符無論錯對,都存入UxRXBUF, 并置位URXIFGxURXWIE=0: 接收到的字符無論是地址還是數(shù)據(jù), 都置位URXIFGx(URXEIE=1)SYNC=0: UARTMode——UxCTLURXSE=0: 禁止UART起始沿接收功能——UxTCTLSWRST=0: 允許UART工作——UxCTL只要接收到一個字符,無論是地址字符還是數(shù)據(jù)字符,無論是正確字符還是錯誤字符,均置位URXIFGx。并且在URXIEx=1和GIE=1時向CPU請求中斷。URXEIE=1: 接收到的字符無論錯對,都存入UxRXBUF, 并置位UR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 原材料長期供應合同范本
- 房產(chǎn)轉(zhuǎn)讓合同附加協(xié)議書
- 標準離婚合同范例
- 軟件定制開發(fā)戰(zhàn)略合作合同
- 法律服務領(lǐng)域戰(zhàn)略合作合同
- 產(chǎn)學研實習基地戰(zhàn)略合作合同
- 11《十六年前的回憶》第二課時 教學設(shè)計-2024-2025學年統(tǒng)編版語文六年級下冊
- 工程打樁包工合同范本
- 3當沖突發(fā)生 教學設(shè)計-2023-2024學年道德與法治四年級下冊統(tǒng)編版
- 小學教師招聘-教師招聘考試《教學基礎(chǔ)知識》押題密卷3
- 2024年匯算清繳培訓
- 幼兒園監(jiān)控項目技術(shù)方案
- 班主任工作培訓內(nèi)容
- 搬遷項目驗收報告模板
- 2024年海南省中考英語試題卷(含答案)+2023年中考英語試卷及答案
- 部編人教版四年級下冊道德與法制全冊教案
- 綜合應用能力事業(yè)單位考試(綜合管理類A類)試卷及解答參考(2025年)
- Unit1Lesson2HowDoWeLikeTeachers'Feedback-課件高中英語北師大版選擇性
- 香港(2024年-2025年小學二年級語文)人教版摸底考試試卷(含答案)
- 民法典物權(quán)編詳細解讀課件
- 《推力和拉力》課件
評論
0/150
提交評論