微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 一部硬件开发流水账

一部硬件开发流水账

时间:03-26 来源:今日电子 点击:
转眼大学毕业已经17年了,我也从一个毛头小伙子成为快到不惑之年的中年人。期间感叹还是颇多的,就将这些年自己从事的开发经历流水账般写出来,希望对年轻人有启示作用。

找工作
我是1991年毕业的,那时候是国家分配和自己找工作相结合。还记得,当年自己怀着忐忑不安的心情拿着毕业材料去现在的单位面试,由于我们单位当时是最早从事终端开发的厂家,而且发展形势相当不错,所以我当时非常紧张。经过一番成绩审核和测试,终于被这家单位接收,那心情和考取大学差不多,尽管只是被分配到了一个分厂的小部门。

图像部的一年工作
报到后才知道,那个小部门的全体员工出去旅游了,刚走,要两个星期才能回来。那两周真漫长,我不知道该做些什么,每天只是打扫卫生、泡泡茶。到后来,简直手脚都不知该怎么放了,只能看着其他部门的人干活。由于我是最后一个进单位的,也没赶上培训,自然不认识别的新员工,只好自己一个人封闭起来看看书。


终于等到部门的人回来了,我那个开心就用不提了。和所有刚参加工作的人一样怀着满腔的热情,恨不得工作的第一天就能甩开手臂大干一场,以实现自己的人生理想。可是现实很残酷,首先,工作中所用到的技术要比专业书上的更深入,和学校讲的理论、做的题目是不一样的;其次,单位不会让一个新来的大学生直接来解决问题;再次,做产品是讲团队精神的,需要各个方面的人配合,不像在学校里一个人就足以思考、解决一道题。


把这些问题考虑清楚后,我开始认真地做每件事,做好项目的辅助工作,即使上街买个元器件也是兴高采烈的,就这样我慢慢地融入了集体。另外单位宿舍晚上可以继续学习,所以入门也比较快,经过半年时间锻炼,我已经可以做简单的设计、调试和维修了。也曾多次出差,随师傅、师兄到合作单位谈一些技术问题。当时师傅的要求非常严格,出差到北京即便是休息日也不容许我们随便上街。


我们做的是"字幕机"(就是将计算机上显示的字幕和视频图像叠加在一起,那时候视频输出是摄像机、录像机和LD),可以接触大量的录像带,但是师傅并不容许我们看,每天的娱乐节目是7点钟看新闻联播,其他时间就是看书或者研究"字幕机",喜欢看书学习的习惯一直保持到现在。最开心的莫过于大半年后,让我做的一个"色键"项目,"色键"也有称为"扣像",就是将一幅图像中的某种颜色去除,可以实现虚拟演播室。这个项目当时得到了清华的一个老师指点,但具体的实现和调试基本上是我自己独立完成的,直到那时才觉得自己是真正有点用了。

初到终端部门
由于住在公司宿舍,我很快就和宿舍的其他人员熟悉了。晚上通常一块到办公室看书或者和大家一起讨论产品,这样开始知道了终端产品。一个偶然的机会,终端的一个项目负责人和我说他们产品上有个硬件问题,让我看看,我花了点时间很快就做好了,正好那时候我们部门由于产品调整开始有些变化,1992年底我就被调到了终端产品部。我马上系统地学习了终端方面相关知识,特别是硬件方面的具体原理和实现思路,晚上也去办公室看资料,遇到不明白的地方就用仪器测量,或者改动电路做试验,所以掌握的还是比较快,但是由于原有人员的离开,遇到问题只能自己去摸索,还是比较郁闷的。


