色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 嵌入式物聯(lián)網(wǎng)常用的通信協(xié)議UART、RS-232、RS-422、RS-485、CAN、IIC、SPI

          嵌入式物聯(lián)網(wǎng)常用的通信協(xié)議UART、RS-232、RS-422、RS-485、CAN、IIC、SPI

          發(fā)布人:程序小鹿 時間:2022-03-12 來源:工程師 發(fā)布文章

          計算機與嵌入式系統(tǒng)領(lǐng)域的高速串行總線技術(shù)

          一、串口通信基礎(chǔ)知識

          1、常見的串行通信標準

          2、常見的電平信號及其電氣特性

          二、UART(通用異步收發(fā)器)協(xié)議

          1、UART消息幀格式

          三、RS-232、RS-422、RS-485通信協(xié)議

          1、RS-232協(xié)議

          2、RS-422協(xié)議

          2、RS-485協(xié)議

          四、CAN通信協(xié)議

          1、CAN總線具有以下主要特性:

          2、 CAN技術(shù)規(guī)范與標準

          3、CAN總線報文信號和網(wǎng)絡(luò)拓撲

          4.、CAN**通信幀**的介紹

          (1)數(shù)據(jù)幀

          (2)遙控幀

          (3)錯誤幀

          (4)過載幀

          (5)幀間隔

          五、I^2^C通信協(xié)議

          1、總線簡介

          2、IIC通信過程

          3、IIC典型時序

          六、SPI通信協(xié)議

          1、SPI總線的簡介

          2、SPI通信的過程

          一、串口通信基礎(chǔ)知識

          1、常見的串行通信標準

          目前常見串行通信接口標準有RS-232、RS-422、RS-485等。另外,SPI(串行外設(shè)接口)、I2C(內(nèi)置集成電路)和CNA(控制器局域網(wǎng))通信也屬于串口通信。

          2、常見的電平信號及其電氣特性

          TTL電平

          邏輯1 邏輯0

          輸入 >=2.0V <=0.8V

          輸出 >=2.4V <=0.4V

          噪音容限較低,約為0.4V,MCU芯片引腳都是TTL電平

          2. CMOS電平


          邏輯1 邏輯0

          輸入 >=0.7V <=0.3V

          輸出 >=0.8V <=0.1V

          噪音容限高于TTL電平,Vcc為供電電壓

          3. RS-232電平


          電平信號名稱 邏輯1 邏輯0

          RS-232 -15V ~ -3V 3V ~ 15V

          PC的COM口為RS-232電平

          4.USB電平


          電平信號名稱 邏輯1 邏輯0

          USB電平 (Vd+- Vd-)>= 200mV (Vd-- Vd+)>= 200mV

          采用差分電壓,4線制:Vcc、GND、D+、D-


          二、UART(通用異步收發(fā)器)協(xié)議

          是一種通用的串行、異步通信總線,該總線有兩條數(shù)據(jù)線,可以實現(xiàn)全雙工的發(fā)送和接收,在嵌入式系統(tǒng)中常用于主機與輔助設(shè)備之間的通信。


          1、UART消息幀格式



          空閑位:不進行傳輸數(shù)據(jù)時,默認為邏輯1,為高電平;

          起始位:先發(fā)出一個邏輯“0”,表示消息幀的開始;

          數(shù)據(jù)位:緊接著起始位之后,可由5~8位組成,通常傳輸8位即一個字節(jié)。先發(fā)送數(shù)據(jù)的低位,后發(fā)送數(shù)據(jù)的高位;

          奇偶校驗位:緊接著數(shù)據(jù)位后面(可有可無),使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),校驗數(shù)據(jù)傳輸是否正確;

          停止位:它是消息傳輸結(jié)束的標志,它可以是1位、1.5位、2位的高電平, 由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。

          波特率:是衡量數(shù)據(jù)傳輸速率的指標,表示每秒鐘傳輸?shù)奈粩?shù)。例如設(shè)置串口的波特率為9600,則表示是1s傳輸9600個bit的數(shù)據(jù),則傳送每個位的時間為 1s / 9600 ≈ 104us,從而區(qū)分消息幀中每個位傳輸?shù)臄?shù)據(jù);

          假如從A設(shè)備通過串口傳輸“Hi”給設(shè)備B,參數(shù)為:波特率9600,無校驗位,停止位1位

          查詢ASCLL表知道 ‘H’對應(yīng)的二進制表示 0100 1000,‘i’對應(yīng)的二進制表示 0110 1001,發(fā)送效果如下圖所示:


          設(shè)備A和設(shè)備B按照約定的波特率,設(shè)備A從start開始,每經(jīng)過104us向設(shè)備B發(fā)送一個bit,同時設(shè)備B每經(jīng)過104us向設(shè)備A接收一個bit的數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)的傳輸。

          缺點:UART一般直接使用TTL信號來表示0和1,但TTL信號抗干擾能力較差,數(shù)據(jù)在傳輸過程中很容易出錯;且TTL信號的通信距離也很短;


          三、RS-232、RS-422、RS-485通信協(xié)議

          UART只是對信號的時序進行了定義,而未定義接口的電氣特性。

          RS-232、RS-422和RS-485標準最初都是由美國電子工業(yè)協(xié)會制定并發(fā)布的。


          1、RS-232協(xié)議

          現(xiàn)在工業(yè)控制的RS-232接口一般只使用RXD、TXD、GND三條線,且PC機一般采用DB-9連接器;

          特性:

          工作方式:單端(非平衡);

          節(jié)點數(shù):點對點通訊(1收1發(fā));

          最大傳輸距離:50ft ( 50 * 0.3048 = 15.24m);

          最大傳輸速率:20kbit/s;

          連接方式:點對點(全雙工);

          電氣特性:-3V ~ -15V表示邏輯1,3V ~ 15V表示邏輯0;

          常用芯片有max232、SP232等

          缺點:通信距離短,速率低,而且只能點對點通信,無法組建多機通信系統(tǒng),且容易受外界電氣干擾導致信息傳輸錯誤。

          2、RS-422協(xié)議

          RS-422標準定義了一種平衡通信接口,改變了RS-232標準的單端通信的方式,總線上使用差分電壓進行信號傳輸。傳輸速率提高到10Mbit/s,傳輸距離長達4000ft=1219.2m(速率低于100kbit/s時),而且運行總線上最多連接10個接收器。


          特性:

          工作方式:差分(平衡);

          節(jié)點數(shù):點對多通訊(1發(fā)10收);

          最大傳輸距離:4000ft ( 4000 * 0.3048 = 1219.2m);

          最大傳輸速率:10Mbit/s;

          連接方式:一點對多點(四線制,全雙工);

          電氣特性:2V ~ 6V表示邏輯1,-2V ~ -6V表示邏輯0;

          缺點:連接的設(shè)備少,抗干擾能力不強,無法完全滿足工業(yè)需求。

          常用芯片有max232、SP232等

          2、RS-485協(xié)議

          RS-485標準運行連接多個收發(fā)器,即具有多站能力,增加了多點、雙向的通信能力。


          特性:

          工作方式:差分(平衡);

          節(jié)點數(shù):點對多通訊(1發(fā)32收);

          最大傳輸距離:4000ft ( 4000 * 0.3048 = 1219.2m);

          最大傳輸速率:10Mbit/s;

          連接方式:多點對多點(兩線制,半雙工);

          電氣特性:2V ~ 6V表示邏輯1,-2V ~ -6V表示邏輯0;

          常用芯片有max485、SP3072EEN等,以SP3072EEN收發(fā)器芯片的典型應(yīng)用電路如下


          一主多從效果圖:

          在RS-485總線網(wǎng)絡(luò)基礎(chǔ)下制定的Modbus應(yīng)用層通信協(xié)議可參考傳感網(wǎng)應(yīng)用開發(fā)(中級)網(wǎng)絡(luò)協(xié)議報文詳解


          四、CAN通信協(xié)議

          CAN(Control Area Network,控制器局域網(wǎng))由德國Bosch公司于1983年開發(fā)出來,最早被應(yīng)用于汽車內(nèi)部控制系統(tǒng)的監(jiān)測與執(zhí)行機構(gòu)間的數(shù)據(jù)通信,目前是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。


          1、CAN總線具有以下主要特性:

          數(shù)據(jù)傳輸距離遠(最遠10km);

          數(shù)據(jù)傳輸速率高(最高數(shù)據(jù)傳輸速率1Mbit/s);

          具備優(yōu)秀的仲裁機制;

          使用篩選器實現(xiàn)多地址的數(shù)據(jù)幀傳遞;

          借助遙控幀實現(xiàn)遠程數(shù)據(jù)請求;

          具備錯誤檢測與處理功能;

          具備數(shù)據(jù)自動重發(fā)功能;

          故障節(jié)點可自動脫離總線且不影響總線上其它節(jié)點的正常工作;

          2、 CAN技術(shù)規(guī)范與標準

          ISO 11898標準的CAN通信數(shù)據(jù)傳輸速率為125kbit/s~1Mbit/s,適合高速通信應(yīng)用場景;而ISO 11519標準的CAN通信數(shù)據(jù)傳輸速率為125kbit/s以下,適合低速通信應(yīng)用場景。

          CAN技術(shù)規(guī)范主要主要對OSI基本參考模型中的物理層(部分)、數(shù)據(jù)鏈路層和傳輸層(部分)進行了定義。

          3、CAN總線報文信號和網(wǎng)絡(luò)拓撲

          ISO 11898在靜態(tài)時兩條信號線上電平電壓均為2.5V左右(電位差0V),此時的狀態(tài)表示1(稱為“隱性電平”狀態(tài)),當CAN_H上的電壓值為3.5V且CAN_L上的電壓值為1.5V時,兩線的電位差為2V,此時的狀態(tài)表示邏輯0(稱為“顯性電平”狀態(tài))。

          ISO 11519標準在靜態(tài)時,當CAN_H上的電壓值為4.0V且CAN_L上的電壓值為1.0V時,兩線的電位差為3.0V,,此時的狀態(tài)表示0(稱為“顯性電平”狀態(tài)),當CAN_H上的電壓值為1.75V且CAN_L上的電壓值為3.25V時,兩線的電位差為-1.50V,此時的狀態(tài)表示邏輯1(稱為“隱性電平”狀態(tài))。


          CAN總線網(wǎng)絡(luò)拓撲圖如下:

          高速CAN總線ISO 11898網(wǎng)絡(luò)被應(yīng)用在汽車動力與傳動系統(tǒng),它是閉環(huán)網(wǎng)絡(luò),總線最大長度是40m,求端各有一個120Ω的電阻。

          低速CAN總線ISO 11519網(wǎng)絡(luò)被應(yīng)用在車身系統(tǒng),它的兩根總線是獨立的,不形成閉環(huán),要求每根總線上各串聯(lián)一個2.2kΩ的電阻。

          傳輸介質(zhì)可用雙絞線、同軸電纜和光纖。


          4.、CAN通信幀的介紹

          (1)數(shù)據(jù)幀

          用途:用于發(fā)送單元向接收單元傳送數(shù)據(jù)


          數(shù)據(jù)幀由7個段構(gòu)成

          幀起始,表示數(shù)據(jù)幀和遠程幀的起始,他僅由一個“顯性電平”位組成。

          仲裁段,是表示幀優(yōu)先級的段。標準幀的仲裁段由11bit的標識符ID和RTR(遠程發(fā)送請求)位組成;擴展幀的仲裁段由29bit的標識符ID、SRR(替代遠程請求位)、IDE位和RTR為構(gòu)成。

          控制段,是表示數(shù)據(jù)的字節(jié)數(shù)和保留位的段,標準幀與擴展幀的控制段格式不同。

          數(shù)據(jù)段,用于承載數(shù)據(jù)的內(nèi)容,它包含0~8B的數(shù)據(jù),從MSB(最高有效位)開始輸出。

          CRC段,是用于檢查幀傳輸是否錯誤的段,它由15bit的CRC序列和1bit的CRC界定符(用于分隔)構(gòu)成。

          ACK段,是用于確認接收是否正確的段,它由ACK槽和ACK界定符(用于分隔)構(gòu)成,長度為2bit

          幀結(jié)束,用于表示數(shù)據(jù)幀的結(jié)束,它由7bit的隱性位構(gòu)成。


          (2)遙控幀

          用途:用于接收單元向具有相同ID的發(fā)送單元請求數(shù)據(jù)。



          (3)錯誤幀

          用途:用于當檢測出錯誤時向其他單元通知錯誤。




          (4)過載幀

          用途:用于接收單元通知發(fā)送單元其尚未做好接收準備。



          (5)幀間隔

          用途:用于分隔數(shù)據(jù)幀和遙控幀的幀。

          幀間隔的構(gòu)成元素有三個:

          一是間隔,它由3bit的隱性位構(gòu)成。

          二是總線空閑,它由隱性電平構(gòu)成,且無長度限制。只有在總線處于空閑狀態(tài)下,要發(fā)送的單元才開始訪問總線。

          三是延遲傳送,它由8bit的隱性位構(gòu)成。



          五、I2C通信協(xié)議

          1、總線簡介

          IIC(Inter-Integrated Circuit)其實是IICBus簡稱,所以中文應(yīng)該叫集成電路總線,它是一種串行通信總線,使用多主從架構(gòu),由飛利浦公司在1980年代為了讓主板、嵌入式系統(tǒng)或手機用以連接低速周邊設(shè)備而發(fā)展;IIC總線有兩根雙向的信號線,一根數(shù)據(jù)線SDA用于收發(fā)數(shù)據(jù),一根時鐘線SCL用于通信雙方時鐘的同步。



          2、IIC通信過程

          主機發(fā)送起始信號啟用總線;

          主機發(fā)送一個字節(jié)數(shù)據(jù)指明從機地址和確定后續(xù)主機從機的傳遞方向;

          IIC總線上各從機判斷主機發(fā)送的從機地址是否是自己,匹配的從機發(fā)送應(yīng)答信號回應(yīng)主機;

          發(fā)送器發(fā)送一個字節(jié)數(shù)據(jù);

          接收器發(fā)送應(yīng)答信號回應(yīng)發(fā)送器;

          …(循環(huán)重復步驟4、5);

          最后通信完成后主機發(fā)送停止信號釋放總線;

          IIC總線發(fā)送和停止時序圖:


          IIC總線發(fā)送數(shù)據(jù)時序圖:



          3、IIC典型時序

          主機向從機發(fā)送數(shù)據(jù)

          從機向主機發(fā)送數(shù)據(jù)


          3.主機先向從機發(fā)送數(shù)據(jù),然后從機再向主機發(fā)送數(shù)據(jù)


          六、SPI通信協(xié)議

          1、SPI總線的簡介

          SPI是由摩托羅拉公司開發(fā)的高速全雙工同步串行通信協(xié)議(一主多從)。 有點類似IIC,但又與IIC選通從設(shè)備的方式不同,IIC是通過發(fā)送從機地址來選通從機,而SPI是通過拉低連接到從機的NSS引腳對從機進行選通的。


          SPI一般應(yīng)用由四個引腳組成(一主多從):


          SCLK(Serial Clock):串行時鐘,由主機發(fā)出;

          MOSI(Maser Output,Slave Input):主機輸出從機輸入信號,由主機發(fā)出;

          MISO(Master Input,Slave Output):主機輸入從機輸出信號,由從機發(fā)出;

          NSS(Slave Selected):選擇信號,由主機發(fā)出,一般是低電位有效。

          SPI主從連接如圖所示:


          2、SPI通信的過程

          SPI是串行通信協(xié)議,但是主機占用的引腳明顯比IIC和UART多,而主機引腳數(shù)會隨著從機數(shù)量增多而增多。主機在通過MOSI數(shù)據(jù)線發(fā)送數(shù)據(jù)的同時,從機也會通過MISO將數(shù)據(jù)傳輸給主機(收發(fā)同時進行),它們以虛擬似緩形拓撲連接。數(shù)據(jù)通常先移出最高位,在時鐘邊沿,主機和從機均移出一位,然后在傳輸線上輸出給對方(改變數(shù)據(jù))。在下一個時鐘沿,主從設(shè)備的接收器都從傳輸線接受該位,并設(shè)置為移位寄存器的新的最低有效位(采樣數(shù)據(jù))。在完成這樣一個移出一移入的周期后,主機和從機就交換了寄存器中的一位,傳輸可能會持續(xù)任意數(shù)量的時鐘周期。傳輸完成后,主設(shè)備會停止時鐘信號,并拉高NSS選通線。


          圖片無法轉(zhuǎn)載,詳情可到https://blog.csdn.net/a6662580/article/details/122601481查看


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。




          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