嵌入式开发是什么

小白 2020-04-26 16:52:42
QA

嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的EDA研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发。

嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的 EDA 研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发。

嵌入式开发是什么

定义

嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,经过多轮修改设计、制作,最终完成整个系统的开发。这种嵌入式开发,适用于未来产品比较单一,产量比较大,产品开发周期比较长,成本控制比较严格的系统。

嵌入式技术不是单纯的软件技术,也不是单纯的硬件技术,是一门如何在一个特定的硬件环境上开发与构建特定的可编程软件系统的综合技术。嵌入式技术是在嵌入式系统的发展中应运而生的,它是依附于嵌入式系统,并推动嵌入式系统不断向前发展的核心动力。嵌入式是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在 ROM 中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。嵌入式技术近年来得到了飞速的发展,但是嵌入式产业涉及的领域非常广泛,彼此之间的特点也相当明显。例如,很多行业:手机、PDA、车载导航、工控、军工、多媒体终端、网关、数字电视等。

主流平台

主流的嵌入式平台有三种:ARM 平台、DSP 平台和 FPGA 平台。

一、ARM

ARM 微处理器是由 ARM 公司提供 IP(Intellectual Property,知识产权)授权,交付多个芯片设计厂商整合生产的。在 2007 年,意法半导体(ST)公司成为第一个引入 ARM Cortex-M 授权的半导体厂商,开启了高性能、低成本、低功耗的 ARM 嵌入式芯片新时代,其生产的 STM32 系列微处理器是最流行的 Cortex-M 微处理器。ARM 嵌入式系统广泛应用于自动检测与控制、智能仪器仪表、机电一体化设备、汽车电子及日常消费电子产品中,其优越的性能和完善的开发环境得到广大电子工程师的青睐。

二、DSP 平台

嵌入式 DSP 处理器(Embedded Digital Signal Processor,EDSP),是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,芯片内部采用程序和数据分开存储及传输的哈佛结构,具有专门硬件乘法器,采用流水线操作,提供特殊的 DSP 指令,可用来快速地实现各种数字信号处理算法,具有很高的编译效率和指令的执行速度,在数字滤波、FFT、谱分析等各种仪器上获得了大规模的应用。

三、FPGA 平台

随着平台级 FPGA 产品的出现和 EDA 设计工具软件的不断发展,利用现有的 FPGA 和 EDA 工具,人们也可以很方便地在 FPGA 中嵌入 RISC(Reduced Instruction Set Computer,精简指令集)处理器内核、DSP 算法、存储器、专用 ASIC 模块、其它数字 IP Core 以及用户定制逻辑等,构建成一个可编程的片上系统(SOPC),把原来需要在 PCB 上采用处理器、DSP、若干 ASIC 芯片才能实现的功能全都集成到了单片 FPGA 上。

FPGA 内部嵌入了丰富的乘法器(DSP)资源、高速收发器(GTP/GTX)资源、以太网 MAC 资源、嵌入式处理器(Power PC)资源、时钟及锁相环资源、存储器(BRAM)资源等,甚至在 Xilinx 公司最新推出的 Zynq-7000 系列芯片之中嵌入了 ARM 资源,将传统的 FPGA 演变成了 ARM+FPGA 的扩展开发平台。这些嵌入的硬件资源极大地增强了传统 FPGA 的功能,提升了 FPGA 的工作效率和灵活性,使得一块 FPGA 平台就可适用于多种产品,进行各种扩展。开发者只需要掌握 Verilog HDL 等硬件描述语言和嵌入式系统开发的相关知识,就可对整个系统进行编程和控制。

硬件环境

(1)嵌入式处理器:MPU、DSP。

(2)存储器系统:Flash+RAM+MEM card+mini HD。

嵌入式系统有别于一般的通用计算机系统,它不具备像硬盘那样大容量的存储介质,而用静态易失型存储器(RAM、SRAM)、动态存储器(DRAM)和非易失型存储器(ROM、EPROM、EEPROM、FLASH)作为存储介质,其中 FLASH 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。

(3)输入设备:键盘,视/音频输入,A/D。

(4)输出设备:显示(LED/LCD/OLED)装置,视/音频输出,A/D。

(5)通讯接口:Ehternet(802.3),WIFI(802.11)。

(6)总线接口:RS232/RS485,USB,1394(Firewire)。

(7)电源管理:待机、休眠、功耗管理等。

