Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于硬件双缓冲DMA的数据通讯方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:成都市运泰利自动化设备有限公司

摘要:本发明旨在提供一种使用链表管理缓冲区、缓冲区个数不受限制、能够自由定义各个缓冲区的大小、实现不暂停DMA动态调整缓冲区大小的功能的基于硬件双缓冲DMA的数据通讯方法。本发明包括外设、DMA控制器、缓冲区管理器、中央处理单元;所述DMA控制器包括第一寄存器、第二寄存器以及DMA内存操作指针,所述缓冲区管理器包括缓冲区链表,缓冲区链表包括满缓冲区信号量和空缓冲区信号量。本发明应用于数据通讯处理的技术领域。

主权项:1.一种基于硬件双缓冲DMA的数据通讯方法,包括外设(1)、DMA控制器(2)、缓冲区管理器(3)、中央处理单元(4);其特征在于:所述DMA控制器(2)包括第一寄存器、第二寄存器以及DMA内存操作指针,所述缓冲区管理器(3)包括缓冲区链表,缓冲区链表包括满缓冲区信号量和空缓冲区信号量,该方法包括如下步骤:S1、初始化缓冲区链表及信号量,初始化每个缓冲区的起始指针,缓冲区大小的信息,初始化满缓冲区信号量为0,假设总共使用N个缓冲区(N为大于2的整数),因此需要初始化空缓冲区信号量为N;S2、初始化所述DMA控制器(2),将第一寄存器设置为第一个缓冲区的起始指针,DMA内存操作指针设置为M0;S3、注册中断处理函数,并启动数据处理线程,该线程中会去获取一个满缓冲区信号量,获取成功时,会处理对应的数据;S4、获取一个空缓冲区信号量,空缓冲区信号量变为N-1,开始DMA传输,所述DMA控制器(2)开始把数据从所述外设(1)读取到缓冲区中;S5、当所述DMA控制器(2)读取的数据大于当前缓冲区大小的一半时,会产生‘DMA传输过半中断’,该中断信号会通知CPU执行‘DMA传输过半中断处理函数’,在该中断处理函数中,会获取一个空缓冲区信号量,获取成功后,将第一寄存器、第二寄存器设置为该缓冲区的起始地址;如果获取空缓冲区信号量失败,则表示缓冲区溢出,根据具体情况执行对应的错误处理函数;S6、当所述DMA控制器(2)读取的数据大于当前缓冲区大小时,所述DMA控制器(2)会自动将第一寄存器、第二寄存器的值装载到DMA内存操作指针,并继续开始下一次DMA传输,同时会产生‘DMA传输完成中断’,该中断信号会通知CPU执行‘DMA传输完成中断处理函数’,在该中断处理函数中会释放一个满缓冲区信号量;S7、由于步骤S1-S6已经初始化数据处理线程,步骤S6释放满缓冲区信号量的操作唤醒该线程并成功获取到信号量,该线程会处理对应缓冲区中的数据,整个系统处于数据处理和数据通讯的并行运行的状态,当数据处理完成时,会释放一个空缓冲区信号量;S8、循环执行步骤S5-S7,直至通讯结束。

全文数据:

权利要求:

百度查询: 成都市运泰利自动化设备有限公司 一种基于硬件双缓冲DMA的数据通讯方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。