用高效型振蕩器為8051單片機實現高速串行通信的時鐘配置
引言
當今許多實時監(jiān)測系統與通信設備領域中,經常需要進行遠距離的數據傳送。為此,如何實現高速、可靠及低成本的數據傳輸是作為前級機或發(fā)送級的8051單片機迫切需要解決的新技術。據此,我們采用由Dallas Semiconductor公司產的芯片DSl075--Econ oscillator(高效型振蕩器)為8051系列的DS87C520高速型單片機提供時鐘的配置設計方案,實現單片機串行通信的高速波特率。
Econ oscillator(高效型振蕩器)含有一個內部振蕩器,用以產生一個基本頻率;還內置了一個分頻鏈,可以將基本頻率降低到需要的速度。Econ oscillator 的每種型號提供四種基本頻率(60MHz、66.67MHz、80MHz、100MHz),可調節(jié)的分頻系數最高可達2052。Econ oscillator能根據系統需要配置為任何類型的鐘控邏輯,包括單片機(微處理器)、FPGA、CPLD電路等。
8051單片機以及RS-232串行通信
選用時鐘時,應認真考慮兩個因素,即時鐘頻率和工作期限內的時鐘精度。在8051單片機系統中,時鐘頻率取決于所采用的串行通信RS-232。例如,考慮一個采用12MHz時鐘(早期8051的最高時鐘頻率)的異步模式1串行通信。表l列出了建立標準波特率所需的定時器1自動重新裝載值。
表l中實際波特率是按照以下計算公式得出的:波特率所需的定時器I自動重新裝載值。
其中:BaudRate為波特率;SMOD為波特率倍增位;fosc為振蕩頻率;THl為定時器l自動重新裝載值。
表1中數值基于以下定時器 1狀態(tài):
* 每12個時鐘周期定時器增l(單片機DS87C520的定時器可以每4個或12個時鐘周期增1)。
* 自動重裝載模式。
* 禁止波特率倍增(SMOD=0)。
表l為早期的單片機采用晶體時的波特率和波特率誤差
表l 波特率和波特率誤差
定時器1自動重裝載值
實際波特率
波特率誤差
255
31250(28800)
8.5%
254
15625(14400)
8.5%
253
10417(9600)
8.4%
249/250
4464/5208(4800)
7%,8.5%
243
2404(2400)
0.16%
一般情況下的RS-232串行通信.一旦波特率誤差超出3%,盡管數據傳送中有起始位或停止位進行同步,就有可能造成通信錯誤。3%的容許誤差使12MHz晶振時的最高通信速率限制在2400波特,這在90年代初還不算壞,但對今天的標準來講是一個不能忽略的大問題丁。
而現在適應于8051單片機串行通信的晶體;11.059MHz或22.118MHz,已開發(fā)出。單片機采用這種晶體后波特率有很大改善,見表2所示。數據傳送率可達57.6kps(使DS87C520單片機波特率倍增,當SMOD=1后可達115.2kps),這樣高的通信速率——波特率對于當前大多數單片機(或微處理器)系統已是很可觀了。隨著晶體11.059Mhz或22.118MHz產品逐步市場化,使單片機應用糸統大為拓寬。
表2采用RS-232串行通信造選擇的晶振頻率時所產生的波特率
定時器1自動重裝載值
Fosc=11.059MHz時的波特率
Fosc=22.118MHz時的波特率
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
注:波特率與規(guī)定速率的偏差3%對于時鐘精度提出了要求,即便采用專為RS-232串行通信優(yōu)選的時鐘頻率,如果時鐘頻率變化超出3%,仍然會影響到通信的穩(wěn)定.
用DS1075為8051單片機提供時鐘
為什么現采用新型芯片DSl075芯片-Econ oscillator為8051單片機提供時鐘是當前的最佳選擇?因為它最大優(yōu)點是方便、靈活、簡單、可靠。
該類型號可提供四種基本振頻率(60MHz、66.67MHz、80MHz、100MHz)。并利用內部分頻器可將振蕩頻率降至足夠低,以滿足8051單片機系統的應用需求.從理論上講,四種基本振蕩頻率均可用于8051系統。但是,如果打算選用8051的串行口,則應選擇的基頻應符合單片機要求的晶體型號,這取決于所要求有的波特率和單片機所提供蛄弛波特率發(fā)生器的格式。
對于8051單片機來講,11.059MHz和22.118MHz的晶體振蕩頻率比較滿意,所產生的波特率符合將近3%的容差要求。如果選用基頻為66.667MHz的振蕩器,對該基頻66.667MHz進行六次分頻后得到11.111MHz的時鐘信號,這與理想頻率11.059MHz相差甚徽(047%),即使是在最壞情況下,與設定偏差為1%,其誤差值仍保持在可以接受的3%范圍內,DSl075-66與理想頻率11.059MHz的最大偏差是1.47%,符合通信速率28.8kbps
的要求。
因為采用DSl075芯片-Econ oscillator 的一個很大的好處是靈活。在8051應用設計中,若當初用的是早期的8051或與之相近的單片機或微處理器 (最大時鐘頻率為12MHz),則現在只需重新編程振蕩器,就可非常簡單地以得到升級.在有些設計中甚至可以在線重新編程DSl075;若正在使用早期的40腳雙列8051型單片機,則現在除了Dallas Semiconductor公司外還有不少其它公司可提供多種型號而且完全兼容的芯片來替代,其中典型芯片Dallas Semiconductor公司產的DS87C520,它采用了架構一世界上最流行的8051微控制器之一,
簡單易用、豐富的I/O資源使它深受設計者的喜愛,并被廣泛接受。它的流行已涉足到了便攜式領域,它與早期的8051相比,非但速度快而且指標性能提升了11倍,并且不采用雙列40腳的封裝。
為此,選擇時鐘速率更高的805l系列的DS87C520單片機(最高時鐘達33MHz),則可將時鐘基頻簡單的三分頻至22.222MHz,此時,最大誤差為l .47%,仍適合于22.118MHz晶體波特率的應用,根據需要選用較高的時鐘頻率可獲得較高的處理器性能。
硬件設置
使用DS1075時,需要建立對DSl075內含EEPROM存儲編程器的途經,簡單的方法是:直接購買DSl075K編程/評估板,備有樣品的評估板和Windows 2000或XT (正版)軟件將大大簡化了器件的編程,為設計提供了捷徑.即只要將芯片DSl075扦入DSl075K編程/評估上,然后再與能供+5V電源、振蕩源的應用板相連,則就可以建立編程。完成DSl075編程后,按圖l所示,將DSl075與DS87C520單片機進行連接。 -
注意:DSl075的輸出連接到XTALl引腳,而XTAL2引腳浮空。一般情況下XTAL2引腳是805l的晶振輸出端,所以若該引腳接任何元器件只能增加8051單片機的負載,為此,任何附加時鐘器件能與8051單片機的XTALl引腳并行連接時,XTAL2引腳都要浮空,此時8051不會 超出DSl075所規(guī)定的輸出電流。
結語
用DSL075芯片Econ Oscillator為8051系列單片機提供時鐘,是解決當今用8051系列單片機串行通信在工業(yè)控制和通信等領域中數據進行高速傳輸的新技術,該設計方案的實施可獲得較高的性能價格比。
圖1 用DS1075為8051型DS87C520高速單片機配置時鐘硬件圖
圖2 DS1075芯片與DS1075K編程/評估板及應用板連接示意圖
通信相關文章:通信原理
分頻器相關文章:分頻器原理
評論