一种矿业嵌入式多串口查询方法

文档序号:6350642阅读:170来源:国知局
专利名称:一种矿业嵌入式多串口查询方法
技术领域
本发明属于矿业嵌入式多串口技术领域,介绍了一种高效率的多串口查询方法, 通过串口性能的统计分析,实时改变串口参数,从而提高串口性能。
背景技术
中国煤矿企业众多,煤矿井下采用了大量的低速串口设备,可以采用串口服务器将这些低速串口设备连接起来,或者进行数据汇总和控制。煤矿井下存在如下情况(1)潮湿;(2)巷道风大而且比较热;(3)经常停电,而且停电时间长,直到蓄电池放完,电压经常不稳定;(4)粉尘大。串口服务器和控制设备采用串口中断的方式接收串口数据,串口中断资源有限不可能支持并行大数量的串口,经常由于串口中断线上的干扰导致一些误中断和频繁中断, 存在工作不稳定的因素。

发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种矿业嵌入式多串口查询方法,该方法抗干扰,而且同时支持并行大数量串口的软件查询。本发明的目的是通过以下技术方案来解决的1.这种矿业嵌入式多串口查询方法,该查询方法包括1)使用串口芯片的先入先出队列FIFO,将物理缓冲区FIFO的容量初始化为最大值;2)将所有串口定义为一个统一的数据结构,为每个串口生成一个虚拟缓冲区;3)串口工作模式分为休眠和激活2种状态,数据查询为激活模式,数据中断为休眠模式;4)采用端口号优先算法,对所有的激活串口生成一个查询队列,轮询周期为T ;5)计算所有串口的数据吞吐量M ;5)从查询队列取出当前轮询端口号,每次轮询按每个串口数据读入长度L读入每个端口的数据,每次查询如果能读到数据,实际读到的数据长度为V,则确定为一次有效查询,没有读到数据,则确定为一次无效查询,为每个串口生成一个查询效率值K,计算公式为K = V/L。2.在所述幻中,串口物理缓冲区为最大定长N,串口虚拟缓冲区每次读入数据长度L为变长,当串口有数据时,每个串口依次接收L个字节,L缺省为1,计算公式L = N*K。3.在所述3)中,增加串口工作指数S,如果串口长期连续没有数据,串口工作指数不停递减,到0时,就会休眠,离开查询队列;一旦有数据,串口工作指数就会加满,串口就会激活,然后加入到查询队列里。4.在所述4)中,端口号优先算法是串口完成一次有效查询,串口端口号会放在下次查询队列的前头,串口没有完成一次有效查询,串口端口号会放在下次查询队列的后头。
5.将所述串口定义为三层结构,分别为物理缓冲区、虚拟缓冲区和串口性能,物理缓冲区是物理参数区,把物理参数都设置成最大,虚拟缓冲区是可变参数区,通过串口性能的分析调整虚拟缓冲区的参数以提高串口性能。
权利要求
1.一种矿业嵌入式多串口查询方法,其特征在于,该查询方法包括1)使用串口芯片的先入先出队列FIFO,将物理缓冲区FIFO的容量初始化为最大值;2)在物理缓冲区的基础上,为每个串口生成一个虚拟缓冲区,并进行工作性能统计;3)串口工作模式分为休眠和激活两种状态,数据查询为激活模式,数据中断为休眠模式;4)采用端口号优先算法,对所有的激活串口生成一个查询队列,轮询周期为T;5)从查询队列取出当前轮询端口,每次轮询按每个串口数据读入长度L读入每个端口的数据,每次查询如果能读到数据,则实际读到的数据长度为V,确定为一次有效查询,如果没有读到数据,则确定为一次无效查询,为每个串口生成一个查询效率值K,计算公式为K =V/L ;6)计算所有串口的数据吞吐量M,计算串口的负载指数。
2.根据权利要求1所述的矿业嵌入式多串口查询方法,其特征在于,在所述幻中,串口物理缓冲区为最大定长N,串口虚拟缓冲区每次读入数据长度L为变长,当串口有数据时, 每个串口依次接收L个字节,计算公式L = N*K。
3.根据权利要求1所述的矿业嵌入式多串口查询方法,其特征在于,在所述幻中,计算串口工作指数S,如果串口长期连续没有数据,串口工作指数不停递减,到0时,就会休眠, 离开查询队列,串口累积工作指数SN会加1 ;一旦有数据,串口工作指数就会加满,串口就会激活,然后加入到查询队列里。
4.根据权利要求1所述的矿业嵌入式多串口查询方法,其特征在于,在所述4)中,端口号优先算法是串口完成一次有效查询,串口端口号会放在下次查询队列的前头,串口没有完成一次有效查询,串口端口号会放在下次查询队列的后头;如果串口本次查询效率为1, 串口负载指数> 0. 5,串口本次读入数据长度L > K/2,则在下次查询2次。
5.根据权利要求1所述的矿业嵌入式多串口查询方法,其特征在于,将所述串口定义为三层结构,分别为物理缓冲区、虚拟缓冲区和串口性能,物理缓冲区是物理参数区,把物理参数都设置成最大,虚拟缓冲区是可变参数区,通过串口性能的分析调整虚拟缓冲区的参数以提高串口性能。
6.根据权利要求1所述的矿业嵌入式多串口查询方法,其特征在于,所述整个查询方法的具体步骤a)根据串口端口号优先算法,将所有激活的串口生成一个查询队列;b)从查询队列,取当前轮询端口号,轮询当前端口;c)串口读取深度,读取L个字节,实际读入数据长度为V,存入串口虚拟缓冲区;d)计算串口的查询效率K= V/L,数据吞吐量M = M+V ;e)计算串口的工作指数,如果串口工作指数为0,则串口处于休眠状态,将串口工作模式改为数据中断模式;f)重新计算串口的读取深度L= N*K ;g)开中断,如果休眠串口发生数据中断,则将休眠串口激活,关中断;h)处理主机命令;i)返回a)。
全文摘要
本发明公开了一种矿业嵌入式多串口查询方法。使用串口芯片的先进先出队列FIFO,将串口数据中断定义为休眠模式,将串口数据查询模式定义为激活模式,将串口定义成三层结构,分为物理缓冲区,虚拟缓冲区和串口性能,将串口的物理参数定义为最大,然后通过串口性能的统计分析,调整串口虚拟缓冲区的参数,从而实时提高串口性能。该多串口查询方法应用于煤矿串口控制设备,证明是稳定有效的。
文档编号G06F13/10GK102495813SQ201110398189
公开日2012年6月13日 申请日期2011年12月2日 优先权日2011年12月2日
发明者刘朝阳, 张峰国, 王宏岳 申请人:西安大唐电信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1