uart接口介紹和認識


  接口/總線/驅動

  UART (Universal Asynchronous Receiver/Transmitter) 通用異步收發器。

  UART是用於控制計算機與串行設備的芯片。有一點要注意的是,它提供了RS-232C數據終端設備接口,這樣計算機就可以和調制解調器或其它使用RS-232C接口的串行設備通信了。

  作為接口的一部分,UART還提供以下功能:將由計算機內部傳送過來的並行數據轉換為輸出的串行數據流。將計算機外部來的串行數據轉換為字節,供計算機內部使用並行數據的器件使用。在輸出的串行數據流中加入奇偶校驗位,並對從外部接收的數據流進行奇偶校驗。在輸出數據流中加入啟停標記,並從接收數據流中刪除啟停標記。處理由鍵盤或鼠標發出的中斷信號(鍵盤和鼠票也是串行設備)。可以處理計算機與外部串行設備的同步管理問題。有一些比較高檔的UART還提供輸入輸出數據的緩沖區,現在比較新的UART是16550,它可以在計算機需要處理數據前在其緩沖區內存儲16字節數據,而通常的UART是8250。現在如果您購買一個內置的調制解調器,此調制解調器內部通常就會有16550 UART。

  UART是一種通用串行數據總線,用於異步通信。該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信,包括與監控調試器和其它器件,如EEPROM通信

  UART用一條傳輸線將數據一位位地順序傳送,以字符為傳輸單位

  通信中兩個字符間的時間間隔多少是不固定的, 然而在同一個字符中的兩個相鄰位間的時間間隔是固定的

  數據傳送速率用波特率來表示, 指單位時間內載波參數變化的次數, 或每秒鍾傳送的二進制位數

  如每秒鍾傳送240個字符, 而每個字符包含10位(1個起始位, 1個停止位, 8個數據位), 這時的波特率為2400Bd

  傳輸時序如下圖

  uart接口介紹和認識

  在UART中,信號線上共有兩種狀態, 分別用邏輯1(高電平)和邏輯0(低電平)來區分

  在空閑時, 數據線應該保持在邏輯高電平狀態

  其中各位的意義如下

  起始位(Start Bit): 先發出一個邏輯0信號, 表示傳輸字符的開始

  數據位(Data Bits): 可以是5~8位邏輯0或1. 如ASCII碼(7位), 擴展BCD碼(8位)小端傳輸

  校驗位(Parity Bit): 數據位加上這一位后, 使得1的位數應為偶數(偶校驗)或奇數(奇校驗)

  停止位(Stop Bit): 它是一個字符數據的結束標志。 可以是1位、1.5位、2位的高電平

  空閑位: 處於邏輯1狀態, 表示當前線路上沒有資料傳送

  簡單的講:(UART與COM)

  嵌入式里面說的串口,一般是指UART口, 但是我們經常搞不清楚它和COM口的區別, 以及RS232, TTL等關系, 實際上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的電平標准(電信號)。

  UART有4個pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。

  uart接口介紹和認識

  COM口是我們台式機上面常用的口(下圖),9個pin, 用的RS232電平, 它是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平

  uart接口介紹和認識

 

  詳細的說:

  UART的特征

  一般uart控制器在嵌入式系統里面都做在cpu一起,像飛思卡爾的IMX6芯片就是這樣,有多個uart控制器。

  引腳介紹(COM口比較多pin,但是常用的也是這幾個):

  VCC:供電pin,一般是3.3v,在我們的板子上沒有過電保護,這個pin一般不接更安全

  GND:接地pin,有的時候rx接受數據有問題,就要接上這個pin,一般也可不接

  RX:接收數據pin

  TX:發送數據pin,我之前碰到串口只能收數據,不能發數據問題,經baidu,原來是設置了流控制,取消就可以了,適用於putty,SecureCRT

  在調試的時候, 多數情況下我們只引出rx,tx即可。 比如調試gps模塊, IC數據直接通過uart上報,我就直接用了兩個線連出了rx,tx,連上串口轉USB小板, 電腦從串口直接獲取數據,這樣跳過了開發板,測試了gps的數據有沒有問題。

  使用方法:

  我們常用UART口進行調試,但是UART的數據要傳到電腦上分析就要匹配電腦的接口,通常我們電腦使用接口有COM口和USB口(最終在電腦上是一個虛擬的COM口),但是要想連上這兩種接口都要需要進行硬件接口轉換和電平轉換。

  如果連接電腦COM口, 需要一個類似下圖的轉換小板, 它實現了TTL電平和RS232電平互轉, 我之前使用過, 但是現在很少用了。

 uart接口介紹和認識

  如果要連接USB接口, 需要類似下面的小板, 它實現了TTL電平和USB電平的轉換, 這種使用的較多。

 uart接口介紹和認識

  總結

  1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的電平標准(電信號)。

  2、接設備的時候,一般只接GND RX TX。不會接Vcc或者+3.3v的電源線,避免與目標設備上的供電沖突。

  3、PL2303、CP2102芯片是 USB 轉 TTL串口 的芯片,用USB來擴展串口(TTL電平)

  4、MAX232芯片是 TTL電平與RS232電平的專用雙向轉換芯片,可以TTL轉RS-232,也可以RS-232轉TTL。

  5、TTL標准是低電平為0,高電平為1(+5V電平)。RS-232標准是正電平為0,負電平為1(±15V電平)。

  6、RS-485與RS-232類似,但是采用差分信號負邏輯。這里略過不講。

  

  其他

  串口進行通信的方式有兩種:同步通信方式和異步通信方式

  SPI(Serial Peripheral Interface:串行外設接口);

  I2C(INTER IC BUS:意為IC之間總線),一(host)對多,以字節為單位發送。

  UART(Universal Asynchronous Receiver Transmitter:通用異步收發器), 一對一,以位為單位發送。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM