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

文档序号:6597055阅读:155来源:国知局
专利名称:一种基于μC/OS-Ⅱ的高速通信方法
技术领域
本发明涉及一种基于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内核把任务切换到所述的通信任务,即返回到所 述通信任务执行步骤中的通信完成信号量判断步骤。 本发明所述的基于y C/OS-II的高速通信方法与传统的基于RTOS的高速通信方 法的区别如下,在本发明中 (1)把发送请求帧数据的功能移到空闲任务,先等待应答帧数据,并设置超时时 间,等到P C/OS-II内核切换任务到空闲任务时再发送请求帧数据。这样发送好请求帧数 据后,通信接收中断服务子程序,即通信中断服务步骤,马上就能响应接收帧数据,不会造 成数据丢失; (2)通信中断服务步骤为非屏蔽中断步骤,不受P C/OS-II内核管理,从而解决了 每次进入通信中断服务步骤时,执行时间过长,丢失数据的问题。 (3)由于在通信中断服务步骤中不能使用P C/OS-II内核提供的服务,即不能调 用P C/OS-II内核服务函数发送通信完成信号量。为了解决这个问题,本发明增加了外部 0中断服务步骤(可以用系统任何未使用的中断),来"偷换"功能,即在通信中断服务步骤 中收到完整应答帧数据后,触发一次"模拟中断"——即执行外部O中断服务步骤(该外 部O中断服务步骤受C/OS-II内核管理),在外部O中断服务步骤中发送通信完成信号 量(即收到应答帧数据信号量),这样既解决了通信的响应速度,提高了通信的实时性、可 靠性(在通讯波特率为9600到115200bps的范围内都可以实现高速通信),又能得到P C/ OS-II内核服务功能,提高了整个基于8051内核的嵌入式应用系统的可靠性。
综上所述,通过本发明所述的方法,在基于8051内核的嵌入式应用系统中,在基 于C/OS-II的RTOS上实现高速通信变得和不基于RTOS的系统一样容易,但由于使用 RTOS后使系统功能可扩展性和可维护性变得容易,系统可靠性得到提高,因此反过来也能 验证系统的核心部件——微处理器内核的正确性与可靠性(因为多任务实时内核的调度算 法、任务切换、时间管理、任务间通信与同步及存储空间的动态分配等功能实现一般已包含 所有8051内核要测试的内容)。例如,本方法可以应用在电能计量SOC芯片设计和验证的
5过程中,该操作系统移植到SOC中的8051处理器中,进行软硬件交互验证,与外设实时的通
讯,把运行的结果实时传输出来,增加了验证时的可视化,极大的提高了验证的效率。在该
操作系统上开发电能计量的应用,既能方便软件开发,又能节省软件开发时间。 以上实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对
本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以
所附权利要求书界定的范围作为本发明的保护范围。
权利要求
一种基于μC/OS-II的高速通信方法,所述μC/OS-II内核管理二个任务,即通信任务和空闲任务,其特征在于,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且所述的通信中断服务步骤由外部硬件触发,其中通信任务执行步骤包括等待步骤、发送允许标志判断步骤、通信完成信号量判断步骤和返回步骤,其中等待步骤,即接收缓冲区指针清零,置发送允许标志,等待应答帧数据,并设定超时时间,通信任务把CPU控制权交给操作系统,使自己挂起;发送允许标志判断步骤,即μC/OS-II内核把任务切换到所述的空闲任务,在所述空闲任务中判断发送允许标志,若允许发送,则发送请求帧数据,清除所述的发送允许标志,并把CPU工作模式置为空闲模式,使CPU进入睡眠状态;若不允许发送,则直接把CPU工作模式置为空闲模式,使CPU进入睡眠状态;通信完成信号量判断步骤,即通信任务重新获得CPU控制权后,判断是否收到通信完成信号量,若收到通信完成信号量,则进行数据校验,若数据校验正确,则进行通信数据处理;若数据校验不正确,则做错误处理;若没有收到通信完成信号量,即通信任务重新获得CPU控制权是由等待时间超过所设定的超时时间引起的,做超时处理;返回步骤,即重新开始下一个通信任务,即返回到所述的等待步骤;通信中断服务步骤包括接收缓冲区指针累加步骤和接收缓冲区数据长度判断步骤,其中接收缓冲区指针累加步骤,即将收到的应答帧数据放到所述的接收缓冲区,且所述接收缓冲区指针加一;接收缓冲区数据长度判断步骤,即判断所述接收缓冲区数据长度是否达到预定值若是,则触发外部0中断,即直接进入外部0中断服务步骤;若否,则μC/OS-II内核切换任务,即返回到所述通信任务执行步骤中的发送允许标志判断步骤;外部0中断服务步骤,即通信完成信号量发送步骤,即发送通信完成信号量到所述μC/OS-II内核,中断返回,μC/OS-II内核把任务切换到所述的通信任务,即返回到所述通信任务执行步骤中的通信完成信号量判断步骤。
2. 根据权利要求1所述的基于P C/OS-II的高速通信方法,其特征在于所述的通信 中断服务步骤为非屏蔽中断步骤,即在进行通信中断服务步骤时,不受所述P C/OS-II内 核管理。
全文摘要
本发明涉及一种基于μC/OS-II的高速通信方法,所述μC/OS-II内核管理二个任务,即通信任务和空闲任务,该方法包括通信任务执行步骤、通信中断服务步骤和外部0中断服务步骤,且所述的通信中断服务步骤由外部硬件触发。本发明解决了通信中帧数据不完整,通信可靠性达不到要求的问题,从而很容易地在8051内核上实现基于μC/OS-II的高速通信。
文档编号G06F9/46GK101770392SQ200810204840
公开日2010年7月7日 申请日期2008年12月30日 优先权日2008年12月30日
发明者赵海燕, 郑陆君 申请人:上海贝岭股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1