嵌入式开发结构和流程
扫描二维码
随时随地手机看文章
嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,经过多轮修改设计、制作,最终完成整个系统的开发。这种嵌入式开发,适用于未来产品比较单一,产量比较大,产品开发周期比较长,成本控制比较严格的系统。嵌入式技术不是单纯的软件技术,也不是单纯的硬件技术,是一门如何在一个特定的硬件环境上开发与构建特定的可编程软件系统的综合技术。嵌入式技术是在嵌入式系统的发展中应运而生的,它是依附于嵌入式系统,并推动嵌入式系统不断向前发展的核心动力。嵌入式是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。嵌入式技术近年来得到了飞速的发展,但是嵌入式产业涉及的领域非常广泛,彼此之间的特点也相当明显。例如,很多行业:手机、PDA、车载导航、工控、军工、多媒体终端、网关、数字电视等。主流的嵌入式平台有三种:ARM平台、DSP平台和FPGA平台。一、ARMARM微处理器是由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)系统测试。对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。