版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[32]:中断关联性:与中断服务程序(ISR)相关的任务需要安排更高的优先级。紧迫性:需要在规定时间内完成的任务具有很强的时间关联性,这类任务的紧迫性高。这类任务的优先级根据任务的紧迫程度来安排,越紧迫的任务其优先级也要越高,通常而言,紧迫性高的任务也具有中断关联性。关键性:关键性越高的任务会有更高优先级,保证关键性更高的任务能够执行。频繁性:周期越短的任务频繁性更高,其优先级也要更高,保证任务及时执行。快捷性:在前面任务类型相近的情况下,为缩短任务延时时间,快捷性跟高的任务会有更高优先级。传递性:信息前端任务的优先级比后端任务的优先级要更高,以此保证信息能够及时更新。2.6.2应用程序设计完成底层硬件驱动的编写、文件系统移植、FreeRTOS操作系统移植等准备工作后,先对其进行测试,能够正常运行后就可以开始编写系统的主体应用程序了。根据上文所述先对激光测距系统进行功能划分,激光测距系统需要实现的主要功能有:激光测距传感器的数据接收功能、处理数据功能、显示数据功能、保存数据功能以及按键处理功能等。根据这些功能可以划分成6个任务和2个中断。4个任务分别是:串口接收任务、串口发送任务、处理数据任务、显示界面任务、文件操作任务和按键操作任务;2个中断分别是串口收发触发的中断和按键扫描定时中断。根据上文按照任务类型的原则分析任务特性:串口间任务中断关联性高,且串口任务的紧迫性和关键性也要更高,其中,串口接收任务的传递性高于串口发送任务;其次数据处理任务、显示界面任务和按键操作任务的关键性、紧迫性相近,但由于数据处理任务需要有更高的快捷性,且数据计算量适中,其优先级可放在显示界面任务和按键操作任务之前。如此用户任务的优先级设置如REF_Ref71921776图4-22所示:表4-SEQ表4_-\*ARABIC9优先级设置任务优先级串口接收任务4串口发送任务6数据处理任务8显示界面任务10按键操作任务12文件操作任务14激光测距系统的用户任务应用程序设计图如REF_Ref71921930图4-23所示:图4-SEQ图4_-\*ARABIC23用户应用程序设计2.6.3设计全局变量通过使用全局变量的方式进行数据传递以达到数据共享的功能是实现数据“同步“的一种很便捷的手段,尤其是在裸机状态下。全局变量存在于整个文件中,任何一个C文件或者函数都可以轻易调用全局变量进行读写的操作。本激光测距系统中串口接收任务、串口发送任务、处理数据任务、显示界面任务、文件操作任务和按键操作任务都使用了全局变量进行数据共享。2.6.4任务间的通信任务间可以通过上小节使用全局变量进行“同步“数据的方式进行通信,然而,使用全局变量不可避免会带来许多缺点,比如影响了函数的封装性、降低代码的移植性、降低代码的可读性等等,在FreeRTOS操作系统实现任务间的通信的方式可以有信号量、消息队列、事件标志组和任务通知,以此降低过多使用全局变量带来的不良影响。在本激光测距系统的设计中,除了使用全局变量外,还使用信号量和消息队列进行通信。其中消息队列主要用于传递数据,进行数据间的通信;信号量用于实现任务和任务之间以及任务和中断之间的同步,本激光测距系统采用二值信号量实现同步功能。二值信号量可以看成布尔类型值,无论信息的值为多少,队列无消息为0,否则为1。二值信号用作同步功能时,信号量创建后无消息,任务获取信号量0进入阻塞态,只有在释放了信号量之后,任务才能够获取到信号量1进入就绪态,以此达到任务和任务、任务和中断间的同步。信号量释放的方式可以通过任务或者中断触发。串口接收任务:等待串口中断产生的二值信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后从激光传感器的串口获取测距数据,同步到全局变量中,然后释放二值信号量给数据处理任务通知进行数据处理;串口发送任务:等待按键操作任务产生的二值信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后向激光传感器的串口发送命令指令;数据处理任务:等待串口接收任务产生的二值信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后从全局变量中获取数据并处理,处理完数据后将数据同步到全局变量中,并释放二值信号量给界面显示任务通知更新屏幕;界面显示任务:等待数据处理任务、按键操作任务、文件操作任务产生的二值信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后更新屏幕;按键操作任务:等待按键中断产生的信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后从全局变量中获取按键的状态,然后将对应按键状态的键值通过消息队列发送数据给其它任务,释放二值信号量通知其它任务运行;文件操作任务:等待按键操作任务产生的信号量,没有信号量时,任务处于阻塞态,当信号量可用时,任务从阻塞态进入就绪态等待任务调度器调度,进入运行态后从全局变量中获取要保存的数据,执行相关的文件操作,然后释放信号量通知界面显示任务更新屏幕。2.6.5串口中断串口中断是CPU串口接收到数据时触发中断,当串口中断发生时释放二值信号量给串口接收任务。串口中断的流程图如REF_Ref71921978图4-24所示:图4-SEQ图4_-\*ARABIC24串口中断流程图
2.6.6按键中断按键中断是定时器中断,每20ms扫描按键的状态,通过前文所述的有限状态机的方法去判断按键按下的状态,并将对应的键值同步到全局变量里,并释放二值信号量给按键操作任务。按键中断的流程图如REF_Ref71922008图4-25所示:图4-SEQ图4_-\*ARABIC25按键中断流程图
2.6.7串口接收任务串口接收任务的功能是实现接收从激光测距传感器发送过来的有效数据。串口接收任务的流程图如REF_Ref71922047图4-26所示:图4-SEQ图4_-\*ARABIC26串口接收任务流程图
2.6.8串口发送任务串口发送任务的功能是通过串口发送激光测距传感器命令来控制激光测距传感器工作。串口发送任务的流程图如REF_Ref71922081图4-27所示:图4-SEQ图4_-\*ARABIC27串口发送任务流程图
2.6.9处理数据任务处理数据任务的功能是实现对激光测距传感器的数据进行解析,并根据选择的功能进行相应的数据处理。处理数据任务的流程图如REF_Ref71922120图4-28所示:图4-SEQ图4_-\*ARABIC28处理数据任务流程图2.6.10显示界面任务显示界面任务的功能主要是显示测量结果以及人机交互动作,比如按键操作和文件操作所带来的界面迁移等。显示界面任务的流程图如REF_Ref71922156图4-29所示:图4-SEQ图4_-\*ARABIC29界面显示任务流程图
2.6.11按键操作任务按键操作任务的功能主要是完成功能选择、参数设置等操作。按键操作任务的流程图如REF_Ref71922189图4-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 增强用户体验满意度保证承诺书(5篇)
- 智能化厨房设备安装调试操作手册
- 轻轨地下施工方案(3篇)
- 立面石材施工方案(3篇)
- PE桶施工方案(3篇)
- 井接头施工方案(3篇)
- 2026校招:陕西有色笔试题及答案
- 护理小讲课课件制作中的模板选择技巧
- 2026校招:山西云时代技术公司面试题及答案
- 网络工程师网络安全团队负责人绩效评定表
- 安全环保检查表(样表)
- 雨课堂学堂在线学堂云商务英语翻译(Business English Translation Interpretation)西北工业大学单元测试考核答案
- 2025年甘肃省平凉市崆峒区上杨回族乡新庄湾村招聘行政村村文书备考题库及答案详解(全优)
- 地调局考试试题及答案
- 医院无菌技术操作规范
- 自动化生产线安装调试规范标准
- 2025年市市直事业单位招聘考试《公共基础知识》(主观题)试题及答案解析
- 历年中小学校长招聘考试真题及答案
- 2025中国南水北调集团新能源投资有限公司第二批社会招聘笔试历年参考题库附带答案详解
- 电动葫芦事故案例培训
- 2025年茅台知识智慧门店考试内容
评论
0/150
提交评论