单片机属于嵌入式系统吗?嵌入式开发要学哪些课程?

Posted 无际单片机编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机属于嵌入式系统吗?嵌入式开发要学哪些课程?相关的知识,希望对你有一定的参考价值。

记得在3月份,有一个学员问了我一个问题,什么是嵌入式,单片机是属于嵌入式吗?嵌入式开发要学什么?

 

说实话,虽然自己从业多年,但是这个问题还真把我问蒙了。

 

我们在做产品开发的时候,基本很少去了解这些概念性的东西。

 

后面我特意去了解了一下,今天就把这些概念分享给有同样问题的朋友。

 

嵌入式一般叫嵌入式系统

 

大家可以理解成是硬件和软件都经过剪裁的计算机

 

一般像我们使用的电脑是通用计算机,而嵌入式系统是专用的计算机。

 

专用的计算机可以灵活地对硬件和软件进行剪裁,剪裁以后它更适合去做对成本、体积、功耗、智能控制有严格要求的产品,比如说家电类、汽车类、医疗类、工业类、军事类等电子产品。

 

一个嵌入式系统的核心就是它的处理器,处理器有几种类型:

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语言没什么可以说的了,只要你想玩单片机,是必须要学的,而且它的重要性我认为应该排在第一位。

市面上C语言教程已经泛滥了,我们也针对单片机录制了一套c语言入门课程。

相对其他c语言教程,很多都是偏向纯软件方向,我们录制这个目的是让大家学完以后可以无缝对接到单片机开发,所以我们的课程我认为还是有一定的价值。

 

这块也是无偿给广大想入门的小伙伴学习,想学习的可以到小破站找无际单片机编程,如果需要课件和源代码的可以通过教程找到我们。

 

单片机当做工具来学习就可以了,可以先学STC 51的,烧录程序比较方便,学完以后再学STM32F103系列,最典型,实际应用也最多。

至于上面写的各种外设TIME、USART、PWM都是单片机的内部资源,我们在学习单片机的过程中肯定会接触到,不用单独去学习。

最后还需要学习电路基础,我们是用c语言写程序把单片机外设开起来,然后通过外设去控制外围的电路实现产品功能,如果电路图都看不懂,就不用谈控制了。

 

更详细的学习路径可以参考我下面这篇文章。

单片机入门到高级开挂学习路径(附教程+工具)

以上是关于单片机属于嵌入式系统吗?嵌入式开发要学哪些课程?的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式开发要学多久?要学哪些课程

嵌入式软件开发是做什么的?要学哪些课程?

Linux驱动开发与Linux嵌入式开发都有哪些相同点和不同点?两者都要学的基础知识都有哪些?

学习单片机,通常要学哪些知识点?(附送75块带屏开发板)

嵌入式开发培训有哪些内容?

嵌入式开发如何入门