9、嵌入式系统设计实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

23
数控系统设计-软硬件协同设计

软硬件协同设计

一旦软件结构确定了,硬件和软件工作组在一 起工作确定软件和相关的功能。 这个过程是指软件和硬件工作组一起工作定义 最终系统结构.这是一个迭代的过程,系统结 构的改变有时会改变软件和硬件的结构.

24
数控系统设计-定义软件模块

定义软件模块

确定系统需要支持的所有功能.
8
需求分析——功能需求

数控系统是一种自动阅读输入载体上事先给定的数据, 并将其译码,从而使机床移动和加工零件的控制系统. 它的工作原理是通过各种输入方式,接受加工零件的 各种数据信息,经过译码、处理、插补,生成各坐标 轴的参考位臵,把各轴的参考位臵送到轴控制器中, 驱动轴的运动,使各个坐标轴能精确地运动到所要求 的位臵。
任务设计
21
数控系统设计-定义系统结构

数控系统总体结构
采用处理器设计模式
系统采用单一处理器结构ARM
系统ARM+FPGA实现整个硬件系统
22
数控系统设计-定义软件总体结构

数控系统软件总体结构
软件采用任务设计模式和功能协调模式相
结合的软件结构
任务内部采用有限状态机的设计模式
采用静态固定分配,优先级与周期成反比,周期
越短优先级越高。非周期性任务则按照重要性分 配,重要性越高优先级越高
系统的优先级分配情况如下:伺服最高,插补次
之,逻辑处理次之,译码次之,人机界面最低
30
数控系统设计-任务之间通讯

任务间通讯
ucos-II提供邮箱,消息队列,全局变量,共享
内存的方式提供任务间通讯

以缩小电路规模,抑制功耗为目的的设计会降低通用性和可维护性。
较多的源代码可以确保软件的可维护性
2.软件工程师考虑的问题
3
嵌入式系统详细设计

1. 2. 3.
选择处理器
处理器的性能必须足够执行任务和支持产品生命周期 支持软件创建、调试、系统集成、代码调整和优化功能的软件 开发人员拥有处理器或处理器系列产品的开发经验

各种通讯方式的比较
邮箱 消息队列 全局变量 共享内存

共享内存是最快的通讯方式
31
数控系统设计-共享内存

OSMemCreate()创建内存


void initCNCMem(void) {
INT8U err; pCNCMem=OSMemCreate(CNCMemPart, CNCMemSize, CNCblkSize, &err); if(pCNCMem==NULL){ Uart_Printf("Failed to Create CNC Message quote"); } }

13
需求分析——识别处理器

如果已有的系统系统实现了相似的功能,重用该结构是个很好的 选择
如果这是个全新的项目,考虑这些功能是否能用一个处理器实现. 单个处理器最容易实现和调试的


如果该应用需要用多个处理器,最好选用能够满足需求的最少处 理器实现
在多处理器设计中,把控制和管理用一个处理器实现,这样简化了 操作.系统中其他处理器处理系统中的工作负载. 按照这种方式设计的多处理器系统,可以从一个小的系统扩充为 一个大的系统,通过增加处理器.因此客户可以从简单的处理器入 手,随着系统负载的增加而增加
9
需求分析
功能需求—数控系统
CNC
反馈
机床控制器 反馈 控制装置 M 功能
PLC 功能
机床
人 机 界 面
速度 位置
速度
位置

状态 指令 开/关
PLC
输入 输出
冷却 主轴 ….
CNC机床控制模型
10
需求分析-数控系统的功能



输入输出 输入/输出/通讯功能 字符图形显示功能 程序编制功能 数据处理 插补功能 进给功能 主轴速度功能 刀具功能 补偿功能 辅助功能 报警 自诊断功能

18
操作系统平台的选取

实时操作系统

专用实时系统VxWorks ,Window CE QNX ,REAL/IX等。RTOS 费用很高, 开放源码的实时系统 rtai ,rtlinux ucos


