比特率
比特率是指每秒傳送的比特(bit)數。單位為bps(BitPerSecond),比特率越高,每秒傳送數據就越多。
波特率
波特率表示每秒鐘傳送碼元符號的個數,是衡量數據傳送速率的指標,一個符號可能含多個比特。在信息傳輸通道中,攜帶數據信息的信號單元叫碼元,每秒鐘通過信道傳輸的碼元數稱為碼元傳輸速率,簡稱波特率。波特率是傳輸通道頻寬的指標。
傳輸速率
傳輸速率是一種泛指,指的是數據從一點向另一點傳輸的速率,用戶實際可用的數據吞吐量,需扣除協議開銷(地址、ACK等)。也就是包含上面的比特率、波特率等。
通信速度
通信速度和傳輸速度同樣也是一種泛指。比如I2C通信速度400KHz,SPI最大通信速度支持150Mbps,指的是時鐘的頻率,僅僅是一個硬件參數
昌暉儀表以速率400kHz的I2C場景為例,讓大家看看比特率、波特率、傳輸速度和通信速度的區別。
比特率
I2C的比特率是400k,因為I2C的每個周期指傳輸一個數據(在SCL穩定期間讀取SDA上的數據);
波特率
I2C由屬于NRZ編碼,1符號=1比特,所以比特率=波特率,I2C的波特率=400k;
傳輸速度
I2C的數據包為:1個起始位+7位地址+1位讀寫標志+1位ACK+8位數據+1位ACK+停止位(不占位)=19位,也就是19位中只有8為數據位,所以速率:8/19*400k=168Kbit/s(約21KB/s);
通信速度
I2C的的CLK頻率是400k,這個就是I2C的通信速度。
下面看看我們經常用的串口波特率數據,以常用的115200為例。
波特率:
波特率115200=115200bit/s。以最普通的串口(起始位+8位數據+停止位)為例,合計共10位,所以:波特率115200=115200(bit/s)=11520(Byte/s);再除以1024,就是每秒KB數:波特率115200=115200(bit/s)=11.25(kB/s);果有一位奇偶校驗位,就應該是11位,得到的是每秒字節數:波特率115200=115200(bit/s)=10.27(KB/s)。所以波特率的數據量就要按照數據結構來計算、另外我們只是討論了這種二進制環境下的波特率。
相關閱讀
◆簡單了解波特率和比特率的定義和二者區別
◆不同品牌流量積算儀Modbus通訊的一些小問題
◆Modbus波特率越大傳送數據越快,反之越小越穩