若要规划USB设备另一端的主机侧,就是去设计或使用设各驱动程序与应用软件。当然,快的方式不外乎是直接采用Windows )ffi作系统下的设各驱动程序,或者是采用其他来源的驱动程序ρ若具有编写驱动程序的能力。也可尝试编写属于自己的
驱动程序.
其中,人工接口设各HID的驱动程序已包含在Windows 98/2000操作系统下,若用户要求传输速度不高于64 Kbps,则其是一个很好的选择。此外,HID群组能够使用控制与中断传输。传统的HID范例有用户常用的键盘与鼠标。因为当用户触发一些动作时,就会将数据从设各传回至主机。但是,HID设各并不仅限于人所操作的接口,用户还可延伸至测试设各、控制系统或其余符合HID群组规范限制的设备。
对于人工接口设备,主机可以使用READFILE与WRITEFILE的API函数来处理HID群组。设各的固件必须在其描述符中包含HID群组码,并且针对所要交换的数据定义(report)的格式。而这个格式就会告诉主机数据的大小与特性,同时也提供数据单元,或是用来帮助主机取得数据的信息。
此外,由于在Windows 2000操作系统中,已新增了媒体存储(mass-storage)设备的驱动程序,因此若用户所设计的设各对于传输的时间间隔,并没有强烈的要求,就可以选择这个驱动程序与设备。再者,对于一般使用批量或等时传输的设备而言,可以选择BULKUSB.SYS与IOUSB.SYS驱动程序。
以上了解到外围设备与驱动程序的关系。但在此,用户或许会想到如何去编写INF文件或固件程序代码,将所设计的USB设备挂上设备管理器的窗口内,或者是说完成设备列举的步骤,进而跨出USB外围设备设计的步。当然,用户可以使用各种Windows修订版本所提供的各种驱动程序。但是,前提是用户必须编写出符合各个群组特性的固件程序代码才可以。
然而跨出这一步是很困难的。因为编写出符合某一特定群组,以及完成设各列举的步骤的固件程序代码对一般初学者甚至是固件工程师,都是一项艰巨而困难的工作。此外,还须编写一些Windows系统的应用程序来控制此USB外围设各。这样,就难上加难了。
综合言之,由于一个USB 1/O外围设备的开发与设计所需的背景知识,涵盖了三个部分:微处理器固件程序代码、Windows应用程序(API)以及INF安装信息文件(以及驱动程序)的编写,如图1所示。因此,整体的技术层次与困难度也相对地增高了。这也就是造成目前USB技术学习的障碍与让人望而却步的原因。
为了简化用户学习的难度,因此在USB
单片机的选择上就格外的重要了。由于,本书所采用的Cypress EZ - USB FX系列的单片机具备重新设各列举(执行两次设各列举的程序,稍后的章节中会详细的介绍)的特性,所以能省略编写INF文件与固件程序代码的过程,即可执行次的设各列举。这样,用户即可利用稍后几章所要介绍的工具组来执行USB外围设各的开发工作,进而减低用户学习的负担。
虽然,如图1所示一个完整的USB的开发技术包含了三部分,但为了能再进一步降低用户的学习门槛以及各种Windows操作系统的相容性,本书将所开发的USB设备模拟成各种Windows操作系统都支持的人工接口群组,进而省略INF文件以及驱动程序的编写。而Windows应用程序上,在本书中提供VB的动态链接函数库(DLL)。所以,本书的编写与设计的目标,都将重点或范围缩小并锁定在固件程序代码的开发上,如图2所示。这样,用户仅须针对所要设计的USB外围电路加以控制或驱动即可。稍后几章都按照这个架构模式来开发,而用户可以直接引用或调用本书所提供的VB动态链接文件直接修改设计与控制。
图1 USB外围设备开发技术的关联示意图
图2 USB外围设备设计的重点——Visual Basic应用程序
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。