【基础知识】到底什么是嵌入式?

160 0

凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式吧?
然而对于非相关专业的同学来说肯定是一知半解,只觉得嵌入式“高端”,但具体什么是嵌入式却一脸懵逼。

那么,到底什么是嵌入式呢?
嵌入式,一般是指嵌入式系统,英文叫作:embedded system。嵌入式开发,其实就是对嵌入式系统的开发。

详细的讲嵌入式系统是以是以应用为中心,以计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。
以应用为中心,说明嵌入式系统是有明确实际用途的。以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。

专用计算机系统,“专用”所对应的,就是“通用”。我们常用的个人PC、笔记本电脑、数据中心服务器,可以用于多种用途,就是“通用计算机系统”。

嵌入式系统的应用十分广泛,涉及工业生产、日常生活、工业控制、航空航天等多个领域。举例如下:
个人通信与娱乐系统:手机、数码相机、音乐播放器、可穿戴电子产品、PSP游戏机
家电类产品:数字电视、扫地机器人、智能家电
办公自动化:打印机,复印机、传真机
医疗电子类产品:生化分析仪、血液分析仪、CT
网络通信类产品:通信类交换设备、网络设备 (交换机、路由器、网络安全)
汽车电子类产品:引擎控制、安全系统、汽车导航与娱乐系统
工业控制类产品:工控机、交互式终端 (POS、ATM)、安全监控、数据采集与传输
军事及航天类产品:无人机、雷达、作战机器人

图片

上述这些领域,都使用了嵌入式系统。这还只是冰山一角。
随着电子技术和计算机软件技术的发展,不仅在这些领域中的应用越来越深入,而且在其他传统的非信息类设备中也逐渐显现出其用武之地。
可以说,嵌入式系统完完全全地包围了我们,时刻影响着我们的工作和生活。

明白了什么是嵌入式,那学习嵌入式需要掌握什么呢?
嵌入式可以简单分为硬件与软件两个方向,做嵌入式软件对硬件一样要有一定的基础,所以就列一下成为软硬件都会的嵌入式工程师的学习路径吧。

一、电子设计
首先你要学习电路、模电、数电,认识电阻、电容、三极管,基础器件要知道,放大电路、集成运放、时序电路基本电路能看懂,不然看电路图一定是云里雾里,也就无法进行后续的工作。硬件产品的设计实现,包括器件选型、原理图和PCB设计、电路调试,都需要过硬的电路基础。

二、PCB设计
在电子设计中,PCB是我们设计内容的物理载体,所有我们设计意图的最终实现就是通过PCB板来表现的。

三、C语言
C语言是嵌入式开发中最重要的编程语言,要对这门语言有深入的理解,毕竟不仅仅要会写程序,看懂他人程序也很重要。最基本的数据类型、数组、指针、结构体,链表、文件操作等都要会,掌握基本语法和语句,不然你要能区分指针数组与数组指针吗?

四、单片机
单片机入门相对简单,通过单片机的学习可以熟悉单片机的硬件结构,包括I/O口、AD转换、通信(串口、并口、I2C、CAN、USB、以太网、ZigBee技术等)、显示(LED、LCD等)、控制(PWM等控制技术)、数据处理(图形、图像、语音、视频等的处理或识别)等,学好单片机可以为采用嵌入式系统奠定良好的基础。

五、Linux
1、Linux基础
Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。

2、Linux系统编程
重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。

3、Linux网络编程
计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。

4、数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。

5、C++ 、QT
C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广泛的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。

6、Cortex A8 、Linux 平台开发
通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。

7、驱动开发
驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。

最后放个视频加深一下理解

发不上了,想看的

免责声明:本文素材来源网络,版权归原作者所有。

0

上一篇: 智能车的转弯部分_10个极品智能车方案合辑,夏日避暑进阶两不误 下一篇: 乔布斯-遗失的访谈中英双文版-尘封十余年的伟大遇见!

教程资料来源于网络,如有侵权,请及时联系平台进行删除

其他

