嵌入式系统设计与实例开发.ppt
《嵌入式系统设计与实例开发.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计与实例开发.ppt(75页珍藏版)》请在沃文网上搜索。
1、1嵌入式系统设计与实例开发嵌入式系统设计与实例开发基于基于3232位微处理器与实时操作系统位微处理器与实时操作系统第九讲第九讲 嵌入式系统开发实例嵌入式系统开发实例北京航空航天大学北京航空航天大学机器人研究所机器人研究所王田苗魏洪兴王田苗魏洪兴2本节提要本节提要1 12 2嵌入式数控系统设计实例嵌入式数控系统设计实例ARM MP3设计实例设计实例3实时系统l反应时间反应时间l任务的反应时间是一个任务应当开始执行任务的反应时间是一个任务应当开始执行(或结束或结束)的时刻与实际的时刻与实际执行的时刻差值执行的时刻差值.(或者说或者说,一个事件的产生和响应的时间间隔一个事件的产生和响应的时间间隔)l
2、决定反应时间的几个因素决定反应时间的几个因素l处理器、总线、内存(片上高速缓冲存储器,片下处理器、总线、内存(片上高速缓冲存储器,片下RAM和和ROM)以及外围设备的时间特性)以及外围设备的时间特性l操作系统的调度特性操作系统的调度特性l内核的占先特性内核的占先特性l系统的负载(也就是说同一时刻需要调度的任务的数量系统的负载(也就是说同一时刻需要调度的任务的数量)l任务转换时间。指的是处理器需要保存正在运行任务的数据的时任务转换时间。指的是处理器需要保存正在运行任务的数据的时间间(例如寄存器,堆栈和指针例如寄存器,堆栈和指针),以及将它的数据替换成新调度的,以及将它的数据替换成新调度的任务的本
3、地数据的时间。这些因素很难在时间上保持稳定,在并任务的本地数据的时间。这些因素很难在时间上保持稳定,在并发的任务调度中静态分配延时称为发的任务调度中静态分配延时称为jitter。4实时系统l时间约束时间约束l不同的应用有不同的时间约束不同的应用有不同的时间约束,理想状态下理想状态下,实时操作系统能够实时操作系统能够满足时间约束。然而现在还没有一个普遍的有保证的调度算法满足时间约束。然而现在还没有一个普遍的有保证的调度算法能够使所有以下这些时间约束都满足:能够使所有以下这些时间约束都满足:l最后期限最后期限:一个任务必须在指定时间内完成一个任务必须在指定时间内完成,但是有时任务在但是有时任务在指
4、定时间内完成的结果对质量并不重要指定时间内完成的结果对质量并不重要.例如例如:在缓冲区清空在缓冲区清空之前,处理器必须将声卡的缓冲区填满之前,处理器必须将声卡的缓冲区填满;在另一个外围设备在另一个外围设备到达并且读那个值之前,输出端口的电压必须到达一个给定到达并且读那个值之前,输出端口的电压必须到达一个给定值。值。l零执行时间零执行时间:理想状态下理想状态下,任务的执行时间为零任务的执行时间为零.如如:测量测量,计计算算,把结果传给外围设备都发生在瞬间。把结果传给外围设备都发生在瞬间。l服务质量服务质量(QoS):在一个时间单位里任务得到在一个时间单位里任务得到“服务服务”的数量的数量.(“服
5、务服务”通常的意义是通常的意义是“CPU时间时间”,但也可以是但也可以是“内存页内存页”,“网络带宽网络带宽”或者或者“磁盘访问带宽磁盘访问带宽”。)。)5实时系统l实时系统任务分类实时系统任务分类:l周期任务在规定的时间间隔里运行周期任务在规定的时间间隔里运行l非周期任务非周期性任务非周期任务非周期性任务6嵌入式系统设计l需求分析需求分析(数控系统需求分析数控系统需求分析)l架构设计架构设计(数控系统架构分析数控系统架构分析)l详细设计详细设计(数控系统的详细设计数控系统的详细设计)l系统测试系统测试(数控系统的测试数控系统的测试)7l数控系统是一种自动阅读输入载体上事先给定的数据,数控系统
6、是一种自动阅读输入载体上事先给定的数据,并将其译码,从而使机床移动和加工零件的控制系统并将其译码,从而使机床移动和加工零件的控制系统.它的工作原理是通过各种输入方式,接受加工零件的它的工作原理是通过各种输入方式,接受加工零件的各种数据信息,经过译码、处理、插补,生成各坐标各种数据信息,经过译码、处理、插补,生成各坐标轴的参考位置,把各轴的参考位置送到轴控制器中,轴的参考位置,把各轴的参考位置送到轴控制器中,驱动轴的运动,使各个坐标轴能精确地运动到所要求驱动轴的运动,使各个坐标轴能精确地运动到所要求的位置。的位置。需求分析功能需求8功能需求功能需求数控系统数控系统控制装置PLC人机界面轴冷却主轴
7、.反馈速度位置输入输出速度位置指令状态反馈开/关CNC机床M功能PLC功能机床控制器CNC机床控制模型需求分析9l输入输出输入输出l输入输入/输出输出/通讯功能通讯功能l字符图形显示功能字符图形显示功能l程序编制功能程序编制功能l数据处理数据处理l插补功能插补功能l进给功能进给功能l主轴速度功能主轴速度功能l刀具功能刀具功能l补偿功能补偿功能l辅助功能辅助功能l报警报警l自诊断功能自诊断功能需求分析数控系统的功能10l非功能需求非功能需求l物理环境车间,工作环境恶劣物理环境车间,工作环境恶劣l用户一般是车间操作员,操作水平有高有低用户一般是车间操作员,操作水平有高有低l质量保证用在工业控制环境
8、质量要求高,同时质量保证用在工业控制环境质量要求高,同时现在市场竞争激烈,如果质量不好很难在市场上站现在市场竞争激烈,如果质量不好很难在市场上站住脚住脚非功能需求数控系统11lQOSQOSl数控系统响应性高,主要是对突发事件的反应(如撞刀,急停)数控系统响应性高,主要是对突发事件的反应(如撞刀,急停)l数控系统具有可确定性。因为可确定性主要是确保条件数控系统具有可确定性。因为可确定性主要是确保条件/事件事件出现和由此引起的动作开始出现和由此引起的动作开始/结束的时间在一个准确的时间间结束的时间在一个准确的时间间隔内。在隔内。在CNCCNC系统中,条件系统中,条件/事件是由操作员的指令(紧急停止
9、,事件是由操作员的指令(紧急停止,移动移动x x轴等)或是机床的状态(如刀具破损等)引起的。实际轴等)或是机床的状态(如刀具破损等)引起的。实际上,需要满足时间约束的情况主要是和系统安全(如对突发事上,需要满足时间约束的情况主要是和系统安全(如对突发事件的反应等)以及切削精度(更高的精度影响插补周期)有关,件的反应等)以及切削精度(更高的精度影响插补周期)有关,因此数控系统具有硬实时任务。硬实时任务指必须满足最后期因此数控系统具有硬实时任务。硬实时任务指必须满足最后期限的限制,否则会给系统带来不希望的破坏或者致命的错误。限的限制,否则会给系统带来不希望的破坏或者致命的错误。l性能高需要进行许多
10、复杂的运算性能高需要进行许多复杂的运算l可靠性可靠性要高,在加工过程中不出现问题,至少一个月可靠性可靠性要高,在加工过程中不出现问题,至少一个月之内不能死机,出现故障,之内不能死机,出现故障,l安全程度高安全程度高非功能需求QOS12l如果已有的系统系统实现了相似的功能如果已有的系统系统实现了相似的功能,重用该结构是个很好的选重用该结构是个很好的选择择l如果这是个全新的项目如果这是个全新的项目,考虑这些功能是否能用一个处理器实现考虑这些功能是否能用一个处理器实现.单个处理器最容易实现和调试的单个处理器最容易实现和调试的 l如果该应用需要用多个处理器如果该应用需要用多个处理器,最好选用能够满足需
11、求的最少处理最好选用能够满足需求的最少处理器实现器实现l在多处理器设计中在多处理器设计中,把控制和管理用一个处理器实现把控制和管理用一个处理器实现,这样简化了这样简化了操作操作.系统中其他处理器处理系统中的工作负载系统中其他处理器处理系统中的工作负载.l按照这种方式设计的多处理器系统按照这种方式设计的多处理器系统,可以从一个小的系统扩充为一可以从一个小的系统扩充为一个大的系统个大的系统,通过增加处理器通过增加处理器.因此客户可以从简单的处理器入手因此客户可以从简单的处理器入手,随着系统负载的增加而增加随着系统负载的增加而增加需求分析识别处理器13l平台的特殊需求平台的特殊需求(该平台是否需要实
12、时操作系统的支持该平台是否需要实时操作系统的支持)l对该硬件和软件平台的使用情况对该硬件和软件平台的使用情况?l支持该硬件和软件平台公司的财务状况如何支持该硬件和软件平台公司的财务状况如何?(?(当然不能选择不能提供当然不能选择不能提供硬件硬件/软件平台支持的公司的产品软件平台支持的公司的产品 l提供该平台公司的发展目标是什么提供该平台公司的发展目标是什么?(?(当然不希望选择的平台没有一个当然不希望选择的平台没有一个清晰的升级途径清晰的升级途径)l该平台是否有合适的开发工具该平台是否有合适的开发工具 l可以使用该平台开发的开发人员有多少可以使用该平台开发的开发人员有多少?对开发人员培训的费用
13、是多少对开发人员培训的费用是多少 l预留性能预留性能 (例如例如,不能选用一个不能选用一个CPUCPU资源使用资源使用 80%,80%,预留未来预留未来 增加的空增加的空间间 l该平台需要完善吗该平台需要完善吗?一个良好的平台比一个需要完善的平台要便宜得多一个良好的平台比一个需要完善的平台要便宜得多 l平台的设备驱动程序平台的设备驱动程序 (是否能够提供用户开发的设备驱动程序是否能够提供用户开发的设备驱动程序)l平台支持那些通讯协议平台支持那些通讯协议(如如.平台平台是否支持平台平台是否支持 TCP/IP,HTTP,UDPTCP/IP,HTTP,UDP等等)挑选操作系统和硬件15l现在可用的数
14、控系统有单个现在可用的数控系统有单个CPU,CPU,两个两个CPU,CPU,三个三个CPUCPUl高档数控一般采用两个高档数控一般采用两个CPUCPU实现,更有甚者采用三个实现,更有甚者采用三个CPUCPU,我们这个项目为中低档数控,单个处理器可以实,我们这个项目为中低档数控,单个处理器可以实现现lArm7Arm7的性能满足系统的需要,同时由于需要的性能满足系统的需要,同时由于需要IOIO的实现,的实现,以及伺服电机的控制,所以采用以及伺服电机的控制,所以采用ARM7+FPGAARM7+FPGA的结构的结构 。lARMARM芯片价格低廉。芯片价格低廉。选择处理器数控系统处理器16操作系统平台的
15、选取l通用操作系统通用操作系统l(window(window unix/linuxunix/linux)本质上是不可预测的,导致实时处理的本质上是不可预测的,导致实时处理的不可靠性(即使是相对较慢,计算简单的任务)。通用系统都不可靠性(即使是相对较慢,计算简单的任务)。通用系统都是多任务系统,意味着它们允许计算机同时运行几个进程。它是多任务系统,意味着它们允许计算机同时运行几个进程。它们通过分时技术允许多个任务并发,在所有活动任务间分配资们通过分时技术允许多个任务并发,在所有活动任务间分配资源。分时的一个直接后果是实时精度不能保证,源。分时的一个直接后果是实时精度不能保证,l很多时候,程序员使
16、用软件中断满足任务的最后期限,这就是很多时候,程序员使用软件中断满足任务的最后期限,这就是强迫操作系统在一个给定的时间响应中断并提供服务,然而由强迫操作系统在一个给定的时间响应中断并提供服务,然而由于中断的分辨率很低(如于中断的分辨率很低(如linuxlinux是是100hz100hz),这个方法只在任务),这个方法只在任务实时性较低的情况下使用(也就是说任务的速率比中断的速率实时性较低的情况下使用(也就是说任务的速率比中断的速率还要低)。还有就是对操作系统底层的修改,如提高中断频率,还要低)。还有就是对操作系统底层的修改,如提高中断频率,改变任务的优先级等方法可以提高一些操作系统的实时精度,
17、改变任务的优先级等方法可以提高一些操作系统的实时精度,但是这样的改变对操作系统的性能有一定的损坏。但是这样的改变对操作系统的性能有一定的损坏。17l实时操作系统实时操作系统l专用实时系统专用实时系统VxWorksVxWorks ,Window CE QNX Window CE QNX,REAL/IXREAL/IX等。等。RTOSRTOS费用很高,费用很高,l开放源码的实时系统开放源码的实时系统 rtairtai,rtlinuxrtlinux ucosucoslDOSDOS,许多控制系统包括数控系统仍然使用,许多控制系统包括数控系统仍然使用DOSDOS。DOSDOS之所以能之所以能够保证系统的实
18、时性,只是因为它不是多任务系统够保证系统的实时性,只是因为它不是多任务系统它每次它每次只执行一个任务。只执行一个任务。DOSDOS只专注于一个任务,这样可以保证任务只专注于一个任务,这样可以保证任务的实时性。的实时性。操作系统平台的选取18 ucosIIucosII的理由的理由lucosIIucosII是个实时多任务操作系统是个实时多任务操作系统l是个开放源码降低开发费用,如果选择专业操是个开放源码降低开发费用,如果选择专业操作系统,费用高作系统,费用高l有强有力的支持(这一点是选择这个系统很重要的有强有力的支持(这一点是选择这个系统很重要的原因)原因)操作系统平台的选取19数控系统设计l数控
19、系统设计与开发数控系统设计与开发l定义系统总体结构定义系统总体结构l定义软件总体结构定义软件总体结构l软硬件协同设计软硬件协同设计l定义软件模块定义软件模块l任务设计任务设计20数控系统设计定义系统结构l数控系统总体结构数控系统总体结构l采用处理器设计模式采用处理器设计模式l系统采用单一处理器结构系统采用单一处理器结构ARMARMl系统系统ARM+FPGAARM+FPGA实现整个硬件系统实现整个硬件系统21数控系统设计定义软件总体结构l数控系统软件总体结构数控系统软件总体结构l软件采用任务设计模式和功能协调模式相软件采用任务设计模式和功能协调模式相结合的软件结构结合的软件结构l任务内部采用有限
20、状态机的设计模式任务内部采用有限状态机的设计模式22数控系统设计软硬件协同设计l软硬件协同设计软硬件协同设计l一旦软件结构确定了,硬件和软件工作组在一一旦软件结构确定了,硬件和软件工作组在一起工作确定软件和相关的功能。起工作确定软件和相关的功能。l这个过程是指软件和硬件工作组一起工作定义这个过程是指软件和硬件工作组一起工作定义最终系统结构最终系统结构.这是一个迭代的过程,系统结这是一个迭代的过程,系统结构的改变有时会改变软件和硬件的结构构的改变有时会改变软件和硬件的结构.23数控系统设计定义软件模块l定义软件模块定义软件模块l确定系统需要支持的所有功能确定系统需要支持的所有功能.l基于实现的工
21、作类型分组基于实现的工作类型分组.把执行同一功能的把执行同一功能的模块归为一个任务模块归为一个任务.例如人机界面,译码,插例如人机界面,译码,插补,伺服等补,伺服等.24数控系统设计数控系统任务模块l数控系统任务模块数控系统任务模块l人机界面显示,操作,控制功能人机界面显示,操作,控制功能l译码模块把数控代码翻译成可识别的结构译码模块把数控代码翻译成可识别的结构l插补模块把数据点细化插补模块把数据点细化l伺服模块生成脉冲指令控制电机伺服模块生成脉冲指令控制电机l总控模块协调各个模块之间的关系总控模块协调各个模块之间的关系l逻辑模块处理逻辑模块处理IOIO口口25数控系统设计数控系统任务模块OS
22、TaskCreate(Frame_Task,(void*)0,(OS_STK*)&Frame_Task_StackSTACKSIZE-1,CNC_Frame_Task_Pri);/1OSTaskCreate(Interp_Task,(void*)0,(OS_STK*)&Interp_Task_StackSTACKSIZE-1,CNC_Interp_Task_Pri);/1OSTaskCreate(Decode_Task,(void*)0,(OS_STK*)&Decode_Task_StackSTACKSIZE-1,CNC_Decode_Task_Pri);/1OSTaskCreate(Disp
23、lay_Task,(void*)0,(OS_STK*)&Display_Task_StackSTACKSIZE-1,CNC_Display_Task_Pri);/1OSTaskCreate(Logic_Task,(void*)0,(OS_STK*)&Logic_Task_StackSTACKSIZE-1,CNC_Logic_Task_Pri);/126数控系统设计任务设计l数控系统任务设计指南l不要引入很多状态使设计复杂化不要引入很多状态使设计复杂化.l不要使用太少的状态使设计复杂化不要使用太少的状态使设计复杂化.l使数据结构定义简单使数据结构定义简单.l处理存储越界的情况处理存储越界的情况.
24、l考虑所有定义的场景考虑所有定义的场景.l确保所有分配的资源在结束时释放确保所有分配的资源在结束时释放.l考虑使用层次状态机简化状态机设计考虑使用层次状态机简化状态机设计.27数控系统设计任务设计l选择任务类型选择任务类型l单个状态机单个状态机l多个任务多个任务l选择状态机选择状态机l简单状态机简单状态机28数控系统设计任务设计l分配优先级,由于采用分配优先级,由于采用ucosucos操作系统,操作系统采操作系统,操作系统采用基于优先权可抢占的调度方式用基于优先权可抢占的调度方式l采用静态固定分配,优先级与周期成反比,周期采用静态固定分配,优先级与周期成反比,周期越短优先级越高。非周期性任务则
25、按照重要性分越短优先级越高。非周期性任务则按照重要性分配,重要性越高优先级越高配,重要性越高优先级越高l系统的优先级分配情况如下:伺服最高,插补次系统的优先级分配情况如下:伺服最高,插补次之,逻辑处理次之,译码次之,人机界面最低之,逻辑处理次之,译码次之,人机界面最低 29数控系统设计任务之间通讯l任务间通讯任务间通讯lucosucos-II-II提供邮箱,消息队列,全局变量,共享提供邮箱,消息队列,全局变量,共享内存的方式提供任务间通讯内存的方式提供任务间通讯 l各种通讯方式的比较各种通讯方式的比较l邮箱邮箱l消息队列消息队列l全局变量全局变量l共享内存共享内存l共享内存是最快的通讯方式共享
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 实例 开发