<listing id="bxhvh"></listing>
    <form id="bxhvh"></form>

          <address id="bxhvh"><form id="bxhvh"><nobr id="bxhvh"></nobr></form></address>

          <address id="bxhvh"><address id="bxhvh"><nobr id="bxhvh"></nobr></address></address>
              <form id="bxhvh"></form>

              歡迎進入廣州光橋通信官網,我們的產品有:光纖收發器,工業交換機,電話光端機,工業4G路由器.

              他們都在找: 工業PoE交換機、光纖收發器、視頻光端機電話光端機、工業以太網交換機

              當前位置首頁 » 串口通信為什么要設置波特率?串口通信波特率計算

              串口通信為什么要設置波特率?串口通信波特率計算

              返回列表 來源:光橋 查看手機網址
              掃一掃!串口通信為什么要設置波特率?串口通信波特率計算掃一掃!
              瀏覽:- 發布日期:2020-05-28 09:33:43【

              串口通信為什么要設置波特率?串口通信波特率計算

              單片機串口通信時,總要設置波特率,而波特率一般要設成9600,19200...?這是傳統么?從什么來的?而相應的晶振一般也是11.0592MHZ。是先設晶振再設波特率還是先設波特率再設晶振,為什么要這樣設置呢?

              有兩種比較可靠地說法:

              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。


              光纖收發器|工業交換機|PCM復用設備|串口光端機|串口服務器

                【本文標簽】:光纖交換機 工業交換機 以太網交換機 光纖收發器 電話光端機 光電轉換器 光端機
                【責任編輯】:光橋版權所有:轉載請注明出處
                白嫩少妇喷水正在播放