导图社区 嵌入式软件架构
该文档为嵌入式遥测终端机嵌入式软件的架构文档,可以用来指导遥测终端机的嵌入式软件的设计和代码的编写。
CANopen是一个基于CAN串行总线系统和CAL(CAN应用层)的高层协议。 CANopen的核心概念是设备对象字典(OD: ObjectDictionary),CANopen通讯通过对象字典(OD)能够访问驱动器的所有参数
CANopen是一种架构在CAN控制局域网上的高层软件通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线协议
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
架构图
硬件驱动层
硬件抽象(标准库)
定于:主要是对SFR的配置,不同MCU把这部分封装起来
硬件驱动(硬件模块)
定义:对HAL或者标准库进行一定封装,并提供基础协议
配置表(硬件配置表)
定义: 系统硬件整体的配置表,在MCU或者外设发生了更只需改动配置表映射,无需改标准库或者硬件模块
对MCU及其外设的配置
物理设备层
定义:硬件板子上特定的对外端口
板卡上对外的物理接口
逻辑设备层
设备注册: 根据URDF配置文件对物理设备进行配置
设备定义:按实际需求对若干个物理设备进行组合而形成的实例对象
按具体的功能进行定义的逻辑组合设备
逻辑应用层
配置线程
定义:对系统进行配置或者固件升级
包括:URDF配置线程, OTA升级线程
系统线程
定义:正常运行时所需要的若干个线程
包括: 运动控制,通讯,传感器获取,系统开关,安全等线程
功能模块的适用和逻辑关系的处理
核心层
三方库
定义:系统需要具备一些其他功能,标准库所无法提供的,而添加的其他库
包括: RTOS Kernel, Lua解释器
系统资源
多任务:系统多线程切换资源
安全:硬件模块检查,数据块的读写
脚本: Lua脚本
资源层
通用架构
硬件抽象层
1. 提供固定的片内资源(常用的有I/O,ISR,TIMER等,稍微好点的还有ADC,SPI等硬件资源,不需要芯片外围ADC采集芯片或模拟SPI)共开发者使用 2. 特点: 不随项目的新增需求变动而变动。所以应将其作为最底层,为上层提供基础支持。
1. 嵌入式开发基本都会使用片外资源,如外围EEPROM芯片,需要SPI通信(硬件SPI或I/O模拟的SPI)发送相应指令驱动该芯片,实现该芯片能正常工作。 2. 特点: 即使换了MCU,也只需将调用过硬件抽象层的API函数替换即可
功能模块层
功能模块层是按照项目需求提取出来的功能,需要硬件抽象层和硬件驱动层的硬件支持才能实现
实现一系列的人机交互功能,通常应用程序层相对于功能模块层而言独立性较低