电子发烧友网 > 嵌入式技术 > 正文

关于嵌入式系统的特点和协同性研究分析过程详解

2018年08月29日 17:06 次阅读

0.引言

嵌入式技术被广泛应用于信息家器、消费电子、交换机以及机器人等产品中,与通用计算机技术不同,嵌入式系统中计算机被置于应用环境内部特征不明显。系统对性能、体积、以及时间等有较高的要求。复杂的嵌入式系统面向特定应用环境,必须支持硬、软件裁减,适应系统对功能、成本以及功耗等要求。

0.1 嵌入式系统与协同性

从信息传递的电特性过程分析,嵌入式系统特征表现为,计算机技术与电子技术紧密结合,难以分清特定的物理外观和功能,处理器与外设、存储器等之间的信息交换主要以电平信号的形式在IC 间直接进行。

从嵌入深度ED来看,信息交换在IC 间越直接、越多,嵌入深度就越大。

在设计实验系统模型(图1)时,充分考虑到软硬协同性,使其成为一个实验与研究完备平台。软硬件协同性问题涉及到协同性划分技术和协同性设计技术。协同性核心问题之一将涉及启动加载软件Bootloader、系统板级支持包BSP 以及嵌入式OS 之间融合和移植。协同性设计技术与系统功能、性能以及开发人员等因素相关,其核心内容为软硬件的协同描述、验证和综合提供一种集成环境。

嵌入式系统结构模型

关于嵌入式系统的特点和协同性研究分析过程详解

图 1. 嵌入式系统结构模型

0.2 没有操作系统OS 的嵌入式系统

0.2.1 系统特点

由于系统的性质、任务、成本等原因,没有操作系统支持的嵌入式系统将继续大量存在。这样的系统使用专用开发工具(如:仿真在线调试器ICE 等)。通过串口或并口在PC机上联机调试程序,具有源代码调试功能。

0.2.2 局限性分析

没有OS 的系统按照“指令顺序执行+中断”的模式运行。在作者参与的早期程控交换机系统设计中,需要对不同端口量级(从10 到1000 等)的分机进行实时处理。通过建立交换系统核心硬件层(存储体、第一层I/O 等)以及用户口地址等程序;然后建立定时和非定时事件、过程以及任务中断链和任务表,应用中断对任务以及过程调度。设计人员要完成相当于部分操作系统功能的编写,导致软件结构复杂、工作量大尤其是重复劳动。

0.3 具有OS 的嵌入式系统

图1 的2 嵌入式系统就是具有嵌入式OS 的一种结构模型。引入嵌入式OS 可以面对多种嵌入式处理器环境(如:MPU、DSP、SOC 等)提供类同的API 接口,使基于OS 上的程序具有较好的移植性。从协同划分与设计技术出发,通过嵌入式软件的函数化、产品化能够促进分工专业化,减少重复劳动。

1. Bootloader/BSP 特性

Bootloader 与BSP 配合,通过初始化硬件设备、建立内存空间映射,“屏敝”硬件环境,为调用操作系统内核和应用程序运行作好准备。

1.1 Bootloader 特性与结构分析

Bootloader 是系统加电后首先运行的程序,主要依赖于硬件,建立一个通用版本几乎不可能。即使同一CPU,硬件稍作变化,Bootloader 也必须修改。建立良好的BootLoader 结构,为系统二次开发以及减轻BSP的开发难度、可移植提供有益帮助;同时,也是保护硬件平台设计知识产权的重要措施。

启动过程分单阶段(Single STage)和多阶段(Multi-Stage)。从协同性划分技术角度,设备初始化程序等通常放在stage 中,stage2 设置内核参数和调用,应具有可读性和可移植性。从固态存储设备上启动的Bootloader 大多都是两阶段的启动过程。Bootloader 的存贮体和分区:Flash/RAM/固态存贮器(图2);Flash 存储分区有连续和非连续两种方式。当系统需要多媒体等功能,用DOC(Disk ON Chip)技术解决大容量嵌入式OS 的存贮。

空间分配结构示意图

关于嵌入式系统的特点和协同性研究分析过程详解

图2. 空间分配结构示意图

1.2 BSP 特性

