用振蕩器為8051單片機實(shí)現高速串行通信的時(shí)鐘配置
引言
本文引用地址:http://dyxdggzs.com/article/172208.htm當今許多實(shí)時(shí)監測系統與通信設備領(lǐng)域中,經(jīng)常需要進(jìn)行遠距離的數據傳送。為此,如何實(shí)現高速、可靠及低成本的數據傳輸是作為前級機或發(fā)送級的8051單片機迫切需要解決的新技術(shù)。據此,我們采用由Dallas Semiconductor公司的芯片DSl075--Econ oscillator(高效型振蕩器)為8051系列的DS87C520高速型單片機提供時(shí)鐘的配置設計方案,實(shí)現單片機串行通信的高速波特率。
Econ oscillator(高效型振蕩器)含有一個(gè)內部振蕩器,用以產(chǎn)生一個(gè)基本頻率;還內置了一個(gè)分頻鏈,可以將基本頻率降低到需要的速度。Econ oscillator 的每種型號提供四種基本頻率(60MHz、66.67MHz、80MHz、100MHz),可調節的分頻系數最高可達2052。Econ oscillator能根據系統需要配置為任何類(lèi)型的鐘控邏輯,包括單片機(微處理器)、FPGA、CPLD電路等。
選用時(shí)鐘時(shí),應認真考慮兩個(gè)因素,即時(shí)鐘頻率和工作期限內的時(shí)鐘精度。在8051單片機系統中,時(shí)鐘頻率取決于所采用的串行通信RS-232。例如,考慮一個(gè)采用12MHz時(shí)鐘(早期8051的最高時(shí)鐘頻率)的異步模式1串行通信。表l列出了建立標準波特率所需的定時(shí)器1自動(dòng)重新裝載值。
表l中實(shí)際波特率是按照以下計算公式得出的:波特率所需的定時(shí)器I自動(dòng)重新裝載值。
其中:BaudRate為波特率;SMOD為波特率倍增位;fosc為振蕩頻率;THl為定時(shí)器l自動(dòng)重新裝載值。
表1中數值基于以下定時(shí)器 1狀態(tài):
·每12個(gè)時(shí)鐘周期定時(shí)器增l(單片機DS87C520的定時(shí)器可以每4個(gè)或12個(gè)時(shí)鐘周期增1)。
·自動(dòng)重裝載模式。
·禁止波特率倍增(SMOD=0)。
表l為早期的單片機采用晶體時(shí)的波特率和波特率誤差。
一般情況下的RS-232串行通信.一旦波特率誤差超出3%,盡管數據傳送中有起始位或停止位進(jìn)行同步,就有可能造成通信錯誤。3%的容許誤差使12MHz晶振時(shí)的最高通信速率限制在2400波特,這在90年代初還不算壞,但對今天的標準來(lái)講是一個(gè)不能忽略的大問(wèn)題丁。
而現在適應于8051單片機串行通信的晶體:11.059MHz或22.118MHz,已開(kāi)發(fā)出。單片機采用這種晶體后波特率有很大改善,見(jiàn)表2所示。數據傳送率可達57.6kps(使DS87C520單片機波特率倍增,當SMOD=1后可達115.2kps),這樣高的通信速率—波特率對于當前大多數單片機(或微處理器)系統已是很可觀(guān)了。隨著(zhù)晶體11.059MHz或22.118MHz產(chǎn)品逐步市場(chǎng)化,使單片機應用糸統大為拓寬。
定時(shí)器1自動(dòng)重裝載值
Fosc=11.059MHz時(shí)的波特率
Fosc=22.118MHz時(shí)的波特率
255
28,799.5
57598.9
254
14399.7
28799.5
253
9599.8
19199.6
250
4799.91
9599.83
244
2399.95
4799.91
232
1199.98
2399.95
208
599.98
119.98
160
299.99
599.99
64
149.99
299.99
注:波特率與規定速率的偏差3%對于時(shí)鐘精度提出了要求,即便采用專(zhuān)為RS-232串行通信優(yōu)選的時(shí)鐘頻率,如果時(shí)鐘頻率變化超出3%,仍然會(huì )影響到通信的穩定.
評論