我的技术人生观
http://blog.sina.com.cn/xindongwuyin
从毕业到现在,已经十几年了,经历的技术发展已经翻天覆地, 从开始用80C31、89C55到AVR单片机,还有最近七八年来比较火的ARM7、ARM9,芯片的集成度越来越高,价钱越来越便宜。我个人买过的开发板更是不下10 块,有双龙在2000年出的AT90S8515开发板, 周立功DP-51开发板,周立功LPC2104开发板,TMS320VC5202开发板,友善之臂2410开发板,S3C44B0开发板,AT91RM9200开发板等,算下来超过5000元,全部是自己掏钱买的。如果你问我,这么多年玩过那么多开发板,这些技术你都搞定了吗?答案是没有,人的精力有限,如果没有用来做项目的话,说掌握那是骗人,用得最多还是常用的51单片机或AVR单片机。从2000年初开始用C51编程,之前一直用汇编语言,到后来邵贝贝老师翻译了uC/OS II嵌入式实时操作系统,我也跟着玩uC/OS,同时买了两本他的书,一本是中国电力出版社出的第一版,另一本是北航出的第二版。当时很搞笑,在一个产品上移植完uC/OS后,完成的功能仅仅是采集AD、DI信号和简单的无线数传模块通信,做完后想想都可笑,这么简单的功能还要披着如此沉重的外套,就像披着雨衣在冲凉,完全没有必要,所以觉得电子产品一定要根据实际情况来开发。友善之臂刚成立公司时,买了他们的2410开发板,开始玩Linux和WinCE4.2,安装红帽子,安装PB,疯狂了几个月,后来公司没有什么适合的产品需要做用到,又扔下了。过了一些日子,那时觉得2410的BGA封装,如果用在小批量产品时加工费用比较贵,而后在淘宝网又买回一块9200开发板(PQFP208封装),又折腾好几个月,那时发现RedHat不好用,专门去太平洋电脑城买了一个硬盘装ubuntu,发现其更新驱动或者软件特别方便,确实好用。这些年来自己可以说是一个超级狂热的硬件开发爱好者,一直在追赶所谓的“技术潮流”。但我不得实话告诉你,玩过这些开发板后,真正用ARM7或者ARM9芯片来做过公司产品的项目,还真没有一个。这不是说技术学得精不精的问题,而是我所工作过的公司,大多数产品完全没有必要用到这些芯片或者系统,或者说如果用上ARM芯片后,产品的整个成本都会增加,所以一直都没有用上,用得最多的产品架构还是CPLD加单片机,或者专用的芯片,比如要增加MP3播放功能,用AVR单片机配上一个VS1003(硬解压芯片)搞定,做成模块后,技术人员维护系统时更容易判断故障在哪个模块出问题。再说uC/OS II这个东西,虽然可以做到多线程,但大部分产品用上后反而让系统反应速度减慢,因为我做的东西都不是什么复杂的系统,如果硬要用上,它的任务调度却会耗费不必要的时间,就几个简单的任务,用上反而觉得累赘。CPU最快速的响应一定是程序裸奔,这想我个结论没有人反对吧。
你会问我?花了这么多钱来买开发板,值得吗?我说非常值得。虽然没有用上一个,但学习过程中不知不觉还是学到别人的电路设计方法和编写C语 言程序的技巧,用在小产品上面会觉得非常游刃有余,设计产品的时候思路比较清晰。到现在我觉得,买开发板最好让公司出钱,反正技术水平提高了还是公司得 益,像我这样子买一大堆回来,老实说其中有几块板确实不应该买,但总体来收获大于损失。现在经常在一些论坛上看到很多人在热烈讨论linux,包 括内核移植,驱动程序开发等,这是个好事,以前我也和一些同事经常讨论这些问题。但千万不要太迷信自己的能力,以为学完这些技术就可以独步江湖,其实技术 是学不完的,一个人很难有精力同时搞完内核部分和应用程序开发,就算有精力,我想这样的系统可靠性与稳定性一定不会好到哪去,最好把精力用在某一个方向, 这样比较容易出成绩。不是说没有这种超人,而是很少。真正商业级的Linux产品,光维护一部分源码都要N个人。年初面试过一个人,他当面告诉我:他能够完成从内核移植到应用程序开发,还包括C51,AVR等,同时还精通电路设计、VC++、delphi数据库等,俨然一个超人。结果我拿来一块小电路板,叫他在51单片机板上,用74HC138分配一个地址给一个外设,连这个地址分配都写不出来还谈什么电路设计?是不是超人是很难混得过去的,特别是做技术。深圳爱默生的实力已经够强大了,06年我就见过他的一款基站监控产品是用了别人的linux,也就是说别人已经给它做好内核移植和驱动程序,他们只要负责应用层的产品开发。我觉得这才是真正的产品和出路,单凭一两个人就想做一款大量应用的嵌入式linux或WinCE商业产品难之又难,除非你是做学习型开发板在网上卖,因为只有这种产品才不需要考虑稳定性和可靠性,这是我玩过那么多开发板后最真切的体会,并不是你所做的产品越高科技越好,好像用上ARM芯片后就可以产品销路大增,完全不是那么回事。客户可不关心你用的是ARM还是51,他最关心是操作简单好用,价格便宜实用。前几年我曾经在一家自行车厂的生产线自动化设备上,看到这台国外进口设备的电路控制部分,采用的是51单片机(SAB80C537),还要外扩27C512来保存程序代码,够old了吧。可就是这台设备,全中国没有一家公司做得比它稳定可靠与耐用,而价格更是高达几十万元,这才叫做真正的工业产品,与用不用ARM芯片完全没有关系,做这台设备的厂家叫荷兰机械,典型的欧洲产品,自行车行业的朋友应该知道。
多年前,当双龙电子和周立功等公司都在为51芯片摇旗祭酒时呼喊:让51芯片见鬼去吧。那时的豪言壮语似乎让人看到这样的一幅画面,51芯片纷纷抱头鼠窜,AVR或ARM等芯片即将一统天下。可是这些年过去了,我发现周围的公司和朋友还在大量地用51芯片,市场的力量不是几个人的振臂一呼就能改变,STC单片机的出现就足以说明这个事实。当很多人都觉得51内核没有多少机会可挖时,但偏偏有人能够找到属于自己的机会,我现在所做的产品只要用到51的,全部都是STC的,没有办法的事,因为便宜好用。至今全世界还有若干种基于51内核的芯片更是明证。在这里,我们要感谢伟大的intel公 司设计了如此经典的芯片架构,从七十年代到现在,已经用了三十多年,经典还在继续。而中国的“汉芯”等所谓的国产芯片只能成为别人的笑柄,中国从来不缺少 口号!什么横空出世,什么填补国内空白,多少年来一直都是忽悠国人。不是说我看不起国产,相反我非常喜欢用国产,市场不是靠吹出来的,用实力说话才是正 路。比如我做的产品就经常用周立功的zlg7289,没有什么理由,就是要稳定可靠和价格合理,这是宗旨。如果你产品做得好,价钱又便宜,我为什么不用国产呢?
这几年来,一直在做一些小产品开发,主要用在工业监控方面,比如AD转换模块,异步电机调速控制等。消费类产品去年做了一款车载导航,和朋友一起来做的,用了别人的方案(基于MStar MSB2501平台),比三星2440方 案便宜好用,估计在深圳就远峰不用吧。虽然不像别人开间公司那么赚大钱,但收入还算比较稳定,不至于像刚来广州时为了钱而发愁,也渐渐摸到了属于自己的生 存方式。虽然面试周立功公司时,得到了“不适合做单片机开发”的结论,但我还要谢谢周立功,实话实说,我从周立功身上也学到很多东西,比如专一。这不是说 专心做电子或嵌入式软硬件开发那么简单,电子行业那么大,你做哪一行或哪一种产品合适呢。我的意思是说一定要用心在一个行业里面做一两个相关性很大的产 品,不一定要用到很复杂的技术,只要你下狠心做它个三五年以上,想不成为专家都难,怕就怕你三天两头就转行。等你在某个行业成为专家了,自然能够在这个行 当找到属于自己的位置。我经常看到一些毕业几年的大学生,甚至有些已经毕业十几年了,今天做安防电子,明天做家电控制,后天又做音视频产品,跳来跳去没个 完,似乎什么都懂,做过的东西又多,但每一样都不深入。因为你一旦离开了自己熟悉的行业,踏入另外一个新行业,哪怕新的行业对你来说没有多少新的技术,你 也不可能在短时间内对这个行业了解,甚至皮毛都没沾到,更别说要在这个行业捞到你的第一桶金。要相信一点,能够做到老板的都不是傻子,他一定比你精明,哪 怕他不知道什么叫单片机,ARM7和ARM9之间的差别,但他在行业里面肯定有他自己独特的眼光,能够赚到你赚不到的钱。所以,没有在一个行业里面泡上五六年以上,要想赚到买房子的钱很难。
似乎前面的讨论是不是你认为我把钱与技术挂勾起来了,心里有那么点不爽,用不用这么俗呀!没有钱就不能玩技术了吗?答曰,可以玩。但如果又赚到钱,又可以玩技术,那不是更好么。