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

115200的波特率,為啥實(shí)際速度只有11KB/s?
評(píng)論