微控制器范文

时间:2023-03-27 22:13:42

导语:如何才能写好一篇微控制器,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

微控制器

篇1

【关键词】微控制器;软硬件;抗干扰设计

随着微控制器在各个领域中的广泛应用,其对于现代工业的贡献也越来越大。微控制器的抗干扰性能好坏,是影响着工业生产安全和日常使用感受的重要因素,因此必须要高度重视。然而,由于周围环境的复杂情况,微控制器工作时会受到多重干扰。

一、干扰造成的软件问题

微控制器内部的计数器的PC状态通常指向我们需要其指定的地址空间的固定位置,然而,若PC状态被破坏,程序丧失了稳定性,系统就会失控,CPU执行的指令也会随之发生错误,持续性的长期错误,就会导致程序最后“死机”而无法运行。CPU与外部设备的接口非常敏感,一旦发生干扰,二者之间的查询-中断的工作方式就会被打乱。CPU不断的进行中断操作,重复到一定程度,就会引发系统的“死锁”结果。软件控制状态受到干扰,造成输出条件发生偏差和错误,从而引起软件控制的逻辑处理失灵。

二、软件处理干扰问题的对策

(一)设计程序进行自检

工程师针对微控制器内部的某些单元设定特殊标志,设计随开机自动启动的自检程序,对微控制器进行不断的循环检测,以保证系统能够一直正常运行。

(二)冗余技术

冗余技术氛围指令冗余和数据冗余两种方式。

1.指令冗余

程序指令多为双字节、三字节或多字节,超过单字节的指令在微控制器的内部计数器发生PC值混乱时容易出现“乱飞”现象,频繁发生程序死循环。因此,操作指令应该尽量多用单字节,并在适当的地方进行人为重写操作或灵活使用NOP指令,通过指令冗余的方法来避免干扰造成的“死机”。

在双字节或三字节指令后紧跟着使用NOP指令,数量为两条最佳。这样可以保证PC数值指向操作数时,后面的指令不会被执行。需要注意的是NOP指令的数目问题,若NOP指令过多,将会影响程序的运行速度,因此,需要根据实际情况每隔几条指令插入一条或一对NOP指令。如在跳转指令(LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ)前或一些重要指令(SETB EA)前插入。

然而,插入NOP指令的操作没有修正之前的错误,随着错误的不断累积,最终仍会影响系统运行,因此,需要编写一些重要指令(常用RET、RETI、LCALL、LJMP、JZ、JC等),以使得系统遇到干扰时不会失控,继续遵循着引导方向运行。

2.数据冗余

RAM是微控制器参数所存储的区域,分为运行和备份两个部分,微控制器断电易造成RAM的数据破坏,从而发生CPU执行错乱或系统无法运行的问题。因此,可以通过备份操作来保证RAM数据的保留,系统复位后,利用备份文件恢复RAM数据。RAM的备份区域建议再分,建立双重或多重备份,其中一份作为片内RAM存在,其它备份作为片外RAM,这样在片内RAM被堆栈操作冲毁数据时,可以保证备份数据的可用性。总之,备份数越多,就越可靠。还可以在RAM区设计专门程序进行数据的检测和自救,增加锁定操作,实现多重保证。

(三)利用软件技术制作陷阱

本文之前提到的指令冗余方法适用于PC指向还处于程序区的情况,若PC指向已经飞到非程序区,就只能用软件技术来制作陷阱了,即设置一个软件陷阱(错误地址为ERR时使用NOP、LJMP ERR指令),将错误的程序引入专门的地址,以便程序可以对出错问题进行处理。

软件陷阱的设置有特定的位置:

1.正常程序不会执行到的地方。

2.表格尾部:为了保证表格的连续性。

3.不在使用状态的EPROM单元。

4.不在使用状态的中断向量区。

(四)“看门狗”软件

这种技术方法适用于指令冗余和软件陷阱都不起作用的情况。看门狗软件可以模仿人工方式,对程序实行监视,一旦发生“死循环”现象,就能强迫程序返回特定区域,再通过其他处理程序,使系统恢复正常。需要注意CPU会受到PC值影响故看门狗不能依赖CPU,必须能够独立操作。看门狗主要通过周期性的定时与CPU进行联系来确保系统正常运行。CPU一卡机就能发现,以保证系统能及时复位。以MCS-51型号为例,晶振频率设为6MHZ,可编程:

(五)程序自救法

程序自救法即采用指令冗余和软件陷阱还有看门狗技术来解决CPU失控的问题。遇到干扰的入侵,程序会自动恢复至初始入口。

(六)滤波法

叠加的噪声干扰因为其随机性的特征,容易造成测量偏差很大,因此需要通过滤波法进行降噪处理。低通滤波方法和滑动平均滤波可以抑制周期性的干扰,中位值滤波则抑制偶然的波动干扰或仪器不稳造成的脉冲干扰。

(七)躲避法

鉴于软件操作比硬件操作要简单方便,因此面对电源过压、尖峰干扰等强干扰发生时,可以采取躲避法。

在系统与大功率负载发生接通或中断操作时,利用软件设计停止CPU运行,避其锋芒,这样可以减少系统的故障频率。

如CHMOS微控制器具有待机、掉电两种模式,电源控制器PCON的DO值指向1则变成待机模式,计数器、指针、RAM信息自动保存;若要退出待机状态,可用硬件复位或RETI指令。

(八)开关量软件

开关量软件主要是为了排除占绝大多数的瞬时输入故障,针对离散尖脉冲干扰。

三、微控制器干扰问题的硬件处理――电磁兼容设计

微控制器抗干扰能力受到其自身电磁兼容能力的限制,想要解决微控制器的干扰问题,从硬件角度来说,就是要进行科学的电磁兼容设计。

(一)抑制客观存在的干扰源

抑制干扰源的前提是找到干扰源,然后尽力降低干扰源的du/dt和di/dt,或者为继电器加增续流二极管,为可控硅降低噪声。

图1

图2

(二)切换耦合途径的干扰

1.电源、接地线抗干扰

微控制器电源多余电网接通,电网中大型设备的起停会产生电压改变,对微控制器形成干扰。这种电源耦合干扰占干扰原因的一大半,因此,需要将电源做好。在变压器可以加增一个滤波器,过滤掉较强的传导干扰和脉冲干扰,并限制正常电压;或者在电路板布线时选用粗直径的电线来降低耦合噪声,进一步减少噪声对电源线和地线的干扰。接地电路的点多少以1MHZ、10MHZ为分界线,不足1MHZ,介于1-10MHZ与超过10MHZ的接地形式如图1所示。

2.隔离

隔离方式抗干扰可以通过电磁或光电方式来实现。电磁隔离主要通过变压器来切换环路造成独立无扰。光电隔离则通过光电耦合进行无导线传递电流,这一方式可以抑制尖脉冲与噪声干扰(见图2)。

3.屏蔽

铜铝等材质的封闭金属盒可以抑制电场干扰并屏蔽静电,可以用于敏感器件的保护。

4.其他

余下还有许多硬件屏蔽干扰的方法,如磁珠、多层板的使用,接插件、模拟电压输入线的安装方式等,都可以有效降低电磁干扰,鉴于篇幅有限,这里就不一一赘述了。

四、结语

微控制器的抗干扰设计涉及的情况非常复杂,其设计的好坏、完善与否,均影响着整个系统的性能发挥。本文从软件和硬件两个角度进行深入分析,为实际开发工作提供尽可能全面的依据。

参考文献

[1]郑高辉,高利辉.家用空调直流变频控制器的抗干扰设计[J].家电科技,2013(12).

[2]尹明,张金凤,刘吉军.微控制器系统PCB的EMC问题和抗干扰设计[J].齐齐哈尔大学学报,2002(02).

[3]吴增桂.浅析电动机保护器系统抗干扰设计[J].科技创新导报,2010(17).

篇2

微控制器(Microcontroller)自上世纪70年代出现以来,在将近30年的时间里得到了迅猛的发展和广泛的应用。随着微电子技术的飞速发展,微控制器以其性能好、体积小、价格优、功能齐全等突出优点被广泛应用于家用电器、计算和外设、通讯、工业控制、自动化生产、智能化设备以及仪器仪表等领域,成为科研、教学、工业技术改造最得力的工具。从最初采用普林斯顿结构的简单微控制器到现在普遍采用哈佛总线结构的RISC微控制器,微控制器取得了飞速的发展。

8位微控制器目前应用数量最大的微控制器,也是目前最多公司致力耕耘的市场;其市场及价格竞争都极为激烈,各种多功能需求以及不同规格的产品推陈出新的速度也极为快速。随着集成电路和半导体工艺技术的快速发展,FPGA和SOC技术的不断竞争和融合,电子产品的设计逐渐向系统性能更好、功耗更小、成本更低、可靠性更高、开发更容易的方向发展。因此,迅速推出符合市场需求的高性价比、低功耗、高经济效益的8位微控制器芯片或IP Core成为了现今不少公司竞争相逐的热点。

2.目前8位微控制器的更新和设计趋势

对于不同的微控制器(MCU)产品应用,不仅需要考虑不同厂家MCU的性价比,而且还需要考虑不同指令系统下MCU应用特点。针对不断涌现出来的新的智能化电子产品,们一直在开发适合于不同嵌入式系统应用的MCU新产品[2].不同厂家的MCU产品其指令集各不相同,特别是指令集系统架构的不同,如市场上广泛应用的MCS51系列和PIC系列微控制器则分别采用CISC指令系统和RISC指令系统。