作为板级支持软件包BSP 处在一个软硬件交界的中心位置,结构与功能随系统应用范围表现较大的差异。不同的硬件环境和操作系统,BSP 具有不同的内容与结构。从协同性角度,在系统设计初始阶段,就必须考虑BSP 可移植性、生成组件性以及快速性。如,BSP 的编程大多数是在成型的模板上进行,保持与上层OS 正确的接口。

2. Bootloader/BSP 协同性与设计

在建构嵌入式系统的过程中,应从系统结构和协同性角度,关注底层软件的设计。bootloaer 和BSP构成底层软件设计的核心内容,与硬件、过程、功能划分结合紧密。

2.1 Bootloader 与BSP 协同性分析流程

首先用对任务所涉及的功能和过程进行系统级划分,确定将功能划分给软件还是硬件,对执行确定相关的“延迟”特性。形成模型创建、配置、*估等协同流程,克服传统孤立的设计模式。在面对系统低层软件Bootloader 与BSP 设计时,在前面分析系统结构以及特性基础上,给出如下系统性流程图。

系统底层软件结构模型

关于嵌入式系统的特点和协同性研究分析过程详解

图 3. 系统底层软件结构模型

2.2 基于ARM-μCLinux 系统bootloader 设计

在系统结构模型以及设计流程的基础上,下面通过实例说明bootloader 的主要设计过程。

基于ARM-μCLinux 嵌入式系统的启动引导过程:通过串口更新系统软件平台,完成启动、初始化、操作系统内核的固化和引导等。硬件平台由内嵌ARM10 的处理器、存储器2MBFlash 和16MBSDRAM、串口以及以太网口组成。软件平台组成:系统引导程序、嵌入式操作系统内核、文件系统。采用Flash 存储bootloader、内核等,直接访问内核所在地址区间的首地址。

2.3 μCLinux 内核的加载

系统采用μCLinux 自带的引导程序加载内核,用自举模式和内核启动模式相互切换;同时,切换到内核启动模式,自动安全地启动系统。针对ARM7TDMI 的无MMU 特性,采用修改后的μCLinux 内核引导程序加载操作系统和初始化环境,解决内核加载的地址重映射问题和操作系统的内存管理问题。

2.4 WinCE 系统下BootLoader

完成定制WinCE 的加载主要工作是编写启动加载程序bootloader 和板级支持包BSP。Bootloader 涉及到基本的硬件操作,如CPU 的结构、指令等,同时涉及以太网下载协议TFTP 和映像文件格式。Bootloader支持命令输入的方式,不用人工干预加载WinCE,其主控部分通过串口来接收用户的命令。

2.5 系统板级支持包BSP

由于硬件环境、Bootloader 映射范围以及二次开发等原因,系统启动加载程序Bootloader 不能把经过裁剪的OS 直接引导进入硬件环境,需要建立BSP 文件,如VxWorks 的BSP 和Linux 的BSP 相对于某一CPU 来说尽管实现的功能一样,写法和接口定义可以完全不同。BSP 的结构与内容差异性较大,依据不同的系统和应用环境,应设计建立合理、稳定的BSP 内核。

2.6 交叉融合

在分析过程、任务划分以及系统协同性的基础上,对系统底层软件设计应考虑Bootloader、BSP、接口以及应用程序交叉与融合。应用 BSP 组成灵活性,设计充分考虑软硬件协同。接口驱动程序,如网络驱动、串口驱动和系统下载调试、部分应用程序可添加到BSP 中,从系统结构的角度是,简化软件层次和硬件尤其是存贮体系结构,当操作系统运行于硬件相对固定的系统,BSP 也相对固定,不需要做任何改动,建立独立的应用程序包。如果BSP 中的应用程序不断升级,将对系统稳定性造成影响。

图 4 表征了嵌入式系统三个软件环节的结构变化,Bootloader、BSP、接口驱动程序以及部分应用程序将产生融合与交叉。对于一次开发功能强大的嵌入式系统,应充分利用嵌入式处理器供应商提供的Bootloader,使建立BSP 的过程变得相对容易。

软件交叉与融合示意图

关于嵌入式系统的特点和协同性研究分析过程详解

图 4. 软件交叉与融合示意图

3.结束语

