新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的USART與PC機(jī)串行通信

AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的USART與PC機(jī)串行通信

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
五、ATMEGA16的USART與PC機(jī)串行通信

五—(01)、PC機(jī)發(fā)送字符給單片機(jī)控制發(fā)光管亮,同時(shí)將其傳回PC機(jī),其中單片機(jī)的發(fā)送和接收都采用查詢方式(下一篇中有例程~)

本文引用地址:http://2s4d.com/article/201611/322201.htm

1、USART的主要特點(diǎn)

通用同步和異步串行接收器和轉(zhuǎn)發(fā)器(USART) 是一個(gè)高度靈活的串行通訊設(shè)備。主要特
點(diǎn)為:
• 全雙工操作( 獨(dú)立的串行接收和發(fā)送寄存器)
• 異步或同步操作
• 主機(jī)或從機(jī)提供時(shí)鐘的同步操作
• 高精度的波特率發(fā)生器
• 支持5, 6, 7, 8, 或9 個(gè)數(shù)據(jù)位和1 個(gè)或2 個(gè)停止位
• 硬件支持的奇偶校驗(yàn)操作
• 數(shù)據(jù)過(guò)速檢測(cè)
• 幀錯(cuò)誤檢測(cè)
• 噪聲濾波,包括錯(cuò)誤的起始位檢測(cè),以及數(shù)字低通濾波器
• 三個(gè)獨(dú)立的中斷:發(fā)送結(jié)束中斷, 發(fā)送數(shù)據(jù)寄存器空中斷,以及接收結(jié)束中斷
• 多處理器通訊模式
• 倍速異步通訊模式

2、異步串行收發(fā)器

USART 分為了三個(gè)主要部分: 時(shí)鐘發(fā)生器,發(fā)送器和接收器。控制寄存器由三
個(gè)單元共享。時(shí)鐘發(fā)生器包含同步邏輯,通過(guò)它將波特率發(fā)生器及為從機(jī)同步操作所使用
的外部輸入時(shí)鐘同步起來(lái)。XCK ( 發(fā)送器時(shí)鐘) 引腳只用于同步傳輸模式。發(fā)送器包括一個(gè)寫(xiě)緩沖器,串行移位寄存器,奇偶發(fā)生器以及處理不同的幀格式所需的控制邏輯。寫(xiě)緩
沖器可以保持連續(xù)發(fā)送數(shù)據(jù)而不會(huì)在數(shù)據(jù)幀之間引入延遲。由于接收器具有時(shí)鐘和數(shù)據(jù)
恢復(fù)單元,它是USART 模塊中最復(fù)雜的?;謴?fù)單元用于異步數(shù)據(jù)的接收。除了恢復(fù)單
元,接收器還包括奇偶校驗(yàn),控制邏輯,移位寄存器和一個(gè)兩級(jí)接收緩沖器UDR。接收
器支持與發(fā)送器相同的幀格式,而且可以檢測(cè)幀錯(cuò)誤,數(shù)據(jù)過(guò)速和奇偶校驗(yàn)錯(cuò)誤。

3、時(shí)鐘產(chǎn)生

1)USART支持4種模式的時(shí)鐘

時(shí)鐘產(chǎn)生邏輯為發(fā)送器和接收器產(chǎn)生基礎(chǔ)時(shí)鐘。USART 支持4 種模式的時(shí)鐘:正常的異
步模式,倍速的異步模式,主機(jī)同步模式,以及從機(jī)同步模式。USART 控制位UMSEL
和狀態(tài)寄存器C (UCSRC) 用于選擇異步模式和同步模式。倍速模式( 只適用于異步模式
) 受控于UCSRA 寄存器的U2X。使用同步模式 (UMSEL = 1) 時(shí),XCK 的數(shù)據(jù)方向寄存器
(DDR_XCK)決定時(shí)鐘源是由內(nèi)部產(chǎn)生(主機(jī)模式)還是由外部生產(chǎn)(從機(jī)模式)。僅在同步模
式下XCK 有效。





2)內(nèi)部時(shí)鐘用于異步模式和同步主機(jī)模式(這里我也不是很懂~~,專業(yè)術(shù)語(yǔ)太多,不過(guò)說(shuō)白了就是波特率的計(jì)算公式唄,不過(guò)好好看看肯定能明白的)

USART 的波特率寄存器UBRR 和降序計(jì)數(shù)器相連接,一起構(gòu)成可編程的預(yù)分頻器或波特
率發(fā)生器。降序計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù),當(dāng)其計(jì)數(shù)到零或UBRRL 寄存器被寫(xiě)時(shí),會(huì)自動(dòng)
裝入U(xiǎn)BRR 寄存器的值。當(dāng)計(jì)數(shù)到零時(shí)產(chǎn)生一個(gè)時(shí)鐘,該時(shí)鐘作為波特率發(fā)生器的輸出
時(shí)鐘,輸出時(shí)鐘的頻率為fosc/(UBRR+1)。發(fā)生器對(duì)波特率發(fā)生器的輸出時(shí)鐘進(jìn)行2、8
或16 的分頻,具體情況取決于工作模式。波特率發(fā)生器的輸出被直接用于接收器與數(shù)據(jù)
恢復(fù)單元。數(shù)據(jù)恢復(fù)單元使用了一個(gè)有2、8或16個(gè)狀態(tài)的狀態(tài)機(jī),具體狀態(tài)數(shù)由UMSEL、
U2X 與 DDR_XCK 位設(shè)定的工作模式?jīng)Q定。
Table 60 給出了計(jì)算波特率(位/秒)以及計(jì)算每一種使用內(nèi)部時(shí)鐘源工作模式的UBRR值
的公式。



3)倍速工作模式

通過(guò)設(shè)定UCSRA 寄存器的U2X 可以使傳輸速率加倍。該位只對(duì)異步工作模式有效。當(dāng)
工作在同步模式時(shí),設(shè)置該位為"0”。
設(shè)置該位把波特率分頻器的分頻值從16 降到8,使異步通信的傳輸速率加倍。此時(shí)接收
器只使用一半的采樣數(shù)對(duì)數(shù)據(jù)進(jìn)行采樣及時(shí)鐘恢復(fù),因此在該模式下需要更精確的系統(tǒng)
時(shí)鐘與更精確的波特率設(shè)置。發(fā)送器則沒(méi)有這個(gè)要求。


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