微控制器按照指令系统可以分为CISC、RISC、类RISC(RISC-LIKE)等几种。传统的MCS51控制器属于CISC型,其代码密度高,但大多数指令需要多个时钟周期完成。RISC型一般指令密度较低,但指令效率很高。类RISC型则兼有CISC和RISC的优点。RISC和类RISC之所以有如此高的指令效率,得益于小指令集带来的硬布线结构和流水线结构。简单的指令集可以用硬布线进行指令译码,而不需要用微码控制的方式,提高了译码的效率。流水线结构将指令分成几步完成,在流水线填满工作时,每条指令的平均执行时间(CPI)在1个时钟周期左右[3].一般来说,RISC比同等的CISC要快50%——70%,同时更容易设计和纠错。

因此,目前对8位微控制器的产品开发和研究设计主要是以兼容市场上已被客户广泛采用的产品为前提,不断提高性能并降低功耗以适应市场竞争和技术发展。对于原先为CISC指令系统的微控制器产品,在层出不穷的更新系列中已经渐渐的融合进了RISC思想;对于采用RISC指令系统的微控制器来说,更多的做法仍然是针对高性能低功耗的需求对其整个体系架构不断地进行优化和改善,尤其是流水线结构的改进最为多见。本文正是在种形势下提出的,主要讨论RISC体系架构的8位微控制器产品的设计技术。

3.RISC微处理器的结构特征和设计原则

虽然现在业界对RISC 处理器应该具有什么特征还有不同的看法,但是各种RISC结构都有一些共性:(1)采用哈佛总线结构,大多数指令在一个时钟周期内完成以便于实现结构流水化;(2)采用独立且简单的装载/存储结构;(3)指令解码通常都是硬连线实现而不是微解码,以便加快执行速度;(4)多数指令具有固定格式,以简化指令编码和译码;(5)较小的指令集和少数几种寻址模式;(6)数据通道流水线化,使处理过程高度并行;(7)采用大容量高速寄存器堆(或称为寄存器文件),尽量避免与速度较低的系统RAM交换数据。尽量将运算数据存放在寄存器中,从而减少访问内存的次数。根据以上的讨论,下文重点从体系架构的角度出发,就高性能、低功耗两方面对8位RISC微控制器在设计中的关键技术进行了探讨研究。

4.关键技术

4.1 RISC指令集的选取

控制器系统的使用跟软件编程与硬件设计之间的规格接口密切相关,这个接口就是微控制器的指令集。指令体系结构(ISA)是进行微处理器软硬件协同设计的前提。指令集必须完备,使所有可计算的功能都在合理的程序空间内得以实现;而且指令集又必须是高效的,以便使常用的功能可以用相对少的指令实现。因此,提供给应用软件开发的微控制器系统必须有一个完备而高效的指令集。

指令集直接决定微控制器的内部硬件结构,同时也是用户程序编译生成目标代码的依据。指令集的最终确定与整个系统所需的程序存储器、数据存储器、寄存器变量及存储器寻址方式密切相关且相互制约。各个部件乃至具体的字节都应该有唯一的地址,以便指令集能够正确对各个部件或字节进行辨认操作。因此也就有了相应的一系列针对不同产品的不同措施: 1)从所需要的地址度和相应增加的寄存器来权衡指令的长度;2)对指令进行分类并分别确定各类的指令字节格式,以简化操作控制信号的译码逻辑;3)增加相应的寄存器以弥补指令字节长度的不足;4)指令字节格式分配应考虑到相应部件的结构复杂度及对应的寻址方式;5)存储器、寄存器、I/O口是否统一寻址。以上所列举的并不详尽也无先后顺序之分,应该同时进行分析。相应的措施所对应的性能、功耗、设计复杂度各不一样,应统一考虑。

对ISA进行功耗分析应该从指令代码容量和指令执行效率两方面考虑。指令集大小、寄存器变量、存储器寻址方式、流水线结构等技术的选定都和指令代码密度有紧密联系。研究发现,在RISC的精简指令集中适当增加一些特定的复杂指令不失为提高代码密度、保证处理器高性能、低功耗的可行方法。因此能够产生高指令代码密度的指令集无疑是RISC低功耗设计的首选。

4.2 具有共享区的寄存器堆的分页设计

RISC设计思想的最主要特点是所有的操作都是面向寄存器的。利用寄存器——寄存器操作的指令进行数据传送,加快了速度,而且还简化了指令控制逻辑,缩小了硬布线逻辑构成的控制部件的芯片面积。

在指令中固定寄存器地址的位数必然限制寄存器的数量,但是引入高端处理器的分段、分页的设计思想就可以扩展寻址的范围。分段、分页的设计思想的根本出发点在于将存储器的线性地址分解成二维或多维地址;在指令中只表达最低维地址,而使用其它设施(如段号寄存器、页号寄存器)用来存放高维地址。一般将寄存器堆分成若干个页,每个页有固定的大小,在指令中只使用寄存器的页内地址。在系统专用寄存器中设置一个页号寄存器,通过改变其内容来切换对不同页寄存器的访问。

为克服单纯分页机制中的各种缺陷,通常采用具有共享区的分页设计,这样不仅减少了指令中寄存器逻辑地址的位数,而且在任何时候都能够访问系统寄存器,同时便于不同页寄存器之间通过共享区中的通用寄存器交换信息。当然还得有相应的逻辑地址到物理地址的映射的方法措施。

4.3 程序空间的分页设计

由于和寄存器堆同样的原因,在指令中若采用完整的程序空间地址,也会局限程序空间的大小,所以对程序空间通常也采用了分页的设计思想,同时在不同页内设置了公共程序区(若指令长度完全符合程序空间地址的要求,则无需此思想),其设计思想类同于具有共享区的寄存器分页设计,在此不再赘述。唯一与寄存器公共区不同的是:程序公共区是为程序在不同页之间跳转提供平台。

4.4 流水线技术

流水线设计与8位RISC微控制器体系架构密不可分,是整个系统的设计核心,它的选用优劣直接影响到系统的性能和功耗。

流水线技术能最大限度地利用了微控制器资源,使每个部件在每个时钟周期都工作,大大提高了效率,但由于流水线的各个段之间存在很强的依赖关系。如果处理不当, 指令的运行将达不到预期的结果,因此必须熟知流水线的相关和转移问题。其一为资源冲突, 即同一时间内争用同一功能部件, 一般为同时访问存储器, 这就需要停顿一拍流水线; 其二为数据相关冲突, 有三种类型: RAW、WAR、WAW , 解决该冲突使用内部直通结构或者延迟一拍流水线; 其三为控制转移冲突, 即对于条件跳转指令, 根据运算结果判断是否跳转, 才能确定新的PC值, 运算结果是在执行阶段后获得, 这使流水线丧失很多的性能, 一般采用增加硬件预先获得运算结果解决该冲突。

越是长的流水线,相关和转移两大问题也越严重:一方面导致硬件控制电路复杂程度大大增加, 另一方面, 由于流水线节拍的停顿, 导致CPI值的增大及系统性能的下降。所以,流水线并不是越长越好,找到一个速度与效率的平衡点才是最重要的。

在8位RISC微控制器的流水线设计中,存在很多种方案。不同方案所对应的面积、速度与功耗各不相同。具体的选用则应该从多个方面融合考虑。首先应该由系统的工作速率要求和流水线级数、深度推导出多种具体的流水线结构方案及其所需要的严格时序;然后从系统的功耗、面积、性能及由流水线相关和转移问题引起的设计复杂度等方面考虑出发,判断各方案的优劣;最后折衷选择符合的最优方案。

4.5 低功耗技术

随着半导体工业的迅猛发展,集成电路进入深亚微米阶段,微处理器的时钟频率和芯片集成度不断提高,功耗已在很多设计领域成为了首要关注的问题,这点最为突出的即是高性能微处理器和便携电子设备产品。

在根据系统功能说明进行软硬件协同设计、确定指令体系结构时,不同的设计出发点所导致的设计功耗结果差别会很大。因此整个体系架构的确定无疑是低功耗问题应该考虑的首要问题,主要体现以下几个方面:1)尽可能根据功能需求优化指令集,简化系统的译码单元和执行单元;2)通过开发硬件的并行性以及功能单元的流水执行来实现低功耗的结构;3)合理设置确定存储器、寄存器的容量,减少所需的总线数目;4)系统硬件的各个子模块划分以及软件上设置不同的工作状态对功耗的优化非常重要。

篇3

便携式产品的功能和性能日新月异。消费者对产品性能的要求也越来越高,需要更强大的运算能力支持;另一方面,希望产品具有更低的功耗。

尽管已经出现了很多功耗处理器,但它们的性能通常很有限。Dallas公司的系列高速微控制器在性能和功耗之间取得了一个很好的折衷,采用了8051架构——世界上最流行的微控制器之一。简单易用、丰富的I/O资源使这种微控制器深受设计者的喜爱,并被广泛接受。它的流行势头已蔓延到了便携式领域,在很多应用中都有其用武之地。

