80C51單片機(jī)進(jìn)行串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法詳細(xì)介紹
資料介紹
本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字符用于測(cè)量波特率。
這種方法可以不用設(shè)定難于記憶的開(kāi)關(guān),還可以免去在有關(guān)應(yīng)用中使用多種不同波特率的煩惱。人們可以設(shè)想:一種可靠地實(shí)現(xiàn)自動(dòng)波特檢測(cè)的方法是可能的,它無(wú)須嚴(yán)格限制可被確認(rèn)的字符。問(wèn)題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率的定時(shí)間隔。
顯然,最快捷的方法是檢測(cè)一個(gè)單獨(dú)位時(shí)間(single bit time),以確定接收波特率應(yīng)該是多少??墒?,在RS-232 模式下,許多ASCII 字符并不能測(cè)量出一個(gè)單獨(dú)位時(shí)間。對(duì)于大多數(shù)字符來(lái)說(shuō),只要波特率存在合理波動(dòng)(這里的波特率是指標(biāo)準(zhǔn)波特率),從起始位到最后一位“可見(jiàn)”位的數(shù)據(jù)傳輸周期就會(huì)在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無(wú)奇偶校驗(yàn)的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會(huì)有MSB 設(shè)定,并且,UART總是先發(fā)送數(shù)據(jù)低位(LSB),后發(fā)送數(shù)據(jù)高位(MSB),我們總會(huì)看見(jiàn)數(shù)據(jù)的停止位。在下面的波特率檢測(cè)程序中,先等待串行通訊輸入管腳的起始信號(hào)(下降沿),然后起動(dòng)定時(shí)器T0。在其后的串行數(shù)據(jù)的每一個(gè)上升沿,將定時(shí)器T0 的數(shù)值捕獲并保存。當(dāng)定時(shí)器T0溢出時(shí),其最后一次捕獲的數(shù)值即為從串行數(shù)據(jù)起始位到最后一個(gè)上升沿(我們假設(shè)是停止位)過(guò)程所持續(xù)的時(shí)間。
CmpTable 表格列出了每一波特率的最大測(cè)量時(shí)間。這些數(shù)據(jù)是經(jīng)過(guò)選擇的,所以,4 個(gè)數(shù)據(jù)位時(shí)間(加上起始位時(shí)間)仍可產(chǎn)生正確的波特率。
使用這種方法時(shí),必須遵守一個(gè)假設(shè):這種技術(shù)僅取決于所接收到的一個(gè)字符,接收這個(gè)字符的波特率必須大于最低波特率。本質(zhì)上來(lái)說(shuō),這意味著這個(gè)字符必須來(lái)自正常敲擊鍵盤(pán)時(shí)所產(chǎn)生的字符。
在PC 上,我們不可能快速、連續(xù)地敲擊兩個(gè)字符,以欺騙程序。但是,PC 的功能鍵具有一個(gè)問(wèn)題,因?yàn)樗鼤?huì)連續(xù)發(fā)送兩個(gè)緊挨著的字符,使程序檢測(cè)得到錯(cuò)誤的波特率。在為12MHz時(shí)鐘頻率而設(shè)計(jì)的的例子程序中,其總采樣時(shí)間大約為65mS,大約可以在RS-232 通訊中以300bps 的速度發(fā)送兩個(gè)字符。
假如使用了奇偶校驗(yàn),當(dāng)4 個(gè)MSB 以及所接收字節(jié)的奇偶校驗(yàn)位均這同一值時(shí),就可能會(huì)發(fā)生錯(cuò)誤。這類(lèi)錯(cuò)誤的發(fā)生取決于系統(tǒng)是使用了奇校驗(yàn)或偶校驗(yàn),可能發(fā)生于小寫(xiě)的字母“p”到“z”,還有花括號(hào)({})、垂直條(|)、波紋線(~),以及刪除鍵“delete”。值得注意的是,慣常的提示符按鍵(如,空格鍵、回車(chē)鍵、及返回鍵),是沒(méi)有這些限制的(奇數(shù)還是偶數(shù)的限制?)。
在以此方式運(yùn)行程序時(shí),如第一個(gè)字節(jié)已經(jīng)過(guò)去,但串行口(UART)的波特率未能正確設(shè)置,那將造成用于檢測(cè)波特率的第一個(gè)字符丟失。同樣,如果在正常通訊中檢測(cè)到串行口的通訊“幀”錯(cuò)誤,絕大部分“實(shí)時(shí)”程序必須重復(fù)這一檢測(cè)波特率的過(guò)程。
如需采用另外設(shè)定的晶體振蕩頻率、波特率,請(qǐng)使用下列公式計(jì)算CmpTable 的表項(xiàng)目:
?
- 【Practical】51單片機(jī)串行口與波特率
- 80C51單片機(jī)串行通信講解
- 51單片機(jī)11.0592MHz產(chǎn)生115200波特率的詳細(xì)資料說(shuō)明
- 80C51單片機(jī)的串行口結(jié)構(gòu)和原理的程序免費(fèi)下載
- 51單片機(jī)串口波特率的計(jì)算方法說(shuō)明
- 51單片機(jī)教程之80C51單片機(jī)的串行口介紹及如何進(jìn)行串行總線的擴(kuò)展 27次下載
- 單片機(jī)有什么功能80C51單片機(jī)的功能單元的資料介紹 7次下載
- 51單片機(jī)教程之80C51單片機(jī)的指令系統(tǒng) 33次下載
- 51單片機(jī)教程之串行接口的詳細(xì)資料概述 10次下載
- 80C51單片機(jī)的硬件結(jié)構(gòu)是怎么樣的? 23次下載
- 設(shè)定80C51串行異步通訊的波特率 82次下載
- 自動(dòng)檢測(cè)80C51串行通訊中的波特率
- 基于VB6.0 的PC單片機(jī)多波特率通信
- 串行通信波特率的一種自動(dòng)檢測(cè)方法
- 自動(dòng)檢測(cè)單片機(jī)80C51串行通訊時(shí)的波特率
- 如何使用示波器測(cè)量串口波特率 2764次閱讀
- MIMXRT1060 FLEXIO UART波特率 1517次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 9383次閱讀
- 波特率自動(dòng)檢測(cè)的識(shí)別方法及無(wú)線數(shù)據(jù)傳輸模塊的設(shè)計(jì)及應(yīng)用 5005次閱讀
- 如何計(jì)算8051單片機(jī)的波特率 3682次閱讀
- 80C51單片機(jī)實(shí)現(xiàn)專(zhuān)用寄存器位尋址的設(shè)計(jì)方案 3035次閱讀
- 80C51單片機(jī)與8051單片機(jī)的區(qū)別是什么 8688次閱讀
- 51單片機(jī)引腳簡(jiǎn)介 5.4w次閱讀
- 80C51單片機(jī)模擬I2C總線的主機(jī)程序分享 3232次閱讀
- 80C51單片機(jī)與8051單片機(jī)的主要差別在哪里 7773次閱讀
- Keil C51單片機(jī)變量的使用方法詳細(xì)介紹 4528次閱讀
- 51單片機(jī)定時(shí)器模式2與波特率的應(yīng)用 7195次閱讀
- 基于80C51單片機(jī)位尋址編程 3313次閱讀
- 串行通信的實(shí)現(xiàn)條件和波特率自動(dòng)整定問(wèn)題 3745次閱讀
- 解析80C51單片機(jī)中的cpu、存儲(chǔ)器配置以及并行輸入/輸出口 2.6w次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多