面向对象嵌入式系统开发笔记2-实时嵌入式系统基础知识

实时嵌入式系统基础知识

2.1嵌入式系统的基本概念

2.1.1通用计算与嵌入式计算

当今计算系统两类:通用和嵌入式。
通用:文字、表格等通用服务的系统,台式机,笔记本。丰富的系统资源。实时性要求不高,电视转播等。
嵌入式:应用为中心、计算机技术为基础、软硬件可裁剪、符合系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。有限的系统资源。实时性要求高,核电、汽车、航天等。也有非实时和软实时。
嵌入式计算系统考虑点:
 复杂的计算。控制汽车发动机的过滤操作。
 紧缺的资源:量产产品成本。
 多样的用户界面:屏幕有大有小,输入设备亦按钮、触摸屏等。
 实时性:工业控制、智能机器人。
 多速率:多个实时任务,虽然有快有慢,多媒体的视频和音频虽然速率不同,但是必须同步。
 连续运行:航空控制系统。
 针对特定目标优化:一般椒针对软件代码,可能降低可读性。
 干扰:铝电解控制系统需要在75000A大电流的强磁场中。
 制造成本:微处理器、内存。
 功率:配套电源,电池的寿命和散热量。
 不同类型处理器:位数8/32\指令类型CISC/RISC、指令架构x86/ARM.
 体积:航天、军用。
  开发工具:宿主机开发环境、调试工具、示波器、分析仪。
  编程开发环境:

2.1.2 为什么使用微处理器

微处理器:MCU、DSP、MPU、SOC。
为什么比定制逻辑电路快:
  三级流水线:执行与预取并行
 时钟频率提高。
 先进的制造工艺。
 灵活性高:更换程序即可执行不同的算法。
 制造成本低:设计成本、开发工具、制造成本。
 开发时间短。

2.1.3 嵌入式系统的组成

在这里插入图片描述

1.嵌入式系统硬件组成
(1)计算核心
微处理器和内存。
MPU:通用计算的微处理器裁剪而来。
DSP:信号处理。数码相机、工业矿产、交通运输等无人值守位置的数据采集和处理、机器人视觉数据处理等大量的信号数据处理操作。
MCU:集成各种必要的功能和IO接口电路。一个系列的单片机内核是一样的,不同的是存储器以及IO接口的配置和封装。
SOC:单个芯片实现整个系统的功能。
系统规模虽然小,但是内存技术都用了。一般固化程序用Nor flash,运行参数用E2ROM,大量结果数据用带文件系统的Nand FLash.小内存用SRAM,大内存用SDRAM.
  (2)I/O接口
主机和外围电路的桥梁。
作用:通信联络、时序和数据格式转换、电气特性匹配。
两种连接方式:
内部接口:。
外挂接口:占用数据、地址总线。
常用接口:GPIO、UART、SIO、 ADC、 PWM、 DMA、 NVIC、 存储控制器、 LCD控制器、 定时器、 I2c、 USB、 CAN。
  (3)外部设备

  (4)电源管理及监控
基础性和服务型地位。与系统的整体能耗、安全和保险策略相关。
技术:数字电源与模拟电源单独供电技术、电源滤波技术、电源走线电路板布局、电源监视与系统监视技术、DC/DC电源转换技术、锁相环PLL时钟技术、CPU工作模式(ARM正常、低速、空闲、停止)管理技术、看门狗技术。

2.嵌入式系统的软件组成
逻辑上分层。实际运行往往是平板(flat)式的,分不出操作系统和应用。
开放式层次结构,上层可跨层访问下层。
简单应用,可以不用操作系统,前后台系统。
(1)硬件抽象层HAL
BSP主要实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包。相对于操作系统而言。
Bootloader不可或缺。
启动方式两种:FLash启动和FLash复制解压到RAM
(2)操作系统
基本功能:任务调度、中断管理、时间管理、任务通信、内存管理、文件管理、网络管理。
可分内核、系统功能、API层。
主要有点简化了复杂多任务程序的结构,精力集中在功能划分和实现上、不必多任务并发大伤脑筋。
(3)应用程序
在有操作系统的情况下,主要是任务功能划分和事件中断服务基础上。
编程难点:中断事件处理、多任务间通信、软件优化上。

2.2 实时性、正确性、健壮性

环境问题:
恶劣的供电环境:浪涌和尖峰脉冲。
有限的供电能源。
严重的噪声环境:共模干扰、差模干扰和串扰。
不友好的自然环境:盛夏的高温,北方冬天的超低温。