通过对嵌入式系统结构与协同性探讨,分析了嵌入式系统的特点和协同性。应用结构协同思路与流程,建立一个结构良好与嵌入式核心硬件层密切相关的 Bootloader 和BSP,对顺利植入裁剪良好的OS、简化软件结构以及保护硬件平台知识产权都有重要意义。嵌入式处理器种类多,系统结构不尽相同,Bootloader 和BSP 的内容随之会产生差异,应充分考虑系统协同问题,避免传统的多次设计、反复实验的方式,为实际应用提供有益帮助。

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

FreeRTOS知识解密:我们为什么要学习RTO...

在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更...

发表于 2018-08-29 16:07 17次阅读
FreeRTOS知识解密:我们为什么要学习RTO...

采用一个能够支援多重视讯输入格式

37356025

发表于 2018-08-29 10:03 156次阅读
采用一个能够支援多重视讯输入格式

什么是eSIM?真的能取代SIM卡吗?

5月25日,中国移动对外发布了国内首款eSIM芯片C417M,可提供芯片+eSIM+连接服务。3月,...

发表于 2018-08-29 09:42 66次阅读
什么是eSIM?真的能取代SIM卡吗?

关于嵌入式听力诊断系统中如何伪迹消除

47278546

发表于 2018-08-29 09:34 197次阅读
关于嵌入式听力诊断系统中如何伪迹消除

Windows CE操作系统体系结构及功能介绍

嵌入式操作系统是与应用环境密切相关的,从应用范围角度来看,大致可以分为通用型的嵌入式操作系统如Win...

发表于 2018-08-29 05:41 42次阅读
Windows CE操作系统体系结构及功能介绍

凌华科技:Matrix无风扇嵌入式计算机产品系列...

2011年2月,北京讯——凌华科技推出新款“Matrix无风扇嵌入式计算机”系列产品MXE-1200...

发表于 2018-08-29 05:20 30次阅读
凌华科技:Matrix无风扇嵌入式计算机产品系列...

如何在U-Boot中实现对Yaffs镜像的设计?

U-Boot是目前广泛使用的嵌入式操作系统通用引导程序,具有功能丰富强大,支持多种操作系统和CPU体...

发表于 2018-08-29 05:02 40次阅读
如何在U-Boot中实现对Yaffs镜像的设计?

如何用DM6446实现Windows CE显示驱...

作为一款多媒体处理芯片,TI公司推出的DM6446 采用ARM+DSP 的双内核架构,有着丰富的外设...

发表于 2018-08-29 02:45 65次阅读
如何用DM6446实现Windows CE显示驱...

如何用uClinux系统设计汽车黑匣子?

根据国家最新出台的汽车行驶记录仪的标准:要求汽车行驶记录仪能够对实时时钟、日期及驾驶时间的采集、记录...

发表于 2018-08-29 01:39 71次阅读
如何用uClinux系统设计汽车黑匣子?

基于MAP芯片ATJ2135的嵌入式MP3播放器...

嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁...

发表于 2018-08-29 01:07 38次阅读
基于MAP芯片ATJ2135的嵌入式MP3播放器...

一款基于嵌入式视频服务器的远程实时视频采集系统实...

随着通信网络技术的迅速发展,基于网络的高质量视频传输已逐步取代传统的文字语音交互模式,成为当今数字通...

发表于 2018-08-28 17:49 60次阅读
一款基于嵌入式视频服务器的远程实时视频采集系统实...

世界机器人大会:NVIDIA Jetson Xa...

近日,机器人“饕餮盛宴”——世界机器人大会(WRC, World Robot Conference)...

发表于 2018-08-28 17:01 338次阅读
世界机器人大会:NVIDIA Jetson Xa...

关于嵌入式系统的分类与特点

50110121

发表于 2018-08-28 10:38 785次阅读
关于嵌入式系统的分类与特点

2018嵌入式技术及行业应用趋势沙龙

 Arm公司是全球知名的半导体知识产权 (IP) 提供商,全世界超过95%的智能手机和平板电脑都采用...

发表于 2018-08-28 09:49 396次阅读
2018嵌入式技术及行业应用趋势沙龙

第三代智能功放TFA9897,让业界领先的扬声器...

