第一章 嵌入式软件架构的发展
1.0 MCU51的发展历史
国内大部分嵌入式人员了解嵌入式是从学校开设的单片机MCU51开始的,我也一样,2000年接触的是ATMEL的AT89C51系列处理器,8位数据总线,16位地址总线,最高24MHz外部时钟,12个时钟周期,4~64KByte Flash和128~1K Byte Ram。该系列处理器,因为工作主频低,并且一个指令周期需要12个时钟周期,实际等于一秒钟最多只能执行2M指令,处理速度低。加上其内部的Ram、Flash太少,只能做一些简单的控制,这也是MCU的名字来源:“微控制单元”,所以这个阶段,很多采用汇编来编程,C语言编程处于萌芽阶段,程序需要用Flash烧录器,程序调试需要依靠仿真器来完成。因为当时初级的半导体制程导致的抗干扰,抗静电能力比较强,加上MCU厂商较少,竞争压力少,价格高,测试完善,所以ATMEL的MCU51可靠性很高,口碑很好。
基于当时MCU51主频低、Ram少、价格贵的特征、软件开发基本上都是以汇编为主,提高效率,降低资源要求以降低MCU51的成本,幸好那个时期控制的对象往往不是很复杂,主要是一些机械、仪表类控制对象,都是简单的逻辑处理,带一些数码管或者是黑白液晶显示器,汇编确实比较适合,这算是最早的裸奔软件架构。
2000年以后,周立功单片机公司代理飞利浦半导体公司(独立后改名为NXP),推广NXP的MCU51,比如P89C52x2,可以通过串口Txd、Rxd及下载使能复合脚Psen与复位脚Reset直接下载,不再需要Flash烧录器及仿真器,大大降低了开发者投资门槛,也极大的方便了开发者,同时周立功公司开始推广Keil C编译器,让嵌入式人员真正走上了C语言编程。基于以上两点,周立功公司通过一系列MCU51评估板迅速占领了嵌入式评估板市场,尤其是早期最出名的DP-51开发板,引作者正式走上嵌入式,基于它开发了“实用单片机系统MS”,也为现在的msOS打下了基础。
NXP的芯片相比ATMEL来说,虽然价格差不多,但此时的价格相比以前已经下来不少,接近普及,并且因为支持串口下载,6时钟周期模式性能提升一倍,增加了很多特殊寄存器扩展了一些实用特性如AD、DA、PWM,扩展了一些应用模块,如CAN,极大的丰富了MCU51的内涵,让客户有更多的应用选择,这一切都让大家意识到MCU51普及应用时代的到来。后来国产单片机厂商宏晶科技推出了基于上电串口下载程序,不需要Psen和Reset脚的解决方案,集成了更多的功能,细分了各种品种,并且以低廉的价格正式引爆了MCU51市场。
我们来回顾一下MCU51的发展历史:
1、 Intel发明了8031。
2、 Atmel在MCU内部集成了Flash和 Ram,实现了真正意义上的单芯片方案。
3、 NXP采用四线串口下载程序,丢弃了仿真器.
4、 周立功普及MCU51开发板,推广Keil C,让MCU51广泛进入学校。
5、 STC采用上电两线串口下载程序,增强性能功能,细分品种,让MCU51无处不在。以上大家可以看到,MCU51的进步除了Intel发明之外,其他的都可以认为是基于需求、方便使用,属于微创新,而这些微创新,却极大的普及了MCU51,在市场中产生了质变,然而这些微创新往往不被技术人员重视,甚至嗤之以鼻,他们往往看不到背后的市场效果。
本人有幸认识STC创始人姚永平先生,聆听其对技术与市场的独到认识:
1、 STC初期不出评估板,避免技术支持压力,以透明低价直接挤占大厂市场,虎口夺肉。
2、 认识到MCU51的生命力还很顽强,尤其是原来的老工程师,并且因为MCU51简单易用,特别适合教学学生市场,所以充分挖掘MCU51:
a、 细分市场,细分功能,形成一个系列,覆盖大部分需求,区分价格,
b、 进一步提高主频,集成度,减少外围器件,比如单指令周期、40MHz时钟、支持内部RC时钟,无需外部时钟,甚至考虑内置滤波电容,加上其原有的高抗干扰、抗静电能力,让MCU51成为一颗真正意义上的单芯片方案,用户不需要太多的注意细节。比如PCB布板、干扰、静电等问题。
c、 专门针对退出MCU51的大厂提供替换型号,承接它们的客户。
d、 在ARM的Cortex M系统大举进军嵌入式市场,与MCU51重叠之时,深入挖掘高校、学生市场,推出开发板,出版各种书籍,继续延续MCU51生命。
对于STC及产品等,我不做评价,但对于姚先生本人作为一个技术人员,能够深刻认识到市场对技术的影响,一切从需求出发,简单、易用,我非常认同,并且身体力行。他曾经有一句话长期影响着我:自己做的产品,要建立品牌,天天给她施肥、浇水,完善一点点,她就能茁壮成长,切忌喜新厌旧。
msOS QQ群:291235815,欢迎加入
用户1154911 2013-9-25 03:10
用户1014169 2013-9-22 21:13
用户1182783 2013-9-22 15:30
用户1585888 2013-9-22 09:08
用户1602177 2013-9-18 17:12