保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

工作频率可动态调整的单片机系统设计


在图2中,可编程CMOS频率合成器DS1077的输出引脚OUT1接到单片机AT89C51的XTL1引脚,单片机的XTL2引脚不接,DS1077的输出引脚OUT0不使用(在软件中禁止),CRTL1和CTRL0接地。由于AT89C51单片机没有二线串行接口,所以把DS1077的SCL和SDA接到单片机的P1.0和P1.1,用单片机的P1.0和P1.1模拟二线串行接口。

可编程CMOS频率合成器DS1077设定为:引脚OUT0禁止使用;引脚OUT的输出频率略低于单片机的最高工作频率;BUS寄存器的WC位置1(只有向频率合成器DS1077发出写命令时才把各个寄存器的值写入EEPROM中)。这样,在每次启动单片机系统时,单片机总运行在较高的工作频率;当完成了系统的初始化后,单片机就可以根据工作情况重新设置适合的工作频率。在单片机工作过程中,最好不要向频率合成器DS1077发出写EEPROM命令。因为重新设置工作频率即使超出了单片机的频率范围,造成单片机死机,由于寄存器的值没有写入EEROM中,当重新启动时,单片机仍然能够工作;如果把错误的工作频率写入EEPROM中,会造成系统不能重新启动,此时只能取下DS1077芯片,用其他工具对它进行重新编程。

3 系统频率改变对RS232串行通讯的影响及动态调整工作频率时的解决办法

在单片机系统中,时钟频率与RS232串行通讯有着密切的关系。例如,对于使用12MHz晶振的系统(早期的8051的最大工作频率是12MHz),表4显示了定时器1的自动重新载值与波特率之间的关系、与标准波特率的误差。

表4 定时器1的自动重装载值与波特率之间的关系、与标准波特率的误差

定时器1自动重装载值 实际波特率 理想值 波特率误差(%) 255 31250 28800 8.5 254 15625 14400 8.5 253 10417 9600 8.4 249/250 4464 4800 7/88.5 243 2404 2400 0.16

波特率=2SMOD/32×{fosc/[12×(256-TH1)]}

其中,fosc为振荡频率,SMOD为单片机的波特率倍增位,TH1为定时器1的自动重装载值。

在RS232串行通讯时,波特率发生器的误差一般都不允许超过3%,否则就会造成通讯失败,也就是说在采用12MHz晶振的51系统中只能够使用2400波特率进行RS232通讯。显然这在很多情况下都不能满足系统需要。为了满足RS232串行通讯的需要,通常选用少数特殊频率的晶振,如11.059MHz和22.118MHz。这大大减小了波特率发生器的误差(见表5),但也使得设计的灵活性大大降低。

表5 特殊频率的晶振下波特率发生器的误差

定时器1的自动重装载值 波特率(fosc=11.059MHz) 波特率(fosc=22.118MHz) 实际波特率 理想值 实际波特率 理想值 255
254
253
250
244
232
208 28799.5
14399.7
9599.8
4799.91
2399.95
1199.98
- 28800
14400
9600
4800
2400
1200
- -
28799.5
14399.6
9599.83
4799.91
2399.95
1199.98 -
28800
14400
9600
4800
2400
1200

在使用DS1077芯片的系统中,这个问题变得简单了。DS1077芯片共有133MHz、125MHz、120MHz、100MHz、66.666MHz五种型号。下面以66.666MHz的DS1077x-66为例来介绍在各种工作频率下进行RS232串行通讯的实现方案。

由于DS1077在整个温度和电压变化范围内的频率偏差小于1%,加上DS1077的输出作为单片机时钟所产生的波特率与理想值之间的误差0.47%(66.666MHz除6即11.111MHz与理想频率11.059MHz之间的误差为0.47%),完全能够满足串行通讯3%的精度要求。表6列出了单片

《工作频率可动态调整的单片机系统设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/165334.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。