串列埠波特率的理解

2021-10-09 04:31:08 字數 1426 閱讀 9018

bit就是位,也叫位元位,是計算機中最小的單位;

byte是位元組,也就是b;

1位元組(byte)=8位(bit)既

位只有兩種形式0和1,只能表示2種狀態,而位元組是有8個位組成的。可以表示256個狀態。

1byte = 8 bit, 1kb= 1024 byte, 1mb = 1024 kb, 1g = 1024 mb, 1t = 1024 g。

1)位元率:9600bps,其表示每秒傳輸9600bit,也就是相當於每一秒中分成了9600等分。

例如:那麼每1bit的時間就是1/9600秒=104.16666666666666666666666us,約0.1ms。既大約每0.1ms傳送1bit位,傳送9600份。

2)幀格式,幀間隔

在pc設定埠時,預設格式是:1個起始bit,8個資料bit,1個停止bit,無校驗等。則實際:10bit為一幀資料。一秒鐘可以傳送9600/10=960個幀,也就是960個字元,因為一幀資料只有乙個資料位8bit,即為乙個字元。

3)串列埠通訊

串列埠當然可以連續,沒有時間間隔地傳送幀,預設情形下電腦在9600bps下可以傳送960幀。

但在實際工作中,在非同步通訊下,一般需要乙個互動過程,所以,電腦傳送乙個幀,或者若干幀,還需要等待從裝置的應答,並不是一直傳送的。有問有答地實現程式設計者的目標。在stm32中常用中斷方式進行資料傳送接收。

4)波特率時鐘

實際上是位元率時鐘,每1bit所要花費的時間週期。而波特率(實際是位元率)發生器生成的分頻時鐘實際是對每1bit進行取樣的時鐘,它是波特率時鐘的16倍。

波特率發生器實質是設計乙個分頻器,用於產生和rs232通訊同步的時鐘。在系統中用乙個計數器來完成這個功能,分頻係數n決定了波特率的數值。該計數器一般工作在乙個頻率較高的系統時鐘下,當計數到n/2時將輸出置為高電平,再計數到n/2的數值後將輸出置為低電平,如此反覆即可得到占空比50%的波特率時鐘,具體的波特率依賴於所使用的系統時鐘頻率和n的大小。如系統時鐘頻率是40mhz,要求波特率是9 600,則16倍波特率時鐘的週期約等於260個系統時鐘週期,則計數器取260/2=130時,當計數溢位時輸出電平取反就可以得到16倍約定波特率的時鐘。

也可以這麼理解:40mhz晶振,最小計數脈衝是25ns,16倍波特率的頻率就是169600,其時鐘週期就是 1/(169600)=6.5us也就是以40mhz晶振作為輸入的話,計數器需要計數=6500/25=260 個計數。9600波特率也可理解為一種波特時鐘頻率,即1秒鐘計數9600個,如果是16倍波特率時鐘,即直接相乘就可以了。就是1秒計數9600*16=153600。

1/(960016)除以(1/40000000)也就是以時鐘週期除了最小時鐘週期得到的就是計數的個數。簡化而言就是40000000/(960016)=260,也就是頻率直接相除就得到要分頻計數器計數的個數。

串列埠 波特率概念

波特率 系統中單位時間內傳輸的碼元 脈衝 個數。碼元 和進製有關,對於m進製碼元,位元率 資訊速率 rb與波特率 碼元速率 rb的關係式為 rb rb lbm。式中 lbm log2m,表示m的以2為底的對數。顯然,對於二進位制碼元,由於lb2 1,所以rb rb,即波特率與位元率在數 值上相等,但...

串列埠波特率等概念

1 位元率 9600bps 就是每秒中傳輸9600bit,也就是相當於每一秒中劃分成了9600等份。如此,那麼每1bit的時間就是1 9600秒 104.16666666666666666666666666667us。約0.1ms。既然是9600等份,即每1bit緊接著下乙個位元,不存在額外的間隔。...

波特率 位元率和波特率

最近因為專案在複習通訊原理,對於位元率和波特率概念始終區分不是很明確,網上找了很多教程,找到了我認為最好理解的乙個版本。一,位元 bit 與資訊度量衡 度量衡是乙個名詞,通俗簡單的理解就是某個東西的單位,舉個栗子 1,乙個妹子的重量是100kg,那麼kg就是單位,用來描述物體 妹子 的性質 質量 k...