USB总线驱动(USBD)是在主机控制器驱动和USB设备驱动之间的模块,它对应USB协议的USBD,在Windows系统中由USBD.SYS模块提供。它是在某一操作系统上对USB总线和协议提供支持的软件,独立于USB设备和USB设备驱动,并对它们进行控制和提供统一编程接口。
USB主控制器驱动程序(HCD)处于最底层,它负责对主机控制器进行抽象和对USB提供低级支持。
3.3 PC端的软件设计
PC端的软件设计采用面向对象程序设计,分为核心类(包括Provider,Data,Net)和应用类(包括UI,Call,Record)。其中核心类提供对硬件、操作系统和网络环境的支持,应用类在核心类的基础上提供对用户操作的支持。Provider类定义对USB设备的读写操作,提供读取数据方法(readusb())和写数据方法(writeusb());Data类包括地址数据(Address)、音频数据(Audio)和控制数据(Command)的定义,并提供数据的分解方法(Decompose())和组合方法(Compose());Net类提供对网络的支持,包括网络协议的选择和数据的接收与发送。UI类提供对用户界面的支持,包括窗口、对话框等,实现基本用户框架与应用入口;Call类提供通话功能;Record类则提供电话录音功能;根据不同应用要求,可扩展其他应用类。具体结构如图5所示。
4 结束语
USB灵活的接口和可编程特性可简化外部硬件的设计,提高系统可靠性。而USB2.O控制器CY7C68013A也广泛应用于许多数据传输领域。FPGA已成为通信、计算机、消费类电子产品等领域的基础器件。这里所介绍的USB设备就是一个基于FPGA的嵌入式系统,该系统软硬件都具有模块化的特性,易于改造成其他应用场合的语音控制系统(DAA除外)。该设计的应用可节省大量的人力、物力。具有较大的推广意义和使用价值。