基于μC-OS―II与ModbusRTU协议密集架控制软件设计.docVIP

基于μC-OS―II与ModbusRTU协议密集架控制软件设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于μC-OS―II与ModbusRTU协议密集架控制软件设计

基于μC/OS―II与ModbusRTU协议密集架控制软件设计   摘 要:本文提出了基于μC/OS-II和ModbusRTU协议的密集架控制软件在Stm32F103R8T6平台上的设计方法。重点阐述了μCOS-II操作系统的移植、ModbusRTU通信协议的实现方式和主要的应用程序开发。 关键词:Stm32;ModbusRTU;μCOS-II移植 密集架是自动化仓储领域具有代表性的一类系统。它由一个固定列和多个移动列组成,通常架体之间紧密排列,不预留任何通道;工作时通过PC机或固定列的人机交互界面打开指定的存取通道。这种“常态闭合,用时打开”的特点,使得密集架系统能够节省很大的仓储空间,同时具备较高的安全性。 密集架系统的核心是控制软件及通信协议。由于系统中移动列数目的不确定,使得固定列和移动列之间的通信复杂度大幅提升,传统的基于中断响应、前后台架构的控制软件设计方式,已经很难满足系统在可靠性、扩展性、开发效率以及模块化结构等方面的要求。引入嵌入式实时多任务操作系统和高效的通讯协议,就成为提高密集架系统整体性能的关键因素。 本文提出了基于多任务实时操作系统μCOS-II和ModbusRTU协议的密集架控制软件的设计方法。软件采用基于ModBusRTU协议的“主从式”通信架构,并利用操作系统特性,将功能模块划分为多个任务,由系统调度执行。经过实验测试,这种设计方法大大提升了密集架系统的稳定性及程序的开发效率。 1 密集架系统工作原理 密集架系统通常由一个固定列和若干个移动列组成,固定列和移动列由嵌入式控制器控制,其结构如图1所示。 在密集架系统中,固定列作为核心,主要完成以下任务: ⑴与PC上位机通信,处理下发的控制指令并反馈系统运行状态和传感器信息; ⑵与本列的人机交互单元通信,处理下发的控制指令并反馈系统运行状态和传感器信息; ⑶与所有的移动列通信,实时查询各个移动列状态并下发控制指令。 移动列作为实际运行的机构,需要处理以下任务: ⑴与本列的人机交互单元通信,接收控制指令并反馈运行状态; ⑵处理固定列下发的查询指令和控制指令;执行相应控制动作,反馈运行状态和传感器信息。 由此可以看出,密集架系统控制软件的核心,在于确保固定列和移动列通信稳定的基础上,协调好来自上位机、人机交互单元和各个嵌入式控制器的控制指令和任务,保证系统能够及时高效的响应控制动作。 基于此,在密集架控制软件的设计上,论文采用具有很强的实时性、较为完备的任务调度功能及稳定的通信管理机制的μCOS-II实时操作系统;并基于ModbusRTU协议构建了软件的通信框架。 2 μCOS-II操作系统移植 本文移植μCOS-II实时操作系统针对的是基于STM32F103R8T6 ARM芯片的硬件平台,需要完成与CPU相关和硬件相关的内容的修改。 2.1 移植CPU相关内容 和CPU相关内容的移植,主要是利用CPU的定时器给操作系统提供时钟。 μCOS-II为了处理任务延时和调度等一些时间相关任务,需要由CPU的硬件定时器产生一个毫秒(ms)级的周期性中断来提供一个系统时钟。最小时钟单位就是两次中断之间的时间,称为时钟节拍(Time Tick),考虑到CPU的执行效率,本系统选择10ms的时钟节拍。 Stm32F103R8T6中,μCOS-II时钟由“滴答时钟”的中断提供: void SysTick_Handler(void) { OSIntEnter();//进入中断服务函数 OSTimeTick();//调用时钟节拍服务函数 OSIntExit();//退出中断服务函数 } 2.2 移植硬件相关内容 (1)OS_CPU.C中的OSTaskInit(),它是任务的堆栈初始化代码,在创建任务时必须成功调用这个函数,否则会导致系统崩溃。 (2)OS_CPU.H中主要包含三个重要的函数定义,分别是: OS_ENTER_CRITICAL():进入临界区函数,负责关中断及保存全局中断标志位; OS_EXIT_CRITICAL():退出临界区函数,负责恢复全局中断标志位,和OS_ENTER_CRITICAL()函数成对使用,两个函数之间的代码称为“临界段”。进入临界保护函数时中断关闭,临界段在运行期间不受中断干扰,临界段代码执行完毕,由OS_EXIT_CRITICAL()函数解除中断屏蔽; OS_TASK_SW():任务级任务切换函数,负责完成任务的正常切换,由任务级调度器OSSched()调用。 (3)OS_CPU_A.ASM是μCOS-II唯一的汇编文件,这个文件主要涉及

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档