1. 程式人生 > 其它 >什麼是波特率_波特率9600是什麼意思_串列埠通訊為什麼要設定波特率?

什麼是波特率_波特率9600是什麼意思_串列埠通訊為什麼要設定波特率?

 波特率(Baud Rate) 單位 bps -- 每秒傳送的位元組數 Byte Per Second.。

  (BaudRate) 模擬線路訊號的速率,也稱調製速率,以波形每秒的振盪數來衡量。如果資料不壓縮,波特率等於每秒鐘傳輸的資料位數,如果資料進行了壓縮,那麼每秒鐘傳輸的資料位數通常大於調製速率,使得交換使用波特和位元/秒偶爾會產生錯誤。 波特率是指資料訊號對載波的調製速率,它用單位時間內載波調製狀態改變的次數來表示,其單位是波特(Baud)。波特率與位元率的關係是位元率=波特率X單個調製狀態對應的二進位制位數。 在資訊傳輸通道中,攜帶資料資訊的訊號單元叫碼元,每秒鐘通過通道傳輸的碼元數稱為碼元傳輸速率,簡稱波特率。波特率是傳輸通道頻寬的指標。 每秒鐘通過通道傳輸的資訊量稱為位傳輸速率,簡稱位元率。位元率表示有效資料的傳輸速率。

 

  波特率就是一秒種傳輸0或1的個數,若波特率是9600那麼它傳輸一位0或1的時間就是1/9600秒如果串列埠工作在方式一下波特率是9600晶振是11059200定時器選用TImer1的自動重灌模式即1/9600=定時時間就是1/9600=(12*32/11059200)*(256-定時初值)。那麼定時初值=256-(11059200/(12*32*9600));

  RS-485 就是 EIA-485,EIA-485僅僅規定了接受端和傳送端的電氣特性。沒有規定或推薦任何通訊協議。

  EIA-485可以應用於配置便宜的廣域網和採用單機發送,多機接受通訊連結。它提供高速的資料通訊速率。(EIA-485和EIA-422一樣 使用雙絞線進行高電壓差分平衡傳輸,它可以進行大面積長距離傳輸(超過1200米)。

  不同的通訊協議,就是不同的資料通訊約定,如何呼,如何應,如何送,如何校對,如何握手。例如常見的 HTTP,FTP就是protocl(通訊協議)。通訊協議 分應用層,傳輸層,網路層,資料鏈路層,物理層,具體協議多極了。

  波特率9600是什麼意思

  波特率是一個電子訊號上的術語,用於描述通道的資料傳輸速度。所謂通道,可以是無線的,也可以是有線的,說白了就是兩個東西之間傳輸資料。

  波特率通常單位是bit/s,也就是 二進位制位/秒。因為一個位元組是8個bit,而一個位元組通常可以表達一個ASCII碼,比如一個英文字母,所以:9600的波特率的通道,理論上每秒可以傳輸9200/8個英文字母的資料量,也就是1200個位元組,大約1.2KB。而19200則是每秒可傳輸2400位元組。

  比如一個檔案,假設容量是100KB,那麼它通過9600的通道傳輸,需要的時間至少是100/1.2秒,也就是超過一分鐘了。

  和19200波特率的通道,都是早期介面的傳輸率標準。比如早期的COM口(也叫串列埠),經常採用這樣的標準,今天看來,速度非常非常慢。早期使用這樣的介面用於滑鼠、鍵盤等簡單裝置的連線,以及計算機和其它裝置的通訊。而現在,還有少數主機板支援這樣的介面。

  在今天的計算機上,這個介面標準早已淘汰,但是生產中,還是有很多裝置支援這樣的介面。

  比如,在數控機床上,當計算機與機床通訊的時候,很多機床都要求使用COM口,以9600,11200或19200之類的波特率進行通訊。

  串列埠通訊為什麼要設定波特率

  有兩種比較可靠地說法:

  1:根據電、傳輸介質等的物理特性結合串列埠裝置使用的要求

  為了保證有效通訊,根據電、傳輸介質等的物理特性結合串列埠裝置使用的要求,確定RS232最大傳輸速率只能是115200,然後逐級二分得到57600,28800,19200……為適應這些速率,設計相應的晶振頻率。

  2:這是由電信線路特性決定的

  電話線路的帶通是300--3KHz,當時hayes先搞的modem,所以用的2400HZ訊號,對應波特率是2400。由於基本頻率確定了,以後採用的提高通訊速率的方法都是在2400基礎上倍頻的,所以形成了9600.19200。。。。

  不管哪種說法,都是先有波特率再有晶振頻率。

  微控制器串列埠通訊波特率計算 。

  在模式0和模式2下,串列埠波特率固定,模式0為Fosc/12。模式2為Fosc/32或Fosc/64,具體由PCON暫存器的SMOD位決定。

  在模式1和模式3下,波特率是一個可變值,波特率可以由定時器1產生(8052可以由定時2產生),那麼波特率到底為多少呢?波特率由定時器1的溢位率來決定:

  Baud Rate = (2SMOD/32)*(TImer 1 Overflow Rate)

  注意:2SMOD這裡的SMOD是指數,SMOD為波特率雙倍波特率位,該位在PCON暫存器中。

  當使用TImer 1作為波特率產生器時,通常需要將TImer 1配置成8位自動重灌的工作模式下,同時還要禁止timer 1中斷,那麼timer 1的溢位率是怎樣計算的呢?溢位率即溢位的頻率,假設晶振頻率為12MHz,TH1值為0xFE,則只需要兩個時鐘脈衝就會溢位,溢位的週期為2us,那麼溢位的頻率就為500KHz。根據定時器一節,定時時間有如下計算公式:

  定時時間=(最大計數值-計數器初值)*機器週期=(最大計數值-計數器初值)*(12/晶振頻率(Hz))(s)=(256-TH1)*(12/OSC_FREQ(Hz))(s)。

  那麼溢位頻率自然就為:

  OSC_FREQ(Hz)/((256-TH1)*12)。

  所以最後推到出波特率為:

  (2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))。

  波特率的計算公式有了,那自然就可以根據波特率推匯出TH1的初值了:

  BAUD_RATE=(2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))

  32*12*(256-TH1)=(2SMOD*OSC_FREQ(Hz))/BAUD_RATE

  256-TH1=(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)

  TH1=256-(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)

  假設晶振頻率為11.0592MHz,波特率為9600,SMOD=0,TH1初值應該為多少呢?根據上面公式可以計算得TH1=256-11059200/(9600*32*12)=0xFD。