一种基于μC/OS-Ⅱ的高速通信方法技术

技术编号:4292361 阅读:277 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于μC/OS-II的高速通信方法,所述μC/OS-II内核管理二个任务,即通信任务和空闲任务,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且所述的通信中断服务步骤由外部硬件触发。本发明专利技术解决了通信中帧数据不完整,通信可靠性达不到要求的问题,从而很容易地在8051内核上实现基于μC/OS-II的高速通信。

【技术实现步骤摘要】

本专利技术涉及一种基于y c/os-n的高速通信方法。
技术介绍
在基于8051内核的嵌入式应用系统中,使用RTOS(Real Time OperationSystem, 实时操作系统)的主要目的是为了提高系统的可靠性,其次是提高开发效率、縮短开发周期。yc/os-n是一个占先式实时多任务内核,代码具有可移植、可固化、可裁剪等特点,对源代码适当裁减,很容易移植到8 32位不同框架的微处理器上。由于串口通信是嵌入式 测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设,因 此在C/OS-II上实现高速通信具有现实意义。 基于RTOS的高速通信编程实现,在高工作频率的系统中不存在问题,但由于8051 内核指令执行周期比较长,系统要通过EMC测试问题,系统CPU时钟工作频率不能太高,因 此用传统的编程方式在8051内核上实现基于P C/OS-II的高速通信有一定问题主要由于 C/OS-II中内核多任务切换和临界段代码、数据保护时要开关中断使能(这是所有RTOS 必须的),在系统高速通信时可能会丢失数据,导致通信中帧数据接收不完整,通信可靠性 达不到要求。
技术实现思路
为了克服上述现有问题存在的不足,本专利技术旨在提供一种基于P C/OS-II的高速 通信方法,以解决上述通信中帧数据接收不完整,通信可靠性达不到要求的问题,从而很容 易地在8051内核上实现基于y C/OS-II的高速通信。 本专利技术所述的一种基于y C/OS-II的高速通信方法,包括下列步骤一种基于 y C/OS-II的高速通信方法,所述y C/OS-II内核管理二个任务,即通信任务和空闲任务, 其特征在于,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且 所述的通信中断服务步骤由外部硬件触发,其中 通信任务执行步骤包括等待步骤、发送允许标志判断步骤、通信完成信号量判断 步骤和返回步骤,其中 等待步骤,即接收缓冲区指针清零,置发送允许标志,等待应答帧数据,并设定超 时时间,通信任务把CPU控制权交给操作系统,使自己挂起; 发送允许标志判断步骤,即C/OS-II内核把任务切换到所述的空闲任务,在所 述空闲任务中判断发送允许标志,若允许发送,则发送请求帧数据,清除所述的发送允许标 志,并把CPU工作模式置为空闲模式,使CPU进入睡眠状态;若不允许发送,则直接把CPU工作模式置为空闲模式,使CPU进入睡眠状态; 通信完成信号量判断步骤,即通信任务重新获得CPU控制权后,判断是否收到通 信完成信号量,若收到通信完成信号量,则进行数据校验,若数据校验正确,则进行通信数 据处理;若数据校验不正确,则做错误处理;若没有收到通信完成信号量,即通信任务重新获得CPU控制权是由等待时间超过所设定的超时时间引起的,做超时处理; 返回步骤,即重新开始下一个通信任务,即返回到所述的等待步骤; 通信中断服务步骤包括接收缓冲区指针累加步骤和接收缓冲区数据长度判断步骤,其中 接收缓冲区指针累加步骤,即将收到的应答帧数据放到所述的接收缓冲区,且所 述接收缓冲区指针加一; 接收缓冲区数据长度判断步骤,即判断所述接收缓冲区数据长度是否达到预定 值若是,则触发外部0中断,即直接进入外部O中断服务步骤;若否,则iiC/OS-II内核切 换任务,即返回到所述通信任务执行步骤中的发送允许标志判断步骤; 外部0中断服务步骤,即通信完成信号量发送步骤,即发送通信完成信号量到所 述yC/OS-II内核,中断返回,PC/OS-II内核把任务切换到所述的通信任务,即返回到所 述通信任务执行步骤中的通信完成信号量判断步骤。 在上述的基于y C/OS-II的高速通信方法中,所述的通信中断服务步骤为非屏蔽 中断步骤,即在进行通信中断服务步骤时,不受所述P C/OS-II内核管理。 由于采用了上述的技术解决方案,本专利技术中把发送请求帧数据的功能移到空闲任 务,这样发送好请求帧数据后,通信接收中断服务子程序,即通信中断服务步骤,马上就能 响应接收帧数据,不会造成数据丢失;(因为,如果由通信任务自己先发送请求帧数据,再 等待通信完成信号量,S卩P C/OS-II内核进行等待通信完成信号量内核服务函数处理时, 可能已经发生了数据通信,由于此时内核可能还未打开中断使能,将导致通信数据丢失); 且通信中断服务步骤为非屏蔽中断,不受P C/OS-II内核管理,从而解决了每次进入通信 中断服务子程序时,由于P C/OS-II内核判断是否需要进行任务切换而导致执行时间过 长,丢失数据的问题。另外,通过增加外部O中断服务子程序,S卩外部O中断服务步骤,即在 通信中断服务子程序中收到完整应答帧数据后,触发一次模拟中断——外部O中断(受 C/OS-II内核管理),在外部O中断服务子程序中发送通信完成信号量(即收到应答帧数 据信号量),这样既解决了通信的响应速度,提高了通信的实时性、可靠性,又能得到PC/ OS-II内核服务功能,提高了整个基于8051内核的嵌入式应用系统的可靠性。具体实施例方式本专利技术,即一种基于y C/OS-II的高速通信方法,所述P C/OS-II内核管理二个任 务,即通信任务和空闲任务,其特征在于,该方法包括通信任务执行步骤、通信中断服务步 骤和外部0中断服务步骤,且所述的通信中断服务步骤为非屏蔽中断步骤,即在进行通信 中断服务步骤时,不受所述P c/os-n内核管理,而是由外部硬件触发,即当接收到由外部硬件发送的数据信号时触发,其中 通信任务执行步骤包括等待步骤、发送允许标志判断步骤、通信完成信号量判断 步骤和返回步骤,其中 等待步骤,即接收缓冲区指针清零,置发送允许标志,等待应答帧数据,并设定超 时时间,通信任务把CPU控制权交给操作系统,使自己挂起; 发送允许标志判断步骤,即y C/OS-II内核把任务切换到所述的空闲任务,在所 述空闲任务中判断发送允许标志,若允许发送,则发送请求帧数据,清除所述的发送允许标4志,并把CPU工作模式置为空闲模式,使CPU进入睡眠状态;若不允许发送,则直接把CPU工作模式置为空闲模式,使CPU进入睡眠状态; 通信完成信号量判断步骤,即通信任务重新获得CPU控制权后,判断是否收到通信完成信号量,若收到通信完成信号量,则进行数据校验,若数据校验正确,则进行通信数据处理;若数据校验不正确,则做错误处理;若没有收到通信完成信号量,即通信任务重新获得CPU控制权是由等待时间超过所设定的超时时间引起的,做超时处理; 返回步骤,即重新开始下一个通信任务,即返回到所述的等待步骤; 通信中断服务步骤包括接收缓冲区指针累加步骤和接收缓冲区数据长度判断步骤,其中 接收缓冲区指针累加步骤,即将收到的应答帧数据放到所述的接收缓冲区,且所 述接收缓冲区指针加一; 接收缓冲区数据长度判断步骤,即判断所述接收缓冲区数据长度是否达到预定 值若是,则触发外部O中断,即直接进入外部O中断服务步骤;若否,则yC/OS-II内核切 换任务,即返回到所述通信任务执行步骤中的发送允许标志判断步骤; 外部0中断服务步骤,即通信完成信号量发送步骤,即发送通信完成信号量到所 述yC/OS-II内核,中断返回,PC/OS-II内核把任务切换到所述的通信任务,即返回到所 述通本文档来自技高网...

