基于PDIUSBD12芯片的USB应用开发
序和总线驱动程序。用户主要开发客户驱动程序即可,蓁其余更底层的操作系统已经为用户准备好。客户驱动程序由一系列的例程(也即一般程序的函数)组成,它没有main()函数入口点。因此,USB设备和驱动程序打交道必须由操作系统的IO管理层参与,它使用了一种全局量叫作IO请求包即IRP。主要工作原理如下:
(1)开始时用户应用程序向驱动程序发出请求(Windows API函数),并将相关的数据打包成IRP,IO管理器捕获这个IRP包并进行相应的处理。
(2)IO管理器向客户驱动程序发送IRP请求包,请求客户驱动程序进行相应的处理。
(3)客户驱动程序处理完接收到的IRP,设好相关环境后将之传给更底层的驱动程序,最后由总线驱动程序完成对硬件的操作,并将结果返回。
用户要做的事就是开发客户驱动程序。本课题用的是基于WIN2000 DDK的DriverWorks驱动程序开发工具,同时还要VC++6.0编译环境。这种工具可生成驱动程序框架,用户进行修改并加入自己要实现的功能即可,大大缩短了开发的时间。
4 用户应用程序
应用程序是实现硬件功能的全部体现。但应用程序不能直接访问USB设备,它必须先与驱动程序通信,通过驱动程序来访问USB设备。它的工作是向硬件发送数据或命令,这些数据和命令由驱动程序经过层层处理,最后发送到硬件实现相关的动作。应用程序与驱动程序打交道主要是通过操作系统的API函数。
其工作原理如下:
(1)应用程序通过调用CreateFile API函数取得USB设备的句柄。该符号链接包含一个全域惟一标识符(globally unique idenTIfier,GUID)。GUID是一个128位的号码,Windows用来惟一识别一个设备对象。
(2)通过这个句柄,应用程序通过调用ReadFile和WriteFile API函数来读写USB设备,将数据返回到用户缓冲区。
(3)通过这个句柄,应用程序通过调用DeviceIoControl API函数来向USB设备发出控制命令,以实现特定的要求,这个函数还可能有相应的数据传输。
(4)应用程序处理从USB设备接收到的数据,如果出错,将给出相应的警告,如果成功,处理完后关闭设备的句柄。
应用开发 USB 芯片 PDIUSBD12 基于 相关文章:
- iOS平台应用开发的敏捷设计流程(09-12)
- SPE61A单片机的非接触式高压验电器的应用开发(06-23)
- 采用PDIUSBD12芯片的USB应用开发(05-02)
- 基于Android嵌入式平台传感器应用开发水平仪(04-16)
- 基于Android的多媒体应用开发与研究(03-05)
- 嵌入式PLC芯片组的多路模拟量应用开发(12-12)