基于USB的运动控制平台及采集卡的设计
扫描二维码
随时随地手机看文章
1 引言
基于PC机各种总线的步进电机或数字式伺服电机的上位控制单元,总线形式多种多样,高速总线可以采用ISA、PCI、USB等总线技术。通常使用的是基于ISA总线、PCI总线。由于计算机主板的更新换代,ISA插槽使用的越来越少了PCI总线的运动控制卡成了目前的主流。但是PCI总线存在一些缺陷:易受机箱内环境的影响,受计算机插槽数量的地址、中断资源的限制而不可能挂接很多设备等。USB总线具有安装方便、高带宽、易扩展等优点,其中USB2.0标准有着高达480MB/s的传输速率,已经逐渐成为计算机接口的主流。而且,通用串行总线USB为多点数据采集提供了很大的便利,利用USB可以实现比传统方式更有效、更经济、点数更多的数据采集。USB数据总线已经在各种计算机上得到普及,成为计算机的标准设备。
2 系统体系结构
基于USB总线的运动控制平台及采集卡系统按照功能的划分,主要包括3个方面:USB接口设计,通过USB接口实现PC机与单片机的通讯;电机的驱动,采用电机驱动芯片UC3717A;数据采集问题,数据采集的目的是为了监控外界情况,步进电机的工作环境例如温度,以及捕获运动轨迹等,它是通过传感部件利用传感器监控外界,将采集的信息作模数转换后传递到单片机,由单片机送到微机,作分析、显示。系统的体系结构如图1所示。
图1 系统的体系结构
系统的工作过程就是一个数据采集和控制步进电机运行的过程,其中的每一步都需要不同组的支持。首先,温度和压力参数经传感器转换成模拟信号,模拟信号经过A/D转换变单片机可识别的数字信号;接着单片机将数字信号进行处理之后,就可以送往LED显示或者发送给USB接口芯片;然后USB接口芯片在主机需要的时候,把接收到的数据经USB总发送给主机进行处理和显示;最后将处理的结果经USB总线和单片机来控制步进电机的运行。
3系统的硬件电路设计
USB数据采集系统的硬件电路结构主要包括以下几个部分:USB通信电路部分、数据采集电路部分、步进电机驱动。模块的功能都是在以ATmega16为核心的硬件平台上实现的。
3.1 USB通信电路的设计
USB通信电路的功能是实现数据采集系统设备端和主机端之间的通信,这一功能主要是由核心微控制器ATmega16和USB控制器件PDIUSBD12实现的。其中,PDIUSBD12是符合USB1.1协议的芯片,在USB通信电路中起着联系设备和主机的桥梁的作用。微控制器ATmegal6和USB控制器PDIUSBD12之间通过8位并行总线进行通信,8位并行总线在ATmegal6端需要连接8个I/O口。PDIUSBD12片内集成了时钟乘法PLL,晶振电路使用6MHZ的晶振和两个2pF到68pF的电容。PDIUSBD12的信号输出端D+/D-上要各串接一个18欧的匹配电阻。通信电路如图2所示。
3.2 数据采集电路的设计
数据采集电路的功能就是将现场的温度、压力以及应力等数据转换成合适的模拟信号,再把模拟信号传送给A/D转换电路。此模块包括温度采集模块和压力采集模块两部分。
温度数据采集使用了DS18B20,它是美国Dallas公司生产的数字化温度传感器,世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。测量温度范围为-55°C~+125°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。新一代的DS18B20体积更小、更经济、更灵活。将采集的温度送至ATmegal6内部的采样保持电路,然后进行放大、A/D转换,再经过固件程序的换算就可以得到测量温度了。
在本系统中,测量压力采用的器件是广州森纳士仪器有限公司生产的压力变送器,其量程是0.0lMPa,输出信号是4~20mA的电流。当压力改变时,输出电流也随之发生变化,所
以在信号输出端接一个精密电阻,然后对电阻两端的电压进行采样和转换,再经过固件程序的换算就可以得到测量压力了。
3.3步进电机驱动电路设计
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。[!--empirenews.page--]
电机驱动电路主要由驱动芯片组成,本系统使用的电机驱动芯片为UC3717A。UC3717A芯片使用非常简单,它通过3个输入管脚(Phase、I1和I0)分别图单片机引脚连接来接收输入的参数,在2个输出管脚(Aout和Bout)上与电机连接输出相应的控制信号。由于UC3717A包含一个H桥,因此电机驱动电路有两片UC3717A对应部分相连构成完整的驱动电路。如3微部分驱动电机驱动电路图。
图3 部分驱动电机驱动电路
3.4 LED显示电路设计
如图4所示,该系统的显示是使用的静态显示,应用74LS164的串入并出的特点,将显示编码通过单片机的串口发送到74LS164上锁存而实现稳定的静态显示。在74LS164和数码管之间串接1K的电阻限制电流,起到保护作用。
4系统的软件设计
USB数据采集系统是一个多任务系统,而且程序结构也比较复杂,为了提高开发率,增强系统的稳定性,降低开发和维护成本,就需要一个嵌入式操作系统作为系统发和运行的平台。μC/OS-Ⅱ作为一个源码公开的免费型嵌入式实时操作系统,其稳定性好、可靠性高,而且μC/OS-Ⅱ还具有移植性好、可固化、可裁剪等特点,非常适合作为USB数据采集系统的开发平台。
USB数据采集系统的软件由三个部分组成:USB设备固件程序、主机PC上的USB设备驱动程序和主机上的客户应用程序。系统软件的组成及各部分之间的关系如图5所示。
图5 系统软件的组成
设备固件程序按功能可以划分为USB通信程序、单片机上的A/D转换程序和LED显示程序,以及单片机对步进电机驱动芯片控制程序,其中USB通信程序是整个固件程序的主要部分,其功能是实现USB设备枚举和数据传输。USB设备枚举是USB设备插上之后,主机与设备交换信息并自动配置的过程,枚举成功后,USB接口与主机就可以进行通信了。
设备驱动程序是连接设备和主机应用程序的纽带,它向上提供应用程序的访问接口(API),向下则实现对具体设备的访问和管理功能。驱动程序与设备硬件和上层用户程序密切相关,在USB体系的中间起到信息转换和传递的中介作用。在开发USB设备时,设备驱动程序的设计是一个非常重要的环节,直接影响到整个设备系统的性能。本系统采用Driverworks开发WDM型USB设备驱动程序
应用程序的主要功能是在设备驱动程序中查找设备,与设备交换数据,并将设备发送来的数据进行处理和显示。应用程序和驱动程序的通信是通过访问应用程序接口(API)函数实现的,所以应用程序的开发必须在能访问API函数的平台上进行。Microsoft公司提供的Visual Studio .NET是一种功能强大的支持API函数的编程工具,本设计的主机应用程序就是以.NET为平台进行开发的,其功能主要包括查找USB设备,与USB设备交换数据和动态显示数据曲线。
5 总结
本文的创新点是改变了传统的用微机PCI、ISA、串并行口做通讯口,改用高速的USB接口作为通讯口,有利于速度的提高,也方便了使用及携带,为以后的改进和扩展提供了余地;其次,将数据采集功能集合到控制卡里,也是本文的一个特点:电机运动过程中,为了监控驱动器的工作环境,需要采集温度数据;同时将运动轨迹的有关数据采集进来,作为插补和调整的依据,并且将输出电机的运动命令和及时传回电机轨迹状态相结合,形成了控制平台和数据采集为一体的模块,数据采集的过程是个实时的过程,是在电机运动中同步完成的;最后本系统是开放性的实时系统。该项目实施半年以来,创造经济效益60多万元。