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