嵌入式开发的硬件平台选择主要是嵌入式处理器的选择。在具体应用中处理器的选择决定了其市场竞争力。在一个系统中使用什么样的嵌入式处理器主要取决于应用领域、用户的需求、成本、开发的难易程度等因素。在开发过程中,选择最适用的硬件平台是一项很复杂的工作,包括要考虑其他工程的影响以及缺乏完整或准确的信息等。

嵌入式开发结构

标准嵌入式开发架构有两大体系:CISC(Complex Instruction Set Computer,复杂指令集计算机)和 RISC(Reduced Instruction Set Computer,精简指令集计算机)。

早期的 CPU 全部是 CISC 架构,它的设计目的主要用最少的机器语言指令来完成所需的计算任务。这种架构会增加 CPU 结构的复杂性和对 CPU 工艺的要求,但对于编译器的开发十分有利。只有 Intel 及其兼容 CPU 还在使用 CISC 架构。RISC 架构要求软件来指定各个操作步骤,可以降低 CPU 的复杂性以及允许在同样的工艺水平下生产功能更强大的 CPU,但对于编译器的设计有更高的要求。占主要地位的是 RISC 处理器。

RISC 体系的阵营非常广泛,从 ARM、MIPS 到 PowerPC、ARC、Tensilica 等,都是属于 RISC 处理器范畴。不过这些处理器虽然同样是属于 RISC 体系,但是在指令设计与处理单元的结构上都各有不同,因此彼此完全不能兼容,在特定平台上所开发的软件无法直接为另一硬件平台所用,而必须重新经过编译。CISC 和 RISC 正在逐步走向融合,Pentium Pro、Nx586、K5 就是一个明显的例子,它们的内核都是基于 RISC 体系结构的,它们接受 CISC 指令后将其分类成 RISC 指令以便在同一时间内能够执行多余指令。

嵌入式开发流程

当前,嵌入式开发已经逐步规范化,在遵循一般工程开发流程的基础上,嵌入式开发有其自身的一些特点。主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最终得到产品。

(1)系统需求分析。确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能性需求包括系统性能、成本、功耗、体积、重量等因素。

(2)体系结构设计。描述系统如何实现所述的功能和非功能性需求,包括对硬件、软件和执行装置的功能划分,以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。

(3)硬件/软件协同设计。基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。嵌入式系统设计的工作大部分都集中在软件设计上,面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。

(4)系统集成。把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。

(5)系统测试。对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。

嵌入式系统开发模式最大特点是软件、硬件综合开发。这是因为嵌入式产品是软硬件的结合体,软件针对硬件开发、固化、不可修改。

主要特征

嵌入式系统国内普遍认同的定义是:以计算机技术为基础,以应用为中心,软件、硬件可剪裁,适合应用系统对功能可靠性、成本、体积、功耗严格要求的专业计算机系统。在构成上,嵌入式系统以微处理器及软件为核心部件,两者缺一不可;在特征上,嵌入式系统具有方便、灵活地嵌入到其他应用系统的特征,即具有很强的嵌入性。

按嵌入式微处理器类型划分,嵌入式系统可分为以单片机为核心的嵌入式单片机系统;以工业计算机板为核心的嵌入式计算机系统;以 DSP 为核心组成的嵌入式数字信号处理器系统;以 FPGA 为核心的嵌入式 SOPC(System On a Programmable Chip,可编程片上系统)系统等。

嵌入式系统在含义上与传统的单片机系统和计算机系统有很多重叠部分。为了方便区分,在实际应用中,嵌入式系统还应该具备下述三个特征:

(1)嵌入式系统的微处理器通常是由 32 位及以上的 RISC(Reduced Instruction Set Computer,精简指令集计算机处理器)组成,例如 ARM、MIPS 等。

(2)嵌入式系统的软件系统通常是以嵌入式操作系统为核心,外加用户应用程序。

(3)嵌入式系统在特征上具有明显的可嵌入性。

关键技术

1.开发过程中的相关技术