【技术保护点】
一种基于μC/OS-Ⅱ的高速通信方法,所述μC/OS-Ⅱ内核管理二个任务,即通信任务和空闲任务,其特征在于,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且所述的通信中断服务步骤由外部硬件触发,其中:通信任务执行步骤包括等待步骤、发送允许标志判断步骤、通信完成信号量判断步骤和返回步骤,其中:等待步骤,即接收缓冲区指针清零,置发送允许标志,等待应答帧数据,并设定超时时间,通信任务把CPU控制权交给操作系统,使自己挂起;发送允许标志判断步骤,即μC/OS-Ⅱ内核把任务切换到所述的空闲任务,在所述空闲任务中判断发送允许标志,若允许发送,则发送请求帧数据,清除所述的发送允许标志,并把CPU工作模式置为空闲模式,使CPU进入睡眠状态;若不允许发送,则直接把CPU工作模式置为空闲模式,使CPU进入睡眠状态;通信完成信号量判断步骤,即通信任务重新获得CPU控制权后,判断是否收到通信完成信号量,若收到通信完成信号量,则进行数据校验,若数据校验正确,则进行通信数据处理;若数据校验不正确,则做错误处理;若没有收到通信完成信号量,即通信任务重新获得CPU控制权是由等待时间超过所设定的超时时间引起的,做超时处理;返回步骤,即重新开始下一个通信任务,即返回到所述的等待步骤;通信中断服务步骤包括接收缓冲区指针累加步骤和接收缓冲区数据长度判断步骤,其中:接收缓冲区指针累加步骤,即将收到的应答帧数据放到所述的接收缓冲区,且所述接收缓冲区指针加一;接收缓冲区数据长度判断步骤,即判断所述接收缓冲区数据长度是否达到预定值:若是,则触发外部0中断,即直接进入外部0中断服务步骤;若否,则μC/OS-Ⅱ内核切换任务,即返回到所述通信任务执行步骤中的发送允许标志判断步骤;外部0中断服务步骤,即通信完成信号量发送步骤,即发送通信完成信号量到所述μC/OS-Ⅱ内核,中断返回,μC/OS-Ⅱ内核把任务切换到所述的通信任务,即返回到所述通信任务执行步骤中的通信完成信号量判断步骤。...

