1 引 言
近年来,随着对系统可靠性需求的日益增加,CPCI总线以其独特的优势被广泛地应用在工业控制中。由于CPCI总线支持热插拔,这种方式就保证在不影响系统运行的前提下,可以对其中的任意板卡进行检测及维修。这样就提高了基于CPCI总线的运动控制系统的灵活性,同时对应用在该系统上的运动控制卡的需求也会越来越大。因此急需开发一款基于CPCI总线的、高性能、高可靠性的运动控制卡以满足运动控制系统发展的需要。
2 CPCI总线简介
CPCI全称为CompactPCI,中文又称紧凑型PCI,是国际PICMG协会于1994年提出来的一种总线接口标准。它是以PCI电气规范为标准的高性能工业用总线。
CPCI总线相对于PCI具有以下优点:
(1)具有更好的机械特性。它增强了电信设备或其他恶劣工业环境中的PCI系统的可维护性和可靠性;
(2)采用Eurocard封装,系统中气流均匀;
(3)CompactPCI连接器的电源和信号引线支持热插拔规范,这对于容错系统是非常重要的,也是标准PCI所不能实现的功能;
(4)总线易于扩展,可同时支持多达256个标准的PCI总线设备;
(5)CompactPCI背板的连接器插针分为长针、中长针和短针。长针是一些电源针,最短的针是BD-SEL#,其他总线信号和部分电源信号是中长针。
3 硬件设计
该运动控制卡的系统结构图如图1所示。系统采用专用接口芯片PCI9030实现运动控制芯片MCX314与CPCI总线的高速通信;使用时通过正确配置E2PROM(93CS66L)的参数来完成PCI9030的初始化;用热插拔控制器LTC1643L实现运动控制卡的热插拔功能。下面对各个部分进行一一介绍:
3.1 CPCI总线接口
由于CPCI总线规范较为复杂,为了降低设计难度,缩短开发时间,本系统采用采用PLX公司的专用接口芯片PCI9030实现CPCI的总线接口。PCI9030是业界首个支持热交换的接口芯片,为CPCI接口提供了优秀的解决方案。它采用SMARTarget技术,可以保证高性能的热交换实施功能,可以支持具有热交换功能的PICMG2.1目标设备,并且符合PCIv 2.2规范所规定的32位33 MHz目标接口功能,可以获得高达132 MB/s的PCI突发传输速度,局部总线操作速度高达60 MHz,支持5个局部地址空间到PCI总线地址空间的映射(空间0,1,2,3,4及1个扩展的ROM),传输等待周期及总线宽度可编程。另外,PCI9030内含预充电BIOS、早期电源支持、热交换控制/状态寄存器(HS-CSR)和附加引脚资源,可利用这些资源以及ENUM#,CPCISW和LEDon#实现运动控制板卡的带电热插拔的软硬件控制。由于PCI9030完全符合PCIv2.2规范,所以只需将对应管脚互联即可,这里不再赘述。但需注意要将需要预充电的总线引脚上拉至预充电电压,PME#,RST#,ENUM#,INTA#上拉至PCI的I/O工作电压VI/O,且RST#接至总线HEALTH#与PCI-RST#的组合逻辑输出端。
3.2 E2PROM与PCI9030连接
E2PROM用来对完成PCI9030的初始化,在整个系统中起着极其重要的作用。本系统的E2PROM选用National公司的NM93CS66L。它是一个4 kB的低功耗串行存储器,用来存储PCI9030的配置信息并在芯片复位时进行加载,从而使运动控制卡具有即插即用的功能。其与PCI9030的连接原理图如图2所示。其中,NM93CS66L的片选信号CS、串行时钟信号SK、数据输入DI和数据输出信号DO分别与PCI9030对应的信号相连;保护寄存器使能信号PRE接地来使能对存储空间的操作,同时禁止对保护寄存器的操作;编程使能信号PE接3.3 V来允许对存储区的操作。
3.3 热插拔控制器与CPCI总线的连接
为了使板卡在热插拔的过程中,不对CPCI总线产生冲击,不影响CPCI总线上数据的传输,则需要一个良好的电源切换控制电路。这里选用LTC1643AL实现这一功能。LTC1643AL与CPCI总线的连接原理图如图3所示。
在上电过程中,3.3 V和5 V电源由N沟道通路晶体管控制通断,±12 V电源由内部通路晶体管控制。电阻R1和R2提供电流失效检测,R5和C1提供电流补偿,R3和R4用来防止在Q1和Q2处的高频震荡。当ON#脚被拉低时,通路晶体管被打开且将有22μA的电流源连接到TIMER脚。随着经过通路晶体管电流的逐渐增加,供电电压达到限制值。每种电源的上电速率由62μA/C1所决定。在TIM-ER脚的电压小于12 VIN-0.9 V的过程中,电流限制失效检测被忽略。一旦4种供电电压达到正常范围,PWRGD#将会被拉低。
对于CPCI数据总线的1 V预充电电压由LT1117生成,其输出电压设定在1.8 V,经过二极管1N4148后产生1 V的预充电电压。
3.4 MCX314与PCI9030的连接
MCX314是日本Nova公司推出的4轴运动专用控制集成电路,能用于步进电机或脉冲型伺服驱动的位置、速度和插补控制,可用于工业自动化设备、工业机器人、测量设备、办公设备和家用电器等。其可以进行各轴(x轴、y轴、z轴、u轴)独立的定位控制、速度控制,也可在4轴中选择任意的2轴做圆弧插补、2或3轴做直线插补,插补精度是±0.5LSB。默认输入时钟为16 MHz,脉冲输出速度最高可达4 MPPS。MCX314还有伺服电机反馈输入(编码器信号、到位信号和报警信号)、加/减速驱动、软硬件限位、自动原点搜索、同步动作、输入信号滤波等功能。MCX314能与8位或16位数据总线相连,其所有的功能都是通过读写内部命令寄存器、数据寄存器、状态寄存器和模式寄存器而实现。各轴都有32位的逻辑位置计数器(对输出的驱动脉冲计数)、实际位置计数器(对外部编码器计数)和比较寄存器,实现位置的闭环控制。各轴都有4个通用输入(可用于限位、原点信号输入)和4或8个通用输出(通过软件设置来实现)。
MCX314与PCI9030的连接原理图如图4所示。PCI9030具有可编程的片选信号,可通过配置片选基地址寄存器使得在某一局部地址范围内产生片选信号,这样就节省了译码电路,使得应用更加方便。通过对局部地址总线寄存器进行配置,将PCI9030的数据总线配置为16位,此时LBEI#就作为LAl来使用。
由于本设计采取的是地址、数据线非复用方式,则将MODE接地,且为了保证数据总线的所有数据均可用将分别代表高8位数据有效和低8位数据有效的LBE3#,LBE0#置低。
为了将MCX314配置为16位数据总线,将H16L8置高,且将测试管脚和外部单步插补控制脚置高,即不允许硬件外部单步插补。其余与电机驱动器连接如图4所示,这里不再赘述。需要注意的是,如果编码器存在Z相,则只需将Z相接至任何一个通用输入端,通过软件实现对编码器的读取。
4 驱动程序的编写
经过对同类驱动开发工具的比较,决定采用Wind-Driver开发驱动程序。这个开发工具不必熟悉操作系统的内核知识就可以快速地开发出驱动程序,对于开发者来说很方便。
在开发过程中,使用向导生成的驱动程序框架代码,然后在此基础上略加修改,就可以在用户模式下调试代码。具体流程如下:在Driver Wizard界面下,选中自己的设备并生成安装信息,点击下一步对I/O、内存等资源进行调试,并完成对工作寄存器的配置,然后生成相应代码,最后在驱动程序中添加自己所需的代码即可完成驱动程序的编写工作。#p#分页标题#e#
5 结 语
本运动控制卡已经在汽车驾驶机器人的控制系统中得到应用。应用结果表明本运动控制卡性能稳定,接口丰富,应用方便,可以通过对寄存器的操作轻易地完成对4个轴实时有效的运动控制,具有良好的应用前景。
转载请注明出处。