根据定义,嵌入式系统由于其硬件和软件的组合而被称为集成系统。它由我们周围的智能计算设备组成。这些设备可以是智能手机,智能手表,智能家居设备,医疗设备,安全警报,IoT产品等。
他们将通过Internet相互交谈,并且无需人工干预即可远程运行。一个事实是我们的世界将连接到在附近的将来(2020至2021年),与新兴技术超过50个十亿设备,如物联网(IOT)。此外,机器学习和人工智能将在设计嵌入式系统产品中扮演至关重要的角色。要开发这样的系统,值得了解其软件和硬件开发生命周期的工作方式。
该初学者指南为您提供了有关嵌入式系统的完整教程。去之前就知道的工作,重要的是要知道通用PC(电脑)和嵌入式设备之间的差异。
你们中的许多人在这两个词之间感到困惑,但是嵌入式CPU中的微处理器和微处理器之间的主要区别是。诸如微处理器之类的计算机中的通用CPU具有与其物理连接的外部外围设备(实时时钟,USB,以太网,HDMI等),并且在外部是可见的。但是嵌入式微控制器或微处理器单元在单个SOC(片上系统)IC上将很少或所有外围设备连接到CPU。
以下是通用操作系统和嵌入式操作系统之间的一些关键区别。
示例:Windows,Linux,Mac OS。
顾名思义,它可以是集成为执行特定功能的硬件或软件。它使用微控制器/微处理器执行单个作业。它是带有或不带有操作系统的独立设备。例如洗衣机,音乐播放器,ATM,自动售货机,数据记录器等。如今,大多数设备都在OS(操作系统)上运行。那么,对OS的需求是什么?
嵌入式系统的一些示例是智能手机,洗衣机,空调,信息亭等。
它们无处不在。不相信吗?大多数人在不了解的情况下使用它们。美丽之处在于它对用户是不可见的,从而提供了丰富的体验。以下是嵌入式系统的一些应用程序,这些应用程序使用功能强大的操作系统(OS),例如嵌入式Linux,Android和Windows CE。
智能家居
您家中的大多数产品都是嵌入式的,可为用户提供出色的体验和舒适感。例如家庭安全系统,设置盒,数码相机,电视,微波炉,空气冷却器,冰箱等等。
办事处
他们还加入了用于互连网络业务客户的商业企业解决方案。示例包括路由器,调制解调器,打印机和网关。
运输
汽车行业在世界范围内竞争激烈。汽车中的一些嵌入式子系统包括防抱死制动系统(ABS),空调控制,点火控制,安全气囊控制,雨量感应雨刮器。
卫生保健
医学领域是至关重要的领域,嵌入式系统的使用是一场噩梦。奇怪的设计可能对社会或个人造成灾难性的影响。例如血压计,心跳计,起搏器,远程监控和手术,扫描仪,便携式呼吸机。
工业界
嵌入式系统最近面临的挑战将其范围扩展到了自动化领域。自动化是重复执行任务的过程。自动化提高了机器的生产率,减少了开发成本和设计时间。例如工业机械和控制,温度监控,3D打印机,机器人技术和工业物联网。
航空航天与国防
航空航天与国防是一个崎performance不平的领域,其中安全性和性能至关重要。为了实现这一点,必须构建可靠的固件和嵌入式软件。例如飞行控制系统,致动,空气和热管理,发动机功率,车辆涡轮增压器,导航系统,嵌入式成像。
世界上每个复杂的系统都可以基于软件和硬件两个思想来构建。为此,您必须开始构建较小的模块并将其集成以创建有效的子系统。嵌入式系统可以划分为软件和硬件组件。
任何嵌入式目标的核心都是电子硬件,它位于印刷电路板上。嵌入式开发板分为五个模块。它们是处理器,内存,输入设备,输出设备和总线控制器。
硬件抽象层(HAL)是任何嵌入式设备的基本资源,选择特定组件取决于设计人员的要求和规格。在全球市场上,针对不同应用生产的硬件有许多变体。他们之中有一些是:
甲微控制器是优选的构建小应用程序与精确的计算。实际上,它们的ram数量有限且可靠性较差。一些著名的制造公司包括Altera,Atmel,Renesas,Infineon,NXP等。从技术上讲,微控制器是一种智能设备,可以计算任务执行时间并以有效的方式分配用户分配的内存资源。
SoC由一个IC上的CPU,外围设备(计时器,计数器),通信接口(I²C,SPI,UART)和电源管理电路组成。
如果您的应用程序应该更可靠,性能更高,那么低成本SoC是最佳选择。它支持一个或多个处理器核心。
ASIC指专用集成电路。
首先,该芯片被设计用于特定应用,并由一家公司拥有。因此,不允许对该产品进行版权保护。其次,它消耗很少的功率。
您可能想知道,这些是音频和视频应用程序中使用最多的处理器。DSP处理器可消除噪声,并改善DVD播放器,音乐播放器和游戏机的信号质量。
注意:嵌入式计算系统中可能有数百个微控制器/微处理器。
输入设备从外界获取输入。输入设备的一些示例是传感器,开关,光电二极管,光耦合器等。它们接受来自用户的输入并做出相应的响应。
输出设备是由于来自微控制器外部的输入事件而发生的指示或结果。输出设备的示例包括LCD,触摸屏,LED,电机,七段显示器,蜂鸣器,继电器等。
所述总线控制器是一种通信设备,嵌入式系统内的部件之间传输数据。一些总线控制器是串行总线(I2C,SPI,SMBus等),RS232,RS485和通用串行总线。
为了存储数据并处理内存管理,需要闪存和SD卡等存储设备,EEPROM。嵌入式系统中使用的一些存储器是非易失性RAM,易失性RAM,DRAM(动态随机存取存储器)等。
软件组件是嵌入式系统必不可少的组成部分。为设备驱动程序,操作系统,应用程序软件,错误处理和调试软件编写的嵌入式软件(有时称为固件)。
设备驱动程序或板级支持软件包(BSP)是控制外围设备并支持连接性的核心软件组件。它是为特定硬件编写的一段嵌入式代码。外设可以是I2C,SPI,UART,USB,CAN,GPIO等。用户必须使用数据表中提供的特定控制和数据寄存器来为微控制器或微处理器导出低级驱动器。在低级驱动程序的顶部旁边,必须为应用程序软件编写高级驱动程序。此外,必须集成中间件扩展,例如FREERTOS,FATFS,LWIP(TCP / IP堆栈)。
操作系统是管理诸如内存,I / O(输入/输出)管理等资源的系统软件。在嵌入式系统中,存在不同类型的操作系统。其中一些是RTOS(实时操作系统),VxWorks,RTLinux,Nucleus,µCos,移动嵌入式,独立和网络嵌入式系统。
大多数人不了解用于嵌入式系统的编程语言,电子世界每天都在变化。因此,您需要在这个竞争激烈的世界中自我更新。大多数硬件平台都支持多种语言。为了简化固件开发,需要学习嵌入式C,C ++和Micro python。
C语言是由Dennis Ritchie于1972年创立的,其操作系统为Unix。由于以下原因,嵌入式C是嵌入式系统使用最广泛的语言。
嵌入式C ++是增强的编程语言,与C相比,几乎没有什么优势。
Micro Python是用于实时应用程序的开源面向对象软件。它是人类可读的并且易于编码。编程API使用内置的异常和错误处理。该语言适用于对底层硬件细节不感兴趣的开发人员。对于传感器和设备的数据分析很有用。用户可以用python编写测试用例来调试硬件。但是,对于给定的应用程序,完全由开发人员选择C,C ++或Python。
每个嵌入式计算设备可能是您的计算机或移动设备,都有一些输入和相应的输出。
这是嵌入式系统工作方式的一个示例。
必须编写适当的嵌入式软件来满足客户的要求,并将高质量的产品推向市场。为了有效地做到这一点,以下是制作嵌入式产品的七个步骤。
步骤1:了解要求
首先,您需要了解并了解最终用户的规范。
步骤2:检查
分析制造该产品所需的组件(软件和硬件)。
步骤3:设计
这是开发周期中最关键的阶段。开发人员需要单独开发嵌入式硬件和软件,并将两者集成。
步骤4:开发
程序员使用可用的硬件和软件工具开发原型以匹配客户规格。
注意:原型是为测试概念而设计的样本版本。
步骤5:测试
开发人员通过运行软件测试用例来检查应用程序,以证明原型的可能潜力。
步骤6:部署
在测试产品之后,开发人员在真实环境中检查结果以实现概念验证。
注意:概念验证是一种用于验证想法的技术,但可能无法交付。
步骤7:支持和升级
根据用户要求,必须提供支持和升级以定期添加新功能。
嵌入式系统设计应满足性能和安全性并增加安全性。为此,必须重点关注实现原型并集成诸如MQTT,大数据和云计算之类的未来技术。此外,在开发HMI(人机界面)和GUI应用程序时必须考虑用户界面。重要的是,嵌入式软件必须针对内存和功耗受限的微处理器和微控制器进行优化。