对于pic单片机,大家或多或少均有所耳闻。但是,大家对pic单片机有多少了解呢?是否熟知不同类型的pic单片机呢?本文中,将探讨pic单片机的类型分类以及特征。此外,本文的探讨基于pic 8位单片机而进行。
由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今的PIC单片机已经是世界上最有影响力的嵌入式微控制器之一。
PIC 8位单片机产品共有三个系列,即基本级、中级和高级。
1、基本级系列 该级产品的特点是低价位,如PIC16C5X,适用于各种对成本要求严格的家电产品选用。又如PIC12C5XX是世界第一个8脚的低价位单片机,因其体积很小,完全可以应用在以前不能使用单片机的家电产品的空间。
2、中级系列 该级产品是PIC最丰富的品种系列。它是在基本级产品上进行了改进,并保持了很高的兼容性。外部结构也是多种的,从8引脚到68引脚的各种封装,如PIC12C6XX。该级产品其性能很高,如内部带有A/D变换器、E2PROM数据存储器、比较器输出、PWM输出、I2C和SPI等接口。PIC中级系列产品适用于各种高、中和低档的电子产品的设计中。
3、高级系列 该系列产品如PIC17CXX单片机,其特点是速度快,所以适用于高速数字运算的应用场合中,加之它具备一个指令周期内(160ns)可以完成8×8(位)二进制乘法运算能力,所以可取代某些DSP产品。再有PIC17CXX单片机具有丰富的I/O控制功能,并可外接扩展EPROM和RAM,使它成为目前8位单片机中性能最高的机种之一。所以很适用于高、中档的电子设备中使用。
PIC 8位单片机具有指令少、执行速度快等优点,其主要原因是PIC系列单片机在结构上与其它单片机不同。该系列单片机引入了原用于小型计算机的双总线和两级指令流水结构。这种结构与一般采用CISC(复杂指令集计算机)的单片机在结构上是有不同的。
1、双总线结构
具有CISC结构的单片机均在同一存储空间取指令和数据,片内只有一种总线。这种总线既要传送指令又要传送数据(如图1-a所示)。因此,它不可能同时对程序存储器和数据存储器进行访问。因与CPU直接相连的总线只有一种,要求数据和指令同时通过,显然“乱套”,这正如一个“瓶颈”,瓶内的数据和指令要一起倒出来,往往就被瓶颈卡住了。所以具有这种结构的单片机,只能先取出指令,再执行指令(在此过程中往往要取数),然后,待这条指令执行完毕,再取出另一条指令,继续执行下一条。这种结构通常称为冯·诺依曼结构,又称普林斯顿结构。
在这里PIC系列单片机采用了一种双总线结构,即所谓哈佛结构。这种结构有两种总线,即程序总线和数据总线。这两种总线可以采用不同的字长,如PIC系列单片机是八位机,所以其数据总线当然是八位。但低档、中档和高档的PIC系列单片机分别有12位、14位和16位的指令总线。这样,取指令时则经指令总线,取数据时则经数据总线,互不冲突。这种结构如图1-b所示。
指令总线为什么不用八位,而要增加位数呢?这是因为指令的位数多,则每条指令包含的信息量就大,这种指令的功能就强。一条12位、14位或16位的指令可能会具有两条八位指令的功能。因此PIC系列单片机的指令与CISC结构的单片机指令相比,前者的指令总数要少得多(即RISC指令集)。
2、两级指令流水线结构
由于PIC单片机采用了指令空间和数据空间分开的哈佛结构,用了两种位数不同的总线。因此,取指令和取数据有可能同时交叠进行,所以在PIC单片机中取指令和执行指令就采用指令流水线结构(如图2所示)。当第一条指令被取出后,随即进入执行阶段,这时可能会从某寄存器取数而送至另一寄存器,或从一端口向寄存器传送数等,但数据不会流经程序总线,而只是在数据总线中流动,因此,在这段时间内,程序总线有空,可以同时取出第二条指令。当第一条指令执行完毕,就可执行第二条指令,同时取出第3条指令,……如此等等。这样,除了第一条指令的取出,其余各条指令的执行和下一条指令的取出是同时进行的,使得在每个时钟周期可以获得最高效率。
在大多数微控制器中,取指令和指令执行都是顺序进行的,但在PIC单片机指令流水线结构中,取指令和执行指令在时间上是相互重叠的,所以PIC系列单片机才可能实现单周期指令。
只有涉及到改变程序计数器PC值的程序分支指令(例如GOTO、CALL)等才需要两个周期。
此外,PIC单片机的结构特点还体现在寄存器组上,如寄存器I/O口、定时器和程序寄存器等都是采用了RAM结构形式,而且都只需要一个周期就可以完成访问和操作。而其它单片机常需要两个或两个以上的周期才能改变寄存器的内容。上述各项,就是PIC单片机能做到指令总数少,且大都为单周期指令的重要原因。