嵌入式工程师入门所需的基础能力

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式工程师入门所需的基础能力

[缘起]

我自2002年接触单片机至今,已走过了15个年头。虽不是嵌入式应用行业出色的工程师或行业大牛,然一直都在嵌入式开发和物联网应用领域从事教育和开发工作。这几天正好为新学期的《物联网硬件技术基础》备课,对嵌入式应用工程师或者硬件工程师的入门所需基础能力做了小小的梳理。

这对于已在嵌入式应用行业耕耘多年的技术大牛来说,意义已经不大了,然而,对于刚刚入门或准备入门的嵌入式应用开发者来讲,我就斗胆和大家分享一下我体会和经验了。

【如何才算嵌入式工程师入门了?】

嵌入式应用工程师是一个软硬件兼顾的职业。当然,到了具体的工作岗位可能会有嵌入式硬件工程师和嵌入式软件工程师之分等。不管怎么细分,只要是做嵌入式应用开发的,你设计的软件就要在硬件上跑,你不熟悉硬件平台可以吗?你设计的硬件,也要考虑软件上面的事情,没有一定软件设计思维也是不行的。

对于一个嵌入式应用开发的入门者来说,是没有软件和硬件的偏向之分的,至少我是这样认为。因为对于基础的技能,必要有一个全面的掌握,这样你才能在嵌入式开发的道路上走得更远,才能具备从入门走向优秀的可能。

那么,如何才算是嵌入式工程师入门了呢?

我认为,至少能够独立设计和制作出一款嵌入式应用系统,就算是很少很小的系统也可以。

那么,要完成一款嵌入式应用小系统,你至少要做下面的一些工作:

1.设计并确定系统的功能模块,形成初步的设计概要文档。

2.选择嵌入式微处理器,确定系统的功能框图。

3.对主控芯片的引脚进行定义,形成引脚功能分配表。

4.根据功能框图,对主要的元器件进行选型。

5.设计并确定各个功能模块的电路设计细节。

6.利用Protel等电路设计软件,设计电路原理图。

7.原理核查无误,开始设计PCB图,并形成BOM表。

8.选择合适的厂商,委托其制作电路板,并购买电子元器件。

9.焊接电路板,并进行简单的测试,确保不短路、无虚焊等。

10.编写程序,对各个功能模块进行测试,确定都能正常跑起来。

11.编写和测试相应的应用程序。

12.整理资料,形成开发文档,如有必要,还可以记录自己的开发心得。

也许有人要问,入个门真的要这么复杂吗?现在有很多培训机构,上来就学习操作系统移植、驱动程序编写、项目应用开发,既高端又快速。我也不否认,这也是一条嵌入式应用快速成长的途径。如果你具备了上面描述的能力之后,再

去接受培训,那不是更容易理解培训内容,成长的不是更快吗?

《大学》里面有句话:“物有本末、事有终始,知所先后,则近道矣”。我始终认为,对于一个初学者或者人门的人,必须有扎实的基础,才能真正的从入门迈向优秀。

[入门都需要学习哪些基础技能呢?]

对于一个入门的初学者来说,再努力也不为过。我想要达到上面所描述的能力,成为一个真正嵌入式应用开发的入门者,可能要掌握下面几项基础知识和必备技能,大家可以参考一下:

<1>理解三门基础课程:电路分析、模拟电路和数字电路

嵌入式系统,上面都是电子元器件,都离不开电流和电压。在学习这些课程的时候,你可能觉得毫无用处。但当你去设计一个系统,或者处理一个系统的硬件故障时,你可能会发现需要借助这些课程的知识了。

在读书的时候,我最讨厌这三门课,而且当时觉得都是理论,毫无实际用处。特别是电路分析,相当的抽象。对于这三门课,我并不认为在开始就要把它们读透,当然你有这个毅力和能力最好不过。对于初学者,我倒觉得可以采用迭代学习的方法。

在初学的时候,最起码要把基本的东西弄懂。相对来说,电路分析要求没有太多,懂得简单的电路分析方法就够了。模电和数电要求会多一些,最起码半导体、三极管、典型的运放电路、振荡电路、滤波电路、电源电路、A/D转换电路、数字编码电路等等这些常用的电路要掌握。不然,你在设计电路的时候,就是无米之炊了。

