版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1嵌入式系统设计与实例开发嵌入式系统设计与实例开发基于基于3232位微处理器与实时操作系统位微处理器与实时操作系统第九讲第九讲 嵌入式系统开发实例嵌入式系统开发实例2本节提要本节提要嵌入式数控系统设计实例嵌入式数控系统设计实例ARM MP3设计实例设计实例3实时系统l反应时间反应时间l任务的反应时间是一个任务应当开始执行任务的反应时间是一个任务应当开始执行(或结束或结束)的时刻与实际的时刻与实际执行的时刻差值执行的时刻差值.(或者说或者说,一个事件的产生和响应的时间间隔一个事件的产生和响应的时间间隔)l决定反应时间的几个因素决定反应时间的几个因素l处理器、总线、内存(片上高速缓冲存储器,片下处
2、理器、总线、内存(片上高速缓冲存储器,片下RAM和和ROM)以及外围设备的时间特性以及外围设备的时间特性l操作系统的调度特性操作系统的调度特性l内核的占先特性内核的占先特性l系统的负载(也就是说同一时刻需要调度的任务的数量系统的负载(也就是说同一时刻需要调度的任务的数量)l任务转换时间。指的是处理器需要保存正在运行任务的数据的时任务转换时间。指的是处理器需要保存正在运行任务的数据的时间间(例如寄存器,堆栈和指针例如寄存器,堆栈和指针),以及将它的数据替换成新调度的,以及将它的数据替换成新调度的任务的本地数据的时间。这些因素很难在时间上保持稳定,在并任务的本地数据的时间。这些因素很难在时间上保持
3、稳定,在并发的任务调度中静态分配延时称为发的任务调度中静态分配延时称为jitter。 4实时系统l时间约束时间约束l不同的应用有不同的时间约束不同的应用有不同的时间约束,理想状态下理想状态下,实时操作系统能够满实时操作系统能够满足时间约束。然而现在还没有一个普遍的有保证的调度算法能足时间约束。然而现在还没有一个普遍的有保证的调度算法能够使所有以下这些时间约束都满足:够使所有以下这些时间约束都满足:l最后期限最后期限:一个任务必须在指定时间内完成一个任务必须在指定时间内完成,但是有时任务在但是有时任务在指定时间内完成的结果对质量并不重要指定时间内完成的结果对质量并不重要.例如例如:在缓冲区清空在
4、缓冲区清空之前,处理器必须将声卡的缓冲区填满之前,处理器必须将声卡的缓冲区填满;在另一个外围设备在另一个外围设备到达并且读那个值之前,输出端口的电压必须到达一个给定到达并且读那个值之前,输出端口的电压必须到达一个给定值。值。l零执行时间零执行时间:理想状态下理想状态下,任务的执行时间为零任务的执行时间为零.如如:测量测量,计算计算,把结果传给外围设备都发生在瞬间。把结果传给外围设备都发生在瞬间。l服务质量服务质量(QoS):在一个时间单位里任务得到在一个时间单位里任务得到“服务服务”的数的数量量.(“服务服务”通常的意义是通常的意义是“CPU时间时间”,但也可以是但也可以是“内存内存页页”,“
5、网络带宽网络带宽”或者或者“磁盘访问带宽磁盘访问带宽”。)。)5实时系统l实时系统任务分类实时系统任务分类:l周期任务在规定的时间间隔里运行周期任务在规定的时间间隔里运行l非周期任务非周期性任务非周期任务非周期性任务6嵌入式系统设计l需求分析需求分析(数控系统需求分析数控系统需求分析)l架构设计架构设计(数控系统架构分析数控系统架构分析)l详细设计详细设计(数控系统的详细设计数控系统的详细设计)l系统测试系统测试 (数控系统的测试数控系统的测试)7l数控系统是一种自动阅读输入载体上事先给定的数据,数控系统是一种自动阅读输入载体上事先给定的数据,并将其译码,从而使机床移动和加工零件的控制系统并将
6、其译码,从而使机床移动和加工零件的控制系统. .它的工作原理是通过各种输入方式,接受加工零件的它的工作原理是通过各种输入方式,接受加工零件的各种数据信息,经过译码、处理、插补,生成各坐标各种数据信息,经过译码、处理、插补,生成各坐标轴的参考位置,把各轴的参考位置送到轴控制器中,轴的参考位置,把各轴的参考位置送到轴控制器中,驱动轴的运动,使各个坐标轴能精确地运动到所要求驱动轴的运动,使各个坐标轴能精确地运动到所要求的位置。的位置。需求分析功能需求8功能需求功能需求数控系统数控系统控制装置PLC人机界面轴冷却主轴.反馈速度位置输入输出速度位置指令状态反馈开/关CNC机床M功能PLC功能机床控制器C
7、NC机床控制模型需求分析9l输入输出输入输出l输入输入/ /输出输出/ /通讯功能通讯功能l字符图形显示功能字符图形显示功能l程序编制功能程序编制功能l数据处理数据处理l插补功能插补功能l进给功能进给功能l主轴速度功能主轴速度功能l刀具功能刀具功能l补偿功能补偿功能l辅助功能辅助功能l报警报警l自诊断功能自诊断功能需求分析数控系统的功能10l非功能需求非功能需求l物理环境车间,工作环境恶劣物理环境车间,工作环境恶劣l用户一般是车间操作员,操作水平有高有低用户一般是车间操作员,操作水平有高有低l质量保证用在工业控制环境质量要求高,同时质量保证用在工业控制环境质量要求高,同时现在市场竞争激烈,如果
8、质量不好很难在市场上站现在市场竞争激烈,如果质量不好很难在市场上站住脚住脚非功能需求数控系统11lQOSQOSl数控系统响应性高,主要是对突发事件的反应(如撞刀,急数控系统响应性高,主要是对突发事件的反应(如撞刀,急停)停)l数控系统具有可确定性。因为可确定性主要是确保条件数控系统具有可确定性。因为可确定性主要是确保条件/ /事件事件出现和由此引起的动作开始出现和由此引起的动作开始/ /结束的时间在一个准确的时间间结束的时间在一个准确的时间间隔内。在隔内。在CNCCNC系统中,条件系统中,条件/ /事件是由操作员的指令(紧急停事件是由操作员的指令(紧急停止,移动止,移动x x轴等)或是机床的状
9、态(如刀具破损等)引起的。轴等)或是机床的状态(如刀具破损等)引起的。实际上,需要满足时间约束的情况主要是和系统安全(如对实际上,需要满足时间约束的情况主要是和系统安全(如对突发事件的反应等)以及切削精度(更高的精度影响插补周突发事件的反应等)以及切削精度(更高的精度影响插补周期)有关,因此数控系统具有硬实时任务。硬实时任务指必期)有关,因此数控系统具有硬实时任务。硬实时任务指必须满足最后期限的限制,否则会给系统带来不希望的破坏或须满足最后期限的限制,否则会给系统带来不希望的破坏或者致命的错误。者致命的错误。l性能高需要进行许多复杂的运算性能高需要进行许多复杂的运算l可靠性可靠性要高,在加工过
10、程中不出现问题,至少一个可靠性可靠性要高,在加工过程中不出现问题,至少一个月之内不能死机,出现故障,月之内不能死机,出现故障,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, H
14、TTP, UDP等等) )挑选操作系统和硬件14(a)(a)(b)(b)(c)(c)网络网络接口接口HMIHMI专用通道专用通道机机 床床.PLCPLC控制装置控制装置数控系统数控系统机机 床床.PLCPLC控制装置控制装置C N CC N C 单单元元PCPC机机 床床.控制软件控制软件轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服轴伺服PCPCPCPC网络网络接口接口HMIHMI网络网络接口接口HMIHMI选择处理器数控系统处理器15l现在可用的数控系统有单个现在可用的数控系统有单个CPU,CPU,两个两个CPU,CPU,三个三个CPUCPUl高档数控一般采用两个高档数
15、控一般采用两个CPUCPU实现,更有甚者采用三个实现,更有甚者采用三个CPUCPU,我们这个项目为中低档数控,单个处理器可以实,我们这个项目为中低档数控,单个处理器可以实现现lArm7Arm7的性能满足系统的需要,同时由于需要的性能满足系统的需要,同时由于需要IOIO的实现,的实现,以及伺服电机的控制,所以采用以及伺服电机的控制,所以采用ARM7+FPGAARM7+FPGA的结构的结构 。lARMARM芯片价格低廉。芯片价格低廉。选择处理器数控系统处理器16操作系统平台的选取l通用操作系统通用操作系统l(window unix/linux(window unix/linux) )本质上是不可预
16、测的,导致实时处理的本质上是不可预测的,导致实时处理的不可靠性(即使是相对较慢,计算简单的任务)。通用系统不可靠性(即使是相对较慢,计算简单的任务)。通用系统都是多任务系统,意味着它们允许计算机同时运行几个进程。都是多任务系统,意味着它们允许计算机同时运行几个进程。它们通过分时技术允许多个任务并发,在所有活动任务间分它们通过分时技术允许多个任务并发,在所有活动任务间分配资源。分时的一个直接后果是实时精度不能保证,配资源。分时的一个直接后果是实时精度不能保证,l很多时候,程序员使用软件中断满足任务的最后期限,这就很多时候,程序员使用软件中断满足任务的最后期限,这就是强迫操作系统在一个给定的时间响
17、应中断并提供服务,然是强迫操作系统在一个给定的时间响应中断并提供服务,然而由于中断的分辨率很低(如而由于中断的分辨率很低(如linuxlinux是是100hz100hz),这个方法只),这个方法只在任务实时性较低的情况下使用(也就是说任务的速率比中在任务实时性较低的情况下使用(也就是说任务的速率比中断的速率还要低)。还有就是对操作系统底层的修改,如提断的速率还要低)。还有就是对操作系统底层的修改,如提高中断频率,改变任务的优先级等方法可以提高一些操作系高中断频率,改变任务的优先级等方法可以提高一些操作系统的实时精度,但是这样的改变对操作系统的性能有一定的统的实时精度,但是这样的改变对操作系统的
18、性能有一定的损坏。损坏。17l实时操作系统实时操作系统l专用实时系统专用实时系统VxWorksVxWorks ,Window CE QNX Window CE QNX ,REAL/IXREAL/IX等。等。RTOSRTOS费用很高,费用很高,l开放源码的实时系统开放源码的实时系统 rtai ,rtlinux ucosrtai ,rtlinux ucoslDOSDOS,许多控制系统包括数控系统仍然使用,许多控制系统包括数控系统仍然使用DOSDOS。DOSDOS之所以能之所以能够保证系统的实时性,只是因为它不是多任务系统够保证系统的实时性,只是因为它不是多任务系统它每它每次只执行一个任务。次只执行
19、一个任务。DOSDOS只专注于一个任务,这样可以保证任只专注于一个任务,这样可以保证任务的实时性。务的实时性。操作系统平台的选取18 ucosII ucosII的理由的理由lucosIIucosII是个实时多任务操作系统是个实时多任务操作系统l是个开放源码降低开发费用,如果选择专业操是个开放源码降低开发费用,如果选择专业操作系统,费用高作系统,费用高l有强有力的支持(这一点是选择这个系统很重要的有强有力的支持(这一点是选择这个系统很重要的原因)原因)操作系统平台的选取19数控系统设计l数控系统设计与开发数控系统设计与开发l定义系统总体结构定义系统总体结构l定义软件总体结构定义软件总体结构l软硬
20、件协同设计软硬件协同设计l定义软件模块定义软件模块l任务设计任务设计20数控系统设计定义系统结构l数控系统总体结构数控系统总体结构l采用处理器设计模式采用处理器设计模式l系统采用单一处理器结构系统采用单一处理器结构ARMARMl系统系统ARM+FPGAARM+FPGA实现整个硬件系统实现整个硬件系统21数控系统设计定义软件总体结构l数控系统软件总体结构数控系统软件总体结构l软件采用任务设计模式和功能协调模式相软件采用任务设计模式和功能协调模式相结合的软件结构结合的软件结构l任务内部采用有限状态机的设计模式任务内部采用有限状态机的设计模式22数控系统设计软硬件协同设计l软硬件协同设计软硬件协同设
21、计l一旦软件结构确定了,硬件和软件工作组在一一旦软件结构确定了,硬件和软件工作组在一起工作确定软件和相关的功能。起工作确定软件和相关的功能。l这个过程是指软件和硬件工作组一起工作定义这个过程是指软件和硬件工作组一起工作定义最终系统结构最终系统结构. .这是一个迭代的过程,系统结这是一个迭代的过程,系统结构的改变有时会改变软件和硬件的结构构的改变有时会改变软件和硬件的结构. .23数控系统设计定义软件模块l定义软件模块定义软件模块l确定系统需要支持的所有功能确定系统需要支持的所有功能. . l基于实现的工作类型分组基于实现的工作类型分组. .把执行同一功能的把执行同一功能的模块归为一个任务模块归
22、为一个任务. .例如人机界面,译码,插例如人机界面,译码,插补,伺服等补,伺服等. . 24数控系统设计数控系统任务模块l数控系统任务模块数控系统任务模块l人机界面显示,操作,控制功能人机界面显示,操作,控制功能l译码模块把数控代码翻译成可识别的结构译码模块把数控代码翻译成可识别的结构l插补模块把数据点细化插补模块把数据点细化l伺服模块生成脉冲指令控制电机伺服模块生成脉冲指令控制电机l总控模块协调各个模块之间的关系总控模块协调各个模块之间的关系l逻辑模块处理逻辑模块处理IOIO口口25数控系统设计数控系统任务模块OSTaskCreate(Frame_Task, (void *)0, (OS_S
23、TK *)&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(Display_Task,
24、 (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
25、处理存储越界的情况处理存储越界的情况. . l考虑所有定义的场景考虑所有定义的场景. . l确保所有分配的资源在结束时释放确保所有分配的资源在结束时释放. . l考虑使用层次状态机简化状态机设计考虑使用层次状态机简化状态机设计. . 27数控系统设计任务设计l选择任务类型选择任务类型l单个状态机单个状态机l多个任务多个任务l选择状态机选择状态机l简单状态机简单状态机28数控系统设计任务设计l分配优先级,由于采用分配优先级,由于采用ucosucos操作系统,操作系统采操作系统,操作系统采用基于优先权可抢占的调度方式用基于优先权可抢占的调度方式l采用静态固定分配,优先级与周期成反比,周期采用静态固
26、定分配,优先级与周期成反比,周期越短优先级越高。非周期性任务则按照重要性分越短优先级越高。非周期性任务则按照重要性分配,重要性越高优先级越高配,重要性越高优先级越高l系统的优先级分配情况如下:伺服最高,插补次系统的优先级分配情况如下:伺服最高,插补次之,逻辑处理次之,译码次之,人机界面最低之,逻辑处理次之,译码次之,人机界面最低 29数控系统设计任务之间通讯l任务间通讯任务间通讯lucosucos-II-II提供邮箱,消息队列,全局变量,共享提供邮箱,消息队列,全局变量,共享内存的方式提供任务间通讯内存的方式提供任务间通讯 l各种通讯方式的比较各种通讯方式的比较l邮箱邮箱l消息队列消息队列l全
27、局变量全局变量l共享内存共享内存l共享内存是最快的通讯方式共享内存是最快的通讯方式30数控系统设计共享内存lOSMemCreate()创建内存()创建内存lvoid initCNCMem(void) lINT8U err;lpCNCMem=OSMemCreate(CNCMemPart, CNCMemSize, CNCblkSize, &err);lif(pCNCMem=NULL)lUart_Printf(Failed to Create CNC Message quote);lllOSMemGet()获得内存()获得内存lvoid initManual_data(void) l INT
28、8U err;lmanual_data= (MANUALDATA * )OSMemGet(pCNCMem,&err);l / end initManual_data31数控系统设计共享内存任务1任务2任务3全局变量表局部变量表局部变量表TM4TM3TM1TM232数控系统设计共享内存局部变量表数据结构全局变量表数据结构GIFitem1nameGIF_nvarGIF_sizeGIF_timeGIF_lockGIF_dirtGIF_firstGIF_lastGIFitem3GIFitem2GIFitemnnextGIF_typeGIF_tsGIF_nextGIF_spot到下一个元素gda
29、ta_spotqdata_spotldata_typeditem2ditemn.ldata_typegdata_spotditem1litemnitemVarCopyToGsizetimegptrliterm1litem2.itemPCopyToGqitemnitemVarCopyFromGitemPCopyFromG存放数据的内存区数据项nvarname33数控系统设计同步方法:方法:关中断关中断/开中断开中断l OS_ENTER_CRITICAL();l do stuffl OS_EXIT_CRITICAL();信号量信号量lvoid OSSemPend(OS_EVENT *pevent,
30、 INT16U timeout, INT8U *err);lINT8U OSSemPost(OS_EVENT *pevent);互斥量互斥量lvoid OSMutexPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);lINT8U OSMutexPost(OS_EVENT *pevent);全局变量全局变量lbool XXXflag=0lIf(xxxflag=0) if(xxxflag=1) lDo stuff; do stuff;lxxxflag=1; xxxflag=0l 34数控系统设计同步l优先级逆转优先级逆转l一般是在两个任务访问共享
31、数据时出现,为了保证数据的一一般是在两个任务访问共享数据时出现,为了保证数据的一致性,这两个访问必须串行,如果优先级高的任务首先获得致性,这两个访问必须串行,如果优先级高的任务首先获得访问权,则优先级的顺序保持一致,如果优先级低的任务首访问权,则优先级的顺序保持一致,如果优先级低的任务首先获得访问权,这时优先级高的任务请求访问,则优先级高先获得访问权,这时优先级高的任务请求访问,则优先级高的任务必须等到优先级低的任务完成访问为止的任务必须等到优先级低的任务完成访问为止l解决方法解决方法l优先级继承优先级继承l优先级上界优先级上界35数控系统设计执行时间的测量l时间测量时间测量l主要目的是测量单
32、个任务的执行时间主要目的是测量单个任务的执行时间l评估系统的整个实时性能评估系统的整个实时性能l精确的实时调度分析精确的实时调度分析l优化代码优化代码l调试时间错误调试时间错误36数控系统设计执行时间的测量l方法:方法:l秒表秒表lDateDatelTimeTimelprofprof和和gprofgprofl软件分析仪软件分析仪l定时器定时器/ /定时器时间片定时器时间片l逻辑分析仪逻辑分析仪37数控系统设计执行时间的测量方法方法分辨率分辨率精度精度粒度粒度使用难度使用难度秒表秒表0.01sec0.5sec程序程序容易容易date0.02sec0.2sec程序程序容易容易time0.02sec
33、0.2sec程序程序容易容易Prof和和gprof10msec10msec函数函数中等中等clock15-30msec15-30msec行行中等中等软件分析仪软件分析仪10usec20usec函数函数中等中等定时器定时器/时间时间片片0.5-4usec1-8usec行行难难逻辑分析仪逻辑分析仪/ICE50nsec半秒半秒行行难难38数控系统设计clocklinclude “time.h”lOS_EXT volatile INT32U OSTime; /* Current value of system time (in ticks) */INT32U start,finish;double t
34、otlastart=OSTime;Do stufffinish=OSTime;total=(double ) (finish-start)/(double) CLK_TCKUart_printf(“Total=%fn”,total”);39数控系统开发周期任务的实现ucosII的任务是个无限循环不是周期任务的任务是个无限循环不是周期任务Void task(void *prio) for(;) Do stuff 利用利用OSTimeTickHook()函数实现周期性函数()函数实现周期性函数,不过只能不过只能实现实现ticks整数倍的周期任务整数倍的周期任务40数控系统开发周期任务的实现void
35、 task(void *prio) l for(;) lOSTaskSuspend( pri);l Do stuff;l l int periodic=0; OSTimeTickHook()()periodic+;if(periodic=n) /任务周期任务周期n*ticksOSTaskResume(pri)41设计原则越简单越好l系统详细设计指南系统详细设计指南l使用查找表和指针函数而不是使用查找表和指针函数而不是if else or switch if else or switch l使用固定大小的数组使用固定大小的数组 l避免动态分配内存避免动态分配内存 l降低系统中的任务数降低系统中的
36、任务数 l避免任务互相依赖避免任务互相依赖l避免多线程设计避免多线程设计 l避免一个大的循环避免一个大的循环l对经常执行的部分进行优化对经常执行的部分进行优化 l使用状态机简化设计使用状态机简化设计 l在开始对软件进行优化在开始对软件进行优化l对时间进行测量对时间进行测量l使用时间标记,避免运行定时器使用时间标记,避免运行定时器 42设计原则越简单越好系统设计指南系统设计指南l在设计时要注意内存分析在设计时要注意内存分析l避免使用循环延时而用系统提供的延时机制避免使用循环延时而用系统提供的延时机制 l降低消息握手次数降低消息握手次数 l简化硬件结构简化硬件结构 l优先选用通用的计算平台而不是特
37、殊的平台优先选用通用的计算平台而不是特殊的平台 l不要使用具有所有权的协议和操作系统不要使用具有所有权的协议和操作系统 l优先购买硬件平台而不是设计优先购买硬件平台而不是设计 l优先考虑重用设计优先考虑重用设计 l避免使用异类的硬件和软件环境避免使用异类的硬件和软件环境 l考虑硬件升级降低软件的努力考虑硬件升级降低软件的努力 l把配置系统参数减小到最小把配置系统参数减小到最小 l“0 0或者或者1 1或者或者n”n”规则规则 43设计原则查找表lbool isServiceAllowed(TerminalType type, Service service) l bool allowed =
38、false;l if (type = PLATINUM) l if (service = VOICE | service = HIGH_SPEED_DATA | service = FAX) l allowed = true;l l else if (type = GOLD) l if (service = VOICE | service = LOW_SPEED_DATA | service = FAX) l allowed = true;l l else if (type = SILVER) l if (service = LOW_SPEED_VOICE | service = LOW_SP
39、EED_FAX) l allowed = true;l l l return allowed; l bool isServiceAllowed(TerminalType type, Service service) return (terminalServiceLookuptypeservice) 44 设计原则不使用大循环任务2任务3任务1l使用适当的并行设计方法使用适当的并行设计方法l非抢占周期或多速率执行非抢占周期或多速率执行l抢占实时操作系统抢占实时操作系统l不用中断模拟多任务不用中断模拟多任务45设计原则时间标记 bool incrementLeakyCounter() bool o
40、verflow = false; /* This counter needs to be reset if the error counter has not been incremented for a long duration. The main objective is to catch a flurry of errors leading to counter overflow */ if (currentTime - lastIncrementTime) LEAK_PERIOD) counter = 0; lastIncrementTime = currentTime; count
41、er+; if (counter OVERFLOW_THRESHOLD) overflow = true; return overflow; 46数控系统开发导致系统崩溃的问题l下面的软件问题导致软件崩溃下面的软件问题导致软件崩溃: :l无效的数组索引无效的数组索引 l没有初始化的指针操作没有初始化的指针操作 l没有授权的没有授权的bufferbuffer操作操作 l非法的栈操作非法的栈操作 l无效的处理器操作无效的处理器操作 l无限循环无限循环 47嵌入式数控系统原型样机(2003年)48l系统应力测试系统应力测试l功能干涉测试功能干涉测试l干涉负载测试干涉负载测试l应力负载测试应力负载测试
42、系统应力测试49系统测试功能干涉测试功能功能自动自动手动手动MDI回零回零自动自动测试测试11自动运行自动运行测试测试12证明自动运行情况证明自动运行情况下进入手动系统减下进入手动系统减速到零进入暂停速到零进入暂停测试测试13证明自动运行情况证明自动运行情况下进入下进入MDI系统执行系统执行完当前程序段停止完当前程序段停止测试测试14证明自动运行情况证明自动运行情况下进入回零系统减下进入回零系统减速到零进入暂停速到零进入暂停手动手动测试测试21证明手动运行情况证明手动运行情况下进入自动,进入下进入自动,进入自动方式自动方式MDI测试测试31回零回零测试测试4150l干涉测试过程l一旦定下功能测
43、试矩阵,需要从矩阵中定下详细的一旦定下功能测试矩阵,需要从矩阵中定下详细的测试过程。测试过程分为两类测试过程。测试过程分为两类: :l简单测试,只涉两个功能间的干涉简单测试,只涉两个功能间的干涉 l负载测试,涉及多个功能间的干涉测试负载测试,涉及多个功能间的干涉测试功能干涉测试51l干涉负载负载测试可以从干涉矩阵中得到干涉负载负载测试可以从干涉矩阵中得到. .基本上是就不同的功基本上是就不同的功能运行同时同一个负载。这里负载也许意味着通过脚本重复执行能运行同时同一个负载。这里负载也许意味着通过脚本重复执行操作者命令,周期性重启系统板等操作者命令,周期性重启系统板等l上面的矩阵可以是干涉负载测试
44、最好的例子上面的矩阵可以是干涉负载测试最好的例子: :l整天运行自动运行同时整天运行自动运行同时MDIMDI命令命令. . l运行手动方式下执行运行手动方式下执行MDIMDI和自动运行等和自动运行等. . 干涉负载测试52l应力负载测试指南应力负载测试指南l过载系统过载系统. . l在实际的环境中进行负载测试在实际的环境中进行负载测试.l负载测试时负载随时间不同而不同负载测试时负载随时间不同而不同. . l测试同一时间到达的负载。测试同一时间到达的负载。 l测试具有不同服务时间的负载测试具有不同服务时间的负载. . l测试负载性能测试负载性能. . 应力负载测试53l译码任务过载,插补任务过载
45、,伺服任务过载,中断译码任务过载,插补任务过载,伺服任务过载,中断过载过载l以上任一任务的过载都会引起系统向伺服电机发送脉以上任一任务的过载都会引起系统向伺服电机发送脉冲的间断,同时显示刷新太慢。冲的间断,同时显示刷新太慢。数控系统应力负载测试54本节提要本节提要嵌入式数控系统设计实例嵌入式数控系统设计实例ARM MP3设计实例设计实例55设计实例设计实例基于基于ARM7MP3Player要实现要实现MP3PlayerMP3Player主要有以下两种方法:主要有以下两种方法:1 1、MCU + USBMCU + USB接口芯片接口芯片 + + 硬件解码芯片硬件解码芯片+ + 海量存储芯片海量存
46、储芯片 + + 音频音频DAC DAC + +耳机放大器;(实现参考耳机放大器;(实现参考UP-MP3DIY2.00UP-MP3DIY2.00学习板)学习板)2 2、MCU + USBMCU + USB接口芯片接口芯片 + + 软件解码算法软件解码算法 + + 海量存储芯片海量存储芯片+ +音频音频DAC DAC + +耳机放大器;(实现参考耳机放大器;(实现参考UP-ARM MP3DIY1.00UP-ARM MP3DIY1.00学习板)学习板)前者的前者的MCUMCU可以为可以为MCS-51MCS-51系列单片机系列单片机, ,(如(如AT89C51SND1AT89C51SND1)后者为后者
47、为ARM7ARM7体系结构的微控制器。(如体系结构的微控制器。(如S3C44B0XS3C44B0X)56基于基于ARM的的MP3播放器播放器ARM微处理器SDRAMNand FlashNor Flash网卡芯片音频芯片USB芯片小键盘电源57系统硬件方案实现系统硬件方案实现 基于基于S3C44B0XS3C44B0X微处理器微处理器 + + 软件解码算法的软件解码算法的MP3PlayerMP3Player的硬件方案实现如下:的硬件方案实现如下:lS3C44B0XS3C44B0X最小系统:最小系统:CPUCPU、RAMRAM、ROMROM和电源、和电源、复位、复位、JTAGJTAG。 l扩展部分:
48、音频扩展部分:音频DACDAC、UARTUART、键盘、键盘、NAND NAND FLASHFLASH、USBUSB接口、接口、 以太网接口。以太网接口。 58实现最小系统实现最小系统1 1、S3C44B0XS3C44B0X的结构和特点:的结构和特点:S3C44B0XS3C44B0X微处理器是三星公司专为手持微处理器是三星公司专为手持设备和一般应用提供的高性价比的微控制器解决方案,它使用设备和一般应用提供的高性价比的微控制器解决方案,它使用ARM7TDMIARM7TDMI核,工作在核,工作在66MHz66MHz。 带带8KB8KB缓存的缓存的2.5V2.5V静态静态ARM7TDMI CPUAR
49、M7TDMI CPU核;核; 扩展内存控制器(扩展内存控制器(FP/FDO/SDRAMFP/FDO/SDRAM控制,片选逻辑);控制,片选逻辑); 2 2个通用个通用DMADMA通道,通道,1 1个带外部请求管脚的个带外部请求管脚的DMADMA通道;通道; 71 71个通用个通用I/OI/O口,口,8 8个外部中断资源;个外部中断资源; 带带PLLPLL的片上时钟发生器;的片上时钟发生器; 8 8个内存个内存BankBank共可以寻址共可以寻址256MB256MB存储空间;存储空间; UART UART和和IISIIS总线接口;总线接口; 59lS3C44B0XS3C44B0X丰富的内部资源,
50、使得系统硬件设计大大简化:丰富的内部资源,使得系统硬件设计大大简化:60l时钟和复位电路时钟和复位电路 系统时钟输入由系统时钟输入由6MHz6MHz的外部晶阵提供,由内部的外部晶阵提供,由内部PLLPLL电路倍频至电路倍频至66MHz66MHz,供给供给CPUCPU运行。运行。 系统复位信号由系统复位信号由IMP811TIMP811T芯片提供,并且设计了芯片提供,并且设计了RESETRESET按钮,可以在系按钮,可以在系统运行过程中随时复位操作,便于系统调试。统运行过程中随时复位操作,便于系统调试。61l系统初始配置和系统初始配置和JTAGJTAG调试接口:调试接口: 下面的电路图中的下面的电
51、路图中的8 8个电阻分别为个电阻分别为JTAGJTAG上拉电阻和系统运行模式初始配上拉电阻和系统运行模式初始配置的电阻,右边的插座为置的电阻,右边的插座为14Pin JTAG14Pin JTAG调试插座,配合仿真器可以下载调试插座,配合仿真器可以下载bootloaderbootloader代码和调试应用程序。代码和调试应用程序。62l系统总线和控制信号,系统总线和控制信号,RAMRAM的连接:的连接: 系统中所使用的系统中所使用的RAMRAM芯片芯片 与处理器的连接方式。与处理器的连接方式。 以前的以前的PC-133PC-133的计算机的计算机 内存芯片,型号为内存芯片,型号为 HY57V64
52、1620HY57V641620。 63lROMROM的连接:的连接: ARMARM处理器最小系统中的处理器最小系统中的ROMROM 芯片与处理器的连接方式。芯片与处理器的连接方式。 这里配置容量为这里配置容量为2MB2MB的的NOR NOR FLASH FLASH芯片,芯片, 型号为型号为AM29LV160AM29LV160。 64l系统供电电源:系统供电电源: 系统中所用到电压有系统中所用到电压有3 3种:种:5v5v、3.3v3.3v和和2.5v2.5v。其中。其中5v5v为系统总电源,为系统总电源,3.3v3.3v电压供给系统外设接口,电压供给系统外设接口,2.5v2.5v为处理器的内核
53、电压。为处理器的内核电压。65l最小系统配置完成:最小系统配置完成: 到此为止,到此为止,S3C44B0XS3C44B0X的最小系统已经可以运行了,这也是的最小系统已经可以运行了,这也是该该MP3MP3系统的系统的 运行的基础,我们可以在这个系统上下载到系统的运行的基础,我们可以在这个系统上下载到系统的ROMROM中,中,运行测试最小系统。运行测试最小系统。 我们在对最小系统做到成竹在心之时,后面的我们在对最小系统做到成竹在心之时,后面的MP3PlayerMP3Player的实现工作定会达到事半功倍的效果!的实现工作定会达到事半功倍的效果!66lNandNand Flash Flash存储器:存储器: NandNand Flash Flash存储器存储器 在系统中作为电子在系统中作为电子 硬盘使用,用来存硬盘使用,用来存 储储MP3MP3歌曲和应用歌曲和应用 程序。程序。67lUSBUSB通讯接口:通讯接口: USBUSB通讯接口采用飞利浦半导体公司生产的高性价比通讯接口采用飞利浦
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024个人珠宝买卖合同范本
- 2024年度版权质押合同:含版权内容、质押价值、质权实现
- 旅游推广合作合同实例
- 摄影棚居间服务合同样本
- 房屋销售合同模板手册
- 乐团合作合同范本大全
- 电子邮件服务租用协议
- 2024家教公司与兼职教师合作合同范本
- 企业房屋租赁合同范本
- 2024保密合同样书范文
- 四川省食品生产企业食品安全员理论考试题库(含答案)
- 机织服装生产中的质量控制体系建设考核试卷
- 病理学实验2024(临床 口腔)学习通超星期末考试答案章节答案2024年
- 2024年广西安全员C证考试题库及答案
- 期末测试卷(试题)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024至2030年中国手机配件产业需求预测及发展趋势前瞻报告
- 2024年小学闽教版全册英语词汇表
- 课题开题汇报(省级课题)
- 清真食品安全管理制度
- 学校心理健康教育合作协议书
- 2024江苏省沿海开发集团限公司招聘23人(高频重点提升专题训练)共500题附带答案详解
评论
0/150
提交评论