到终端部门没多久就遇到了几件事情,首先是产品在用户处出现联机不稳定的情况:上班开机总是联机正常的,但是半小时以后就出现乱码。我怀着忐忑不安的心情去出差了。由于在公司时我没有发现这个问题而且又是第一次出差,紧张程度可想而知了。幸好自己还算冷静,可能运气也好,我还是找到了问题所在:原来是一个晶体的热稳定性不好,开机的时候机器是冷的,晶体工作正常,但是半小时后机壳里的温度上升了,振荡频率就出现了漂移,联机就会出现乱码。这个问题的解决给了我很大的信心。


另外一个事情就是显示死机的问题,我们在终端上做了一些图形演示的程序,在做高温老化的时候发现有些机器的屏幕画面会停,这时候机器不响应任何信息,这是个偶然的现象。由于在用户处不用演示程序,所以没有提出这个问题。但是我觉得这一定是有原因的,通过做大量的试验发现,这些屏幕基本上都停在一幅固定的画面上,如果实验做的时间长,死机的机器的数量会增加。为了解决这个问题,我天天泡在车间的高温房里面,正好那时是冬天穿得又多,而高温房的环境温度有40℃,在里面用示波器测量信号点,一测就是半小时,浑身汗流不止,很多天下来都没有结果。由于不影响使用,别人都说放弃吧,可是我还是坚持了下来。经过几周的实验终于发现的问题,原来是硬件的NMI不可屏蔽中断影响了那个显示画面,那个显示画面所作的图形比较复杂,所以占用CPU的时间比较长,而NMI是定时要来的,以实现屏幕滚动,原来的NMI的时间定的比较长,特别在高温房里这个时间比常温下又长了点,这样NMI来的时候就打断了这个演示画面,导致演示画面的程序"飞"了,引起"死机"现象的发生。解决这个问题可以调整NMI时间或者改动软件部分,由于软件已经定版,最后采用减小NMI时间的方法解决了这一问题。


我另外遇到的一个比较棘手的问题是所谓的"带电RAM参数丢失"。有些用户的特殊设置、键盘用法、造的一些汉字和短语都需要保存在一个一直有电的SRAM中。在终端掉电的时候这些参数一直保持在这个SRAM中,下次开机的时候这些参数可以直接应用。这是一个非常方便和实用的功能。但是在用户使用的时候发现有的终端带电RAM里的参数会无规律地丢失,这样用户需要重新设置参数才能使用,非常不方便。为了解决这个问题我们还专门开会进行讨论,从设计逻辑上看不出任何的问题,所以在很长的时间里没有头绪。我查了相关的资料同时到车间里去做实验,得出的结论是和开关机时间长短没有什么关系,和电源以及开关机的方式有关。如果是在电源输出正常后再开终端基本上就没有这个问题,而终端作为电源的负载一直打开时,偶尔会出现这个问题,软复位是没有问题的。通过这些实验就比较好分析了,那就是和开关机的电源上升、下降已经复位有关,开关电源在上升的过程中可能有跌落的情况,同时主板上的各个电路的工作电压可能不同,而简单的RC复位也可能导致复位的抖动,这个在开机或关机的时候当总线不受控的时候,可能会有一个时序符合写RAM的要求,这样带电RAM中的数据就被更改了,根据这个分析,我将原来的带电RAM从0段调整到0X2000H段,同时用了电压检测的复位电路,让系统在4.5V后20ms开始复位,这时候主板电源已经稳定,这样解决了这个问题。


这些问题的解决大大提高了我的信心,我开始作为一个独立的硬件设计人员来从事终端方面的工作了。在这期间我研究了同行产品的设计思路,用最合适的方法来实现功能,提高了产品的竞争力。之后,我又系统学习了产品可靠性原理、电磁兼容性、安全、结构、设计安装工艺等方面的知识,特别是EMC方面,通过理论的学习和实际的不断测试和修改得到了很大的提高。那段时间经常去52所作测试,有时候一个辐射点的超标需要修改相当长的时间才能通过。慢慢地在整机设计方面有了比较好的基础。在随后的3年里我在一个终端平台上通过一些技术变革和产品的功能更新,设计出两款系列产品。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top