工做三個月總結4

  SPI、I2C、UART、USART串行總線協議區別:異步

  第一個區別固然是名字:ui

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

  I2C(IntericBus);設計

  UART(Univeral Asynchronous Receiver Transmitter)通用異步收發器;調試

  每二個區別在電氣信號線上:接口

  SPI總線由三條信號線組成:隊列

    一、串行時鐘(SCLK)ip

    二、串行數據輸出(SDO)內存

    三、串行數據輸入(SDI)同步

  SPI總線能夠實現多個SPI設備互相鏈接,提供SPI串行時鐘的SPI設備爲SPI主機或主設備(Master),其餘設備間能夠實現全雙工通訊,當有多個從設備時,還能夠增長一條從設備選擇線。若是用通用I/O口模擬SPI總線必需要有一個輸出口(SDO),一個輸入口(SDI),另外一個口則視實現的設備類型而定,若是要實現主從設備,則需輸入輸出口;若只實現主設備,則需輸出口便可;若只實現從設備,則只需輸入口便可。

  

  I2C總線是雙向的,兩線(SCL、SDA)串行、多主控(Multi master)接口標準,具備總線仲裁機制,很是適合在器件之間進行近距離、非常常性的數據通訊。在它的協議體系中,傳輸數據時都會帶上目的設備的設備地址,所以能夠實現設備組網。若是用通用I/O口模擬I2C總線,並實現雙向傳輸,則須要一個輸入輸出口(SDA),另外還需一個輸出口(SCL)。(注:I2C資料瞭解得比較少,這裏的描述可能很不完善)。

  

  UART總線是異步串口,所以,通常比前兩種同步的結構要複雜不少,通常由波持率產生器(產生的波特率等於傳輸波特率的16倍)、UART接收器、UART發生器組成。硬件上由兩根線:一根用於發送,一根用於接收。顯然若是用通用I/O模擬UART總線,則需一個輸入口,一個輸出口。

  第3、從第二點明顯能夠看出,SPI和UART能夠實現全雙工,但I2C不行。

  第4、看看牛人們的意見

  wudanyu:I2C線更少,我以爲比UART、SPI更爲強大,可是技術上也更加麻煩些。由於I2C須要有雙向I/O的支持,並且使用上拉電阻。我以爲抗干擾能力較弱。通常用於同一板卡上的芯片之間的通訊,較少用於遠距離通訊。SPI實現要簡單一些。UART須要固定的波特率,就是說兩位數據的間隔要相等。而SPI則無所謂,由於它是有時鐘的協議。

  quickmouse:I2C的速度比SPI慢一點協議比SPI複雜一點,可是連線也比標準的SPI要少。

  UART:Universal Asynchronous Receiver / Transmitter:通用異步接收/發送裝置。UART是一個並行輸入成串行輸出的芯片。一般集成在主板上,多數是16550AFN芯片。由於計算機內部採用並行數據,不能直接把數據發到Modem,必須通過UART整理才能進行異步傳輸:

  其過程爲:CPU先把準備寫入串行設備的數據放到UART的寄存器(臨時內存塊)中,再經過FIFO(First Input First Output先入先出隊列)傳送到串行設備,如果沒有FIFO,

