义隆单片机课堂
义隆EM78系列单片机特色盘点之硬件篇

🏠 首页 《无线电》杂志 2001年 🔗 第10期 🔗 第30页 分类:电脑与单片机 🔗 大海创作室 🔗

前言:
从80年代初期(Intel公司的8048单片机刚刚出现),笔者就对单片机、单板机和微型计算机开始着迷了。从LED控制、游戏卡的翻录、简易开发器的制作到小型电子产品和通信产品的开发研制。

凭着对单片机的钟爱和兴趣,经过多年来的探索和磨练,曾先后涉猎和研究的许多世界顶级公司研制生产的各具特色的单片机硬件结构、指令系统和开发工具环境。比如,Intel的MCS-48和MCS-51系列、Atmel公司的AT89C系列和AVR系列、Zilog公司的Z8系列和Z8+系列、TI公司的MSP430F系列、ST公司的ST62系列、Scenix公司的SX系列、Microchip公司的PIC16C5X、PIC16CXX和PIC16F87X系列、Motorola公司的MC68HC908系列、Philips公司的P87LPC76X系列、NS公司的COP8系列、HOLTEK公司的HT48RXX系列、LG公司的GM97C和GM87C系列等。尤其是随着中国的对外开放力度不断加大,又好用又便宜的MCU不断涌入我国广阔的电子市场,使得像我一样的单片机爱好者们花费大量的精力研读产品手册(Data Sheet)和记忆大量形形色色的单片机指令集。随着脑子中填塞的指令的种类和数量急剧膨胀,在编程过程中一不留神,互相串帮的事也是时有发生。

继笔者对PIC单片机进行了精心钻研推敲之后EM78PXX系列单片机又“闯入”了本人的视线,再次激发起废寝忘食挑灯攻研的强烈兴趣。其中的缘由不仅是EM78PXX单片机更加优秀、更加好用、性价比也更高,而且还有几分民族情结(EM78PXX是华人研发的)。可以实事求是地讲,EM78PXX是迄今为止本人遇到的最好学、最易用、性能价格比最高的单片机之一。

台湾义隆微电子公司(EMC)在PIC单片机的基础上,经过一番改进和大胆突破,开发出了具有自主知识产权和专利技术的、性能更加卓越的EM78单片机系列。它不仅在指令、功能、速度方面都更胜一筹,而且价格也更具吸引力(比如,带有OTP的EM78P156仅仅售价4.5元一片)。

从本期开始,笔者将在“义隆单片机课堂”中通过系列文章向大家详细介绍EM78系列单片机的特色及相关知识,引导大家认识、学习、使用EM78系列单片机,并欢迎大家参加我们在此讲座过程中推出的适时的活动。:

目前义隆公司生产的单片机有通用型和专用型两大类,仅通用型当中又分为多个系列以供用户选择,主要有EM78P152E、EM78P153E、EM78P156EL、EM78P156EH、EM78257A/B、EM78P447SA/B、EM78M447A/B、EM78450、EM78P451、EM78P458/9。以下从义隆公司和微芯公司的产品库中各拿出一款型号,进行一对一的比较。不妨就以EM78P156与PIC16C56的对照,作为介绍主线,分几个方面向广大单片机爱好者及读者朋友举荐义隆公司这款低价位普及型单片机“EM78P156”的特色。理由是,EM78P156和PIC16C56属于同等档次的产品,它们的引脚也完全兼容,并且EM78P156完全可以用来替代PIC16C56,价格也更低廉。当然所选择的这两款型号并不是代表这两家公司最高水平的单片机产品。

一、 硬件结构框图

由于EM78P156是在PIC16C56基础上改进而来的,保留了其优点、克服其不足,从而形成自己独特的性能特点(改进后的最新版本EM78P156E内部结构框图如图1所示)。

图1
图1 🔍原图 (850×577)

二、 硬件改进之处

1.每个指令周期内可以包含2或4个时钟周期,可供选择

EM78系列8位单片机的一个指令周期内,既可以包含4个时钟周期,也可以只包含2个时钟周期,由用户根据需要灵活选择(PIC系列单片机,一个指令周期固定占用4个时钟周期)。这项特性是目前国内常见其他单片机所不具备的。指令的执行时间可以减少一半,自然在同样的时钟频率之下,指令的执行速度成倍地提高了。指令周期是EM78系列8位单片机的最大特色,是义隆公司在此方面的一项专利技术。

2.特殊指令(如跳转)占用1或2个指令周期,可供选择

