當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]USART又叫通用同步異步收發(fā)器,塔提供了一種靈活的方法與工業(yè)使用標(biāo)準(zhǔn)NRZ異步春航數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。USART利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇,支持同步單向通信和半雙工單線通信,

USART又叫通用同步異步收發(fā)器,塔提供了一種靈活的方法與工業(yè)使用標(biāo)準(zhǔn)NRZ異步春航數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。USART利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇,支持同步單向通信和半雙工單線通信,也支持LIN(局部互聯(lián)網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù)組織)SIR ENDEC規(guī)范以及調(diào)制解調(diào)器(CTS/RTS)操作,它還允許多處理器通信,使用多換成器配置的DMA方式,可以實(shí)現(xiàn)高速數(shù)據(jù)通信。
USART寄存器控制框圖如下

可通過(guò)對(duì) USART_CR1 寄存器中的 M 位進(jìn)行編程來(lái)選擇 8(置0) 位或 9(置1) 位的字長(zhǎng)。TX 引腳在起始位工作期間處于低電平狀態(tài)。在停止位工作期間處于高電平狀態(tài)。
空閑字符可理解為整個(gè)幀周期內(nèi)電平均為“1”(停止位的電平也是“1”),該字符后是下一個(gè)數(shù)據(jù)幀的起始位。
停止字符可理解為在一個(gè)幀周期內(nèi)接收到的電平均為“0”。發(fā)送器在中斷幀的末尾插入 1 或 2 個(gè)停止位(邏輯“1”位)以確認(rèn)起始位。
發(fā)送和接收由通用波特率發(fā)生器驅(qū)動(dòng),發(fā)送器和接收器的使能位分別置 1 時(shí)將生成相應(yīng)的發(fā)送時(shí)鐘和接收時(shí)鐘。

字符發(fā)送
USART 發(fā)送期間,首先通過(guò) TX 引腳移出數(shù)據(jù)的最低有效位。該模式下,USART_DR 寄存 器的緩沖區(qū) (TDR) 位于內(nèi)部總線和發(fā)送移位寄存器之間。
每個(gè)字符前面都有一個(gè)起始位,其邏輯電平在一個(gè)位周期內(nèi)為低電平。字符由可配置數(shù)量的停止位終止。
USART 支持以下停止位:0.5(智能卡模式下接收數(shù)據(jù)使用)、1(默認(rèn))、1.(智能卡模式下發(fā)送與接收使用)5 和 2(正常USART模式,單線模式和調(diào)制解調(diào)器模式支持該值) 個(gè)停止位。
注意:數(shù)據(jù)發(fā)送期間不應(yīng)復(fù)位 TE 位。發(fā)送期間復(fù)位 TE 位會(huì)凍結(jié)波特率計(jì)數(shù)器,從而將損壞 TX 引 腳上的數(shù)據(jù)。當(dāng)前傳輸?shù)臄?shù)據(jù)將會(huì)丟失。
使能 TE 位后,將會(huì)發(fā)送空閑幀。

停止位的配置

步驟:
1.通過(guò)向%20USART_CR1%20寄存器中的%20UE%20位寫入%201%20使能%20USART。
2.%20對(duì)%20USART_CR1%20中的%20M%20位進(jìn)行編程以定義字長(zhǎng)。
3.%20對(duì)%20USART_CR2%20中的停止位數(shù)量進(jìn)行編程。
4.%20如果將進(jìn)行多緩沖區(qū)通信,請(qǐng)選擇%20USART_CR3%20中的%20DMA%20使能%20(DMAT)。按照多緩沖區(qū)%20通信中的解釋說(shuō)明配置%20DMA%20寄存器。
5.%20使用%20USART_BRR%20寄存器選擇所需波特率。
6.%20將%20USART_CR1%20中的%20TE%20位置%201%20以便在首次發(fā)送時(shí)發(fā)送一個(gè)空閑幀。
7.%20在%20USART_DR%20寄存器中寫入要發(fā)送的數(shù)據(jù)(該操作將清零%20TXE%20位)。為每個(gè)要在單緩%20沖區(qū)模式下發(fā)送的數(shù)據(jù)重復(fù)這一步驟。
8.%20向%20USART_DR%20寄存器寫入最后一個(gè)數(shù)據(jù)后,等待至%20TC=1。這表明最后一個(gè)幀的傳送已%20完成。禁止%20USART%20或進(jìn)入暫停模式時(shí)需要此步驟,以避免損壞最后一次發(fā)送。

