本论文是一篇关于操作系统方面论文格式,关于基于μC/OS―II和ModbusRTU协议的密集架控制软件设计相关专科毕业论文范文。免费优秀的关于操作系统及嵌入式及软件设计方面论文范文资料,适合操作系统论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要:本文提出了基于μC/OS-II和ModbusRTU协议的密集架控制软件在Stm32F103R8T6平台上的设计方法.重点阐述了μCOS-II操作系统的移植、ModbusRTU通信协议的实现方式和主要的应用程序开发.
本篇论文网址:http://www.sxsky.net/benkelunwen/06092456.html
关 键 词:Stm32;ModbusRTU;μCOS-II移植
密集架是自动化仓储领域具有代表性的一类系统.它由一个固定列和多个移动列组成,通常架体之间紧密排列,不预留任何通道;工作时通过PC机或固定列的人机交互界面打开指定的存取通道.这种“常态闭合,用时打开”的特点,使得密集架系统能够节省很大的仓储空间,同时具备较高的安全性.
密集架系统的核心是控制软件及通信协议.由于系统中移动列数目的不确定,使得固定列和移动列之间的通信复杂度大幅提升,传统的基于中断响应、前后台架构的控制软件设计方式,已经很难满足系统在可靠性、扩展性、开发效率以及模块化结构等方面的要求.引入嵌入式实时多任务操作系统和高效的通讯协议,就成为提高密集架系统整体性能的关键因素.
本文提出了基于多任务实时操作系统μCOS-II和ModbusRTU协议的密集架控制软件的设计方法.软件采用基于ModBusRTU协议的“主从式”通信架构,并利用操作系统特性,将功能模块划分为多个任务,由系统调度执行.经过实验测试,这种设计方法大大提升了密集架系统的稳定性及程序的开发效率.
1密集架系统工作原理
密集架系统通常由一个固定列和若干个移动列组成,固定列和移动列由嵌入式控制器控制,其结构如图1所示.
在密集架系统中,固定列作为核心,主要完成以下任务:
⑴与PC上位机通信,处理下发的控制指令并反馈系统运行状态和传感器信息;
⑵与本列的人机交互单元通信,处理下发的控制指令并反馈系统运行状态和传感器信息;
⑶与所有的移动列通信,实时查询各个移动列状态并下发控制指令.
移动列作为实际运行的机构,需要处理以下任务:
⑴与本列的人机交互单元通信,接收控制指令并反馈运行状态;
⑵处理固定列下发的查询指令和控制指令;执行相应控制动作,反馈运行状态和传感器信息.
有关论文范文主题研究: | 关于操作系统的论文范例 | 大学生适用: | 函授论文、研究生论文 |
---|---|---|---|
相关参考文献下载数量: | 20 | 写作解决问题: | 写作参考 |
毕业论文开题报告: | 文献综述、论文目录 | 职称论文适用: | 职称评定、职称评初级 |
所属大学生专业类别: | 写作参考 | 论文题目推荐度: | 最新题目 |
由此可以看出,密集架系统控制软件的核心,在于确保固定列和移动列通信稳定的基础上,协调好来自上位机、人机交互单元和各个嵌入式控制器的控制指令和任务,保证系统能够及时高效的响应控制动作.
基于此,在密集架控制软件的设计上,论文采用具有很强的实时性、较为完备的任务调度功能及稳定的通信管理机制的μCOS-II实时操作系统;并基于ModbusRTU协议构建了软件的通信框架.
2μCOS-II操作系统移植
本文移植μCOS-II实时操作系统针对的是基于STM32F103R8T6ARM芯片的硬件平台,需要完成与CPU相关和硬件相关的内容的修改.
2.1移植CPU相关内容
和CPU相关内容的移植,主要是利用CPU的定时器给操作系统提供时钟.
μCOS-II为了处理任务延时和调度等一些时间相关任务,需要由CPU的硬件定时器产生一个毫秒(ms)级的周期性中断来提供一个系统时钟.最小时钟单位就是两次中断之间的时间,称为时钟节拍(TimeTick),考虑到CPU的执行效率,本系统选择10ms的时钟节拍.
Stm32F103R8T6中,μCOS-II时钟由“滴答时钟”的中断提供:
voidSysTick_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唯一的汇编文件,这个文件主要涉及到任务切换、启动优先级最高的任务、中断开关等函数.
μCOS-II启动多任务的函数是OSStart(),用户在调用该函数之前至少需要创建一个任务.在执行OSStart()函数时,将调用OSStartHighRdy()运行多任启动前优先级最高的任务,使得系统整个得以运转.
OSCtxSw()是任务级的上下文切换函数,它被OS_CPU.H中的OS_TASK_SW()所调用;OSIntCtxSw()是中断级的任务切换,它被OSIntExit()调用,在μCOS-II运行完中断服务程序之后完成中断级任务调度.
OS_CPU_SR_Save()、OS_CPU_SR_Restore()分别被OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()调用,主要负责屏蔽中断和恢复中断.在移植过程中,根据用户的实际需要,可以对配置文件OS_CFG.H进行修改,从而实现μCOS-II内核的剪裁.
3基于μCOS-II和ModbusRTU协议的控制软件设计
根据密集架控制软件的设计架构,固定列控制软件所面临的数据通信处理的复杂程度远超移动列,且固定列ModbusRTU协议实现机理和移动列完全相同,主要的应用程序也涵盖了移动列应用程序的主要设计思想.因此,本文仅以固定列为样例,来介绍基于μCOS-II和ModbusRTU协议的控制软件设计.
3.1ModbusRTU协议
在密集架系统中,使用“一主多从”的ModbusRTU通信模式,其中固定列作为主设备,移动列作为拥有唯一地址的从设备.固定列和移动列之间可以进行通信,而移动列之间则不能通信.通信的具体流程为:
⑴固定列以中断方式接收本列人机交互界面和上位机发送的功能码为06的控制帧;
⑵固定列以固定时间间隔依次向各移动列发送功能码为03的查询帧;
⑶收到查询帧的移动列向固定列反馈当前状态信息,包括:本列运行状态、本列人机交互界面下发的控制指令、本列传感器信息;
⑷固定列综合系统当前状态和控制指令要求,确定控制逻辑,并向相应移动列发送功能码为06的控制帧;
⑸收到控制帧的移动列根据指令要求完成控制动作.
3.2基于μCOS-II的多任务机制设计
⑴用户任务:完成来自上位机、人机交互界面和移动列各种通信数据的综合解析工作,是控制指令得以正确实现的关键任务.
⑵RS232通信任务:负责和本列人机交互界面的通信工作,任务初始化后始终保持等待信号量状态.主芯片的串口中断实时接收触摸屏命令,当接收到完整的数据帧后,调用OSSemPost()函数发送信号量,通知RS232通信任务激活ModbusRTU协议解析任务,并根据解析出的控制指令反馈响应信息或者保存按键命令.
⑶RS485通信任务:和RS232通信任务类似,它由对应的RS485接收函数调用OSSemPost()函
关于操作系统方面论文范文参考文献,与基于μC/OS―II和ModbusRTU协议的密集架控制软件设计相关论文格式参考文献资料: