哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

通信協(xié)議比較:USART、I2C、SPI

機智云 ? 2022-08-28 15:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

61bc0fd2-24a1-11ed-9ade-dac502259ad0.png通信協(xié)議的基本概念

通信協(xié)議不難理解,就是兩個(或多個)設備之間進行通信,必須要遵循的一種協(xié)議。通信協(xié)議是指雙方實體完成通信或服務所必須遵循的規(guī)則和約定。通過通信信道和設備互連起來的多個不同地理位置的數(shù)據(jù)通信系統(tǒng),要使其能協(xié)同工作實現(xiàn)信息交換和資源共享,它們之間必須具有共同的語言。交流什么、怎樣交流及何時交流,都必須遵循某種互相都能接受的規(guī)則。這個規(guī)則就是通信協(xié)議。

61bc0fd2-24a1-11ed-9ade-dac502259ad0.png通訊方式分類

1、按照數(shù)據(jù)的傳送方式劃分

串行通訊與并行通訊

串行通訊:指設備之間通過少量數(shù)據(jù)信號線(一般是 8 根以下),地線以及控制信號線,按數(shù)據(jù)位形式一位一位地傳輸數(shù)據(jù)的通訊方式。

并行通訊:指使用 8、16、32 及 64 根或更多的數(shù)據(jù)線進行傳輸?shù)耐ㄓ嵎绞剑瑫r傳輸多個數(shù)據(jù)位的數(shù)據(jù)。

兩者比較:在數(shù)據(jù)傳輸速率相同時,并行效率更高,可以傳輸更多數(shù)據(jù)量;而串行通訊節(jié)省成本。并行傳輸對同步要求較高,且隨著通訊速率的提高,信號干擾的問題會顯著影響通訊性能。比較如下:

61d51ce8-24a1-11ed-9ade-dac502259ad0.png

2、按數(shù)據(jù)通訊方向劃分

全雙工、半雙工、單工通訊

61eaa8ba-24a1-11ed-9ade-dac502259ad0.png

62105416-24a1-11ed-9ade-dac502259ad0.png

3、按照數(shù)據(jù)通訊的同步方式/是否使用時鐘信號進行劃分

同步通訊和異步通訊

同步通訊:收發(fā)設備雙方會使用一根信號線表示時鐘信號,在時鐘信號的驅動下雙方進行協(xié)調(diào),同步數(shù)據(jù)。通訊中通常雙方會統(tǒng)一規(guī)定在時鐘信號的上升沿或下降沿對數(shù)據(jù)線進行采樣

623d55d8-24a1-11ed-9ade-dac502259ad0.png

異步通訊:不使用時鐘信號進行數(shù)據(jù)同步,直接在數(shù)據(jù)信號中穿插一些同步用的信號位,或者把主體數(shù)據(jù)進行打包,以數(shù)據(jù)幀的格式傳輸數(shù)據(jù),某些通訊中還需要雙方約定數(shù)據(jù)的傳輸速率,以便更好地同步。

6254793e-24a1-11ed-9ade-dac502259ad0.png

兩者比較:在同步通訊中,數(shù)據(jù)信號所傳輸?shù)膬?nèi)容絕大部分就是有效數(shù)據(jù),而異步通訊中會包含有幀的各種標識符,所以同步通訊的效率更高,但是同步通訊雙方的時鐘允許誤差較小,而異步通訊雙方的時鐘允許誤差較大。

4、按照通訊速率

比特率和波特率

比特率(Bitrate):每秒鐘傳輸?shù)亩M制位數(shù),單位為比特每秒(bit/s)。

波特率(Baudrate):表示每秒鐘傳輸了多少個碼元

61bc0fd2-24a1-11ed-9ade-dac502259ad0.png三、串口協(xié)議

USART——串口通訊

包括RS232、RS499、RS423、RS422RS485接口規(guī)范和標準規(guī)范

627d2c3a-24a1-11ed-9ade-dac502259ad0.png

串口通訊協(xié)議的物理層及協(xié)議層:

1、物理層:串口通訊的物理層有很多標準及變種,主要有RS-232標準,一般只使用 RXD、TXD 以及 GND 三條信號線,直接傳輸數(shù)據(jù)信號。

2、協(xié)議層:串口通訊的數(shù)據(jù)包由發(fā)送設備通過自身的 TXD 接口傳輸?shù)浇邮赵O備的 RXD 接口。在串口通訊的協(xié)議層中,規(guī)定了數(shù)據(jù)包的內(nèi)容,它由啟始位、主體數(shù)據(jù)、校驗位以及停止位組成,通訊雙方的數(shù)據(jù)包格式要約定一致才能正常收發(fā)數(shù)據(jù)

