闲说各家单片机的优缺点
扫描二维码
随时随地手机看文章
经常会在网上看到各家推广单片机的人员宣传他们代理的单片机,比如pic,avr,c8051等,当然从宣传推广的角度,总是要多说些他说宣传推广的单片机的优点,这样才能让众多不是专家的工程师,学生,公司采购人员,老板对其感兴趣,进而受到诱惑而使用他们的单片机。
可以总结下:无论什么厂商的单片机,在宣传的时候提到的优点基本上有以下几条:
1.高性能。比如avr的单片机就说它是单机器周期的指令集,性能高,喜欢与8051的12T相比,说快了12倍
2.抗干扰能力强。这个尤其是pic的宣传者,说它是具有最好抗干扰能力的单片机
3.破*解困难,比如avr喜欢在这方面说事,说它什么什么熔丝技术,让人家无法破*解
4.低功耗。这点当然msp430是一流的,但我看到几乎所有的单片机宣传都说自己是低功耗的
剩余的就全是不靠谱的瞎扯了,比如在“为什么选择avr“中居然列出了超过20条理由,其中几乎所有的都是这些:"
(1)为什么选用AVR单片机? Flash程序存储器可擦写1000次以上,不再有报废品产生。PIC 有的是OTP,只能烧录一次。AVR程序存储器数据为16位组织,也可按8位理解。PIC是12/14位程序 存储器,作寄存器转移和算术、逻辑运算带来不便。
(2)为什么选用AVR单片机? 高速度(50ns)、低功耗!硬件应用Harward结构,具有预取指令功能, 使得指令可以在一个时钟周期内执行。PIC要4个时钟周期执行一条指令。MSC-51要12个时钟周期 执行一条指令。
(3)为什么选用AVR单片机? 超功能精简指令!具有32个通用工作寄存器(相当于8051中的32个累 加器,克服了单一累加器数据处理造成的瓶颈现象),有128B~4KB个SRAM,可灵活使用指令运算。
(4)为什么选用AVR单片机? 工业级产品!具有大电流(灌电流)10~20mA或40mA(单一输出),可直 接驱动SSR或继电器;有看门狗定时器(WDT),安全保护,防止程序走飞,提高产品的抗干扰能力。
(5)为什么选用AVR单片机? 程序写入可以并行写入(用万用编程序器),也可用串行在线ISP擦 写。也就是说不必将IC拆下拿到万用编程上烧录,而可直接在电路板上进行程序修改、烧录等操 作,方便产品现场升级。有ISP、JTAG及自编功能,这是今后单片机编程的发展方向 。
(6)为什么选用AVR单片机? AVR的I/O口是真正的I/O口,能正确反映I/O口的真实情况。I/O口 有输入/输出, 三态高阻输入,也可设定内部拉高电阻作输入端的功能,便于作各种应用特性所需 (多功能I/O口)
(7) 为什么选用AVR单片机? 高度保密(LOCK)!
–不可**的Lock bit技术
–不象Mask ROM那样可通过电子显微镜**–Flash单元深藏于芯片内部 –可多次烧写的Flash且具有多重密码保护锁死(LOCK)功能,因此可快速完成产品商品化,并可多 次更改程序(产品升级)而不必浪费IC或电路板,大大提高产品质量及竞争力。
(8)为什么选用AVR单片机? AVR内带模拟比较器,I/O口可作A/D转换用,可组成廉价的A/D转换器。
(9)为什么选用AVR单片机?可重设启动复位。AVR系列有内部电源开关启动计数器,可将低电平复 位(/RESET)直接接到Vcc端。当电源开时,由于利用内部RC的看门狗定时器,可延迟MCU启动执行程 序。这种延时使I/O口稳定后执行程序,以提高单片机工作可靠性。有的还有内部复位电压检测电
路BOD,而检测电压可调。
(10)为什么选用AVR单片机?具有休眠省电功能(POWER DOWN)及闲置(IDLE)低功耗功能。一般耗 电在1~2.5mA,典型功耗情况,WDT关闭时为100nA
(11)为什么选用AVR单片机? 像8051一样,有多个固定中断向量入口地址,可快速响应中断。而 PIC只有一个中断入口,要查询后才能响应中断,失去了最佳响应中断时间。
(12)为什么选用AVR单片机? AT90S1200/2343/ATtiny15等部分AVR器件具有内部RC振荡器- 1MHz的工作频率,使该类单片机成为无外加元器件即可工作,就是一片芯片,可谓简单方便,作加密 器件使用更妙。
(13)为什么选用AVR单片机? 计数器/定时器,C/T有8位和16位,可作比较器;计数器外部中断和 PWM(也可当D/A)用于控制输出,有的有3-4个PWM,作电机无级调速是理想器件。
(14)为什么选用AVR单片机?有串行异步通讯UART接口,不占用定时器和SPI传输功能,因其高速故 可以工作在一般标准整数频率,而波特率可达576K。
(15)为什么选用AVR单片机? AT90S4414/AT90S8515具有可扩展外部数据存储器达64KB。它们 的引脚排列及功能与8051相似,即可替代替8051系列单片机(8751或8752)的应用系统。仅差复位 电平,只需对调复位电阻、电容位置。还增加很多新功能,WDT,A/D,PWM等
(16)为什么选用AVR单片机? 工作电压范围宽(2.7~6.0V),电源抗干扰性强。 AT90LXX为低电 压器件(2.7~6.0V), AT90SXX电压为 (4.0~6.0V),最低器件ATtiny12己到1.8V ~ 5.5V。
(17)为什么选用AVR单片机? AT90S4434/8535具有8路10位A/D;AT90S2333/4433具有6路10位 A/D;功能更强的ATmega103/128有Flash 128KB,EEPROM 4KB,RAM 4KB,I/O端口48个,中断源16 个 ,外中断8个,SPI,UART,8路10位A/D,ISP。
(18)为什么选用AVR单片机? 并具有较大容量、可擦写10万次的EEPROM,对掉电后数据保存带来 方便,来电后能记住掉电时的工体状态,EEPROM(64B~4KB) 。
(19)为什么选用AVR单片机? 新的高档AVR ATmega16/32/64/128还具有JTAG边界扫描、仿真、 编程功能,不会造成以往仿真通过,脱机不行的现象。
(20)为什么选用AVR单片机? AVR 微处理器---可以对自己编程..ATmega161为使用便利性而设 计
–写入新代码时无需外部器件
–小扇区:128字节
–Boot区可变
–Read-While-Write技术
–减少编程时间
–受控于硬件的编程方法
–打开通向新世界的大门
–通过任何接口进行编程(并行编程器、ISP、JTGA、 UART 、自编程)–重复编程无需外部器件
–100%安全的远程加密更新方式
(21)为什么选用AVR单片机? 从高级语言C代码,看各种单片机性能比较: 从一个小C函数为例:
/* Return the maximum value of a table of 16 integers */
;返回最大值的表格的16位整数
int max(int *array);数组*array
{
char a;
int maximum=-32768;最大的=-32768
for (a=0;a<16;a++)
if (array[a]>maximum)
maximum=array[a];
return (maximum);返回
}
性能比较:
AT90S8515 8 MHz
80C51 24 MHz
68HC11A8 12 MHz
PIC16C74 20 MHz
编译结果结论:
8 MHz AVR ——224 MHz 80C51
HC11:代码效率高,但是处理能力只有AVR的1/10,功耗却高 2.5倍
PIC 速度快, 但是在相同功耗下AVR性能比其高3.5倍
(22)为什么选用AVR单片机?AVR使用众多功能强大的高级语言
● IAR AVR C编译器 编译器与AVR同步设计,支持C和EC++ ,Demo版只生成调试文件,
● ICC AVR C 编译器 支持无SRAM器件;增加组软件模块;Icc Demo版30天是完全版, 30天后转 限2KB版
● Code Vision AVR C编译器 有组软件模块,Demo版为限2KB版
● GNU C编译器 网友联盟自由免费版,升级慢
● BASCOM-AVR Demo版为限2KB版
(23)为什么选用AVR单片机?AVR有各种档次的开发工具
评估工具
–AVR Studio
–STK500
–GNU GCC 编译器高性能开发工具
–AVR Studio
–STK500
–ICE10 / ICE30/ICE200
–IAR C
低成本开发工具
–AVR Studio
–ICE200 / JTAGICE
–Imagecraft C
- 本站开发AVR mega16/32 学习开发板
(23)为什么选用AVR单片机?有了AVR基础,我们学习FPSLIC(=AVR+FPGA+SRAM),使我国单片机开发 进入芯片级开发。"
上面只是拿一个宣传avr单片机的,在网上广为流传的帖子为例来说,倒不是对avr本身有什么意见,也不是说其他厂商单片机就比它好。
我可以说,上述90%是废话,是没话找话,是忽悠不大懂单片机的人的胡扯的话。比如第23条:真高,居然把学习avr和发展我国芯片设计技术扯到一块了,这也太能扯蛋了,试问按照写这个帖子老兄的意思,难道学pic,8051就对进入芯片级开发没有帮助?推而广之,或许我放个屁也对中国芯片产业产生影响。
第22条,大意是avr可以用高级语言开发,这也算avr的优点?什么单片机不能用高级语言开发,举个例子出来?
第21条:也是胡扯,把avr与motorola的68HC11A8 比,你怎么不和intel的酷睿比啊?68HC11A8 是什么年代的?它热卖的时候,你avr还不知道在哪娘肚子里呢,与8051比也是同样,传统8051确实不怎么样,但要说8MHZ avr相当与224MHZ 8051我不相信,不知道作者是怎么得出这个结论的。
第20条:大意是可以isp,这个我想目前大多数单片机都具有这个功能吧。avr并没有什么特别之处,也没什么突出之处,请不要把一个已经成为基本功能的东西还拿出来作为亮点在忽悠
第17-19条:什么avr具有jtag,具有spi,adc等等作为亮点在说,同样,现在几乎所有单片机都具备上述功能,而且据我了解,avr在这方面表现一般,很多单片机具有更多路adc,更高精度adc,更多路spi,i2c,uart等等,比如TI msp430,飞思卡尔s08
第8-16条,跟上面一样,说的全是基本功能,说的全是所有单片机都具备的功能,什么具有定时器,什么具有adc,什么uart不占用定时器,什么低功耗模式。。。。,打住打住,这算是你要吹嘘的优点吗?找找看现在的单片机哪个没有这些功能,当然你如果硬是用古老的8051或者moto的68hc,因为不是一个年代的,比较没什么意义。据我所知,avr在这方面很一般,很多单片机比它强,有更多的uart,更好的低功耗模式,更多更灵活的定时器。。。,看看飞思卡尔的s08系列就知道了。
第1条尤其古怪,竟然说avr是flash的,pic是otp的,这真是胡扯,pic也有flash的,几乎所有厂商的单片机都同时有flash版本,otp版本,甚至rom版本的,avr真不该拿这个说事
2-7这几条,基本上是说高速高性能,虽然说avr确实是接近1mips/mhz,但avr的性能并不是多突出的,这涉及到体系结构的问题,avr通常在3.3v时候只能最高跑8MHZ,5V跑16mhz,这是非常低效的,大多数单片机都比它快!我甚至怀疑,为什么avr的主频做不高,很可能是它的架构有致命伤,本来就做不高,当然这个只是我的怀疑,否则为什么不做个40MHZ的atmeag16?
上面那么多,其实就是想说大多数这些宣传的东西都市胡扯的,很不专业,很多误导,上述avr的所有23条优点都不是优点,因为msp430,s08都具备,甚至比它更好。
比上述更胡扯蛋的,甚至是无耻的就是stc单片机的宣传,号称相当于480mhz的传统8051,说永不可解密,说什么intel统一x86,宏晶统一8051,如此狂妄无知无耻的宣传语真是让人无语
当然从宣传角度来说,中国向来是没有什么诚信的国家,电视上,媒体上各种广告都普遍虚假宣传,虚夸成分很重,这是中国国情,从这个角度说,那些宣传单片机的人这么写没有什么不对,因为行情就是这样。如果是我去宣传,也会这么做,不过我会注意不会那么离谱,肯定比这些人写的真实些,水分少很多。