單字節(jié)通信
始終通過(guò)向數(shù)據(jù)寄存器寫入數(shù)據(jù)來(lái)將%20TXE%20位清零。
TXE%20位由硬件置%201,它表示:
●%20數(shù)據(jù)已從%20TDR%20移到移位寄存器中且數(shù)據(jù)發(fā)送已開(kāi)始。
●%20TDR%20寄存器為空。
●%20USART_DR%20寄存器中可寫入下一個(gè)數(shù)據(jù),而不會(huì)覆蓋前一個(gè)數(shù)據(jù)。
TXEIE%20位置%201%20時(shí)該標(biāo)志位會(huì)生成中斷。
發(fā)送時(shí),要傳入%20USART_DR%20寄存器的寫指令中存有%20TDR%20寄存器中的數(shù)據(jù),該數(shù)據(jù)將在當(dāng)%20前發(fā)送結(jié)束時(shí)復(fù)制到移位寄存器中。
未發(fā)送時(shí),要傳入%20USART_DR%20寄存器的寫指令直接將數(shù)據(jù)置于移位寄存器中,數(shù)據(jù)發(fā)送開(kāi)%20始時(shí),TXE%20位立即置%201。
如果幀已發(fā)送(停止位后)且%20TXE%20位置%201,TC%20位將變?yōu)楦唠娖?。如?20USART_CR1%20寄存器%20中的%20TCIE%20位置%201,將生成中斷。
向%20USART_DR%20寄存器中寫入最后一個(gè)數(shù)據(jù)后,必須等待至%20TC=1,之后才可禁止%20USART%20或使微控制器進(jìn)入低功率模式。
TC%20位通過(guò)以下軟件序列清零:
1.從%20USART_SR%20寄存器讀取數(shù)據(jù)
2.%20向%20USART_DR%20寄存器寫入數(shù)據(jù)
注意:還可通過(guò)向%20TC%20位寫入“0”將其清零。建議僅在多緩沖區(qū)通信時(shí)使用此清零序列。

中斷字符
將 SBK 位置 1 將發(fā)送一個(gè)中斷字符。中斷幀的長(zhǎng)度取決于 M 位。(見(jiàn)上圖USART字符說(shuō)明)
如果 SBK 位置“1”,當(dāng)前字符發(fā)送完成后,將在 TX 線路上發(fā)送一個(gè)中斷字符。中斷字符 發(fā)送完成時(shí)(發(fā)送中斷字符的停止位期間),該位由硬件復(fù)位。USART 在上一個(gè)中斷幀的 末尾插入一個(gè)邏輯“1”位,以確保識(shí)別下個(gè)幀的起始位。
注意:如果軟件在中斷發(fā)送開(kāi)始前對(duì) SBK 位進(jìn)行了復(fù)位,將不會(huì)發(fā)送中斷字符。對(duì)于兩個(gè)連續(xù)的中 斷,應(yīng)在上一個(gè)中斷的停止位發(fā)送完成后將 SBK 位置 1。

空閑字符
將 TE 位置 1 會(huì)驅(qū)動(dòng) USART 在第一個(gè)數(shù)據(jù)幀之前發(fā)送一個(gè)空閑幀。(見(jiàn)上圖USART字符說(shuō)明)

字符接收(位數(shù)取決于M位)
起始位檢測(cè)
無(wú)論設(shè)置為16 倍或 8 倍過(guò)采樣時(shí),起始位檢測(cè)序列相同都以16倍過(guò)采樣檢測(cè)。
在 USART 中,識(shí)別出特定序列的采樣時(shí)會(huì)檢測(cè)起始位。該序列為:1 1 1 0 X 0 X 0 X 0 0 0 0。

