小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

筆試??迹呵度胧?大常用協(xié)議(UART、RS232、RS485、IIC、SPI)

 新用戶25123383 2023-07-05 發(fā)布于江蘇

很多學(xué)嵌入式的同學(xué)是不是經(jīng)常被各種協(xié)議搞的暈頭轉(zhuǎn)向,都分不清是干嘛的?

今天華妹就給大家好好捋捋嵌入式常用的5大協(xié)議,全是干貨,話不多說(shuō),趕緊上車!

01

UART總線通信協(xié)議

1. 原理

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

文章圖片1

2. 波特率

今天主要講解的是串口異步通訊,異步通訊中由于沒有時(shí)鐘信號(hào),所以兩個(gè)通訊設(shè)備之間需要約定好波特率, 即每個(gè)碼元的長(zhǎng)度,以便對(duì)信號(hào)進(jìn)行解碼,上圖中用虛線分開的每一格就是代表一個(gè)碼元。常見的波特率為4800、9600、115200等。

3. 通訊的起始和停止信號(hào)

串口通訊的一個(gè)數(shù)據(jù)包從起始信號(hào)開始,直到停止信號(hào)結(jié)束。數(shù)據(jù)包的起始信號(hào)由一個(gè)邏輯0的數(shù)據(jù)位表示,而數(shù)據(jù)包的停止信號(hào)可由0.5、1、1.5或2個(gè)邏輯1的數(shù)據(jù)位表示,只要雙方約定一致即可。

4. 有效數(shù)據(jù)

在數(shù)據(jù)包的起始位之后緊接著的就是要傳輸?shù)闹黧w數(shù)據(jù)內(nèi)容,也稱為有效數(shù)據(jù),有效數(shù)據(jù)的長(zhǎng)度常被約定為5、6、7、8位長(zhǎng)。

5. 數(shù)據(jù)校驗(yàn)

在有效數(shù)據(jù)之后,有一個(gè)可選的數(shù)據(jù)校驗(yàn)位,由于數(shù)據(jù)通信相對(duì)更容易受到外部干擾導(dǎo)致傳輸數(shù)據(jù)出現(xiàn)偏差,可以在傳輸過(guò)程加上校驗(yàn)位來(lái)解決這個(gè)問題。校驗(yàn)方法有奇校驗(yàn)(odd)、偶校驗(yàn)(even)、0校驗(yàn)(space)、1校驗(yàn)(mark)以及無(wú)校驗(yàn)(noparity)。

  • 奇校驗(yàn)要求有效數(shù)據(jù)和校驗(yàn)位中'1'的個(gè)數(shù)為奇數(shù),比如一個(gè)8位長(zhǎng)的有效數(shù)據(jù)為:01101001,此時(shí)總共有4個(gè)'1',為達(dá)到奇校驗(yàn)效果,校驗(yàn)位為'1', 最后傳輸?shù)臄?shù)據(jù)將是8位的有效數(shù)據(jù)加上1位的校驗(yàn)位總共9位。
  • 偶校驗(yàn)與奇校驗(yàn)要求剛好相反,要求幀數(shù)據(jù)和校驗(yàn)位中'1'的個(gè)數(shù)為偶數(shù),比如數(shù)據(jù)幀:11001010,此時(shí)數(shù)據(jù)幀'1'的個(gè)數(shù)為4個(gè),所以偶校驗(yàn)位為'0'。
  • 0校驗(yàn)是不管有效數(shù)據(jù)中的內(nèi)容是什么,校驗(yàn)位總為'0'。
  • 1校驗(yàn)是校驗(yàn)位總為'1'。
  • 無(wú)校驗(yàn)的情況下,數(shù)據(jù)包中不包含校驗(yàn)位。

02

IIC總線通信協(xié)議

1. IIC總線簡(jiǎn)介

I2C是Inter-Integrated Circuit的簡(jiǎn)稱,讀作:I-squared-C。由飛利浦公司于1980年代提出,為了讓主板、嵌入式系統(tǒng)或手機(jī)用以連接低速周邊外部設(shè)備而發(fā)展。主要用途:SOC和周邊外設(shè)間的通信(如:EEPROM,電容觸摸芯片,各種Sensor等)。

2. 物理接口

I2C總線只使用兩條雙向漏極開路的信號(hào)線(串行數(shù)據(jù)線:SDA,及串行時(shí)鐘線:SCL),并利用電阻上拉。

  • SCL(Serial Clock):串行時(shí)鐘線,傳輸CLK信號(hào),一般是主設(shè)備向從設(shè)備提供;
  • SDA(Serial Data):串行數(shù)據(jù)線,傳輸通信數(shù)據(jù) I2C使用一個(gè)7bit的設(shè)備地址,一組總線最多和112個(gè)節(jié)點(diǎn)通信。最大通信數(shù)受限于地址空間及400pF的總線電容。

