你有沒有遇到過這樣的情況:兩個芯片機明明“心有靈犀”,結果一通電聊天就“雞同鴨講”?
不是它們太笨,而是沒找對“說話方式”。
在電子世界里,設備之間的溝通也講究“音量大小”和“口音標準”。最常見的串口通信就像兩個人在耳邊悄悄話輕聲細語(TTL電平),可惜聲音傳不遠,打個噴嚏都能聽錯。于是,人們發明了“擴音器”——RS232,嗓門一提,十幾米外也能喊話清晰。可要是到了工廠這種又吵又遠的地兒,光靠吼也不行了,那就得上“對講機系統”——RS485,不僅抗干擾、傳得遠,還能一群人組隊群聊。
今天,咱們就來聊聊這三位“通信兄弟”:低調的TTL、中氣十足的RS232,和工業硬漢RS485,看看它們到底是怎么“說人話”(或者“說電平”)的。
01
串口通訊:
最基礎的“芯片對話”
串口通訊(Serial Communication)是一種數據一位一位傳輸的通信方式。它只需要很少的引腳(通常是兩根線:發送 TX 和接收 RX),就能在兩個設備之間傳遞信息。
(本文圖片來自愛上半導體)
02
串口通訊的基本要素:
幀格式與波特率
串口通訊是芯片間信號傳輸的基礎方式,必須事先約定好規則,核心是約定幀格式和波特率:
(1) 幀格式(Frame Format)
標準幀格式含10位:1位起始位(低電平)+8位數據位(1字節=256種信息)+1位停止位(高電平),也有7位/5位數據位的變種。
這是數據打包的方式。最常見的串口幀格式是 10位:
注意:其他格式也存在,比如 7 數據位 + 1 停止位等,但核心思想一致。
注意:窗口通信發送端與接收端的幀格式與波特率都要相同,否則會出現亂碼問題
(2) 波特率(Baud Rate)
波特率:1秒之內能夠傳輸的高低電平個數。
例如 9600 波特率:每秒可傳 9600 個高低電平信號。
雙方必須使用相同的波特率,否則會“聽不懂”。
03
串口使用的電平標準:TTL邏輯
原始的串口通訊使用的是 TTL 電平(Transistor-Transistor Logic),由芯片直接輸出: