基于可编程时钟控制器Intel 8254的PWM&PFM信号发生装置的设计与实现

基于可编程时钟控制器Intel 8254的PWM&
PFM信号发生装置的设计与实现


    摘 要:PWM和PFM控制技术是一项在自动化控制仪表和自动控制领域中广泛应用的控制技术,In-tel 8254(8253)可编程时钟控制器是一种24针的集成电路芯片,可应用于脉冲计数及计时程序中。文中介绍了Intel 8254的几种工作模式,给出了利用Intel 8254实现频率和脉冲宽度灵活可调的高精度PWM&PFM信号发生装置的电路图,同时给出了它的实现方法。
    关键词
:PWM;PFM;可编程时钟控制器;计数器


  PWM(脉冲宽度调制)和PFM(脉冲频率调制)控制技术是一项在自动化控制仪表和自动控制领域中广泛应用的控制技术,本文结合笔者在工作中积累的实际工作经验,设计了一种基于可编程时钟控制器Intel 8254(8253)的PWM&PFM信号发生装置,该装置输出的是频率和脉冲宽度均可灵活调整的PWM信号和PFM信号。
1 Intel8254(8253)简介
  Intel 8254(8253)IC(以下简称8254)是一种24针的集成电路芯片,可用在脉冲计数或计时应用程序中。图1给出了该芯片信号线组的逻辑布置盒以及各组的引脚数量。8254通过数据总线、读写信号线和地址信号线与系统微处理器相连接。8253与8254在引脚、内部结构和使用方法上基本相同,所不同的是8253的工作频率最高为2.6MHz,而8254的工作频率则可达到10MHz。
    Intel 8254的信号线功能如下:
    D0~D7:数据总线信号线;
  读/写控制信号线,这两根信号线可用来控制Intel 8254的读操作和写操作,它们均为低电平有效;
    :片选信号线,低电平有效;
  CLK0~CLK2:计数器0到计数器2的时钟输入;
  GATE0~GATE2:计数器0~2的门控输入,当该引脚为低时,禁止计数器工作;只有计数器引脚为高时,它们才能正常工作;
  OUT0~OUT2:计数器0~2的输出,其输出波形取决于系统的工作模式; A1、A0:寄存器选择端。
  8254片内有四个寄存器,分别为计数器0(CLK0、GATE0、OUT0)、计数器1(CLK1、GATE1、OUT1)、计数器2(CLK2、GATE2、OUT2)和控制寄存器。通过这两根地址信号线A1和A0可对这四个寄存器进行选择,当A1、A0为00时选择计数器0,置为01时选择计数器1,置为10时选择计数器2,置为11时选择控制寄存器。
  只有当CPU向8254控制器写入控制字后,即对其初始化之后,8254才能正常地工作。8254控制字的位定义见图1所示。
  在数制的选择中,对二进制计数来说,其初值范围为0000H~FFFFH,其中0000H为最大值,代表216;而在BCD码中,写入的初值范围为0000~9999,其中0000为最大值,表示104。两种数制的最小值均为0001H。
  写入控制字后,所有控制逻辑电路将复位,输出端OUT进入初始状态。在写入初值时,需要经过一个时钟脉冲后,计数器才开始计数。计数是在脉冲下降沿进行减1计数的。

2 Intel8254的工作模式
  Intel 8254可编程时钟控制器共有6种工作模式,分别为模式0(在终点计数处中断)、模式1(可编程单脉冲发生器)、模式2(速率发生器)、模式3(方波发生器)、模式4(软件触发选通)和模式5(硬件触发选通)。
  在模式0时,最初输出的是低电平,且一直保持到时钟周期数完为止。如果此时GATE为低电平,则输出关闭。图2给出了在模式0时一个计数值为4的工作实例。
  模式1和模式0有点类似,只是模式1开始时的输出为高电平。计数一开始,输出就变成低电平,并一直保持低电平直至计数结束。在计数结束后,输出变成高电平。GATE信号由低到高的转变使计数器初始化重新计数。图3显示了在模式1时一个计数值为4的工作实例。
  在模式2时,输入的时钟脉冲将被存在计数器中的数值相除。其输出在其中一个周期内处于低电平,而在其它周期中处于高电平。图4显示了在模式2时的一个计数值为4的工作实例。在这个实例中,前三个周期输出为高电平,第四个周期为低电平。

