99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(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ù)耐ㄓ嵎绞?,同時傳輸多個數(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ā)設備雙方會使用一根信號線表示時鐘信號,在時鐘信號的驅(qū)動下雙方進行協(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)容進行讀或?qū)?。第一次通訊是告訴從機讀寫地址,第二次則是讀寫的實際內(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特性及架構(gòu)

軟件模擬協(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 線被拉高作為結(jié)束信號。

(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 通訊的停止信號,表示本次通訊結(jié)束,從機的選中狀態(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和通信速率成反比關(guān)系;

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

    關(guān)注

    18

    文章

    6207

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    第十八章 I2C通信測試

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

    iic協(xié)議spi協(xié)議的區(qū)別

    I2C協(xié)議SPI協(xié)議的區(qū)別 1. 通信方式 I2C :是一種多主機、多從機的
    的頭像 發(fā)表于 02-05 11:28 ?3285次閱讀

    I2C總線通信原理 如何設計I2C總線電路

    I2C總線通信原理 I2C(Inter-Integrated Circuit)總線是一種用于集成電路之間進行通信的串行通信協(xié)議。它最早由飛利
    的頭像 發(fā)表于 01-31 15:01 ?1146次閱讀

    基于I2C總線的智能家居應用

    隨著科技的飛速發(fā)展,智能家居系統(tǒng)已經(jīng)成為現(xiàn)代生活的一個重要組成部分。I2C(Inter-Integrated Circuit)總線是一種串行通信協(xié)議,廣泛應用于微控制器和各種傳感器之間,因其簡單
    的頭像 發(fā)表于 01-17 16:21 ?568次閱讀

    I2C總線的優(yōu)缺點分析

    I2C總線作為一種廣泛使用的串行通信協(xié)議,以其簡單性和高效性在嵌入式系統(tǒng)中占據(jù)著重要地位。 I2C總線的優(yōu)點 1. 簡單性和低成本 I2C總線只需要兩條線(數(shù)據(jù)線SDA和時鐘線SCL)
    的頭像 發(fā)表于 01-17 15:50 ?1179次閱讀

    I2C總線的工作模式介紹

    在現(xiàn)代電子系統(tǒng)中,I2C總線作為一種多主機、多從機的串行通信協(xié)議,扮演著至關(guān)重要的角色。它允許多個設備共享同一總線,進行數(shù)據(jù)傳輸,從而簡化了系統(tǒng)設計并降低了成本。 I2C總線的基本特性 I2C
    的頭像 發(fā)表于 01-17 15:32 ?1019次閱讀

    I2C總線故障排除技巧

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設備在兩條線上(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。由于其簡單性和靈活性,I2C總線在嵌入式系統(tǒng)中非常流行。然而,當
    的頭像 發(fā)表于 01-17 15:20 ?2378次閱讀

    I2C總線與單片機的連接

    在現(xiàn)代電子系統(tǒng)中,單片機(MCU)是核心控制單元,而I2C總線作為一種多主機、多從機的串行通信協(xié)議,因其簡單、高效和節(jié)省引腳的特性而被廣泛應用于各種電子設備中。 I2C總線概述 I2C
    的頭像 發(fā)表于 01-17 15:18 ?1199次閱讀

    I2C總線設備地址設置方法

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設備在兩條線上(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。每個設備都有一個唯一的地址,以確保數(shù)據(jù)能夠正確地發(fā)送到目標設備。 I2C地址概述
    的頭像 發(fā)表于 01-17 15:17 ?4278次閱讀

    I2C總線與SPI總線的比較

    在現(xiàn)代電子系統(tǒng)中,微控制器與各種外設之間的通信是必不可少的。I2CSPI是兩種流行的串行通信協(xié)議,它們各自具有獨特的特點和應用場景。 I2C
    的頭像 發(fā)表于 01-17 15:08 ?958次閱讀

    CAN總線與其他串行通信協(xié)議比較

    CAN總線與其他串行通信協(xié)議相比,具有其獨特的特點和優(yōu)勢。以下是對CAN總線與UART、I2CSPI等常見串行通信協(xié)議比較: 一、基本特
    的頭像 發(fā)表于 11-12 09:56 ?2242次閱讀

    I2C協(xié)議的基礎知識

    本文從I2C協(xié)議的概述開始,描述協(xié)議的歷史、不同速度模式、物理層和數(shù)據(jù)幀結(jié)構(gòu),最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計算。
    的頭像 發(fā)表于 10-22 15:51 ?2220次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>的基礎知識

    物聯(lián)網(wǎng)嵌入式軟件中的I2C總線設計詳解

    基本概念、特點、通信協(xié)議,以及在不同場景下的高級應用和最佳實踐。I2C接口只有2根信號線,總線上可以連接多個設備,硬件實現(xiàn)簡單,可擴展性強。I2C
    的頭像 發(fā)表于 09-29 16:21 ?972次閱讀
    物聯(lián)網(wǎng)嵌入式軟件中的<b class='flag-5'>I2C</b>總線設計詳解

    DHT11用的是SPI還是I2C

    DHT11并不使用SPII2C通信協(xié)議,而是采用單總線(1-Wire)協(xié)議進行通信 。單總線協(xié)議
    的頭像 發(fā)表于 09-04 09:11 ?2741次閱讀

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C
    的頭像 發(fā)表于 07-25 18:06 ?2632次閱讀