2.1.嵌入式和单片机的区别
(1)芯片平台
主流的单片机平台:51(51内核免费;51内核本身的设计和实现简单;51内核本身已经足够做很多事,譬如可使用51内核实现电容触摸IC等)、PIC(美国的,在工控领域使用较多)、STM32(高性能单片机,现在使用非常广泛,内核有Cortex-M3、M0、M0+、M4等)、AVR(貌似是公司业务问题导致供货不上,被别的单片机抢占了市场份额)、MSP430(典型的低功耗的单片机)等;主流的嵌入式平台:ARM(占据绝大部分市场份额)、PPC(主要在美国、欧洲使用,在国内使用较少)、MIPS(最大的用途是用在路由器领域)。
(2)资源和价格及应用领域
单片机片上资源有限、价格低、应用领域多为小家电(譬如电饭锅、豆浆机、空调、冰箱)、终端设备(譬如工业领域上的采集器、物联网底层信息采集器、功能机)等。嵌入式系统片上资源丰富、价格较高、应用领域宽广,譬如智能手机、平板电脑、游戏机、路由器、摄像机、智能电视机、广告机、智能手表、收银机等。
(3)开发模式
单片机开发多为裸机,程序规模小,多为单个程序员独立开发,有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是linux和Android(譬如路由器使用linux,智能手机使用Android),嵌入式开发一般都是团队开发,每个人负责一个部分,然后有一个技术很牛的老大来统筹。
(4)编程语言
单片机主要使用C语言(少量用汇编),和标准C略有不同,很少使用结构体、函数指针等C语言高级特性。而嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多。
(5)软硬件组件
单片机多涉及一些简单外设,譬如串口、I2C、ADC、LCD(小屏幕和分辨率);而嵌入式系统则涉及更多复杂外设,譬如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。
(6)职业发展
单片机学习路线短,职业平缓,薪资发展很早(2年左右)达到瓶颈,一般瓶颈薪资6~8k。嵌入式学习路线长,职业生涯久,薪资发展多年(5年左右)才会达到瓶颈,一般瓶颈薪资12~15k。
2.2.嵌入式学习和什么有关
(1)嵌入式学习和编程语言
底层(操作系统层及驱动层)嵌入式开发主要使用C语言,辅助为汇编语言(能过看懂别人写的汇编程序,如果有需要可以做一些修改)。中间层(Android的HAL层,没必要死磕C++)开发用C++多一些。应用层(Android应用层)开发用C++、Java、python、tcl/tk、perl等。
(2)嵌入式学习和英语
编程都是用英语写;编程关键的就是使用英语的关键字而已;编程和查看数据手册可以借助桌面词典。
(3)嵌入式学习和数电模电
嵌入式分嵌入式软件和嵌入式硬件两部分;嵌入式软件主要还是软件,硬件辅助;数电模电会有帮助,但不是必须。
(4)嵌入式学习和专业
最适合专业:电子、自动化、通信、测控或其他名字类似的专业;可以选择的专业:所有大学会开C语言或者类似编程课的理工科专业;找工作和专业的关系:应届生会有影响,有工作经验者不论大学专业。
(5)嵌入式学习到底和什么有关
兴趣、志向;学习能力和专注度;态度,这个是最关键的。
2.3.嵌入式系统的构成特点和演进方向
(1)嵌入式系统的特点
专用(譬如说空调上的控制器就无法控制电视机)、软硬件可裁剪可配置(嵌入式系统的配置可以动态变化,譬如说linux系统的可裁剪性,其既可运行在QQ的服务器上,也可运行在小型玩具中;譬如不同智能手机的硬件配置都不同,主卖点也不同);低功耗(譬如GPS的定位器)、高可靠性、高稳定性(和产品相关,譬如手机可靠性没那么大,但电梯系统的可靠性要求就很高));软件代码短小精悍;代码可固化;实时性(在工业领域实时性要求较高);弱交互性(譬如路由器的交互性很低);专用开发工具及开发环境(使用GCC交叉编译工具链、使用linux系统开发环境);专业开发人员。
(2)嵌入式系统的组成
硬件有微处理器(SoC)+存储器(譬如说内存、Flash、光盘、U盘…)+I/O接口(输入输出设备,譬如说键盘、LCD…);软件有嵌入式操作系统+BSP(板级支持包,关于开发板硬件的支持软件)+应用软件(上层软件,譬如暴风影音)。总结:应用软件通过给操作系统发送命令,然后由操作系统来控制BSP里面的驱动,最终操作硬件来完成任务。
(3)操作系统的分层
底层为硬件(主要由硬件工程师完成,包括各种硬件设备);中间层为操作系统(uboot的主要目的引导操作系统的,也可划分到操作系统层);上层为应用程序(工作在操作系统之上的程序)(见图1)。
(4)嵌入式系统的发展演进
以单芯片为核心、可编程控制器存在形式(没有操作系统支持;软件以汇编为主;功能单一、处理效率低、存储容器小、没有对外接口;使用简单、价格低)。以嵌入式CPU为基础、简单操作系统为核心(CPU种类多,通用性弱;系统开销小,效率高;达到一定兼容性,拓展性;用户体验度不高,交互界面不够友好)。以嵌入式操作系统为标志(兼容性好,适用于不同平台;系统开销小、效率高;具有高度模块化及拓展性图形化界面;用户界面友好;丰富的外部接口)。以物联网为标志(将传感器技术、互联网技术及传统嵌入式技术综合联系;小型化、智能化、网络化及可视化;低功耗、绿色环保;多核技术、云计算技术及虚拟化技术)。
本文详细探讨了嵌入式系统与单片机在芯片平台、资源价格、应用领域、开发模式、编程语言、软硬件组件及职业发展上的区别。嵌入式系统具有丰富的资源和更广泛的应用,而单片机资源有限,主要用于小家电和终端设备。随着技术演进,嵌入式系统呈现出专用、可配置、低功耗、高可靠性和实时性的特点,并向着物联网方向发展。

9192

被折叠的 条评论
为什么被折叠?