【技术特征摘要】
一种基于μC/OS-II的高速通信方法,所述μC/OS-II内核管理二个任务,即通信任务和空闲任务,其特征在于,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且所述的通信中断服务步骤由外部硬件触发,其中通信任务执行步骤包括等待步骤、发送允许标志判断步骤、通信完成信号量判断步骤和返回步骤,其中等待步骤,即接收缓冲区指针清零,置发送允许标志,等待应答帧数据,并设定超时时间,通信任务把CPU控制权交给操作系统,使自己挂起;发送允许标志判断步骤,即μC/OS-II内核把任务切换到所述的空闲任务,在所述空闲任务中判断发送允许标志,若允许发送,则发送请求帧数据,清除所述的发送允许标志,并把CPU工作模式置为空闲模式,使CPU进入睡眠状态;若不允许发送,则直接把CPU工作模式置为空闲模式,使CPU进入睡眠状态;通信完成信号量判断步骤,即通信任务重新获得CPU控制权后,判断是否收到通信完成信号量,若收到通信完成信号量,则进行数据校验,若数据校验正确,则进行通信数据处理;若数据校验不正确,则做错误处理;若没有收到通...

【专利技术属性】
技术研发人员:郑陆君赵海燕
申请(专利权)人:上海贝岭股份有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1