本文旨在探讨使用8051控制器时,如何降低功率的消耗,重点介绍一种改进架构的高性能8051设计。

1 时钟频率

任何微控制器设计中,决定功耗的一个首要因素就是系统的时钟频率。互补金属氧化物半导体(CMOS)工艺的器件功耗直接正比于时钟频率。因此,从省电的角度考虑,将处理器运行于尽可能低的频率比较有利。

图1表示一个普通的8051微控制器的典型功率曲线,一个被所有便携系统设计得所熟知的关系。一般来讲,电流随频率的变化曲线为线性,具有一定的DC偏移。这个静态电流由片由的静态电路所消耗,例如比较器、运算放大器等。其数值一般很小(<1mA),是一个不可忽略的固定吸收电流。

任何功率受限的设计都应该考虑采用尽可能慢的运行速度。决定最低系统频率,也就是最低功耗的,有很多因素,包括期望得到的系统性能、中断响应延尽等。不管采用什么标准,最终目标是相同的:使器件的工作频率尽可能地靠近应用的需求。

2 高速内核

要降低基于8051系统的功率消耗,最直接的办法就是改善微控制器的效率。8051最初的设计采用了一个12时钟周期、每机器周期两次取指的架构。然而,高速微控制器采用的是每机器周期4个、甚至1个时钟的内核。它们具有更高的运算效率,执行一个指令需要很少的时钟周期,具有更快的运行速度和更高的时钟频率。

尽管高速核的优势通常考虑其处理能力,它们在降低功耗方面有很重要的意义。当处理器的运行指令经过优化后,执行同一任务所需的时间很短。很多便携式产品工作在猝发模式,其特点是只很短的活动时间,例如记录环境数据或扫描一个条码,而在随后的很长时间内都处于非活动状态。减少处理器的活动时间可以相应地降低功耗。

效率提升带来的另一个好处是,获得相同的性能所需的时钟频率可以更低。如果一个经过重新设计的内核采用4时钟机器周期而非12时钟,这就意味着完成同样的工作,只需更低的晶振频率。由于功率正比于晶振频率,这样,不必牺牲性能即可降低功耗。

图2显示三种微控制器以同样的速度完成同一任务时的功耗情况。其中两种是标准80C3X的衍生产品:一种是工作于每机器周期12个外部时钟方式;另外一种是DS80C320微控制器,工作于4时钟机器周期。测出各个器件的消耗电流,然后进行对比,保守地估计DS80C320具有250%(2.5倍)的速度提升。正如图2所显示的,每周期时钟数减少后的处理器内核工作于同样的吞吐率时,消耗的电流显著降低,高速运行时尤其显著。

3 集成化

将外围功能集成于芯片内部是节省电能的方法之一。在向芯片外部驱动一个信号时,每周期时钟数减少后的处理器内核工作于同样的吞吐率时,以便驱动外部负载和补偿DC损耗。开关功率是数字信号过渡过程中消耗的功能。开关功率可根据下面的公式估算:

PSW∝CV2/T     (1)

其中C是接收门输入电容和连线电容的总和,T是时钟信号周期。一个CMOS门的典型输入电容为10pF。尽管很难精确计算出系统的开关功率,但有一点是显然的,每个额外的外部负载或引脚都会给微控制器造成额外的功耗。

基于微控制器的系统通常都会有一定数量的外围器件,例如从餐部的UART和上电昨位电路到看门狗定时器。8051系列的优势之一便是将大量的外围功能集成于片内。除了减少元件数量、简化设计外,外围功能的集成化也有利于降低功耗。可以认为任何外围器件的核心功能消耗的功率是相同的,与它位于处理器的内部还是外部没有关系。然而,将功能放在片内无疑节省了驱动外部总线所需的开关功率。

3.1 内部程序存储器

8051另外一个通常不被视作外设功能单元是程序存储器。所有8051的衍生产品都包含了不同容量的片内程序存储器。这是许多系统设计所期望的,以便减少外围元件数量和印制板面积,同时改善了便携系统的电源寿命。正如前面提到的,集成的程序存储器由于免去了外部总线驱动,因而降低了功耗。采用片内存储器还有另外一个省电的原因。8051架构必须采用一个74373类型的锁存器,以便锁存低字节地址。图3显示采用内部和外部程序存储器时的功耗情况对比。前者采用DS87C520高速微控制器和一个74AC573锁存器,以及一片27C256EPROM,访问时间70ns。第二个系统采用同样的微控制器,工作于内部存储器。两个系统均工作在11.0592MHz,执行一个简单、普通的程序。从图3可以明显看到,高频运行的系统中省掉外部EPROM和锁存器后,可节省多达49mA的电流。

3.2 内部数据存储器

如前所述,采用片内存储器取代外部RAM能够节省电能。80C32衍生产品具有扩充了的临时存储器(256字节),足够小的程序的堆栈操作和数据存储,不必外接RAM。

对于需要更多数据存储器或设置外部堆栈的设计,还需要额外的SRAM。虽然可以找到低功耗的SRAM,在考虑它所带来的功耗时,还应将相关的74373系列锁存器、驱动外部总线的容性损耗等一并考虑在内。

4 时钟源

影响功耗的另一个重要的系统元素是时钟源。标准8051设计通常采用内部振荡器激励一个外部石英晶体产生时钟,或者采用外部晶体振荡器。如果采用外部晶体振荡器,时钟的波形会影响到功耗。如果采用外部晶体振荡器,时钟的波形会影响到功耗。XTAL1引肚子内的输入级用来将外部时钟信号输入8051内核,通常采用互补式驱动器。随着输入时钟在高、低电平之间的跳动,驱动器中的互补对管会有一个短时间的同时开通过程,造成显著的电流浪涌。对于矩 形波来说,高、低状态之间的过渡过程非常短暂,两管同时开通的时间最短。对于上升和下降时间比较长的波形,例如正弦或三角波,过渡过程比较长,驱动器两管同时开通的时间也更长。这将会增加电流和功耗。

图4表示电流消耗和波形的关系。时钟源是一个可编程波形发生器,可以产生正弦波、三角波或方波。图4显示的电流是4个器件的平均值,包括传统的和改进的高速处理核。比较发现电流消耗直接正比于时钟波形的上升(和下降)时间。三角波具有最小的斜率,而矩形波斜率最大。采用矩形波时的电流平均要比三角波低0.75mA。这预示着在用外部时钟振荡器时,采用上升和下降时间更快的振荡器将有利于降低电流功耗。这一点在较低频率下尤为重要,此时器件需要花费更多的时间用于过渡过程。

有些8051衍生产品包含了一个片内的环形振荡器。通常是一串反相器,脉冲在其中传播。它可以提供一个2~4MHz的内部时钟源,驱动器件。由于不需要使用晶体,这种振荡器是功耗很低的时钟源。从DS87C520高速微控制器的特性可以看出,工作于环形振荡器时,能够提供等同于7MHz8051的性能,而功耗仅有3.6mA。虽然环形振荡器没有压电式晶体那样稳定,它们的低拉耗以及可以忽略的上电延迟在功率管理方面占有显要位置。

5 时钟管理

微控制器的工作频率是影响器件功耗最重要的一个因素。虽然系统的时钟频率主要取决于硬件配置,8051还是提供了一些有限的控制手段。这些手段减缓或终止器件全部或部分单元的工作时钟。传统的8051架构采用了两种控制方法:空闲和停机。

    5.1 改善停机模式

停机模式是8051设计得所能利用的最低功耗状态。在该模式下,内部振荡器停振,器件中止工作。脱离停机模式通常靠外部复位。某些变种也可以通过外部中断退出停机模式。

停机模式有一个缺点,就是在晶振恢复工作的一个死时间内的功耗问题。晶体振荡器的工作依赖于石英晶体的振动。物理层限性决定了晶体振荡器必须有一个确定的时间,才能达到足够的振荡器幅度来驱动器件工作。这个预热过程不管采用内部振荡器还是外部振荡器都会存在。时间大约在3~12ms,与晶体和振荡器的性能有关。

预热过程对于功耗的作用在于,在此阶段器件不执行任何有用的工作,但仍要消耗功率。如果器件频繁地进入和退出停机模式,或者退出停机模式后只执行很短时间的任务,这种效应会变得格外显著。事实上,如果任务非常短(<5ms),晶振启动期间消耗的能量甚至会超过执行任务本身的消耗。如果采用环形振荡器来实现从停机模式到快速启动,就可避免这种延迟。这将大幅降低退出停机模式时的功率消耗。

    图5表示两个系统退出停机模式并执行一个短任务时的工作情况。其中一个器件包含一个内置的环形振荡器,另一个使用传统的外部晶振。没有环形振荡器的器件必须经历一个晶振预热期。在此期间器件不断地消耗功率,却没有做任何有用的工作。第二个器件是一片DS87C520高速微控制器,片内包含一个环形振荡器。这就允许器件在退出停机模式时能立即恢复工作。在本例中,程序执行4ms以内,间隔大约为2MHz。正如图5所看到的,当需要退出停机模式执行短任务时,采用环形振荡器可以大幅减少能量消耗。

