波特率≠真實速度!
這幾個概念確實容易混淆,但它們描述的是通信過程中不同層面的速率指標(biāo)。讓我們一起來理清楚它們的區(qū)別和聯(lián)系↓
主要區(qū)別解析
比特率 (Bit Rate):
指每秒傳輸?shù)亩M(jìn)制比特數(shù)量。
單位為 bps (Bits Per Second)。常用單位包括 Kbps、Mbps、Gbps。
比特率越高,每秒傳輸?shù)脑紨?shù)據(jù)量就越大。
核心:衡量原始信息(比特)傳輸?shù)乃俾省?/p>
波特率 (Baud Rate):
指每秒傳輸?shù)?a target="_blank">信號碼元 (Symbol) 數(shù)量。
單位為 波特 (Baud)。
一個碼元是攜帶數(shù)據(jù)信息的基本信號單元(例如,特定的電壓電平、相位或頻率狀態(tài))。
波特率反映的是物理層信號狀態(tài)變化的速率。
關(guān)鍵點: 一個碼元可以攜帶一個或多個比特的信息(取決于調(diào)制技術(shù))。波特率 ≠ 比特率。
傳輸速率 (Transmission Rate / Data Rate):
這是一個通用術(shù)語,通常指比特率,即每秒傳輸?shù)挠行畔⒈忍財?shù)。
在更精確的上下文中,它也可以指考慮了通信協(xié)議開銷(如幀頭、校驗碼、確認(rèn)信號等)后,用戶實際可用的有效數(shù)據(jù)吞吐量。這個值通常低于原始的比特率。
通信速度 (Communication Speed):
這是一個非常寬泛且口語化的術(shù)語,泛指數(shù)據(jù)傳輸?shù)目炻?/strong>其具體含義高度依賴上下文:可能指波特率 (例如,“RS-232 接口的通信速度設(shè)置為 9600 Baud”)。通常指比特率 (例如,“以太網(wǎng)的通信速度是 100 Mbps”)。
有時指用戶感知到的有效傳輸速率 (例如,“下載文件時的通信速度是 10 MB/s”)。
在特定接口規(guī)范中,也可能指其時鐘頻率 (例如,“I2C 標(biāo)準(zhǔn)模式通信速度為 100 kHz” 指的是時鐘頻率,其比特率低于此值)。
比如在以下方案中無線通訊終端的通信速度在50mS,這里指的就是有效傳輸速率 。
以我們常用的I2C場景為例,速率400KHz;比特率I2C的比特率是400K,因為I2C的每個周期指傳輸一個數(shù)據(jù)(在SCL穩(wěn)定期間讀取SDA上的數(shù)據(jù));波特率I2C由屬于NRZ編碼,1符號=1比特,所以比特率=波特率,I2C的波特率=400K;傳輸速度I2C的數(shù)據(jù)包為:1個起始位 + 7位地址 + 1位讀寫標(biāo)志 + 1位ACK + 8位數(shù)據(jù) + 1位ACK + 停止位(不占位)=19位,也就是19位中只有8為數(shù)據(jù)位,所以速率:8/19*400K=168Kbit/s(約21KB/s);通信速度I2C的的CLK頻率是400K,這個就是I2C的通信速度。
再以常用的串口波特率115200為例:
波特率 (Baud Rate):
波特率設(shè)置為 115200 Baud,表示信號每秒變化 115200 次,即每秒傳輸 115200 個碼元 (Symbol)。
比特率 (Bit Rate):
在標(biāo)準(zhǔn)的異步串行通信(如UART)中,通常采用 NRZ (Non-Return-to-Zero) 編碼。在這種編碼下,一個碼元代表一個比特 (1 Symbol = 1 bit)。
因此,波特率115200 Baud 等同于比特率 115200 bps (Bits Per Second)。
有效數(shù)據(jù)傳輸速率 (Effective Data Rate / Throughput):
幀結(jié)構(gòu)變?yōu)椋浩鹗嘉?(1) + 數(shù)據(jù)位 (8) + 奇偶校驗位 (1) + 停止位 (1) = 11個比特位。
有效數(shù)據(jù)傳輸速率:115200 bps / 11 bits/byte = 10472.73 Bytes/s ≈ 10472.73 / 1024 ≈ 10.23 KB/s。
原始比特率 / 每字節(jié)總比特數(shù) = 115200 bps / 10 bits/byte = 11520 Bytes/s。
換算為KB/s (1 KB = 1024 Bytes):11520 Bytes/s / 1024 ≈ 11.25 KB/s。
1個起始位 (Start bit) + 8個數(shù)據(jù)位 (Data bits) + 1個停止位 (Stop bit) = 10個比特位。
實際的有效數(shù)據(jù)吞吐量需要考慮幀結(jié)構(gòu)帶來的協(xié)議開銷。以一個典型的無校驗數(shù)據(jù)幀為例:
其中,只有8個數(shù)據(jù)位承載有效信息。因此,傳輸一個字節(jié)(8位有效數(shù)據(jù))需要消耗10個比特的傳輸時間。
有效數(shù)據(jù)傳輸速率計算:
如果啟用奇偶校驗位 (Parity bit):
幀結(jié)構(gòu)變?yōu)椋浩鹗嘉?(1) + 數(shù)據(jù)位 (8) + 奇偶校驗位 (1) + 停止位 (1) = 11個比特位。
有效數(shù)據(jù)傳輸速率:115200 bps / 11 bits/byte = 10472.73 Bytes/s ≈ 10472.73 / 1024 ≈ 10.23 KB/s。
(波特率: 想象成卡車在高速公路上進(jìn)出收費站的頻率。每個符號攜帶的比特數(shù): 想象成每輛卡車裝載的貨物箱數(shù)。
比特率: 就是每秒通過收費站的總貨物箱數(shù)(車次/秒 × 箱數(shù)/車次 = 箱數(shù)/秒)。這就是“傳輸速率”的核心。
通信速度: 貨物最終送到你倉庫的速度。這受到收費站效率(協(xié)議開銷)、交通狀況(網(wǎng)絡(luò)擁塞)、倉庫卸貨速度(接收端處理能力)等影響,可能比收費站放行的總箱數(shù)(比特率)要慢一些。)
總結(jié)與關(guān)鍵點
波特率是物理信號變化的速率 (Symbol Rate)。
在NRZ編碼的串口通信中,波特率 = 比特率 (bps)。
用戶實際可用的數(shù)據(jù)傳輸速率 (有效吞吐量) 遠(yuǎn)低于波特率/比特率,必須根據(jù)具體的幀格式(起始位、數(shù)據(jù)位、校驗位、停止位的數(shù)量)來計算。
上述計算僅討論了二進(jìn)制數(shù)據(jù)(每個數(shù)據(jù)位代表0或1)在無額外編碼(如Manchester)和理想信道(無錯誤、無流控延遲)下的理論最大值。 實際應(yīng)用中,還需考慮以下因素:
1.協(xié)議開銷: 更復(fù)雜的協(xié)議(如Modbus RTU over UART)會添加地址、功能碼、CRC校驗等額外字段,進(jìn)一步降低有效吞吐量。
2.流控機制: RTS/CTS 或 XON/XOFF 流控引入的握手延遲。
3.錯誤重傳: 數(shù)據(jù)出錯導(dǎo)致的重復(fù)傳輸。
4.系統(tǒng)延遲: 發(fā)送端和接收端硬件、軟件處理數(shù)據(jù)引入的緩沖和調(diào)度延遲。
5.編碼方式: 如果使用了非NRZ編碼(如曼徹斯特編碼),則一個碼元可能僅代表0.5個比特,波特率與比特率的關(guān)系將發(fā)生變化。
審核編輯 黃宇
-
波特率
+關(guān)注
關(guān)注
2文章
319瀏覽量
35427 -
比特率
+關(guān)注
關(guān)注
1文章
33瀏覽量
10987
發(fā)布評論請先 登錄
UART波特率計算及UART收發(fā)回顯實驗
ATClient配合USART_V2使用時,無法開at_client_init后修改串口波特率是怎么回事?
串口波特率設(shè)置1200用不了是怎么回事?
波特率是什么
可編程電源的通信波特率應(yīng)如何設(shè)置?
基于瑞薩64位MPU RZ/G2L的uboot串口多波特率支持介紹
Embedded Coder Support Package是否支持CAN喚醒和波特率配置?
STM32U575串口接收+GPDMA波特率不匹配怎么解決?
CAN總線十萬個為什么 | CAN自定義波特率有什么用?
異步串行接口有哪些,異步串行接口為何需要波特率
AN-891: ADuC703x系列LIN波特率計算

115200的波特率,為啥實際速度只有11KB/s?
評論