嵌入式硬件
嵌入式微处理体系结构
-
冯诺依曼结构
传统计算机采用冯诺伊曼架构也称为普林斯顿结构,是一种将程序指令存储器和数据存储其合并在一起的存储器结构
1 冯诺依曼结构的计算机程序和数据共用一个存储空间,程序指令存储地址和数据从存储地址指向同一个存储器的不同物理位置
2.采用单一的地址及数据中线,程序指令和数据的宽度相同 -
哈弗结构
哈弗结构时一种并行体系结构,主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问
- 与两个存储器相对应的是系统中的两套独立的地址总线和数据总线
- 这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字和操作数,从而提高执行速度,是数据吞吐率提高了一倍
嵌入式微处理器分类
- 根据字长分为:四位、八位、十六位、三十二位、六十四位, 一半称为16位以下的位嵌入式微控制器,32位以上的称为,嵌入式位处理器
根据用途分类
- 嵌入式微控制器 MCU:典型代表 单片机 主流 主要用在工业控制领域
- 嵌入式微处理器 MPU:通用计算机中的cpu 演变来的,32位及以上。只保留和嵌入式应用紧密相关的功能硬件,去除其他冗余功能,最低的功耗和资源实现嵌入式应用的特殊要求
- 嵌入式数字信号处理器 DSP:专门用于信号处理方面的处理器,器在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度,采用哈弗结构,流水线处理。主要应用领域是数字滤波,FFT,频谱分析等
- 嵌入式片上系统SOC:主球产品系统最大包容的集成器件。
多核处理器
多核处理器指的是多个微处理器内核,将两个或更多的微处理器封装在一起,集成在一个电路中。
两个或者多核内核工作协调实现方式
- 对称多出力技术SMP: 将两颗完全一样的处理器封装在一个芯片内,达到双倍或者接近双倍的处理性能,节省运算资源
- 非对称处理技术AMP:连个处理内核彼此不同,各自处理和执行特定的功能,在软件的协调下分担不同的计算任务
多核CPU调度:
多核cpu环境进程下调度算法一般有全局队列调度和局部队列调度两种
嵌入式软件
嵌入式软件是指:在应用在嵌入式计算机系统中各种软件,除了具有通用软件的一般性,还具有一些与嵌入式系统相关特点,包括:
- 规模较小
- 开发难度大
- 实时性和可靠性要求高
- 要求固化存储
嵌入式软件分类
- 系统软件:控制和管理嵌入式系统资源, 为嵌入式应用提供支持。设备驱动,操作系统, 中间件
- 应用软件:嵌入式系统的上层软件
- 支撑软件:赋值软件开发的工具软件。
板级支持包BSP
介于主板硬件和操作系统中驱动层程序之间的一层。(驱动开发)
具体功能:
- 单板硬件初始化,主要包含cpu初始化
- 为操作系统提供驱动和中断服务
- 定制操作系统功能
- 初始化操作系统
主要具有以下两个特点 - 硬件相关性
- 操作系统相关性
一般来说,BSP主要包含两个部分内容
- 引导加载程序BootLoader
- 引导设备驱动程序
BootLoader:嵌入式系统加单后运行的第一段软件代码,是在操作系统内核运行之前运行的一段小程序,通过这个可以硬件设备初始化,建立内存空间映射图等(类似bios)
处理流程:
- 片级初始化:处理器
- 板级初始化:主板
- 加载内核:系统
设备驱动程序
在一个嵌入式系统中,操作系统可有可无,但无论如何,设备驱动程序必不可少。
驱动程序就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口
对不同的硬件功能不同,基本功能:
- 硬件启动
- 硬件关闭
- 硬件停用
- 硬件启用
- 读
- 写
嵌入式系统
组成:
- 嵌入式处理器
- 相关支撑硬件
- 嵌入式操作系统
- 支撑软件
- 应用软件
嵌入式系统特性
- 专用性强
- 技术融合
- 软硬一体软件为主
- 比通用计算机资源少
- 程序代码固化在非易失存储器中
- 需要专门开发工具和环境
- 体积小、价格低、工艺先进、性能价格比较高、系统配置要求低、实时性强
- 对安全性和可靠性要求高
分类:
- 实时系统
- 强实时系统
- 弱实时系统
- 非实时系统
分层结构
- 硬件
- 抽象
- 操作系统
- 中间件
- 应用层
嵌入式数据库系统EDBMS
特点:
- 设备随时移动
- 网络频繁链接
- 网络条件多样化
- 通讯能力不对称
系统组成:
- 主数据库
- 同步服务器
- 嵌入式数据库
- 链接网络
要求:
- 一致性
- 高效的事务处理
- 数据的安全性
嵌入式操作系统
特点:
- 微型化
- 代码质量高
- 专业化
- 实时性强
- 可裁剪和可配置
嵌入式实时操作系统
完全嵌入受控期间内部,为特定应用设设计的专用计算机系统
特征:
- 可预测性:在运行之前,其功能、响应特性和执行结果是可预测的
- 确定性:确定时间得出确定的结果
分为硬实时,软实时。
特征:
- 高精度计时系统
- 多级中断机制
- 实时调度机制
嵌入式软件设计
一个典型的交叉开发环境,包含三个高度集成的部分
- 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序
- 运行在目标机上的高性能,可裁剪的实时操作系统
- 链接宿主机和目标机多种通讯方式
交叉编译:
嵌入式软件开发所采用的编译称为交叉编译,在一个平台上生成可以在另一个平台上执行的代码。
嵌入式系统的开发需要借助宿主机来编译出目标机的可执行代码
交叉调试:
在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中。