uart什么意思?
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART。它將要傳輸?shù)馁Y料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結上。
具體實物表現(xiàn)為獨立的模塊化芯片,或作為集成于微處理器中的周邊設備。一般是RS-232C規(guī)格的,與類似Maxim的MAX232之類的標準信號幅度變換芯片進行搭配,作為連接外部設備的接口。在UART上追加同步方式的序列信號變換電路的產(chǎn)品,被稱為USART(Universal Synchronous Asynchronous Receiver Transmitter)。
uart的工作原理是什么?
發(fā)送接收
發(fā)送邏輯對從發(fā)送FIFO讀取的數(shù)據(jù)執(zhí)行“并→串”轉換??刂七壿嬢敵銎鹗嘉辉谙鹊拇形涣鳎⑶腋鶕?jù)控制寄存器中已編程的配置,后面緊跟著數(shù)據(jù)位(注意:最低位LSB先輸出)、奇偶校驗位和停止位。
在檢測到一個有效的起始脈沖后,接收邏輯對接收到的位流執(zhí)行“串→并”轉換。此外還會對溢出錯誤、奇偶校驗錯誤、幀錯誤和線中止(line-break)錯誤進行檢測,并將檢測到的狀態(tài)附加到被寫入接收FIFO的數(shù)據(jù)中。
波特率產(chǎn)生
波特率除數(shù)(baud-rate divisor)是一個22位數(shù),它由16位整數(shù)和6位小數(shù)組成。波特率發(fā)生器使用這兩個值組成的數(shù)字來決定位周期。通過帶有小數(shù)波特率的除法器,在足夠高的系統(tǒng)時鐘速率下,UART可以產(chǎn)生所有標準的波特率,而誤差很小。
數(shù)據(jù)收發(fā)
發(fā)送時,數(shù)據(jù)被寫入發(fā)送FIFO。如果UART被使能,則會按照預先設置好的參數(shù)(波特率、數(shù)據(jù)位、停止位、校驗位等)開始發(fā)送數(shù)據(jù),一直到發(fā)送FIFO中沒有數(shù)據(jù)。一旦向發(fā)送FIFO寫數(shù)據(jù)(如果FIFO未空),UART的忙標志位BUSY就有效,并且在發(fā)送數(shù)據(jù)期間一直保持有效。BUSY位僅在發(fā)送FIFO為空,且已從移位寄存器發(fā)送最后一個字符,包括停止位時才變無效。即UART不再使能,它也可以指示忙狀態(tài)。BUSY位的相關庫函數(shù)是UARTBusy()
在UART接收器空閑時,如果數(shù)據(jù)輸入變成“低電平”,即接收到了起始位,則接收計數(shù)器開始運行,并且數(shù)據(jù)在Baud16的第8個周期被采樣。如果Rx在Baud16的第8周期仍然為低電平,則起始位有效,否則會被認為是錯誤的起始位并將其忽略。
如果起始位有效,則根據(jù)數(shù)據(jù)字符被編程的長度,在Baud16的每第16個周期(即一個位周期之后)對連續(xù)的數(shù)據(jù)位進行采樣。如果奇偶校驗模式使能,則還會檢測奇偶校驗位。
最后,如果Rx為高電平,則有效的停止位被確認,否則發(fā)生幀錯誤。當接收到一個完整的字符時,將數(shù)據(jù)存放在接收FIFO中。