使用基于8051的微控制器時(shí),必須謹(jǐn)慎選擇外部時(shí)鐘基準(zhǔn),以確保滿足控制器串行接口的時(shí)序要求。通常,8051串行端口與RS-232發(fā)射器/接收器一起使用,以提供到另一個(gè)處理器或主機(jī)處理器的串行通信鏈路。RS-232規(guī)范具有特定的時(shí)序要求,必須滿足這些要求才能保證與使用此協(xié)議的所有其他設(shè)備的通信?;?8051 的處理器使用外部時(shí)序參考(晶體或時(shí)鐘)和內(nèi)部可編程分頻器鏈的組合生成其串行端口時(shí)序。本應(yīng)用筆記演示了如何使用EconOscillator滿足外部時(shí)鐘要求,并為8051內(nèi)部串行端口控制寄存器的編程提供了計(jì)算幫助。
介紹
經(jīng)濟(jì)振蕩器具有提供基本頻率的內(nèi)部振蕩器,它們使用內(nèi)置分頻鏈將基本頻率降低到所需速率。每個(gè)器件號(hào)可以劃分四個(gè)基本頻率速率(60MHz、66.67MHz、80MHz 或 100MHz),調(diào)整速度比基本器件頻率慢 2052 倍。經(jīng)濟(jì)振蕩器可用于任何類型的時(shí)鐘邏輯,包括微處理器、FPGA 和 CPLD 電路,具體取決于系統(tǒng)要求。
8051 微處理器和 RS-232 串行通信
選擇時(shí)鐘時(shí),有兩個(gè)因素值得仔細(xì)考慮:時(shí)鐘速率和整個(gè)使用壽命內(nèi)的時(shí)鐘精度。在8051微處理器系統(tǒng)中,RS-232串行通信的使用通常決定了系統(tǒng)時(shí)鐘速率。例如,考慮使用 1MHz 時(shí)鐘(原始 12 的最大時(shí)鐘速率)的異步模式 8051 串行通信。表 1 顯示了建立標(biāo)準(zhǔn)波特率所需的定時(shí)器 1 自動(dòng)重新加載值。
定時(shí)器 1 自動(dòng)重新加載值 |
實(shí)際波特率(所需波特率 ) |
波特率誤差 |
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% |
表1中的實(shí)際波特率使用以下公式計(jì)算(轉(zhuǎn)載自達(dá)拉斯半導(dǎo)體的高速微控制器用戶指南):
表編號(hào)基于以下計(jì)時(shí)器 1 條件:
設(shè)置為每個(gè)定時(shí)器遞增12個(gè)時(shí)鐘周期(DS87C520可每1或4個(gè)時(shí)鐘周期遞增定時(shí)器12)
已啟用自動(dòng)重新加載模式
波特率倍增器 (SMOD=0) 已禁用。
RS-232串行通信的大多數(shù)用戶都同意,任何超過(guò)3%的波特率誤差都可能導(dǎo)致通信錯(cuò)誤,盡管在數(shù)據(jù)傳輸過(guò)程中開(kāi)始和停止位同步,但仍會(huì)發(fā)生通信錯(cuò)誤。3%的允許誤差將12MHz晶體的最大通信速率限制在2400波特——這在1990年代初期還不錯(cuò),但對(duì)于今天的標(biāo)準(zhǔn)來(lái)說(shuō)有點(diǎn)慢。幸運(yùn)的是,有一些晶體可以滿足8051串行通信的需求:11.059MHz或22.118MHz晶體。使用這些晶體的微處理器在波特率方面有了顯著的提高(表2),數(shù)據(jù)傳輸速率高達(dá)57.6 kbps(DS115C2使用波特率倍增器SMOD=87時(shí)為520.1 kbps),這對(duì)于當(dāng)今大多數(shù)微處理器系統(tǒng)來(lái)說(shuō)都是可觀的。
計(jì)時(shí)器 1 自動(dòng)重新加載值 |
Focc 時(shí)的 波特率 = 11.059MHz |
Focc 時(shí)的 波特率 = 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 | 1199.98 |
160 | 299.99 | 599.99 |
64 | 149.99 | 299.99 |
注意:
要求波特率在指定速率的 3% 以內(nèi)也會(huì)對(duì)時(shí)鐘提出精度要求。即使為RS-232通信選擇了理想的時(shí)鐘速率,如果時(shí)鐘變化超過(guò)3%,您也可能無(wú)法始終如一地進(jìn)行通信。
使用DS1077經(jīng)濟(jì)振蕩器為8051微處理器提供時(shí)鐘
DS1077有多種基本型號(hào),內(nèi)部振蕩器工作頻率為133、125、120、100和66.667MHz。使用內(nèi)部分頻器鏈來(lái)減慢它們的速度,使其足以滿足8051應(yīng)用的需求,理論上可以使用這些部件中的任何一個(gè)。但是,如果您打算使用 8051 的串行端口,則應(yīng)根據(jù)微處理器隨附的波特率和波特率生成公式,選擇最適合微處理器需求的基礎(chǔ)部件。
在我們的示例中,對(duì)于8051微處理器,11.059MHz和22.118MHz的振蕩器頻率是理想的,并且波特率生成可以容忍大約3%的錯(cuò)誤率。如果使用66.667MHz基頻(DS1077-66),可將基頻除以六(6)分頻,直至11.111MHz。這與理想頻率11.059MHz(0.47%)相比誤差很小,即使最壞情況下與編程頻率的偏差為1.25%,誤差也保持在可接受的低水平。因此,DS1077-66在1.72MHz目標(biāo)頻率下允許最大誤差為11.059%,足以滿足速率高達(dá)28.8kbps的通信需求。
如果使用具有更高允許時(shí)鐘速率的8051,例如DS87C520(最大時(shí)鐘速率為33MHz),則可以簡(jiǎn)單地將時(shí)鐘速率除以22到222.22MHz。對(duì)于任何118.<>MHz波特率的通信,最大誤差仍然很好。更高的時(shí)鐘速率還可以為您的其他應(yīng)用需求提供更高水平的處理器性能。
DS1077采用8051設(shè)計(jì)的最大優(yōu)勢(shì)是靈活性。最初使用原始或等效的8051微處理器(最大時(shí)鐘速率為12MHz)的設(shè)計(jì)可以通過(guò)重新編程振蕩器和更換微處理器來(lái)簡(jiǎn)單地升級(jí)。根據(jù)設(shè)計(jì)的不同,您甚至可以對(duì)DS1077插座內(nèi)重新編程。如果您使用的是40微處理器的8051引腳DIP版本,ADI公司和許多其他公司將生產(chǎn)多個(gè)100%兼容的替代芯片。其中最快的是ADI公司的DS89C430,性能比原來(lái)的50設(shè)計(jì)提高了8051倍,并且提供了一些可用的資源,包括看門狗定時(shí)器和電源管理,這是原來(lái)的8051所沒(méi)有的。其他芯片,如DS87C520,性能提升高達(dá)11倍。(ADI公司還生產(chǎn)具有PWM和ADC的其他8051版本,用于控制應(yīng)用,但它們不提供40引腳DIP封裝。
硬件設(shè)置
要使用DS1077,需要建立一種對(duì)其EEPROM寄存器進(jìn)行編程的方法。 對(duì)DS1077進(jìn)行編程后,圖1所示原理圖顯示了如何連接DS1077,以便與8051微處理器配合正常工作。注意DS1077的輸出進(jìn)入XTAL1,XTAL2未連接。XTAL2 通常是 8051 的晶體振蕩器輸出。將任何東西連接到該引腳只會(huì)將微處理器負(fù)載下來(lái),當(dāng)任何輔助時(shí)鐘設(shè)備都可以與 XTAL1 上的微處理器并聯(lián)時(shí),這是不必要的。(這是假設(shè)輔助器件和8051的聯(lián)合負(fù)載不超過(guò)DS1077的輸出電流規(guī)格。
圖1.使用DS1077振蕩器為8051微處理器提供時(shí)鐘的硬件設(shè)置。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1630文章
21794瀏覽量
605110 -
振蕩器
+關(guān)注
關(guān)注
28文章
3845瀏覽量
139263 -
微處理器
+關(guān)注
關(guān)注
11文章
2273瀏覽量
82648
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論