I2C總線廣泛應(yīng)用在EEPROM、實(shí)時(shí)時(shí)鐘、LCD及其他芯片的接口。

I2C允許相當(dāng)大的工作電壓范圍,典型的電壓基準(zhǔn)為:+3.3V或+5V

常見的I2C總線以傳輸速率的不同分為不同的模式:標(biāo)準(zhǔn)模式(100Kbit/s)、低速模式(10Kbit/s)、快速模式(400Kbit/s)、高速模式(3.4Mbit/s), 時(shí)鐘頻率可以被下降到零,即暫停通信。該總線是一種多主控總線,即可以在總線上放置多個(gè)主設(shè)備節(jié)點(diǎn),在停止位(P)發(fā)出后,即通訊結(jié)束后,主設(shè)備節(jié)點(diǎn)可以成為從設(shè)備節(jié)點(diǎn)。

主設(shè)備節(jié)點(diǎn):產(chǎn)生時(shí)鐘并發(fā)起通信的設(shè)備節(jié)點(diǎn)。

從設(shè)備節(jié)點(diǎn):接收時(shí)鐘并響應(yīng)主設(shè)備節(jié)點(diǎn)尋址的設(shè)備節(jié)點(diǎn)。

文章圖片2

(1) I2C通信雙方地位不對(duì)等,通信由主設(shè)備發(fā)起,并主導(dǎo)傳輸過(guò)程,從設(shè)備按I2C協(xié)議接收主設(shè)備發(fā)送的數(shù)據(jù),并及時(shí)給出響應(yīng)。

(2) 主設(shè)備、從設(shè)備由通信雙方?jīng)Q定(I2C協(xié)議本身無(wú)規(guī)定),既能當(dāng)主設(shè)備,也能當(dāng)從設(shè)備(需要軟件進(jìn)行配置)。

(3) 主設(shè)備負(fù)責(zé)調(diào)度總線,決定某一時(shí)刻和哪個(gè)從設(shè)備通信。同一時(shí)刻,I2C總線上只能有一對(duì)主設(shè)備、從設(shè)備通信。

(4) 每個(gè)I2C從設(shè)備在I2C總線通訊中有一個(gè)I2C從設(shè)備地址,該地址唯一,是從設(shè)備的固有屬性,通信中主設(shè)備通過(guò)從設(shè)備地址來(lái)找到從設(shè)備。

3. 總線狀態(tài)

空閑態(tài):沒有設(shè)備發(fā)生通信。

忙態(tài):其中一個(gè)從設(shè)備和主設(shè)備通信,I2C總線被占用,其他從設(shè)備處于等待狀態(tài)。

4. 通信協(xié)議

時(shí)序:在通信中時(shí)序是通信線上按時(shí)間順序發(fā)生的電平變化,及這些電平變化對(duì)通信的意義。

每個(gè)通信周期都由一個(gè)起始位開始通信,由一個(gè)結(jié)束位結(jié)束通信,中間部分是傳遞的數(shù)據(jù)。

4.1 起始位和停止位

I2C總線通訊由起始位開始通訊,結(jié)束位停止通訊,并釋放I2C總線。起始位和結(jié)束位都由主設(shè)備發(fā)出。

起始位(S):在SCL為高電平時(shí),SDA由高電平變?yōu)榈碗娖健?/span>

結(jié)束位(P):在SCL為高電平時(shí),SDA由低電平變?yōu)楦唠娖健?/span>

文章圖片3

4.2 數(shù)據(jù)格式與應(yīng)答

I2C數(shù)據(jù)以字節(jié)(即8bits)為單位傳輸,每個(gè)字節(jié)傳輸完后都會(huì)有一個(gè)ACK應(yīng)答信號(hào)。應(yīng)答信號(hào)的時(shí)鐘是由主設(shè)備產(chǎn)生的。

應(yīng)答(ACK):拉低SDA線,并在SCL為高電平期間保持SDA線為低電平。

非應(yīng)答(NOACK):不要拉低SDA線(此時(shí)SDA線為高電平),并在SCL為高電平期間保持SDA線為高電平。

在傳輸期間,如果從設(shè)備來(lái)不及處理主設(shè)備發(fā)送的數(shù)據(jù),從設(shè)備會(huì)保持SCL線為低電平,強(qiáng)迫主設(shè)備等待從設(shè)備釋放SCL線,直到從設(shè)備處理完后,釋放SCL線,接著進(jìn)行數(shù)據(jù)傳輸。