注意:如果序列不完整,起始位檢測(cè)將中止,接收器將返回空閑狀態(tài)(無(wú)標(biāo)志位置 1)等待下降沿。
如果 3 個(gè)采樣位均為 0(針對(duì)第 3 位、第 5 位和第 7 位進(jìn)行首次采樣時(shí)檢測(cè)到這 3 位均為 0; 針對(duì)第 8 位、第 9 位和第 10 位進(jìn)行第二次采樣時(shí)檢測(cè)到這 3 位均為 0),可確認(rèn)起始位 (RXNE 標(biāo)志位置 1,RXNEIE=1 時(shí)生成中斷)。
如果兩次采樣時(shí)(對(duì)第 3 位、第 5 位和第 7 位進(jìn)行采樣以及對(duì)第 8位、第 9 位和第 10 位進(jìn) 行采樣),3 個(gè)采樣位中至少有 2 個(gè)為 0,則可驗(yàn)證起始位(RXNE 標(biāo)志位置 1,RXNEIE=1 時(shí)生成中斷)但 NE 噪聲標(biāo)志位置 1。如果不滿足此條件,則啟動(dòng)檢測(cè)中止,接收器返回空 閑狀態(tài)(無(wú)標(biāo)志位置 1)。
如果其中一次采樣時(shí)(對(duì)第 3 位、第 5 位和第 7 位進(jìn)行采樣或?qū)Φ?8 位、第 9 位和第 10 位 進(jìn)行采樣),3 個(gè)采樣位中有 2 個(gè)為 0,則可驗(yàn)證起始位但 NE 噪聲標(biāo)志位置 1。

字符接收
USART 接收期間,首先通過(guò) RX 引腳移入數(shù)據(jù)的最低有效位。該模式下,USART_DR 寄存 器的緩沖區(qū) (RDR) 位于內(nèi)部總線和接收移位寄存器之間。
步驟:
1.通過(guò)向 USART_CR1 寄存器中的 UE 位寫入 1 使能 USART。
2. 對(duì) USART_CR1 中的 M 位進(jìn)行編程以定義字長(zhǎng)。
3. 對(duì) USART_CR2 中的停止位數(shù)量進(jìn)行編程。
4. 如果將進(jìn)行多緩沖區(qū)通信,請(qǐng)選擇 USART_CR3 中的 DMA 使能 (DMAR)。按照多緩沖 區(qū)通信中的解釋說(shuō)明配置 DMA 寄存器。步驟 3
5. 使用波特率寄存器 USART_BRR 選擇所需波特率
6. 將 RE 位 USART_CR1 置 1。這一操作將使能接收器開(kāi)始搜索起始位。
接收到字符時(shí)
● RXNE 位置 1。這表明移位寄存器的內(nèi)容已傳送到 RDR。也就是說(shuō),已接收到并可讀取數(shù)據(jù)(以及其相應(yīng)的錯(cuò)誤標(biāo)志)。
● 如果 RXNEIE 位置 1,則會(huì)生成中斷。
● 如果接收期間已檢測(cè)到幀錯(cuò)誤、噪聲錯(cuò)誤或上溢錯(cuò)誤,錯(cuò)誤標(biāo)志位可置 1。
● 在多緩沖區(qū)模式下,每接收到一個(gè)字節(jié)后 RXNE 均置 1,然后通過(guò) DMA 對(duì)數(shù)據(jù)寄存器執(zhí)行讀操作清零。
● 在單緩沖區(qū)模式下,通過(guò)軟件對(duì) USART_DR 寄存器執(zhí)行讀操作將 RXNE 位清零。RXNE標(biāo)志也可以通過(guò)向該位寫入零來(lái)清零。RXNE 位必須在結(jié)束接收下一個(gè)字符前清零,以避免發(fā)生上溢錯(cuò)誤。
注意:接收數(shù)據(jù)時(shí),不應(yīng)將 RE 位復(fù)位。如果接收期間禁止了 RE 位,則會(huì)中止接收當(dāng)前字節(jié)。

中斷字符
接收到中斷字符時(shí),USART 將會(huì)按照幀錯(cuò)誤對(duì)其進(jìn)行處理。

空閑字符
檢測(cè)到空閑幀時(shí),處理步驟與接收到數(shù)據(jù)的情況相同;如果 IDLEIE 位為 1,則會(huì)產(chǎn)生中斷。

