[发明专利]一种UART设备的数据DMA传输方法有效

专利信息
申请号: 201910358026.6 申请日: 2019-04-30
公开(公告)号: CN110059042B 公开(公告)日: 2023-02-07
发明(设计)人: 马宇;刘卓;刘兵 申请(专利权)人: 成都启英泰伦科技有限公司
主分类号: G06F13/38 分类号: G06F13/38;G06F13/42
代理公司: 暂无信息 代理人: 暂无信息
地址: 610041 四川省成都市高新区*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 uart 设备 数据 dma 传输 方法
【权利要求书】:

1.一种UART设备的数据DMA传输方法,其特征在于,包括如下步骤:

S1.初始化:初始化UART设备为DMA工作模式,建立DMA传输通道;

所述工作模式中,设置DMA传输中每传输K 大小的数据触发一次中断,所述K可以整除L并小于L ,所述L为S2中链表缓存块的存储空间大小;

S2.设置缓存链:申请缓存空间,将缓存分成M个大小相等的链表缓存块,并将这些链表缓存块组成一个环形缓存链,初始化缓存空间,将环形缓存链中的数据源地址和目标地址作为DMA传输的数据源地址、数据目标地址,

S3. 应用层数据打包:原始待发数据添加包头信息,包头信息包括包头同步标记;

S4. 链路层数据打包:将应用层打包完成的数据在数据头部添加数据开始标记,在数据末尾添加结束标记;链路层数据打包完成后,返回打包后的数据长度,数据包传给UART传输用数据接口;

S5.系统检测DMA是否处于空闲状态,是则发出DMA使能信号,开始发送数据;

S6. 数据接收,通过读取DMA寄存器数据和DMA中断触发次数,计算目前缓存区数据量大小,并检测数据量变化,如果数据量增加,则进行数据解码;

步骤S4中,对数据进行转义,所述转义具体为:检测包头和包尾之间的数据是否有和所述开始标记或结束标记相同的字节段,如果有则将该字节段自动复制扩展一次;

步骤S6中对应的解码方式为:去掉开始标记和结束标记,检测剩余数据是否存在有和所述开始标记或结束标记相同的字节段,有则继续检测其临近字节是否存在有和所述开始标记或结束标记相同的字节段,如果临近字节存在有和所述开始标记或结束标记相同的字节段,则去掉一个和所述开始标记或结束标记相同的字节段。

2.如权利要求1所述的数据DMA传输方法,其特征在于,所述初始化过程包括以下操作:使能UART时钟,设置UART波特率,设置UART的触发深度,设置UART的发送接收为DMA方式。

3.如权利要求1所述的数据DMA传输方法,其特征在于,所述步骤S6中,解码数据前,还包括对于数据传输的检测过程,所述检测过程具体为:

数据接收解码模块定时查询一次链表缓存块中数据是否增加,检测到数据有增加则解析缓存块中的数据,当解析出一个完整数据包则提取数据,并释放该数据包在缓存块中占据的缓存空间。

4.如权利要求3所述的数据DMA传输方法,其特征在于,查询数据是否增加的具体方法为:通过读取DMA寄存器数据和DMA中断触发次数,计算出目前缓存区数据大小,如果数据量比上次检测时有增加,则判断出数据增加。

5.如权利要求1所述的数据DMA传输方法,其特征在于,所述包头信息中包含校验和,所述步骤S6中还包括解码后的校验步骤,所述校验步骤为:计算解析后数据的校验和,与包头信息中的校验和比较,如果相同则数据有效,否则判断数据无效。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都启英泰伦科技有限公司,未经成都启英泰伦科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910358026.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top