數(shù)據(jù)校驗

奇校驗:有效數(shù)據(jù)和校驗位中“1”的個數(shù)為奇數(shù);

偶校驗:有效數(shù)據(jù)和校驗位中“1”的個數(shù)為偶數(shù);

3、USART——通用同步異步收發(fā)器(Universal Synchronous Asynchronous Receiver and Transmitter)

RX、TX

串行通信:以幀格式傳輸數(shù)據(jù),即是一幀一幀的傳輸,每幀包含有起始信號、數(shù)據(jù)信息、停止信息,可能還有校驗信息。

字符幀:一個字符幀發(fā)送需要三個部分:起始位+數(shù)據(jù)幀+停止位。起始位是一個位周期的低電平,位周期就是每一位占用的時間;數(shù)據(jù)幀就是我們要發(fā)送的 8 位或 9 位數(shù)據(jù),數(shù)據(jù)是從最低位開始傳輸?shù)?;停止位是一定時間周期的高電平。

I2C通訊協(xié)議

I2C通訊協(xié)議(Inter-Integrated Circuit):由 Phiilps 公司開發(fā)的,由于它引腳少,硬件實現(xiàn)簡單,可擴展性強,不需要 USART、CAN 等通訊協(xié)議的外部收發(fā)設備,現(xiàn)在被廣泛地使用在系統(tǒng)內(nèi)多個集成電路(IC)間的通訊。

1、物理層:雙向串行數(shù)據(jù)線(SDA),串行時鐘線(SCL)

62a27148-24a1-11ed-9ade-dac502259ad0.png

(1) 它是一個支持設備的總線?!翱偩€”指多個設備共用的信號線。在一個 I2C 通訊總線中,可連接多個 I2C 通訊設備,支持多個通訊主機及多個通訊從機。

(2) 一個 I2C 總線只使用兩條總線線路,一條雙向串行數(shù)據(jù)線(SDA) ,一條串行時鐘線(SCL)。數(shù)據(jù)線即用來表示數(shù)據(jù),時鐘線用于數(shù)據(jù)收發(fā)同步。

(3) 每個連接到總線的設備都有一個獨立的地址,主機可以利用這個地址進行不同設備之間的訪問。

(4) 總線通過上拉電阻接到電源。當 I2C 設備空閑時,會輸出高阻態(tài),而當所有設備都空閑,都輸出高阻態(tài)時,由上拉電阻把總線拉成高電平。

(5) 多個主機同時使用總線時,為了防止數(shù)據(jù)沖突,會利用仲裁方式?jīng)Q定由哪個設備占用總線。

2、協(xié)議層:定義了通訊的起始和停止信號、數(shù)據(jù)有效性、響應、仲裁時鐘同步和地址廣播等環(huán)節(jié)

62c24ea0-24a1-11ed-9ade-dac502259ad0.png

S:傳輸開始信號;SLAVE_ADDRESS:從機地址;R/W:傳輸方向選擇位,1為讀,0為寫

A/A:應答(ACK)或非應答(NACK)信號;P:停止傳輸信號

通訊過程:起始信號產(chǎn)生后,所有從機就開始等待主機緊接下來廣播 的從機地址信號(SLAVE_ADDRESS)。在 I2C 總線上,每個設備的地址都是唯一的,當主機廣播的地址與某個設備地址相同時,這個設備就被選中了,沒被選中的設備將會忽略之后的數(shù)據(jù)信號。根據(jù) I2C協(xié)議,這個從機地址可以是 7位或 10位。在地址位之后,是傳輸方向的選擇位,該位為 0 時,表示后面的數(shù)據(jù)傳輸方向是由主機傳輸至從機,即主機向從機寫數(shù)據(jù)。該位為 1時,則相反,即主機由從機讀數(shù)據(jù)。從機接收到匹配的地址后,主機或從機會返回一個應答(ACK)或非應答(NACK)信號,只有接收到應答信號后,主機才能繼續(xù)發(fā)送或接收數(shù)據(jù)。

讀和寫數(shù)據(jù):I2C通訊更常用的是復合格式,該傳輸過程有兩次起始信號(S)。一般在第一次傳輸中,主機通過 SLAVE_ADDRESS 尋找到從設備后,發(fā)送一段“數(shù)據(jù)”,這段數(shù)據(jù)通常用于表示從設備內(nèi)部的寄存器或存儲器地址(注意區(qū)分它與 SLAVE_ADDRESS 的區(qū)別);在第二次的傳輸中,對該地址的內(nèi)容進行讀或寫。第一次通訊是告訴從機讀寫地址,第二次則是讀寫的實際內(nèi)容。

