读写都有8个寄存器,这个寄存器的位数为16位,也就是说,如果使用8位总线,则高低地址是不同的,这时候需要4位的地址总线。这个好理解,下面看这些实际的寄存器的位定义。- 命令寄存器,各轴的WR0用来进行各轴的设定和命令的寄存,如果使用8位总线,则先写入高8位,然后写入低8位,然后BUSYN拉低开始解释此条寄存器,解释玩以后才能继续写入下一条WR0,此时需要等待BUSYN信号拉高。
各位的定义如下,后面8位是指令代码,这个在后面会有专门的详细讲述,用来对轴参数进行设置,接着是四个轴,如果设置为1,则表示设置该轴的参数,还有一个复位的位,当此位位1,其他位为0,则会先写入完命令以后,开始复位。而如果要写入其他命令,切记此位必须位0,否则会造成数据不稳定。
各轴都有状态寄存器,这个状态寄存器包括IN0~IN3的使能,减速停止信号的极性,以及8中中断的使能设置。
其中低两位用于,当实际位置大于比较寄存器中的值,此时D0标志为1,再写入正向运动的数据不再起作用,另外一位小于最低限值时候,D1为1,不再接受反向数据。D2用来设置,当硬件限位时是减速还是立即停止。
D3和D4用于正向和反向限制信号的输入,0为低电平有效。D5,比较寄存器比较的来源是实际位置还是逻辑位置。D6设置单脉冲和双脉冲。D7和D8配合设置单双脉冲。D9设置编码器的输入模式。D10和D11设置编码器的倍频数,D12设置ALARM的有效电平,D13是伺服报警是否要接收,D14是INPOS引脚的电平,D15是INPOS是否使能。
D0为自动或者手动减速,D1设置加速和减速值是否相同,D2设置为线性加减还是S形加减。D3,D4为外部脉冲驱动的设置,D7为设置OUT4~7是状态还是通用输出。另外的D8~D11用来设置通用输出时的状态。
这个可以用来作为16位的通用输出,该位位1时输出高电平,也可以用来作为四个轴的输出信号OUT0~OUT3.
D0和D1用来设置主轴,另外的D3,D4,D5,D6用来设置其他插补轴,D8,D9设定是多少轴进行直线插补。D11打开外部控制单步,D12打开命令控制单步。D14插补中中断使能,D15位插补中断使能。
R6和R7用来存放32位的数据,如果R0需要写入某些数据,则显然先要将R6和R7提前准备好。
另外还有8个状态寄存器。如下:
次低四位用来设置各轴是否有错误,1则表示有错误。
D8,该轴是否在插补。
D9,连续插补是否准备就绪。
后三位用来表示,圆弧插补时,当前位置所在的区域,比如0000表示在第0区,具体的分区见圆弧插补介绍。
D13,D14表示在位插补时候的SC值。
每个轴都有状态寄存器1,在命令里面确定哪个轴被读到。
D0和D1用来表示逻辑/实际位置和比较寄存器的关系。
D2,3,4表示在加速,常速还是减速。
D5,6,7表示加减速增大还是减小,还是保持常数。
D8~11,如果被外部信号停止,则对应IN设置位1。
D12,D13,D14,被正向限制,负向限制,伺服报警限制,设置位1
D15,紧急信号限制。
D2,3,4,外部正向和负向限位,报警限位有效。
D5,紧急制动,变为低电平。
D1,2,3,4逻辑/实际和参考的比较。
D5,D6表示加减速过程开始减速和加速完成。
D7运动完成。
R4和R5是通用输入寄存器,一共4轴的输入信号,见下表
同样对应32位数据,RD0~RD31.
范围设定,S曲线的K系数设定,加速度,减速度,初始速度,驱动速度,脉冲数,手动减速点,圆心,逻辑位置,实际位置,正比较器,负比较器,加速度进位,NOP轴切换。
读取逻辑位置和实际位置,读取当前驱动速度和加速度。
正负方向定长驱动,正负方向连续驱动,暂停,清除驱动开始,减速停止和立即停止。
两轴直线,三轴直线,顺时针,逆时钟,2轴位插补,3轴位插补,使用和禁用位模式寄存器,数据压入位模式寄存器,清空位模式寄存器,单步插补,启动减速,禁止减速,清除插补中断。
最后的一个命令位3D,也就是说,最多需要6位命令码,在WR0中可以看到,WR0中还可以设定对哪个轴进行设置。
上面的命令,有些是要包括数据的,比如量程的设置,这个可以使用先将WR6和WR7中装入数据,然后写入命令,有些命令是没有数据的,比如,设置为2轴插补。这个时候,不要带数据。
硬件接口部分,首先是总线的选择。
ISA是一种比较低级的总线,支持8位和16位处理器,而PCI为高级总线,支持32位和64位的处理器。另外的计算机总线,因为见到很多控制卡用到的都是PCI总线,所以重点关注一下PCI总线。
首先看一下ISA,ISA引脚数量一共有AB各32脚,以及CD各18脚。部分引脚是保留的,包括16位数据,16位地址,以及一些中断请求信号,IO和电源引脚。
这里插入91页的图6-1.
从图中可以看出来,ISA总线连接MCX314,然后控制各轴,各轴包括,光电隔离的低速输入以及高速光耦输入信号,以及用缓冲器做隔离的输出脉冲信号以及通用输出信号。再ISA和MCX314有数据的缓冲。
地址线有3条,一共有8各读写的寄存器,读写的寄存器还要先看看是读写哪个轴的参数和数据。
而MCX314的输出,除了控制4各轴的脉冲,方向和使能外,还有其他的一些参数,MCX314输入输出一共有100个,包括AB两组,定义如下:
这里插入94页的表6-4
中断信号输入,因为ISA有10个中断输入,而MCX314只有一个中断输出,可以设置任意一个作为中断输入。
PCI替代ISA毋庸置疑,因为现在的电脑大部分都不包括ISA接口了,所以重点是PCI总线的应用。
首先,不要搞错了PCI的意思,不是个人电脑接口,而是周边外设互联!peripheral component interconnect.
既然是高达100家企业联合推出的,PCI有如下的优势:
- 高性能
- 低成本
- 使用方便
- 寿命长
- 可靠性
- 适用,兼容,数据完整性
难度在下面:
- 时钟,各个接口按照一个统一时钟,带负载能力差。
- PCI接口逻辑门数量庞大,非常复杂。
- 逻辑电路的参数都必须和PCI兼容,难度很大。
要搞定这些东西,开发难度是巨大的,还好有很多公司开发了专用芯片,最常见的是PLX的PCI90系列。
我们知道,PCI支持32位和64位的器件,而ISA支持8位和16位的器件,而PLX的PCI90就是一个中间桥梁,可以用8位或者16位的器件,通过PCI90来连接到PCI总线上!工作量大大简化!
并且它还支持其他的局部总线,不仅仅只支持PCI到ISA的转换。
那PCI支持ISA,是如何实现的?这里就需要一个EEPROM,这个存储器相当于一个驱动,将PCI90从PCI转到ISA,EEPROM由编程器写入数据后,此时PCI90就通过寄存器分配了引脚,此时就可以当成ISA来用了。
这样,系统就成为如下:
这样,问题就简单了,用51单片机直接连MCX315!
如上的两个图,左边8032通过9133F2连接控制PCI90,右边,通过8032连接MCX314,来控制MCX314进行运动的输入输出功能。
文章评论(0条评论)
登录后参与讨论