基于usb接口的嵌入式运动控制器设计
窦海斌,方建军
(北方工业大学机电工程学院,北京100041)
摘要:开发出一种基于usb2. 0接口的嵌入式运动控制器,探讨了该运动控制器的体系结构的实现并对usb接口模块的软件和硬件设计进行了详细的介绍。将该嵌入式运动控制器应用于智能象棋机械手的控制过程中,实验结果表明通过扩展usb设备可以容易的实现多轴联动同时在实时性能要求不高的场合可以满足运动控制的要求。
关键词:usb2.0; dsp; fpca;嵌入式运动控制器
中圈分类号:tp273 文献标志码:a 文章编号:1001-6848(2010)06-0100-03
0引 言
多轴运动控制系统在激光加工、工业机器人、数控机床、办公自动化设备、雷达和军用武器随动系统以及柔性制造系统的应用越来越广泛。pci或isa接口的多轴运动控制器不能进行长距离传输,控制器要插到ipc扩展插槽里面,占用ipc外围资源,从主机应用程序过来的数据多放到缓存fifo中,不能方便地区分对各个轴的指令和控制参数,开发t作也比较复杂。而usb2.0技术不仅可以实现高速数据传输,而且具有即插即用,功耗低,连接简便,价格便宜的特点,同时可以实瑰不同轴指令及参数的分开,而不需要做复杂的技术处理。本文以智能象棋机器人嵌入式运动控制器为例,提出一种基于usb2. 0接口的多轴运动控制器。该运动控制器与上位机可以实现高速数据通信,完全满足象棋机械手的控制性能要求。
1硬件结构设计
1.1总体结构设计
运动控制器硬件结构如图l所示。运动控制器通过usb接口从上位pc机获取位置指令、命令指令以及需要调整的参数(比如pid调节系数),运动控制器由dsp对位置指令进行粗插补,在每一个插补周期,dsp根据反馈的正交编码脉冲信号获取轴的实时位置,计算出期望值与实际值之间的偏差,对偏差进行pid调节,获得各轴的进给量。将此进给量依次送人fpga的脉冲发生模块完成精插补操作,产生输出脉冲信号送人伺服驱动器控制电机运动。同时运动控制器可以根据pc机的命令指令向pc机上传各伺服轴的运行状况等信息并通过pc界面显示出来。
1.2 usb模块设计
sx2有5个端点:ep(o、2、4、6、8)。epo用基于usb接口的嵌入式运动控制器设计窦海斌,等来提供介于主机与设备之间的配置、命令或状态的通信协议。在本设计中将ep2设置为out端点,负责传送位置指令数据,配置为512字节双缓冲的模式。ep6设置为out端点,负责传送pc来的命令指令,配置为512字节双缓冲的模式。ep4设置为in端点,负责传送来自运动控制器的状态信息,配置为512字节双缓冲的模式。双缓冲的模式可以使usb在读或者写一个数据包时,另一个数据包(同一个端点内的另一个缓冲器)可供dsp执行读或者写操作。通过建立两级缓存可以极大提高数据的传输速度,更好地利用usb2.0的高速性。
sx2与fpga的连接图如图2所示。fifoadr[00: 02]用来选择fifo和命令端口,具体的对应规则可查阅sx2的技术资料;slrd为sx2的读有效信号常与sloe短接,与dsp的读使能信号xrd相连;slwr为写有效信号,与dsp的写使能信号xwe相连;flaga、flagb、flagc报告由fifoadr[2:0]选择的fifo的状态;ready信号有效时通知dsp对sx2的fifo进行读写。flagx和ready的状态均写入fpga申的一个寄存器中,dsp将fpca配置在zonel空间内(ox4000h),通过a[3:4]选中此寄存器,再通过数据线d[0:7]将寄存器的内容送人dsp,dsp通过查询各端口fifo的状态执行相应的命令。
因为使用了双缓冲的模式,充分的发挥了usb2.0的传输速度快的优势。具体的工作过程为:当上位pc机要发送位置指令给运动控制器时,将位置指令发送到ep2,dsp通过读fpga中的sx2的状态寄存器得知ep2的fifo中有数据,然后将位置数据读人dsp中进行粗插补算法。当上位pc机要读出当前各轴的运行状态时,将命令指令发送到ep6,dsp将命令指令读人内部寄存器中判断出命令所要求的具体任 |