“基于 PC 机各种总线的步进电机或数字式伺服电机的上位控制单元,总线形式多种多样,高速总线可以采用 ISA、PCI、USB 等总线技术。通常使用的是基于 ISA 总线、PCI 总线。由于计算机主板的更新换代,ISA 插槽使用的越来越少了 PCI 总线的运动控制卡成了目前的主流。
”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 所示。
系统的工作过程就是一个数据采集和控制步进电机运行的过程,其中的每一步都需要不同组的支持。首先,温度和压力参数经传感器转换成模拟信号,模拟信号经过 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 步进电机驱动电路设计
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
电机驱动电路主要由驱动芯片组成,本系统使用的电机驱动芯片为 UC3717A。UC3717A 芯片使用非常简单,它通过 3 个输入管脚(Phase、I1 和 I0)分别图单片机引脚连接来接收输入的参数,在 2 个输出管脚(Aout 和 Bout)上与电机连接输出相应的控制信号。由于 UC3717A 包含一个 H 桥,因此电机驱动电路有两片 UC3717A 对应部分相连构成完整的驱动电路。如 3 微部分驱动电机驱动电路图。
3.4 LED 显示电路设计
如图 4 所示,该系统的显示是使用的静态显示,应用 74LS164 的串入并出的特点,将显示编码通过单片机的串口发送到 74LS164 上锁存而实现稳定的静态显示。在 74LS164 和数码管之间串接 1K 的电阻限制电流,起到保护作用。
4、系统的软件设计
USB 数据采集系统是一个多任务系统,而且程序结构也比较复杂,为了提高开发率,增强系统的稳定性,降低开发和维护成本,就需要一个嵌入式操作系统作为系统发和运行的平台。μC/OS-Ⅱ作为一个源码公开的免费型嵌入式实时操作系统,其稳定性好、可靠性高,而且μC/OS-Ⅱ还具有移植性好、可固化、可裁剪等特点,非常适合作为 USB 数据采集系统的开发平台。
USB 数据采集系统的软件由三个部分组成:USB 设备固件程序、主机 PC 上的 USB 设备驱动程序和主机上的客户应用程序。系统软件的组成及各部分之间的关系如图 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 多万元。
分享到:
猜你喜欢