在嵌入式系统开发过程中,主要包括宿主机与目标机两个部分的开发,宿主机能够对嵌入式系统中的代码编译、定址及链接进行执行,而目标机则是嵌入式系统中的硬件平台。在对嵌入式系统进行开发时,需要将应用程序转换成相应的二进制代码,这些二进制代码能够在目标机中运行。在上述开发过程中,主要可分为三个步骤,分别是编译过程;链接过程与定址过程,其中,嵌入式系统中的交叉编译器能够进行编译,交叉编译器属于一种计算机平台中的代码生成编译器,较为常见的交叉编译器是 GNU C/C++(gcc),它会将所有编译完成的目标文件均和一个目标文件进行链接,这便是链接过程。而定址过程则会在目标文件的各个偏移位置对相应的物理存储器地址进行指定,在定址过程中所生成的文件便是二进制文件。在嵌入式系统调试过程中,主要是利用交叉调试器来进行,其调试方式通常采用宿主机-目标机形势,宿主机与目标机之间的连接是通过以太网或串行口线来实现的,在交叉调试任务中,主要包括任务级调试、汇编级调试与源码级调试,在调试过程中需要将宿主机中存储的系统内核与应用程序分别下载到目标机当中的 RAM 或 ROM 当中。当目标机运行后,会对宿主机中的调试器控制命令进行接收,同时配合调试器来对应用程序进行下载、运行与调试,然后将调试信息发送到宿主机当中。

2.软件移植技术

在嵌入式系统开发中,软件移植技术无疑是其中的一项关键技术,其是以移植协议来完成软件功能移植的,在移植协议中主要包括三个部分,分别是字节顺序、字节对齐与位段空间分配。在字节顺序中,现有的字节顺序主要包括小段字节与大段字节两种方式,小段字节顺序是依据存储地址中的数据排列顺序来实现的,也就是低地址用于存储低字节数据,高地址则用于存储高字节数据。而大段字节则恰好与小段字节的排序顺序是对调的。在字节对齐方面,现有的字节对齐方式非常多,其主要是以 GCC 中的 MakeFile 命令来编译字节,然后对这些字节进行对齐,不过这种对齐方式会存在一些缺陷,因此需要在收数据包位置与发数据位置中分别加入相应的拆包函数与组包函数,以此提高嵌入式系统中软件的互通性与移植性。位段空间分配也是软件移植技术中的重要因素,通常在对位段进行分配时,其顺序应从左至右进行,也有一部分系统是从右向左进行的。通过位段排序来确保嵌入式系统对数据进行准确保存,并利用编程方法来编译位段排序,这样在位段排序过程中只需要将对应的程序进行直接调用即可。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Wubuntu 操作系统

    Wubuntu,基于Ubuntu LTS的Windows 11操作系统

    Wubuntu是一个基于Ubuntu LTS的操作系统,外观使用类似Windows 11主题。附带PowerTools高级工具,允许使用控制面板、Windows风格的网络和常规设置。支持Android系统以及游戏、PlayStore等图形加速,兼容Microsoft帐户、Google帐户等。
  • AMD FidelityFX Super Resolution 3 FSR 3

    AMD终于有了击败Nvidia DLSS的策略

    AMD计划通过集成AI技术来增强其图形处理技术FSR,以在2024年与Nvidia的DLSS竞争。公司首席技术官暗示,AMD将在其游戏设备中加入AI升级功能,并致力于在人工智能领域获得更广泛的认可。这一策略可能涉及RDNA 4显卡的架构变化。
  • Apache Tomcat

    Tomcat,开发调试JSP程序首选Web服务器环境

    Apache Tomcat是一个开源Java Servlet容器,广泛应用于开发和部署Java Web应用。它以轻量级、高性能和易于使用著称,支持Servlet、JSP、EL和WebSocket技术,提供安全管理功能。与Jetty、GlassFish和WildFly等其他容器相比,Tomcat适用于各种规模的项目,特别受中小型企业和个人开发者欢迎。
  • SQLite

    SQLite,轻量级关系型数据库系统

    SQLite是一款轻量级、高效且跨平台的嵌入式数据库管理系统,特别适合于资源有限的应用环境,如移动应用和小型项目。它以简洁的配置、易于集成和支持SQL标准著称,无需独立的服务器即可运行,使得数据存储解决方案既简单又高效。尽管不适合高并发大型应用,但对于大多数小到中型项目来说,是一个极具吸引力的数据库解决方案。
  • OpenWrt One

    OpenWrt首款自主设计路由器:OpenWrt One

    OpenWrt为庆祝器成立20周年推出OpenWrt One/AP-24软路由设备,这是其首款完全支持上游的硬件设计,融合了二十年的专业知识和社区精神。设计理念侧重于简洁和可行性,具有所有OpenWrt支持平台所需的基本特性。
  • NetBSD

    NetBSD,高度可移植的开源Unix-like操作系统

    NetBSD是一个高度可移植的开源操作系统,著名于其跨平台支持和稳定性。它适合在多种硬件上运行,特别受到嵌入式系统和技术爱好者的青睐。虽然对于一般桌面用户可能不够友好,但其出色的安全性和高效性能使其成为企业和开发者的理想选择。