专业的微特电机产品发布平台
用户名: 密码: 注册
设为首页 加入收藏 联系我们
免费注册 企业免费建站
新技术论坛 会员产品发布
TB6600QQ群:70241714   步进电机论文   六轴工业机器人解决方案  
步进电机     驱动器     控制器     马达IC     伺服电机     无刷直流电动机     微特电机文献     工控器件     运动控制新产品     六轴工业机器人    
首 页   |   行业资讯   |   业内搜索   |   网站介绍   |   超级服务   |   新技术论坛
论坛公告: 中国步进电机应用网:http://using.zgbjdj.com/
  文章标题:基于USB通信的多直流电动机控制系统
回复文章
作者:bellcn88  发表时间:2010-2-26 11:35:44
基于USB通信的多直流电动机控制系统
姜伟凯,李雏
(上海大学,上海200072:)
    摘要:将USB数据通信用于直流电动机控制系统,采用PICl8F4550单片机和LM629组建了闭环的高精度数字式直流电动机驱动模块。通过一个实例,介绍运动参数传递的全过程。
    关键词:USB通信;直流电机;运动控制
    中圈分类号:TM33  文献标识码:A  文章编号:1004—7018(2008)06—0040—02本文利用USB的可拓展性开发可以按照需要扩增和缩减的直流电动机计算机分级控制系统。系统中将一台个人计算机作为USB系统中的主机。通过USB数据传递控制一块或多块驱动一执行模块,如图1所示。每个模块含有一片PICl8F4550单片机、两片LM629直流电动机专用控制芯片、一片L298驱动芯片、两台带有同轴光电码盘的直流电动机。其中PICl8F4550单片机是USB系统中的关键节点。图1中的USB Hub部件为USB集线器(扩展USB的联接端口)。
1个人计算机与PICl8F4550单片机之间的USB通信
  PICl8F4550是微芯(Mierochip)公司推出的具有全速USB 2.0连接功能的单片机,内置SIE(SerialInterface Engine)引擎,SIE能完成单片机RAM存储区与USB主机内存之间的数据传输。该单片机中有1 kB的RAM可用于USB缓冲器(USB RAM),最多可以配置16个USB通信端点(Endpoint)。当USB主机向PICl8F4550发送数据时,SIE把接收到的数据解码后移送到相应的通信端点,当单片机发送数据时,SIE把端点数据编码后发送给USB主机。
    USB节点设备种类繁多。为了使主机能够正确识别特定的节点设备,从而加载合适的USB驱动,规定每一种节点设备都有设备厂商号(Vendor ID)和产品号(Product ID)。在枚举(enumeration)过程中,计算机通过发送查询命令来获得设备的这两种节点特征以及其它信息。USB主机通过枚举识别USB设备并给新连接的设备分配相应地址。枚举完成后,可以在客户程序中用Mierochip提供的动态链接库(MPUSB.d11)中的函数(MPUSBOpen),打开
连接主机内存和USB RAM中的相应通信端点的虚拟通道(pipeline),并返回一个指向该通道的旬柄(han dle),在以后的编程中,就用该句柄变量代表该通道。
    下面列出一个从个人计算机到PICl8F4550单片机的参数传递实例:
    (1)在客户程序中,将被发送的参数赋值给一个数组(send—bur)中的各个元素
    (2)用MPuSBOpen函数建立一个发送数据的通道OutPipe=USBOpen(0,vid—pid,0ut—pipel,MP—WRITE,0);
    其中第一个参数O表示uSB设备序号。参数vjd_pid表示芯片厂商号和产品号。参数out_pipel表示发送管道1。参数MP WRITE表示该管道用于发送数据。函数返回的句柄值OutPipej将用作于MPuSBWrite函数中的参数。
    (3)用MPuSBWrite函数把含有控制参数的数组send_buf从uSB主机发送给第一个uSB设备(设备序号O):
    uSBWrite    (OutPipe,  send_buf,  8,&SenADataLength,1000);
    (4)在MPLAB—IDtE集成开发环境中编写用于PIcl8F4550单片机的固件程序。
    用数据传送函数将接收到的参数从uSB RAM(要事先分配地址和容量)复制到一个数组(data.
    (5)将数组中元素值赋给指定变量。例如,将加速度、速度参数赋给指定变量
    mA=dataPacket[2];
//把发送过来的加速度值保存在变量mA
    mV=dataPacket[3];
//把发送过来的****速度值保存在变量mv
    (6)用数据传输指令将变量的值通过单片机的端口D,发送给芯片LM629。下面是一个发送加速度数据的例子。
    LM629_sTATUS_CHK();
//对LM629进行忙(busy)检测,如LM629不处于忙状态,则进行发送加速度数据的操作。
    PORT

 

  共有记录条,共页,条/页  转至页
回复此文章主题
  用户名: 密码: 注册新用户
回复内容:
 
设为首页   |   加入收藏   |   联系我们   |   站长留言   |   广告服务   |   友情链接   |   免费展示
网站实名:步进电机网 步进电机驱动器网 微特电机网 网站地图 新闻中心
版权所有:北京时代四维科技有限公司
© Copyright By www.zgbjdj.com
京ICP备11042559号-1