所有数据线都有内部弱上拉电阻,复位时默认状态为高,对应系统相应的默
认功能;当需要利用其非默认功能时,需要强制电路使相应数据线在复位时
电位为低。相应的模式选择电路图略(详见《电子技术应用》2002.10)。
为了避免复位时MCU与外部读写器件冲突,引入DS和R/W作为门控信号。
这里,将SIM模块构造成两个通用的并行I/O 口,将DB8和DB9在复位时强制
为低;而片选脚分别作为片选或者输出口,所以DB[0~7]保持默认状态;因系
统采用晶振作为外部参考频率源,所以MODCLK脚也应保持默认状态。
2.3 时钟部分的设计
2.3.1 系统时钟的获得
本系统采用晶振作为外部参考频率源,电路和普通电路一样。但要注意确保
MODCLK脚在复位时为高,否则系统会出错。
本系统采用Motorola公司推荐的4.194MHz晶振频率,同时通过写时钟合成
控制寄存器SYNCR中的相关位来获得一定的系统时钟。系统时钟频率SYNCR
与的W位、X位和Y[0~5]区的值有关:Fsys=Fref x [4(Y+1) x 2(2w+x)]/128。
当写入W=1,X=0,Y=100111时,Fsys=5Fref=20.97MHz。(注意:不要超
过MC68HC376系统频率的最大允许值20.97MHz)。
2.3.2 外部滤波电路
由于采用外部参考频率源,所以需要在XFC脚上接入滤波电路。应尽可能降
低XFC脚的泄露电流,以提高时钟的稳定性和内部锁相环的性 能。滤波电路图
略(详见《电子技术应用》2002.10)。
2.4 输入输出通道
系统输入输出通道包括模拟量输入、开关量输入、键盘输入、液晶显示、
控制量逻辑输出等部分。为了减小干扰,开关量输入采取光电隔离方式。
运用MC68HC376的CTM4模块测量频率,由QADC模块实现队列式的模数转
换功能。
2.4.1 应用CTM4进行频率测量
Motorola公司的CTM4模块包括总线接口单元BIUSM、计数器分频子模块
CPSM、1个16位自由计数器FCSM、2个16位可自动重装载计数器MCSM、
4个动作单元DASM、4个脉宽调节子模块PWMSM。 GPSM通过对系统时
钟分频向CTM4各个模块提供6种不同的记数时钟PCLK1~PCLK6。在运行
CTM4各个单元之前,应先设置并启动CPSM。注意,CPSM的构造值关系到
实际测频和测周结果的计算。
在实际测量中,为了提高测量精度,对于较高的频率采用计数测频法,对于
较低的频率采用测周测频法。外部信号经过滤波、过零比较后同时接入MC68
HC376的CTM2C脚和CTD3脚,由软件选择判断实际采用的方式。测频子程
序包括测周测频部分(流程图和计数测频部分图略,详见〈电子技术应用〉
2002.10)。
(1)通过测周间接测频
当待测频率不高时,采用测周测频方法。DASM单元的特点在于不需要软件
的干预而自动高速、精确地捕捉CTD3脚上两个连续的上(下)跳沿,两次捕捉的
时间差即为待测信号的周期。
(2)通过计数器直接测频
当待测频率较高时,采用直接测频方式。用CMSM2作定时器,利用FCSM12
对CTM2C引脚的方波信号进行计数。
(3)应用测频的几个实际问题
应用测频的程序结构并不复杂,但有几个实际问题值得注意:
*启动后,不应立即启动产生时钟,否则会因为程序在设置相应子单元时不
同步而造成测量误差。
*在完成一次测周后,一般应选择模式0停止DASM;但注意在停止DASM时,
实际对DSAM还有一个复位动作,所以最好在关闭DASM前读出捕捉寄存器A、
B的值。而一般的定时计数器都是在停止后读值。
*在使用计数测频方式时,FCSMCNT在不溢出的状态下最大可计量216Hz的
频率。这对更高频率的测量是不够的。设置一个溢出计数器N, 在每次溢出
中断时加1计数,同时,因为CTM2C脚最大允许输入为Fsys/4,所以在20.97M
Hz的系统频率下,N使用8位计数器就可以满足要求。
*判断是采用计数测频还是测周测频的频率定值,应该以减少测量误差为准
则,需要对理论误差进行计算,同时根据实际测量情况进行调整。
2.4.2 利用QADC模块实现A/D转换
QADC的主要功能模块包括两个队列(QUEUE)、命令字(CCW)表、结果字
表和一些相应的控制寄存器。QADC的最大特点是能够通过寄存器和命令组织
待转换的模拟量,使其按一定的队列形式在一定条件下触发转换序列,并将结
果按一定的格式放于结果字表中。在实现A/D转换时 要进行的工作如下:
(1)构造相关的管脚
QADC的管脚可作为模拟量I/O、数字量I/O或多路复用功能脚。在使用相应
管脚之前要先对其进行构造。本系统中16路模拟输入口已经够用,不需多路复
用(可达44路),因此先对控制寄存器QACR0中的MUX位清零。相应管脚的引
用名称为AN[52~59]、AN[48~51]、AN[0~3]。最后在数据方向寄存器DDR
QA中将相应位清零,即管脚设为输入。
(2)构造队列和命令字表