2007
08-16

PIC简介

今天没有太大的技术收获,呵呵,翻老底讲讲PIC吧。

可能很多伙计们没有听说过PIC这个东西,或者认为这个东西是Picture的简写。虽然这样也不错,但是PIC还有另一个含义:MICROCHIP公司出产的PICmicro单片机。简称PIC。

一般说到单片机,想到的都会是51什么的吧。呵呵。其实做单片机的厂商很多,品牌种类也很多,AVR啊PIC啊,freescale的HCS08啊(这个的名字有点忘了,没打错吧。。)等等。不过51在学校教育中使用最为广泛,所以导致很多人只知道51单片机。我个人的观点,51虽然好用,但是毕竟还是更像一个通用芯片,在嵌入式控制方面并没有太大优势。相比而言其他各单片机,各自都有各自的优势和长处,在实际应用中反而用的更多。所以如果要学单片机的话,不要执着于51,学点PIC、AVR很不错的。

其他单片机我不熟。由于上了班之后就在做PIC,所以就说说PIC。

PIC这个芯片,microchip公司的产品。采用哈佛架构的RISC单片机。其产品线比较广泛,但是基本都是8位单片机。这里所说的8位指数据总线,因为PIC采用的哈佛架构,数据总线和指令总线独立,所以长度也可以不一样。而指令总线长度也成为PIC划分产品线的重要依据。PIC按照指令长度分别为12位、14位、16位而划分为低、中、高三个级别。指令长度长的好处就是可用指令码可以更多,而且寻址空间也会更大。这一点后续再说。

PIC是RISC架构,所以其指令集也很精简。目前我用的中端芯片的指令集仅35条。按照官方的说法,就是由于采用了极其对称的设计,使得指令集大大精简。指令少了,自然就好学,但是不得不说,有的操作也会变的很难实现。。另外就是RISC架构的伟大之处:指令是定长,此外哈佛架构使得一边取指一边执行指令成为真正的可能——因为数据总线和指令总线独立,两者不会产生冲突。这使得绝大部分指令在一个指令周期就可以完成。这里说的绝大部分,因为跳转指令会使得预取的下一条指令无效,所以需要双指令周期。

此外,PIC还有一些好处就是集成的外设极为丰富。片内USART、I2C、AD、PWM等模块几乎都是标配。有的还有LCD驱动模块、USB驱动模块甚至以太网模块。。应用起来极为简便也可以减少外围电路。而且PIC的IO输出承载力很强悍,加上PWM,使其在电机控制方面很有作为。。

而microchip公司的策略就更赞了,丰富的产品线,各种配置应有尽有,用句广告语:总有一款适合你。。呵呵。。另外现在,PIC也推出了集成DSP核的dsPIC芯片,内置DSP核(其实就是几个硬件运算器吧,没有DSP那么强悍),貌似是16位数据总线和16位指令总线?忘了。。。更强的运算能力,方便进行FFT等大型运算,使其用起来很像DSP,而PIC用户熟悉的MCU的开发流程和习惯,使得开发起来很像PIC。于是总称:dsPIC。这个还是支持RTOS的,据说ucOS II官网有相关的系统下载的。赞。

说了这么多好处,也该揭揭短了。PIC目前个人感觉很大的不足就是对高级语言的支持。51的keil C很有名,而PIC在8位产品线上对C的支援很不好。用PIC代理商的FAE的话说:设计芯片时就没考虑过C。所以microchip官方的C编译器仅有支持8位高端系列F18的C18和支持dsPIC的C30。尽管第三方公司HI-TECH有出支持中端16F的PICC16,虽然口碑不错,编译效果很好,但是,个人觉得,还不如用汇编。。加上C本身的编译损耗,PIC内部硬件资源本来就少,经不起这样的损耗啊。。。

另外就是,低、中端芯片的一些限制很郁闷。比如现在的中端芯片,14位的指令长度,使得CALL和GOTO指令仅能寻址2K的程序空间,从而不得不将程序内存分为每2K一个PAGE。这样,在大型程序的编写中,PAGE的选择很头疼。而数据内存方面,PIC也将数据内存分为4个BANK。于是在操作数据时也需要注意BANK的选择。这些,都是需要注意的、很头疼的问题。好在高端芯片和dsPIC已经没有了相关限制。嗯。而且高端芯片指令长度变长后,有更多的指令可以使用。高端的PIC指令集貌似为73条。多了很多不错的功能。眼馋。。。

不过PIC还是很强悍的芯片,广泛用于各种产品中。尤其近两年,microchip推出的8PIN甚至6PIN的单片机,小巧玲珑却五脏俱全。用microchip的广告语说就是:你可以在从未想过用单片机的地方使用单片机。而另一方面,microchip的nanowatt器件,即纳瓦器件,以超低功耗满足各种对节能有极高要求的设计。官方给的一个解决方案案例中,使用PIC nanowatt器件每一分钟读取一个传感器的数值,然后保存在一个EEPROM内。通过计算整个流程,得到的最终功耗的确是少的惊人,不记得具体数据,但是记得一个很变态的结果就是:一粒普通的钮扣电池可以供给该系统运作382年。。。当然,底能耗的设计对外围电路要求也很高,microchip另一句很经典的话:点亮一盏发光二极管的功耗和任何一个运行在20MHz的PIC芯片功耗差不多。。外围电路很重要啊。

目前,microchip主要在做dsPIC产品,8位中端机也就是9系列的内置LCD驱动的nanowatt级芯片了。。嗯。不错的芯片的说,价格也不贵。有兴趣的同学可以学习学习。

好,今天先简介到这里。下次有空介绍一些PIC芯片开发技巧。不过基本都是官方文档给的东西。。看一看,对很多设计还是很有启发的,呵呵~

最后编辑:
作者:龙天
这个作者貌似有点懒,什么都没有留下。

PIC简介》有 1 条评论

  1. 伯乐说道:

    讲的很好!

    我已经转载了,哈
    http://www.bancuo.com/bbs/viewthread.php?tid=1389&extra=page%3D1&frombbs=1
    我读研究生期间为中科院做的项目就是用PIC单片机做的
    对PIC情有独钟哦
    马上要参加工作了,如果不搞研发的话,只能和PIC单片机说再见了

    班搓网 – 不搓不朋友
    http://www.bancuo.com

留下一个回复

你的email不会被公开。