一些引起程序跳转的特殊指令(除了极少用到的、对程序计数器PC进行“写操作”的指令(如“mov pc,a”等)需要2个指令周期外),其执行时间,既可以占用2个指令周期,也可以只占用1个指令周期,由用户根据需要灵活选择。而PIC系列单片机,一切引起程序转向的指令(如条件跳转指令和绝对跳转指令、子程序调用和返回指令等)都需要2个指令周期。

由以上可知,EM78系列单片机工作速度之快,非一般同等级单片机可比拟。这点就像早期的8051每个指令周期需要12个时钟周期时间,经过不断的改良,新的8051如今只要6个时钟周期的时间一样。对需要工作速度快的单片机的用户而言,EM78系列单片机是极佳选择。

3.归一化的指令周期

PIC系列单片机即使是同一条件跳转指令有时为1个指令周期,有时为2个指令周期。而EM78系列单片机99%的指令都固定为1个指令周期,其好处是:

(1) 计算一段执行时所占用的时钟周期个数更容易。

(2) 时序固定不变。对于点到点的程序执行起来,很容易得到固定的时序。当遇到时序要求很高的场合这点是很重要的。

4.更快的RC振荡器

实验结果表明,EM78系列RC振荡频率,比PIC系列RC振荡频率高了许多。PIC系列RC振出4MHz的时基比较困难,而EM78系列单片机,要振出8MHz的时基是轻而易举的。结合上述的几个特性,这两种单片机都有RC振荡情况下,工作上限速度EM78很容易就是PIC的5倍以上。

5.中断(Interrupt)功能的增强

EM78系列8位单片机都有中断的功能。以EM78P156而言,不仅具有3种硬件中断源,而且还有一种软件中断(int指令)。3种硬件中断分别为:

(1) 定时器/计数器溢位中断;

(2) 外部中断(负沿触发输入);

(3) 端口引脚输入电平变化中断。

6.R-Option功能

在了解该功能之前,请先来看以下两种情况:

(1) 当两个(或以上)应用程序都很小时(假设都小于0.5KB),就会有人想到将它合并放在同一单片机中,再用一条输入引脚来选择其中一个程序来执行。如此一来,可以省去开模Mask(类似于制板)的费用,又可减少库存的问题。

(2) 假设对于同一电子产品,欧洲标准与美国标准有些微小的差异,但又不想为此而作两次开模。这种情况下可以安排一条输入引脚,专门用来作为引导程序判断的依据,以区分该系统是用在欧洲标准还是美国标准,就可省去分别开模的麻烦和费用。

以上二例都用了一条输入引脚来达到目的,都额外增加了硬件资源的占用。但是假如在我们所设计的单片机应用项目中,单片机没有多余的输入引脚,就必须另想其他解决方案。而EM78系列单片机的R-Option功能,正是为了解决没有多余输入引脚的问题而设计的。即利用一条或两条输入/输出引脚是否外部接有下拉电阻,在烧录到单片机内部的2~4个用户程序中,来选择某个欲执行的用户程序。EM78系列单片机都提供了两条具备R-Option功能的端口引脚。

7.内部集成了电压跌落检测电路

在电源电压不稳的环境下,或电源常常需要连续开、关的应用系统中,很有可能会有复位不良的问题发生。致使设计者不得不在所设计的系统中,再额外添加一些电路以克服这一问题,但此额外的成本往往不能被接受。为此,EMC将电压跌落检测的功能设计在单片机内部,利用电压比较器准确地抓到1.7V及1.9V,并且可以由用户决定此功能是否被启用。

电压跌落检测功能是当电源下降至1.7V时,单片机立即进入复位状态以避免不可靠运行而造成程序混乱;当电源再上升至1.9V时,单片机才离开复位状态,发生初始化的复位操作,如此便可轻松地解决复位不良的问题。

8.多功能的输入/输出引脚

EM78系列8位单片机的端口引脚都是可用软件单独编程为输出或输入的双向引脚。除此之外,部分输入/输出引脚还有可用软件编程的上拉、下拉或漏极开路输出功能。该项功能不仅可以最大程度地简化单片机外围电路节省成本,而且还给单片机用户的程序设计带来更多的灵活性。该项功能是其他同等档次的单片机所不具备的。

9.硬件特性软化

EM78系列单片机为了减少用户的库存,将部分单片机的硬件特性实现了可编程—软化。也就是一颗单片机的特性,可由其内部的一个名叫“Code Option”的专用存储器单元来固化编程设定,其比特位编程值不同,设定的单片机特性就不同。