信息將變得雜亂無章,不可能傳送到Modem,它是用於控制計算機與串行設備的芯片,有一點要注意的是,它提供了RS-232C數據終端設備接口,這樣計算機就能夠和調制解調器或其它使用RS-232C接口的串行設備通訊了。做爲接口的一部分UART還提供如下功能:將由計算機內部傳送過來的並行數據轉換爲輸出的串行數據流將計算機外部來的串行數據轉換爲字節,供計算機內部使用並行數據的器件使用,在輸出的串行數據流中加入奇偶檢驗位,並對從外部接收的數據流進行奇偶校驗。在輸出數據流中加入啓停標記,並從接收數據流中刪除啓停標記。處理同鍵盤或鼠標發出的中斷信號(鍵盤和鼠標也是串行設備)。能夠處理計算機與外部串行設備的同步管理問題,有一些比較高檔的UART還提供輸入輸出數據的緩衝區,如今比較新的UART16550。它能夠在計算機須要處理數據前在其緩衝區內存儲16字節數據,而一般的UART是8250。如今若是您購買了一個內置的調制解調器,此調制解調器內部一般就會有16550UART。

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

  UART首先將接收到的並行數據轉換成串行數據來傳輸,消息幀以一個低位起始位開始,後面是7個或8個數據位,一個可用的奇偶位和一個或幾個高位中止位。接收器發現開始位時它就知道數據準備發送,並嘗試與發送器時鐘頻率同步。若是選擇了奇偶。UART就在數據位後面加上奇偶位。奇偶可用來幫助錯誤檢驗。在接收過程當中,UART從消息幀中去掉超始位和結束位,對進來的字節進行奇偶校驗,並將數據字節從串行轉換成並行,UART也產生額外的信號來指示發送和接收的狀態。例如:若是產生一個奇偶錯誤,UART就置位奇偶標誌。

  數據方向和通訊速度

  數據傳輸能夠首先從最低有效位(LSB)開始,而後有些UART容許靈活選擇先發送最低有效位或最高有效位(MSB)。

  

  微控制器中的UART傳送數據的速度範圍爲每秒幾百位到1.5Mb。例如:嵌入在ElanSc520微控制器中的高速UART通訊的速度能夠高達1.152Mbps。UART通訊的速度能夠高達1.152Mbps。UART的波特率還受發送和接收線對距離(線長度)的影響。目前,市場上有支持異步通訊和同時支持異步與同步通訊的兩種硬件可用於UART,前者就是UART名字自己的含義,在摩托羅拉微控制器中被稱爲串行通訊接口(SCI);Microchip微控制器中的通用同步異步收發器(USART)和在富士通微控制器中的UART是後者的兩個典型例子。

  UART是通用異步收發器(異步串行通訊口)的英文縮寫,它包括了RS23二、RS49九、RS42三、RS422和RS485等接口標準規範和總線標準規範,即UART是異步串行通訊口的總結,而RS23二、RS49九、RS42三、RS422和RS485等,是對應各類異步串行通訊口的接口標準和總線標準。因此,如今PC機的COM口均爲RSS232。若配有各個異步串行通訊口則分別稱爲COM一、COM2...

  USART USART:(Universal Synchronous/AsynchronousReceiver/Transmitter)通用同步/異步串行接收/發送器USART是一個全雙工通用同步/異步串行收發模塊,該接口 是一個高度靈活的串行通訊設備。(和UART有區別)

  其主要特色以下:
  #全雙工操做(相互獨立的接收數據寄存器和發送數據寄存器);
  #支持同步和異步操做;
  #同步操做時,可主機時鐘同步,也可從機時鐘同步;
  #獨立的高精度波特率發生器,不佔用定時/計數器;
  #支持五、六、七、8和9位數據位,1或2位中止位的串行數據楨結構;
  #由硬件支持的奇偶校驗位發生和檢驗;
  #數據溢出檢測;
  #楨錯誤檢測;
  #包括錯誤起使位的檢測噪聲濾波器和數字低通濾波器;
  #三個徹底獨立的中斷,TX發送完成、TX發送數據寄存器空、RX接收完成;
  #支持多機通訊模式;
  #支持倍速異步通訊模式。
  USART收發模塊通常分爲三大部分:時鐘發生器、數據發送器和接收器。控制寄存器爲全部的模塊共享。時鐘發生器由同步邏輯電路(在同步從模式下由外部時鐘輸入驅   動)和波特率發生器組成。發送時鐘引腳XCK僅用於同步發送模式下,發送器部分由一個單獨的寫入緩衝器(發送UDR)、一個串行移位寄存器、校驗位發生器和用於處理   不一樣湞結構的控制邏輯電路構成。使用寫入緩衝器,實現了連續發送多湞數據無延時的通訊。接收器是USART模塊最複雜的部分,最主要的是時鐘和數據接收單元。數據接   收單元用做異步數據的接收。除了接收單元,接收器還包括校驗位校驗器、控制邏輯、移位寄存器和兩級接收緩衝器(接收UDR)。接收器支持與發送器相同的楨結構,同時   支持楨錯誤、數據溢出和校驗錯誤的檢測。

相關文章
相關標籤/搜索