第一范文网 - 专业文章范例文档资料分享平台

将串行应用移植到USB接口的简便方法

来源:用户分享 时间:2025/6/1 2:49:14 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

大多数读者立即就可认出这些函数并将其与通用C语言库中的函数对应起来。 事实上,puts 和 gets 函数可以直接用CDC类中对应的 putsUSBUSART 和 getsUSBUSART 函数来替代。 通过其它专用实施函数还可以支持不同的串类型(空结束与固定长度缓冲)和存储类型(RAM还是ROM串表)。 下面给出熟悉的HelloWorld程序利用CDC-USB函数实现的程序。

#include \ #include \ void main(void) {

InitializeSystem(); while(1) {

USBTasks(); // USB Tasks

HelloWorld(); // send a message to the world }//end while }//end main HelloWorld(void) {

If ( mUSBUSARTIsTxTrfReady()) // check if Tx buffer empty

putrsUSBUSART( \

send a new text string } // Hello World 联机

现在可以将应用连接到PC上,来看看Windows即插即用技术的响应了。 在对所有USB应用都适用的初始枚举阶段(在USB 2.0标准的第9章描述)之后,屏幕上将弹出一个对话框,提醒用户已经发现一个新的硬件设备,需要为操作系统对其进行配置,以便使用它。 虽然CDC驱动程序已经是操作系统的一部分,但仍然需要更多的信息来帮助将新发现的设备与驱动程序进行绑定。 这会在Windows硬件管理器中创建针对特定端口的“属性页”,以后用户可以用它卸载或重新配置端口。 在安装阶段,需要一个很小的纯文本文件(扩展名为.inf)。需要先用(文本编辑器)准备好,当即插即用向导要求时提供。“.inf”举例如下:

; Windows USB CDC ACM Setup File ; Copyright (c) 2000 Microsoft Corporation ; Copyright (C) 2004 Microchip Technology Inc. [Version]

Signature=\ Class=Ports

ClassGuid={4D36E978-E325-11CE-BFC1- 08002BE10318} Provider=%MCHP% LayoutFile=layout.inf

DriverVer=08/17/2001,5.1.2600.0 [Manufacturer]

%MFGNAME%=DeviceList [DestinationDirs] DefaultDestDir=12

[SourceDisksFiles] [SourceDisksNames] [DeviceList]

TSCRIPTION%=DriverInstall, USB\\VID _04D8&PID_000A

;----------------------------------------------- ------------------------------- ; Windows 2000/XP Sections

;----------------------------------------------- ------------------------------- [DriverInstall.nt]

CopyFiles=DriverCopyFiles AddReg=DriverInstall.nt.AddReg [DriverCopyFiles] usbser.sys,,,0x20

[DriverInstall.nt.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,usbser.sys

HKR,,EnumPropPages32,,\ Serial PortPropPageProvider\ [DriverInstall.nt.Services]

AddService=usbser, 0x00000002, Driver Service

[DriverService]

DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1

ServiceBinary=%\%usbser.sys

;------------------------------------------------ ------ ------------------------ ; String Definitions

;------------------------------------------------ ------ ----------------------- [Strings]

MCHP=\ MFGNAME=\ DESCRIPTION=\ SERVICE=\USB RS-232 Emulation Driver\

上面的“.inf”例子可用作模板进行快速定制。 文件格式非常简单,大多数Windows程序员都能快速读懂。 即使对于不太熟悉的人,也可以很快识别中文件由不同部分组成,每个部分的标题包含在方括号中,在相应部分内有一或多个由参数名称和参数值组成的正文。 在整个文件中,只能少数几个部分需要用户定制,包括:

·[Device List] 部分包括从USB-IF获得(许可)的公司和应用独有的VID/PID号码对以及其它信息。

·[Strings]部分包含操作系统在即插即用阶段在不同的对话框中使用的不同字符串和标识,以及在硬件管理器中标识设备的字符串和标识。 关于VID和PID

尽管设计师可以任意修改制造商部分和字符串部分的内容,但VID和PID代码的使用是非常严肃的。 USB-IF全权负责为每个希望销售和生产USB产品的制造商分配一个16位唯一VID代码。 VID代码通过许可协议获得,并需要支付一次性注册费用。 一旦分配了VID代码,制造商就可以利用65,536 (16位) PID代码来唯一地标识其不同型号的产品。 换句话说,VID代码是“终生有效的”,因此很容易摊平初始的VID许可和注册成本。 当然,对于纯粹开发目的,并不需要完成整个许可过程,因为

搜索更多关于: 将串行应用移植到USB接口的简便方法 的文档
将串行应用移植到USB接口的简便方法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c090rp6egbx8uhsm07rtw_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top