基于32位微控制器MC68HC376的开发设计和应用
摘要:研究了一种新型的32位高性能微控制器MC68HC376,提出了一种基于MC68HC376的应用系统设计方案,对MC68HC376比较有特色的部分做了深入的开发和讨论,通过一种实际产品验证了该方案的可行性。
关键词:32位微控制器 MC68HC376 可构造时钟模块(CTM4) 模数转换器(QADC) 系统设计 测频
MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,可以实现诸如人工智能、模糊控制等复杂的控制运算模型,有很好的开发前景。其开发手段简单、方便。芯片支持BDM(Background Debug Mode)模式,通过简易的专用电缆接口,而不需要使用传统的仿真器和编程器就可以直接对微控制器系统进行仿真开发和烧录程序。本文介绍了在电力系统保护中应用MC68HC376的一种实际开发方案。
1 MC68HC376的基本特性
MC68HC376具有速度快、并行处理能力强、可靠性高、功耗低、功能强大等优点。与目前常用的8位、16位微控制器比,其片内资源极其丰富,适应于各种控制场合;内部集成度高,硬件可靠性和稳定性强,外部扩展工作少,开发周期短。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1.1 主要功能模块
MC68HC376为160脚的封装结构。其主要功能模块包括32位CPU;系统集成模块(SIM)、4KB备用RAM;8KB片内ROM;10位队列式的模数转换器(QADC),具有强大的数据转换控制功能;队列式串行通信模块(QSM),可以方便地实现同步、异步通信功能;可构造时钟模块(CTM4),具有多种强大的定时、计数和脉冲调制功能;时间处理单元(TPU),可对各种事件进行快速智能处理;3.5KB静态TPURAM;CAN控制模块(TOUCAN),能方便地实现工业自动化等场合的局域网络控制。
1.2 基本性能
(1)24位地址总线,16位数据总线,支持32位数据操作;
(2)2个8位双功能I/O,1个7位双功能I/O,16~44个模拟量输入通道;
(3)具有系统保护逻辑,同时可进行时钟监视和总线监视;
(4)速度快,在4.194MHz晶振下,系统时钟可达20.97MHz;
(5)功耗低,具备低功率休眠功能;
(6)支持高级语言和背景调试。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 基于MC68HC376的系统设计
2.1 片外Flash和RAM的扩展
MC68HC376有24位地址线和12位可编程的片选线。每根片选线可选通2KB~1MB的地址区,因此MC68HC376具有很强的扩展能力。注意:CS[6~10]与ADDR[19~23]复用。如何合理地安排这些线和片选线是系统优劣的关键。
本系统扩展了2片128KB的片外Flash 29C010A,2片128KB的片外RAM HM628128,扩展电路中图1所示(其中的片选信号均采用10kΩ的上位电阻,图1未画出)。
值得注意的是:Flash和RAM均由A[1~17]寻址,实际上是一种字寻址方式,最低位A0不用。2片Flash和2片RAM的数字口分别接至MC68HC376的D[8~15]和D[0~7],对应字的高低字节。在程序中应注意存放高字节折芯片对应字的低字节地址。
2.2 系统功能选择电路设计
与MCS-51和MCS-196系列单片机不同的是,MC68HC376复位时数据线状态决定控制器某些相关的功能和操作模式。因此,根据实际系统的功能需要来选择对应的复位状态,是系统设计的一个重要环节。
所有数据线都有内部弱上拉电阻,复位时默认状态为高,对应系统相应的默认功能;当需要利用其非默认功能时,需要强制电路使用应数据线在复位时电位为低。相应的模式选择电路如图2所示。
为了避免复位时MCU与外部读写器件冲突,引入DS和R/W为门控信号。这里,将SIM模块构造两个通用的并行I/O口,将DB8和DB9在复位时强制为低;而片选脚分别作为片选或者输出口,所以DB[0~7保持默认状态;因系统采用晶振作为外部参考频率源,所以MODCLK脚也应保持默认状态。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.3 时钟部分的设计
2.3.1 系统时钟的获得
本系统采用晶振作为外部参考频率源,电路和普通晶振电路一样。但要注意确保MODCLK脚在复位时为高,否则系统会出错。
本系统采用Motorola公司推荐的4.194MHz晶振频率,同时通过写时钟合成控制寄存器SYNCR中的相关位来获得一定的系统时钟。系统时钟频率与SYNCR的W位、X位和Y[0~5]区的值有关:Fsys=Fref×[4(Y+1) ×2 (2W+X)]/128
当写入W=1,X=0,Y=100111时,Fsys=5Fref=20.97MHz。(注意:不要超过MC68HC376系统频率的最大允许值20.97MHz)。
2.3.2 外部滤波电路
由于采用外部参考频率源,所以需要在XFC脚上接入滤波电路。应尽可能降低XFC脚的泄露电流,以提高时钟的稳定性和内部锁相环的性能。滤波电路如图3所示。
2.4 输入输出通道
系统输入输出通道包括模块量输入、开关量输入、键盘输入、液晶显示、控制量逻辑输出等部分。为了减小干扰,开关量输入采取光电隔离方式。运用MC68HC376的CTM4模块测量频率,由QADC模块实现队列式的模数转换功能。
2.4.1 应用CTM4进行频率测量
Motorola公司的CTM4模块包括总线接口单元BIUSM、计数器分频子模块CPSM、1个16位自由计数器FCSM、2个16位可自动得装载计数器MCSM、4个动作单元DASM、4个脉宽调节子模块PWMSM。
CPSM通过对系统时钟分频向CTM4各个模块提供6种不同的计数时钟PCLK1~PCLK6。在运行CTM4各个单元之前,应先设置并启动CPSM。注意,CPSM的构造值关系到实际测频和测周结果的计算。
在实际测量中,为了提高测量精度,javascript:window.open(this.src);" style="cursor:pointer;"/>对于较高的频率采用计数测频法,外部信号经过滤波、过零比较后同时接入MC68HC376的CTM2C脚和CTD3脚,由软件选择判断实际采用的方式。测频子程序包括测频部分(流程如图4)和计数测频部分(流程如图5)。
(1)通过测周间接测频
当待测频率不高时,采用测周测频方法。DASM单元的特点在于不需要软件的干预而自动高速、精确地捕捉CTD3脚上两个连续的上(下)跳沿,两次捕捉的时间差即为待测信号的周期。
(2)通过计数器直接测频
当待测频率较高时,采用直接测频方式。用CMSM2作定时器,利用FCSM12对CTM2C引脚的方波信号进行计数。
(3)应用CTM4测频的几个实际问题
应用CTM4测频的程序结构并不复杂,但有几个实际问题值得注意:
·启动CTM4后,不应立即启动CPSM产生时钟,否则会因为程序在设置相应子单元时不同步而造成测量误差。
·在完成一次测周后,一般应选择模式0停止DASM;但注意在停止DASM时,实际对DASM还有一个复位动作,所以最好在关闭DASM前读出捕捉寄存器A、B的值。而一般的定时计数器都是在停止后读值。
·在使用计数测频方式时,FCSMCNT在不溢出的状态下最大可计量2 16Hz的频率。这对更高频率的测量是不够的。设置一个溢出计数器N,在每次溢出中断时加1计数,同时,因此CTM2C脚最大允许输入为Fsys/4,所以在20.97MHz的系统频率下,N使用8位计数器就可以满足要求(FCSMCNT溢出中断处理程序的流程图略)。
·判断是采用计数测频还是测周测频的频率定值,应该以减少测量误差为准则,需要对理论误差进行计算,同时根据实际测量情况进行调整。
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]。最后在数据方向寄存器DDRQA中将相应位清零,即管脚设为输入。
(2)构造队列和命令字表
先通过控制寄存器QACR1和QACR2中的MQ1和MQ2区选择队列1和2工作方式。为减少软件干涉、提高转换程序效率,设置MQ1=MQ2=101,javascript:window.open(this.src);" style="cursor:pointer;"/>即软件触发的连续扫描方式。根据所测频率经过软件倍频后可以很容易地对相关量进行跟踪采样,而不需要外部锁相跟踪电路。然后,按一定的顺序和优先级来组织队列。
由于没有多路复用,这里用16个转换命令字(CCW)分别控制16路输入通道。在CCW中写入通道号、采样输入时间选择和放大模式选择。转换命令字表中最多可有40个CCW。
(3)构造中断和结果读取
在QADC结构寄存器QADCMCR中写入中断判决号,注意中断判决号应该是非零且唯一的;写队列控制寄存器QACR1(2),设置中断允许位CIE1、CIE2;写QADC中断寄存器,通过IRLQ1(2)区设置队列1(2)的中断优先级,通过IVB区提供QADC中断向量号的高6位。
当队列转换完成后申请中断,中断服务程序从结果字表中读取转换结果。然后清除队列状态寄存器QASR中的中断标志位CF1、CF2,准备下一轮队列转换。
2.5 通信口电路
本系统包括RS-232接口和CAN接口。RS-232接口通过队列式串行模块QSM和外部的MAX232芯片连接实现。CAN接口通过TouCAN模式与外部的CAN250芯片连接实现。
3 应用实例
应用该方案的数字式低频低压控制装置RSA800,通过实时测量电力线的电流、电压和频率,进行综合快速的分析判断,从而形成保护决策。该装置已通过电力工业部电力设备及仪表质量检验测试中心的产品形式试验,各项指标均合格。通过国家电力公司主持的产品鉴定,鉴定结果为:该装置技术先进、性能可靠、适应性强,达到国内同步装置领先水平。这充分验证了该方案的可行性。
本设计方案充分利用MC68HC376内部功能,外部结构简单。系统能对多种模拟量、开关量以及频率信号做精确的测量。根据不同的应用程序可灵活实现各种应用控制功能,应用面广、可再开发性强。系统性能高,可实现高级控制算法,通过RS-232和CAN接口可方便地实现各种联合控制功能。系统稳定、可靠。