atmega16串口通信
串口寄存器介紹
USART I/O 數(shù)據(jù)寄存器- UDR
USART 發(fā)送數(shù)據(jù)緩沖寄存器和USART 接收數(shù)據(jù)緩沖寄存器共享相同的I/O 地址,稱為USART 數(shù)據(jù)寄存器或UDR。將數(shù)據(jù)寫入U(xiǎn)DR 時(shí)實(shí)際操作的是發(fā)送數(shù)據(jù)緩沖器存器(TXB),讀UDR 時(shí)實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB) 的內(nèi)容。在5、6、7 比特字長(zhǎng)模式下,未使用的高位被發(fā)送器忽略,而接收器則將它們?cè)O(shè)置為0。只有當(dāng)UCSRA寄存器的UDRE標(biāo)志置位后才可以對(duì)發(fā)送緩沖器進(jìn)行寫操作。如果UDRE沒有置位,那么寫入U(xiǎn)DR 的數(shù)據(jù)會(huì)被USART 發(fā)送器忽略。當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器后,若移位寄存器為空,發(fā)送器將把數(shù)據(jù)加載到發(fā)送移位寄存器。然后數(shù)據(jù)串行地從TxD 引腳輸出。接收緩沖器包括一個(gè)兩級(jí)FIFO,一旦接收緩沖器被尋址FIFO 就會(huì)改變它的狀態(tài)。因此不要對(duì)這一存儲(chǔ)單元使用讀- 修改- 寫指令(SBI 和CBI)。使用位查詢指令(SBIC 和SBIS)時(shí)也要小心,因?yàn)檫@也有可能改變FIFO 的狀態(tài)。
USART 控制和狀態(tài)寄存器A -UCSRA
• Bit 7 – RXC: USART 接收結(jié)束
接收緩沖器中有未讀出的數(shù)據(jù)時(shí)RXC 置位,否則清零。接收器禁止時(shí),接收緩沖器被刷新,導(dǎo)致RXC 清零。RXC 標(biāo)志可用來(lái)產(chǎn)生接收結(jié)束中斷( 見對(duì)RXCIE 位的描述)。
• Bit 6 – TXC: USART 發(fā)送結(jié)束
發(fā)送移位緩沖器中的數(shù)據(jù)被送出,且當(dāng)發(fā)送緩沖器 (UDR) 為空時(shí)TXC 置位。執(zhí)行發(fā)送結(jié)束中斷時(shí)TXC 標(biāo)志自動(dòng)清零,也可以通過(guò)寫1 進(jìn)行清除操作。TXC 標(biāo)志可用來(lái)產(chǎn)生發(fā)送結(jié)束中斷( 見對(duì)TXCIE 位的描述)。
• Bit 5 – UDRE: USART 數(shù)據(jù)寄存器空
UDRE標(biāo)志指出發(fā)送緩沖器(UDR)是否準(zhǔn)備好接收新數(shù)據(jù)。UDRE為1說(shuō)明緩沖器為空,已準(zhǔn)備好進(jìn)行數(shù)據(jù)接收。UDRE標(biāo)志可用來(lái)產(chǎn)生數(shù)據(jù)寄存器空中斷(見對(duì)UDRIE位的描述)。復(fù)位后UDRE 置位,表明發(fā)送器已經(jīng)就緒。
• Bit 4 – FE: 幀錯(cuò)誤
如果接收緩沖器接收到的下一個(gè)字符有幀錯(cuò)誤,即接收緩沖器中的下一個(gè)字符的第一個(gè)停止位為0,那么FE 置位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當(dāng)接收到的停止位為1 時(shí), FE標(biāo)志為0。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
• Bit 3 – DOR: 數(shù)據(jù)溢出
數(shù)據(jù)溢出時(shí)DOR 置位。當(dāng)接收緩沖器滿( 包含了兩個(gè)數(shù)據(jù)),接收移位寄存器又有數(shù)據(jù),若此時(shí)檢測(cè)到一個(gè)新的起始位,數(shù)據(jù)溢出就產(chǎn)生了。這一位一直有效直到接收緩沖器(UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
• Bit 2 – PE: 奇偶校驗(yàn)錯(cuò)誤
當(dāng)奇偶校驗(yàn)使能(UPM1 = 1),且接收緩沖器中所接收到的下一個(gè)字符有奇偶校驗(yàn)錯(cuò)誤時(shí)UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
• Bit 1 – U2X: 倍速發(fā)送
這一位僅對(duì)異步操作有影響。使用同步操作時(shí)將此位清零。此位置1 可將波特率分頻因子從16 降到8,從而有效的將異步通信模式的傳輸速率加倍。
• Bit 0 – MPCM: 多處理器通信模式
設(shè)置此位將啟動(dòng)多處理器通信模式。MPCM 置位后, USART接收器接收到的那些不包含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設(shè)置的影響。詳細(xì)信息請(qǐng)參考 P150“多處理器通訊模式” 。
USART 控制和狀態(tài)寄存器B -UCSRB
• Bit 7 – RXCIE: 接收結(jié)束中斷使能
置位后使能RXC 中斷。當(dāng)RXCIE 為1,全局中斷標(biāo)志位SREG 置位, UCSRA 寄存器的RXC 亦為1 時(shí)可以產(chǎn)生USART 接收結(jié)束中斷。
• Bit 6 – TXCIE: 發(fā)送結(jié)束中斷使能
置位后使能TXC 中斷。當(dāng)TXCIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的TXC 亦為1 時(shí)可以產(chǎn)生USART 發(fā)送結(jié)束中斷。
• Bit 5 – UDRIE: USART 數(shù)據(jù)寄存器空中斷使能
置位后使能UDRE 中斷。當(dāng)UDRIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的UDRE 亦為1 時(shí)可以產(chǎn)生USART 數(shù)據(jù)寄存器空中斷。
• Bit 4 – RXEN: 接收使能
置位后將啟動(dòng)USART接收器。RxD 引腳的通用端口功能被USART 功能所取代。禁止接收器將刷新接收緩沖器,并使 FE、DOR 及PE標(biāo)志無(wú)效。
• Bit 3 – TXEN: 發(fā)送使能
置位后將啟動(dòng)將啟動(dòng)USART 發(fā)送器。TxD 引腳的通用端口功能被USART 功能所取代。TXEN 清零后,只有等到所有的數(shù)據(jù)發(fā)送完成后發(fā)送器才能夠真正禁止,即發(fā)送移位寄存器與發(fā)送緩沖寄存器中沒有要傳送的數(shù)據(jù)。發(fā)送器禁止后,TxD引腳恢復(fù)其通用I/O功能。
• Bit 2 – UCSZ2: 字符長(zhǎng)度
UCSZ2與UCSRC寄存器的UCSZ1:0結(jié)合在一起可以設(shè)置數(shù)據(jù)幀所包含的數(shù)據(jù)位數(shù)(字符長(zhǎng)度)。
• Bit 1 – RXB8: 接收數(shù)據(jù)位 8
對(duì)9 位串行幀進(jìn)行操作時(shí),RXB8 是第9 個(gè)數(shù)據(jù)位。讀取UDR 包含的低位數(shù)據(jù)之前首先要讀取RXB8。
• Bit 0 – TXB8: 發(fā)送數(shù)據(jù)位8
對(duì)9 位串行幀進(jìn)行操作時(shí),TXB8 是第9 個(gè)數(shù)據(jù)位。寫UDR 之前首先要對(duì)它進(jìn)行寫操作。
USART 控制和狀態(tài)寄存器C -UCSRC
• Bit 7 – URSEL: 寄存器選擇
通過(guò)該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當(dāng)讀UCSRC 時(shí),該位為1 ;當(dāng)寫UCSRC 時(shí), URSEL 為1。
• Bit 6 – UMSEL: USART 模式選擇
通過(guò)這一位來(lái)選擇同步或異步工作模式。
• Bit 5:4 – UPM1:0: 奇偶校驗(yàn)?zāi)J?p>這兩位設(shè)置奇偶校驗(yàn)的模式并使能奇偶校驗(yàn)。如果使能了奇偶校驗(yàn),那么在發(fā)送數(shù)據(jù),發(fā)送器都會(huì)自動(dòng)產(chǎn)生并發(fā)送奇偶校驗(yàn)位。對(duì)每一個(gè)接收到的數(shù)據(jù),接收器都會(huì)產(chǎn)生一奇偶值,并與UPM0 所設(shè)置的值進(jìn)行比較。如果不匹配,那么就將UCSRA 中的PE 置位。
• Bit 3 – USBS: 停止位選擇
通過(guò)這一位可以設(shè)置停止位的位數(shù)。接收器忽略這一位的設(shè)置。
• Bit 2:1 – UCSZ1:0: 字符長(zhǎng)度
UCSZ1:0與UCSRB寄存器的 UCSZ2結(jié)合在一起可以設(shè)置數(shù)據(jù)幀包含的數(shù)據(jù)位數(shù)(字符長(zhǎng)度)。
• Bit 0 – UCPOL: 時(shí)鐘極性
這一位僅用于同步工作模式。使用異步模式時(shí),將這一位清零。UCPOL 設(shè)置了輸出數(shù)據(jù)的改變和輸入數(shù)據(jù)采樣,以及同步時(shí)鐘XCK 之間的關(guān)系。
評(píng)論