我们在做产品开发的时候,基本很少去了解这些概念性的东西。
后面我特意去了解了一下,今天就把这些概念分享给有同样问题的朋友。
嵌入式一般叫嵌入式系统。
大家可以理解成是硬件和软件都经过剪裁的计算机。
一般像我们使用的电脑是通用计算机,而嵌入式系统是专用的计算机。
专用的计算机可以灵活地对硬件和软件进行剪裁,剪裁以后它更适合去做对成本、体积、功耗、智能控制有严格要求的产品,比如说家电类、汽车类、医疗类、工业类、军事类等电子产品。
一个嵌入式系统的核心就是它的处理器,处理器有几种类型:
1.嵌入式微控制器MCU(Micro Control Unit)如8051/STM32等等。
2.嵌入式DSP处理器 (Digital Signal Processor)专门用于信号处理,比如数字滤波,FFT、频谱分析、典型TI公司的TMS320C2000/C5000。
3.嵌入式微处理器MPU(Micro Processor Unit)性能更强,外设资源更丰富,如AM186/88、PowerPCMIPS、ARM
4.嵌入式片上系统SoC(System on Chip)
5.可编程片上系统SoPC(System on a Programmable Chip)
而我们单片机就属于嵌入式控制器MCU这类,所以单片机当然是属于嵌入式系统。
从上面的处理器分类,其实可以衍生出很多别的职位,比如说FPGA方向,Linux方向。
所以,我又总结了从事嵌入式开发的一些主流职位,大家可以根据自己喜好入座。
1. 单片机工程师/嵌入式工程师
2. Linux系统开发工程师
3. Linux应用工程师
4. 安卓系统开发工程师
这4个职位,前2个是偏向于硬件驱动层,后2个是偏向应用层。
我一直是在做单片机开发,所以针对这个职位,来说一说如果想从事这个开发需要学习哪些课程?
技术还是会更新迭代的,所以如果你根据某些学校那些十年不变的教学内容来学习的话,很有可能与实际岗位需求对不上。
最好的办法就是直接通过招聘平台搜相关的职位,来看看他们的岗位需求。
下面是我随便筛选的一家公司的需求:
单片机工程师/嵌入式工程师
岗位要求:
① 熟悉单片机基本的通讯协议接口,IIC、SPI、串口、CAN等。
② 熟练运用单片机各种外设,如TIME、USAR、PWM、中断、DMA、ADC。
③ 熟练掌握C语言及单片机(STC、STM8、STM32系列)编程开发,代码要求规范整洁。
④ 至少熟悉一款PCB软件,能看懂原理图。
⑤ 各种项目经验
我们从岗位需求不难分析出,以下3块的内容是我们的必修课。
1. C语言
2. 单片机
3. 基础电路
C语言没什么可以说的了,只要你想玩单片机,是必须要学的,而且它的重要性我认为应该排在第一位。
单片机当做工具来学习就可以了,可以先学STC 51的,烧录程序比较方便,学完以后再学STM32F103系列,最典型,实际应用也最多。
至于上面写的各种外设TIME、USART、PWM都是单片机的内部资源,我们在学习单片机的过程中肯定会接触到,不用单独去学习。
最后还需要学习电路基础,我们是用c语言写程序把单片机外设开起来,然后通过外设去控制外围的电路实现产品功能,如果电路图都看不懂,就不用谈控制了。
相关文章