楠木軒

各種總線協議

由 費玉榮 發佈於 科技

各種總線協議:

現場總線(如: Foundation Fieldbus(FF)、HART、Profibus PA、Profitbus DP、CANopen、Modbus、 ASI、I0-Link)

工業以太(如: Profinet、 EtherCAT、 SERCOSII、Powerlink、 EPA、Modbus TCP)

無線總線(如: WirelessHART、ISA100.11a、 WIA-PA、WISA、WIA-FA、IO-Link wireless)

WLAN (如: Wi-Fi, ZigBee、 Bluetooth)

蜂窩移動(如: 4G/LTE、 5G、NB-IoT、 LoRA)

1.SCI(通用異步收發器)

兩線制,全雙工,內部時鐘提供速率,需要UART發送器接收器,兩線,一根用於發送,一根用於接收。

SCI是包括UART的,UART是通信協議,SCI是接口;SCI用於串行通信,如RS422,RS485,RS232;

補充:關於RS422,RS485,RS232

RS232:全雙工,單站(只能掛一個收發器),波特率20Kbps,電平是負邏輯,-15~-3V是邏輯1,對應的正的表示0,一般來説處理兩線外還需要一根地線;

RS422:全雙工,四線制,差分信號,抗干擾升級,邏輯0和邏輯1用電平差判斷;

RS485:兩線,半雙工,最多可掛在128個收發器,最大速率10Mbps,差分,邏輯1差分為+2~+6(電壓降低避免損壞芯片),距離可達到3000m

2.I2C

IIC最大的優勢在於通過[開漏輸出]和[上拉電阻兩個物理特性簡化了協議整體的設計和實現]

兩線制長總線,半雙工,用於連接微控制器和外設,由數據線SDA和SCL構成,正常速度為100kbits,高速IIC總線一般可達400kbps,多為半雙工通信,多主機I2C總線系統需要將SDA和SCL兩根線上拉電阻拉高。

上拉電阻:(兩個連接到總線VCC的上拉電阻)因為開漏輸出的特性,所以需要上拉電阻來提供高電平,當輸出端輸出高阻態時並且沒有其它設備拉低總線時,總線被外部上拉電阻拉高,呈現高電平狀態;(上拉電阻設涉及到通信速率和功耗的取捨,上拉電阻越大,信號上升時間越長,速率越低,阻值過小,低電平時功耗大,此外,電容也會影響上升時間I2C總線電容400pf限制)

開漏輸出:開漏輸出為低電平和高阻態兩個狀態,使得總線只受到輸出低電平的影響,從而實現線與(當總線上只要有一個設備輸出低電平,整條總線便處於低電平狀態,此時總線被稱為佔用轉態)的功能】;

程序設計時需要注意發送結束後要清除SCLK,否則設備就會認為還沒有到響應結束,從而影響下一次開始時鐘;

空閒狀態:SDA和SCL兩條信號同時處於高電平時,總線為空閒狀態;

開始信號:SCL為高,SDA高到低;

結束信號:SCL為高,SDA低到高;

3.SPI

串行外設設備接口,高速(Mbits級別)可以達到30Mbits,全雙工,同步的總線通信,四線制(MISO,MOSI,SCLK,CS-沒有多設備的時刻可以不需要),主要應用在EEPROM,FLASH,時鐘,AD轉換,數字信號處理和信號解碼器之間;

4.CAN總線

雙線差分信號;(1Mbits

多主站結構(協議對點的數量沒有限制,正常最多110個);

每個報文的內容通過標識符辨別,網絡中唯一;性

顯性電平為邏輯0,因為線與的機制,0的時候表示了總線處於非空閒的狀態,顯性位覆蓋隱性位;

NRZ編碼方式-保證相同帶寬的情況下,NRZ包含的信息量更大;

此圖上為高速CAN(500k),下為低速容錯CAN(125k);

高速CAN的容錯性TJA1040:CAN_L對GND可以短路;

低速容錯CANTJA1054:CAN_H和CAN_L可以分別開路短路;

?關於為什麼汽車控制器很少有1M的CAN,從成本角度考慮,CAN收發器的成本會上升,此外500K足夠使用了;

標準幀11位ID,擴展幀29位ID;

首位是SOF為一個顯性位,邏輯0,用於數據同步;

DLC:數據長度碼;

ACK:為了確保報文被至少一個節點正確接收,接收成功後置0,原本為1,回讀為0後,確認被接收;

EOF:7干擾連續隱性位,表示數據結束,節點在檢測到11個連續的隱性位後認為總線空閒;

數據鏈路層:

回讀機制:總線空閒發送,發送過程中回讀,判斷髮送位和回讀位是否一致,即檢測是否有別的節點發報文;

線與優先級:ID越小優先級越高;

非破壞性仲裁:並行的發送變成了串行的發送,這樣的機制存在的一是一是因為在A優先級高先發送後,BCD可能會同時檢測發送,此時需要檢測排隊;

接收多幀報文:過濾器-過濾到不要的ID;屏蔽-設置是否生效(不生效的位置,ID可變,可以檢測多幀)

NRZ編碼,存儲量更大,但是邊沿變化少,所以引入位填充;

LIN總線:

6位ID;單主節點,多從節點,最多16個節點;(基於UART/SCI接口,節省成本)

20Kbit/s;

進度表:規定幀ID的傳輸次序;規定幀時隙;