基于μc-os―ii与modbusrtu协议密集架控制软件设计

基于μc-os―ii与modbusrtu协议密集架控制软件设计

ID:31777432

大小:59.15 KB

页数:9页

时间:2019-01-18

基于μc-os―ii与modbusrtu协议密集架控制软件设计_第1页
基于μc-os―ii与modbusrtu协议密集架控制软件设计_第2页
基于μc-os―ii与modbusrtu协议密集架控制软件设计_第3页
基于μc-os―ii与modbusrtu协议密集架控制软件设计_第4页
基于μc-os―ii与modbusrtu协议密集架控制软件设计_第5页
资源描述:

《基于μc-os―ii与modbusrtu协议密集架控制软件设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于uC/OS-II与ModbusRTU协议密集架控制软件设计摘要:本文提出了基于uC/OS-II和ModbusRTU协议的密集架控制软件在Stm32F103R8T6平台上的设计方法。重点阐述了uCOS-II操作系统的移植、ModbusRTU通信协议的实现方式和主要的应用程序开发。关键词:Stm32;ModbusRTU;uCOS-II移植密集架是自动化仓储领域具有代表性的一类系统。它由一个固定列和多个移动列组成,通常架体之间紧密排列,不预留任何通道;工作时通过PC机或固定列的人机交互界面打开指定的存取通道。这种“常态闭合,用时打开"的特点,使得密集架系统能够节省很大的仓储空间,同

2、时具备较高的安全性。密集架系统的核心是控制软件及通信协议。由于系统中移动列数目的不确定,使得固定列和移动列之间的通信复杂度大幅提升,传统的基于中断响应、前后台架构的控制软件设计方式,已经很难满足系统在可靠性、扩展性、开发效率以及模块化结构等方面的要求。引入嵌入式实时多任务操作系统和高效的通讯协议,就成为提高密集架系统整体性能的关键因素。本文提出了基于多任务实时操作系统pCOS-II和ModbusRTU协议的密集架控制软件的设计方法。软件采用基于ModBusRTU协议的“主从式”通信架构,并利用操作系统特性,将功能模块划分为多个任务,由系统调度执行。经过实验测试,这种设计方法大大提

3、升了密集架系统的稳定性及程序的开发效率。1密集架系统工作原理密集架系统通常由一个固定列和若干个移动列组成,固定列和移动列由嵌入式控制器控制,其结构如图1所示。在密集架系统中,固定列作为核心,主要完成以下任务:⑴与PC上位机通信,处理下发的控制指令并反馈系统运行状态和传感器信息;⑵与本列的人机交互单元通信,处理下发的控制指令并反馈系统运行状态和传感器信息;⑶与所有的移动列通信,实时查询各个移动列状态并下发控制指令。移动列作为实际运行的机构,需要处理以下任务:⑴与本列的人机交互单元通信,接收控制指令并反馈运行状态;⑵处理固定列下发的查询指令和控制指令;执行相应控制动作,反馈运行状态和

4、传感器信息。由此可以看出,密集架系统控制软件的核心,在于确保固定列和移动列通信稳定的基础上,协调好来自上位机、人机交互单元和各个嵌入式控制器的控制指令和任务,保证系统能够及时高效的响应控制动作。基于此,在密集架控制软件的设计上,论文采用具有很强的实时性、较为完备的任务调度功能及稳定的通信管理机制的11C0S-II实时操作系统;并基于ModbusRTU协议构建了软件的通信框架。2uCOS-II操作系统移植本文移植uCOS-II实时操作系统针对的是基于STM32F103R8T6ARM芯片的硬件平台,需要完成与CPU相关和硬件相关的内容的修改。2.1移植CPU相关内容和CPU相关内容的

5、移植,主要是利用CPU的定时器给操作系统提供时钟。11COS-II为了处理任务延时和调度等一些时间相关任务,需要由CPU的硬件定时器产生一个毫秒(ms)级的周期性中断来提供一个系统时钟。最小时钟单位就是两次中断之间的时间,称为时钟节拍(TimeTick),考虑到CPU的执行效率,本系统选择10ms的时钟节拍。Stm32F103R8T6中,uCOS-II时钟由"滴答时钟”的中断提供:voidSysTick_Handler(void)OSIntEnter();//进入中断服务函数OSTimeTick();//调用时钟节拍服务函数OSIntExit();//退出中断服务函数}2.2移植

6、硬件相关内容(1)OS_CPU.C中的OSTasklnit(),它是任务的堆栈初始化代码,在创建任务时必须成功调用这个函数,否则会导致系统崩溃。(2)OS_CPU.H中主要包含三个重要的函数定义,分别是:-OS_ENTER_CRITICAL():进入临界区函数,负责关中断及保存全局中断标志位;-OS_EXIT_CRITICAL():退出临界区函数,负责恢复全局中断标志位,和OS_ENTER_CRITICAL()函数成对使用,两个函数之间的代码称为“临界段”。进入临界保护函数时中断关闭,临界段在运行期间不受中断干扰,临界段代码执行完毕,由OS_EXIT_CRITICAL()函数解除

7、中断屏蔽;-OS_TASK_SW():任务级任务切换函数,负责完成任务的正常切换,由任务级调度器OSSched()调用。(3)OS_CPU_A.ASM是uCOS-II唯一的汇编文件,这个文件主要涉及到任务切换、启动优先级最高的任务、中断开关等函数。•uCOS-II启动多任务的函数是OSStart(),用户在调用该函数之前至少需要创建一个任务。在执行OSStart()函数时,将调用OSStartHighRdy()运行多任启动前优先级最高的任务,使得系统整个得以运转。•OSCtxSw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。