您的位置 首页 设计

嵌入式工程师不行不知的

编者按:本文从技术和就业经验等角度,为即将进入嵌入式开发的工程师们详细讲述嵌入式的概念、嵌入式开发之间的异同以及应该如何做出选择。是一些经验之谈,希望对大家有所帮助。一.工程师眼中的“嵌入

  编者按:本文从技能和作业经历等视点,为行将进入嵌入式开发的工程师们具体叙述嵌入式的概念、嵌入式开发之间的异同以及应该怎么做出挑选。是一些经历之谈,期望对咱们有所协助。

  一.工程师眼中的“嵌入式体系

  在工程师看来:侧重了解“嵌入”的概念,主要从三个方面来了解:

  1.从硬件上,将根据CPU 的外围器材,整合到CPU 芯片内部,比方前期根据X86体系结构下的计算机,CPU 仅仅有运算器和累加器的功用,全部芯片要靠外部桥路来扩展完结,象串口之类的都是靠外部的16C550/2的串口控 制器芯片完结。现在这种串口操控器芯片早已集成到CPU 内部。还有PC 机有显卡,而大都嵌入式处理器都 带有LCD 操控器,但某种含义上就恰当于显卡。比较高端的ARM 类Intel Xscale 架构下的IXP 网络处理器CPU 内部集成PCI 操控器(可配成支撑4个PCI 从设备或配本钱身为CPI 从设备);还集成3个NPE 网络处理器引擎,其间两个对应于两个MAC 地址, 可用于网关交换用,而别的一个NPE 网络处理器引擎支撑DSL,只需外面再加个PHY 芯片即可完结DSL 上网功用。IXP 系列最高主频能够到达1.8G,支撑2G 内存,1G×10或10G×1的以太 网口或Febre channel 的光通道。IXP 系列应该是方针根据ARM 体系结构下由Intel 进行整合后成Xscale 内核的最高的处理器了。

  2、从软件上,便是在定制操作体系内核里将使用一起选入,编译后将内核下载到ROM 中。而在定制操作体系内核时所挑选的使用程序组件便是完结了软件的“嵌入”,比方WinCE 在内核定制时,会有相应挑选,其间便是 wordpad,PDF,MediaPlay 等等挑选,假如咱们挑选了,在CE 发动后,就能够在界面中找到这些东西,假如是曾经PC 上的windows 操作体系,八成的东西都需求咱们得新再装。

  3、把软件内核或使用文件体系等东西烧到嵌入式体系硬件渠道中的ROM 中就完结了一个真实的“嵌入”。 以上的界说是我在6、7年前给嵌入式体系下自话侧重于了解型的界说,书上的界说也有许多,但在这个范畴规模 内,谁都不敢说自己的界说是非常切当的,包含那些专家学者们,由于究竟嵌入式体系是计算机范畴下的一门综合性学科。

  二.嵌入式体系的分层及对口专业要求

  嵌入式体系分为4层,硬件层、驱动层、操作体系层和使用层。

  1.硬件层:是整个嵌入式体系的底子。假如现在单片机及接口这块很了解,并且能用C 和汇编言语来编程的话,从嵌入式体系的硬件层走起来相对简略,硬件层也是驱动层的根底,一个优异的驱动工程师是要能够看懂硬件的电路图和自行完结CPLD 的逻辑规划的,一起还要对操作体系内核及其调度有恰当的了解。但硬件渠道是根底,增值还要靠软件。

  硬件层比较合适于电子、通讯、自动化、机电一体、信息工程类专业的人来搞。需求把握的专业根底知识有: 单片机原理及接口技能、微机原理及接口技能、C 言语等。

  2.驱动层:这部分相对而言比较难。驱动工程师不只需能看懂电路图,还要能对操作体系内核非常的通晓,以便其所写的驱动程序在体系调用时,不会独占操作体系时刻片,而导致其它使命不能运转。若不了解操作体系内核架构和实时调度性,没有杰出的驱动编写风格,按大大都书上所说增加的驱动的方法,这样或许连个初级的驱动工程师的水平都达不到,所写的驱动在使用调用时就好像windows 下咱们翻开一个程序运转后,再翻开一个程序时,要不便是中止曾经的程序,要不便是等上一会才干运转后来翻开的程序。想做个好的驱动人员没有三、四年功底,操作体系内核不研讨上几遍,不是太简略成功的,但其薪酬在嵌入式体系四层中是最高的。 驱动层比较合适于电子、通讯、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞。 当然除硬件层所具有的根底学科外,还要对数据结构与算法、操作体系原理、编译原理都要非常通晓。

  3.操作体系层:关于操作体系层而言现在或许只能说是简略的移植,而很少有人来自已写操作体系,或许写出缺臂膀少腿的操作体系来,这部分作业大都由驱动工程师来完结。操作体系是担任体系使命的调试、磁盘和文件的办理,而嵌入式体系的实时性非常重要。听说,XP 操作体系是微软投入300人用两年时刻才搞定的,总时工时是 600人/年;中科院软件所自己的女娲Hopen 操作体系估量也得花几百人/年才干搞定。因而这部分作业相对来讲没有太大含义。

  4.使用层:相对来讲较为简略。假如会在windows 下进行编程接口函数调用,到操作体系下仅仅编译和开发环境有相应的改变罢了。假如触及Java方面的编程也是如此。嵌入式体系中触及算法的由专业算法的人来处理,不用归结到嵌入式体系范畴内。但假如触及嵌入式体系下面的嵌入式数据库、根据嵌入式体系的网络编程和根据某些使用层面的协议使用开发(比方根据SIP、H.323、Astrisk)方面,又较为杂乱,并且有度了。

  三.方针与定位

  先有方针,再去定位。

  学ARM,从硬件上讲,一方面便是学习接口电路规划,另一方面便是学习汇编和C 言语的板级编程。从软件上讲,便是要学习根据ARM 处理器的操作体系层面的驱动和移植。这些关于初学者来说有必要清晰,要么从硬件着手开端学,要么从操作体系的了解到使用开端学,但不论学什么,只需不是纯的操作体系级以上根据API 的使用层的编程,硬件的寄存器类的东西仍是要能看懂的、根据板级的汇编和C 编程仍是要会的。因而针关于嵌 入式体系的硬件层和驱动层的人来说,ARM 的接口电路规划、ARM 的C 言语和汇编言语编程及调试开发环境仍是需求把握的。

  关于初学者必定要把抓住方向,自己的方针是什么,自己要在哪一层面上走。然后再着手学习才比较好,与 ARM 相关的嵌入式体系的较为实践的两个层面硬件层和驱动层,不论学好了那一层都会很有出路的。 假如想从嵌入式体系的使用层面的走的话,或许与ARM 及其它体系相去较远,要侧重研讨基嵌入式操作体系的 环境使用与相应开发东西链,比方WinCE 操作体系下的EVC 使用开发(与windows 下的VC 相相似),假如想再 有打破就往某些音视频类的协议上靠,比方VOIP 范畴的根据SIP 或H.323协议的使用层开发,或是根据嵌入式 网络数据库的开发等等。

  关于初学者来讲,要力所能及,不要以为驱动层薪酬高就把它当成方向了,要结合本身特色,嵌入式体系四个层 面上不论哪个层面上来讲都是有高人存在,当然高人也对应的高薪酬。我是做硬件层的,曾经每月薪酬中个人所 得税要被扣上近3千大元。当然我一方面充任工程师的人物,一方面充任主管人物的人物,两个职位我一个人干, 但上班时刻就那些。硬件这方面上或许与我PK 的人很少了,才让我拿到那么多的薪酬。

  四.怎么挑选适宜的开发体系

  许多ARM 初学者都期望有一套自己能用的体系,但他们往往会发生一种错误认识,便是以为处理器版别越高越好,功用越高越好,就象许多人以为ARM9比ARM7好, 我想关于初学者在此方面以此入门还应该沉着,开发体系的挑选终究要看自己往嵌入式体系的哪个方向上走,是做驱动开发仍是使用,仍是做嵌入式体系硬件层规划与板级测验。假如想从操作体系层面或使用层面上走,不论是驱动仍是使用,当然处理器功用越高越好了,但这个东西自学,有非常大的困难,不是几个月或半年或是一年二年能搞定的事。

  在某种含义上讲,ARM7与ARM9的不同便是在某些功用指令集上丰厚了些,主频进步一些罢了,就比方286 和386。关于用户来讲或许察觉不到什么,只能是感觉速度有些快罢了。

  ARM7比较合适于那些想从硬件层面上走的人,由于ARM7系列处理器内部带MMU 的很少,并且比较好控 制。就比方S3C44B0来讲,能够很简略将Cache 关了,并且内部接口寄存器很简略看了解,各种接口关于用硬件 程序操控或AXD 单步命令行指令都能够操控起来。根据51单片机的思维很简略搞懂,就当成个32位的单 片机,然后消除许多51工程师想转为嵌入式体系硬件ARM 开发工程师的困惑,然后不会被业界某些不是真实懂 嵌入式烂公司带到操作体系层面上去,让他们望而生畏,让业界愈加短少这方面的人才。

  而嵌入式体系不论硬件规划仍是软件驱动方面都是非常重视接口这部分的,挑选渠道还要调查一个处理器的外部资源,你触摸外部资源越多,越了解他们,今后作业成功的机率就越高,这便是招聘时所说的有无“相关技能”,由于一个人不或许在短短几年内把一切的处理器都触摸一遍,而招聘单位所用的处理器就或许是咱们完 全没有见过的,就拿台湾数十家小公司(市价几千万)的公司出产的ARM 类处理器,也很好用,但这些东西通用性 太差,用这些处理器的公司就只能招有相关作业经历的人了,那什么是相关作业经历,在硬件上讲的是外围接口规划,在软件上讲是操作体系方面相关接口驱动及使用开发经历。我从业近十年, 2000年ARM 呈现,我一开端做ARM7,然后直接跑到了Xscale(这个板本在ARM10-11之间),一做便是五年,招人面试都不下数百人,在这些方面仍是深有体会的。

  我个人以为三星的S3C44b0对初学者来说比较适宜,为什么这么说? 由于接口资源比较丰厚,技能老练,材料较多,应该非常合适于初学者。有问题或许很简略找人帮且处理,由于大大都人都很了解,就好像51类的单片 机,有N多位专家级的人物能够给你帮助,相关问题得以很快回答,所然业界以为这款ARM 都用得烂了,但关于初学者来,却是件功德。

  总的来说,开发体系的挑选,要看自己的未来从业方针方向,要看开发板接口资源,还要看业界的通用性。

  五.成为高档嵌入式体系硬件工程师要具有的技能

  关于硬件来讲有几个方向,就单纯信号来分为数字和模仿。模仿比较难搞,一般需求很长的经历堆集,单单一个阻值或容值的精度不行就或许使信号误差很大。因而年轻人搞的较少,跟着技能的开展,呈现了模仿电路数字化。 比方手机的Modem 射频模块,都选用老练的套片,而当年国际上只需两家公司有此技能,自我感觉模仿功用不 太强的人,不太合适搞这个,假如真能搞定到手机的射频模块,只需到达一般程度或许月薪都在15K 以上。

  另一类便是数字部分了,在大方向上又可分为51/ARM 的单片机类,DSP 类,FPGA 类。国内FPGA 的工程 师大多是在IC 规划公司从事IP 核的前端验证,这部分不搞到门级,出路不太明亮,即便做个IC 前端验证工程 师,也要搞上几年才干担任。DSP 硬件接口比较定型,假如不向驱动或是算法上挨近,出路也不会太大。而ARM 单片机类的内容就较多,业界产品占用量大,使用人群广,因而作业空间极大。而硬件规划最表现水平缓水准的便是接口规划这块,这是各个高档硬件工程师彼此PK、断定水平凹凸的根据。而接口规划这块最要害的是看时序, 而不是简略的衔接,比方PXA255处理器I2C 要求速度在100Kbps,假如把一个I2C 外围器材,最高还达不到100kbps 的与它相接,必定要导致规划的失利。这样的状况有许多,比方51单片机能够在总线接LCD,但为什么这种LCD 就不能挂在ARM 的总线上,还有ARM7总线上能够外接Winband 的SD 卡操控器,但为什么这种操控器接不到ARM9或是Xscale 处理器上,这些都是问题。因而接口并不是一种简略的衔接,要看时序,要看参数。 一个优异的硬件工程师应该能够在没有参阅计划的前提下规划出一个在本钱和功用上愈加优异的产品,靠现有的计划,也要进行恰当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把计划中的5V 变1.8V 的DC 芯片,直接更换成LDO,有时就会把CPU 烧上几个。前几天还有人期望我帮助把他们曾经根据PXA255渠道的手持GPS 设备做下程序优化,我问了一下状况,地图是存在SD 卡中的,而SD 卡与PXA255的MMC 操控器间选用的SPI 接口,因而导致地图读取速度非常的慢,这种状况是规划中严峻的缺点,而不是程序的问题。因而我提了几条主张,让他们更新试下再说。

  因而想成为一个优异的工程师,需求对体系整体性的把握和对已有电路的了解,换句话说,给你一套电路图你能看了解多少,看不了解80%以上的话,阐明你离优异的工程师还差得远。其次是电路的调试才能和审图才能,但最最根本的才能仍是原理图规划、PCB 制作、逻辑规划这块。这是指的硬件规划工程师,从上面的硬件规划工程师中还能够分出ECAD 工程师,便是专业的画PCB 板的工程师,和EMC 规划工程师,帮人家处理EMC 的问题。硬件工程师再往上便是板级测验工程师,便是C 言语功底很好的硬件工程师,在电路板调试过程中能经过自已编写的测验程序对硬件功用进行验证。然后再交给根据操作体系级的驱动开发人员。 总归,硬件的内容许多很杂,硬件哪方面练成了都会成为一个高手,我常常会给人家做下计划评价,许多高档硬件工程师规划的东西,常常被我一句话否定。因而工程师做到我这种境地,也会开罪些人,但硬件确实会有许多不为人知的东西,让许多高档硬件工程师也摸不到脑筋。

  那么高档硬件工程师技能技能都要具有哪些?首先要把握EDA 规划的辅助东西类如Protel OR CADPowper PCBMaplux2ISE、VDHL 言语,要能用到这些东西画图画板做逻辑规划,再有便是接口规划审图才能, 再者便是调试才能,假如能走到整体计划规划这块,那就根本上快成为资深工程师了。

  深化了解各种器材特性,挑选最适宜的处理器、外围器材、操作体系和软件库,尽或许地优化软件规划,最恰当地满意使用需求,以取得最好的体系性价比,是嵌入式体系规划开发的精华。

  硬件是要靠经历,也要靠堆集的,十年磨一剑,百年磨一针。

  不过最终提示咱们:寻求技能不是人生的仅有意图,切不行把它当成高兴的仅有源泉,平常身边有许多夸姣的事物都值得用心去爱惜。呵呵,我已经在忧虑自己的智力是否会在30岁到来之前干涸了.好好爱惜时间短的大学生活,好好爱惜自己的芳华,不要整天呆在实验室,左手键盘右手烙铁的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/117998.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部