[发明专利]一种数据通讯处理方法有效
申请号: | 201811193759.0 | 申请日: | 2018-10-15 |
公开(公告)号: | CN109542811B | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 姚鑫;黄维;冯康乐 | 申请(专利权)人: | 广东宝莱特医用科技股份有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519085 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据通讯 处理 方法 | ||
本发明的技术方案包括一种数据通讯处理方法,基于DMA双缓冲结合软中断实现大量、实时数据通讯,在DMA中断程序中,仅执行切换DMA通道的目的地址以及触发软中断的操作,在软中断程序中再进行数据的搬运操作,而DMA中断才会导致CPU中断,软中断不会导致CPU中断,因此DMA中断开销较小,能够尽量在CPU事务繁忙时占用较小的CPU资源,在资源紧缺、事务繁忙的系统中有较强的优势。
技术领域
本发明涉及一种数据通讯处理方法,属于数据通信技术领域。
背景技术
在现在嵌入式系统中,MCU承担的任务越来越多,通信数据接口的速度越来越快,因此通信带来的负担也越来越重。MCU的通信接口在满负载通信的情况下,占用处理器较多的资源且容易造成通信数据丢失。
传统的DMA双缓冲数据虽然能够解决数据丢失的问题,但是当数据量较大时,DMA中断时搬运数据耗时较多,将会占用处理器较多资源,使得难以满足系统资源紧缺、任务繁多的数据通讯要求。
发明内容
为解决上述问题,本发明的目的在于提供一种数据通讯处理方法,该方法基于DMA双缓冲结合软中断实现大量、实时数据通讯,在DMA中断程序中,仅切换DMA通道的目的地址以及触发软中断,在软中断程序中再进行数据的搬运,而DMA中断才会导致CPU中断,软中断不会导致CPU中断,因此DMA中断开销较小,能够尽量在CPU事务繁忙时占用较小的CPU资源,在资源紧缺、事务繁忙的系统中有较强的优势。
本发明解决其问题所采用的技术方案是:一种数据通讯处理方法,基于DMA双缓冲结合软中断实现MCU与外设的数据通讯,所述MCU包括串口、FIFO存储器、DMA控制器、内存及CPU;包括如下步骤:
S1、开启串口DMA接收模式,配置FIFO存储器并设置其接收阈值;
S2、在内存中开辟两个接收缓冲区,分别为第一缓冲区和第二缓冲区;
S3、初始化DMA控制器,配置外设与内存之间的DMA通道,设置DMA通道的源地址为外设的数据存储地址;
S4、设置DMA通道的目的地址为第一缓冲区的地址,并使能DMA通道接收数据;
S5、当第一缓冲区接收的数据容量达到缓冲区容量阈值时产生DMA中断,CPU执行DMA中断程序,将DMA通道的目的地址切换为第二缓冲区的地址,并使能DMA通道接收数据,同时触发第一软中断;
S6、在第一软中断程序中,DMA控制器将第一缓冲区的数据转移到FIFO存储器中之后退出第一软中断程序并返回主程序,通过CPU处理FIFO存储器中的数据;
S7、当第二缓冲区接收的数据容量达到缓冲区容量阈值时产生DMA中断,CPU执行DMA中断程序,将DMA通道的目的地址切换为第一缓冲区的地址,并使能DMA通道接收数据,同时触发第二软中断;
S8、在第二软中断程序中,DMA控制器将第二缓冲区的数据转移到FIFO存储器中之后退出第二软中断程序并返回主程序,通过CPU处理FIFO存储器中的数据;
S9、循环执行步骤S5-S8,直至通讯结束。
进一步,所述第一缓冲区和第二缓冲区的缓冲区容量阈值相等。
进一步,所述DMA中断为外设产生的硬中断,所述第一软中断和第二软中断为MCU进程产生的软中断。
进一步,所述DMA中断的优先级高于所述第一软中断和第二软中断的优先级。
进一步,所述FIFO存储器包括一FIFO控制器,所述FIFO控制器具有一读取指针和一写入指针,当DMA控制器对FIFO存储器进行读取或写入动作时,FIFO控制器对应地改变该读取指针或该写入指针的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东宝莱特医用科技股份有限公司,未经广东宝莱特医用科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811193759.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种精量穴播机
- 下一篇:一种RFID自动抓拍智能球