首页>>科技 >>内容

硬件开发有前途吗,献给那些刚刚踏上硬件之路的同学们:硬件开发经验

发布时间:2023-12-26 23:48:08编辑:温柔的背包来源:

硬件开发有前途吗,献给那些刚刚踏上硬件之路的同学们:硬件开发经验

很多朋友对硬件开发有前途吗,献给那些刚刚踏上硬件之路的同学们:硬件开发经验不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

虽然我有几年的硬件开发经验,但我还是一个没有踏上社会这条路的学生。

项目经验和社会经验恐怕一点都不丰富,所以凡是想在这篇文章中收获深刻人生哲理和专业箴言的,恳请大家不要一下子看完,否则,恐怕会被大家嘲讽。本文只献给那些刚刚踏上硬件之路,还在徘徊的同学们。这里我简单记录一下我的学习经历和这期间获得的一些经验,帮助初学者少走弯路。

我很清楚,对于一个初学者来说,有一个可以手把手教对方的老师是多么幸福的事情。我们初学者可能需要几天甚至几个月的时间来思考和验证老师的一句不经意的话。可惜我们身边并不总是有这样的老师。

好在现在互联网发达,让我们不得不经常求助于网络。网上丰富的亲身经历非常值得学习。我们可以从一些文章中学到一些东西,为我所用,或者从中感受到精神动力。

我想借此机会介绍一下我以前的工作团队,因为他们对我影响很大。团队有四个人,一个是有11年工作经验,有自己专利的高级工程师(我以前叫他二总监,这也是我在团队的原因),一个是有5年经验的热心工程师,另外两个分别是电源和视频方面的专家和资深人士。听说后,我渐渐对硬件产生了兴趣。

从单片机,FPGA,SOPC的硬件构造和软件编程,还有现在正在努力学习的ARM,我都是怀着无限的热情去做的。

但热情不是唯一原因,另一个原因是实验室提供了便利的学习环境。有现成的华邦51单片机,付伟仿真器,先进的labtool 48uxp通用编程器,一个12万的示波器,我自己买了一个通用板。在学习阶段,可以找一本书,在上面做实验。从简单的led闪烁、数码管显示、pwm到中断、串行通信(MCU到MCU通信、MCU到pc通信)、I2Ceeprom读写、A/D转换、温度测量等。

当时通过资料的查找,程序的编译调试,到后来问题的解决,每次实验的成就感和喜悦感让我着迷。我相信只有经历过的人才能理解。正是因为这种激情和爱好,我经常从10: 010到31017在实验室呆上三个小时。平时在食堂吃完饭直接去实验室,晚上九点半回宿舍。

虽然当时没有做过什么大项目,但是每一个小实验都是我知识积累过程中的一点。有了这个积累,我可以涉足更大的项目。

刚进实验室的时候,第二任主任给了我一块开发板,是Altera公司的nios ep1c20 cyclone系列开发板。当时是以大学项目的名义买的,5000元。于是开始了我的FPGA学习之路。之前学过verilog,只停留在纯理论阶段。编译几个小程序,用quartus-ii自带的仿真软件进行仿真就可以了。

使用仿真软件进行模拟,往往可以得到你想要的结果,但是一旦下载到芯片中运行,问题也就随之而来了。万事开头难。我做的第一个实验是点亮led,自己写程序(就几行),编译,分配管脚,仿真,然后用jtag下载线连接开发板和pc,把sof文件下载到芯片上。现在想想这些步骤有多简单,但对于当时的我来说,我花了相当多的时间和精力去找资料,埋头反复实验。

尤其是引脚的分配,文件上只说需要做,为什么要做?当时我没有太多想法,只是想看看实验结果。有了结果,我有了无限的成就感和高涨的热情。所以当第一次FPGA实验中的led通过努力终于按照意图行动的时候,那种兴奋感和我学单片机的时候一模一样。

我做实验的一个实践和体会就是边做实验边看书,在实验中发现问题,遇到不懂的问题或原理就查相关文献。我习惯动手。如果我坐在实验室里看一天纯理论的书,不动手实验,我想我的脑袋肯定会爆炸。因为没看过这样的书,所以脑袋一直是活的。

后来我在学习ucos的嵌入式操作系统的时候也采用了这种方法。我称之为“阶梯成就感”(写这篇文章的时候突然觉得这个词很贴切,即兴发挥)。

带着这份热情,我后来学习了FPGA,一些常规逻辑电路的设计,包括逻辑门电路、数据选择器、编码器和解码器、加减乘除算子、移位器,以及后来稍微复杂一点的电路设计,比如FIFO、数字秒表、频率计、状态机、流量控制、卡式电话计费系统和UART。

我当时用verilog语言实现了这些实验。刚接触FPGA的时候,想学VHDL。当时同学都用verilog,为了方便和他们讨论,我就换成了verilog。努力学习也没关系,渐渐发现自己深深爱上了verilog。对我来说,无疑更适合我。

这也是我想推荐的一个经验,就是看你身边的人用什么工具。他们用的工具往往不是你最喜欢的,也不是目前最流行的,但如果你想和他们交流讨论问题,就要通融。就像别人使用的工具一样,沟通会顺畅方便。到达实验室后,因为实验室的所有员工都使用付伟的仿真器,所以软件当然是由付伟提供的。

