将串行应用移植到USB接口的简便方法(06-100)

软件界面
本文引用地址:https://www.eepw.com.cn/article/81086.htm一旦选择了单芯片解决方案,我们就需要为应用开发新的PC驱动程序,甚至可能是新的固件。 幸运的是,软件开发人员有多种选择,可通过重复使用应用界面类的方法来减小开发工作量。
构建到现在PC操作系统中的最常见并获得最好支持的USB接口类可能是所谓的人机接口设备(通常指HID类)。 所有的PC计算机都需要一些像键盘或鼠标这样的人机接口,这些设备的连接已经从串行或者PS/2端口升级进USB。 其驱动程序已经捆绑在Windows、Linux和MAC OS的每个拷贝中,所以所有操作系统都可以很好地支持HID。因此,对于那些想从不太复杂的嵌入式设备中读写少量数据的设计工程师而言,HID是一个非常有吸引力的选择。 不幸的是,应用编程接口(API)没有什么与COM端口接口类似。 因此,将API移植到现有系统上更成问题,特别当PC上已经有一个复杂的应用软件的时候。
其它像打印机类和海量存储这样的标准USB接口类都可以利用来实现与嵌入式设备进行通讯。 然而,它们也面临同样的问题,即陌生的接口以及必须开发新PC应用软件。
驱动程序开发需要对操作系统底层有深入的了解。 对Windows PC机来说,这意味着要熟悉Windows驱动程序模型(WDM)。 如果没有这方面的专业知识,那么开发一个可基本工作的驱动程序原型也需要花费数月时间。
幸运的是,大部分最新版本Windows都有的一个接口类可以帮助我们摆脱困境。 微软公司原先开发这个名为USB通讯设备类(CDC)的目的是用来支持调制解调器应用。 例如,开发人员可以获得CDC接口的完整源代码,以进行面向PIC18F4550系列闪存USB 8位单片机的开发。
Microchip公司的CDC接口提供以下有用特性:
·固件库的代码量相对较小,仅3KB;
·单芯片解决方案;
·仅占用大约50B的存储器空间(不包括缓冲区);
·最大吞吐量为每秒80 K字节;
·完全由USB协议控制数据流量(不需要RS-232 XON/XOFF和硬件流控)。
评论