[发明专利]一种支持定长包、变长包、混合包的串口数据提取方法有效
申请号: | 201710796835.6 | 申请日: | 2017-09-06 |
公开(公告)号: | CN107766265B | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 回永利;刘武;曹新强;杨佳君;侯国超;何昊;曹井连 | 申请(专利权)人: | 中国航空工业集团公司西安飞行自动控制研究所 |
主分类号: | G06F13/12 | 分类号: | G06F13/12;G06F13/38;G06F13/42 |
代理公司: | 中国航空专利中心 11008 | 代理人: | 杜永保 |
地址: | 710065 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 定长 变长 混合 串口 数据 提取 方法 | ||
本发明涉及一种串口数据包提取的通用方法,支持定长包、变长包、混合包三种帧格式。本发明使用的方案如下:基于“空闲触发”的机制,侦测串口数据包是否传输完成,当判定传输完成时,按照已配置的包格式,在接收的串口数据中,提取所需的串口数据包。
技术领域
本发明属于嵌入式系统串口数据处理领域,涉及一种支持定长包、变长包、混合包的串口数据提取方法。
背景技术
在嵌入式应用中,设备间数据交互很多是以串口数据包形式进行的。通常情况下,接收方通过以下两种方式接收串口数据包:嵌入式系统的CPU集成具有“空闲中断”特性的串口控制器,数据包传输完毕时,触发中断,中断服务程序读取控制器中的数据;嵌入式系统集成单独的串口协处理器,该协处理器可以是FPGA、SOC、专用IC等形式,通过软件设置包格式,该协处理器自动处理串口数据,将符合包格式的数据传送给CPU做进一步处理。
以上两种数据包接收形式,都对硬件有特殊需求,不仅增加了物料成本,还给后期应用带来了功耗等其它影响。本发明是通过软件完成数据包接收,软件动态配置包格式,完成系统的快速部署。
发明内容
本发明的目的是提供一种串口数据包的提取方法,通过软件动态配置,完成串口数据包的接收,包格式支持定长包、变长包、混合包。
本发明的技术方案是:一种支持定长包、变长包、混合包的串口数据提取方法,包括以下步骤:
步骤1初始配置;
步骤2核对端口号:当输入的端口号,在系统串口列表中时,继续后续操作;否则返回异常代码;
步骤3串口数据溢出:当系统无法及时处理串口控制器FIFO中的数据时,会发生数据溢出,执行清FIFO数据操作,并清除串口控制器中的溢出标志字;
步骤4判断FIFO中数据计数是否变化,若计数值变大,则备份该计数值,统计并复位计数器;否则将计数器累加1;
步骤5判断是否“空闲触发”:计时器超时,且FIFO的数据计数大于0;若满足条件,则判定数据传输完毕,FIFO中的数据处于可以提取并能进一步处理的状态,并触发CPU内部中断;若计时器超时,但FIFO计数值为0,将计时器的值设置为“门限值+1”;
步骤6计时器复位,并根据设置的包格式完成数据包提取。
所述的一种支持定长包、变长包、混合包的串口数据提取方法,所述步骤1包括以下步骤:
步骤1.1配置包格式、串口通道号,所述包格式包括定长包、变长包、混合包;
步骤1.2配置包头长度、包尾长度、总长度;
步骤1.3配置包头字符、包尾字符、超时门限。
所述的一种支持定长包、变长包、混合包的串口数据提取方法,步骤6所述的包格式为定长包时,所述步骤6具体包括以下步骤:
6.1a读取串口控制器FIFO中全部数据至软件缓冲区;
6.2a根据已设定的包头,在软件缓冲区中搜索该包头,搜索到时,返回第一个包头的软件缓冲区索引,并且执行步骤3;若未发现包头,则返回异常代码;
6.3a数据长度符合性判断,若软件缓冲区中的数据长度小于包长度,返回异常代码;若软件缓冲区中的数据长度满足条件,则根据指定长度,在软件缓冲区中顺序读取数据,并返回实际读取的数据长度及数据包。
所述的一种支持定长包、变长包、混合包的串口数据提取方法,步骤6所述的包格式为变长包时,所述步骤6具体包括以下步骤:
6.1b读取串口控制器FIFO中全部数据至软件缓冲区;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安飞行自动控制研究所,未经中国航空工业集团公司西安飞行自动控制研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710796835.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:调节并发写命令数量的方法与装置
- 下一篇:网络安全服务器