课程目录
搜索
基础知识
乔布斯《遗失的访谈》全文:尘封16年的预见
stm32使用HAL库快速编写智能寻迹避障小车(附代码)
计算机科学技术发展史的缩影
嵌入式软件工程师杂谈之一 ----- BSP工程师
嵌入式底层软件开发学习系列之三开发与就业方向
智能车的转弯部分_10个极品智能车方案合辑,夏日避暑进阶两不误
到底什么是嵌入式?
乔布斯-遗失的访谈中英双文版-尘封十余年的伟大遇见!
转:乔布斯《遗失的访谈》全文:尘封16年的预见
正在崛起的高薪岗位—嵌入式开发工程师
无人驾驶硬件平台
【无人驾驶系列十】无人驾驶硬件平台设计
无人驾驶之硬件平台详解
VR的理想与现实
从iPad Pro的ToF摄像头说起,ToF前途未卜还是一片光明?
全球及中国机器视觉产业十四五投资动态及未来竞争态势研究报告2021-2027年
全球及中国增强现实产业战略布局及运营前景决策分析报告2021-2027年
搜索算法案例分析
前辈们的话--大疆技术总监的金玉良言
激光雷达与毫米波雷达对比, 
传感器小结
一线工程师告诉你嵌入式真实现状与发展前景
优劣几何?三角法和TOF激光雷达大解析!
10个激光、超声波测距方案带你玩转测距传感器
SLAM刚刚开始的未来之“工程细节”(张哲的ICRA 2017 的一些整理
101 从一个错误开始讲场效应管的应用
2017嵌入式软件行业现状及概述
人工智能概述
电子信息工程专业/单片机毕设题目推荐
SLAM刚刚开始的未来之“工程细节”
为什么别人可以这么牛
第879期机器学习日报(2017-02-13)
推箱子自动寻路的实现(未完)
人工智能技术与现代应用
二 树莓派3+ROS-kinetic+mbed-二轮差分模型
自动驾驶中激光雷达和高精度地图的关系
平台采用小米1代扫地机源码,stm32f103真实项目程序源码,代码注释清晰、代码规范好、每个函数必有输入输出范围参数解释。
无人驾驶硬件平台
激光雷达—无人驾驶汽车的眼睛
最适合男生的十大高薪工科类专业!
(三)LiDAR的测距原理(师弟师妹)简单科普
VIO_FUSION
3D视觉传感技术:时间飞行法 (ToF) 技术分析
设计一个AOA蓝牙精准室内定位系统
嵌入式软件岗位就业指导建议!!!
激光雷达类型分类,知名激光雷达公司介绍,三角测距激光雷达与TOF激光雷达原理
《人工智能狂潮》读后感——什么是人工智能?(一)
STM32(10):超声波模块的使用
计算机控制技术课程解释与问题答疑
相位式激光测距法中相位产生原理
【 學習心得 笔记 1】大疆技术总监:如何用六年成为一个全能的机器人工程师
机器人工程师学习计划(新工科自学方案)------杨硕
机器人工程师之路——从大一到研究生,YY硕经验谈
激光雷达类型分类,知名激光雷达公司介绍,三角测距激光雷达与TOF激光雷达原理
单线激光雷达在自动驾驶中的原理?
卷王指南,大学计算机专业,面临分专业,计科,软工,大数据,物联网,网络工程,该选什么?
一家非典型机器人公司的27年成长史丨独家探访 iRobot
STM32项目设计:基于stm32f4的智能门锁(附项目视频全套教程、源码资料)
大疆技术总监:如何用六年成为一个全能的机器人工程师(转载)
大疆工程师《机器人工程师学习计划》
如何成为一名很酷的机器人工程师?
ROS机器人开发概述,需要掌握的知识
SLAM中的EKF,UKF,PF原理简介 [转高博]
物联网定位技术超全解析!定位正在从室外走向室内
【概述】基于SLAM的机器人的自主定位导航
服务机器人是如何实现自主定位导航的?
收藏 | 基于深度学习SLAM的机器人的自主定位导航解析
物联网定位技术超全解析!定位正在从室外走向室内~
移动机器人技术(6)-- 机器人控制策略
ROS的优势与不足(除了ROS 机器人自主定位导航还能怎么做?)
SLAM技术大解析:它是如何帮助机器人实现智能行走的?
美国服务机器人技术路线图
服务型移动机器人如何实现室内路径全覆盖清扫给你一个清爽干净的家,tianbot_mini机器人上手ROS/SLAM/Navigation究竟有多简单???
实现机器人自主定位导航必解决的三大问题
室内定位技术方案---Wifi、RFID、bluetooth、Zigbee
常用室内定位技术总结
让机器人告别乱碰乱撞,激光导航让扫地机“睁开双眼”
机器人
SLAM技术是什么?它是如何帮助机器人实现智能行走?
服务机器人其最大的问题:定位导航
基于优化方法的机器人同步定位与地图创建(SLAM)后端(Back-end)设计技术收集
基于SLAM的机器人的自主定位导航
物联网定位技术超全解析
从理论到实践,机器人SLAM技术详解
360扫地机原理大揭秘,竟还有无人驾驶技术?——浅析家用机器人SLAM方案
SLAM导航技术赋能机器人智能行走
浅析服务机器人自主定位导航技术(三)
SLAM≠机器人自主定位导航
除了ROS, 机器人定位导航还有其他方案吗?
浅析服务机器人自主定位导航技术(一)
服务机器人常用的定位导航技术及优缺点分析
移动机器人定位导航方式的演进
服务机器人技术 —— 自主定位导航
机器人学习--移动机器人定位导航性能评估规范
自主移动机器人常用的导航定位技术及原理
扫地机器人如何聪明地干活? | iRobot解读智慧家庭的正确打开方式
寿命长性价比高的室内扫地机器人SLAM导航方案
扫地机器人能有多硬核?好家伙自动驾驶、激光扫描、NLP这些硬科技全上了,科沃斯:技术创新才能打破行业内卷...
扫地机器人有这些路径规划方法
智能扫地机器人软硬件开发笔记(1)-规格需求书
智能扫地机器人陀螺仪导航
【Robot】扫地机器人实现方案
自研扫地机器人激光雷达,Camsense有何胜算?
自动集尘系统会成为扫地机器人标配吗
干货|自动驾驶 vs 机器人定位技术
扫地机器人会否抛弃激光雷达这位原配?
智能扫地机器人陀螺仪导航模块
革了激光的命?双目视觉能否推动扫地机器人再次迭代
扫地机器人系统,主要划分为哪几个模块?
什么是激光导航扫地机器人?
扫地机器人是如何实现路径规划的 揭秘扫地机的定位导航原理
扫地机器人有这些路径规划方法
扫地机器人导航原理解读
机器视觉在扫地机器人领域的应用
深度解读扫地机器人的导航原理
扫地机器人智能化升级之路 智能决策成为关键
扫地机器人的回充方法实现
扫地机器人自动回冲工作原理
智能扫地机器人 陀螺仪导航系统
扫地机器人的路径规划方法
【室内定位】常用的机器人定位导航技术及优缺点
服务机器人常用的定位导航技术及优缺点分析