2.2.1 实时性及其他术语和概念

1.实时系统
计算和动作的实现有性能约束。
(1)硬实时系统
在这里插入图片描述

(2) 软实时系统
一般有吞吐量的要求
2.非实时系统
3.反应系统或事件驱动系统
行为通过外部事件产生特定反应的系统。发生事件时,调度系统就会调用相应过程,事件处理完后,所有的过程会把控制权返回给调度系统。
实时嵌入式系统的主要形式,核心行为模型是有限状态机。
4. 时间驱动系统
在这里插入图片描述

周期性的任务分配。
5. 过程驱动系统
顺序控制系统。请求外部输入,然后等待;输入到达时,控制会在请求调用的过程中继续执行。
在这里插入图片描述

  1. 任务
    被封装的操作序列
  2. 并发
    多个任务同时执行
    通过UML顺序图建模。或则和复合状态机、活动图的泳道对局部并发建模。
    难点在共享资源的处理上。
    8.可靠性
    正常运行时间
    不但与软件有关,主要与硬件失效相关。

2.2.2 正确性与健壮性

正确性反映了系统任何时候都能正确地完成功能的特性。
健壮性反映了系统在某些部分出现不可预知故障的情况下,正确完成任务的特性。
1,死锁
在这里插入图片描述

策略:
先得到全部资源。
同样的顺序申请资源
申请资源使用超时
2.互斥条件
策略:
禁止中断。
测试置位指令。
禁止任务切换。
在这里插入图片描述

信号量。
在这里插入图片描述

3.异常条件
健壮的系统即使出现系统失效也能够正确完成工作。
辨识出这种失效;
采取逃离行动。
前置条件不变量进行检查。
 软件错误。
 硬件错误
 硬件故障

2.3 资源受限的目标运行环境

除了实时性外,资源也是约束。

2.3.1 嵌入式系统的运行资源

嵌入式资源包括:计算资源、存储资源、输入输出资源
在这里插入图片描述

2.3.2 嵌入式系统的制造成本

足够的销量有时候能够弥补打赏日益增长的软件成本。
非重现成本NRE
重现成本。
在这里插入图片描述

2.3.3 嵌入式系统的开发资源

2.4 嵌入式操作系统

一般提供从ROM引导的能力
核心功能是多任务调度和核心资源的管理,也提供大量的系统服务。
在这里插入图片描述

2.4.1 硬件独立性

优点是使应用程序的开发与底层硬件实现了剥离,对硬件的驱动通过操作系统和自行开发或者第三方提供的设备驱动程序实现。
在这里插入图片描述

2.4.2可伸缩的框架

1.非抢占内核
在这里插入图片描述

  1. 抢占内核
    在这里插入图片描述

  2. 可重入
    在这里插入图片描述

在这里插入图片描述

2.4.3 任务调度

嵌入式操作系统的实时系统中,多个任务并发地执行。如果单微处理器,某个时刻实际上只有单个任务运行。
在这里插入图片描述

在这里插入图片描述

2.4.4 内存分配

系统初始阶段进行分配,但是代价昂贵。
编程语言动态内存分配,但是多次调用后碎片多。
垃圾收集方式,冻结应用程序运行,周期或者事件驱动。需要双重指针,通过操作系统表指向实际内存。解决了内存泄露问题。但是开销大和时间不可预测影响实时性。
大多数RTOS提供了固定块大小的堆的解决方式。

2.4.5 任务间的通信

任务间通信主要通过互斥条件和消息两个途径实现。
互斥:禁止中断、测试置位、禁止任务切换、信号量。
消息:消息邮箱和消息队列
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.6 时间管理及其他可选的系统服务

时间管理也叫时钟管理。主要任务是维持系统时间,防止某个任务独占CPU或其他系统资源。
时间服务包括因等待某个时间时间(超时、定时)而挂起任务,获得当前时间,估计消逝的时间以及调度任务(基于时间片)等。
其他模块有文件系统、网络协议栈、图形界面驱动、数据库支持等等。

2.4.7 RTOS的选择

小型或者时间要求苛刻的应用中,一般用前/后台系统,也成为超级循环系统。系统中异步事件由对应的中断服务程序处理,即前台。把需要处理时间很长的异步事件交由后台处理,前台尽准备必要的数据或者给后台发送通知。
当遇到较大或较多的事务需要并发处理时,就需要选用RTOS.
在这里插入图片描述

实时性衡量方式
 任务切换时间
 抢占时间
 中断延迟
 信号量混洗时间
 死锁解除时间
 数据包吞吐率

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值