CN103676739B - 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 - Google Patents
一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 Download PDFInfo
- Publication number
- CN103676739B CN103676739B CN201310654111.XA CN201310654111A CN103676739B CN 103676739 B CN103676739 B CN 103676739B CN 201310654111 A CN201310654111 A CN 201310654111A CN 103676739 B CN103676739 B CN 103676739B
- Authority
- CN
- China
- Prior art keywords
- module
- dma
- data
- upper computer
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于运动控制卡的DMA传输数据系统及其传输方法,采用自行研发的嵌入式运动控制器。本发明提供的DMA数据传输系统包括FPGA逻辑处理模块、内嵌DMA功能的DSP模块和电机控制模块。本发明提供的DMA数据传输方法通过上位机、FPGA和DSP协同工作并合理的分配时间段与程序段,实现了DMA数据传输方式对上位机和运动控制板卡以及运动板卡内部模块之间的批量数据交互,实现运动控制器对于伺服电机的精确控制。
Description
技术领域
本发明涉及电机控制领域,尤其涉及一种基于嵌入式运动控制板卡的DMA数据传输系统及其传输方法。
背景技术
目前,嵌入式运动控制板卡多采用“总线协议芯片+FPGA+DSP”构架与上位机进行数据交互。嵌入式运动控制板卡采用计算机作为上位机,利用其计算和处理能力强的优点进行路径规划和轨迹点生成,嵌入式运动控制板卡主要负责对执行机构的实时控制。此时,优化上位机与嵌入式运动控制板卡之间的协同工作以及提高各自的运行效率,也是高性能数控系统必须考虑的重要方面。
DMA传输方式广泛地出现大批量数据交互的场合,其优点在于数据传输由DAM控制器主导,而不打断CPU的计算。一些运动控制器使用DMA方式传输数据到下位机的RAM,数据在下位机之间的交互依然使用了传统的IO访问,在下位机CPU处理能力和带宽有限的情况下,提高CPU在计算上使用率来缩短中断时间以提高电机的实施控制,此方面也是运动控制器设计的关键技术之一。随着FPGA并行处理能力的提高,在其中集成与整合数据传输功能成为优化上述协同工作的一种可行实施方案。
经检索发现,中国专利申请号为201210300529.6,名称为“基于PCI的液压机专用运动控制方法及控制器”中采用“PCI协议芯片+FPGA+DSP”的构架方法,该方法虽采用具有DMA传输机制的PCI协议芯片,但未使用DMA功能,依然采用上位机CPU进行参与的IO读取方式。中国专利申请号为201210049100.4,名称为“一种DSP系统与PC机直接存储器访问接口的设计方法”中提到使用双口RAM作为上位机与下位机的数据缓冲区,此方法优势在于DSP利用两个外设通道交互上位机数据和其他外设数据时不会产生数据冲突,但却需要一块双口RAM芯片,无形中增加了硬件成本。中国专利申请号为200810039195.5,名称为“运控控制器的IEEE1394通讯接口系统”中采用IEEE1394作为总线通讯接口,其传输能力为50MB/S。然而,此速率不到32位PCI总线协议规定133MB/秒传输速率的一半。
因此,本领域的技术人员致力于开发一种基于嵌入式运动控制板卡的DMA数据传输系统及其传输方法,实现DMA数据传输方式对上位机和运动控制板卡以及运动板卡内部模块之间的批量数据交互,实现运动控制器对于伺服电机的精确控制。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于嵌入式运动控制板卡的DMA数据传输系统及其传输方法,采用PCI协议作为上下位机的交互总线,将具有DMA功能的PCI总线协议和数据缓冲区在FPGA中构件,实现上位机与嵌入式运动控制板卡之间的DMA数据交互。同时利用DSP的DMA多通道管理机制实现了嵌入式运动控制板卡内部FPGA、DSP内存与电机控制模块之间的DMA数据传输。
为实现上述目的,本发明提供了一种基于嵌入式运动控制板卡的DMA数据传输系统,包括上位机、FPGA逻辑处理模块、内嵌DMA功能的DSP模块和电机控制模块,所述FPGA逻辑处理模块分别与所述上位机、所述DSP模块和所述电机控制模块相连接;其中所述上位机实现插补运算并将批量插补点通过PCI总线利用上位机DMA方式下发给所述FPGA逻辑处理模块,同时从所述FPGA逻辑处理模块中利用所述上位机DMA方式获取电机批量实际位置点数据;所述FPGA逻辑处理模块完成所述上位机与所述内嵌DMA功能的DSP模块之间的数据缓冲区的构建、同时将所述DSP模块中发送来的电机控制的串行数据转换为并行数据,并将此并行数据发送至所述电机控制模块,同时对所述电机控制模块中的光电编码器的脉冲反馈信号进行分频鉴相;所述DSP模块实现电机闭环控制计算,同时负责管理所述上位机、所述FPGA逻辑处理模块和所述内嵌DMA功能的DSP模块之间的多个DMA通道的数据交互。
一种基于嵌入式运动控制卡的DMA数据传输方法,包括如下步骤:
步骤一:当所述DSP模块在所述程序模块中的通讯函数模块中接收到所述上位机下发的闭环控制信号后,向所述电机控制模块发送闭环使能控制信号;
步骤二:所述上位机利用上位机下发DMA通道传输批量插补点数据至所述数据缓冲模块的FIFOP2D缓冲区,传输完毕后所述数据缓冲区模块发出DSP读FIFOP2D信号;
步骤三:当所述DSP模块在中断响应函数中接收到所述DSP读FIFOP2D信号后,触发第二DMA通道搬移所述FIFOP2D缓冲区中的批量插补点数据到所述RAM模块的RAM5中,并上传DSP接收完成信号;
步骤四:所述中断响应函数模块将分频鉴相模块得到的实际位置数据保存在RAM7中,并与依次读取的RAM5或RAM6中的插补点数据进行闭环运算,将运算结果保存在RAM4中,并由所述第一DMA通道发送至MCBSP模块以控制电机运转;
步骤五:在所述上位机接收到所述DSP接收完成信号后,若无批量插补点数据则下发上位机DMA结束信号,若有批量插补点数据下发,则重复步骤一。
步骤六:所述DSP模块在中断响应函数模块收到所述DSP读FIFOP2D信号后,触发第三DMA通道搬移FIFOP2D缓冲区中数据到所述RAM模块的RAM6中,然后,上传DSP接收完成信号,当中断响应函数模块执行完所述RAM5中所有的电机数据后,相应所述RAM模块(302)的RAM7空间中顺序放满实际位置点数据,所述DSP模块(3)触发所述第四DMA通道将所述RAM7中的数据搬移至所述FIFOD2P缓冲区,传输完毕后请求PC读FIFOD2P信号,当所述上位机响应所述PC读FIFOD2P信号后,通过上位机上传DMA通道搬移所述FIFOD2P缓冲区的实际批量位置点数据到所述上位机的内存中;
步骤七:重复上述步骤二至八的数据传输流程,当中断响应函数处理完所述RAM6中批量数据并完成闭环计算,控制电机运行后,相应所述RAM7便放满电机批量实际位置点数据,所述DSP模块触发第四DMA通道上传数据;
步骤八:所述上位机用上位机下发DMA通道发送完最后一次批量数据后,下发上位机DMA结束信号,所述DSP模块搬移完FIFOP2D中最后一批批量数据到所述RAM5或所述RAM6后,接收到所述上位机DMA结束信号,依次将所述RAM7空间中的批量实际位置点数据分两次使用第四DMA通道上传,结束后上传DSPDMA结束响应信号;
步骤九:所述上位机以DMA读方式搬移完最后一批数据并接收到DSPDMA结束响应信号,发送电机使能关闭信号,整个数据传输结束。
一种使用权利要求4的DMA数据传输系统的DMA数据传输方法,其特征在于,包括如下步骤:
步骤一:对所述内嵌DMA功能的DSP模块进行RAM空间、外设空间、DMA通道优先级的配置;
步骤二:在所述FPGA逻辑处理模块中创建数据缓冲区,临时存储上位机(1)下发的批量插补点数据;
步骤三:通过上位机DMA通道将上位机内存中批量插补点下发至FPGA逻辑处理模块(2)中;
步骤四:通过所述DSP模块接收所述上位机的中段请求,进行DMA数据传输。
本发明提供的基于嵌入式运动控制板卡的DMA数据传输系统采用基于FPGA内嵌PCI协议模块,方便灵活地调整参数设置,减少运动控制板卡之间的电器连接;采用FPGA内嵌FIFO取代双口RAM芯片作为数据缓冲区,提高了数据交互的稳定性;采用PCIIO模块传输少量运动控制板卡命令代号和参数,提高了DSP对相应命令的响应效率。
本发明提供的基于嵌入式运动控制板卡的DMA数据传输方法利用DSP的DMA多通道管理机制实现了FPGA、DSP内存、电机控制模块之间的DMA数据传输,避免不同作用数据之间的冲突,提高DSPCPU的运算效率
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的DMA数据传输系统结构框图;
图2是本发明的一个较佳实施例的FPGA逻辑处理模块的原理框图;
图3是本发明的一个较佳实施例的内嵌DMA功能的DSP模块原理框图;
图4是本发明的一个较佳实施例的电机控制模块原理框图;
图5是本发明的一个较佳实施例的DMA通道的设置图;
图6是本发明的一个较佳实施例的DMA数据传输方法实施示意图;
图7是本发明的一个较佳实施例的DSP处理流程图。
具体实施方式
如图1所示,本发明的一较佳实施例中的一种基于嵌入式运动控制板卡的DMA数据传输系统,包括上位机1、FPGA逻辑处理模块2、内嵌DMA功能的DSP模块3和电机控制模块4,FPGA逻辑处理模块2分别与上位机1、内嵌DMA功能的DSP模块3和电机控制模块4相连接。
上位机1实现插补运算并将批量插补点通过PCI总线利用上位机DMA方式下发给FPGA逻辑处理模块2,同时从FPGA逻辑处理模块2中利用上位机1的DMA方式获取电机批量实际位置数据。FPGA逻辑处理模块2完成上位机模块1与内嵌DMA功能的DSP模块3之间的数据缓冲区的构建、同时将内嵌DMA功能的DSP模块3中发送来的电机控制的串行数据转换为并行数据,并将此并行数据发送至电机控制模块4,同时对电机控制模块4中的光电编码器的脉冲反馈信号进行分频鉴相。内嵌DMA功能的DSP模块3实现电机闭环控制计算,同时负责管理上位机1、FPGA逻辑处理模块2和内嵌DMA功能的DSP模块3之间的多个DMA通道的数据交互。
如图2所示,FPGA逻辑处理模块2包括PCI协议模块201、数据缓冲区模块202、D/A转换预处理模块203、分频鉴相模块204和I/O模块205。其中,PCI协议模块201负责架构FPGA逻辑处理模块2与上位机1之间的数据交互,PCI协议模块201内部的SLAVE接口模块负责保存运动控制板卡的配置信息,并对上位机信号进行译码、校验、读写控制及传输方式选择。PCI协议模块201内部另外一个MASTER接口模块控制上位机1与数据缓冲区模块202之间数据的DMA传输控制。数据缓冲区模块202由两个FIFO缓冲区构成,一个存放上位机1下发的批量插补点数据,另一个存放DSP模块3上传的批量实际位置点数据。例如,如图6所示,缓冲区由FIFOP2D和FIFOD2P构成。
D/A转换预处理模块203接受DSP模块3通过DMA方式搬移来的分别控制四个电机运动的16位串行控制信号及帧同步信号,并将其转换为四路并行信号后交由电机控制模块4进行D/A处理。分频鉴相模块204对四个轴的光电编码器脉冲信号进行滤波、倍频、鉴相处理和捕获Z信号。I/O模块205负责运动控制板卡上的I/O信号的输入与输出。
如图3所示,内嵌DMA功能的DSP模块3包括MCBSP模块301、RAM模块302、DMA控制器303、中央处理器304、程序模块305和外设模块306。其中,MCBSP模块301负责发送4×16位电机串行控制信号给D/A转换预处理模块203。RAM模块302内部包括五块分区:RAM1、RAM4、RAM5、RAM6和RAM7,其中RAM4存储四个电机的控制信号数据,RAM5和RAM6两块存储上位机下发的批量插补点数据,RAM7存储批量电机实际位置点数据,这四块分区利用DSP模块3内嵌的四个DMA通道进行数据传输,RAM1用来保存每个中断获取的分频鉴相模块204的光电编码器计数值和I/O模块205的I/O值。DMA控制器303根据程序模块305设置DMA的优先级来控制四个DMA通道数据的传输。中央处理器304完成整个运动控制板卡的实时性运算。程序模块305是运动控制板卡的计算与逻辑核心,其主包括通讯函数模块3051、中断响应函数模块3052和批量数据交互程序模块3053,如图7所示:通讯函数模块3051负责接收上位机1发送的命令和参数并及时响应,中断响应函数3052模块负责运动控制板卡的I/O信号处理、电机控制运算和DMA多通道之间传输数据的逻辑,批量交互程序模块3053负责批量数据处理。外设模块306负责将外部设备连接至RAM模块302,它包括三个外设通道:外设0、外设6和外设7,其中外设6和外设7负责RAM模块302内部的三块RAM分区与数据缓冲区202物理连接组成批量数据的DMA传输通道,外设0负责物理连接分频鉴相模块204、I/O模块205和RAM模块302内部的最后一个RAM分区来组成少量数据传输通道。
如图4所示,电机控制模块4包括D/A转换放大模块401和反馈信号预处理模块402。其中,D/A转换放大模块401负责将接收到的D/A转换预处理模块203中的数字信号转换为模拟信号;反馈信号预处理模块402将电机的光电编码器的差分信号转为单端信号,再提供给FPGA分频鉴相模块204处理。D/A转换放大模块401作用是将D/A转换预处理模块203中的16位电机控制的数字信号转换为满足量程范围的电压信号;将电压信号利用线缆连接驱动器,驱动器采用速度模式将电压信号进行处理以控制电机转动;反馈信号预处理模块402将四个电机产生的4组6路差分信号转为A、B、Z单端信号后交与分频鉴相模块204处理。
上述FPGA逻辑处理模块2可采用ALTERA公司的Cyclone系列芯片,DSP模块3可选用TI公司的型号为TMS320F28335的芯片,及采用Yaskawa公司型号为SGDV-2R8A01A的交流驱动器与型号为SGMJV-04ADA21的交流伺服交流电机。
本发明的一较佳实施例还提供了上述数据传输系统的一种基于嵌入式运动控制板卡的DMA数据传输方法,包括如下步骤:
(1)对内嵌DMA功能的DSP模块3进行RAM空间、外设空间、DMA通道优先级的配置。DMA通道的优先级与连接设备如图5和图6所示,DMA1通道用于RAM4和MCBSP模块301之间数据传输;DMA2通道用于FIFOP2D、外设6和RAM5之间数据传输;DMA3通道用于所述FIFOP2D、所述的外设6和RAM6之间数据传输;DMA4通道用于RAM7、外设7和FIFOD2P之间的数据传输。同时设置DMA1通道拥有最高传输优先级,而其他三个通道采用Round-robin模式配置使其拥有相同的优先级,来保证每个中断电机控制不被其他数据传输干扰。其中RAM4空间大小为4,数据宽度为16位;RAM5、RAM6和RAM7大小为1K,数据宽度为16位。
(2)创建数据缓冲区模块202,FIFOP2D大小为800,数据宽度为32位,用于临时存储上位机1下发的批量插补点数据,供RAM5和RAM6交替进行读取。FIFOD2P大小为1K,数据宽度为16位,作用为临时存储从RAM7中上传的批量实际位置点数据,以供上位机1读取。
(3)在程序模块305的中断响应函数模块3052中添加批量数据交互程序模块3053,如图7所示,在每个伺服中断内,中断响应函数模块3052都将计算得到伺服电机控制信号存入RAM4中,并通过DMA1通道将RAM4内数据搬移至MCBSP模块301来控制电机运动。接着判断是否需要接收批量插补点,若判断“是”则利用DMA2或DMA3通道将FIFOP2D内的数据搬移至RAM5或3023RAM6中,两个DMA通道交替使用以保证每次中断响应函数获取插补点数据不间断从而保证电机工作的连续性。若判断为“否”则再判断是否需要上传批量实际位置点至FIFOD2P,若判断“是”则利用DMA4通道将RAM7中批量实际位置点数据搬移至所述FIFOD2P供上位机读取,接着跳出中断进入通讯函数模块3051,并等待下次中断到来以再次进入中断响应函数模块3052。中断响应函数模块3052中函数的逻辑为:程序模块305开始时,最初的两次进入中断响应函数时,DMA2通道和DMA3通道两次分别将FIFOP2D中的批量插补点数据搬移至RAM5和RAM6。同时每次进入中断响应函数,都将分频鉴相模块204得到的四个电机实际位置点依次保存在RAM7中,并依次读取的RAM5或RAM6中的四个电机插补点进行PID运算,运算结果保存在RAM4空间中,由DMA1通道发送至MCBSP模块301以控制四个电机运转。当中断响应函数依次读完RAM5或RAM6中的批量数据后,电机的批量实际位置点数据便存满RAM7空间,利用DMA4通道将RAM7中数据搬移至FIFOD2P,搬移完成后发出通知上位机读取信号。
(4)完成以上配置步骤后,以下为上位机1、FPGA逻辑处理模块2和内嵌DMA功能的DSP模块3之间完整数据传输流程:
1)当内嵌DMA功能的DSP模块3在程序模块305中的通讯函数3051中接收到所述上位机1下发的闭环控制信号后,向电机控制模块4发送闭环使能控制信号;
2)上位机1利用上位机下发DMA通道传输批量插补点数据至FIFOP2D,传输完毕后数据缓冲区模块202发出DSP读FIFOP2D信号;
3)中断响应函数模块3052首先对接收I/O模块205内的运动控制板卡的输入输出信号并进行相应处理,再接收所述DSP读FIFOP2D信号,接收到便触发DMA2通道搬移FIFOP2D中批量数据到RAM5中,完成后上传DSP接收完成信号;
4)中断响应函数模块3052将分频鉴相模块204中的四个电机实际位置点数据通过外设0放入RAM7后,顺序读取RAM5中的四个电机插补点以进行闭环运算,并将计算结果依次放入RAM4后,DSP模块3再使用信号触发将所述的RAM4中数据通过DMA1通道发送至MCBSP串口进行电机控制。
5)在上位机1接收到所述DSP接收完成信号后,若无批量数据则下发上位机DMA结束信号,若有批量数据下发再次利用上位机下发DMA通道传输批量插补点数据。
6)中断响应函数模块3052按顺序处理完所述I/O模块205的信号后,检测信号后触发DMA3通道搬移FIFOP2D中批量数据到RAM6中,然后上传DSP接收完成信号。当某次中断响应函数执行完RAM5中所有的电机插补点数据后,相应RAM7空间中顺序放满四个电机的批量实际位置点数据,DSP模块3便软件触发DMA4通道将所述的RAM7数据搬移至数据缓冲区FIFOD2P,传输完毕后请求PC读FIFOD2P信号,下次再进入中断响应函数时便会从RAM6取出差值点数据进行计算。当所述上位机1响应此信号后通过上位机上传DMA通道搬移FIFOD2P实际批量位置点数据到所述上位机的内存中;
7)重复上述数据传输流程,当中断响应函数处理完RAM6空间中批量数据并完成闭环计算控制电机运行后,相应所述RAM7空间便放满电机批量实际位置点数据,DSP模块3使用软件触发DMA4通道上传。
8)上位机1用上位机下发DMA通道发送完最后一次批量数据后便下发上位机DMA结束信号,DSP模块3搬移完FIFOP2D中最后一批批量数据到RAM5或所述RAM6后,接收到上位机1的DMA结束信号便依次将所述RAM7空间中的批量实际位置点数据分两次使用DMA4通道上传,结束后上传DSP的DMA结束响应信号;
9)上位机1以DMA读方式搬移完最后一批数据并接收到DSPDMA结束响应信号,发送电机使能关闭信号,整个数据传输结束。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种基于嵌入式运动控制板卡的DMA数据传输系统,其特征在于,包括上位机(1)、FPGA逻辑处理模块(2)、内嵌DMA功能的DSP模块(3)和电机控制模块(4),所述FPGA逻辑处理模块(2)分别与所述上位机(1)、所述DSP模块(3)和所述电机控制模块(4)相连接;其中所述上位机(1)实现插补运算并将批量插补点通过PCI总线利用上位机DMA方式下发给所述FPGA逻辑处理模块(2),同时从所述FPGA逻辑处理模块(2)中利用所述上位机DMA方式获取电机批量实际位置点数据;所述FPGA逻辑处理模块(2)完成所述上位机(1)与所述内嵌DMA功能的DSP模块(3)之间的数据缓冲区的构建,同时将所述DSP模块(3)中发送来的电机控制的串行数据转换为并行数据,并将此并行数据发送至所述电机控制模块(4),同时对所述电机控制模块(4)中的光电编码器的脉冲反馈信号进行分频鉴相;所述DSP模块(3)实现电机闭环控制计算,同时负责管理所述上位机(1)、所述FPGA逻辑处理模块(2)和所述内嵌DMA功能的DSP模块(3)之间的多个DMA通道的数据交互。
2.根据权利要求1所述的基于嵌入式运动控制板卡的DMA数据传输系统,其特征在于,所述FPGA逻辑处理模块(2)包括PCI协议模块(201)、数据缓冲区模块(202)、D/A转换预处理模块(203)、分频鉴相模块(204)和I/O模块(205),其中,所述PCI协议模块(201)负责架构所述FPGA逻辑处理模块(2)与所述上位机(1)之间的数据交互;所述数据缓冲区模块(202)由两个FIFO缓冲区构成,一个存放所述上位机(1)下发的批量插补点数据,另一个存放所述DSP模块(3)上传的批量实际位置点数据;所述D/A转换预处理模块(203)接受所述DSP模块(3)通过DMA方式搬移来的串行控制信号及帧同步信号,并将其转换为并行信号后交由所述电机控制模块(4)进行D/A处理;所述分频鉴相模块(204)对光电编码器脉冲信号进行滤波、倍频、鉴相处理和捕获Z信号;所述I/O模块(205)负责运动控制板卡上的I/O信号的输入与输出。
3.根据权利要求2所述的基于嵌入式运动控制板卡的DMA数据传输系统,其特征在于,所述DSP模块(3)包括MCBSP模块(301)、RAM模块(302)、DMA控制器(303)、中央处理器(304)、程序模块(305)和外设模块(306),其中,所述MCBSP模块(301)负责发送电机串行控制信号给所述D/A转换预处理模块(203);所述RAM模块(302)包括RAM1、RAM4、RAM5、RAM6和RAM7,所述DMA控制器(303)根据所述程序模块(305)设置DMA的优先级来控制所述多个DMA通道数据的传输;所述中央处理器(304)完成整个运动控制板卡的实时性运算;所述程序模块(305)包括通讯函数模块(3051)、中断响应函数模块(3052)和批量数据交互程序模块(3053),所述通讯函数模块(3051)负责接收所述上位机(1)发送的命令和参数并及时响应,所述中断响应函数模块(3052)负责电机控制的运算和DMA多通道之间传输数据的逻辑,所述批量交互程序模块(3053)负责批量数据处理;所述外设模块(306)负责将外部设备连接至所述RAM模块(302)。
4.根据权利要求3所述的一种基于嵌入式运动控制板卡的DMA数据传输系统,其特征在于,所述的电机控制模块(4)包括D/A转换放大模块(401)和反馈信号预处理模块(402),其中,所述D/A转换放大模块(401)负责将接收到的D/A转换预处理模块(203)中的数字信号转换为模拟信号;所述反馈信号预处理模块(402)将电机的光电编码器的差分信号转为单端信号,再提供给所述FPGA分频鉴相模块(204)处理;所述D/A转换放大模块(401)将所述D/A转换预处理模块(203)中的16位电机控制的数字信号转换为满足量程范围的电压信号;所述反馈信号预处理模块(402)将电机产生的差分信号转为单端信号A、B、Z信号并交与所述分频鉴相模块(204)处理。
5.一种使用权利要求4的基于嵌入式运动控制板卡的DMA数据传输系统的DMA数据传输方法,其特征在于,包括如下步骤:
步骤一:当所述DSP模块(3)在所述程序模块(305)中的通讯函数模块(3051)中接收到所述上位机(1)下发的闭环控制信号后,向所述电机控制模块(4)发送闭环使能控制信号;
步骤二:所述上位机(1)利用上位机下发DMA通道传输批量插补点数据至所述数据缓冲模块(202)的FIFOP2D缓冲区,传输完毕后所述数据缓冲区模块(202)发出DSP读FIFOP2D信号;
步骤三:当所述DSP模块(3)在中断响应函数模块(3052)中接收到所述DSP读FIFOP2D信号后,触发第二DMA通道搬移所述FIFOP2D缓冲区中的批量插补点数据到所述RAM模块(302)的RAM5中,并上传DSP接收完成信号;
步骤四:所述中断响应函数模块(3052)将分频鉴相模块(204)得到的实际位置数据保存在RAM7中,并与依次读取的RAM5或RAM6中的插补点数据进行闭环运算,将运算结果保存在RAM4中,并由第一DMA通道发送至MCBSP模块(301)以控制电机运转;
步骤五:在所述上位机(1)接收到所述DSP接收完成信号后,若无批量插补点数据则下发上位机DMA结束信号,若有批量插补点数据下发,则重复步骤一。
6.根据权利要求5所述的DMA数据传输方法,其特征在于,还包括前期配置步骤,所述配置步骤包括:对所述多个DMA通道与所述DSP模块(3)、所述RAM模块(302)的RAM1、RAM4、RAM5、RAM6和RAM7、所述外设模块(306)的外设6和外设7进行连接设置,并配置最高传输优先级;
创建所述数据缓冲区模块(202),包括FIFOP2D缓冲区及FIFOD2P缓冲区,FIFOP2D缓冲区用于临时存储上位机(1)下发的批量插补点数据,FIFOD2P缓冲区用于临时存储RAM7中上传的批量实际位置点数据,以供上位机(1)读取。
7.根据权利要求6所述的DMA数据传输方法,其特征在于,还包括:
步骤六:所述DSP模块(3)在中断响应函数模块(3052)收到所述DSP读FIFOP2D信号后,触发第三DMA通道搬移FIFOP2D缓冲区中数据到所述RAM模块(302)的RAM6中,然后,上传DSP接收完成信号,当中断响应函数模块(3052)执行完所述RAM5中所有的电机数据后,所述RAM模块(302)的RAM7空间中顺序放满实际位置点数据,所述DSP模块(3)触发第四DMA通道将所述RAM7中的数据搬移至所述FIFOD2P缓冲区,传输完毕后请求PC读FIFOD2P信号,当所述上位机(1)响应所述PC读FIFOD2P信号后,通过上位机上传DMA通道搬移所述FIFOD2P缓冲区的实际批量位置点数据到所述上位机的内存中;
步骤七:重复上述步骤二至八的数据传输流程,当中断响应函数处理完所述RAM6中批量数据并完成闭环计算,控制电机运行后,所述RAM7便放满电机批量实际位置点数据,所述DSP模块(3)触发第四DMA通道上传数据;
步骤八:所述上位机(1)用上位机下发DMA通道发送完最后一次批量数据后,下发上位机DMA结束信号,所述DSP模块搬移完FIFOP2D中最后一批批量数据到所述RAM5或所述RAM6后,接收到所述上位机DMA结束信号,依次将所述RAM7空间中的批量实际位置点数据分两次使用第四DMA通道上传,结束后上传DSPDMA结束响应信号;
步骤九:所述上位机(1)以DMA读方式搬移完最后一批数据并接收到DSPDMA结束响应信号,发送电机使能关闭信号,整个数据传输结束。
8.根据权利要求6所述的DMA数据传输方法,其特征在于,所述DMA通道的连接配置为:所述多个DMA通道包括第一DMA通道、第二DMA通道、第三DMA通道及第四DMA通道,所述第一DMA通道用于所述RAM4和所述MCBSP模块(301)之间数据传输;所述第二DMA通道用于所述FIFOP2D缓冲区、所述外设6和所述RAM5之间数据传输;所述第三DMA通道用于所述FIFOP2D缓冲区、所述外设6和所述RAM6之间数据传输;所述第四DMA通道用于所述RAM7、所述外设7和所述FIFOD2P缓冲区之间的数据传输,其中所述第一DMA通道具有最高传输优先级,所述第二DMA通道、所述第三DMA通道及所述第四DMA通道具有相同的传输优先级。
9.一种使用权利要求4的DMA数据传输系统的DMA数据传输方法,其特征在于,包括如下步骤:
步骤一:对所述内嵌DMA功能的DSP模块进行RAM空间、外设空间、所述DMA通道优先级的配置;
步骤二:在所述FPGA逻辑处理模块中创建数据缓冲区,临时存储上位机(1)下发的批量插补点数据;
步骤三:通过上位机DMA通道将上位机内存中批量插补点下发至所述FPGA逻辑处理模块(2)中;
步骤四:通过所述DSP模块接收所述上位机的中段请求,进行DMA数据传输。
10.根据权利要求9所述的DMA数据传输方法,其特征在于,所述多个DMA通道包括第一DMA通道、第二DMA通道、第三DMA通道及第四DMA通道,所述步骤四中DMA数据传输方法为:
(a)将计算得到伺服电机控制信号存入所述RAM4中,并通过优先级最高的所述第一DMA通道将所述RAM4数据搬移至所述MCBSP模块(301)来控制电机运动;
(b)判断是否需要接收批量插补点,判断为“是”则利用所述第二DMA通道或第三DMA通道将FIFOP2D缓冲区内的数据搬移至所述RAM5或所述RAM6中,上述两个DMA通道交替使用,判断为“否”则直接进入步骤c;
(c)判断是否需要上传批量位置点,判断为“是”则利用所述第四DMA通道将所述RAM7中批量实际位置点数据搬移至所述FIFOD2P缓冲区供上位机读取,判断为“否”则跳出中断进入通讯函数,并等待下次中断到来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654111.XA CN103676739B (zh) | 2013-12-05 | 2013-12-05 | 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654111.XA CN103676739B (zh) | 2013-12-05 | 2013-12-05 | 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103676739A CN103676739A (zh) | 2014-03-26 |
CN103676739B true CN103676739B (zh) | 2016-06-01 |
Family
ID=50314644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310654111.XA Active CN103676739B (zh) | 2013-12-05 | 2013-12-05 | 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103676739B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298174B (zh) * | 2014-09-26 | 2017-02-01 | 成都乐创自动化技术股份有限公司 | 基于PCIe的轨迹侦测比较的方法 |
CN104636301B (zh) * | 2015-02-15 | 2017-06-27 | 中南大学 | 一种基于pci‑e接口的大规模plc高速背板总线系统 |
CN105810038B (zh) * | 2016-05-10 | 2019-01-11 | 浙江求是科教设备有限公司 | 基于matlab-simulink XPC模式下环微网并网控制的教学实验装置及其方法 |
CN108008658B (zh) * | 2016-10-31 | 2020-07-14 | 上海微电子装备(集团)股份有限公司 | 一种数据采集系统及采集方法 |
CN106648507B (zh) * | 2016-12-05 | 2020-02-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种用于嵌入式处理器扩展dvi显示输出的电路及方法 |
CN107498561A (zh) * | 2017-09-29 | 2017-12-22 | 深圳市山龙智控有限公司 | 基于arm的嵌入式机器臂的控制方法及终端 |
CN109613873A (zh) * | 2019-01-16 | 2019-04-12 | 珠海格力电器股份有限公司 | 控制设备及系统 |
CN111923036B (zh) * | 2020-08-31 | 2021-07-30 | 成都卡诺普自动化控制技术有限公司 | 一种工业机器人的驱动控制系统 |
CN112199121B (zh) * | 2020-09-28 | 2023-06-06 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Dsp按需扩容加载程序方法 |
CN114006811B (zh) * | 2021-10-29 | 2023-04-28 | 西安微电子技术研究所 | 一种强实时性的cpci千兆以太网板卡及数据通讯方法 |
CN114109816B (zh) * | 2021-11-05 | 2023-12-22 | 中国航发西安动力控制科技有限公司 | 一种微小型电动燃油泵泵后脉动压力监测系统及监测方法 |
CN116500974B (zh) * | 2023-06-30 | 2023-09-29 | 中科航迈数控软件(深圳)有限公司 | 多通道数控系统、多通道加工方法、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513096A (en) * | 1992-07-10 | 1996-04-30 | Connecticut Innovations, Inc. | Multi-axis motion controller and lid dispenser |
US8316158B1 (en) * | 2007-03-12 | 2012-11-20 | Cypress Semiconductor Corporation | Configuration of programmable device using a DMA controller |
CN102806683A (zh) * | 2012-08-22 | 2012-12-05 | 天津大学 | 基于pci的液压机专用运动控制方法及控制器 |
CN102938565A (zh) * | 2012-09-28 | 2013-02-20 | 上海交通大学 | 基于大规模并联系统的分布式通讯系统及其控制方法 |
CN103192545A (zh) * | 2013-03-29 | 2013-07-10 | 天津大学 | 基于以太网的液压机运动控制器以及控制系统和控制方法 |
CN103226344A (zh) * | 2013-03-19 | 2013-07-31 | 浙江中控研究院有限公司 | 一种运动控制片上系统 |
-
2013
- 2013-12-05 CN CN201310654111.XA patent/CN103676739B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513096A (en) * | 1992-07-10 | 1996-04-30 | Connecticut Innovations, Inc. | Multi-axis motion controller and lid dispenser |
US8316158B1 (en) * | 2007-03-12 | 2012-11-20 | Cypress Semiconductor Corporation | Configuration of programmable device using a DMA controller |
CN102806683A (zh) * | 2012-08-22 | 2012-12-05 | 天津大学 | 基于pci的液压机专用运动控制方法及控制器 |
CN102938565A (zh) * | 2012-09-28 | 2013-02-20 | 上海交通大学 | 基于大规模并联系统的分布式通讯系统及其控制方法 |
CN103226344A (zh) * | 2013-03-19 | 2013-07-31 | 浙江中控研究院有限公司 | 一种运动控制片上系统 |
CN103192545A (zh) * | 2013-03-29 | 2013-07-10 | 天津大学 | 基于以太网的液压机运动控制器以及控制系统和控制方法 |
Non-Patent Citations (3)
Title |
---|
一种步进电机运动控制系统设计_基于stm32系列单片机;张旭波 等;《甘肃科技》;20111031;第27卷(第20期);第41-43页 * |
基于FPGA多轴高速高精度插补运动控制模块的设计与实现;储晓慧;《中国优秀硕士学位论文全文数据库 工程科技Ⅰ辑》;20130715(第7期);B022-410 * |
基于双口RAM的CPCI总线通讯机制研究;艾春晖 等;《机械制造与自动化》;20120630;第41卷(第5期);第110-112页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103676739A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103676739B (zh) | 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法 | |
CN103425106B (zh) | 一种基于Linux的EtherCAT主/从站控制系统及方法 | |
CN106411184B (zh) | 一种网络化的多轴电机同步控制装置及方法 | |
CN103984275B (zh) | 一种基于fpga的通用工业运动控制系统及基于该运动控制系统的控制方法 | |
CN107124125A (zh) | 一种基于fpga芯片的多轴步进电机控制器系统 | |
CN101976997B (zh) | 带式运输机多电机同步控制系统 | |
CN102023956A (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN101819427B (zh) | 基于fpga的数字化关节片上控制系统 | |
CN204203725U (zh) | 一种用于伺服电机高精度位置控制系统 | |
CN104317253A (zh) | 一种用于伺服电机位置控制的系统方法 | |
CN101882125A (zh) | 一种基于可编程逻辑控制器的串行通信接口分时复用装置 | |
CN201156204Y (zh) | 立体停车库总线控制系统 | |
CN104753406A (zh) | 一种多电机协同控制方法 | |
CN103901814A (zh) | 一种多轴运动数控系统 | |
CN105759763A (zh) | 一种多叶光栅的控制方法及系统 | |
CN103901804A (zh) | 基于dsp和fpga的伺服系统实时运动控制器及控制方法 | |
CN105577052B (zh) | 一种基于fpga的步进电机无抖动驱动控制系统及基于该系统的控制方法 | |
CN105186938B (zh) | 一种两电机调速系统无传感器张力辨识方法 | |
CN204374726U (zh) | 一种基于b样条曲线高速实时插补的数控系统 | |
CN203643819U (zh) | 智能前端控制器 | |
CN105373080A (zh) | 一种基于软总线的协同数控系统 | |
CN106253758B (zh) | 多电机同轴驱动控制系统 | |
CN103552072A (zh) | 一种基于嵌入式控制器的机器人控制方法和装置 | |
CN100370383C (zh) | 柔性数字式运动控制系统 | |
CN207301682U (zh) | 一种基于spi接口的输入输出扩展电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |