几种使用过的单片机比较(个人观点),供选型者和初学者参考
51系列单片机
使用的人很多,资料很多,根本不需要技术支持。价钱便宜(如批量AT89c52只需要8.5RMB)。但普通型的芯片内部资源较少,需要外部扩展。总线外置使系统抗干扰型变差。外括看门狗电路增加成本(max813比89c52要贵)。执行速度较慢,晶振频率较高,EMI性能较差。
功耗较大,不能用于低功耗产品(虽然philip有低功耗产品,但价格不如pic单片机)。
近几年出现一些扩展功能的51单片机,如外部ram内置、2个uart、加入spi接口、a/d转换器等,价格不是很贵,但批量大和产品期望生命周期长,使用有所顾虑。以上说的好像都是缺点,但51单片机的优点也很明显,51单片机是低档8位单片机中外括资源比较大的,便于用较低的成本构成一较大的系统,这是其他单片机不能相比的。根据使用过的几种51单片机(普通类型),ATMEL和PHILIP的性能差不多,但ATMEL比较便宜,Winbond的性能好,但价格较高。
开发工具价格中等,开发手段较落后。因为程序空间较大,堆栈可移动,适用C编程,编译软件也不错(keil),编程器(LABTOOL-48)支持较好。
以下的单片机用的不多。
Motorola的单片机(限于本人水平,仅说说8位单片机),资料较少(而且有错误,自己有教训),使用的人不多,技术支持一般,小客户更是基本不支持。使用过908gp32,晶振为32768Hz,内部PLL倍频到4MHz,抗干扰性较好,资源较多,基本不用扩展。但价格较高,不过908JL8的性价比要好于89c52,而且总类繁多,包括几乎所有功能,但是好像没有低功耗产品。
仿真开发工具昂贵(但因为内部有监控程序,908(flash)系列可以自制简单的调试和下载工具)。开发手段较先进。适用于C编程(经验是即使不熟悉汇编语言,也能用的很好),软件开发工具CodeWarrior,功能强大,但与其他开发工具有些区别,奇怪的是,有些头文件竟然有错误。编程器(LABTOOL-48)高版本支持较好。
Msp430单片机。技术支持还可以,资料也不多。使用过F11x1,功耗低而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。缺点是片内资源较少,没有a/d和窜口,但斜率a/d用起来还可以(怕中断)。缺点是占的指令空间较大,因为是16位单片机,程序以字为单位,有的指令竟然占6个字节。虽然程序表面上简洁,但空间占用很大(与pic单片机比较)。内部有flash信息储存器,用来保存不掉电信息,用起来一般。必须分页写入,数据必须读出回写,与flash操作相同,读出简单写入麻烦。Msp430单片机的低档类型,不如pic单片机。复位特性较差,根据实际应用,在掉电电压下降较慢时,瞬时掉电复位性能较差,需外加复位芯片。
和其他单片机相比,仿真开发是最顺手的一种。Jatg接口,可以快速下载程序到flash储存器,再线调试功能还可以,调试工具便宜,软件开发工具IAR也相当不错。编程器(LABTOOL-48)不支持。
最适于入门学习。
Pic单片机,技术支持较好(不知对小客户态度如何),是仅次于51的流行单片机,虽然硬件结构和语言奇怪,开发手段落后。但价钱便宜、功耗低(但要频率够低)、很实用。程序代码空间很节省,与其结构有关。如果以前使用其它单片机而改用pic,会感到很别扭。因为堆栈指针不可变,不适用c语言(c语言的ram定义也要分页,应是首创吧),汇编语言还可以。Pic单片机最实用的资源是a/d转换器(而且比单独的a/d便宜),IIC接口基本无用(因为用起来比软仿还麻烦),串口做的也一般,如无多机通信功能(高档除外),虽然中断很多,但只有1个入口。有的带有内部EEROM,但仍然为IIC接口,有的称是并行接口,但也不在ram空间里,读写仍然麻烦。Pic单片机硬件特性比较好,考虑的很周到,如复位性能较好(延迟上电复位、上电复位、掉电复位),看门狗也不错,而且抗干扰性好,在许多应用中不用外加辅助电路,特别适用于低成本应用。
仿真开发工具(ice2000)价格昂贵,而且根据单片机不同要更换单价数千元仿真模块。当然可以使用国产的。近来推出个ICD2,但是把监控程序下载到片上程序空间,而且占用ram。对于资源本就很少的芯片来说不太实用。
扩展阅读:MSP430单片机的BSL特性