此设计是基于USB-FIFO并行接口模块DLP-USB245。此模块提供8位双向数据总线和控制信号(WR,,TXE),可用于控制PC和采用USB协议的任何外电路之间的数据流。采用此模块不需要处理USB接口的麻烦复杂的事情。此单元与驱动器软件一起通过任何高级语言能容易和快速控制模块的功能,而不用过多地操心USB协议。USB(通用串行总线)有很多优点,广泛应用于总线应用中。本文所示的4步进电机用的USB基控制器就是一个应用实例,此控制器是用便宜的现成元件构建的。此电路不需要微控制器DSP。此电路用简单的逻辑电路和应用软件来控制步进电机的选择、顺时针或反时钟运行和步大小(全步,半步或微步)。
此控制器电路(图1)其他电路包括通用数字元件:8D触发器(74LS273)、反相器(7416)、3-8译码器(74LS138)、达林顿阵列驱动器(ULN2003)。外部5V电源连接到USB-FIFO模块的引脚3、10、11。
电路工作如下:当PC没有数据送到USB-FIFO时,USB-FIFO发送缓冲器是空的,而保持逻辑1。此使和到8D触发器(IC2)的CLK为逻辑。所以IC2的输出保持不受影响。然而,假若PC送1字节到USB-FIFO接收缓冲器,则拉到低态,自动指示数据的最低1个字节有效。经过短延迟后,量位和CLK到逻辑1,发送缓冲器的数据字节输出(DO~D7)锁存在IC2输出。一旦数据传输完成而且假若发送缓冲器变空,则返回到逻辑1。这意味着无更多数据可用。依次置位到低态,可进一步进行数据转输。
锁存数据的低4位(IC2的Q0~Q3)驱动其他4个74LS2738D触发器(IC4~IC7),而输出Q4和Q5控制3-8译码器(IC3)。反相之后,译码器输出(A’,B’,C’,D’)做为IC4~IC7的时钟。达林顿阵列驱动器(IC8~IC7)升高IC4~IC7的输出,用于驱动步进电机线圈。因此,写1个正确的数据字节到IC1,PC可以选择4个步进电机中的一个电机并供电给所希望的线图。
例如,PC送OXOA到USB-FIFO,则选择步进电机1,在图形L1L2L3L4=1010下激励其线图。为了使步进电机前进一步,PC送OXO9做为下1个字节;反之,为了反向运行步进电机,PC送OXO6。表1列出步进电机控制(全步)字节数值。采用适当的变化,可以使电机工作在半步和微步状态。写字节的速率,即连续数据写之间的时间控制步进电机的速度。
步进电机控制字节值
除电流升高器和USB-FIFO变换器外,电路中的其他元件可以在1个CPLD/FPGA中实现。电机控制软件可以用C,VB或图像程序(如LabWIEW)进行开发。假若用IC1提供的VCP(VirtualCOMPort)驱动器软件(可免费下载),应用程序将视USB步进电机控制器模块做为另1个COM端口。但是,忽略设置波特率的命令,以最快的速率发送数据,而不管应用波特率设置。也可以用Windows提供的D2XXDirectDrivers,这样可以直接控制每个操作,如FIFO写等。
!--EndFragment-->