(2)通訊的起始和停止信號:起始和停止信號一般由主機產(chǎn)生

起始信號:SCL為高,SDA 高 —>低;

停止信號:SCL為高,SDA 低 —>高;

62f675c2-24a1-11ed-9ade-dac502259ad0.png

數(shù)據(jù)有效性:傳輸時,SCL 為高電平的時候 SDA 表示的數(shù)據(jù)有效,即此時的 SDA 為高電平時表示數(shù)據(jù)“1”,為低電平時表示數(shù)據(jù)“0”。當 SCL為低電平時,SDA 的數(shù)據(jù)無效,一般在這個時候 SDA 進行電平切換,為下一次表示數(shù)據(jù)做好準備。

3、I2C特性及架構

軟件模擬協(xié)議:直接控制芯片的兩個 GPIO 引腳,分別用作 SCL 及 SDA,按照上述信號的時序要求,直接控制引腳的輸出(若是接收數(shù)據(jù)時則讀取 SDA 電平),就可以實現(xiàn) I2C 通訊。由直接控制 GPIO 引腳電平產(chǎn)生通訊時序時,需要由 CPU 控制每個時刻的引腳狀態(tài)。

硬件協(xié)議:STM32 的 I2C 片上外設專門負責實現(xiàn) I2C 通訊協(xié)議,只要配置好該外設,它就會自動根據(jù)協(xié)議要求產(chǎn)生通訊信號,收發(fā)數(shù)據(jù)并緩存起來,CPU只要檢測該外設的狀態(tài)和訪問數(shù)據(jù)寄存器,就能完成數(shù)據(jù)收發(fā)。

SPI通訊協(xié)議

SPI(Serial Peripheral Interface):串行外圍設備接口,是一種高速全雙工的通信總線。

1、SPI物理層:3條總線及片選線(SCK、MOSI、MISO、片選線共4根)

631e9a8e-24a1-11ed-9ade-dac502259ad0.png

(1)片選線:從設備選擇信號線,當有多個 SPI 從設備與 SPI 主機相連時,設備的其它信號線 SCK、MOSI及 MISO同時并聯(lián)到相同的 SPI總線上,即無論有多少個從設備,都共同只使用這 3 條總線;而每個從設備都有獨立的這一條 NSS 信號線,本信號線獨占主機的一個引腳,即有多少個從設備,就有多少條片選信號線。I2C 協(xié)議中通過設備地址來尋址、選中總線上的某個設備并與其進行通訊;而 SPI 協(xié)議中沒有設備地址,它使用 NSS 信號線來尋址,當主機要選擇從設備時,把該從設備的 NSS 信號線設置為低電平,該從設備即被選中片選有效,接著主機開始與被選中的從設備進行 SPI 通訊。所以SPI通訊以 NSS 線置低電平為開始信號,以 NSS 線被拉高作為結束信號。

(3) MOSI(Master Output,Slave Input):主設備輸出/從設備輸入引腳。主機的數(shù)據(jù)從這條信號線輸出,從機由這條信號線讀入主機發(fā)送的數(shù)據(jù),即這條線上數(shù)據(jù)的方向為主機到從機。

(4) MISO(Master Input,Slave Output):主設備輸入/從設備輸出引腳。主機從這條信號線讀入數(shù)據(jù),從機的數(shù)據(jù)由這條信號線輸出到主機,即在這條線上數(shù)據(jù)的方向為從機到主機。

2、協(xié)議層:SPI 協(xié)議定義了通訊的起始和停止信號、數(shù)據(jù)有效性、時鐘同步等環(huán)節(jié)。

SPI通訊時序:

6340e8aa-24a1-11ed-9ade-dac502259ad0.png

(1)通訊的起始和停止信號:

起始信號:NSS 信號線由高變低,是 SPI 通訊的起始信號。NSS 是每個從機各自獨占的信號線,當從機在自己的 NSS 線檢測到起始信號后,就知道自己被主機選中了,開始準備與主機通訊。

停止信號:NSS 信號由低變高,是 SPI 通訊的停止信號,表示本次通訊結束,從機的選中狀態(tài)被取消。

