正是基于单片机这种电路结构,根据等精度原理,提出图4所示的系统框图。单片机加CPLD结构,利用单片机内部定时器定时,外部CPLD实现等精度测量逻辑电路和计数功能。基准时钟fb由单片机晶振提供,频率为单片机时钟晶振12分频后所得机器时钟。预置闸门由单片机引脚P1.0输出控制,计数器清零和复位由单片机引脚P1.1输出控制,单片机引脚P3.2是内部定时器使能开关控制引脚。
2.2单片机与CPLD接口设计
图5所示为一种基于总线的接口方案,采用三总线(数据、控制、地址)结构,用于实现单片机与CPLD之间的数据传输。
单片机P0口为双向数据总线,与CPLD的通用IO口连接,完成数据和低8位地址传送。控制总线包括单片机读写控制总线RD和WR,以及地址锁存信号ALE(Address Lock Enable)。地址总线A15(P2.7)通过CPLD的全局输入信号引脚输入。
2.3 CPLD电路
CPLD内部电路原理框图如图6所示。当预置闸门GATE输入高电平时,由于DFF触发器为边沿触发器,在上升沿时才将数据输出,所以Q输出端并不立即置1,只有当外部信号上升沿到来时,Q才为1,使能计数器和定时器。这样保证了计数器和定时器在被测信号的上升沿到来时同时有效。当预置闸门GATE=0关闭时,两计数器的允许信号同样在被测信号的上升沿到来时同时关闭。由于基准信号的定时器与被测信号严格同步,所以理论上最大误差只有基频的一个周期。CPLD内计数器为32位,在预置时间内,只要计数器不溢出,即可准确测量被测信号个数。
3方案实现
3.1电路原理
电路原理如图7所示。图中给出了单片机(STC89C52RC)与CPLD(
ATF1504AS)的具体接口电路,LCD1602接口电路,带ISP下载接口的CPLD电路,被测信号从J1直接输入给CPLD I/O引脚。这里没有给出信号前置调理与波形整形电路。
3.2 CPLD电路设计
CPLD开发选择Altera公司的EDA软件QuartusII和目标器件EPM7064SLC44=10,需要完成电路设计输入、编译、仿真、引脚绑定(引脚分配请参考电路图),并编译得到最终配置文件*.pof。然后再使用
Atmel公司提供的转换工具POF2JED软件将前面得到的*.pof文件转换成*.jed文件,再用
AtmelISP软件将*.jed文件下载到CPLD器件
ATF1504即可。