我不认为付伟的软件很好。只支持汇编,比著名的keil c51差很多。但除非你想等到自己有问题,身边没人帮你的时候,否则前期还是选择付伟的软件方便沟通。

后来经过我自己的摸索和向身边的工程师请教,付伟熟悉了,有了自己的一套编译。这时候我开始在付伟嵌入keil,用C语言编写程序,但是调试的时候付伟软件还是有缺陷的,比如不能一步执行。所以后来我下载了keil c51软件,然后我就正式在keil的开发接口下写程序了。

当然,我们也可以在keil环境下使用付伟模拟器进行模拟。我认为付伟在制造自己的产品时已经考虑到了这一点,他们的一些产品必须兼容主流软件keil。使用keil C51后,我不想使用付伟编译软件。同样,用C写程序之后,我也不想用汇编了。但是组装对于每个硬件研发工程师来说都是必须的。汇编有C达不到的东西,但有时又要用到汇编。

汇编运行效率高,写起来繁琐。在某些特定的时刻,组装仍然发挥着不可替代的作用。比如把usoc移植到单片机上,与处理器相关的程序真的必须用汇编来完成。

后来学sopc。从最小系统硬件平台的搭建,到简单的led闪烁程序的编写,再到芯片上运行的sof文件,看着led忽明忽暗,心里充满了热情。

每次接触到新知识,都有一种发自内心的兴奋。每次接触新事物,都是从最简单的led闪烁开始,从单片机到FPGA到sopc再到ucos。每天一点点的进步,都能点燃我的工作热情。只要我每天都有这一点点看得见的“阶梯成就感”,就能激发我对更多知识的追求。

在此期间,我很欣赏Altera公司推出的可编程片上系统(sopc),它让我们从构建硬件系统的复杂中解脱出来,只需要根据需要给系统添加自己的ip核和一些必要的外设。Altera或其他第三方公司为我们提供了性能和功能都很完善的IP核。我们所要做的就是将这些IP核添加到我们的系统中,以完成我们需要的功能。

硬件系统完成后,硬件系统的软件需要在Altera公司提供的nios IDE环境下进行编程。在这里,所需的功能完全由C语言完成。第一次实验,和之前学习单片机和FPGA一样,还是led闪烁,然后慢慢转向一些更复杂的功能设计,无非是实现一些之前用verilog实现的功能。

两者的区别在于:一个用verilog语言实现所有功能;首先需要用sopc builder搭建硬件系统,然后在nios ide中编写软件。这两种方法都可以实现所需的功能,但后者更方便快捷,因为在这种方法中,我们使用了“拿来主义”,IP核已经实现了我们的功能,我们要做的就是使用它。

后来学习了ucos的嵌入式操作系统,主要用在FPGA上。Nios已经为用户移植,不需要修改任何文件。您可以通过在nios用户界面中进行一些相应的设置来使用它。

Altera公司提供的模板里有几个很好的例子,任务管理、信号量、邮箱投递、事件标记、时间管理等。我们需要做的是仔细阅读,研究,必要时重写模板,完成自己的功能。这是一种更高层次的模仿,吸收他的一些东西,变成我们自己的。我觉得这是硬件爱好者和初学者都很乐意做的事情。

我在学习FPGA的时候,遇到过问题停滞不前,实验没有进展,心情抑郁的时候。当时我对底层硬件一无所知,连基本的原理图都不懂,更别说程序是如何在开发板上运行的了。后来开发nios的时候,这种挫败感与日俱增,每天都感觉不到什么进步。这真是漫长而艰难的一天。

有一次,我在办公室和一个工程师聊天,说到我的困惑。他建议我先学单片机,自己搭建硬件平台,从最小的系统开始。这位工程师心地善良,总是耐心地帮助解答学习方面的问题,让我受益匪浅。我很高兴能在这样的环境中学习。还有我的导师,他是资深研究员,有近30年的硬件开发经验。刚开始工作的时候,什么都不懂,但总喜欢跑到导师办公室和他聊天。

他和蔼可亲,平易近人,我和他交流的时候总能得到一些事业和生活上的建议,这些建议会伴随我一生。后来事情渐渐好转,我也渐渐习惯了这种心情,调整了心态。现在想来,很庆幸自己没有对自己热爱的硬件绝望,失去信心。

我想说的是那句老话:当我们遇到问题的时候,当我们觉得事情走不下去了的时候,不妨换一种方式和身边的人说说话,也许会有所改变。生活总是充满坎坷,我们的学习生涯也是如此。

这个时候,如果我们可以看看任写给华为员工的一封信《要快乐的度过充满困难的一生》,或者看看李嘉诚写给年轻人的一封信《Are you ready》,你可以在那里学到谦卑、勇气、智慧和毅力,我想这会增加我们积极生活的勇气。当我们设定一个目标时,我们需要鼓起勇气,热情地拥抱它。遇到困难或障碍时,一定不要独自等待,要多与人沟通。一切从沟通开始!

这篇文章泛泛而谈,难免浅薄。如果能给初学者带来哪怕一点点好的影响,提供一点点帮助,那么我会感到无限欣慰。最后,我给我们初学者一句话互相鼓励,也是马太福音《圣经》中的一句话:有什么就给他,是多余的;不,甚至他所拥有的也会被拿走。

以上知识分享希望能够帮助到大家!