<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STC單片機波特率自適應方法

STC單片機波特率自適應方法

作者: 時(shí)間:2014-01-16 來(lái)源:網(wǎng)絡(luò ) 收藏

  0 引言

  串口RS 232是工業(yè)控制、儀器儀表、計算機外設常用的一種通信協(xié)議。串口通信的一般都是選取標準系列值,并要求通信雙方嚴格遵循相同的,實(shí)際應用中,一臺設備往往要與多種其他設備聯(lián)絡(luò ),為適應各種不同設備的通信速度,就要求該設備能適應不同的,實(shí)現這種要求的常見(jiàn)方法有兩種,一是增加波特率選擇開(kāi)關(guān),二是設計能自動(dòng)適應各種常見(jiàn)通信速度的串口。第一種方法增加了硬件,同時(shí)針對不同對象需要重新設置開(kāi)關(guān),在不清楚對方波特率的情況下還無(wú)法使用。第二種方法采用軟硬件結合,通過(guò)檢測、計算,自動(dòng)選擇正確的波特率,實(shí)際使用極其方便。

  自適應波特率串口的實(shí)現方法通常有以下幾種:

 ?。?)協(xié)議約定通信開(kāi)始時(shí)主機固定發(fā)送1 個(gè)字符,從機以不同的波特率試探接收,當接收到的數據與約定相同時(shí),確定該波特率即是正確的通信波特率。

 ?。?)協(xié)議約定通信開(kāi)始時(shí)主機發(fā)送1 串字符,從機以某固定波特率接收,然后通過(guò)軟件分析接收到的數據,計算出接收數據與發(fā)送數據之間的倍數關(guān)系,從而確定正確的波特率。

 ?。?)協(xié)議約定通信開(kāi)始時(shí)主機固定發(fā)送1 個(gè)字符,從機用單片機定時(shí)器檢測RXD 上的信號寬度,通過(guò)計算來(lái)確定主機的波特率。

  以上3 種方法,第一種由于需要多次試探,效率很低;第二種計算量過(guò)大,不適合單片機處理;第三種方式單片機有現成的定時(shí)器資源,計算也相對簡(jiǎn)單,所以?xún)?yōu)選這種。

  要測量脈沖寬度,前提是單片機的時(shí)鐘信號必須穩定。目前很多可選外接晶振時(shí)鐘或片內RC振蕩時(shí)鐘,片內RC振蕩時(shí)鐘省去了外部的晶振等元件,成本降低、電路板的體積也可以縮小,這對成本及體積敏感的應用很具優(yōu)勢。但選用片內RC振蕩時(shí),頻率會(huì )有±15%左右的誤差,頻率的穩定性也比外接晶振要差,按理論計算值設置波特率參數,無(wú)法保證可靠的通信,但按以上自適應波特率串口的第三種方法,每次通信前實(shí)測、計算、確定波特率常數,就可以實(shí)現穩定可靠的通信,這樣充分利用了的優(yōu)勢。

  1 STC 單片機的特點(diǎn)

  標準51 芯片由于定時(shí)器最高分辨率只有1 μs,對于較高的通信波特率來(lái)說(shuō),測量精度不夠,導致計算值不準,無(wú)法正常工作。STC系列單片機是在標準51單片機基礎上發(fā)展起來(lái)的,它增加了很多實(shí)用的接口電路,擴大了時(shí)鐘的頻率范圍,設計出了1T 時(shí)鐘的芯片,可以通過(guò)軟件對系統時(shí)鐘分頻,并提供了片內RC振蕩時(shí)鐘,在目前51芯片的市場(chǎng)占有極大的份額。STC系列單片機采用片內RC振蕩時(shí)鐘、自適應波特率串口通信技術(shù),可以廣泛地應用于分布式控制、智能儀表、通信等行業(yè)。

  2 自適應工作原理

  STC 單片機采用異步通信,UART 工作于模式1(8位UART,波特率可變),用定時(shí)計數器2做波特率發(fā)生器,工作于模式2(8位自動(dòng)重裝模式),主從機按圖1方式連接,從機自適應主機的波特率。

  

  自適應過(guò)程由主機發(fā)送聯(lián)絡(luò )字符開(kāi)始。為了使從機獲得最大的測量脈寬,提高測量精度,由主機發(fā)送二進(jìn)制“0”.如圖2所示,二進(jìn)制“0”由1位起始位,8位數據位(低位在先)及1位停止位構成,其中1位起始位和8位數據位全為0,所以低電平的寬度為9 b.

  

  從機查詢(xún)RXD引腳的電平,檢測到低電平后就啟動(dòng)定時(shí)器0開(kāi)始計時(shí),再檢測到高電平就停止定時(shí)器0計時(shí),根據定時(shí)器0的定時(shí)值就可以計算出主機的波特率。

  當時(shí)鐘分頻寄存器CLK_DIV=0(不分頻),特殊功能寄存器AUXR=0xC0(T0 用1T 時(shí)鐘),則:

  

  而STC51 系列單片機在UART 模式1,時(shí)鐘模式為1T 時(shí),其波特率公式為:

  

  從機UART在模式1下,將式(4)或式(6)計算結果作為定時(shí)器1重裝值,設定通信參數,通過(guò)串口回送應答信號給主機。主機如正確接收到從機回送的信號,就說(shuō)明從機已完成波特率自適應,可以開(kāi)始正常通信了。

51單片機相關(guān)文章:51單片機教程


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理


負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
晶振相關(guān)文章:晶振原理
離子色譜儀相關(guān)文章:離子色譜儀原理

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>