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