五种通信总线协议详解
生活随笔
收集整理的這篇文章主要介紹了
五种通信总线协议详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎:
UART硬件連接 UART控制器 一般情況下處理器中都會集成UART控制器,我們使用UART進行通信時只需要對其內部的相關寄存器進行設置即可 Exynos4412下的UART控制器(Exynos4412的主頻是1000兆) 設置引腳功能的本質是讓引腳在芯片內部連接到某一個對應的控制器上 這里可以設置為GPIO、UART和PWM三種功能 通信基礎 -?并行和串行 并行通信: 例如:char?類型的數據 1個字節8位 BIT[0] - BIT[7]可以一次性傳送過去 串行通信: 過獨木橋 單工和雙工 單工通信: 發送器? ->? ?接收器 波特率(每秒鐘傳送的二進制位的個數) 波特率用于描述UART通信是的通信速度,其單位為(bps bit per second)即每秒鐘傳送的bit的數量一、URAT(Universal Asynchronous Receiver Transmitter)
通用異步收發器,是一種通用的串行、異步通信總線,該總線有兩條數據線,可以實現全雙工的發送和接收,在嵌入式系統中常用于主機與輔助設備之間的通信 異步:收發雙方時鐘不同步 如果連續發了兩個0或者兩個1或者多個1或0,如何去判斷1和0的個數? 方式一:通過時間去判定,波特率,每秒鐘發送的二進制位的個數,那這樣子可能會因為兩部機器的時間有不同步而產生錯位的情況 如何避免? 采用串行通信方式,每次只允許一個位通過,這樣子就避免了錯位的問題 串口通信可以避免累計誤差的出現 UART存在的問題 1)電氣接口不統一- UART只是對信號的時序進行了定義,而未定義接口的電氣特性
- UART通信時一般直接使用處理器使用的電平,即TTL電平,但不同的處理器使用的電平存在差異,所以不同的處理器使用的UART通信時一般不能直接相連
- UART沒有規定不同器間連接時連接器的標準,所以不同期間之間通過UART通信時連接很不方便
二、RS232協議原理及應用
這是一個用于串行通訊的標準,該標準采用一個標準的連接器標準中對連接器的每個引腳的作用加以規定,還對信號的電平加以規定 接口: 該標準規定采用一個25引腳的DB-25連接器,標準中對連接器的每個引腳的信號內容加以規定)還對各種信號的電平加以規定;后來IBM的PC機將RS232簡化成了DB-9在接器,后來成為事實標準;現在工業控制的RS-232接口一般只使用RXD、TXD、GND三條線; 信號: 該標準規定邏輯“1”的電平為-5v到-15v,遼輯“0”的電平為+5v到+15v,選用該電氣標準的目的在于提高抗干擾能力,增大通信距離,其傳送距離一般可達15m; 電平轉換: 雖然很多處理器中都會集成UART控制器,但處理器產生的信號一般都是TTL信號并不是符合RS232標準的信號,所以一般我們還需要在處理器外部去添加電路對信號的電平進行轉換; R232存在的問題- 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL電平不兼容,所以需要使用電平轉換芯片才能與TTL電路連接
- 通信速度較低
- 易產生共模干擾,抗噪聲干擾性較弱
- 傳輸距離較短(15m)
三、RS485協議原理及應用
該標準由電信行業協會和電子工業聯盟定義;使用該標準的通信網絡能在遠距離(可達1500米)條件下以及電子噪聲大的環境下有效傳輸信號,該標準允許連接多個收發器,即具有多站能力,這樣可以利用單一的RS485接口方便地建立起一個設備網絡 232和串口都是點對點兩個設備的通信協議,485可以形成一個網絡,大概可以到32個 信號: RS485標準規定采用差分信號進行數據傳輸。兩線間的電壓差為+2v到+6v表示邏輯“1”,兩線間的電壓差為-2v到-6v表示邏輯“0”;使用差分信號能有效地減少噪聲信號的干擾,延長通信距離,RS485的通信距離可以達到1500m; RS485接口信號的電平比RS232降低了,所以不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便地與TTL電路連接 ? ? 差分信號: 差分傳輸是一種信號傳輸的技術,區別于傳統的一根信號線一根地線的做法,差分傳輸在這兩根線上都傳輸信號,這兩個信號的振幅相同,相位相反。在這兩根線上的傳輸的信號就是差分信號。信號接收端比較這兩個電壓的差值來判斷發送端發送的邏輯狀態。在電路板上,差分走線必須是等長、等寬、緊密靠近、且在同一層面的兩根線。 接口 RS485采用兩線制,這種接線方式為總線式拓撲結構,在同一總線上,可以同時存在多個節點; 因為采用兩線制,數據的發送和接收都要使用這對差分信號線,發送和接收不能同時進行,所以只能采用半雙工的方式工作,編程時也需要加以處理 電平轉換 雖然很多處理器中都會集成UART控制器,但處理器產生的信號一般都是TTL信號并不是符合RS485標準的信號,所以一般我們還需要在處理器外部去添加電路將TTL信號轉換成差分信號; RS485的優勢- 接口的信號電平值較低,不易損壞接口電路的芯片,且與TTL電平兼容,可方便地與TTL電路連接
- 通信速度快
- 抗噪聲干擾性強
- 傳輸距離較遠(1500m)
- 可實現多節點組網
四、IIC總線
IIC總線是PhiLips公司在八十年代初推出的一種串行、半雙工總線,主要用于近距離、低速的芯片之間的通信;IIC總線有兩根雙向的信號線;一根數據線SDA用于收發數據,一根時鐘線SCL用于通信雙方時鐘的同步;IIC總線硬件結構簡單,成本較低,因此在各個領域得到了廣泛的應用,經常用于一個電路板上的各個芯片之間的通信。 IIC總線是一種多主機總線,連接在IIC總線上的器件分為主機和從機主機有權發起和結束一次通信,而從機只能被主機呼叫;當總線上有多個主機同時啟用總線時,IIC也具備沖突檢測和仲裁的功能來防止錯誤產生;每個連接到IIC總線上的器件都有一個唯一的地址(7bit),且每個器件都可以作為主機也可以作為從機(同一時刻只能有一個主機),總線上的器件增加和刪除不影響其他器件正常工作;IIC總線在通信時總線上發送數據的器件為發送器,接收數據的器件為接收器; IIC總線通信過程- SCL為高電平時,SDA由高變低表示起始信號
- SCL為高電平時,SDA由低變高表示停止信號
- 起始信號和停止信號都是由主機發出,起始信號產生后總線處于占用狀態,停止信號產生后總線處于空閑狀態
五、SPI總線
? ? SPI總線沒有起始信號和終止信號 SPI(Serial Per ipheral Interface)是串行外設接口的縮寫,SPI是一種高速的、全雙工、同步的串行通信總線;SPI采用主從方式工作,一般有一個主設備和一個或多個從設備;SPI需要至少4根線,分別是MISO(主設備Master輸入從設備Out輸出)、MOSI(主設備輸出從設備輸入)、SCLK(時鐘)、CS(片選)SPI使用引腳較少且布線方便,所以越來越多的芯片集成了這種通信協議; 什么時候會用到4根以上的線? 多個從機的時候 尋址方式 當主設備要和某個從設備進行通信時,主設備需要先向對應從設備的片選線上發送使能信號(高電平或者低電平,根據從機而定)表示選中該從設備 通信過程 SPI總線在進行數據傳送時,先傳送高位,后傳送低位;數據線為高電平表示邏輯‘1’,低電平表示邏輯‘0’;一個字節傳送完成后無需應答即可開始下一個字節的傳送;SPI總線采用同步方式工作,時鐘線在上升沿或下降沿時發送器向數據線上發送數據,在緊接著的下降沿或上升沿時接收器從數據線上讀取數據,完成一位數據傳送,八個時鐘周期即可完成一個字節數據的傳送; 無應答過程可能會存在主機一直在發,但是從機沒有接收到的情況 極性和相位 SPI總線有四種不同的工作模式(00,01,10,11),取決于極性(CPOL)和相位(CPHL)這兩個因素 CPOL表示SCLK空閑時的狀態 CPOL=O,空閑時SCLK為低電平 CPOL=1,空閑時SCLK為高電平 CPHA表示采樣時刻 CPHA=0,每個周期的第一個時鐘沿采樣 CPHA=1,每個周期的第二個時鐘沿采樣 IIC和SPI的異同 相同點 1.均采用串行步的方式 2.均采用TTL電平,傳輸距離和應用場景類似 3.均采用主從方式工作 不同點 1.IIC為半雙工,SPI為全雙工 2.IIC有應答機制,SPI無應答機制 3.IIC通過向總線廣播從機地址來尋址,SPl通過向對應從機發送使能信號來尋址 4.IIC的時鐘極性和時鐘相位固定,SPI的時鐘極性和時鐘相位可調 SPI缺點 需要占用主機較多的口線(每個從機都需要一根片選線);? ?? ?只支持單個主機;? ?? ?沒有指定的流控制,沒有應答機制確認是否接收到數據。 優點: 支持全雙工操作;? ?? ?操作簡單;? ?? ?數據傳輸速率較高。總結
以上是生活随笔為你收集整理的五种通信总线协议详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单总线协议
- 下一篇: 图片轮换滚动 广告图片