DOS,许多控制系统包括数控系统仍然使用DOS。DOS之所以能 够保证系统的实时性,只是因为它不是多任务系统——它每 次只执行一个任务。DOS只专注于一个任务,这样可以保证任 务的实时性。
考虑所有定义的场景.
确保所有分配的资源在结束时释放. 考虑使用层次状态机简化状态机设计.
28
数控系统设计-任务设计

选择任务类型
单个状态机 多个任务

选择状态机
简单状态机
29
数控系统设计-任务设计

分配优先级,由于采用ucos操作系统,操作系统采 用基于优先权可抢占的调度方式

1. 2.
选择操作系统
操作系统支持的微处理器 操作系统的性能
3.
4.
操作系统的软件组件、中间件和设备驱动程序
操作系统的调试工具、开发环境、在线仿真器(ICE)、编译器、汇编器、 连接器、调试器以及模拟器等。
4
5.操作系统的标准兼容性 6.操作系统的技术支持程度 7.操作系统是提供源代码还是目标代码 8. 操作系统的许可使用情况
逻辑模块-处理IO口
26
数控系统设计-数控系统任务模块
OSTaskCreate(Frame_Task, (void *)0, (OS_STK *)&Frame_Task_Stack[STACKSIZE-1], CNC_Frame_Task_Pri);// 1
OSTaskCreate(Interp_Task, (void *)0, (OS_STK *)&Interp_Task_Stack[STACKSIZE-1], CNC_Interp_Task_Pri);// 1 OSTaskCreate(Decode_Task, (void *)0, (OS_STK *)&Decode_Task_Stack[STACKSIZE-1], CNC_Decode_Task_Pri);// 1 OSTaskCreate(Display_Task, (void *)0, (OS_STK *)&Display_Task_Stack[STACKSIZE-1], CNC_Display_Task_Pri);// 1
OSTaskCreate(Logic_Task, (void *)0, (OS_STK *)&Logic_Task_Stack[STACKSIZE-1], CNC_Logic_Task_Pri);// 1
27
数控系统设计-任务设计

数控系统任务设计指南
不要引入很多状态使设计复杂化. 不要使用太少的状态使设计复杂化. 使数据结构定义简单. 处理存储越界的情况.

OSMemGet()获得内存

void initManual_data(void) {


INT8U err;
manual_data= (MANUALDATA * )OSMemGet(pCNCMem,&err); } // end initManual_data
32
数控系统设计-共享内存
任务1
11
非功能需求-数控系统

非功能需求

物理环境-车间,工作环境恶劣 用户-一般是车间操作员,操作水平有高有低

质量保证--用在工业控制环境质量要求高,同时 现在市场竞争激烈,如果质量不好很难在市场上站 住脚
12
非功能需求-QOS

QOS

数控系统响应性高,主要是对突发事件的反应(如撞刀,急 停) 数控系统具有可确定性。因为可确定性主要是确保条件/事件 出现和由此引起的动作开始/结束的时间在一个准确的时间间 隔内。在CNC系统中,条件/事件是由操作员的指令(紧急停 止,移动x轴等)或是机床的状态(如刀具破损等)引起的。 实际上,需要满足时间约束的情况主要是和系统安全(如对 突发事件的反应等)以及切削精度(更高的精度影响插补周 期)有关,因此数控系统具有硬实时任务。硬实时任务指必 须满足最后期限的限制,否则会给系统带来不希望的破坏或 者致命的错误。 性能高-需要进行许多复杂的运算 可靠性-可靠性要高,在加工过程中不出现问题,至少一个 月之内不能死机,出现故障, 安全程度高
任务2
任务3
TM1 TM3 TM2 TM4
局部变量表
局部变量表
全局变量表
33
数控系统设计-共享内存


14
挑选操作系统和硬件

平台的特殊需求(该平台是否需要实时操作系统的支持)


