初生牛犊不怕虎——另类童年(1)
思想启迪
周立功接触微处理器始于1981年12月,他正在技校读机电专业。从当时的情况来看,他将来最大的可能在某个工厂当技师。没有人会想到,他日后会成为中国嵌入式技术领域的风云人物,因为反差实在太大了,而在熟悉他的人眼里,也认为他是一个另类。 当作者与他探讨人生时,他谈到了慈祥的爷爷、严厉的父亲、亦师亦友的叔叔、族中的文化人和无拘无束的童年对自己一生的影响,于是我们的交流就从这里开始了。
1. 爷爷的经历
虽然爷爷是老农,但却是一位有见解的人。他读过三年私塾,算得上村里的能人。他在钟表店当过三年的学徒,从卖钟表的老板那里发现了商业秘密。虽然他不知道老板能够赚多少钱,但他从老板在乡下购置的百亩良田和遍布城里的铺子,他知道做老板能发财。
村子里的周秀才在南京女子师范教书,算得上闻名百里的文化人了,两个儿子都毕业于黄埔一期。每逢寒暑假,秀才都会回家省亲,爷爷总是挤在大人堆里聆听外面的新鲜事。15岁那年,爷爷壮着胆子开口向秀才借200块光洋,秀才问他借钱做什么?爷爷告诉他,因为家里劳力多,准备织布染布、织草席、酿烧酒和喂猪,全家参与做生意。接着他问爷爷赚钱做什么?爷爷告诉他,准备培养子女读书将来也当教师。秀才觉得爷爷有志气有远见,于是借钱给了爷爷。
虽然爷爷发了财,但毕竟生活在乡下,根本不知道外面的世界到底如何?于是秀才又推荐爷爷去了汉阳兵工厂。有了见识之后,爷爷将大伯送到了岳云中学。也间接地影响在一起做生意的老表(周立功的外公),后来大舅也到了衡山二中读书,解放前参加了湘南游击大队,显然有了文化就有可能从根本上改变一个人的命运。
2. 爷爷的教诲
周立功是从小跟爷爷一起长大的,其血管里自然流淌着爷爷的商业基因。当他开始懂事时,每天雷打不动的是读报,并将自己感兴趣的内容剪下来,然后分门别类地贴在废弃的图书中,这是爷爷规定必须完成的课外作业。周立功不仅将这种习惯保持了20年,而且通过阅读和分析撰写了相应的总结文章,因此他从中学到了很多书本上难以学到的知识。
随着年龄的增长,视野也渐渐地开阔起来了。他总是和大人们混在一起,给他们讲外面世界发生的事情,甚至经常舌战群雄。不管多么在理,没有人相信他说的话,唯有爷爷对他格外欣赏,爷爷总是说,“这个孙子将来要么不得了(变坏),要么了不得(出息)”,周立功暗下决心一定要做一个好人,不能让人看扁了。
虽然周立功从小口吃很严重,但通过长期的写作训练和晚上在晒谷平给大人小孩讲故事,以及和长辈们辩论的经历,培养了他超越同龄人的出色口才和胆识。从而让他明白,好文章是改出来的,好口才是练出来的,世上无难事只怕有心人。周立功之所以30多年来一直专注于嵌入式行业,可能与他从小的这段经历有很大的关系。
3.吃百家饭
爷爷以自己对人生的理解,阐述了他对当时的时局和未来的看法,他认为老百姓连肚子都吃不饱,还割资本主义尾巴,根本不符合人性,老百姓不敢说,不等于他们没有想法。一旦这个社会发生巨大的变迁,出人头地的一定是有见识的人,因此爷爷经常带他到各地向族中有见习和能力的人学习,聆听他们的教诲。
五岁时,爷爷带他走出乡村经北京上沈阳,他第一次看到了有轨电车,第一次在冬天吃到了冰淇淋,半年时间里跑遍了沈阳的名胜古迹;六岁时,妈妈又带他南下广州,从而对岭南文化有了深刻的理解。由于见多识广,因此他对外面的世界充满着向往。
事实上,爷爷将全部的希望寄托在他的身上。只要有空就会拉住他讲自己的学徒经历和生意经,“无论是学习还是生意,不怕慢就怕站。卖油翁之所以能够将油从铜钱的小孔倒到瓶子里,完全是因为长期练习的结果。虽然水龙头拧紧了,但别小看从水管里滴出来的小水珠,细水长流积少成多,第二天早上起来一看满满的一桶水。”无拘无束的童年,爷爷用那朴素而又实在充满哲理的思想引导着他,“农村的骨头没有肉,变狗都要城里去”。于是他从小就明白“商业里面有咸味(利润)”的道理,在心里不知不觉地播下了创业的种子,长大了一定要象大伯和舅舅那样离开农村到北上广去。
初生牛犊不怕虎——另类童年(2)
文化传承
1.抽象与本质
周立功的父亲大三时因病从湖南大学机械系退学,回到老家当了一名中学数学教师,恢复高考后知识分子受到了重视,他不仅参加了高考命题,而且还出版了数学方面的图书,同时也发表了很多数学方面的文章,且教的文科班高考成绩连续多年排名全省前几名。他对于数学难题和复杂的社会问题,总能象剥笋那样,由浅入深地让人明白,“原来如此地简单”。
为了培养周立功的学习兴趣,从初中开始父亲不断给他讲各种数学的发展史,让他明白为何要发明这些数学,并启发他如何运用数学解决实际的问题。要求他不要死记硬背数学公式,一定要学会推导,于是周立功对数学产生了浓厚的兴趣,因此从初中开始他每次参加数学竞赛都是第一名。
虽然大家都知道高斯8岁时就能巧妙地计算1+2+3+…+100连加和,但很多人仅局限于1+100、2+99、…、50+51这样的思路,却忽略了其中关键的细节。而父亲教给他的则是另样的思路。当老师在黑板上写出连加和算式后,高斯写出了如下这样的表达式
1 + 2 + 3 +…+ 98 + 99 + 100
100 + 99 + 98 +…+ 3 + 2 + 1
————————————————————————
101+ 101 + 101 +…+ 101 + 101 + 101
则100×101 / 2=5050,进而推出了n(n+1)/2这样的归一化结论。显然理解起来更直观,随即利用这一结论可以算出1~99的连加和减去1~70的连加和为99×100/2-70×71/2=2465。
无论是过去还是现在,虽然我们从小到大一直都在学习数学,却很少有人感受到数学给人们的生活和工作带来了多大的价值。虽然很多人都是解题高手,却不知道如何将数学应用于工程。因此从某种意义上来说,学习好不等于能力强。事实上,只有将知识关联起来进行研究则是最好的学习方法。比如,一些学生片面地认为学习就是看书和做作业,因而忽略了实践,你说我不行,我怎么考上了重点;还有一些学生非常重视实践,却疏于总结上升到理论,你说我不行,为何那些分数高的人,既不会编程且硬件动手能力又很差。显然,如果只重视阅读而疏于实践,那么对问题的认识永远只能停留在表面;如果只重视实践而疏于总结,那么透过现场看本质就是一句空话。
之所以后来周立功拿出上千万支持高等学校电类专业探索创新教育,就是因为我们的教育根本不能回答“为什么要学习这些知识?”而人们给出的答案却很模糊,“这是非常重要的基础,有助于逻辑思维的训练。”虽然看起来很有道理,但实际上让人摸不到边际,以至于学习起来非常枯燥乏味。虽然灌输知识可以让人有很强的考试能力,但教育的本质在于培养人们深入挖掘的创造力、好奇心、独特的思考能力和解决工程技术的能力,因此我们不仅需要掌握所学知识的源头活水,更要深刻地认识到所学的知识如何应用才更有价值。
同时生活在那样的年代,小孩子几乎没有什么玩具,因此肄业于湖南大学机械系的父亲,经常带他到小河边用“带粘性的白泥巴”,做各种零部件和机械设备模型,并讲解相应的工作原理,借此培养他对科学的兴趣。
2.榜样的力量
虽然叔叔学的是水稻栽培,偏却爱钻研无线电技术。他几乎所有的时间都用于了自学,60年代初,他设计了全县第一套公社广播放大设备,于是被调到了县广播局担任技术负责人。后来他不仅搞小氮肥控制仪表,而且还从40岁开始搞计算机。从小学开始,周立功就成为了叔叔的小徒弟。
初中时就开始帮叔叔做一些结构和钣金件,叔叔让他看《中学科技》杂志,指导他按照书中的电路做实验,于是他知道了如何使用电阻、电容、二极管、三极管和与非门电路,从小对电子技术产生了浓厚的兴趣。
回头来看,不经意间无意识地做的一些事情,有时会影响人的一生,周立功的动手能力就是这样培养出来的,可以毫不夸张地说,榜样的力量是无穷的。
初生牛犊不怕虎——另类童年(3)
特立独行
从小学数学老师给周立功取的绰号“落花生、电灯泡”,从中可以看出他的数学成绩是多少分了。每当父亲气不过要打他时,爷爷总是耐心地说,“小孩子就是玩的时候,何必那么在乎分数呢?”虽然周立功的文章写得好,但也有低分的时候,爷爷总是开导他,“老师给的分数低,不代表你的观点不对,只是老师不赞同而已,不要太在意。”
虽然周立功小学的成绩很差,当他明白自己想要什么后,就会全力以赴去做,从初一开始他的成绩突飞猛进名列前茅。在叔叔的影响下,从初二开始自学文革期间上海第二工业大学编写的《整流电路》和《开关电路》,从上海业余军体院邮购次品器件,将书中的电路一一制作调试完毕。显然,他不仅具有很强的自学能力与自我约束能力,而且还有坚强的毅力和恒心,因为他做了自己喜欢的事情。
由于从小在山上跑上跑下地玩耍,无意之间练就了特别的爆发力和耐力,因此初一就跑出了12.8秒的百米成绩,他梦想着有一天能够成为一名体育教练。于是他一直瞒着父亲参加体育专项训练,一门心思考体院。尽管他的体育专项成绩足够考上专业体院,但父亲怎么会允许书香门第的孩子当教练呢?当父亲发现时,无论如何也不准他考体院。但此时离高考只有一个星期了,最后周立功以一分之差落榜。
高二前,周立功的成绩一直全校数一数二,因此父亲对儿子的未来充满着希望,期望儿子弥补自己因病退学的遗憾。而周立功的高考落榜却气得父亲一周没有出门,打也打了搓衣板也跪了。当他和父亲商量复读的问题时,父亲坚决不同意。因为父亲太了解儿子的缺点了,不仅从小没有吃过什么苦,而且胸无大志,于是父亲做出决定要他上技校。临行前父亲和他做了一次深入的谈话,要求他必须改掉身上的毛病,立志自学成才,象大伯和舅舅一样光宗耀祖。虽然周立功不理解父亲的苦心,但在严厉的父亲面前还是无力反抗。当父亲问他还有什么想法时,周立功告诉他的父亲,“我将来要做一个讲道理的父亲,一定不会象你这样教育小孩。”事实上,周立功在培养自己的孩子时,吸取了父亲教育中存在的问题,根据两个儿子的特点不拘一格地培养了他们。
虽然周立功读了技校,却没有因此而自暴自弃,每天早上六点钟起床自学英语,课余自学与电子技术有关的知识,决心要活出个人样来。周立功就是靠着这份倔强和坚持,每天学习到深夜三十多年来从未间断。
从乡下到城里读技校,他讲的乡下土话别人听不懂,加之口吃非常严重,只要他一说话同学们就会哈哈大笑,甚至笑得人仰马翻。特别是在喜欢的女生面前,他还未说话就已经脸红脖子粗了,此时的他恨不得有一个地洞立即钻进去。乡下人习惯将肉称作菜,而对城里人来说菜就是蔬菜。第一次到食堂吃饭,他告诉师傅来一份菜,人家就给他来了一份蔬菜。他以为师傅没有听懂,接着又要了一份菜,而师傅给的还是蔬菜。他怀疑师傅嘲弄他口吃,然后他第三次要了一份菜,师傅给的又是蔬菜。他一看火冒三丈,拿着手里的蔬菜就往食堂的窗口里面扔,接着和食堂的师傅大打出手。后来他才明白因为语言和文化的差异给自己造成了很大的障碍,怎么办?从矫正口吃开始练习普通话,于是每天下午他带着收音机在湘江河边跟着播音员的语速练习。为了保持节奏,他在嘴里含着两个小石头,只要速度一快就会咬住石头,于是速度就会慢下来。同时他也开始学习美声唱法训练自己的节奏感,经过两年的时间终于改掉了口气的毛病。毕业时老师要求每个人说几句,他第一次自信地用抑扬顿挫的普通话发表了即席演讲,让老师和同学们刮目相看。
无论是当初读技校还是后来上大学,第一学期他的成绩总是不错的,当他发现学不到自己想要的知识时,就开始“放任自流”地自学了,因此他从技校开始就养成了良好的自学习惯。不仅自学了《一元函数微积分》13本高等数学自学丛书,而且自学了大部分高等学校电类专业课程,工作间还请假到湖南大学电气自动化系旁听了一个学期的课程。虽然当初周立功只是一个技校生,但从侧面可以看出其敢想敢干不达目的不罢休的性格特征。
1992年9月周立功28岁时,好不容易才有机会保送到东华大学读书,但他只读了一个学期就申请退学。虽然校领导反复做工作,但他最终仅读了两年,还是想办法离开了。在众人眼里,周立功并不是一个好学生。由于他从不按常理出牌,以至于刚开始时总是容易被人误解,但为了实现自己的抱负,因此他从不计较别人的看法和眼前的得失,常常会做出一些让人惊讶的决定。为劳动模范的他,本可以在仕途上大有作为,但他却甘愿在广州五山科技街租一个柜台干个体户,显然他不是一个循规蹈矩的人。除了与众不同的性格,更重要的是他从小到大的经历没有受到传统教育的羁绊,可能也是成就他的关键。
透过周立功的成长经历根本无法看出,学历和分数对一个人的成功到底有多大的影响。尽管他已经五十岁了,但通过与他交流丝毫看不出岁月在他身上留下的痕迹,他依然对自己所从事的领域保持着极端的热情。
在培养儿子的过程中,虽然他从不参加家长会,但却总是鼓励儿子敢于发表自己的见解,无论对与错。要求儿子必须阅读一定量的课外书,并常年聘请退休特级教师和外教周末分别教他练习中英文写作。除了作业之外,其他的就是自由时间了,想干嘛就干嘛。
周立功甚至告诉儿子周末如果不打游戏,周一到学校与同学一定没有共同语言,但他规定每次只能打2小时,否则严厉惩罚。周立功认为,千万不要为了所谓的素质教育而强迫孩子弹钢琴、下围棋等,应该将更多的时间用于培养孩子独立的生活能力、思考能力、演讲能力、社交能力……做自己喜欢的事情比什么都重要。
周立功就是这样不走寻常路成长起来的,迄今为止依然保持着特立独行的个性。
初生牛犊不怕虎——峰回路转(1)如饥似渴
周立功技校毕业后,分配在工厂当维修电工。一个偶然的机会,他通过杂志了解到个人电脑Altair 8800诞生的故事。Altair-8800只有256字节的数据RAM,4KB的程序ROM,不仅没有显示器和键盘,而且更加见不到鼠标,这是一台没有监控程序的计算机,用户只能用二进制机器语言为这台计算机编程。先将程序的16进制操作码和操作数用手工转换成二进制写在纸上,然后通过拨动面板上的开关来完成。
由于自学《开关电路》时,动手制作过电子计数器,因此他很快就联想到用拨码开关、上拉电阻和下拉电阻来产生二进制高低电平。当开关向上推进时,因为上拉电阻的作用而输出高电平,发光二级管点亮代表高电平;而当开关向下推进时,因为下拉电阻的作用而输出低电平,发光二极管熄灭代表低电平。先拨好地址码,接着再拨好数据码,最后按下写入键,而每拨动一遍相当于输入一个字节。
他感到无比激动,看到了未来的希望,梦想着有一天自己也能制作一台这样的计算机。于是他到处向人请教,但几乎没有人能够回答他提出的问题。这时他通过父亲的大学同学陈应球老师,找到了毕业于浙江大学电机系的刘吉和老师。在刘老师的指导下,他对计算机的大致工作原理才有了粗浅的了解。
在遇到困难实在学不下去时,他壮着胆子给《电路分析基础习题解答》的作者,原湘潭基础大学校长程应森教授写信,在程应生教授的指导下,周立功坚持自学了李翰荪教授编著的《电路分析基础》。同时帮助他从理论到实践分析工作中遇到的问题,整理成文章发表在《电世界》等杂志。对于技校毕业的周立功来说,那是多么大的鼓励啊,进一步激发了他坚持学习的决心。南方的夏天不仅很热,而且蚊子多,大家都在外面纳凉。周立功深深地明白,他不能浪费宝贵的青春,再苦再累也要坚持自学下去。于是他想到了一个既可以降温,还可以起到驱蚊效果的办法,将双脚放在装满井水的水桶里,不知不觉地学习到了深夜。
期间因为工作需要,他又向东北电子研究所王功伯研究员学习红外加热技术,深入学习了建筑热物理学、温度场、辐射场与黑体理论,以及相关的光学知识,后来周立功撰写了《工业低温辐射远红外加热技术》系列论文,在湖南大学的《现代节能》杂志连载,全国各地的读者来信上千封,成就感油然而生,极大地提升了他的自信心。由于艺多不养家,因此他选择了放弃这个课题的研究。但是在艰难的自学之路上,他又前进了一大步。
后来叔叔介绍周立功到湖南大学找他当年在广播站的徒弟何诚教授,从而认识了湖南大学电气工程系电子技术教研室主任肖鸿猷教授。在肖鸿猷教授的鼓励和帮助下,每个学期周立功都请假到湖南大学旁听。实验时,很多学生按照实验指导的流程做一遍,交完实验报告就走了。所不同的是周立功非常珍惜这来之不易的学习机会,从不放过实验过程中的任何细节,比如,当波形出现毛刺或畸变时,他总是想法设法改进电路直到完美为止,并将遇到的现象和解决的方法详细地记录在实验报告中。在肖鸿猷教授的悉心指导下,周立功彻底搞清楚了计算机的工作原理。
——接下来,请阅读“峰回路转(锲而不舍)”
初生牛犊不怕虎——峰回路转(2)
锲而不舍
为了制作计算机,周立功已经到了如痴如醉的地步,不论到哪里总是带着与计算机和数字电路有关的大学教材。首先从存储器的读写控制电路开始做起,当时他不会绘制PCB板,于是装作用户跑到湖南省计算所去请教。回来后,他用铅笔在绘图纸上走好线,然后贴到覆铜板上钻孔,等打好孔后才知道,原来他用的机械制图的坐标纸的格子,与PCB板的绘图纸尺寸是不同的。他打听到这种绘图纸是辽宁本溪制造的,于是通过在沈阳军区的大伯买到了专用绘图纸。没有制作双面板的条件,怎么办?周立功在覆铜板的背面通过跳线,将过孔用电阻、电容多余的引脚将线连起来,于是就形成了双面板。
1.存储器的读写(1)
如果仅读写256个字节,那么只要地址线A0~A7,同时将不要的地址线A8~A14全部接地,其寻址范围为00000000B~1111 1111B,因此需要8个地址开关才能满足寻址要求,还要8个LED灯作为地址信号显示器。由于存储器只有数据线D0~D7,同样要8个数据开关用于产生数据和8个LED灯作为数据信号显示器。/CE常用在多存储器电路中作为片选线,当/CE为逻辑1时,则禁止器件工作,反之则选中该器件,即将/CE接地使其处于工作状态,然后再连接存储器读写控制开关,即构成存储器读写电路。
当按下/WR键时,将由数据开关KD0~KD7所产生的数据写入由地址开关KA0-KA7所产生的地址存储“房间”。当按下/RD键时,将由地址开关KA0~KA14所确定的地址存储“房间”的电平数据反映在存储器D0~D7数据线上。由于KDi(i= 0~7)的状态不是0就是1,因此从存储器读出的数据与KD0~KD7产生的数据在总线上势必发生冲突。显然,当将数据从存储器读出时,则必须断开数据开关KD0~KD7与数据总线D0~D7的联系。
当将上述准备工作做好后,此时只要接通电源,即可向SRAM写入数据。
首先将地址开关KA0~KA7全部拨为0,即存储器的8位地址数为0000 0000B,LED地址显示器全部熄灭。此时,如果将数据开关KD0~KD7也全部拨为0,即与00000000B地址对应的数据为0000 0000B,再按下/WR键将数据0000 0000B写入到存储器的0000 0000B单元。接着将KA0~KA7拨为0000 0001B,同时将KD0~KD7拨为0000 1111B,再按下/WR键将数据0000 1111B写入到存储器的0000 0001B单元。重复上述操作方法拨动地址开关和数据开关,再按下/WR键……直到全部数据写入完毕为止。
<ignore_js_op>
存储器读写控制电路原理图(1)
检查数据的操作首先用跳线器连接/EN与Vcc(/EN=1),关闭74HC125三态缓冲器,断开数据开关KD0~KD7与数据总线D0~D7之间的联系。先将地址开关拨为00000000B,接着按下/RD键,此时即可在LED数据显示器上读到先前输入的数据(注意,必须在键被按下时才能看到)。再将地址开关拨为00000001B,然后再按下/RD键就能在显示器上读到+1地址的数据……
综上所述,当/EN=0写使能信号同步打开74HC125三态缓冲器时,KD0~KD7所产生的数据接入总线,此时只要按下/WR键,则将数据写入到存储器相应的单元中。一旦数据输入完毕,当/EN=1读使能信号同步关闭74HC125三态缓冲器时,此时只要按下/EN键,不管KD0~KD7是高电平或低电平,则输出均为高阻态,从而保证数据开关KD0~KD7退出总线控制。
初生牛犊不怕虎——峰回路转(3)
1. 存储器的读写(2)
如果感到用跳线器来改变/EN信号状态比较麻烦,我们也可以设计一个读/写使能控制电路,详见图1.2。其中的S1为Read读使能键,S2为写使能键。
<ignore_js_op>
图1.2 读/写使能控制电路
当S2(Write)键按下时,U10B输入端5被拉为低电平,U10B输出高电平驱动写状态LED灯点亮。同时U10A输入端2也转换为高电平,U10A输入端1由电阻R47上拉为高电平,因此U10A输出低电平作为/EN(Data)使能信号打开74HC125三态缓冲器,此时由KD0~KD7手动数据输入电路产生的8位二进制数据,通过8个已开通的三态缓冲器送到存储器的数据总线D0~D7。在此状态下只要选定好地址,设置好数据,就可以对存储器写入数据了。
在读取数据时,先按下S1(Read)键,U10A输入端1被拉为低电平,U10A输出高电平。同时U10B输入端4也转换为高电平,U10B输入端5由电阻R48上拉为高电平,所以U10B输出6低电平使写状态LED灯熄灭,表示当前状态为读数据操作。即U10A的输入端2为低电平,则U10A输出高电平作为/EN(Data)使能信号关闭74HC125三态缓冲器,其输出高阻态相当于断开数据开关KD0~KD7与数据总线D0~D7之间的联系,从而使存储器的输出数据不会受到数据输入电路的影响。
此时,仅需在KD0~KD7分别串联8个三态缓冲器(2片74HC125)即可满足上述要求,详见图1.3。
<ignore_js_op> 图
1.3
存储器读写控制电路(2)
当将/EN置1(用跳线器连接Vcc与/EN)时,即可关闭三态缓冲器,其输出高阻态相当于断开数据开关KD0~KD7与数据总线D0~D7之间的联系。此时,只要按下/RD键,即可将数据从存储器读出。当将/EN置0(用跳线器连接GND与/EN)时,即可打开三态缓冲器,则KD0~KD7产生的数据通过三态缓冲器传递到数据总线上。此时,只要按下/WR键,即可将数据写入存储器。