1.1 PIC单片机的特点
美国微芯公司是一家专门从事单片机开发、研制和生产的半导体厂商。其PIC单片机率先采用了精简指令集(Reduced Instruction Set Computer,RISC)结构,突破了传统单片机对PC机在结构上存在的自然依赖性,加上哈佛总线的存储器结构、两级流水线指令结构、单周期指令等技术,从而在单片机硬件结构上独辟蹊径,大大提高了系统运行的效率。除此之外,在功耗、驱动能力、外围模块设计等方面,PIC单片机也拥有一些独到之处,从而使得PIC成为一款方便实用的高性价比的单片机。PIC单片机特点归纳起来有如下几个方面。
1.精简指令集技术
传统的单片机生产厂商采用复杂指令集(Complex Instruction Set Computer,CISC)结构,在设计上多带有PC机CPU结构的痕迹,采用CISC结构的单片机指令通常为50~110条,且多为多周期指令。而PIC的指令系统则专门根据小型机特点而设计,力求使每一条指令达到更高的效率,减少指令功能的重复。高中低档的PIC单片机指令数分别为58条、35条和33条。这就带来了两方面的好处,一方面可以使代码的利用率大大提高,有利于提高执行速度,另一方面为用户学习、记忆和应用带来了极大的好处,编程和调试相对就更加容易,而且同样的功能所需的编码减少,节约了开发时间。
2.哈佛(Harvard)总线结构
所谓哈佛总线结构是指程序存储器和数据存储器独立编址,即两者位于不同的物理空间的结构。与之对应的是冯·诺依曼结构(又称普林斯顿结构),其程序存储器和数据存储器位于同一物理空间。冯·诺依曼结构的单片机指令和数据在同一存储空间,限制了工作的带宽,同时数据读取的可靠性也得不到很好的保证。而哈佛结构将二者分开,从而避免了这种瓶颈效应。Intel公司的MCS-51系列单片机采用了哈佛结构,但是程序和数据共用一条总线,在总线上仍然类似有冯·诺依曼结构的瓶颈效应,不能充分体现哈佛结构的优越性;而PIC系列单片机不仅采用了哈佛体系结构,还采用了哈佛总线结构,从而充分发挥了哈佛结构的潜在优势,大大提升了系统的运行效率和数据可靠性。上述两种总线结构的对比示意图分别如图1-1(a)和图1-1(b)所示。
图1-1 两种总线结构的对比示意图
3.单字节指令
单字节指令对单片机系统是一个革新性的变化。从系统内部机理来讲,采用普林斯顿结构的单片机数据存储器和程序存储器统一编址,共用总线,故8位机的指令总线(也即程序总线)必然也是8位。但是由于数据线和指令总线的分离,8位单片机的指令总线可以不是8位,即所谓的宽字位指令。高中低档的PIC单片机的指令位数分别为16位、14位、12位。ROM和RAM的寻址相对独立,所有的指令实现了单字节化,这样不仅使数据的存取更加安全,其运行速度也得到了显著的提高。从应用上来讲,一方面寻址方式变得简单,PIC单片机只有4种寻址方式,而51单片机为7种,68HC05为6种;另一方面节省了存储器空间,提高了代码压缩率,与同类单片机相比,相同的存储器空间可以储存更多的指令。
4.两级流水线指令结构
由于采用了哈佛总线结构,在芯片内部将数据总线和指令总线分离,并且采用了不同的总线宽度,因此在处理一条指令的同时可以对下一条要执行的指令进行预处理,而不必担心与数据读取产生冲突,这样就可以避免瓶颈效应。所谓预处理就是取指令的过程,从而产生了PIC单片机的两级流水线结构,如图1-2所示,当一条指令被执行时,下一条指令同时被取出,使得在每个时钟周期可以获得更高的效率。
图1-2 流水线结构工作示意图
由于PIC单片机具有以上4点优势,因此其运行速度相对于普通单片机有了显著的提高。如图1-3所示为几种常用单片机运行速度的比较,从中可以看出PIC系列单片机的运行速度远远高于其他同档次单片机。
图1-3 几种常用单片机运行速度的比较
5.寄存器组结构
PIC的所有寄存器,包括I/O端口、定时器和程序计数器等均采用RAM结构形式,并且只需要一个指令周期就可以完成访问和操作,而对于许多其他单片机(如MCS-51),则需要两个或两个以上的周期才能改变寄存器的内容。
6.一次性可编程(OTP)技术
单片机按其存储器类型可分为MASK(掩膜)ROM、OTP(一次性可编程)ROM、FLASH ROM等类型。MASK ROM的单片机价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合。同时,掩膜需要大批量的定制,周期较长,对小批量的市场需求不能做出快速的反应。FLASH ROM的单片机程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途。OTP ROM的单片机价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求有一定灵活性,又要求低成本的应用场合。随着市场的竞争越来越激烈,产品的功能不断翻新,顾客对产品的需求不断增加,是否具有快速改变的响应能力对赢得竞争变得相当关键。OTP可以实现产品上市零等待(Zero time to market),并且可以根据用户定制,满足特定需要。产品定制可以显著提高产品的生命周期,增强产品的市场竞争力。
7.其他特性
(1)功耗低。自20世纪80年代中期以来,随着NMOSI工艺单片机逐渐被CMOSI工艺代替,功耗得以大幅度下降,同时允许使用的电源电压范围也越来越宽。以PIC16F87X系列为例,供电电压为2.0~5.5V,当使用4MHz晶振,供电电压为3V时,耗电电流典型值不超过6mA;当使用32kHz晶振,供电电压为3V时,耗电电流典型值为20mA,睡眠模式耗电电流更是低于1μA。
(2)驱动能力强。I/O端口驱动负载能力强,灌电流和拉电流最大可达25mA,可直接驱动发光二极管、光耦等器件工作。在一些低功耗应用场合下,也可以充分发挥这一潜在的优势。例如,在一些低功耗的设计中,希望一些周围的器件在系统待命时不耗电或尽量少耗电,此时即可考虑将这些器件的电源供电由一条I/O引脚负责提供,在工作时,MCU在该引脚上输出高电平(接近VDD),可带几毫安的负载;进入低功耗模式后,该引脚输出就自动变为低电平(接近0V),被控器件没有了电源,也就不会耗电,例如LCD显示电路、信号调制电路等都非常适合采用此类控制。
(3)片内看门狗(WDT)。无须外接专用看门狗芯片,从而节约了硬件资源。
(4)片上ADC。片内带10位精度的A/D转换器。以PIC16F877为例,最多可以有8个A/D通道。
(5)中断丰富。内置8级硬件堆栈,支持多种中断源。例如,外部触发中断INT、TMR0溢出中断、RB端口电平变化中断、TMR1溢出中断、TMR2中断、CCP1中断、CCP2中断、SCI同步发送中断、SCI同步接收中断、SSP中断、SSP和I2C总线冲突中断、并行端口中断、A/D转换中断以及E2PROM中断等。
(6)品种齐全,方便选择。PIC系列单片机目前已形成具有高、中、低3档共50多种型号的庞大家族,功能灵活多样,能适应多种应用场合的不同需要。