对该硬件和软件平台的使用情况?
支持该硬件和软件平台公司的财务状况如何? (当然不能选择不能提 供硬件/软件平台支持的公司的产品 提供该平台公司的发展目标是什么? (当然不希望选择的平台没有一 个清晰的升级途径) 该平台是否有合适的开发工具 可以使用该平台开发的开发人员有多少?对开发人员培训的费用是多 少 预留性能 (例如,不能选用一个CPU资源使用 80%,预留未来 增加的空 间 该平台需要完善吗?一个良好的平台比一个需要完善的平台要便宜得 多 平台的设备驱动程序 (是否能够提供用户开发的设备驱动程序) 平台支持那些通讯协议(如.平台平台是否支持 TCP/IP, HTTP, UDP等)

软件代码编制准备-软件代码编制-软件单元代码走读-代码单元测 试-单元代码修改-单元代码回归测试
6
本节提要
1
嵌入式数控系统设计实例
2 3
ARM MP3设计实例 GPS导航仪
7
嵌入式数控系统设计实例


需求分析—(数控系统需求分析)
架构设计—(数控系统架构分析) 详细设计—(数控系统的详细设计) 系统测试 —(数控系统的测试)
15





选择处理器—数控系统处理器


现在可用的数控系统有单个CPU,两个CPU,三个CPU
高档数控一般采用两个CPU实现,更有甚者采用三个 CPU,我们这个项目为中低档数控,单个处理器可以实 现 Arm7的性能满足系统的需要,同时由于需要IO的实现, 以及伺服电机的控制,所以采用ARM7+FPGA的结构 。 ARM芯片价格低廉。
19
操作系统平台的选取
ucosII的理由

ucosII是个实时多任务操作系统 是个开放源码--降低开发费用,如果选择专业操 作系统,费用高 有强有力的支持(这一点是选择这个系统很重要的 原因)

20
数控系统设计

数控系统设计与开发
定义系统总体结构 定义软件总体结构 软硬件协同设计 定义软件模块

开发平台:操作系统相关的开发平台 相关外设的选择
FLASH,PROM(容量,boot速度),RAM(容量,速度)

成本、功耗、产品上市时间
5
详细的硬件与软件设计流程
硬件设计流程

芯片选型-关键电路试验-原理图绘制-原理图评审-印制板-样板试制 -硬件功能测试-硬件稳定性测试
软件设计流程
基于实现的工作类型分组.把执行同一功能的 模块归为一个任务.例如人机界面,译码,插 补,伺服等.
25
数控系统设计-数控系统任务模块

数控系统任务模块

人机界面-显示,操作,控制功能 译码模块-把数控代码翻译成可识别的结构 插补模块-把数据点细化 伺服模块-生成脉冲指令控制电机
总控模块-协调各个模块之间的关系
ARM原理及应用
第九讲 嵌入式系统开发实例
1
嵌入式系统设计流程

产品定义:需求分析 软硬件划分 迭代与实现 详细的硬件与软件设计 系统测试 系统维护与升级
2Leabharlann Baidu
嵌入式系统的软硬件划分原则


性能原则
性价比原则 资源利用率原则
软硬件协同设计
1. 硬件工程师考虑的问题

硬件开发的投入及时间


17
操作系统平台的选取

通用操作系统

(window unix/linux)本质上是不可预测的,导致实时处理的 不可靠性(即使是相对较慢,计算简单的任务)。通用系统 都是多任务系统,意味着它们允许计算机同时运行几个进程。 它们通过分时技术允许多个任务并发,在所有活动任务间分 配资源。分时的一个直接后果是实时精度不能保证, 很多时候,程序员使用软件中断满足任务的最后期限,这就 是强迫操作系统在一个给定的时间响应中断并提供服务,然 而由于中断的分辨率很低(如linux是100hz),这个方法只 在任务实时性较低的情况下使用(也就是说任务的速率比中 断的速率还要低)。还有就是对操作系统底层的修改,如提 高中断频率,改变任务的优先级等方法可以提高一些操作系 统的实时精度,但是这样的改变对操作系统的性能有一定的 损坏。
相关文档
最新文档