(2)數(shù)據(jù)有效性:SPI 使用 MOSI 及 MISO 信號線來傳輸數(shù)據(jù),使用 SCK 信號線進行數(shù)據(jù)同步。MOSI及 MISO 數(shù)據(jù)線在 SCK 的每個時鐘周期傳輸一位數(shù)據(jù),且數(shù)據(jù)輸入輸出是同時進行的。MOSI 及 MISO 的數(shù)據(jù)在 SCK 的上升沿期間變化輸出,在 SCK的下降沿時被采樣。即在 SCK的下降沿時刻,MOSI及 MISO 的數(shù)據(jù)有效,高電平時表示數(shù)據(jù)“1”,為低電平時表示數(shù)據(jù)“0”。在其它時刻,數(shù)據(jù)無效,MOSI 及 MISO為下一次表示數(shù)據(jù)做準備。SPI每次數(shù)據(jù)傳輸可以 8 位或 16 位為單位,每次傳輸?shù)膯挝粩?shù)不受限制。

DMA——直接存儲器存取

DMA(Direct Memory Access):是單片機的一個外設,它的主要功能是用來搬數(shù)據(jù),但是不需要占用 CPU,即在傳輸數(shù)據(jù)的時候,CPU 可以干其他的事情,好像是多線程一樣。數(shù)據(jù)傳輸支持從外設到存儲器或者存儲器到存儲器

1、DMA請求:如果外設要想通過 DMA 來傳輸數(shù)據(jù),必須先給 DMA 控制器發(fā)送 DMA 請求,DMA收到請求信號之后,控制器會給外設一個應答信號,當外設應答后且 DMA 控制器收到應答信號之后,就會啟動 DMA的傳輸,直到傳輸完畢。

2、通道:DMA 具有 12 個獨立可編程的通道,其中 DMA1 有 7 個通道,DMA2 有 5 個通道,每個通道對應不同的外設的 DMA 請求。雖然每個通道可以接收多個外設的請求,但是同一

時間只能接收一個,不能同時接收多個。

3、仲裁器:當發(fā)生多個 DMA 通道請求時,就意味著有先后響應處理的順序問題,這個就由仲裁器理。

4、DMA 數(shù)據(jù)配置:DMA 傳輸數(shù)據(jù)的方向有三個——從外設到存儲器,從存儲器到外設,從存儲器到存儲器。

USART/I2C/SPI比較

1、通信速率比較:

SPI > I2C > UART

(1)同步通信>異步通信;

(2)同步通信時必須有一根時鐘線連接傳輸?shù)膬啥?

(3)都是串行通信方式,并行通信用于內(nèi)部存儲間的通信,如flash;

(4)適合傳輸?shù)木嚯x和通信速率成反比關系;

2、連線方式:

SPI:2數(shù)據(jù)線、1時鐘線、1CS(設備片選線),串行同步通信全雙工;

I2C:1數(shù)據(jù)線、1時鐘線,串行同步通信半雙工,傳輸距離比UART短;

UART:2數(shù)據(jù)線、1地線,串行異步通信全雙工,傳輸距離比I2C長些;

(I2C接口是“器件間”接口,是在一塊板子之內(nèi)傳輸數(shù)據(jù))

