功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术支持 您所在的位置: 首页 > 技术支持

基于PDIUSBD12芯片的USB应用开发

来源:    作者:    发布时间:2015-01-16 16:37:07    浏览量:

图3 固件主程序框架

  3 驱动程序开发

  由于现代操作系统对内存、端口等资源均采取了保护措施。一般的应用程序不能够直接访问硬件,必须通过设备的驱动程序。设备驱动程序直接和硬件打交道的,并且运行于操作系统核心态,它像操作系统内核一样具有最高的运行权限,所以它可以直接访问硬件。

USB设备必须使用WDM(Win32共模电感器 Driver Model)驱动程序模型,它是Microsoft公司定义的WIN32驱动程序模型。WDM是操作系统发展到现在的一种新型驱动程序模型,现在已经成为Windows操作系统驱动程序的主流。

  在Windows系统下,和应用程序打交道主要有五层模型:硬件层、硬件抽象层、驱动程序、IO管理层和用户运用程序。从用户应用程序发出的请求一层一层地往下发送。USB的驱动程序还分为客户驱动程序、根集线器驱动程序和总线驱动程序。用户主要开发客户驱动程序即可,蓁其余更底层的操作系统已经为用户准备好。客户驱动程序由一系列的例程(也即一般程序的函数)组成,它没有main()函数入口点。因此,USB设备和驱动程序打交道必须由操作系统的IO管理层参与,它使用了一种全局量叫作IO请求包即IRP。主要工作原理如下:

  (1)开始时用户应用程序向驱动程序发出请求(Windows API函数),并将相关的数据打包成IRP,IO管理器捕获这个IRP包并进行相应的处理。

  (2)IO管理器向客户驱动程序发送IRP请求包,请求客户驱动程序进行相应的处理。

  (3)客户驱动程序处理完接收到的IRP,设好相关环境后将之传给更底层的驱动程序,最后由总线驱动程序完成对硬件的操作,并将结果返回。

  用户要做的事就是开发客户驱动程序。本课题用的是基于WIN2000 D绕行电感DK的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)通过这个句柄,应用程序通过调用Devi销售电感器ceIoC电感器厂家ontrol API函数来向USB设备发出控制命令,以实现特定的要求,这个函数还可能有相应的数据传输。

  (4)应用程序处理从USB设备接收到的数据,如果出错,将给出相应的警告,如果成功,处理完后关闭设备的句柄。

  • 为什么很多220V电源电源接入没有对大地的共模防 最近在搞AC-DC电源,研究很多demo板,对他们的EMC电路有很大的疑惑,比如:







    还有一款某田的电源:












  • 想做个方波逆变器、PQ4040做到400W 推挽前级 想做个24V/3000W方波逆变器、PQ4040做到400--500W 推挽前级 4T+4T 次级10T TL494频率26K 6个变压器串联 这样可以吗?欢迎高手批评!都来看看咯!
    路过帮顶~~~
    我发错地方

  • 一种ADI Blackfin处理器介绍Blackfin 处理器是一类专为满足当今嵌入式音频、视频和通信应用的计算要求和功耗约束条件而设计的新型 16~32 位嵌入式处理器。Blackfin 处理器基于由ADI和Intel公司联合开发的微信

  •