文章圖片4

5. 數(shù)據(jù)傳輸通訊

5.1 寫數(shù)據(jù)

開始數(shù)據(jù)傳輸后,先發(fā)送一個(gè)起始位(S),主設(shè)備發(fā)送一個(gè)地址數(shù)據(jù), 然后主設(shè)備釋放SDA線,并等待從設(shè)備的應(yīng)答信號(hào)(ACK)。每一個(gè)字節(jié)數(shù)據(jù)的傳輸都要跟一個(gè)應(yīng)答信號(hào)位。數(shù)據(jù)傳輸以停止位(P)結(jié)束,并且釋放I2C總線。

文章圖片5

5.2 讀數(shù)據(jù)

開始通訊時(shí),主設(shè)備先發(fā)送一個(gè)起始信號(hào)(S),主設(shè)備發(fā)送一個(gè)地址數(shù)據(jù), 然后主設(shè)備釋放SDA線,并等待從設(shè)備的應(yīng)答信號(hào)(ACK)。從設(shè)備應(yīng)答主設(shè)備后,主設(shè)備再發(fā)送要讀取的寄存器地址,從設(shè)備應(yīng)答主設(shè)備(ACK)。主設(shè)備再次發(fā)送起始信號(hào)(Sr),主設(shè)備發(fā)送設(shè)備地址(包含讀標(biāo)志),從設(shè)備應(yīng)答主設(shè)備,并將該寄存器的值發(fā)送給主設(shè)備。

文章圖片6

03

SPI總線通訊協(xié)議

1. 什么是SPI

SPI接口是Motorola首先提出的全雙工同步串行總線,采用主從模式(Master Slave)架構(gòu),支持多slave模式應(yīng)用。

在實(shí)際開發(fā)過(guò)程中,大多數(shù)采用單Master。多slave模式時(shí)鐘由Master控制,在時(shí)鐘移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后;也可以低位在前,高位在后。

SPI接口有2根單向數(shù)據(jù)線,為全雙工通信,目前應(yīng)用中的數(shù)據(jù)速率可達(dá)幾Mbps的水平。

2. SPI總線硬件連接

SPI四根信號(hào)線

  • 設(shè)備選擇線:NSS
  • 時(shí)鐘線:SCL
  • 串行輸出數(shù)據(jù)線:MOSI
  • 串行輸入數(shù)據(jù)線:MISO

M:master O:output S:slave I:input

(1) MOSI:主器件數(shù)據(jù)輸出(寫),從器件數(shù)據(jù)輸入(讀)

(2) MISO:主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出

(3) SCLK :時(shí)鐘信號(hào),由主器件產(chǎn)生

(4) /SS:從器件使能信號(hào),由主器件控制(片選線)

文章圖片7

3. SPI優(yōu)點(diǎn)

支持全雙工通信、通信簡(jiǎn)單、數(shù)據(jù)傳輸速率快。

4. SPI缺點(diǎn)

沒有指定的流控制、沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù),所以跟IIC總線協(xié)議比較在數(shù)據(jù),可靠性上有一定的缺陷。

5. 協(xié)議通信時(shí)序詳解

文章圖片8
  • 起始信號(hào): NSS信號(hào)線由高變低,是SPI通訊的起始信號(hào)。
  • 結(jié)束信號(hào):NSS信號(hào)由低變高,是SPI通訊的停止信號(hào)。
  • 數(shù)據(jù)傳輸:SPI使用MOSI及MISO信號(hào)線來(lái)傳輸數(shù)據(jù),使用SCK信號(hào)線進(jìn)行數(shù)據(jù)同步。MOSI及MISO數(shù)據(jù)線在SCK的每個(gè)時(shí)鐘周期傳輸一位數(shù)據(jù),且數(shù)據(jù)輸入輸出是同時(shí)進(jìn)行 的。SPI每次數(shù)據(jù)傳輸可以 8 位或 16 位為單位,每次傳輸?shù)膯挝粩?shù)不受限制。

6. SPI總線通信模式

文章圖片9
文章圖片10
文章圖片11

04

RS232總線描述

1. 概述

RS-232接口符合電子工業(yè)聯(lián)盟(EIA)建立的串行數(shù)據(jù)通信接口標(biāo)準(zhǔn)。原始編號(hào)是EIA-RS-232(簡(jiǎn)稱232,RS232),它廣泛用于計(jì)算機(jī)串行接口外設(shè)連接。連接電纜以及機(jī)械、電氣、信號(hào)和傳輸過(guò)程。RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。

