


動圖來源:www.parlezvoustech.com
1、常見的硬件通信協議?
UART (Universal Asynchronous Receiver Transmitter):
一種異步串行通信協議,不需要時鐘信號,常用于簡單的點對點通信。
SPI (Serial Peripheral Interface):
一種同步串行通信協議,通常用于微控制器與傳感器、存儲設備等外部設備之間的高速通信。
包含一個主設備和一個或多個從設備,通過時鐘信號同步數據傳輸。
I2C (Inter-Integrated Circuit):
一種同步多主多從串行通信協議,常用于低速設備間的短距離通信。
使用兩根信號線(SDA和SCL)進行數據傳輸和時鐘同步。
RS-232:
一種早期的串行通信標準,通常用于計算機與外部設備(如調制解調器和打印機)之間的連接。
使用單端信號傳輸,支持較長的傳輸距離。
RS-485:
一種改進的串行通信標準,適用于多點通信系統,支持更長的傳輸距離和更高的數據速率。
使用差分信號傳輸,提高抗干擾能力。
PCI (Peripheral Component Interconnect ):
一種高速串行計算機擴展總線標準,廣泛用于計算機內部的各種組件之間(如顯卡、存儲設備)的連接。
提供較高的數據傳輸速率和低延遲。
ATA/IDE (Advanced Technology Attachment/Integrated Drive Electronics):
一種早期的硬盤驅動器接口標準,使用并行數據傳輸方式。
SATA (Serial ATA):
ATA接口的串行版本,廣泛用于連接硬盤驅動器和SSD,具有更高的數據傳輸速率。
Bluetooth:
一種短距離無線通信協議,常用于移動設備、計算機和外圍設備之間的數據傳輸。
Wi-Fi (Wireless Fidelity):
一種常用的無線局域網(WLAN)技術,支持設備之間的無線數據傳輸。
Zigbee:
一種低功耗、低數據速率的無線通信協議,常用于物聯網(IoT)設備之間的通信。
NFC (Near Field Communication):
一種短距離無線通信技術,常用于移動支付、訪問控制等應用。
Modbus:
一種廣泛應用于工業自動化系統的串行通信協議,支持主從通信模式。
CAN (Controller Area Network):
一種用于汽車和工業自動化中的串行通信協議,支持多主模式和高可靠性數據傳輸。
PROFINET:
一種基于以太網的工業通信協議,廣泛應用于工業自動化和控制系統。
USB (Universal Serial Bus):
一種廣泛應用于計算機和外部設備之間的通用串行通信協議,支持熱插拔和即插即用。
HDMI (High-Definition Multimedia Interface):
一種數字視頻和音頻傳輸標準,廣泛用于高清電視、顯示器和其他多媒體設備。
Ethernet:
一種用于局域網(LAN)的有線通信標準,支持高速數據傳輸和多點通信。
2、同步通信和異步通信?
同步和異步通信是兩種不同的數據傳輸方式,主要區別在于對時鐘信號的使用。
特點:
共享時鐘信號:發送端和接收端共享一個時鐘信號,用于同步數據傳輸。
數據同步:每個數據位的傳輸都由時鐘信號引導,接收端根據時鐘信號確定數據讀取時刻。
優點:
高效傳輸:由于時鐘同步,數據傳輸速率較高。
可靠性強:時鐘信號使數據的接收和發送更加精確。
缺點:
復雜性:需要額外的時鐘線,電路設計復雜。
距離限制:時鐘信號的準確性可能會隨著距離增加而降低。
應用場景:
SPI、I2C(雖然I2C也支持異步特性,但其時鐘線用于同步)。
特點:
無共享時鐘:發送端和接收端不共享時鐘信號,而是使用起始位和停止位來標識數據幀。
自包含時序:每個數據幀通過自身的起始和停止信號進行同步。
優點:
簡單性:無需時鐘線,減小了硬件復雜度。
靈活性:適合低速、長距離通信。
缺點:
效率稍低:由于需要添加起始和停止位,實際數據傳輸速率可能降低。
誤差累積:長時間傳輸可能出現同步誤差。
應用場景:
UART、RS-232。
同步通信適用于需要高效、高速數據傳輸的場景,但通常需要額外的硬件支持。
異步通信適合簡單低速應用,易于實現和調試。
3、UART串口通信?
UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一種用于串行通信的硬件設備。UART用于將數據串行地傳輸和接收,廣泛應用于計算機與外圍設備之間的數據通信。
異步通信: 沒有時鐘信號,發送方和接收方必須約定好波特率(傳輸速率)。
波特率: 每秒傳輸的位數,一般有9600、115200等常見波特率。
數據幀結構: 包括開始位、數據位、奇偶校驗位(可選)和停止位。