恩智浦正全力以赴,为快速发展的便携设备和可穿戴设备市场开发可用的创新解决方案,该产品的推出进一步彰显...

发表于 2018-08-28 09:26 57次阅读
第三代智能功放TFA9897,让业界领先的扬声器...

【开发经验】嵌入式硬件设计需要考虑的一些问题总结

发表于 2018-08-28 09:23 219次阅读
【开发经验】嵌入式硬件设计需要考虑的一些问题总结

正确的学习linux的路线

如果想学上层的图形界面的应用,那么学习一下QT,编一个我们最开始学习的helloworld,放到开发...

发表于 2018-08-27 17:41 192次阅读
正确的学习linux的路线

Arm发展史,浅谈Arm成功秘诀

Arm正在实现从端到云的支持,支持合作伙伴使用Arm或者自己的微架构。

发表于 2018-08-27 16:58 249次阅读
Arm发展史,浅谈Arm成功秘诀

海底捞在餐桌上配置无线充电服务

随着海底捞准备赴港上市,媒体间对于这个老牌火锅企业再次掀起了新一轮热烈讨论。国内的火锅品牌如此多,味...

发表于 2018-08-27 14:19 220次阅读
海底捞在餐桌上配置无线充电服务

linux网盘视频分享

发表于 2018-08-27 14:18 208次阅读
linux网盘视频分享

linux详细资料网盘教程视频

发表于 2018-08-27 14:14 201次阅读
linux详细资料网盘教程视频

一文了解Linux平台搭建与环境熟悉

嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,l...

发表于 2018-08-27 10:57 649次阅读
一文了解Linux平台搭建与环境熟悉

基于带处理器和FPGA的新型SoM组合设计

很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和模块化系统 (SoM)(例如,请...

发表于 2018-08-27 09:46 607次阅读
基于带处理器和FPGA的新型SoM组合设计

单片机/ARM死机或跑飞常见的查找方法

发表于 2018-08-27 09:34 358次阅读
单片机/ARM死机或跑飞常见的查找方法

关于STM32的几种输入模式以及外部中断的配置

发表于 2018-08-27 09:11 185次阅读
关于STM32的几种输入模式以及外部中断的配置

嵌入式系统学习知识体系,初学者必看

从这些应用可以看出,要完成一个以MCU为核心的嵌入式系统应用产品设计,需要有硬件、软件及行业领域相关...

发表于 2018-08-27 09:00 137次阅读
嵌入式系统学习知识体系,初学者必看

以ARM9和Linux为核心的嵌入式视觉系统设计

测试硬件性能稳定之后,在Linux 系统下把图像采集、图像显示和保存图像命令写成一个脚本,放在文件系...

发表于 2018-08-26 09:24 115次阅读
以ARM9和Linux为核心的嵌入式视觉系统设计

以ARM处理器S3C2440A为核心的嵌入式无线...

系统初始化包括对芯片OV511、OV7260,USB2.0 控制器CY7C68013A , 无线收发...

发表于 2018-08-26 09:17 256次阅读
以ARM处理器S3C2440A为核心的嵌入式无线...

提高GIS地图显示速度的嵌入式应用

系统对每个地图分别制作多个比例尺的地图数据,同时参考地图地理要素的规范, 根据要素的重要程度将不同比...

发表于 2018-08-26 09:13 57次阅读
提高GIS地图显示速度的嵌入式应用

以嵌入式ARM处理器为核心的物流管理无线PDA终...

系统应用于仓库的物流管理,需要较好的应用程序界面,同时需要满足跨平台的要求,因而使用C#程序设计语言...

发表于 2018-08-26 09:08 234次阅读
以嵌入式ARM处理器为核心的物流管理无线PDA终...

如何对嵌入式存储器进行测试和可测性设计?

这种测试方法的优点是利用SoC现有资源,而不需要设计额外的测试电路,也不需要对现有电路进行任何修改,...

发表于 2018-08-26 09:04 61次阅读
如何对嵌入式存储器进行测试和可测性设计?

以S3C2440为核心的嵌入式温室环境监测系统设...

UML序列图(Sequence Diagram)一般用于确认和丰富一个环境的逻辑。一个使用情境就是系...

发表于 2018-08-26 08:5