(UART是 “設備間”接口,更多的是用于兩臺設備之間傳輸數(shù)據(jù))

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6447

    瀏覽量

    140244
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何使用 Python 將 I2C LCD 與 VIsionFive 一起使用?

    常見的顯示器。它采用I2C通信協(xié)議,僅依靠兩根線即可減少電線數(shù)量,SDA(串行數(shù)據(jù)線)SCL(串行時鐘線)它... 希望對您有所幫助。
    發(fā)表于 03-30 06:52

    I2C總線-通信線纜長度的影響及改進措施

    I2C總線確實不適合遠距離通信,尤其是需要使用線纜與I2C接口器件進行通信,這里的“不適合”并不是說不可以,這也是本文的重點。一般使用I2C
    發(fā)表于 01-21 06:03

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經(jīng)討論了SPI通信和UART通信的基礎知識,現(xiàn)在讓我們討論本系列的最后一個協(xié)議,即集成電路間協(xié)議
    的頭像 發(fā)表于 01-04 09:14 ?2027次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

    SPI 為什么比 I2C 更快?

    領域,這些語言被稱為通信協(xié)議。幸運的是,在構建大多數(shù)DIY電子項目時,我們只需要了解少數(shù)幾種通信協(xié)議。在本系列文章中,我們將討論三種最常見協(xié)議的基礎知識:串行外設
    的頭像 發(fā)表于 01-04 09:14 ?861次閱讀
    <b class='flag-5'>SPI</b> 為什么比 <b class='flag-5'>I2C</b> 更快?

    基于FPGA的I2C控制模塊設計

    I2C_WRITE_WDATA.v模塊實現(xiàn)I2C寫時序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發(fā)表于 12-26 09:48 ?5891次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設計

    基于FPGA的I2C通信協(xié)議設計

    I2C(Inter-Integrated Circuit)是一種由飛利浦半導體(現(xiàn)為恩智浦半導體)在1980年代初開發(fā)的同步、串行、半雙工的總線型通信協(xié)議。主要用于近距離(同一塊印刷電路板(PCB
    的頭像 發(fā)表于 12-26 09:44 ?6348次閱讀
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>設計

    I2C的優(yōu)點介紹

    是一種同步通信協(xié)議,這意味著它依靠時鐘信號來同步設備之間的數(shù)據(jù)傳輸。主設備產(chǎn)生時鐘信號,保證精確的時序協(xié)調(diào)。這種同步可以實現(xiàn)可靠、準確的數(shù)據(jù)傳輸,這對于數(shù)據(jù)完整性至關重要的應用至關重要。I2C 的同步特性簡化了通信接口的設計并
    發(fā)表于 11-27 07:49

    I2C的缺點介紹

    上升時間變慢和潛在的信號衰減。對于長距離通信,其他協(xié)議,如 UART(通用異步接收器/發(fā)送器)或 SPI(串行外設接口)可能更合適。 速度限制: 雖然 I2C 支持不同的速度模式,但其
    發(fā)表于 11-27 06:10

    SPII2C、UART三種串行總線的區(qū)別與對比

    Asynchronous Receiver Transmitter:通用異步收發(fā)器) 2通信方式 SPI和UART可以實現(xiàn)全雙工,但I2C不行; 3)其他差異 A.
    發(fā)表于 11-20 07:19

    SPI、I2C、I2S、UART:通信協(xié)議解釋

    ? ? ? ? 在嵌入式開發(fā)中,最常用的幾種通信接口無非就是SPI、I2CI2S、UART。名字看起來差不多,但應用場景和特性卻大不相同。為什么都叫串行
    的頭像 發(fā)表于 11-18 10:53 ?709次閱讀

    SPI、I2C、I2S、UART:通信協(xié)議對比表

    在嵌入式開發(fā)中,最常用的幾種通信接口無非就是SPI、I2C、I2S、UART。名字看起來差不多,但應用場景和特性卻大不相同。很多初學者容易混淆:為什么都叫串行
    的頭像 發(fā)表于 11-17 10:53 ?2100次閱讀
    <b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、UART:<b class='flag-5'>通信協(xié)議</b>對比表

    串行通信相關的基礎知識

    串行通信是電子設備中數(shù)據(jù)交換的基石。最常見的串行通信協(xié)議有UART,SPII2C等。
    的頭像 發(fā)表于 10-15 10:53 ?2118次閱讀
    串行<b class='flag-5'>通信</b>相關的基礎知識

    深入剖析I2C協(xié)議

    I2C是由Philips開發(fā)的簡單的雙向兩線總線,在深入淺出理解SPI協(xié)議中,我們區(qū)分了單工,半雙工,全雙工協(xié)議數(shù)據(jù)流向的區(qū)別,根據(jù)特征,I2C
    的頭像 發(fā)表于 08-21 15:10 ?3875次閱讀
    深入剖析<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    第十八章 I2C通信測試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設備:協(xié)議層含起始/停止信號、應答機制等。還講解W55MH32的I2C外設及初始化,并進行了
    的頭像 發(fā)表于 06-19 17:07 ?1459次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測試

    基于RT-Thread的I2C(軟件) 實踐 | 技術集結

    一、軟硬件介紹(一)I2C(軟件)I2C是一種廣泛應用于嵌入式系統(tǒng)中的短距離串行通信協(xié)議,支持多主多從設備模式,主機通過時鐘信號SCL和數(shù)據(jù)線SDA與從機進行數(shù)據(jù)交互。在RT-Thread操作系統(tǒng)中
    的頭像 發(fā)表于 05-06 18:44 ?1211次閱讀
    基于RT-Thread的<b class='flag-5'>I2C</b>(軟件) 實踐 | 技術集結
    仙桃市| 原平市| 渑池县| 安西县| 海伦市| 游戏| 廊坊市| 资兴市| 叙永县| 德惠市| 建瓯市| 晋中市| 西畴县| 武冈市| 鄄城县| 寿宁县| 天峻县| 白水县| 西充县| 宝清县| 高碑店市| 嘉义市| 灵台县| 沙河市| 定西市| 绥化市| 泸州市| 高青县| 克什克腾旗| 梅河口市| 河曲县| 连州市| 平乡县| 石屏县| 文安县| 偃师市| 长治市| 施甸县| 贡山| 京山县| 永和县|