• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機串行通信波特率的自適應實現方法

    單片機串行通信波特率的自適應實現方法

    作者: 時間:2012-02-13 來源:網絡 收藏

    比較式(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,這更能節約硬件資源。文中提出的可以很

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

    參考文獻
    [1]Silicon Storage Technology,Inc.Designconsiderations for the SSTFlashFlex51 family microcontroller[EB/OL].http://www.sst.com,2003-06-10.
    [2]Silicon Storage Technology,Inc.SSTFlash-Flex51 microcontroller In-appliccationProgramming Basics[EB/OL].http://www.sst.com,2003-06-10.
    [3]任貴勇.串行波特率的一種自動檢測方法[J].計算機自動測量與控制,2000,8(1):54-61.
    [4]胡漢才.單片機原理及系統設計[M].北京:清華大學出版社,2002.
    [5]萬新恒.80C51系列單片機波特率自動檢測的通用程序[J].自動化與儀表,1997,12(5):45-46.
    [6]楊亞江.一種簡便的單片機串行參數自整定方法[J].電測與儀表,2002,39(437):51-54.
    [7]張慶輝.串行通信波特率自動檢測方法及軟件[J].微計算機信息,2002,18(12):57-58.


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 玉环县| 石阡县| 孙吴县| 余干县| 平山县| 天峻县| 阳信县| 阿勒泰市| 灌南县| 如皋市| 闽侯县| 上蔡县| 老河口市| 洛隆县| 陵水| 格尔木市| 泰和县| 翁牛特旗| 清苑县| 唐海县| 龙里县| 堆龙德庆县| 定边县| 泰兴市| 蓬安县| 唐海县| 吉木萨尔县| 莱州市| 门头沟区| 远安县| 隆林| 沙坪坝区| 紫云| 西充县| 高阳县| 两当县| 镇康县| 鄂托克前旗| 延边| 樟树市| 栖霞市|