波特率(Baud Rate) 單位 bps -- 每秒傳送的字節數 Byte Per Second.。
?。˙audRate) 模擬線路信號的速率,也稱調制速率,以波形每秒的振蕩數來衡量。如果數據不壓縮,波特率等于每秒鐘傳輸的數據位數,如果數據進行了壓縮,那么每秒鐘傳輸的數據位數通常大于調制速率,使得交換使用波特和比特/秒偶爾會產生錯誤。 波特率是指數據信號對載波的調制速率,它用單位時間內載波調制狀態改變的次數來表示,其單位是波特(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。
小編推薦閱讀:
評論