STC單片機(jī)波特率自適應(yīng)方法
3 誤差分析
為保證可靠通信,要求通信雙方的波特率相對(duì)誤差小于2.5%.
在自適應(yīng)波特率校準(zhǔn)系統(tǒng)中,誤差主要來(lái)自?xún)蓚€(gè)方面,一是定時(shí)器T0 啟動(dòng)和停止滯后造成的誤差ΔT0;二是波特率發(fā)生器T1 本身固有的一個(gè)機(jī)器周期誤差ΔT1 = ±1.由于STC51單片機(jī)采用1T 時(shí)鐘定時(shí),ΔT0 誤差只有標(biāo)準(zhǔn)51系列芯片的1 12,系統(tǒng)誤差主要由ΔT1 決定。
以STC12C5620為例,當(dāng)采用片內(nèi)RC振蕩,時(shí)鐘頻率通常在5.2~6.9 MHz 之間。當(dāng)時(shí)鐘頻率為5.2 MHz,SMOD=1時(shí),UART時(shí)鐘分別按12T,1T 計(jì)算,見(jiàn)表1,表2.
表1、表2中加粗部分表示可以選用的波特率值,由表1、表2可知,只要編程時(shí)選擇合適的時(shí)鐘,在5.2 MHz時(shí)鐘頻率下,波特率可以在300~115 200 b/s 之間實(shí)現(xiàn)自適應(yīng),由T1 取整帶來(lái)的誤差在0.5%以?xún)?nèi)。當(dāng)系統(tǒng)時(shí)鐘為6.9 MHz時(shí),用同樣的方法計(jì)算,也可以證明波特率可以在300~115 200 b/s 之間實(shí)現(xiàn)自適應(yīng),由T1 取整帶來(lái)的誤差也在0.5%以?xún)?nèi)。由此可見(jiàn),STC12C5620采用片內(nèi)RC振蕩,可以在300~115 200 b/s之間完成波特率自適應(yīng),實(shí)現(xiàn)穩(wěn)定可靠的通信。
4 軟件流程與程序
主機(jī)軟件流程圖如圖3所示,從機(jī)軟件流程圖如圖4所示。
以下為C51波特率自適應(yīng)程序:
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 晶振相關(guān)文章:晶振原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論