某些应用中,在退出停机模式后不久,要求时钟具有晶振的稳定度。这种情况下,环形振荡器仍不失其优越性。紧随着停机模式的退出,控制器应该立即启动是晶体振荡器。随后可以在晶振的预热期控制器初始化一些必要的数据或寄存器。多数高速微控制器可以用一个状态位来标示晶体振荡器是否达到稳定。一旦完成了晶振代码的初始化进程,软件可以查询状态位,以决定是否着手高精度定时操作。

另外一个改善停机模式效率的方法是采用中断而不是复位方式来唤醒控制器。这种方式使处理器能够紧接着设置STOP位的指令立即恢复工作,而不是从复位向量重新启动。这样就免去了对复位原因的判断,允许处理器在最短的时间内开始有用的工作。

5.2 空闲模式

空闲模式是早期8051架构使用的第二个时钟管理模式。该模式中止了CPU的运行,但片内的通用定时器保持工作。在功率敏感的应用中,这个定时器被用于周期性地唤醒处理器去执行任务,或者去判断是否该执行某个任务。

由于标准的8051定时器为16位,采用16MHz的时钟频率时,最大定时周期只有31ms。如果需要更长的周期,就需要定时器多次溢出。这会消耗额外的功率,因为处理器必需频繁地恢复全速工作来累积计数,但没有执行任何有用的工作。

对于比较长的周期,最好采用比较长定时周期的内部定时器。有些8051衍生产品包含了一个看门狗定时器,也可被用来唤醒处理器。看门狗定时器可被编程为比较长的定时,可达256个时钟周期。在16MHz的频率下能够提供4.2s的最长延时。假设某应用希望每幅3s从低功耗状态唤醒,去执行任务。如果采用内部定时器去定时,处理器将不得不退出空闲模式96闪而不作有用的工作。如果采用长定时周期的看门狗定时器,则处理器只需要在执行任务的时候退出空闲状态,完成任务后再次到低功耗状态。

还有一个选择就是采用带有实时时钟(RTC)的微处理器。DS87C530高速微处理器内置的RC能够产生周期长达24小时的闹钟信号。由该闹钟产生的内部中断可将处理器从空闲或停机模式中唤醒。利用RTC退出停机模式对于需要长时间挂起的系统来讲是最为有效的方式。

6 功率管理模式

尽管空闲模式通过挂起运行程序而使功耗得以降低,内部定时器仍在以外部时钟的频率连续运行。这会消耗掉数量可观的功率。试想一下,是否可以让定时器工作于基本上接近待机的状态。

一个比较好的办法是降低整个器件的时钟频率。这可以由一个内部的时钟分频器来实现,它将外部时钟频率分频后再送入CPU。这种方案已在DS87C520高速微控制器中实现。该器件使用了两种时钟分频系数:功率管理模式1,输入时钟源被64分频;功率管理模式2,输入时钟源被除以1024分频。这些模式或以通过设置特殊功能寄存器中的对应位来实现。

图6对DS87C520高速微控制器的时钟分频器和时钟控制模式加以对比。图6中,全速模式(除以4)、功率管理模式1(除以64)、功率管理模式2(除以1024)、空闲模式及停机模式下的电流消耗形成鲜明对比。正如所料,停机模式吸收最低的电流,因为所内部时钟都被关掉了。两种功率管理模式消耗的电流比空闲模式还低。这不仅降低了器件的功耗,还说明可以让它以较低的水平持续运行。在传统的8051结构中,任何类型的CPU运行只有两个状态:“全部或者没有”。处理器被迫频繁地运行于最高性能水平,尽管只在很短的时间内得到高性能,这会增加一些不必要的功率浪费。功率管理模式(PMM)的使用,使处理器(如系统)能够根据实际性能需求对其功耗进行最优化管理。

6.1 中断和PMM的使用

采用内部时钟分频器可能会带来的问题是,中断延迟会大大增加;另外,内部定时器的减慢会影响8051串口产生或同步标准波特率的能力。这会严重干扰处理器响应外部激励的能力。解决方案之一就是在外部中断或串行动被确认后,自动使处理器恢复到完全运行状态。这种方案已经在DS87C520中得以实现。处理器的这种回切功能使其能够迅速响应外部中断。紧随着中断回答,器件将自动切回到全速(除以4)状态,并且不需要软件参与。

串行口的工作方式十分相似。当在串行口接收脚上检测到下降沿(起始位)后,器件将自动切回到全速运行(除以4)。这个过程紧接着数据传送起始,因而器件能够以全速来正确地接收余下的传送数据。对于传统的8051结构,在低功耗配置中使用串口的唯一办法是利用闲置模式。功率管理模式的使用提供了一种更低功耗的替代方案。

6.2 改进突发工作模式

在低功耗设计中,觉见的工作模式是将处理器从停机模式中唤醒,执行一个突发任务,然后再加到停机模式。在这样的系统中,降低功耗的一个手段是提高工作频率。初看起来,似乎匪夷所思。因为在正常工作期间,高频率系统要比低频率系统消耗更多的功率。然而,系统工作时消耗的静态电流与频率无关。在一个最终设计中,通常评估的是其能耗,以便确定电池工作寿命。这一点在评估一个高性能微控制器时尤为关键,因为它综合地考虑了处理时间和处理功率。对于一个给定系统,如果它具有更小功率与时间乘积,那么它的能耗更低;而不必单独考虑两种参数。很多实例显示,高速微控制器由于运行时间更短,实际能耗更低;而处理时间更长的低速处理器正好与此相反。

这一点可以通过图6提到验证。假定从停机模式恢复后,DS87C520读取一个I/O端口,经过算术运行后将结果从另一端口送出,这个过程需要500个机器周期的CPU时间。按图6所示,电流消耗在10MHz时为12.4mA,30MHz时为34.6mA。表1归纳了在两种速度下执行读任务时的能耗情况。从表1中可以看到,30MHz工作时的效率更高,能耗降低6%以上。

表1 执行一个500机器周期的任务时所消耗的能量和处理器速度对比

时钟频率机器周期所用机器周期总时间Icc电流时间积10MHz400ns500200ms12.41mA2.48mAs30MHz133ns3006.5ms34.66mA2.30mAs6.3 跑跑停停

在很多应用中,停机模式以外的时间并不完全取决于运行速度。很多情况下,处理器需要访问一个具有固定响应时间的外围设备,例如A/D转换器或温控器。此种情况下,处理器将有个突发动作。一般是触发某个过程,随后的一段时间内,则只有很少的或根本没任何操作。在这种时候,一种组合的功率节省技术会更为有效。

可以用一个实例来说明在这样一个系统中,采用具PWM的高速微处理器所带来的好处。设想的DS87C520与一片DS1620数字温度计/温控器相接口。这个器件可使用标准8051串口的工作模式0串行访问。主机处理器在某个时刻通过外部中断将DS87C520从停机模式唤醒,并要求它从DS1620中读取温度数据。获得数据后,DS87C520会将其保存于内部存储器中,备随后传送。DS1620的工作类似于很多A/D转换器:发出一个命令后启动一次转换,然后,经过一定延迟后转换完成,接着,数据就可以被移走了。对于DS1620来讲,转换时间接近于1秒钟。通过查询器件来确定转换是否完成。DS87C520非常适合于此种任务,因为它可以非常迅速地执行启动和运算功能。随后,在等待转换完成期间,微控制器可以将其置于PMM。在传统8051中,转换被启动后,可利用闲置模式将传统8051置于低功耗状态。在这种模式中,可利用内部的16位定时器来测量转换时间。工作于16MHz时,传统8051需要在转换完成之前退出闲置模式多达32次。

本例可被进一步改进。因为DS1620是作为一个同步器件进行访问的,不要求高精度的定时操作。这样,微控制器在启动转换和读取转换结果时,可工作于环形振荡器。由于避免了稳定外部晶振所需的“死时间”,这会进一步节省功率。

篇4

关键词:智能控制;ATmega16;压力传感器;红外摇控;DS18B20;DS1302

中图分类号:TU832文献标识码:A

文章编号:1009-2374 (2010)22-0117-02

节能降耗工作已经走上了法制化的道路,采用高智能节能锅炉控制器解决了无人看守情况下无人饮水不工作、饮水高峰时段不缺水的问题。

1系统结构和总体设计方案

智能锅炉控制器主要由:电源部分、时钟部分、显示部分、水位、温度采集部分、红外遥控器部分和输出控制部分组成。系统框图如图1所示:

1.1加热进水设定

系统可以设定不同的5组加热时间段和5组不同的进水时间段,完全保证了工作时间段有充足的饮用水;设定加热时间为全天24小时可设定,加水时间全天24小时可设定。

1.2工作模式设定

工作模式3种(周一至周五工作;周一至周六工作;周一至周日工作),可以依据工作人员工作时间来设定系统工作模式,不但节约了电能损耗,而且节约了人力成本。

1.3水温、水位设定

可以分别设定水温上下限和水位上下限;在加热时间段内当前水温等于或大于上限温度时停止加热;当当前水温等于或低于下限湿度时开始加热;在进水时间段内当前水位等于或高于上限水位时停止进水;当当前水位等于或低于下限水位时开始进水。

1.4系统人性化设计

如果当前时间段不在加热或进水时间段内,操作人员可以通过摇控器强制进行人工加热、人工进水按键进行加热或进水控制,避免了特殊情况下无饮用水的问题。

2器件选择

2.1CPU Atmega16

