图3中:TD_Init()为初始化全局变量;TD_Poll()为用户功能;TD_Suspend()为响应挂起事件;TD_Resume()为响应外部唤醒事件。
EZ-USB使用8051的INT2来响应21种USB中断,自动矢量(Autovector)机制帮助使8051内核进入相应的ISR(Interrupt Service Routine中断服务例程)。在初始化函数中加入使能EZ-USB的SOF(帧起始)中断语句,可以开始同步传输。每1 ms开始发生SOF中断,标志帧的开始。在SOFISR中从外部FIFO读取一个包长度的字节数据到端点缓冲区中。
3.2 驱动程序设计
USB客户驱动程序是支持即插即用功能的标准WDM(Windows Driver Model)驱动程序,这是分层的驱动程序模型,即设备驱动被分成了若干层,典型地分成:高层驱动程序、中间层驱动程序、底层驱动程序。每层驱动再把I/O请求划分成更简单的请求,以传给更下层的驱动执行。最底层的贴片电感驱动程序在收到I/O请求后,通过硬件抽象层,与硬件发生作用,从而完成I/O请求工作。在这样的架构下,上面的驱动层就不需要对每个操作系统都要开发一遍了。USB客户驱动程序接收I/O管理器发来的IRP(I/ORequestPacket),构造URB(USBRequest Block)传递给主控制驱动程序接口USBDI。在USBDI的基础上进行编程将大大简化,用户不用关心IRP的类型,而只需要在相应的分发例程中通过构造URB(USBRequestBlock)并将其通过USBDI发送下去就可以实现对USB设备的控制了。
![]() |
开发USB设备驱动程序的工具目前广泛应用的主要有2类:
(1)Windows DDK(Device Driver Kits),DD一体电感器K基于汇编语言的编程方式和内核模式的调用,对没有深厚的操作系统原理和编程水平的人员来说,任务相当艰巨。
(2)NuMega公司的Driverstudio工具开发包,其中的DriverWorks实际上实现了对DDK类的封装,可以提供给用户驱动程序的开发框架,只需用户在相应的电感器企业代码段中加入自己系统的控制代码即可,不必了解内核机制,大大加速了USB外设的开发速度。本系统就是使用DriverWorks来开发USB设备驱动程序的。生成的应用接口函数在VC"中调用,大大降低了主机软件的难度。
3.3 用户应用程序设计
应用程序实现的功能有:启动/关闭USB设备,设置USB数据传输管道/端口,采集数据,显示数据等。这里,采用VisualC++6.0作为程序的开发环境,并且充分运用了多线程的编程思想。从而实现同时进行数据采集与实时显示。
为了实现与驱动程序的通信,应用程序首先创建一个事件和一个线程,再将事件句柄传递给WDM,用这一线程来等待WDM发送的事件消息,接收到事件消息后,就读取驱动程序的数据,显示数据。
在Windows中,Win32电感生产应用程序调用的APl函数有5个;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。
应用程序为打开一个WDM设备驱动程序,使用CreateFile()函数。他的第一个参数是一个符号链接名。如果用DriverWorks创建一个WDM驱动程序,通常会用类KUnitizedName生成一个设备符号链接名。这名字的后面有一个数字,一般是一个o。例如,若符号链接名为"USBDevice",则传递给CreateFile()的是"\\\\.\\USBDevice0"。
一旦应用程序获得设备的有效句柄,他就能够调用Win32函数,这将产生对应于此设备对象的相应IRP,发送给驱动程序,完成相应功能。这种关系如表1所示。
![]() |
4 结 语
本采集系统利用USB技术实现与计算机通信,有众多的优点:
①安装方便,支持即插即用。扁平线圈电感制造厂
片上系统(SOC)设计流程及其集成开发环境片上系统(SOC——System-On-a-Chip)是指在单芯片上集成微电子应用产品所需的全部功能系统,其是以超深亚微米(VDSM-VeryDeepSubnicron)工艺和知识产权(IP——Int
saber仿真错误问题 我用saber仿真了一个反激的开关电源,提示找不到直流工作点:如下:
> tr (monitor 100,tend 1m,tstep 10n*** ERROR "CLASS_IP_NOT_FOUND" *** The initial point "dc" is n
车载吸尘器,无刷电机显示灯降压恒流驱动IC 高亮+AP2402 是一款 PWM 工作模式,高效率、外围简单、内置功率管,适用于 5-100V 输入的高精度降压 LED 恒流驱动芯片。 输出最.大功率可达 15W,最.大电流 1.5A。 AP2402 可实现三段功能切换,通过 MODE1/2/3 切换三种功能模式:全亮,半亮,爆闪,全亮/半亮/爆闪循环模式。 AP2402 工作频率固定在 150KHZ 左右,同时内置抖频电路,可以降低对其他设备的 EMI 干扰。 另外采用平均电流采样模式,可以提高宽输入电压情况下的电流精度。 AP2402 带有输出短路保