串口波特率選擇
波特率(Boud Rate)就是在串口通信中每秒能夠發(fā)送的位數(shù)(bits/second)。MCS-51串行端口在四種工作模式下有不同的波特率計算方法。其中,模式0和模式2波特率計算很簡單;模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來說明串口通信波特率的選擇。
在串行端口工作于模式1,其波特率將由計時/計數(shù)器1來產(chǎn)生,通常設(shè)置定時器工作于模式2(自動再加模式)。在此模式下波特率計算公式為:
波特率=(1+SMOD)*晶振頻率/(384*(256-TH1))
其中,SMOD——寄存器PCON的第7位,稱為波特率倍增位;
TH1——定時器的重載值。
在選擇波特率的時候需要考慮兩點:首先,系統(tǒng)需要的通信速率。這要根據(jù)系統(tǒng)的運作特點,確定通信的頻率范圍。然后考慮通信時鐘誤差。使用同一晶振頻率在選擇不同的通信速率時通信時鐘誤差會有很大差別。為了通信的穩(wěn)定,我們應(yīng)該盡量選擇時鐘誤差最小的頻率進行通信。
下面舉例說明波特率選擇過程:
假設(shè)系統(tǒng)要求的通信頻率在20000bit/s以下,晶振頻率為12MHz,設(shè)置SMOD=1(即波特率倍增)。則
TH1=256-62500/波特率
根據(jù)波特率取值表,我們知道可以選取的波特率有:1200,2400,4800,9600,19200。列計數(shù)器重載值,通信誤差如下表:
波特率 | 計數(shù)器重載值 | 波特率誤差 |
1200 | 204 | 0.16% |
2400 | 230 | 0.16% |
4800 | 243 | 0.16% |
9600 | 249 | 6.99% |
19200 | 253 | 8.51% |
因此,在通信中,最好選用波特率為1200,2400,4800中的一個。
編輯:admin 最后修改時間:2018-05-18