Atmega16属于Atmel公司的AVR系列单片机,是一种高性能、低功耗的8位AVR微处理器,其最高主频可达到16MHz;自带16KB可在线编程的闪存,512字节的EEPROM、1KB的SRAM,程序可进行加密;两个具有独立预分频器和比较器功能的8 位定时器/ 计数器,一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器,片内模拟比较器,一个看门狗定时器等。本系统中使用Atmega16大大简化了元件,用内部EEPROM即可存储操作人员设定加热上下限值、进水上下限值和工作方式等,不但节约了成本还简化了电路。

2.2水温测量模块实现

锅炉水温测量采用了Dallas公司生产的DS18B20单总线芯片,它具有线路简单、体积小的特点。因此用他组成一个测温系统,具有线路简单,在1根通信线可以挂很多这样的数字温度传感器,十分方便DS18B20测温范围在-55℃~+125℃;转换精度9~12位进制数,可编程确定转换的位数;测温分辨率为9位精度为0.5℃,12位精度为0.0625℃;转换时间:9位精度为93.75ms、10位精度为187.5ms、12位精度为750ms;内部有温度上、下限告警设置。DS18B20采用TO-92封装模式。

2.3水位测量模块实现

水位测量模块采用了MC20B经济型压力变送器,当水位在0~1600mm之间变化时输出信号4~20mA的线性变化,再由I/V转换电路把电流信号转换为0~5V的电压信号,单片机通过A/D转换功能进行电压采集,再把电压转换为高度值。

2.4红外摇控模块实现

红外摇控器采用的是专用红外发射芯片CD5022,它具有低工作电压(VDD:2.0~3.3V)低功耗(待机模式下IDD

2.5时钟输入模块

时钟输入模块采用了高精度实时时钟芯片DS1302,它是一种具有内置晶振、两线式串行接口的高精度实时时钟芯片。单片机通过DS1302读取当前时间值与设定时间相比较,比较结果做出相应控制。

2.6继电器输出控制模块

继电器输出控制模块采用了ULN2003芯片作为继电器驱动,ULN2003是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片,具有线路简单、工作稳定可靠特点。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,使用ULN2003芯片可以简化外部元器件,提高工作可靠性能。

2.7液晶显示模块

液晶显示模块是专为此锅炉使用者定制的显示屏。

液晶显示器可同时显示当前水温度、水位高度、加热状态、进水状态、出水状态及自动或手动工作状态,给操作工作人员提供了最为节能的操作信息,同时给饮用者提供饮用水的情况。

3单片机程序流程图

主程序流程图如图2所示:

4结语

此设计应用了AVR系列单片机的其设备丰富、集成开发环境简单易用、支持在线仿真等特点,不但简化了外部电路设计同时也提高开发效率;由于ATmega16单片机的高速度、低功耗和低价位,使得此系统真正体现了节能降耗的主旨。

参考文献

[1] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1990.

[2] 刘和平.单片机原理与应用[M].重庆:重庆大学出版社,2002.

[3] 徐爱钧.单片机高级语言C51应用程序设计[M].北京:电子工业出版社,2002.

4] 陈冬云,杜敬仓,任柯燕.ATmega 128单片机原理与开发指导[M].机械工业出版社,2006.

篇5

关键词:蓄电池;AVR微控制器;TLV5638电源控制

引言

蓄电池是飞行器电源系统中重要的组成部分,蓄电池的性能直接影响飞行器的安全。因此,正确维护、保养蓄电池就成为一项十分重要的工作。539CH-1型Ni-Cd蓄电池是法国SAFT公司生产的碱性蓄电池,该电池包含20个单体电池,额定电压24V,额定容量53Ah。波音737客机即采用该型蓄电池。

充电和放电是该电池维护、保养中的主要工作。由于该电池为Ni-Cd蓄电池,为了避免记忆效应影响电池容量,充电前需要对电池进行放电。该电池的放电规范要求测量单体电池电压,并记录单体电池电压下降到1V时的放电时间,然后在单体电池两极间接入放电电阻。该电池的充电规范要求使用分阶段定电流充电法。充电过程中要检测电池的端电压和充电电流,充电后期要测量单体电池的电压,并对电压较低的电池做相应处理。

本设计采用AVR单片机Megal6L作为核心,可同时控制两块539CH-1型蓄电池的充、放电过程。Megal6L通过串行总线接收上位机的命令,然后通过SPI总线将数据发送给TLV5638。单片机通过多路模拟开关CD4053将TLV5638的两路D/A输出送入信号调整电路,从而完成对充放电电流的控制。放电过程中,Megal6L通过控制8D锁存器74LS573和复合管阵列ULN2081控制放电电阻接入。

硬件设计

硬件系统包括串行通信电路、充电和放电控制电路、继电器驱动电路等模块。

通信电路

单片机通过串口与上位机通信。Megal6L端口为TTL电平,而上位机串口为RS232C标准接口。因此,在上位机与单片机通信时需要进行电平转换。本设计采用MAX232完成TTL电平与RS232接口电平之间的转换。

充电和放电控制电路

单片机收到上位机的充、放电控制命令后,通过SPI口将控制信号发送给TLV5638。TLV5638将收到的数字信号转换成模拟信号,并送入信号调整电路。模拟控制信号经调整后送入充电或放电电源的PI控制器,对充电和放电电流进行控制。单片机通过CD4053选择控制信号的输出通道,使该控制器可同时对2块蓄电池进行充电和放电。

D/A变换

本设计使用双通道12位电压输出型高速DA转换器TLV5638完成数模转换。设计中,将Mega16作为主机,通过SPI口直接与TLV5638的串行接口相连。因为Mega16的SPI口为4线串口,所以连接时单片机SPI口的PB6(MISO)悬空。

串行通信时,CS引脚出现下降沿时通信开始,数据在SCLK的下降沿逐位移入TLV5638的内部寄存器。最先移入的是数据的最高位。当16位数据全部移入或CS引脚变高时,TLV5638移位寄存器中的数据被存入相应的锁存器,锁存器的选择由数据中的控制字确定。因此,当Mega16需要向TLV5638发送数据时,PB7先从高电平跳到低电平,然后通过SPI口连续进行两次写操作,向TLV5638发送个字节数据。两次写操作完成后,在SCLK的第16个上升沿,相应锁存器的内容自动更新。

应用中,TLV5638工作于慢速正常模式,采用2.048V内部参考电压。更新TLV5638某一路DAC数据时,必须保证另外一路数据不变。

Mega16的SPI口可采用4种不同的数据传输格式工作,传输格式由SPI控制寄存器中的CPOL位和CPHA位控制。应用中,考虑到TLV5638的使用要求,令CPHA=0,CPOL=1(传输开始时采样SCK下降沿,结束时采样SCK上升沿)。

信号通道选择

Mega16通过PD4和PD5以及逻辑电路控制信号的输出通道。逻辑电路包括1片7404和2片CD4053。以TLV5638的OUTA输出信号为例。模拟控制信号从TLV5638输出,经滤波后送入CD4053的X通道和Y通道。单片机PD4一方面直接与CD4053控制端A相连,另外还通过反相器7404与CD4053控制端B相连。这样就保证A端和B端的控制信号反相,使任意时刻X、Y通道中只有一个可以输出有效控制信号,从而保证该路充电和放电不发生冲突。应用中没有使用CD4053的Z通道,应将其与控制端C及使能端一起接地。

继电器驱动电路

放电后期,需要将电池中的剩余容量完全放出,最终使单体电池电压下降到0V。设计中,利用继电器将放电电阻并联于单体电池两极,从而达到释放电池剩余容量的目的。继电器由8D锁存器74LS573和达林顿管阵列ULN2801驱动。单片机PA0-PA7输出控制信号,PD2、3、7和PC6、7输出5片74LS573所需的锁存使能信号。控制信号由74LS573锁存,然后通过ULN2801驱动继电器工作,将放电电阻并联在单格电池两端,从而完成单格电池剩余容量放电。继电器驱动电路原理图如图3所示。图中只包含1片74LS573,其它4片控制方法类似。

软件设计

软件采用主从结构。单片机收到上位机指令后,根据通信协议提取出命令字和数据,然后根据命令字完成相应的控制。软件基于模块化设计思想,主要包括:主程序模块,通信程序模块,D/A转换与通道选择模块,继电器组控制模块等。

主程序模块

主程序模块完成单片机初始化,等待并处理中断等工作。

通信程序模块

单片机与上位机间采用RS232串口通信。单片机采用中断方式接收上位机发出的命令,并根据接收到的数据内容向上位机发送应答信息。当命令的起始标志和结束标志都正确时,单片机向上位机发送ASCII字符‘Y’表示接收成功,然后处理收到的命令;否则,向上位机发送ASCH字符‘N’,表示发送不成功,要求上位机重新发送命令。

上位机向单片机发送的命令符合以下格式:命令以帧为单位,每帧包含7个字节。每帧包含的命令字规定了单片机的控制方式。每帧中的数据字则以ASCH码的形式确定了充、放电电流的大小和继电器的代号。

当上位机需要控制充、放电电流时,单片机采用查询方式,通过SPI口向TLV5638发送命令和数据,然后通过控制CD4053确定模拟控制信号输出通道。因为Megal6L的SPI口字宽为8位,因此必须连续进行两次写操作才能完成对TLV5638的编程。