2. 特性 

RS-232是現(xiàn)在主流的串行通信接口之一。由于RS232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):

(1) 接口的信號(hào)電平值較高,易損壞接口電路的芯片。RS232接口任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”為-3—-15V;邏輯“0”:+3—+15V,噪聲容限為2V。即要求接收器能識(shí)別高于+3V的信號(hào)作為邏輯“0”,低于-3V的信號(hào)作為邏輯“1”,TTL電平為5V為邏輯正,0為邏輯負(fù)。與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。

(2) 傳輸速率較低,在異步傳輸時(shí),比特率為20Kbps;因此在51CPLD開發(fā)板中,綜合程序波特率只能采用19200,也是這個(gè)原因。

(3) 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。

(4) 傳輸距離有限。最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在15米左右。

05

RS485概述

1. 場(chǎng)景

在要求通信距離為幾十米到上千米時(shí),廣泛采用RS-485串行總線,RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。RS-485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號(hào)加以控制。

2. RS485特點(diǎn)

RS-485用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號(hào)線。應(yīng)用RS-485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。針對(duì)RS-232-C的不足,新標(biāo)準(zhǔn)RS-485具有以下特點(diǎn)

(1) RS-485的電氣特性:邏輯“1”以兩線間的電壓差+2V~+6V表示,邏輯“0”以兩線間的電壓差-6V~-2V表示。接口信號(hào)電平比RS-232-C降低了,就不容易損壞接口電路芯片,且該電平與TTL電平兼容,刻方便與TTL電路連接。

(2) 數(shù)據(jù)最高傳輸速率為:10Mbps。

(3) RS-485接口采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干擾能力強(qiáng),即抗噪聲性能好。

(4) RS-485接口的最大傳輸距離標(biāo)準(zhǔn)值4000英尺,實(shí)際上可達(dá)3000米。

(5) RS-232-C接口在總線上只允許連接一個(gè)收發(fā)器,即單站能力;而RS-485接口在總線上只允許連接多達(dá)128個(gè)收發(fā)器,即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立設(shè)備網(wǎng)絡(luò)。

06

IIC總線和SPI總線對(duì)比

1. 相同點(diǎn)

均采用串行同步總線、都采用TTL電平、主從模式架構(gòu)。

2. 不同點(diǎn)

  • IIC總線為半雙工通信,因?yàn)镮IC總線只有一根SDA數(shù)據(jù)線。
  • SPI總線為全雙工通信,因?yàn)镾PI總線有兩個(gè)單向的數(shù)據(jù)線(MOSI和MISO)。
  • IIC總線有應(yīng)答信號(hào),SPI總線沒有應(yīng)答信號(hào)。
  • IIC總線通過(guò)尋址進(jìn)行選擇和哪一個(gè)從機(jī)進(jìn)行通信。
  • SPI總線通過(guò)片選線選擇和哪一個(gè)從機(jī)進(jìn)行通信,片選線向從機(jī)發(fā)送使能信號(hào)。
  • 比如說(shuō)有10個(gè)從機(jī)設(shè)備,需要10根片選線,比較浪費(fèi)硬件引腳資源。
  • IIC總線通過(guò)高低電平的變化進(jìn)行數(shù)據(jù)傳輸。
  • SPI總線邊沿觸發(fā),邊沿采樣。


07

RS232和RS484總線對(duì)比

工作模式:RS232 為全雙工,RS485 為半雙工。

傳輸方式:RS485和RS232只是物理協(xié)議的通信(即接口標(biāo)準(zhǔn)),RS485是差分傳輸方式,RS232是單端傳輸方式,但通信程序沒有太大區(qū)別

信號(hào)線:RS485接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號(hào)線。RS-232 口一般只使用 RXD、TXD、GND 三條線

抗干擾性:RS485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗噪聲干擾性好。RS232接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾

傳輸距離:RS485接口的最大傳輸距離標(biāo)準(zhǔn)值為1200米(9600bps時(shí)),實(shí)際上可達(dá)3000米。RS232傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50米,實(shí)際上也只能用在15米左右。

通信能力:RS485接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器,用戶可以利用單一的 RS485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。RS232只允許一對(duì)一通信

傳輸速率:RS232傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。RS485的數(shù)據(jù)最高傳輸速率為10Mbps。

電氣電平值:RS485的邏輯'1'以兩線間的電壓差為+(2-6)V 表示;邏輯'0'以兩線間的電壓差為-(2-6)V表示。在 RS232中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系,即:邏輯'1',-(5-15)V;邏輯'0 ' +(5- 15)V 。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多