您现在的位置: USB开发网 > USB开源项目 > Easy USB 51 Programer Plus
- Easy USB 51 Programer Plus

USB设备开发的一般步骤(开发流程)

------分隔线----------------------------

  USB设备开发流程中,除了硬件设计、设备端固件开发外,还有可能包括主机端(操作系统上)的驱动程序的开发,当所开发USB设备符合USB协议规定的标准设备类时,操作系统通常都集成了相关驱动程序,此时不用再单独开发操作系统驱动程序。有时USB设备开发流程中还可能包括主机端应用程序的设计工作,如USB接口的单片机烧录器就需要厂商提供烧录程序,而一些标准USB设备类则不需要开发主机端应用程序,如USB鼠标、USB键盘等。

1、系统需求分析

  设备系统需求分析是进行USB设备设计的第一步,也是所有产品的该做的一步。通过对USB设备功能特性和USB主机端操作系统的分析,可以获得实现该USB设备的软硬件设计需求。

  在该阶段,设计者需要充分了解该USB设备的应用环境(如主机端应用平台),是否需要USB主机端提供要关应用软件,尽量设计成标准的USB设备类,如果标准USB设备类不能满足功能要求,再考虑设计成自定义USB设备。在进行软硬件设计方案前,设计者应当充分了解市场上的USB接口芯片(或者带USB控制器的单片机),不同的USB接口芯片在USB协议上有着不同程度的支持,比如,端点数量、传输速度支持、对数据包地址的硬件自动识别、CRC16和CRC5的自动生成等等。

  当然,在确定具体的软硬件需求时,产品的开发费用和开发周期也是必须考虑的因素。

2、USB设备硬件需求分析

  在对USB设备的系统需要进行分析过后,应该进行设备硬件的需求分析,在此阶段设计者应该对所选器件进行体积、功耗、功能等进行分析,确定是否需要外部电源供电还是直接使用总线供电。在这一过程,要求设计者必须对各种常用USB接口芯片有充分了解,设计者必须确定相应的设备硬件结构以及可能采用的硬件。

3、USB设备软件需求分析

   在进行系统需求分析时就决定了设备软件功能,在确定了设备的硬件结构以后,软件结构也就相应地确定了,不同的硬件平台,可能需要不同程度的软件支持。

4、USB设备硬件设计

  在选定USB接口芯片以后,如果是带USB接口的单片机,则是一般单片机应用系统的开发,主要工作是怎么实现系统功能硬件设计;如果所选定单片机没有带USB控制器,那需要设计如何把USB接口芯片与单片机应用系统融合。一般USB接口芯片都支持多种并行总线结构(复用/非复用),可以方便的与多种单片机接口。硬件设计中要注意的就是USB接口芯片的时钟速度比较高,所以匹配网络的设计以及PCB布线时要特别关注。

5、USB设备软件设计

  USB设备的软件设计主要包括两部分:一是USB设备端的软件(固件)开发,主要完成USB协议处理与数据交换以及其它应用功能程序。二是主机端的程序,包括驱动程序和应用程序(即用户服务程序),主机端用户服务程序通过USB驱动程序与系统USB底层接口USBDI(USB Device Interface)进行通信,由系统底层接口USBDI完成USB协议的处理与数据传输。主机端应用程序的开发难度比较大,程序员不仅要熟悉USB协议,如果需要开发主机端驱动程序的话,还要熟悉主机端操作系统(如常用的WINDOWS系统)体系结构并能熟练运用DDK工具(微软推出的Windows驱动程序开发工具)。

  如果所设计的USB设备是标准USB设备类,也许只需要利用操作系统所带驱动程序就能正常工作,如USB鼠标、USB键盘、USB手柄等,再在软件设计阶段就不用设计操作系统上的驱动程序或用户服务程序了。

6、USB设备调试

  调试基本分三步进行:首先借助调试软件(常用的有:bus hound、USB MONITOR,某些芯片生产商还提供针对特定芯片的调试软件)将设备端的USB协议(主要是设备枚举阶段各种描述符的请求、设备配置及后来的应用数据交换)调通,当然我们还可以使用USB分析仪等开发设备,但此类设备一般比较昂贵。然后,再调试PC端驱动程序。最后,加上USB设备端的其它用户程序,对整个完整的系统进行系统调试。这一阶段应是穿插在软件设计阶段的。

------分隔线----------------------------
联系我们
  • Q Q: 1148374829 点击这里给我发消息
  • 旺旺:jhoneqhsieh 点击这里给我发消息
  • 电话:(0)15923141204
  • 淘宝网店