单片机收到上位机命令后,先将数据写到PA口,然后向相应锁存使能位写‘0’,将数据锁存入74LS573中,完成对继电器的控制。

篇6

Abstract: This article discussed the status and role of Micro Controller Technology and Application curriculum, and its curriculum design, practical teaching links and the evaluation way.

关键词: 微控制器技术;课程;开发;改革;实践

Key words: micro controller technology;curriculum;development;reform;practice

中图分类号:G423 文献标识码:A 文章编号:1006-4311(2013)27-0231-02

1 课程的地位与作用

《微控制器技术与应用》是一门实践性、应用性很强的课程,是应用电子技术专业的核心课程。该课程是电路设计、程序设计、软硬结合控制的综合应用。该课程属于专业课程体系的“专业综合学习领域”模块,对学生职业能力培养和职业素养提升起主要支撑作用。

2 课程设计

依据专业培养目标、行业岗位要求,校企联合制定课程标准、确定课程内容。基于电子产品开发过程相对应的工作内容和工作过程来设计学习情景;课程教学内容的选取基于电子企业职业岗位能力的需要予以确定,重点强调职业能力培养。该课程教学课时安排150课时,以三阶段(课时比例为1:2:2)项目11个学习情景为载体贯穿整个教学过程。

2.1 课程设计理念 该课程采用“职业情景、项目导向”的基于工作过程的项目教学模式。项目实战部分的学习情景大多为教师科研项目或企业仿真项目,项目提高部分的学习情景使用企业真实项目进行授课。在基于工作过程的项目教学中,学生通过对学习情景、任务进行实践和学习,分角色轮岗进行岗位训练。

2.2 课程内容设计 在课程指导委员会的指导下,通过对行业、企业调查,学校与企业共同制定课程标准。分析课程对应工作岗位,根据对电子信息类岗位需求分析,把原学科体系知识进行解构和重构,形成基于工作过程的课程内容。根据项目教学“六步法”(资讯、计划、决策、实施、检查、评估)原理,对课程内容进一步细化,设计了“三阶段353递进交互式”的11个学习情景内容。设计学习情境,将微控制器技术知识点与软硬件开发流程知识点相融合、对接,课程教学内容融技术类知识与开发规范知识为一体。《微控制器技术与应用》课程教学内容按照以“职业情景”、“项目导向”方式精心选择课程内容、设计教学环节。采用基于工作过程的项目课程教学方式,项目来源有企业仿真项目、教师科研项目、企业真实项目,教学期间学生进行电子产品开发的项目角色轮换,仿真企业岗位角色;知识内容以够用为原则而高于项目;内容目标明确、针对性强,强调边做边学,融理论与实践,从实践工作过程中获取知识、能力。

2.3 课程过程设计 教学流程设计是基于工作过程教学设计的核心。以“职业情景为载体、项目为导向,学生为中心”来设计教学过程。校企合作编写了适用的职业情景项目教材,围绕课程内容,确定教学目标。

2.3.1 课程准备 通过了解前续开设课程教学内容、教学情况及学生掌握情况,确定本课程的基础学习情景内容,进而分解任务。制定授课计划、教学目标,优化自编教材教学内容。

2.3.2 课堂教学 围绕教学目标,以“学习情境为载体,任务进行驱动”进行教学内容组织。在教学过程中,以学生为中心,借助网络多媒体平台、虚拟实验室等现代教学手段,融合使用多种教学方法,引导学生主动学习、积极学习、快乐学习。提高学生的学习兴趣和创新学习能力。按照递进交互的学习规律把11个学习情境分成3阶段教学。

基础阶段教学,以3个学习情境为主线,按照从学习情境分解出的典型任务要求、功能及要点,进行“做教学”一体化教学。

实战阶段教学,以5个学习情境为主线,重点学习项目的仿真实现,掌握软件编程、硬件设计技术,能进行简单的综合项目设计与仿真实现。要求学生能进行完整的项目仿真实现。老师重在引导,解决问题。安排项目讨论,提出问题,解决问题。

提高阶段教学,以3个学习情境为主线,此阶段重点是综合项目设计与实现。主要学习综合软件设计思路及实现、硬件设计、联调、项目实现,进而进行文档整理,答辩准备;答辩过程展示硬件设计思路,亮点是软件设计思路。并进行成果展示、交流及分享。

2.3.3 课程延伸 在课外,学生依托电路研究所和软件工作室进行扩展和延伸学习。通过参与电路研究所和软件工作室承接的电子产品、软件的开发项目、技术服务、科研项目,全面提高学生的硬件设计、硬件开发、软件编码及软硬结合综合调测等岗位能力。并且能使学生及时跟踪微控制器技术发展新动向,提高再学习能力。培养学生创新能力,自主学习和研究性学习能力。同时,鼓励学生参加全国电子设计竞赛和软件类竞赛,锻炼学生创新思维能力。

3 突出职业技能培养的实践教学环节

3.1 岗位训练项目实践环节 独立的课程岗位训练实践,安排2-4周时间。让项目组成员系统地运用所学知识,解决电子产品综合应用问题,熟悉电子产品的设计、开发流程,提高学生的知识应用能力、创新学习能力、延伸性学习能力,发扬团队协作精神,培养良好职业习惯。

3.2 课外拓展项目实践环节 依托“电路研究所”、“软件工作室”、“大学生技能竞赛中心”、“大学生创新中心”等校内实践平台,扩展“校外实习基地”和“企业项目深入合作”等方式,给学生营造“多元化实践学习环境”,使学生在实践过程中强化知识应用能力、提高职业技能。

3.3 企业顶岗实习项目实践环节 学生进入企业顶岗实习将持续3到6个月的时间。让同学们在真实企业环境中系统地运用所学知识,解决某一方向实用性问题,熟悉电子产品的开发流程和技术规范等,提高学生的综合实践能力、创新能力、研究性学习能力,发扬团队合作精神,培养良好的遵守电子产品规范的职业习惯。

3.4 毕业设计综合项目实践环节 独立的“毕业设计”环节持续两个月时间,在此过程中学生把与微控制器技术相关的硬件设计、软件设计技术等综合应用起来,整体提升电子产品开发能力和作品效果表现能力及团队合作精神。

4 考核方式创新

课程考核标准由课程组老师和企业技术人员共同制定。考核以教学项目为单位,每完成一个学习情景即进行与项目内容相关的任务,由学生、教师和企业人员共同考核,各项目成绩按大纲要求,按比例计入总成绩。主要考核学生操作规范、学习态度、专业知识、专业技能、职业道德和职业素养、与人沟通能力、创新能力、自学能力、表达能力、方法能力等。考核方式多元化,采用口试和笔试结合、过程与结果结合、模拟与现场结合,知识与能力结合、个人与项目组结合。校内外教师、学生全程参与的基于工作过程考核标准。课程注重项目开发过程阶段考核。综合考核方式包括了笔试、过程操作考核、作品展示、项目组互评、自评及综合答辩几个环节。完成项目后,均设置学生的作品展示、项目组互评、综合答辩,促使学生分享技术,使学生能力在整个考核过程中提升。

5 总结

教学中引进了企业的管理规范、工作流程,充分体现基于工作过程电子产品开发的能力训练,培养了学生规范的软件设计、硬件设计及软硬结合能力。注重引进企业电子产品开发资源,将企业电子产品项目分解为教学学习情景和任务,使学生熟悉电子产品开发过程,提升学生技术应用能力和职业素养。通过模式创新,将教学过程、岗位训练过程、企业工作过程有机结合起来,将职业道德教育、职业素养培养、职业能力训练有机结合起来,取得了良好的教学效果。

参考文献:

[1]蒋存波.基于微处理器的触头电性能测试仪设计[A].2007中国仪器仪表与测控技术交流大会论文集(二)[C].2007.

篇7

分布式控制系统(DistributedControl System,DCS)是应用计算机技术对生产过程进行集中监测、管理和分散控制的综合性网络系统。目前,采用微控制器作为分布控制核心,通过RS485网络构建的分布式控制系统在工业、农业、医疗等领域获得了广泛的应用,例如,分布式温室环境信息监测系统,分布式水下电脑灯控制系统等等。

LPC2138是飞利浦公司推出的基于ARM7TDMI-S内核的微控制器,它具有非常丰富的模块,强大的处理和控制功能,非常易于构建嵌入式系统。用它构建的分布式控制系统,不仅体积小,性价比高,而且还具有稳定可靠、功能强大、开发周期短等特点。

LPC21 38微控制器介绍

LPC2138内嵌512KB的高速Flash存储器和32KB的RAM,具有丰富的外设资源:2个32位定时器(带捕获、比较通道);2个10位8路ADC;1个10位DAC;PWM通道;47路GPIO;9个边沿或电平触发的外部中断;具有独立电源和时钟的RTC;多个串行接口(UART、12C、SPI、SSP)。它内含向量中断控制器,可配置中断优先级和向量地址,片内Boot装载程序可以实现在系统,在应用编程(ISP/IAP),通过片内PLL可实现60MHz的CPU操作频率,具有空闲和掉电2种低功耗模式,并且可通过外部中断唤醒。

控制系统设计

