久久综合草-久久综合操-久久综合爱-久久综合99-久久笫一福利免费导航-久久资源总站

波特率發生器_單片機串行通信波特率的自適應方法

  在串行異步通信中,目前實現波特率自動檢測并適應的設計思想有多種,可是他們或者需要額外的硬件支持,或者實現時方法繁雜且軟件開銷大。文章介紹了一種簡單可靠的用軟件實現波特率自動適應的方法,并給出了仿真調試電路原理圖,給出了同步程序的詳細框圖。該方法提高了波特率解調的便捷性和兼容性。

  1 仿真電路

  SST89C54/58單片機是MCS-51系列單片機的派生產品,他們在指令系統、硬件結構和片內資源上與標準8052單片機完全兼容。實際上 SST公司的SST89C54/58是一款使用非常方便51系列單片機,如不考慮其看門狗定時器和內部Flash程序存儲器,可以將其看成是一個可在線編程的標準8052單片機。圖1為實現串行通信仿真調試硬件原理圖,這是一個通用的串行通信接口電路INT0腳用來啟動從機同步適應。同步建立后的數據傳送過程中外部中斷0被禁止,而一批數據傳送完畢后進入待機監控狀態時則開 放外中斷。

  

23.jpg

  2 波特率自適應實現原理

  2.1 波特率

  對于8052單片機,串行通信用定時器1或定時器2作波特率發生器,波特率取決于他們的溢出率。當串行口在工作方式1,3,用定時器1作波特率發生器時, 則波特率計算如下:

  

24.jpg

  當定時器1工作方式2時,n=8,X為定時器1初值。

  當定時器1工作方式1時,n=16,X為定時器1初值。

  若用定時器2作波特率發生器時,則波特率計算公式如下:

  

25.jpg

  其中:X為定時器2的初值。

  2.2 波特率自適應原理

  主機端要求和從機建立通信時,先發送同步字符80H,從機根據此同步字符來計算當前的通信速率,并設置此值為本從機的波特率,從而完成通信速率的自適應。以串行通信方式1為例,他是一個10位的數據格式,如圖2所示。

  

26.jpg

  所以,在發送同步字符80H時,在數據線上他所呈現的電平狀態如圖3所示。

  從機通過檢測本機RXD引腳的信號,并利用定時器對RXD信號的低電平進行寬度測量,其負脈寬時間TDOWN剛好是8位數據的寬度,這有利于波特率發生器初值的計算。采用定時器0方式1并置初值0對TDOWN進行定時,可得計數值TH0,TL0,用XT來表示,設從機晶振為ff,

  

27.jpg

  比較式(3)和式(4),主機和從機波特率應設置相等,則可得從機波特率發生器T1的裝入初值為:

  

28.jpg

  由式(5)可看出,從機波特率發生器裝入初值與晶振無關,且當N=8時分母為28,此時后一項做除法運算最為方便,分子右移8位即可,在程序運算中只需丟棄分子的最后一個字節即可。

  若使用定時器2作波特率發生器,則易得其初值應為:

  

29.jpg

  3 波特率自適應法在IAP編程握手同步中的應用

  SST89C54/58單片機可以方便地實現IAP(InApplication Programming),通過IAP功能可以在應用板上直接下載程序,不需任何編程器就可以完成單片機系統的開發及單片機教學實驗。作者基于IAP模塊設計了一款專用的51單片機開發學習系統,其成本不超過50元,為標準51,52系列單片機的開發與學習提供了一種便捷而廉價的手段和方法。

  使用IAP功能可以對產品的軟件進行在線升級,而不需要其他硬件。可以這樣說,單片機系統只要有串行口,利用IAP功能通過串行口便可將PC機內的產品升級軟件下載到產品中去,而實現產品軟件升級換代。甚至在遠程通過Modem對產品進行軟件升級,這也將是以后各種電子產品發展的必然趨勢。而在線升級離不開通信速率的自動適應。

  

30.jpg

  同步握手中斷處理程序流程圖如圖4所示。從機在待機監控狀態時,開放外部中斷 0,當主機訪問從機時,先發送同步字節80H,再送FEH(也可為55H, AAH等),則當80H發出時從機RXD腳出現負跳變,觸發外部中斷0,啟動定時器0對同步脈沖進行測量,同時關閉外中斷0,并初始化串行口建立串行口數據接收,等待下一同步字節FEH,若同步成功則發應答信號,否則進入監控程序繼續等待同步。所有數據收發完畢后再開放外中斷0,進入監控待機狀態。

  4 結 語

  在自制的SST89C5X系列單片機IAP仿真系統上對文中提出的方法反復進行了測試,在從機主振為12 MHz條件下,從300~38 400 b/s范圍的各種常用波特率從機均很好地適應。當波特率低于120 b/s時,定時器0會產生溢出,若主機可能用到此波特率,可以用T0中斷計數對計數值進行修正。若采用查詢RXD引腳電平的方式,則圖1可進一步簡化,即可以不用外中斷0,這更能節約硬件資源。文中提出的方法可以很

  方便地應用于多機分布式控制系統中,也可以應用于各種需要變波特率的場合。

free spyware for phones click phone tracking app for android

相關文章