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