我是一家私企的硬件工程师,因工作需要,我会的嵌入式MCU有51、STC、PIC、WINBOND和ARM7。而且几乎每一种我都成功的开发过产品。最近同样也是因工作需要,我需要选用一款超低功耗的MCU,于是我选中了MSP430单片机。下面就我的知识、就我学430单片机的心得对这些嵌入式MCU做一比较。一方面希望对初学者朋友提供一点帮助;另一方面想通过此文章感谢利达公司驻西安办事处的工作人员。
开发软件环境上,51、STC、WINBOND都使用KEIL C;PIC单片机使用MPLAB;MSP430单片机使用IAR Embedded Workbench;ARM7使用ADS或者Linux。由于功能、性能上ARM和单片机差距较大,所以在这里最主要比较单片机的差异方面。
软件开发环境实现的功能基本都差不多,我就在界面上比较一下吧。我会的第一个就是KEIL C,个人觉得这个软件各方面都挺好,如果说有不足,就是在做LCD开发时人些字会是乱码,不过打上补丁后就很好用了。后来因工作需要也学会了MPLAB,这个软件在功能上倒没什么,就是写程序时那个界面右边空出一大块来,一编译,编译信息的一个新界面就跳出来,而且是全屏。这个软件还存在一个问题,就是如果使用C语言写程序,那么编译器还得单独安装,所以个人感觉这个没KEIL C和IAR Embedded Workbench做的人性化,它们编译的提示信息基本都在底部,而且自动向上滚动,还有都集成了汇编和C两种编译器。同样最近我也学了IAR Embedded Workbench,个人感觉这个这个界面给人的第一感觉就是自然,用起来也很快能上手。
软件名称 版本 界面友好度 缺点
KEIL C V8.08a 一般 开发LCD程序时需打补丁
MPLAB V8.00 差 不集成C语言编译器
IAR Embedded Workbench For MSP430 3.40A 好 (暂未发现)
从硬件结构上比较,51单片机和MSP430单片机都采用冯?诺依曼结构,而PIC单片机则采用哈佛结构。这两种结构各有优点,很难说出谁好谁坏。
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。冯?诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
从功能上比较51单片机属于基本型,功能相对单一,虽然51内核的MCU相对比较多,但却是不同厂家的,所以使用起来局限性很大。这点很难和PIC单片机和MSP430单片机相比。PIC单片机分为低档、中档和高档单片机,而且每一系列可选型号也较多。MSP430单片机同样也有MSPX1XX、MSPX2XX、MSPX3XX、MSPX4XX等系列,且每一系列可选型号也很多。从低功耗方面比较,51的可选型号几乎没有,PIC单片机是低功耗的最低功耗也达个位数uA级,但MSP430单片机则是超低功耗的,最低功耗可达到0.6uA。需要说明一点的是,在执行了休眠指令后,PIC单片机每次唤醒都需要复位一次,所以在超低功耗方面MSP430单片机表现要好点。
单片机类型 功能 系列化程序 低功耗
51 一般 差 差
PIC 好 好 一般
MSP430 好 好 好
当然MSP430单片机也有它的缺点,在我使用过程中,最大的不便就是位操作。下面举一例子,功能就是判断一引脚如果是高电平,那么就输入低电平为例,三种单片机代码如下:
51单片机
功能:如果P1^0为高则输出低
代码:
Sbit DR=P1^0;
If(DR)
DR=0;
PIC单片机
功能:如果RB0为高则输出低
代码:
#define DR RB0
TRISB=0X00;
If(DR)
{
TRISB|=0X01
DR=0;
}
MSP430单片机
功能:如果P1^0为高则输出低
代码:
P1DIR=0X00;
If(P1IN&=0x01)
{
P1DIR|=0X01;
P1OUT&=0XFE;
}
从上面实现同一功能的三段代码可以看出:
单片机类型 程序可读性 位操作
51 好 容易
PIC 一般 一般
MSP430 差 差
下面我说下我在学习这三种单片机过程中的时间长短。学习51单片机时,当时还在上学,为了兴趣买了块学习板后就开始对着上面的例子一个又一个读它、改它。一年后我用51单片机完成了我的毕业设计。学习PIC单片机则是为了一个产品的需要,我选取了最小体积的PIC12F508单片机。也是从网上买了个ICD仿真器和开发板,一个月后我的新产品就调通了。在这个产品的升级产品中我决定选用超低功耗的MSP430单片机,在网上找了一下就找到了利尔达,联系了下没想到利尔达住西安办事处的人就来了,并帮我一块选芯片、搭环境。从拿到仿真器到调通程序就用了两天,算上加业务功能不到一周时间就完成了。现在我的产品马上就要评估了,在此我特别感谢利尔达公司驻西安办事处的工作人员,没有他们我的新产品不可能这么快出来。
经过上面从开发环境、结构、功能等方面比较了51、PIC、MSP430三种单片机。总的来说,从学习、上手方面51是最好的选择。功能、应用方面则优先考虑MSP430单片机。