预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号(10)申请公布号CNCN104123250104123250A(43)申请公布日2014.10.29(21)申请号201310146199.4(22)申请日2013.04.25(71)申请人上海联影医疗科技有限公司地址201815上海市嘉定区嘉定工业区兴贤路1180号8幢(72)发明人曾群(74)专利代理机构上海申汇专利代理有限公司31001代理人金碎平(51)Int.Cl.G06F13/28(2006.01)G06F12/08(2006.01)权权利要求书2页利要求书2页说明书5页说明书5页附图5页附图5页(54)发明名称基于DMA的数据传输方法(57)摘要本发明公开了一种基于DMA的数据传输方法,包括如下步骤:a)初始化外部设备,并为每个外部设备设置DMA操作缓冲区后开启DMA控制器;b)所述每个外部设备通过DMA控制器将数据传送到各自的DMA操作缓冲区;c)应用程序采用定期轮询方式获取各个外部设备对应DMA操作缓冲区中的数据。本发明提供的基于DMA的数据传输方法,完全由外部设备自动判断是否进行DMA传输,CPU仅需要查询是否有可用数据即可,从而避免了传统DMA数据传输过程中由于频繁的交互导致性能下降的现象,避免了中断交互造成的效率低下,提高了数据传输效率和性能。CN104123250ACN104235ACN104123250A权利要求书1/2页1.一种基于DMA的数据传输方法,其特征在于,包括如下步骤:a)初始化外部设备,并为每个外部设备设置DMA操作缓冲区后开启DMA控制器;b)所述每个外部设备通过DMA控制器将数据传送到各自的DMA操作缓冲区;c)应用程序采用定期轮询方式获取各个外部设备对应DMA操作缓冲区中的数据。2.如权利要求1所述的基于DMA的数据传输方法,其特征在于,所述步骤a)中设置DMA操作缓冲区包括设置存放数据的物理内存起始地址、数据缓冲区长度以及指示当前数据存储位置相对起始地址的地址偏移值。3.如权利要求2所述的基于DMA的数据传输方法,其特征在于,所述外部设备在DMA操作缓冲区写入数据完成后再更新地址偏移值,所述CPU预先存储各个外部设备DMA操作缓冲区的地址偏移值,并在定期轮询时根据地址偏移值的变化判断是否有可用数据。4.如权利要求3所述的基于DMA的数据传输方法,其特征在于,所述DMA操作缓冲区为环形数据缓冲区,当数据写入地址到达环形数据缓冲区边界时,若无剩余数据,则设置地址偏移值为0,若有剩余数据,则所述剩余数据开始从头写入,并设置地址偏移值为剩余数据的长度。5.如权利要求4所述的基于DMA的数据传输方法,其特征在于,所述步骤b)的具体过程如下:b10)所述外部设备缓冲区中有待写数据时,根据配置信息获取物理内存起始地址以及当前偏移地址值,并计算出待写数据地址;b20)判断待写数据是否能完全写入,若是,根据所述待写地址将所述待写数据写入所述DMA操作缓冲区,当前偏移地址值增加待写数据的长度,并且如果新的当前偏移地址值等于所述数据缓冲区的长度,将当前偏移地址值设置为0;若否,根据所述待写地址将所述待写数据写入并将所述剩余数据开始从头写入DMA操作缓冲区,并设置地址偏移值为剩余数据的长度。6.如权利要求5所述的基于DMA的数据传输方法,其特征在于,所述步骤b20)中每次写入所述DMA操作缓冲区后,根据新的当前偏移地址值以及物理内存起始地址计算出下次待写入数据地址并保存于配置信息中;所述步骤b10)中的待写数据地址为上次写入数据时更新保存于配置信息中的数据地址。7.如权利要求5或者6所述的基于DMA的数据传输方法,其特征在于,所述步骤c)具体为:应用程序定期轮询时,若发现该外部设备对应的DMA操作缓冲区地址偏移值和预存的地址偏移值不同,则获取所述预存地址偏移值处的数据并将所述预存地址偏移值更新为DMA操作缓冲区的地址偏移值。8.如权利要求7所述的基于DMA的数据传输方法,其特征在于,所述外部设备与应用程序之间传输定长数据,定长数据的长度为L,所述数据缓冲区的长度为定长数据的长度的整数倍,所述步骤b20)为根据所述待写地址将所述定长数据写入所述DMA操作缓冲区,当前偏移地址值增加L。9.如权利要求7所述的基于DMA的数据传输方法,其特征在于,所述外部设备和应用程序之间传输变长数据,所述变长数据包括数据字头和数据内容,所述数据字头包括数据总长度和位置格式配置信息,所述步骤b20)为根据所述待写地址将所述变长数据写入所述2CN104123250A权利要求书2/2页DMA操作缓冲区,当前偏移地址值增加所述变长数据的总长度。10.如权利要求9所述的基于DMA的数据传输方法,其特征在于,所述应用程序获取所述预存地址偏移值处的变长数据后根据