与模式1一样,GATE信号由低到高的转变即为计数器初始化。
  模式3(方波发生器)和模式2有些类似,无论计数器中的值是偶数或者是奇数,当该数比一个额外周期要高的时候输出方波。图5显示了在模式3时的一个计数值为4的工作实例。在这个实例中的输出中,两个周期是低电平,两个周期是高电平。
  模式4(软件触发选通)与模式2的不同点在于:模式4的GATE信号输入不初始化计数器。计数开始,输出从低到高跳变。当计数到终点时的一个周期内,输出跳回低电平,以后输出又跳回高电平。
  模式5(硬件触发选通)也与模式2有些类似,只是GATE信号输入不对计数有任何影响。计数开始,输出从低到高跳变,当计数到头的一个周期内,输出跳回低电平。
  表1中列出了GATE信号对各种上述各种模式的具体影响。

3 PWM&PFM信号发生器的实现
3.1基本电路设计
  利用8254三个定时计数器中的两个(定时器0和定时器1)即可实现PWM&PFM信号发生装置的设计。其中定时计数器0工作在模式2,其输出信号OUT0经过一个反向器反向后接入计数器1的门控信号输入端(将计数器0的输出信号定义为信号A,其反向后的信号定义为信号B),同时使计数器1工作在模式1,其输出信号OUT1经过一个反向器反向后为PWM或PFM信号输出(将计数器1的输出信号定义为信号C,其反向后的信号定义为信号D)。其电路简图如图6所示。

3.2电路分析
  由于计数器0工作在模式2,在这种模式下,其OUT0的输出信号A在其中一个周期内处于低电平,而在其它周期则处于高电平,A的反向信号B在其中一个周期内处于高电平,而在其它周期中处于低电平。另外,由于计数器1工作在模式1,当其门控信号B有一个上升沿的触发脉冲时,其输出信号的反向信号D输出为一个高电平的单稳脉冲,此时若B信号为连续不断的触发脉冲,则计数器1将不断反复重新计数,从而使其输出信号的反向信号D为连续不断的脉冲信号。
  保持计数器0的计数初值不变,则计数器0的输出信号A及其反向信号B的频率就不会改变,即计数器1的门控信号触发频率为恒值,这时如果改变计数器1中的计数初值,则其输出信号C及其反向信号D的输出信号的脉冲宽度将会随计数器中
计数初值的改变而改变,这样就形成了脉冲宽度可调节的PWM信号。
  同上述方法类似,保持计数器1的初值不变,只改变计数器0的计数初值,则计数器0的输出信号A及其反向信号B的频率将会因初值的改变而改变,即计数器1的门控信号触发频率为变量,那么计数器1输出信号的反向信号D的输出信号的频率就会随着计数器0的计数初值的改变而改变,这样便形成了脉冲频率可调节的PFM信号。
3.3产生PWM&PFM信号的程序
  由于只有当CPU向8254控制器存器写入控制字后,8254才能正常工作。所以,要使8254产生PWM&PFM信号,必须依照该电路设计,在编程时对计数器0和计数器1中写入相应的控制字。
  以下是利用Intel8254可编程定时计数器产生PWM&PFM信号的一段设计程序,该程序假设8254的基地址为0x3B8。




4应用实例
  图7是一个利用Intel 8254所生成的PWM信号在经过功率放大后去控制高速开关电磁阀,以实现空气压力的精密控制的原理图。

  要在图中负载中加入精确压力值的空气压力,就需通过谐振式压力传感器采集负载中空气的压力值,然后经过计算机中运行的控制程序来决定Intel8254输出PWM信号的脉冲宽度和频率,以便最终实现负载内精确压力的控制。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值