很多人在进入嵌入式行业之前都感到很迷茫,“嵌入式技术到底是什么?”“都需要掌握什么技能?”“学完能从事什么工作?”今天华妹特地请教了讲师为大家整理出嵌入式技术体系超干货,一起来学习吧!
01
嵌入式技术是什么?
嵌入式技术是以应用为中心,以计算机技术为基础的系统技术。可以根据用户需求灵活裁剪软、硬件模块的专用计算机系统。它最初起源于单片机技术,是各类数字化的电子、点击产品的核心。主要用于实现对硬件设备的控制、监管等功能。
其实,所有带有数字接口的设备,比如手表、微波炉、录像机、汽车等等,都使用嵌入式系统。整个嵌入式系统体系结构可以分为4个部分,嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用。其中嵌入式处理器又可以分为以下几种:
嵌入式微处理器(MPU: Micro Processor Unit)
嵌入式微处理器的核心是通用计算机中的CPU,有比较高的性能,拥有丰富的外围部件接口。MPU有很多种类型,比较典型的如xScale、Geode、PowerPC、MIPS、ARM等处理器系列。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。但是由于在电路板上必须包含 ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,并且技术保密性也较差。
嵌入式微控制器 (MCU: Micro Control Unit)
嵌入式微控制器又称单片机,MCU (Micro Control Unit),内部集成ROM/RAM、总线逻辑、定时/计数器、看门狗、I/O、串口、A/D、D/A、脉宽调制输出、FLASH等各种必要功能和外设。 典型代表是8051、8096、C8051F等。
跟MPU相比,MCU的最大特点是将计算机最小系统所需要的部件及一些应用需要的控制器/外部设备集成在一个芯片上,实现单片化,使得芯片尺寸大大减小,从而使系统总功耗和成本下降、可靠性提高。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。
嵌入式DSP处理器 (DSP: Digital Signal Processor)
DSP处理器专门用于信号处理,在数字滤波、FFT、频谱分析、语音编码、视频编码、雷达目标提取等等中广泛应用。MPU在进行这类计算操作时的性能较低,DSP的系统结构和指令系统针对数字信号处理进行了特殊设计,因而在执行相关操作时具有很高的效率。典型代表是TI公司的TMS320C2000/C5000系列。
嵌入式片上系统 (SOC: System On Chip)
SOC处理器是指在某一类特定的应用对嵌入式系统的性能、功能、接口有相似的要求,利用大规模集成电路技术将某一类应用需要的大多数模块集成在一个芯片上,从而在芯片上实现一个嵌入式系统大部分核心功能。
SOC把微处理器和特定应用中常用的模块集成在一个芯片上,应用时往往只需要在SOC外部扩充内存、接口驱动、一些分立元件及供电电路就可以构成一套实用的系统,极大地简化了系统设计的难度,同时还有利于减小电路板面积、降低系统成本、提高系统可靠性。
02
嵌入式技术所需技能
嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业控制、现代农业、家用电器、汽车电子、测控系统、数据采集等)、计算机应用的延伸(MP3、手机、通信、网络、计算机外围设备等)。因此需要完成一个以处理器为核心的嵌入式系统应用产品设计,需要硬件、软件以及行业领域相关的知识。
各种通信接口
通过处理器控制各种外设的时候肯定绕不开各种接口,比如:uart 、spi、i2c、usb、eth、mipi、edp、can、i2s、hdmi等等。需要了解各接口的使用场景、带宽、机制、时序、工作模式、缺点等等。
交叉编译工具链
嵌入式一般都需要自己搭建交叉编译工具链,但是对于编译器而言一般都是GCC。编译过程分为——预编译、编译、汇编、链接。通过GCC提供的工具可以使程序完成任一阶段的处理,要清楚各个阶段主要完成了什么工作;链接分为静态链接、动态链接,要知道它们各自的优缺点及使用场景;同时编译生成ELF格式的文件,要理解ELF文件的格式、必要的时候需要通过objdump或readelf工具来解析ELF文件。
调试
嵌入式开发的很大一部分时间都在调试,好的调试方法和工具可以更快速的定位问题。学习过程中需要了解的调试工具:vargrind、gdb、kdump、corddump、oops。
总的来说学习以MCU为核心的嵌入式系统,需要以下软硬件基础知识与实践训练:
03
嵌入式技术就业
最后浅谈一下大家最关心的就业问题。事实上,所有带数字接口的设备,大到飞机火箭,小到手机电脑,甚至组成普通PC终端设备的键盘、鼠标、硬盘,目前市场上各种智能硬件产品等都使用嵌入式系统。嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合后的产物。
大方向上比如:Linux应用、MCU、Linux驱动、FPGA、DSP、Android、嵌入式C/C++工程师等。从行业来分比如:蓝牙协议栈开发、智能家居、路由器开发、无人机、新能源车、车联网、机械臂、机器人等。