資料介紹
本文介紹一種在80C51 串行通訊應(yīng)用中自動檢測波特率的方法。按照經(jīng)驗,程序起動后所接收到的第1 個字符用于測量波特率。
這種方法可以不用設(shè)定難于記憶的開關(guān),還可以免去在有關(guān)應(yīng)用中使用多種不同波特率的煩惱。人們可以設(shè)想:一種可靠地實現(xiàn)自動波特檢測的方法是可能的,它無須嚴格限制可被確認的字符。問題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率的定時間隔。
顯然,最快捷的方法是檢測一個單獨位時間(single bit time),以確定接收波特率應(yīng)該是多少??墒牵?a href='http://m.sdkjxy.cn/tags/rs/' target='_blank' class='arckwlink_none'>RS-232 模式下,許多ASCII 字符并不能測量出一個單獨位時間。對于大多數(shù)字符來說,只要波特率存在合理波動(這里的波特率是指標準波特率),從起始位到最后一位“可見”位的數(shù)據(jù)傳輸周期就會在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無奇偶校驗的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會有MSB 設(shè)定,并且,UART總是先發(fā)送數(shù)據(jù)低位(LSB),后發(fā)送數(shù)據(jù)高位(MSB),我們總會看見數(shù)據(jù)的停止位。在下面的波特率檢測程序中,先等待串行通訊輸入管腳的起始信號(下降沿),然后起動定時器T0。在其后的串行數(shù)據(jù)的每一個上升沿,將定時器T0 的數(shù)值捕獲并保存。當定時器T0溢出時,其最后一次捕獲的數(shù)值即為從串行數(shù)據(jù)起始位到最后一個上升沿(我們假設(shè)是停止位)過程所持續(xù)的時間。
CmpTable 表格列出了每一波特率的最大測量時間。這些數(shù)據(jù)是經(jīng)過選擇的,所以,4 個數(shù)據(jù)位時間(加上起始位時間)仍可產(chǎn)生正確的波特率。
使用這種方法時,必須遵守一個假設(shè):這種技術(shù)僅取決于所接收到的一個字符,接收這個字符的波特率必須大于最低波特率。本質(zhì)上來說,這意味著這個字符必須來自正常敲擊鍵盤時所產(chǎn)生的字符。
在PC 上,我們不可能快速、連續(xù)地敲擊兩個字符,以欺騙程序。但是,PC 的功能鍵具有一個問題,因為它會連續(xù)發(fā)送兩個緊挨著的字符,使程序檢測得到錯誤的波特率。在為12MHz時鐘頻率而設(shè)計的的例子程序中,其總采樣時間大約為65mS,大約可以在RS-232 通訊中以300bps 的速度發(fā)送兩個字符。

假如使用了奇偶校驗,當4 個MSB 以及所接收字節(jié)的奇偶校驗位均這同一值時,就可能會發(fā)生錯誤。這類錯誤的發(fā)生取決于系統(tǒng)是使用了奇校驗或偶校驗,可能發(fā)生于小寫的字母“p”到“z”,還有花括號({})、垂直條(|)、波紋線(~),以及刪除鍵“delete”。值得注意的是,慣常的提示符按鍵(如,空格鍵、回車鍵、及返回鍵),是沒有這些限制的(奇數(shù)還是偶數(shù)的限制?)。
在以此方式運行程序時,如第一個字節(jié)已經(jīng)過去,但串行口(UART)的波特率未能正確設(shè)置,那將造成用于檢測波特率的第一個字符丟失。同樣,如果在正常通訊中檢測到串行口的通訊“幀”錯誤,絕大部分“實時”程序必須重復這一檢測波特率的過程。
如需采用另外設(shè)定的晶體振蕩頻率、波特率,請使用下列公式計算CmpTable 的表項目:
?
- 【Practical】51單片機串行口與波特率
- 80C51單片機串行通信講解
- 80C51單片機的串行口結(jié)構(gòu)和原理的程序免費下載
- 51單片機串口波特率的計算方法說明
- 51單片機教程之80C51單片機的串行口介紹及如何進行串行總線的擴展 27次下載
- 單片機教程之80C51的中斷系統(tǒng)及定時和計數(shù)器的詳細資料概述 9次下載
- 單片機有什么功能80C51單片機的功能單元的資料介紹 7次下載
- 51單片機教程之80C51單片機的指令系統(tǒng) 36次下載
- 51單片機教程之串行接口的詳細資料概述 10次下載
- 80C51單片機的硬件結(jié)構(gòu)是怎么樣的? 27次下載
- 設(shè)定80C51串行異步通訊的波特率 82次下載
- 自動檢測80C51串行通訊中的波特率
- 基于VB6.0 的PC單片機多波特率通信
- 串行通信波特率的一種自動檢測方法
- 自動檢測單片機80C51串行通訊時的波特率
- MCU串口自動識別波特率原理分析 2.7k次閱讀
- 如何使用示波器測量串口波特率 9.6k次閱讀
- 串口通訊波特率出現(xiàn)誤差的因素 1.2w次閱讀
- 波特率自動檢測的識別方法及無線數(shù)據(jù)傳輸模塊的設(shè)計及應(yīng)用 5.9k次閱讀
- 如何計算8051單片機的波特率 4.5k次閱讀
- 80C51單片機實現(xiàn)專用寄存器位尋址的設(shè)計方案 3.9k次閱讀
- 80C51單片機與8051單片機的區(qū)別是什么 9.7k次閱讀
- 51單片機引腳簡介 5.6w次閱讀
- 80C51單片機模擬I2C總線的主機程序分享 4.1k次閱讀
- 80C51單片機與8051單片機的主要差別在哪里 8.4k次閱讀
- Keil C51單片機變量的使用方法詳細介紹 5.4k次閱讀
- 51單片機定時器模式2與波特率的應(yīng)用 8.4k次閱讀
- 基于80C51單片機位尋址編程 3.9k次閱讀
- 串行通信的實現(xiàn)條件和波特率自動整定問題 4.5k次閱讀
- 解析80C51單片機中的cpu、存儲器配置以及并行輸入/輸出口 2.8w次閱讀
下載排行
本周
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2反激式開關(guān)電源設(shè)計解析
- 0.89 MB | 2次下載 | 5 積分
- 3簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 4TPS23755數(shù)據(jù)手冊
- 0.07 MB | 次下載 | 免費
- 536伏,10兆赫茲低噪聲雙運算放大器COS5532 技術(shù)手冊
- 0.41 MB | 次下載 | 免費
- 6LM5176 55V 寬輸入電壓同步4開關(guān)降壓/升壓控制器技術(shù)手冊
- 2.40 MB | 次下載 | 免費
- 7MCU模塊原理圖資料
- 0.37 MB | 次下載 | 1 積分
- 8LoRa1121 FCC&CE認證 多頻段LoRa無線通訊模塊規(guī)格書
- 997.05 KB | 次下載 | 免費
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 7次下載 | 10 積分
- 3SDFM 激光測距模塊模組手冊
- 0.54 MB | 7次下載 | 免費
- 4直流電路的組成和基本定律
- 1.67 MB | 4次下載 | 免費
- 5SW6238V ACCC 三 PD 四口多協(xié)議移動電源 SOC規(guī)格書
- 0.59 MB | 4次下載 | 1 積分
- 6安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 7IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下載 | 免費
- 8PAW3395DM-T6QU:光學游戲?qū)Ш叫酒謨?/a>
- 1.26 MB | 2次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論