在分布式的控制系统中一般采用通用的单片机作为控制处理的核心,不仅速度慢信息处理能力弱,而且一般需要附加许多电路,例如RAM、ROM、ADC、DAC、看门狗等等。采用ARM微控制器LPC2138为核心的分布式控制系统,通过扩展简单的电路(显示模块、中断键盘、RS485模块),开发相应的嵌入式程序即可实现功能强大的系统,不仅具有较高的系统集成度和稳定性,而且开发周期比较短。本文所设计系统总体,包含了OLED显示、中断键盘、RS485接口和EXT―CON接口(用来功能扩展的预留接口)。

显示系统设计

系统显示模块采用OLED显示模块VGSl2864E,它是64×128矩阵式单色图形字符显示模块,由于采用有机发光技术,无需背光源,所以与传统LCD相比在阳光照射下更能呈现清晰的图像和数据。另外它还具有高亮度、高对比度、宽视角、低驱动电压和高发光效率等优越的特性,较宽的温度范围(存储温度:-30℃-80℃,工作温度:-20℃~70℃)也能适应更恶劣的环境。

VGS 12864E使用两片列驱动控制器,内嵌64×64显示数据RAM,RAM中每位数据对应屏上一个点的亮、暗,每个半屏都被分成了按行的八页,因为每个字节的数据按低位(LSB)在上,高位(MSB)在下的结构排列,所以在提取字库的时候,需要设置取字模的方式为:纵向取模,字节倒序。它与LPC2138的连接。ARM和OLED之间需要加电平转换芯片,本设计采用16位双向电平转换芯片IDT74FCTl64245,另外进行电平转换时需要进行方向控制(图2中DIR即为方向控制脚)。

RS485接口电路设计

RS485通信部分采用TI公司的SN65HVD24收发芯片,它具有较高的共模电压范围(一20-25V),支持最多256个节点,高达16kV的ESD,通信速率在500m时最高达3Mbps。为了防止串行通信时外界干扰引入微控制器,在微控制器和RS485通信芯片间加入了光电隔离电路。

无极性连接设计

实现无极性连接有利于工程施工,方便系统扩容。如果采用差分曼彻斯特编码的方法虽然可靠性高,但需要增加编解码器,提高了硬件复杂性。本系统采用了异或门和软件编程的方法实现。即在信息输入输出部分增加异或门进行控制,当连接错误的时候控制引脚输出高电平对信息取反,连接正确引脚输出低电平信息不变。通过程序实现系统的自动信息监测和自动控制,由主机发送系统自检信息,包括一个正向数据信息和反向的数据信息,在信息中包含正反信息码,当从机接收到这些信息的时候就可以自动调整自己的控制端进行相应的控制操作。使用这种方式只需增加少许的软硬件开销就实现了无极性的控制。

在应用编程(IAP)实现

许多场合(例如地下灯光控制土壤检测)在系统布好后就不易进行系统重新配置和程序的更新,所以采用IAP技术不仅使系统的适应能力增强,工作寿命增长而且维护比较方便。

LPC2138的IAP程序位于BootBlock中,占用12KB存储空间,位于地址0x0007D000-0x0007FFFF的Flash中,同时它的最低64字节也出现在从地址0x00000000开始的Flash存储器区域,所以复位后中断向量被激活,跳转到Boot Block装载程序的入口。Boot装载程序控制复位后的初始化操作,并提供实现Flash编程的方法。

IAP程序是Thumb代码,位于地址0x7FFFFFF0(重映射后地址)处。IAP的功能可用下面的C代码来调用。

(1)定义IAP程序的入口地址(由于IAP地址的第0位是1,因此,当程序计数器转移到该地址时会引起Thumb指令集的变化)

#define IAP_LOCATION0x7FFFFFFl

(2)定义数据结构或指针

unsigned long command[5];

unsigned long result[2];

(3)定义函数类型指针

Typedef void(*IAP)(unsignedint[],unsigned int[]);

IAP iap_entry;

(4)设置函数指针

iap_entry=(IAP)IAP_LOCATION;

(5)调用IAP

iap_entry(command,result);

程序开发采用ARM公司的集成开发工具ADS1.2,把终端程序分为主程序和更新程序两部分:

主程序用来实现终端的功能,是需要进行更新的部分,更新程序仅负责主程序的更新。编译链接时主程序占据0-14扇区,更新程序占据22-26扇区,15-21扇区用来存储待更新主程序。更新程序用到的数据定义到片内RAM 中0x40007800~0x40007FFF区域。另外为了实现主程序和更新程序的精确定位,设置ARMLinker中Linktype用Scattered方式,它能根据格式文件中指定的地址映射生成ELF格式的映像文件。

更新过程可大体分为程序更新准备和程序更新两个阶段:

准备阶段分三步完成,首先主站通过RS485总线将编译过的新终端主程序(不包含更新模块)分成小的数据单元下传给终端,终端将收到的经校验正确的数据存储到片内Flash存储器中,然后主站查询终端代码的接收情况,并对传输错误的部分重新下传进行更正,最后主站发送启动更新指令,终端检验程序数据正确性并置上更新标志,停止刷新看门狗,从而使终端复位。

程序更新分两步完成,首先终端重启时检测到更新标志有效即可调用更新程序进行程序更新,程序更新完成后再次使终端自复位,即可运行更新后的程序代码,完成程序更新全过程。

另外,由于IAP服务代码是Thumb指令,用C程序直接调用时须在设置编译参数ATPCS时选中Arm/ThumbInte2rworking项。由于执行IAP命令使用片内RAM顶端的32个字节空间,因此用户程序不应该使用该空间。调用IAP功能前,要关闭PLL、MAM(存储器加速模块)部件及所有中断以及正确设置系统时钟。

篇8

关键词:工业绣花机;控制系统;刺绣;微控制器

1 引言

工业绣花机是当代最先进的绣花机械,是纺织、服装领域进行批量、规模生产的一种重要民生设备,也是集光、机、电和网络技术于一体的特色鲜明的机电一体化设备。

我国绣花机产品是以低成本优势参与国际市场竞争的,近年国内工业绣花机出口创汇大幅增长,工业绣花机的发展取得了很大的进步,发展前景越来越好。但随着用户对绣花机的性能和绣花品质要求越来越高,工业绣花机不断的更新换代。高速度、高精度、高智能化工业绣花机的开发成为当今绣花机产业发展的趋势。

2 研究内容

基于我国工业绣花机专用刺绣控制器的现况,研究开发基于双核LPC4357微控制器高速实时内核的专用工业绣花机刺绣控制系统。整个控制系统包括核心控制器与动作协控制器模块、步进电机控制信号模块、主轴电机控制信号模块、外部传感器及开关信号模块、针位、换色控制模块、取、送金片机构控制模块等硬件模块构成。同时进行刺绣功能和人机交互软件的设计,开发出一款更加简洁、完整、可靠性高和易于移植的工业绣花机刺绣专用控制系统。

2.1 刺绣控制系统的硬件平台设计

本项目研发的工业绣花机刺绣专用控制器系统由LPC4357芯片中的M4,M0两个核心处理器来完成数据处理与动作逻辑信号处理与传送,在核心处理器外,按刺绣各执行机构对硬件进行分模块设计,其功能划分主要包括下面几块:(1)核心控制器与动作协控制器模块;(2)步进电机控制信号模块;(3)主轴电机控制信号模块;(4)外部传感器及开关信号模块;(5)针位、换色控制模块;(6)取、送金片机构控制模块。

2.2 刺绣控制系统软件功能的设计

根据硬件模块的划分,对各模块的功能进一步细分,确定软件设计内容,主要包括以下设计内容:(1)LPC4357双核处理器启动与工作协调;(2)核心处理器与协处理器外设驱动;(3)步进电机控制算法设计;(4)金片机构控制通讯协议。

2.3 刺绣控制系统人机交互软件的设计

人机交互的目的是为用户方便浏览、编辑花样,设置刺绣系统参数、同时监视刺绣状态,其主要设计内容包括:(1)液晶屏驱动接口代码编写;(2)按键驱动接口代码编写;(3)单窗口界面设计与跳转;(4)消息机制的实现。

3 关键技术

3.1 主轴PWM控制的PID算法

主轴电机的速度与当前的刺绣的针迹长短有关系,同时又与主轴电机的初始速度相关,引入了PID算法,来动态调整当前刺绣的速度,保证当前刺绣的速度平稳。

3.2 花样文件读取、解析、存储管理技术

花样文件读取与解析兼容主流的18种格式,对花样文件格式进行格式判读,并转换成系统支持的格式。在内部FLASH存储器中建立一套文件格式,如FAT、YAFFS等,对其做存储管理,方便下次用户直接提取使用。

3.3 驱动程序加载及测试技术

驱动完成后对驱动程序进行调试,采用手动加载的方式,同时在调试的时候,在驱动程序中加入了一些串口输出的调试信息,可以从中分析驱动程序的运行情况。驱动程序测试重点检测主轴驱动程序与步进驱动程序的基本功能,以及主轴部分与步进部分的协调功能。

4 结论

篇9

嵌入式系统朝着嵌入式网络的趋势发展从根本上改变了其结构 (architecture),而结构却是人们在选择一个微控制器时必须考虑的。微控制器必须具有多种网络协议接口;能传输并验证大量数据;具有安全性,以及足够的内存和处理能力,以容纳众多的协议堆栈;在许多情况下,还必须在耗费很少电能的前提下完成这些任务。而且,还必须具有确定过程序 (deterministic) 实时性能。

