單片機(jī)串行通信波特率的自適應(yīng)方法_第1頁
單片機(jī)串行通信波特率的自適應(yīng)方法_第2頁
單片機(jī)串行通信波特率的自適應(yīng)方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)串行通信波特率的自適應(yīng)方法    在串行異步通信中,目前實(shí)現(xiàn)波特率自動(dòng)檢測并適應(yīng)的設(shè)計(jì)思想有多種,可是他們或者需要額外的硬件支持,或者實(shí)現(xiàn)時(shí)方法繁雜且軟件開銷大。文章介紹了一種簡單可靠的用軟件實(shí)現(xiàn)波特率自動(dòng)適應(yīng)的方法,并給出了仿真調(diào)試電路原理圖,給出了同步程序的詳細(xì)框圖。該方法提高了波特率解調(diào)的便捷性和兼容性。    1仿真電路    SST89C5458單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品,他們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容。實(shí)際上

2、SST公司的SST89C5458是一款使用非常方便51系列單片機(jī),如不考慮其看門狗定時(shí)器和內(nèi)部Flash程序存儲(chǔ)器,可以將其看成是一個(gè)可在線編程的標(biāo)準(zhǔn)8052單片機(jī)。圖1為實(shí)現(xiàn)串行通信仿真調(diào)試硬件原理圖,這是一個(gè)通用的串行通信接口電路INT0腳用來啟動(dòng)從機(jī)同步適應(yīng)。同步建立后的數(shù)據(jù)傳送過程中外部中斷0被禁止,而一批數(shù)據(jù)傳送完畢后進(jìn)入待機(jī)監(jiān)控狀態(tài)時(shí)則開 放外中斷。        2波特率自適應(yīng)實(shí)現(xiàn)原理    21波特率    對(duì)于8052

3、單片機(jī),串行通信用定時(shí)器1或定時(shí)器2作波特率發(fā)生器,波特率取決于他們的溢出率。當(dāng)串行口在工作方式1,3,用定時(shí)器1作波特率發(fā)生器時(shí), 則波特率計(jì)算如下:        當(dāng)定時(shí)器1工作方式2時(shí),n8,X為定時(shí)器1初值。    當(dāng)定時(shí)器1工作方式1時(shí),n16,X為定時(shí)器1初值。    若用定時(shí)器2作波特率發(fā)生器時(shí),則波特率計(jì)算公式如下:        其中:X為

4、定時(shí)器2的初值。    22波特率自適應(yīng)原理    主機(jī)端要求和從機(jī)建立通信時(shí),先發(fā)送同步字符80H,從機(jī)根據(jù)此同步字符來計(jì)算當(dāng)前的通信速率,并設(shè)置此值為本從機(jī)的波特率,從而完成通信速率的自適應(yīng)。以串行通信方式1為例,他是一個(gè)10位的數(shù)據(jù)格式,如圖2所示。        所以,在發(fā)送同步字符80H時(shí),在數(shù)據(jù)線上他所呈現(xiàn)的電平狀態(tài)如圖3所示。    從機(jī)通過檢測本機(jī)RXD引腳的信號(hào),并利用定時(shí)器對(duì)R

5、XD信號(hào)的低電平進(jìn)行寬度測量,其負(fù)脈寬時(shí)間TDOWN剛好是8位數(shù)據(jù)的寬度,這有利于波特率發(fā)生器初值的計(jì)算。采用定時(shí)器0方式1并置初值0對(duì)TDOWN進(jìn)行定時(shí),可得計(jì)數(shù)值TH0,TL0,用XT來表示,設(shè)從機(jī)晶振為ff,        比較式(3)和式(4),主機(jī)和從機(jī)波特率應(yīng)設(shè)置相等,則可得從機(jī)波特率發(fā)生器T1的裝入初值為:        由式(5)可看出,從機(jī)波特率發(fā)生器裝入初值與晶振無關(guān),且當(dāng)N8時(shí)分母為28,此時(shí)后一項(xiàng)做除法運(yùn)算最為方

6、便,分子右移8位即可,在程序運(yùn)算中只需丟棄分子的最后一個(gè)字節(jié)即可。    若使用定時(shí)器2作波特率發(fā)生器,則易得其初值應(yīng)為:        3波特率自適應(yīng)法在IAP編程握手同步中的應(yīng)用    SST89C5458單片機(jī)可以方便地實(shí)現(xiàn)IAP(InApplication Programming),通過IAP功能可以在應(yīng)用板上直接下載程序,不需任何編程器就可以完成單片機(jī)系統(tǒng)的開發(fā)及單片機(jī)教學(xué)實(shí)驗(yàn)。作者基于IAP模塊設(shè)計(jì)了一款專用的51單片機(jī)開發(fā)

7、學(xué)習(xí)系統(tǒng),其成本不超過50元,為標(biāo)準(zhǔn)51,52系列單片機(jī)的開發(fā)與學(xué)習(xí)提供了一種便捷而廉價(jià)的手段和方法。    使用IAP功能可以對(duì)產(chǎn)品的軟件進(jìn)行在線升級(jí),而不需要其他硬件。可以這樣說,單片機(jī)系統(tǒng)只要有串行口,利用IAP功能通過串行口便可將PC機(jī)內(nèi)的產(chǎn)品升級(jí)軟件下載到產(chǎn)品中去,而實(shí)現(xiàn)產(chǎn)品軟件升級(jí)換代。甚至在遠(yuǎn)程通過Modem對(duì)產(chǎn)品進(jìn)行軟件升級(jí),這也將是以后各種電子產(chǎn)品發(fā)展的必然趨勢。而在線升級(jí)離不開通信速率的自動(dòng)適應(yīng)。        同步握手中斷處理程序流程圖如圖4所示。從機(jī)在

8、待機(jī)監(jiān)控狀態(tài)時(shí),開放外部中斷 0,當(dāng)主機(jī)訪問從機(jī)時(shí),先發(fā)送同步字節(jié)80H,再送FEH(也可為55H, AAH等),則當(dāng)80H發(fā)出時(shí)從機(jī)RXD腳出現(xiàn)負(fù)跳變,觸發(fā)外部中斷0,啟動(dòng)定時(shí)器0對(duì)同步脈沖進(jìn)行測量,同時(shí)關(guān)閉外中斷0,并初始化串行口建立串行口數(shù)據(jù)接收,等待下一同步字節(jié)FEH,若同步成功則發(fā)應(yīng)答信號(hào),否則進(jìn)入監(jiān)控程序繼續(xù)等待同步。所有數(shù)據(jù)收發(fā)完畢后再開放外中斷0,進(jìn)入監(jiān)控待機(jī)狀態(tài)。    4結(jié)語    在自制的SST89C5X系列單片機(jī)IAP仿真系統(tǒng)上對(duì)文中提出的方法反復(fù)進(jìn)行了測試,在從機(jī)主振為12 MHz條件下,從30038 400 bs范圍的各種常用波特率從機(jī)均很好地適應(yīng)。當(dāng)波特率低于120 bs時(shí),定時(shí)器0會(huì)產(chǎn)生溢出,若主機(jī)可能用到此波特率,可以用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論