全雙工: 可以同時進行發送和接收(兩個獨立的通道)。
半雙工: 發送和接收不能同時進行。
單工: 只能單方向傳輸數據。
硬件實現: 通過MCU或專用的UART芯片(如MAX232)實現。
軟件實現: 通過軟件模擬UART通信,適用于不具備硬件UART模塊的系統。
嵌入式系統: 如單片機與傳感器、模塊之間的通信。
計算機外設: 如與鼠標、鍵盤、調制解調器等的連接。
調試和編程: 通過串口調試嵌入式設備或下載程序。
4、IIC通信?
I2C(Inter-Integrated Circuit)是一種常用的串行通信協議,設計用于短距離互連低速設備。由飛利浦公司(現NXP)在20世紀80年代開發,I2C現在廣泛應用于嵌入式系統中,用于連接微控制器、傳感器、顯示器和其他外圍設備。


I2C是一種多主從架構的雙線串行總線系統,由主設備和從設備組成。通信通過兩條線進行:
SCL(Serial Clock Line): 時鐘線,由主設備生成時鐘信號。
SDA(Serial Data Line): 數據線,用于傳輸數據。
I2C使用7位或10位地址進行設備尋址,傳輸數據以字節為單位,具體傳輸步驟如下:
起始條件(Start condition):主設備拉低SDA線,然后拉低SCL線,表示通信的開始。
地址傳輸:主設備發送從設備的地址,并指示讀/寫操作。
數據傳輸:主從設備之間的數據傳輸。每個字節后面都有一個確認位(ACK/NACK)。
停止條件(Stop condition):主設備拉高SCL線,然后拉高SDA線,表示通信的結束。
每個I2C從設備都有唯一的7位或10位地址。7位地址通常使用更廣泛,實際傳輸時,地址會左移一位,最右邊一位表示讀/寫操作(0表示寫,1表示讀)。
開始條件(Start Condition): 主設備將SDA從高電平拉到低電平,同時SCL保持高電平。
停止條件(Stop Condition): SCL為高電平時,SDA從低電平拉到高電平。
字節數據傳輸: 每傳輸一個字節數據后,接收方需發送一個確認位(ACK)。
讀/寫操作: 主設備發送設備地址的同時緊接著一個讀/寫位,0表示寫,1表示讀。
簡單的硬件接口:只需兩根線即可實現通信。
多主從架構:允許多個主設備和從設備共用一條總線。
靈活性:支持多種設備共同使用,且設備可以熱插拔。
速率較低:標準模式下最大速率為100kHz,快速模式為400kHz,更高的速率(高達5MHz)需要特殊的高速度模式。
距離受限:通常適用于PCB內部或短距離通信。
總線競爭:總線空閑時,多個主設備可能會嘗試同時啟動通信。
5、SPI通信?


