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