織夢網(wǎng)站文章內(nèi)容模板信息發(fā)布推廣平臺
--UART介紹
? ? UART(Universal Asynchonous Receiver and Transmitter)通用異步接收器,是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信,包括與監(jiān)控調(diào)試器和其他器件,UART我們可以認為它是集成在SOC內(nèi)部的一個控制器,它可以按照串口通信協(xié)議格式收發(fā)數(shù)據(jù)
? ? (由倆部分組成:一個將串行比特流轉換成微處理器可以使用的并行數(shù)據(jù)接收器(Rx)和一個將來自微處理器的并行數(shù)據(jù)轉換為串行形式發(fā)送的發(fā)送器(Tx)
)
? ? 同步通信:在數(shù)據(jù)傳輸?shù)倪^程中,需要一根時鐘線同步,例如IIC,SPI總線,通過他們進行數(shù)據(jù)傳輸?shù)臅r候,必須有一根時鐘線,用來同步。
? ? 異步通信:數(shù)據(jù)傳輸?shù)倪^程中,不需要時鐘線,直接發(fā)送數(shù)據(jù)就可以了,例如串口通信采用的就是異步通信的方式,發(fā)送方和接收方之間是沒有時鐘信號線的,他們各自使用各自的時鐘。
? ? (在STM32芯片中除了有UART外,還有個叫做USART,USART的全稱是Universal Synchronous/Asynchronous Receiver/Transmitter,也就是同步/異步串行收發(fā)器。相比UART多了一個同步的功能,在硬件上體現(xiàn)出來的就是多了一條時鐘線)
--IMX6ULL UART介紹
? ? 通用異步收發(fā)設備(UART)通過電平轉換器和RS-232電纜提供與外部設備的串行通信能力,或通過使用外部電路將紅外信號轉換位電信號(用于接收)或?qū)㈦娦盘栟D換位驅(qū)動信號LED(用于傳輸)的信號,以提供低速IrDA兼容性
? ? 通用異步收發(fā)設備支持NRZ編碼格式、RS485兼容的9位數(shù)據(jù)格式和IrDA兼容的紅外慢速數(shù)據(jù)速率(SIR)格式
-NRZ編碼
? ??NRZ編碼(Non-return-to-zero Code),也叫不歸零編碼,信號電平的一次反轉代表1,電平不變化表示0;并且在表示完一個碼元后,電壓不需回到0
-RZ編碼
? ? RZ編碼(Return-to-zero Code)歸零編碼;在RZ編碼中,正電平代表邏輯1,負電平代表邏輯0,每傳輸完一位數(shù)據(jù),信號返回零電平
? ??信號線上會出現(xiàn)3種電平:正電平、負電平、零電平:?
? ??
? ? 從圖上就可以看出來,因為每位傳輸之后都要歸零,所以接受者只要在信號歸零后采樣即可,這樣就不再需要單獨的時鐘信號。實際上,RZ編碼就是相當于把時鐘信號用歸零編碼再了數(shù)據(jù)之內(nèi)。這樣的信號也叫做自同步(self-clocking)信號;在RZ編碼種,大部分的數(shù)據(jù)變寬,都用來傳輸“歸零”而浪費了;去掉這個歸零步驟,NRZ編碼(Non-return-to-zero Code)就出現(xiàn)了,和RZ的區(qū)別就是NRZ是不需要歸零的:
?
? ? 如圖所示,浪費的帶寬又回來了,不過又喪失了自同步性。
-NRZI編碼
NRZI編碼(Non-Return-to-Zero Inverted Code)和NRZ的區(qū)別就是NRZI用信號的翻轉代表一個邏輯,信號保持不變代表另外一個邏輯。(USB傳輸?shù)木幋a就是NRZI格式,在USB中,電平翻轉代表邏輯0,電平不變代表邏輯1)
?翻轉的信號本身可以作為一種通知機制,可以看到,即使把NRZI的波形完全翻轉,所代表的數(shù)據(jù)序列還是一樣的,對于USB這種通過差分線來傳輸?shù)男盘柗奖?/p>