态。
目前usb设备的发主要体现在便携式辅助存储器设计如u盘及数码相机等的扩展存储器,一般仅仅局限于数据的采集,而忽略了客户端软件(应用程序)的设计,且数据采集速度较低u2mbit/s),没有真正实现上下位机的数据互相通信。在发过程中一般采用把(sb接口芯片与主控制器集成的方法,此类产品通用性较差,价格较贵,不能灵活满足实际配置要求。因此,采用philips公司的usb接口芯片isp1581,将系统的控制部分做成一个usb设备,既满足了系统的需要,又增加了系统的灵活性。
2控制器的硬件设计系统硬件结构图为整个系统的硬件结构图。主要有主控制器p89c668,usb接口芯片isp1581,驱动芯片ir2110等。系统中pc机完成参数设定、数据采集及处理的功能。微控制器p89c668与pc机完成usb通信,并实现对超声电机的控制。usb接口的采用,实现了运动控制和pc机的高速数据传输。利用光电编码器进行速度反馈,实现闭环控制。
p89c668单片机内带64kbflash存储器,可以方便调试工作,该存储器既可并行编程也可以串行在系统编程(isp)。设计时通过pc机的串口,将调试好的程序用编程器固化在flash中,这个过程称为固件编程。p89c668新增特性使其成为一个功能强大的单片机,它有5个16位捕捉/比较模块和定时器连在一起,每个模块可编程在脉冲宽度调制模式,且每个模块的占空比单独可变,因此pwm的输出可满足可调的电机控制信号的需要。
1sp1581是philips公司推出的一款高性价比的usb2.0接口芯片。它支持高速(480mbit/s)操作,又支持全速(12mbit/s)操作。内部集成有串行接口引擎(sie)、pie、8kb的fffo存储器、数据收发器、pll的12mhz晶体振荡器和3.3v的电压调整器。同时,可通过软件控制与usb总线的连接(softconnect),isp1581内部具有上电复位电路,支持3.3v和5v二种电源工作方式。isp1581没有内嵌mcu,这样可根据不同系统需求,搭配不同的mcu,提高了系统的灵活性。在本系统中isp1581与mcu的通信是通过一个高速的通用并行接口pl,p3实现。这些高速的微控制器接口极大地提高了系统的信息吞吐量,也解决了usb1.1速度低的问题。在设计时选用了控制传输、中断传输和批量传输。
微处理器接口类型。isp1581内部有两种总线结构配置,由于p89c668为8位,此处选用断开总线工作模式,此时ad作数据/地址复用线,data仅作dma数据总线。
ir2110是一种性能比较优良的驱动集成电路,具有独立的低端和高端的输入通道;高端悬浮自举电源的设计;工作频率高,可达500khz;输出电源端(功率器件的栅极驱动电压)电压范围1020v;逻辑电源电压515v,可方便地与ttl,cmos电平相匹配;兼有光耦隔离(体积小)和电磁隔离(速度快)的优点,可以使电机驱动电路更加紧凑。
3控制器的软件设计系统软件部分由固件编程、计算机端设备驱动和应用程序三部分组成。
3.1固件程序设计固件编程是整个usb数据传输系统中设备程序设计的重要部分,它直接影响着usb设备的数据传输速度。编程时采用模块化思想,每个模块实现一定功能,编程工具采用keil公司的c51开发软件keiluvision2,固件程序主要分为以下几块:initc负责初始化单片机和所有的外围电路;main.c启动设备和系统的工作,负责跟踪usb事件,当事件发生时引导执行相应程序;1srx是中断服务程序,对中断进行判定并将事件信息传递给其它的程序,这里可视为后台处理,而mam.c相当于前台处理,当前台检测到状态变化就跳到相应地方进行相关程序的处理;vender.c主要是厂商定义命令,处理厂商请求;chap9.c包含主要的usb协议,在主机和设备之间建立一个基本连接。
固件主循环程序流程图isp1581中断服务程序流程图值得注意的是:微控制器在上电后完成所需要的初始化工作后,通过设置isp1581方式寄存器中的软件连接位(softct)可使外设连接到usb总线上。主机检测到有设备连接后会进行总线复位,在此期间,isp1581将发送高速(hs)模式检测信号来判断主控制器支持的是usb2.0还是usb1.1规范,若接收到一个高速(hs)握手信号,则表明有一个hs主机与总线相连,此此isp158i将转换到高速(hs)状态,否则仍工作在全速(fs)状态。主循环程序流程如,中断服务程序如。
3.2设备驱动程序设计驱动程序是连接应用程序、硬件和操作系统的桥梁。驱动程序要解决设备初始化、空间配置、端口操作、中断处理、内存分配和与应用程序间通信的问题。usb设备驱动程序包括函数驱动程序和总线驱动程序两部分,这两部分之间是通过i/o管理器创建和i/o请求信息包来进行通信的。在win32系统中,计算机把每一个设备都抽象成文件,对设备的操作也就是对文件的操作。
3.3应用程序设计应用程序采用microsoft的visualc++6.0编写,usb的客户应用程序实际上是对客户端设备映像的操作,在编写的easyisp1581ex动态库中,提供了对isp1581所有端点的接口函数,通过调用这些函数,不必了解复杂的usb协议也可快速完成usb应用程序开发。其中主要有:从在软件编程中需要注意以下几点:一是isp1581的8kbfifo是所有端点共享的,所以在设定各个端点传输包大小时,其总和不能超过8kb;二是在调试时,可根据windows对usb设备的枚举顺序进行程序调试;第三,为做到与usb1.1兼容,在全速状态下响应主机标准请求时,需要发送全速描述符。
4结束语该系统充分利用了usb总线的优越性,突破了控制系统与pc机之间通过以rs-232为基础的异步串行通信方式,较好地解决了通过pc机usb口与底层控制系统接口和通信问题以及日益增加的pc外设与有限主板插槽和端口之间的矛盾,作为一种高速总线接口,usb适用于多种设备,可以预见在以后的工业控制和应用中,usb将具有更广泛的应用前景。
——此文章转载于互联网,文中观点与本网站无关,如有侵权请联系删除