上溢錯(cuò)誤
如果在 RXNE 未復(fù)位時(shí)接收到字符,則會(huì)發(fā)生上溢錯(cuò)誤。RXNE 位清零前,數(shù)據(jù)無(wú)法從移位 寄存器傳送到 RDR 寄存器。
每接收到一個(gè)字節(jié)后,RXNE 標(biāo)志位都將置 1。當(dāng) RXNE 標(biāo)志位是 1 時(shí),如果在接收到下一 個(gè)數(shù)據(jù)或尚未處理上一個(gè) DMA 請(qǐng)求時(shí),則會(huì)發(fā)生上溢錯(cuò)誤。發(fā)生上溢錯(cuò)誤時(shí): ● ORE 位置 1。
● RDR 中的內(nèi)容不會(huì)丟失。對(duì) USART_DR 執(zhí)行讀操作時(shí)可使用先前的數(shù)據(jù)。
● 移位寄存器將被覆蓋。之后,上溢期間接收到的任何數(shù)據(jù)都將丟失。
● 如果 RXNEIE 位置 1 或 EIE 與 DMAR 位均為 1,則會(huì)生成中斷。
● 通過(guò)先后對(duì) USART_SR 寄存器和 USART_DR 寄存器執(zhí)行讀操作將 ORE 位清除。
注意:ORE 位置 1 時(shí)表示至少 1 個(gè)數(shù)據(jù)丟失。存在兩種可能:
● 如果 RXNE=1,則最后一個(gè)有效數(shù)據(jù)存儲(chǔ)于接收寄存器 RDR 中并且可進(jìn)行讀取;
● 如果 RXNE=0,則表示最后一個(gè)有效數(shù)據(jù)已被讀取,因此 RDR 中沒(méi)有要讀取的數(shù)據(jù)。接收到新(丟失)數(shù)據(jù)的同時(shí)已讀取 RDR中的最后一個(gè)有效數(shù)據(jù)時(shí),會(huì)發(fā)生該情況。讀取序列期間(在 USART_SR 寄存器讀訪問(wèn)與 USART_DR 讀訪問(wèn)之間)接收到新數(shù)據(jù)時(shí)也會(huì)發(fā)生該情況。

選擇合適的過(guò)采樣方法
接收器采用不同的用戶可配置過(guò)采樣技術(shù)(除了同步模式下),可以從噪聲中提取有效數(shù)據(jù)。
可通過(guò)編程 USART_CR1 寄存器中的 OVER8 位來(lái)選擇采樣方法,且采樣時(shí)鐘可以是波特率 時(shí)鐘的 16 倍或 8 倍。
根據(jù)應(yīng)用:
● 選擇 8 倍過(guò)采樣 (OVER8=1) 以獲得更高的速度(高達(dá) fPCLK/8)。這種情況下接收器對(duì)時(shí)鐘偏差的最大容差將會(huì)降低。
● 選擇 16 倍過(guò)采樣 (OVER8=0) 以增加接收器對(duì)時(shí)鐘偏差的容差。這種情況下,最大速度限制為最高 fPCLK/16可通過(guò)編程 USART_CR3 寄存器中的 ONEBIT 位選擇用于評(píng)估邏輯電平的方法。有兩種選擇:
● 在已接收位的中心進(jìn)行三次采樣,從而進(jìn)行多數(shù)表決。這種情況下,如果用于多數(shù)表決的 3 次采樣結(jié)果不相等,NF 位置 1。
● 在已接收位的中心進(jìn)行單次采樣
根據(jù)應(yīng)用:
— 在噪聲環(huán)境下工作時(shí),請(qǐng)選擇三次采樣的多數(shù)表決法 (ONEBIT=0);在檢測(cè)到噪聲時(shí)請(qǐng)拒絕數(shù)據(jù),因?yàn)檫@表示采樣過(guò)程中產(chǎn)生了干擾。
— 線路無(wú)噪聲時(shí)請(qǐng)選擇單次采樣法 (ONEBIT=1) 以增加接收器對(duì)時(shí)鐘偏差的容差。這種情況下NF 位始終不會(huì)置 1。
幀中檢測(cè)到噪聲時(shí):
● 在 RXNE 位的上升沿時(shí) NF 位置 1。
● 無(wú)效數(shù)據(jù)從移位寄存器傳送到 USART_DR 寄存器。
● 單字節(jié)通信時(shí)無(wú)中斷產(chǎn)生。然而,在 RXNE 位產(chǎn)生中斷時(shí),該位出現(xiàn)上升沿。多緩沖區(qū)通信時(shí),USART_CR3 寄存器中的 EIE 位置 1 時(shí)將發(fā)出中斷。
通過(guò)先后對(duì) USART_SR 寄存器和 USART_DR 寄存器執(zhí)行讀操作將 NF 位清零。
注意:智能卡、IrDA 和 LIN 模式下不可采用 8 倍過(guò)采樣。在這些模式下,OVER8 位由硬件強(qiáng)制 清零。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