8位和16位处理器显然在内存资源和处理能力上达不到这个要求。32位的结构虽然具有这类应用所需要的处理能力和内存资源,但它们很少具有实时网络工业控制应用所要求的确定过程序实时性能和监控管理功能。新的结构必须具备32位的性能和足够的带宽,以满足当今高速度数据传输的需求,还需要具备数据保安功能,以及确定性实时性能,而且价格应与8位结构相当。

全新的32位MCU和带宽

目前,好几家微控制器公司包括Atmel、 ST和Philips等都在积极解决这些问题。它们采用基于ARM技术的32位微控制器,加入性能高、成本低、并具有大容量的闪存和SRAM内存,并使产品的价格与8位“嵌入”产品相当。这些公司也开始推出ARM 7 MCU;这种MCU 除具有标准的双线接口 (TWI)、主/从串行外设接口 (SPI) 和异步串口控制器 (USART) 外,还内置控制器局域网 (CAN)、 以太网和/或USB接口。然而,联网绝不仅仅是增加接口和协议那样简单,还必须进一步提高核心处理器的能力,必须能够应对可能经过它的海量数据。基本的ARM 7 和 ARM 9处理器核没有直接内存访问控制器(DMA);CPU要直接地且一次一个字节地处理所有的数据。大量的或频繁的数据传输将侵吞本来应花费在嵌入应用程序上的处理周期。例如,在50 MHz的工作频率下,处理2兆位 (Mbps) 的数据传输要耗费ARM 7的55%资源,而要处理4Mbps的数据传输,整个处理器的资源都将被占用;CPU没有时间来执行实时控制应用程序。4Mbps以上的数据传输甚至是不可能的。

因此,除非提高处理器本身传输数据的基本能力,否则仅仅在32位处理器上添加一个10/100以太网内存访问控制器 (MAC) 或 CAN 或USB 接口并不能解决问题。当想到高速 SPI 串行接口和 USART 外设的数据速率可能达到 25Mbps,很明显任何大范围互连的嵌入式控制系统都必须解决数据传输的问题。

外设DMA是解决问题的关键

基于ARM技术的MCU可以扩充DMA来将其数据吞吐能力提高到可接受的水平。Atmel公司率先将外设DMA控制器 (PDC) 集成在其基于ARM 7的SAM 7和基于ARM 9的SAM 9 微控制器中。PDC在外设和内存间传输数据,只需耗费很少的处理器资源。该结构体系下的大多数外设有两个专用PDC通道,各用于接收和发送数据。每个PDC 通道的用户接口都集成在各外设的内存中,并有一个32位内存指针寄存器,一个16位传输计数寄存器,一个用于下一个存储的32位内存指针寄存器和一个用于下一个传输的传输计数寄存器。采用PDC可以持续传输来自多个外设的多个数据块。

PDC 使处理器摆脱了数据传输的重负,消除了中断开支,并有效地减少了CPU为外设进行高速数据传输所须耗费的处理时钟周期。例如,配备PDC后的ARM 7 能达到25 Mbps的数据传输能力,足以支持高速SPI 或 USART传输,而且仅耗费 6% 的处理器资源。这样,剩余的 94%处理器资源仍然可用于嵌入式控制应用

加密和数据保安

外设 DMA 控制器在数据安全上也扮演关键的角色。如果嵌入式系统分布在不同的地域,而在某一地方通过公网 (如 Internet) 控制,这时系统就处于开放的网络环境中,对安全的要求也就大大增加了。任谁都不希望别人入侵自己楼宇的安防系统或HVAC系统;或关断电力网;或在很短的通知时间后便对大坝开闸放水。因此,我们必须对嵌入式系统的访问加以控制,数据必须采用高级加密算法加密,如高级数据加密标准 (AES),数据加密标准 (DES) 和三重 DES 加密 (TDES)。AES算法是一种对称块密码,能用128位的密码键来加密和解密128位的数据块。DES 标准采用一个64位加密/解密密钥来处理64位数据块。三重 DES 则采用3个 DES 密钥,称之为密钥束。在三密钥加密算法中,加密分三步完成;数据先用Key1加密;然后用Key2加密;最后再用Key3重新加密,解密时则按相反顺序进行。

软硬件加密的比较

加密的计算密集度很高,通常需要由专门的外部处理器来协助完成。但这样的外部处理器有一个严重的安全问题:在连接主处理器和这个外部安全协处理器的系统总线上以普通文本格式传递数据,因而会暴露机密的信息。当然,我们也可以对这个局部链路进行加密,但这样的话,外部处理器的原本作用 ─ 让主处理器解脱繁重的加密计算任务 ─ 就会失去。

此外,嵌入式控制系统的成本和空间也可能不允许使用第二个处理器。ARM 9 处理器核具有足够的处理能力来以软件方式处理加密/解密流,但ARM 9对应用来说可能太昂贵或能耗太大了。另一方面,ARM 7又不具备以软件方式处理高速加密/解密流的能力。ARM 7在全速下 (50 MHz) 只能执行4.3 Mbps速率的AES加密流,无法跟上25 Mbps的高速SPI 或 USART 数据传输,更遑论100Mbps 的以太网传输。在处理4 Mbps速率数据时,所有的处理器资源都被耗尽;微控制器将无法执行任何控制功能,而成为一个专门的加密协同处理器。

由于软件加密存在带宽限制,在 ARM 7 上实现数据安全的惟一可行的方法就是在该微控制器上嵌入一个加密协同处理器,让这个协处理器独立于 ARM 的CPU来处理加密运算。在 ARM7 架构上增加一个加密引擎,将使 AES 加密的吞吐能力增加4倍,提高到20 Mbps;对于DES加密和三重DES加密,也能分别达到12.8 Mbps和11.2 Mbps。

使用外设 DMA 提高加密吞吐能力

无论是在 ARM 7 上以硬件方式或在 ARM 9 上以软件方式实现加密,加密/控制功能都涉及内存和I/O间大量的数据交换,这些数据交换活动将耗费额外的处理器工作时间,影响应用程序的处理。在这个问题上,外设 DMA 控制器又有其用武之地。在 Atmel公司的SAM 7X 上同时采用加密/解密协同处理器和 PDC,就可将 AES 加密吞吐能力提高到80 Mbps,足以满足宽带数据传输的要求。添加 PDC 可使 DES 吞吐能力几乎增加3倍,达到32.8 Mbps;而使TDES吞吐能力翻一番,达到20 Mbps。

在 SAM9X MCU 上添加一个多层总线阵列,可以进一步增加数据带宽。该总线矩阵可将5个先进高速总线 (AHB) 控制 (包括处理器指令和数据总线、PDC、两个用于USB主机,以及 LCD 控制器的专用 DMA),连接到片上外设及内置或外部存储器上,以支持不同内存、外设和I/O间的并行数据传输。

此外,别忘了无论这些系统联网与否,它们都是“实时”系统,指令和数据必须在精确的时钟周期到达确定的位置。它们必须能检测各种内部失效,并从失效状态恢复,否则整个系统将完全失效。在这种情况下,必须采用各种监管功能 (如欠压检测功能、上电复位功能、监视定时器以及实时时钟) 监视系统,并在出现问题时关闭系统。这些功能是8位和16位MCU 的标准功能,但在32位MCU中却很罕见,尤其是基于ARM 9的MCU。因此,除了集成网络协议,增加数据带宽和提供数据安全加密外,系统处理器还必须具有实时系统所需要的这些功能。可行方法是在ARM 7微控制器上采用高速闪存来存储代码、而省去缓存。至于在ARM 9中,如果MCU内存架构充分发挥了ARM926EJ-S 核固有的紧密耦合内存 (TCM) 潜力,确定过程序 (deterministic) 处理能力和高端操作系统 (WINCE或 LINUX) 可以共存。例如,SAM9X 内存架构支持实现零等待处理 (zero-latency processing) 的单独内存块,并可与透明指令和高速缓存并行。

篇10

MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,可以实现诸如人工智能、模糊控制等复杂的控制运算模型,有很好的开发前景。其开发手段简单、方便。芯片支持BDM(Background Debug Mode)模式,通过简易的专用电缆接口,而不需要使用传统的仿真器和编程器就可以直接对微控制器系统进行仿真开发和烧录程序。本文介绍了在电力系统保护中应用MC68HC376的一种实际开发方案。

1 MC68HC376的基本特性

MC68HC376具有速度快、并行处理能力强、可靠性高、功耗低、功能强大等优点。与目前常用的8位、16位微控制器比,其片内资源极其丰富,适应于各种控制场合;内部集成度高,硬件可靠性和稳定性强,外部扩展工作少,开发周期短。

    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)支持高级语言和背景调试。

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脚也应保持默认状态。

    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的构造值关系到实际测频和测周结果的计算。

在实际测量中,为了提高测量精度,对于较高的频率采用计数测频法,外部信号经过滤波、过零比较后同时接入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,即软件触发的连续扫描方式。根据所测频率经过软件倍频后可以很容易地对相关量进行跟踪采样,而不需要外部锁相跟踪电路。然后,按一定的顺序和优先级来组织队列。

由于没有多路复用,这里用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 应用实例