10.内部数据存储器RAM单元个数增多

对于采用低价位普及型单片机开发价格敏感的应用项目,在我们编写程序时,常常会需要一定容量的RAM存储区域来存放数据(譬如存放电话号码或密码等)。此时,虽然我们对RAM单元的个数“个个计较”,但还是常常令人捉襟见肘。EM78P156单片机对此特别加大了容量,比PIC16C56的25个内部RAM(07H~1FH)多出6个,共有31个内部RAM(10H~2EH)。

11.硬件堆栈深度增加

常写程序的人一定会觉得2层堆栈的PIC16C56用起来有所束缚,而EM78P156的硬件堆栈深度增加到了5层。

12.看门狗双重管理功能

在PIC系列单片机中,看门狗的功能是否被启用,用户只能在向单片机内部烧写用户程序时,一次性烧写编程来设定,此后用户再也无法用软件禁止看门狗功能。

这就会带来以下的问题,对于能耗敏感的单片机应用系统(比如手机、寻呼机等),需要长时间使单片机进入睡眠状态。这时由于看门狗的频繁活动,使得CPU总也睡不“安稳”,不时地被看门狗唤醒,醒来完成“喂狗”任务再入睡,再被唤醒……,循环往复。不仅编程麻烦,也增加了能耗。在EM78系列单片机中,不仅程序烧写时提供了一次设定看门狗是否启用的机会,而且还配置了一个可编程的控制位,由用户软件可以随时设定看门狗是否活动。

13. 端口引脚唤醒功能

增加了这个功能使用户可以解决许多需要完全静止(睡眠)的应用场合。在PIC16C56的硬件中由于无此功能,用户不得不用外接器件产生复位信号来唤醒睡眠中的CPU。EM78P156有了此功能后,可以不要任何外部的器件,就可以让CPU进入深睡状态,而又可随时被唤醒过来。

14.I/O端口设计更为合理

EM78P156的输入/输出端口,读回数据的地方有2个:一个为输入/输出脚端(与引脚外接线路状态有关);另一个为端口引脚内部的数据锁存器(与引脚外接线路状态无关)。引脚内部结构如图2所示。

当输入/输出引脚定为输入方式时,读回的地方为端口引脚;而输入/输出引脚定义为输出方式时,读回的地方为内部锁存器。这一点与固定从输入/输出脚端读回数据的PIC16C56大不相同。其好处是:

(1) 避免方向控制寄存器的读回之值随外部负载状况不同而变化;

(2) 读取端口引脚和读取方向控制寄存器是截然分开的,从而增加了一种可选性。

15.扩展了子程序调用指令的跳转范围

PIC16C56有一个明显的弱点,就是一个程序存储器(ROM)“页面”设定为512字(指令字,12比特),子程序调用指令(CALL)指令能够跳转的范围仅有256的区间(半个页面)。而EM78P156就改掉了此项缺点,也就是EM78P156的CALL指令能够跳转的范围为整页的区间,并且一个页面扩展到1K字(指令字,13比特)。此项改进可让用户在编写程序时更能够得心应手。

16.简化了跨页跳转操作

PIC16C56把片内1K字的程序存储器空间分为2个页面。编程时常让用户跳来跳去地去调用子程序而出错。EM78P156对此缺点作了改进,原因是它将1K字的程序存储器空间当作1个页面,从而让用户免去出错的可能性。

17.1k~4k程序存储器容量的选用更加灵活

市场上流行的各种单片机,依据片内程序存储器ROM的制造工艺不同而形成了不同的版本。

其中ROM版的最大优点是便宜,主要缺点就是开模(MASK)费用高得惊人,只适合大批量定货的大客户选择,而OTP版的突出优点是验证易、时效快,特别适合小批量需求单片机的用户选择。义隆综合了这两种版本单片机的特点,开发出了1K字容量的OTP版EM78P156,以及功能和引脚完全兼容的1K、2K、4K字容量的ROM版EM78156、EM78256、EM78456来供用户灵活选用。用户可用4颗EM78P156来试制和验证4种程序量不超过1K的不同产品,然后再仅用一次的开模费用,来定制含入4个程序的4K容量ROM版的EM78456。

18.程序存储器的宽度加大

对于程序存储器的宽度,EM78P156在PIC16C56的12比特(指令字)的基础之上增加到13比特(指令字),从而使指令的信息携带量得到了提高。

下期笔者将为大家介绍EM78系列单片机软件和开发工具方面的特色,欢迎继续关注。

大海创作室