[发明专利]一种嵌入式操作系统下串口设备高速率数据传输方法有效
申请号: | 202011095529.8 | 申请日: | 2020-10-14 |
公开(公告)号: | CN112231265B | 公开(公告)日: | 2022-09-13 |
发明(设计)人: | 唐亮 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F13/42 | 分类号: | G06F13/42;G06F8/41;H04L49/90 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 辛海明 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 操作系统 串口 设备 速率 数据传输 方法 | ||
本发明涉及一种嵌入式操作系统下串口设备高速率数据传输方法,属于嵌入式软件开发领域。本发明增加读写串口芯片寄存器的函数;在串口打开函数中添加自定义接收缓存;采用添加专用缓存和一次性读空的方式,重新编写串口中断服务函数和接收函数;将重新编写的中断服务函数和接收函数注册到设备驱动列表中,或者,将重新编写的中断服务函数和接收函数作为回调函数添加到串口初始化列表中;重新编译驱动。本发明基于标准的SIO接口驱动模型,完善其处理方式,增强了嵌入式操作系统下高速率串口数据传输的可靠性,采用该方法更改过的串口芯片驱动程序能够保证在高速率数据传输时不发生数据丢失问题,该方法容易实现、效果明显、稳定可靠。
技术领域
本发明属于嵌入式软件开发领域,具体涉及一种嵌入式操作系统下串口设备高速率数据传输方法。
背景技术
串口通信方式以其简单、便捷、成本低等特点,在嵌入式电子领域仍然有着广泛应用,比如环境监控、数据采集、工业控制、金融中断、触摸屏等工业领域。随着处理器的快速发展,设备智能化和网络化时代的到来,对串口通信的速率也要求越来越高,2Mbps的串口波特率慢慢成为一种趋势。目前嵌入式操作系统中提供的通用SIO设备驱动支持了市场上大部分的串口芯片,但实践中发现,当串口速率超过1.5Mbps时,偶尔会有丢包现象。
为了解决这一问题,从通用串口驱动入手,通过研究驱动的实现机制,找出一种更高效率的数据处理机制,减少中断资源的消耗,提出实现串口高速率数据传输的一种方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种嵌入式操作系统下串口设备高速率数据传输方法,以解决通用SIO串口驱动高速率传输数据发生丢包的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种嵌入式操作系统下串口设备高速率数据传输方法,该方法包括如下步骤:
S1、增加读写串口芯片寄存器的函数;
S2、在串口打开函数中添加自定义接收缓存;
S3、采用添加专用缓存和一次性读空的方式,重新编写串口中断服务函数和接收函数;
S4、将重新编写的中断服务函数和接收函数注册到设备驱动列表中;
S5、重新编译驱动,新的串口系统生效。
进一步地,所述步骤S1具体包括如下步骤:
S11、编写读寄存器函数REG_GET,用于获取芯片寄存器数值;
S12、编写读寄存器函数REG_SET,用于向芯片寄存器写入数值。
进一步地,所述步骤S2具体包括:找到串口打开函数,在创建设备描述符时,自定义一个N字节的接收缓存,用于从芯片FIFO中读取串口数据,并注册到设备资源列表中。
进一步地,N大于等于32M。
进一步地,所述步骤S3具体包括如下步骤:
S31、定义中断服务函数;
S32、定义接收函数;
S33、在中断服务函数中,判断中断类型,如果是接收中断则调用接收函数,然后清中断;
S34、在接收函数中,通过读寄存器函数获取接收缓存中的数据个数;
S35、根据数据个数控制for循环次数,每一次读取一个字节数据到步骤S2创建的接收缓存中。
进一步地,所述步骤S4具体包括如下步骤:
S41、找到设备驱动函数列表数据结构;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011095529.8/2.html,转载请声明来源钻瓜专利网。