什么是usart?和其他通信又有什么區別?
如下圖:
????????USART是一種用于串行通信的設備,可以在同步和異步模式下工作。
????????usart有兩根數據線,一根發送線(tx)一根接收線(rx),它可以實現同時的雙向通信,因此是一種全雙工串行通信,但是其缺陷是支持點對點,不支持多設備
常用設備:比如usb轉ttl,藍牙模塊等
異步模式
在異步模式下,USART不使用時鐘信號來同步發送和接收的數據,而是依賴于雙方設置的相同波特率。數據傳輸通過起始位、數據位、奇偶校驗位(可選)和停止位來實現同步。
- 起始位:表示數據傳輸的開始,通常為低電平。
- 數據位:實際傳輸的數據位,可以是5到9位。
- 奇偶校驗位:用于檢測傳輸錯誤(可選)。
- 停止位:表示數據傳輸的結束,通常為高電平。
同步模式
在同步模式下,USART使用一個額外的時鐘信號(SCLK)來同步發送和接收的數據。發送方和接收方共享這個時鐘信號,確保數據傳輸的同步和準確性。
- 數據位:與異步模式相同,可以是5到9位。
- 時鐘信號(SCLK):用于同步發送和接收的數據。
- 同步數據幀:數據幀的結構與異步模式相似,但在時鐘信號的同步下進行傳輸。
但是在一般不加時鐘的多,一般用異步。
數據傳輸過程
- 初始化:在使用USART進行通信前,需要配置USART的波特率、數據位、奇偶校驗位、停止位和工作模式(同步或異步)。
- 發送數據:將數據寫入發送數據寄存器,USART會根據配置的波特率和其他參數自動發送數據。
- 接收數據:當USART接收到數據后,會將其存儲在接收數據寄存器中,可以通過中斷或輪詢的方式讀取數據。
雙工模式介紹:
-
全雙工(Full Duplex):USART在全雙工模式下,可以同時發送和接收數據。它通常使用兩個獨立的數據線:TX(發送)和RX(接收)。全雙工通信提高了數據傳輸的效率,因為發送和接收操作不會互相阻塞。
-
半雙工(Half Duplex):雖然USART的硬件設計支持全雙工,但它也可以配置為半雙工模式。在半雙工模式下,同一時間只能發送或接收數據,而不能同時進行。這種模式通常使用一根數據線(通常是TX/RX共用一根線),需要切換方向來發送或接收數據。
-
單工(Simplex):單工通信是指數據只能單向傳輸,即只能發送或只能接收,不能同時進行。雖然USART硬件一般不用于單工通信,但在某些特定應用場景中,可以將其配置為單工模式
接線:
在這我們一般取用異步接線,
TX與RX要交叉連接,因為對于設備2來說,設備1的發送(tx)就是它的接收(rx),對方同理。
電平標準:
????????電平標準是數據1和數據0的表達方式,是傳輸線纜中人為規定的電壓與數據的對應關系,串口常用的電平標準有如下三種:
???????? TTL電平:+3.3V或+5V表示1,0V表示0
???????? RS232電平:-3~-15V表示1,+3~+15V表示0
????????RS485電平:兩線壓差+2~+6V表示1,-2~-6V表示0(差分信號)
串口參數時序:
波特率:串口通信的速率
起始位:標志一個數據幀的開始,固定為低電平
數據位:數據幀的有效載荷,1為高電平,0為低電平,低位先行
校驗位:用于數據驗證,根據數據位計算得來
停止位:用于數據幀間隔,固定為高電平
數據包:
HEX:
? ? ? ?
文本:
疑問解答:
看到這是不是有了一些疑問?
1.既然大部分是利用異步通信,那么他們是如何保證數據發送和接收不會錯誤?
2.usart和uart是一個嗎?有區別嗎?
3.usart和iic、rs485、can等又有什么區別?
答
1.????????
????????既然雙設備利用串行雙向發送,那么發送和接收肯定要約定好一個頻率,主機按照一定頻率發送,從機按照一定頻率接收,這樣子才不會出現丟包、空包。因此,在這里面,就出現了一種通信參數,叫做波特率。????????
????????發送端和接收端必須配置相同的波特率,即每秒鐘傳輸的比特數。以此保證串口每發送的一位數據,其都能接收到,常見波特率:9600、115200、19200。
2.
- USART:支持同步和異步兩種模式。在同步模式下,USART使用時鐘信號進行數據同步傳輸,這意味著發送和接收需要共享一個時鐘信號。在異步模式下,USART的工作方式與UART相同,不需要共享時鐘信號。
- UART:只支持異步模式,不需要共享時鐘信號,發送和接收數據通過串行數據線進行。
????????主要的區別在于 USART 具有同步傳輸的能力,可以通過外部時鐘源進行精確的時鐘同步,而 UART 只能支持異步傳輸。USART 在物理層面的連接和電信號處理方面也稍有區別。
????????因此,選擇使用 UART 還是 USART 取決于具體的應用需求。如果只需要基本的異步傳輸功能,可以選擇 UART。如果需要同步傳輸或更高級的功能,如多主機通信、同步通信等,可以選擇 USART。
3.