6、RS-232外部通信?
RS-232(Recommended Standard 232)是一種串行通信標準,最初由EIA(Electronic Industries Association)在20世紀60年代制定。它廣泛用于計算機與外圍設備(如調制解調器、打印機和工業設備)之間的通信。盡管RS-232在現代消費電子產品中使用較少,但在工業自動化和某些專業設備中仍然非常重要。
RS-232為異步串行、全雙工通信,由電子工業協會(EIA)制定,是個人計算機上的通訊接口之一,通常以9個引腳(DB-9)出現,傳輸距離通常十幾米。
RS-232接口定義了多種信號線,其中最常用的是:
TXD(Transmit Data): 發送數據線。
RXD(Receive Data): 接收數據線。
GND(Ground): 地線。
RTS(Request to Send): 請求發送。
CTS(Clear to Send): 清除發送。
DTR(Data Terminal Ready): 數據終端準備好。
DSR(Data Set Ready): 數據集準備好。
DCD(Data Carrier Detect): 數據載波檢測。
RI(Ring Indicator): 振鈴指示。
RS-232定義的信號電壓如下(負邏輯):
邏輯1(標志位): -3V到-15V。
邏輯0(空閑位): +3V到+15V。
任何在-3V到+3V之間的電平都被視為不確定狀態。
RS-232使用異步通信,沒有時鐘信號。數據傳輸通過開始位、數據位、可選的校驗位和停止位構成的數據幀進行:
起始位: 通常為1位,表示數據傳輸的開始,邏輯低電平。
數據位: 通常為5到8位,是實際傳輸的數據。
校驗位: 可選,用于錯誤檢測,一般有奇校驗和偶校驗。
停止位: 通常為1或2位,表示一幀數據的結束,邏輯高電平。
RS-232的波特率(傳輸速率)可以從300bps到115200bps不等,典型值有9600、19200、38400、57600和115200bps。
RS-232廣泛應用于:
計算機與調制解調器: 老式撥號上網。
工業自動化設備: PLC、傳感器和控制器之間的通信。
嵌入式系統: 用于調試和通信。
醫療設備: 如數據采集和監控設備。

7、RS485通信

RS-485是一種用于多點、差分信號傳輸的串行通信標準,廣泛應用于工業自動化、樓宇自動化和其他需要可靠長距離數據傳輸的應用中。與RS-232相比,RS-485具有更強的抗干擾能力和更長的傳輸距離。
RS-485使用差分信號傳輸,它通過兩根線(A和B)來傳輸數據。差分信號的優勢在于:
抗干擾能力強:由于接收端檢測的是兩根線之間的電壓差,而不是單端電壓,所以對噪聲有更好的抵抗力。
傳輸距離長:典型的傳輸距離可以超過1200米。
RS-485支持多點通信,即多個設備可以連接在同一總線上,常見的配置是主從模式。一個RS-485總線上可以連接多達32個設備,使用擴展器可以連接更多設備。
邏輯1:A線電壓低于B線電壓,通常兩線間的電壓差為+(2~6)V。
邏輯0:A線電壓高于B線電壓,通常兩線間的電壓差為-(2~6)V。
對于驅動器(發送器),邏輯1(正)是A>B, AB之間電壓為+2~+6V,而邏輯0(負)是A
而對于接收器,則邏輯1(正)則是B>A,BA之間的電壓不小于200mV,邏輯0則是A>B,BA之間的電壓小于-200mv,即正負邏輯,電壓絕對值都大于200mv。
數據只能在一個方向傳輸,必須通過協議或硬件控制來實現發送和接收的切換。
常見連接:兩根差分線(A和B),一根地線(GND)。
數據可以同時在兩個方向傳輸,需要四根線(兩對差分線)。
常見連接:四根差分線(A、B、Y、Z),一根地線(GND)。
RS-485廣泛應用于需要長距離、可靠傳輸的場景,如:
工業自動化:PLC、傳感器、執行器之間的通信。
樓宇自動化:HVAC系統、門禁控制、照明控制。
串行設備互連:例如Modbus協議下的設備通信。
遠程數據采集:如SCADA系統中的數據采集。
8、Modbus協議
9、CAN總線
