(3) 嵌入式开发的相关领域
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。
B、 通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握 TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无线通信协议包括无线 局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
C、网络与信息安全技术:如加密技术,数字证书CA,以及各种网络安全设备,包括硬件防火墙,入侵检测IDS,还有防毒墙,IPS等,中国在这方面还是没有自己优势的,我们陈院长好象正在往这方面发展.
D、 DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件 专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。
(4)嵌入式开发的相关硬件基础
对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++ 数据结构算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其 FPGA/IP核实现技术,这方面的人目前市场上也很缺。
学习嵌入式系统的10点建议
现在,国内似乎在进行一个全民学习嵌入式的运动,但据了解,很多人在整个学习的过程中,由于某些技术领域的空白或者是技术尚未成熟,再加上个人学习方法不正确,给个人的学习造成了极大的阻碍,遇到这种情况该如何解决?根据本人有限的学习经验,给学习嵌入式的人以下10点建议:
1. 遇到问题,首先进入baidu.com、www.google.com(或是其他搜索引擎)搜索一下,任何一个嵌入式工程师都不敢否认,这是学习嵌入式最好的老师!
2. 尽可能多的论坛,遇到问题,及时发贴,情况紧急的时候,可以在不同的论坛同时发贴,这样,并行处理你的问题也许会解决得更快些.
3. 尽可能多的结交嵌入式高手,最好是在公司上班的嵌入式工程师,他们有一个优势:了解市场,了解业界的发展动态.和他们多混混,对尚未上班的学习者来说,是非常有必要的.
4. 要经常进入一些好的嵌入式网站,尤其是一些国外的网站,去看看嵌入式的发展动态,并且,要把这些网站都收集起来...
5. 如果可能,我建议大家在网上订一下电子刊物,这些电子刊物是按时发到你邮箱的,那些资讯都是最新的,可以说是很前卫的了.....如果资金允许,建议报名参加嵌入式培训班,比如比较有名气的海同嵌入式培训(iotek.com.cn)。在培训公司可以很快的入门提高,这样可以更好的提高学习效率。
6. 相信自己的选择,相信自己行业的发展前景,要对自己的选择和自己的行业有浓厚的兴趣,这一点做不到,你就很难学到很高深的层次!
7. 追求要执着!刚开始学习嵌入式系统,肯定会遇到很多问题,我当时也是这样,学了三个多月,好像一点进展都没有,我在怀疑:难道我不适合搞嵌入式?当时我也想过放弃,但心里太不甘心了,脚都踏出了一只,我不能就这样屈了!于是就硬上,不断的琢磨....(现在,终于知道什么是嵌入式linux了,哈哈....)
8. 不要对自己要求过高,只要你比昨天进步了一点,你就离成功又近了一步!学习嵌入式也忌浮气燥(其实这一点,我最有感触!),也就是要踏实.
9. 万丈高楼平地起,不要忽略了低层的东西,你越是学习到高层的技术,越是发觉低层的东西有用,这些大家以后会有所体会的!我大一学习51单片机的时候,感觉它没什么用处,大二学习ARM处理器,才知道,没有51的基础,可能还不知道要多花多少时间才能搞懂ARM的硬件.
10. 系统的选型的问题.现在的开源操作系统已经很多了,并且也做得非常成熟,初学者也会为此而烦恼.目前较为流行的嵌入式操作系统有:linux,winCE,VxWork,uC/OS2等等....主要区别在于实时性的问题.如果你是搞自控(像我学习的专业,不过我不玩控制的....),学习实时性高一点的操作系统更有帮助,如VxWork.如果你想以后搞民用产品,如手机,机顶盒,终端设备之类的,学习linux,winCE这些方便于多任务运行的操作系统较好!建议你在学习之前先了解该系统的市场占有率,学东西得看看学完它之后到底有没有作为啊,否则,你就一辈子只有自己玩系统啰... |