使用基于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文章
21736浏览量
603248 -
振荡器
+关注
关注
28文章
3832浏览量
139074 -
微处理器
+关注
关注
11文章
2262浏览量
82441
发布评论请先 登录
相关推荐
评论