嵌入式系统软硬件架构和开发流程
1 嵌入式系统定义
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,有些嵌入式系统是由单个程序实现整个控制逻辑(裸跑)。嵌入式系统是软件和硬件的综合体,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
2 嵌入式系统的构成
2.1 硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
2.1.1 嵌入式微处理器
嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(ReducedInstruction Set Computer,RISC)和复杂指令系统CISC(ComplexInstruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86等。
2.1.2 存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器等。
1>Cache
Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。
在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
2>主存
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM类NOR Flash、EPROM和PROM等。
RAM类SRAM、DRAM和SDRAM等。
3>辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、NANDFlash、CF卡、MMC和SD卡等。
2.1.3 通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
2.2 中间层
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(BoardSupport Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。
硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
2.3 软件层
2.3.1 系统软件层
系统软件层由实时多任务操作系统(Real-timeOperation System,RTOS)、文件系统、图形用户接口(GraphicUser Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。
2.3.2 应用软件层
应用软件层是由基于实时系统开发的应用程序组成,用来实现对被控对象的控制功能。功能层是要面对被控对象和用户,为方便用户操作,往往需要提供一个友好的人机界面。
3 嵌入式系统初始化
系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。
3.1 片级
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。
3.2 板级
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。
3.3 系统级
BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
4 项目管理流程
嵌入式系统项目管理分为: 项目启动-->项目计划-->项目实施-->项目收尾-->项目维护。
具体节点如下:
产品立项报告-->产品可行性分析报告-->初步设计(编制初步进度计划书)-->硬件详细设计-->软件详细设计-->结构详细设计-->样机生产-->软件自测(验证阶段)-->《测试大纲》和测试-->形成生产文件-->文件归档-->小批量试生产-->批量生产-->文件最终归档
5 开发流程
项目需求-->系统方案书(方案评审)-->方案设计(设计说明书)-->软硬件开发(开发文档)-->原理样机(测试报告)-->工程样机(测试报告)-->型式试验或认证(试验总结报告或认证证书)-->研发阶段验收
6 产品化流程
设计资料导入(Sch,PCB,Gerber,BOM,CAD等)-->生产工艺文档(gerber,SMT,BOM(COST Down),作业指导书)-->测试文档(测试要求,测试记录,产品检验标准等)-->良品率(一次通过率、良品率、合格率等)-->售后品质跟踪-->品质问题反馈及持续改进-->版本迭代。
7 软硬件结合实战实例
7.1 核心系统自检(异常流程处理指示)
7.2 外设初始化 (GPRS上电时序;功率分配)
7.3 工作状态切换(寄存器翻转,硬件缺陷弥补,漏电控制等)
7.4 中断处理(过压过流保护,异常处理)
7.5 电路部件级可靠性设计(I2C的死循环问题:单一条件判断的缺陷,需要定时器参入)
7.6 系统级可靠性设计(通信命令冗余,全局复位指令二次发送)
7.7 简单应用(A/D的精度(12BIT-->10BIT))
7.8 提高性价比(按键消抖,静电防护(硬件固有特性))
7.9 功能扩展复用(变调蜂鸣器(PWM),变频led等(硬件功能扩展))
7.10 高级应用(图像压缩,MPEG-1,-2,-4,H.263,H.264,数字滤波,uV级放大滤波电路设计)
来源:瑞志信息
作者:张发林
声明:本文由作者,文章内容系作者个人观点,转载仅作为传达一种不同的观点,不代表对该观点的赞同或支持,如有异议,欢迎联系。
- 标签:3xiaodao
- 编辑:郭晓刚
- 相关文章
-
厦门第二轮集中供地前发生了什么?新房成交面积同比上涨165.7%
黄婉银 魏文艺 孙志成 今年22城首批集中供地尚未结束,厦门就已率先开启了今年第二次集中供地的…
-
有了数字人民币,支付宝还能用吗 ?相关人士回应;15连板大妖股遭停牌核查!沾酒就火,交易所紧急出手!
赵庆 1丨机构:猪价将持续探底,消费旺季将出现季节性反弹 对于猪价后期走势,浙商证券首席经济学家…
- 公告的没有,悄悄地套现29亿巨款!4300亿医药巨头股东违背承诺,14万股民很生气
- 75岁“燕郊首富”被立案调查!身家40亿,却因21万蝇头小利栽了跟头
- BOSS直聘上市暴涨95%,北大毕业创始人身家200亿!总市值已超前程无忧+猎聘,“风投女王”又押对了?
- 中国科学院:上海光机所计算光刻技术研究取得进展
- 现实版“驴得水”?15年没来上班,仍被“发工资”超46万元…单位领导竟称无奈:“上班或办理辞职,他都不配合”