行业“老兵”职业生涯回顾之一:在战争中学习战争(转)
扫描二维码
随时随地手机看文章
从1951年开始,我先后在空军部队担任雷达操纵员、雷达教员、雷达科长。那个时候,电子行业正处于电子管时代,当时中国还没有能力制造自己的电子管,包括雷达在内的很多产品都是舶来品。1965年,我从空军导弹学院制导雷达专业本科毕业,随后在1978年进入空五所,先后任工程师、高工。1995年我到了退休年纪,先后在专注于中央空调、医疗仪器、现场总线和GPS汽车定位系统设计的公司做软硬件的开发工作。
接触IT行业是从1990年开始的,那时利用计算机做工控主要以PC机为主,单片机为辅,在PC机的扩展槽上插工控板进行数据采集和各种控制。我的入门之作,就是这样的一块数据采集板。那时的机器语言基本使用汇编,我用的是8086汇编。在90年代中期左右,C语言流行起来,逐渐代替了汇编。
回顾近十多年来,在计算机工控行业,变化最大的当属单片机了。以前,PC机较单片机控制更为方便,而且显示打印也都容易实现;而现在,单片机已成为计算机工控的主流。80年代出现的名为单板机的电子板,就是单片机的前身,最早的单片机只有4位机,但很快就被8位机所代替。单片机的巨大变化可以从以下几个方面看到:
1) 集成度越来越高。早期的单片机其实不能称之为‘机’,因为它不过是一个CPU单芯片,需要靠众多的外围芯片共同组成一个智能系统。而目前的单片机,不仅CPU功能更强、更快,还集成了原属于外围的大量电路,利用几十上百K的Flash代替片外ROM,几十上百K的RAM代替片外存储器,用RTC代替片外实时钟,有多位的AD/DA变换器,有UART、SPI、IIC、Can等多种通信接口。以前的开发工程师需要花费大量时间挑选众多的外围芯片,并将它们有机组合,制成复杂的PCB图。那时,甚至还有不少专门的硬件工程师。而如今,行业内很少有这种分工了,现在的工程师们将主要精力放在了软件编写上。
2) 速度越来越快。早期的单片机系统晶振频率不高,执行一条指令要多个时钟周期,而目前不少单片机,其系统时钟可以由锁相环控制,可以高出晶振频率的许多倍,一条指令只用一个时钟周期即可完成。
3) 编译环境越来越友好,编程语言也由汇编的一统天下,改由众多的C语言代替。后来又出现了uCOS等操作系统,使编译更加方便,如今有的单片机也有了像高级语言才有的多线程、多任务了,任务之间还有通信功能和消息传递机制。
4) 编程越来越方便快捷。早期的单片机存储代码,需要专用的编程器写入,紫外线擦除,费时费力。进入新世纪后,不少种类的单片机,采用在线编程,不仅快捷,而且对老用户的设备在线升级也很方便。
5) 衡量计算机的水平,有时用处理二进制的位数来表示,位数多表示速度快和处理能力强。单片机从最初的4位,很快升到8位。此后稳定了较长时间,之间也有过16位机但不普及。近年来16位和32位已屡见不鲜了。
6) 体积越来越小。不仅单片机,各种电气器件,也由分立变为贴片,插脚也由直插改为扁平,这些变化不仅生产方便,缩小体积,也使分布参数降低,有利于克服各种寄生干扰。
7) 不同功能的单片机模块应运而生。近年来,大批内置专用功能的单片机出现在市场上,如Philips的116x系列,它装有USB1.1或2.0USB协议的内核,用户只要对其端口发送简单指令,即可启动与USB对口的USB数据传输。再如内部装有手机内核的通信模块,我曾经用过的M260和UB603,它们内置TCP/IP网络协议,用户只要对它的UART端口发送简单指令和IP地址,就可以和异地的服务器进行TCP/IP连接,并进行GPRS数据传递,有的还支持域名连接。从而极大缩短了产品开发周期。
8) 各种内藏专用功能的单片机大量涌现。如Cypress的CY系列,属于内藏USB功能的单片机。还有如iTrax的iSuite系列、uNav的GM10系列,属于内藏GPS功能的单片机。这些单片机的内核、存储器、IO口等资源都对用户开放,以便用户二次开发,而且调用内藏功能也很方便,这不仅缩短了开发周期,也使产品的体积和可靠性进一步提高。
十多年间,计算机和互联网的出现极大改变了人类的生活和工作习惯。与此同时,中国电子工程师的整体素质也发生了很大进步,特别是对PC机的使用、互联网的操作以及软件开发水平。随着VB、VC、.NET等软件的普及,上位机控制、界面制作都有了飞跃式的提高。
在这么多年的设计生涯中,我认为开发主要在于创新。举个例子,医疗仪器公司生产的血流变仪,是测量人体血液黏度的仪器。在一个放入血液的容器中有个圆盘,由直流电机带动旋转。电压高转速快,血液黏度高阻力大转速慢,由此推出黏度和电压的关系,血液黏度在不同的转速呈现的阻力不同,医学上叫切变率。原来测量过程是给出不同的电压梯度,在不同的速度下逐次测量。测量全程需几分钟。医院提出时间太长。如果工艺不改,提高速度是很难的,因为每个梯度都要在速度稳定下来测量,才能保证精度,由于电机的惯性作用,测量的周期已经达到极限。经过实验,我们提出一个叫做储能释放的工艺模式,首先将电机加速到一个速度上限,然后断电,电机靠惯性旋转历经各个速度梯度,最后停止。这样做既满足了切变率的各段要求,时间也作到了最短,测量一次仅需40-50秒。该工艺模式成功的关键是找出描绘全程的数学模型,相信有电工基础的朋友,不难猜出这个模型。
当然项目过程中困难也很常见,2007年,我们在做一个用单片机通过USB接口读取摄像头图像的项目,该摄像头专为PC机生产,厂商可以提供PC机读取图像的驱动程序,可以对摄像头的100多个寄存器进行初始化并进行一系列参数设置。但该驱动程序无法用在单片机上,如果想自己动手编制单片机的驱动,就必须了解这100多个寄存器的功能和说明,但厂家拒绝免费提供这些资料,声称要付费5万美金。最后,我们终于通过自己的努力解决了这个难题。整个过程比较复杂,这里不再赘述,感兴趣的朋友可以与我私下进行交流。
有些人曾问过我工程师应通过什么途径和手段来进一步提高设计能力水平,我认为,应该“在战争中学习战争”。我的编程水平的提高,主要来源于厂家提供的DEMO源程序。此外,作为一名电子工程师者,除了专业方面的技能外,要想取得成就,敬业精神也非常重要。