当今计算系统两类:通用和嵌入式。
通用:文字、表格等通用服务的系统,台式机,笔记本。丰富的系统资源。实时性要求不高,电视转播等。
嵌入式:应用为中心、计算机技术为基础、软硬件可裁剪、符合系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。有限的系统资源。实时性要求高,核电、汽车、航天等。也有非实时和软实时。
嵌入式计算系统考虑点:
复杂的计算。控制汽车发动机的过滤操作。
紧缺的资源:量产产品成本。
多样的用户界面:屏幕有大有小,输入设备亦按钮、触摸屏等。
实时性:工业控制、智能机器人。
多速率:多个实时任务,虽然有快有慢,多媒体的视频和音频虽然速率不同,但是必须同步。
连续运行:航空控制系统。
针对特定目标优化:一般椒针对软件代码,可能降低可读性。
干扰:铝电解控制系统需要在75000A大电流的强磁场中。
制造成本:微处理器、内存。
功率:配套电源,电池的寿命和散热量。
不同类型处理器:位数8/32\指令类型CISC/RISC、指令架构x86/ARM.
体积:航天、军用。
开发工具:宿主机开发环境、调试工具、示波器、分析仪。
编程开发环境:
微处理器:MCU、DSP、MPU、SOC。
为什么比定制逻辑电路快:
三级流水线:执行与预取并行
时钟频率提高。
先进的制造工艺。
灵活性高:更换程序即可执行不同的算法。
制造成本低:设计成本、开发工具、制造成本。
开发时间短。
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)应用程序
在有操作系统的情况下,主要是任务功能划分和事件中断服务基础上。
编程难点:中断事件处理、多任务间通信、软件优化上。
环境问题:
恶劣的供电环境:浪涌和尖峰脉冲。
有限的供电能源。
严重的噪声环境:共模干扰、差模干扰和串扰。
不友好的自然环境:盛夏的高温,北方冬天的超低温。
1.实时系统
计算和动作的实现有性能约束。
(1)硬实时系统
(2) 软实时系统
一般有吞吐量的要求
2.非实时系统
3.反应系统或事件驱动系统
行为通过外部事件产生特定反应的系统。发生事件时,调度系统就会调用相应过程,事件处理完后,所有的过程会把控制权返回给调度系统。
实时嵌入式系统的主要形式,核心行为模型是有限状态机。
4. 时间驱动系统
周期性的任务分配。
5. 过程驱动系统
顺序控制系统。请求外部输入,然后等待;输入到达时,控制会在请求调用的过程中继续执行。
正确性反映了系统任何时候都能正确地完成功能的特性。
健壮性反映了系统在某些部分出现不可预知故障的情况下,正确完成任务的特性。
1,死锁
策略:
先得到全部资源。
同样的顺序申请资源
申请资源使用超时
2.互斥条件
策略:
禁止中断。
测试置位指令。
禁止任务切换。
3.异常条件
健壮的系统即使出现系统失效也能够正确完成工作。
辨识出这种失效;
采取逃离行动。
前置条件不变量进行检查。
软件错误。
硬件错误
硬件故障
除了实时性外,资源也是约束。
足够的销量有时候能够弥补打赏日益增长的软件成本。
非重现成本NRE
重现成本。
一般提供从ROM引导的能力
核心功能是多任务调度和核心资源的管理,也提供大量的系统服务。
优点是使应用程序的开发与底层硬件实现了剥离,对硬件的驱动通过操作系统和自行开发或者第三方提供的设备驱动程序实现。
嵌入式操作系统的实时系统中,多个任务并发地执行。如果单微处理器,某个时刻实际上只有单个任务运行。
系统初始阶段进行分配,但是代价昂贵。
编程语言动态内存分配,但是多次调用后碎片多。
垃圾收集方式,冻结应用程序运行,周期或者事件驱动。需要双重指针,通过操作系统表指向实际内存。解决了内存泄露问题。但是开销大和时间不可预测影响实时性。
大多数RTOS提供了固定块大小的堆的解决方式。
任务间通信主要通过互斥条件和消息两个途径实现。
互斥:禁止中断、测试置位、禁止任务切换、信号量。
消息:消息邮箱和消息队列
时间管理也叫时钟管理。主要任务是维持系统时间,防止某个任务独占CPU或其他系统资源。
时间服务包括因等待某个时间时间(超时、定时)而挂起任务,获得当前时间,估计消逝的时间以及调度任务(基于时间片)等。
其他模块有文件系统、网络协议栈、图形界面驱动、数据库支持等等。
小型或者时间要求苛刻的应用中,一般用前/后台系统,也成为超级循环系统。系统中异步事件由对应的中断服务程序处理,即前台。把需要处理时间很长的异步事件交由后台处理,前台尽准备必要的数据或者给后台发送通知。
当遇到较大或较多的事务需要并发处理时,就需要选用RTOS.
实时性衡量方式
任务切换时间
抢占时间
中断延迟
信号量混洗时间
死锁解除时间
数据包吞吐率