在将来设计和处理问题的时候,如有需要,就回头找资料,翻书本,既可以吸收学习新的知识,又可能加深巩固旧的内容。如此反复以往,在不久的将来,一定能都透彻理解这些课程,而且会有新的理解和深刻的认识。ADI公司的工程师写了一本书《嵌入式系统中模拟设计》,我认为不错,有兴趣的不妨看看。

<2>掌握常用的元器件的选用方法与其典型的电路应用

俗语讲:巧妇难为无米之炊。一个理论知识丰富的工程师,如果对元器件的原理和应用不熟悉,是很难设计出好的嵌入式应用系统的。这就犹如一个好的医生,能够正确分析病理,找到病症,可以不懂药物,开不出药方,一样治不好病。

这个能力如何才能具备呢?

只能靠平时不断积累,而且是贯穿整个嵌入式开发生涯,我想别无他法了。

在这个地方,我有一个经验可以和大家分享:养成做开发笔记的习惯。

拿一个好的笔记本,无论是学习还是开发过程中,遇到新的元器件应用,就将其记录在本子上。这个记录至少包括:元器件的引脚图,封装图,重要的电气特性,结构原理,应用电路,如果涉及接口编程的,要把核心的程序记录下来,最好还能将你的开发体会记录下来,或者将别人的开发经验也可记录下来。

倘若能够一直坚持下去,这个笔记本就会成为你的一个嵌入式应用开发宝典。日后在设计系统的时候,需要什么元器件,翻一下笔记本,就什么都有了,总比你去翻数据手册强,要知道一本数据手册可有好几百页的。

<3>熟练掌握一款电路设计软件以及电路设计原则

嵌入式应用系统首选要通过硬件表现出来,有了硬件平台才能在上面编写代码,实现应用。要制作硬件平台,首选要设计硬件电路。这就要求你能熟练使用电路设计软件,以及懂得一些软件设计的规则。

目前常用的电路设计软件有不少,不过常用的也就是Protel,也有很多公司用Designer,不过两者很接近,会用其中一款,掌握另外一款很容易。对于工具软件,只要多用就会熟练的了。现在网上教程很多,很容易学习的。我在百度文库有一个文章《物联网硬件技术实训-攻略手册(2016版)》,不过讲的是Protel99软件的使用。这是一个99年的软件工具,你可不要小看它,短小精悍,现在还有不少公司的工程师在使用能。初学者就应该从简单和经典的入手。

对于电路设计原则,网上有很多文章,也有不少书籍。对于初学者来说,不会涉及高速和高频的电路,在布局走线和地线设计上没有太多的讲究,只要合理、美观就可以了,当然线不能太细,线宽也不能太窄,起码要符合制版公司的生产要求。这也是一个积累的过程,随着你学习的深入,设计经验的丰富,这部分知识也就悄悄的多起来了。

电路板设计出来了,还要亲自发出去生产一下,通过这个过程,你会了解到生产电路板的一些工艺要求,以及体会一个设计者如何与生产者沟通。在这个过程中,你知道了选择多厚的板,为什么要开钢网,什么叫邮票孔,怎么样拼板,要不要飞针测试,面积大的电路板原来还有菲林费.......

<3>必须精通C语言程序设计和典型的设计思路

如果你不去做系统移植的工作,C语言基本可以满足你对硬件系统的所有编程要求。C语言是嵌入式系统开发的一个工具,对工具使用的熟练程度,直接影响系统的开发程度。所以,我认为必须要精通C语言程序设计,而不是会或者掌握。嵌入式C语言程序设计和标准的C语言程序设计还是有一些不同的地方,这个大家需要体会一下。在标准C语言应用中,宏定义、条件编译、头文件这些知识点并不被重视,但在嵌入式系统中却确随处可见。在嵌入式开发中,很多时候要对寄存器进行操作,所以在指针方面的应用也会很多。如果是数据采集或者物联网数据传输的应用,可以涉及到到大数组的处理,而在进行协议解析的时候,又要在大数组中,对很多小字段进行处理,对于RAM区不足的处理器,你还不能够定义小数组来处理小字段,只能运用指针设计算法。

对于简单的嵌入式应用系统,我们可自己从头到尾自己编写一个系统应用程序,而对于复杂的嵌入式应用系统,就需要移植一个操作系统来进行任务管理了。对于嵌入式初学者来说,能达到前者水平就可以了。要自己独立编写一个合理的

相关文档
最新文档