摘要:介绍一种采用可编程CMOS频率,既能满足系统要求的实时处理能力,又尽可能地降低系统的耗电量及引起的电磁干扰。同时还讨论了系统改变工作频率后对RS232串行通讯的影响以及解决办法,确保该系统在不同的工作频率下仍能正常进行RS232串行通讯的影响以及解决办法,确保该系统在不同的工作频率下仍能正常进行RS232串行通讯。这种单片机系统的变频设计提高了系统的适用范围和兼容性,使系统设计更加灵活。
关键词:可编程CMOS频率合成器 串行通讯 动态编程 DS1077
在单片机系统中,总希望单片机能够工作于最大频率,以提高系统的实时处理能力。但单片机系统工作频率越高,其耗电量及引起的电磁干扰也就越大,并且单片机工作频率的选择直接影响到RS232串行通讯。特别是在51单片机系统中,RS232串行通讯的使用往往决定了系统时钟的选用,这使得在设计单片机系统时的灵活性大大降低。在很多情况下,希望设计出一个工作频率可根据任务的轻重实时改变,并且能够在各种工作频率下进行RS232串行通讯的单片机系统,它既能满足单片机的实时处理要求,又有利于降低系统的耗电量和电磁干扰。在采用可编程CMOS频率合成器DS1077后,设计这种系统变得简单了。
1 可编程CMOS频率合成器DS1077
1.1 DS1077的引脚及其功能
DS1077是一个具有两路同步输出的单片固定频率合成器。它不需要外接任何元件即可工作,允许通过二线串行接口对频率合成器进行动态编程。DS1077的输出频率范围宽(8kHz~133MHz),且在整个温度和电压变化范围内输出频率偏差小于1%。DS1077既可作为由控制器编程的两路同步频率合成器使用,也可以当作固定频率振荡器使用。控制器可通过编程片上的两个预标定器和一个除法器来调整两路同步输出频率。工作模式和输出频率的设定值存储于片上EEPROM中。每次上电时,存储于EEPROM中的值自动弹出到各个寄存器中,使DS1077工作于以前设定的初始状态。
引脚功能:
SCL:串行时钟输入线(用于编程);
SDA:串行数据输入、输出线(用于编程);
CTR1:控制OUT1输出允许或芯片掉电模式的多功能引脚;
CTR0:控制OUT0输出允许、芯片掉电模式或MUX选择的多功能引脚;
OUT1:参考频率输出引脚;
OUT0:主振荡频率输出引脚。
1.2 DS1077的内部结构图及工作原理
DS1077内部框图如图1所示。主要由内部主振荡器、2个预定标器、1个可编程除法器和3个控制寄存器四大部分组成。主振荡器产生的时钟信号MCLK既可直接输出到OUT0,也可以经过P0预定标器分频后输出OUT0。另外时钟信号MCLK经过P1预定标器分频后要么直接输出到OUT1,要么再经可编程除法器N分频后输出到OUT1。
主时钟信号MCLK经过P0预定标器进行1、2、4或8分频后送入MUX选择器。同时,主时钟信号MCLK经过P1预定标器进行1、2、4或8分频后既可直接输出到OUT1引脚,又可输出到可编程除法器N进行2~1025之间的任一分频后送到OUT1引脚。
通过对控制寄存器进行编程,可决定DS1077输出频率和工作模式。控制寄存器的值存于片内的EEPROM中,因此只有改变输出频率和工作模式时才需要对DS1077重新编程。
1.3 DS1077的控制寄存器
DS1077的控制寄存器包括MUX寄存器、DIV寄存器和BUS寄存器共3个寄存器。MUX寄存器用于设置频率合成器的工作模式,DIV寄存器用于设置工作频率,BUS寄存器用于设置总线控制方式。它们的设置方式如下:
MUX寄存器(16位):
-
PDN1
PDN0
SEL0
EN0
0M1
0M0
1M1
1M0
DIV
-
-
-
-
-
-
其中,标志位EN0、SEL0、PDN0和引脚CTRL0对输出OUT0的工作模式进行设定,如表1所示。标志位PDN1和引脚CTRL1对输出OUT1的工作模式进行设定,如表2所示。标志位DIV决定是否使用可编程除法器N。当DIV=1时,可编程除法器被忽略;如果DIV=0,可编程除法器正常工作。标志位0M1和0M0、1M1和1M0分别决定了预定标器P0和P1的分频比,如表3所示。
表1 输出OUT0的工作模式设定
EN0
SEL0
PDN0
CTR0功能
0
0
0
掉电控制(CTR0=1进入掉电模式,CTR0=0时OUT0输出高阻)
0
1
0
OUT0输出选择(CTR0=1时OUT0输出MCLK/M,CTR0=0输出MCLK)
1
0
0
OUT0输出允许(CTR0=1时OUT0输出高阻,CTR0=0输出MCLK)
1
1
0
OUT0输出允许(CTR0=1时OUT0输出高阻,CTR0=0输出MCLK/M)
X
0
1
掉电控制(CTR0=1进入掉电模式,CTR0=0时OUT0输出MCLK)
X
1
1
掉电控制(CTR0=1进入掉电模式,CTR0=0时OUT0输出MCLK/M)
表2 输出OUT1的工作模式设定
PDN1
CTRL1功能
0
OUT1输出允许(CTR1=1时OUT1输出,CTR1=0输出高阻)
1
掉电控制(CTR1=1进入掉电模式,CTR1=0时OUT1输出)
表3 P0和P1的分频比
0M1
0M0
P0预定标器分频比
1M1
1M0
P1预定标器分频比
0
0
1
0
0
1
0
1
2
0
1
2
1
0
4
1
0
4
1
1
8
1
1
8
其中,MCLK为内部振荡器产生的主时钟信号,MCLK/M为主时钟信号经P0预定标器分频后的时钟信号。
DIV寄存器(16位):
N9
N8
N7
N6
N5
N4
N3
N2
N1
N0
X
X
X
X
X
X
10位二进制数决定了除法寄存器的值N,10位二进制数的值加2就是N的值。例如:0000000000表示2分频,1111111111表示1025分频。
BUS寄存器(8位):
-
-
-
-
WC
A2
A1
A0
如果WC=0,表示每次操作控制寄存器后自动保存到EEPROM中;如果WC=1表示只有对控制寄存器进行写操作时才把值保存到EEPROM中。A3A2A1代表该DS1077芯片在总线操作中的地址。因此,同一系统中最多可接入8个DS1077。
2 系统硬件电路及工作原理
可编程CMOS频率合成器DS1077在单片机系统中的硬件电路如图2所示。
在图2中,可编程CMOS频率合成器DS1077的输出引脚OUT1接到单片机AT89C51的XTL1引脚,单片机的XTL2引脚不接,DS1077的输出引脚OUT0不使用(在软件中禁止),CTRL1和CTRL0接地。由于AT89C51单片机没有二线串行接口,所以把DS1077的SCL和SDA接到单片机的P1.0和P1.1,用单片机的P1.0和P1.1模拟二线串行接口。
可编程CMOS频率合成器DS1077设定为:引脚OUT0禁止使用;引脚OUT1的输出频率略低于单片机的最高工作频率;BUS寄存器的WC位置1(只有向频率合成器DS1077发出写命令时才把各个寄存器的值写入EEPROM中)。这样,在每次启动单片机系统时,单片机总运行在较高的工作频率
本文关键字:单片机 动态 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术