CH开发HID读卡器.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CH开发HID读卡器

CH372开发HID发卡器 现在市面上的发卡器一般都做成HID类型。类似USB鼠标,USB键盘。用户使用时不用安装驱动程序,方便用户使用。对开发者来说,windows操作系统提供了完善的库文件,可以直接操作HID设备。省去了开发驱动程序的步骤。 CH372的外围电路简单,只需一个晶振和几个电容。CH372有5个端点: 端点0是默认端点,控制传输时使用,支持上传和下传。上传和下传缓冲区各8字节。 端点1包括上传端点和下传端点。上传和下传缓冲区各8字节 端点2包括上传端点和下传端点,上传和下传缓冲区各64字节 CH372有内部固件模式和外部固件模式。使用内部固件模式时,CH372自动完成USB的枚举过程。编写程序简单,但是需要安装南京沁恒公司提供的驱动程序。开发HID设备不能选用内部固件模式。 使用外部固件模式时,程序的主要功能是通过CH372完成和主机的通讯,最复杂的部分就是枚举过程。完成了枚举过程,基本就大功告成了。 先来详细了解USB的通讯格式: USB的通讯以包为基本单位。 包的种类: 令牌包:OUT,IN,SOF,SETUP 数据类:DATA0,DATA1,DATA2,MDATA 握手类:ACK,NCK,STALL,NYET 特殊类:PRE,ERR,SPLIT,PING 不能简单的通过包来进行数据传输,一个传输过程可能包括一个包,二个包,三个包。由不同的包组织而成传输事务。 一个传输事务通常由3个不同类型的包组成:令牌包,数据包,握手包。令牌包启动事务。数据包传输数据,握手包返回信息。方向有令牌包决定。 枚举的控制传输有三个过程:建立过程,数据过程,状态过程。每个过程就是一个传输事务,每个传输事务又包括几个包。下面有例子详细说明。 要注意的是,建立过程只能使用DATA0包,数据传输的第一个过程必须是DATA1包,每次传输正确后在DATA0,DATA1之间切换。而状态事务只能使用DATA1包。 每个包都是以同步域开始,接着是PID,最后以EOP结束。 同步域(sync sequence)值根据NRZI编码,位值为0时信号要翻转一次,同步域的作用就是提供一组用来同步的时钟。 PID,8位,前4位代表封包类型,后4位是前4位反码。 PID类型 PID【3:0】 SOF 0101 SETUP 1101 OUT 0001 IN 1001 DATA0 0011 DATA1 1011 ACK 0010 NAK 1010 STALL 1110 PRE 1100 SOF封包框架 Sync + pid + 11位frame number + 5位CRC + EOP IN封包 Sync + pid + 7bit设备地址 + 4bit端点地址 + 5bitCRC + EOP 执行IN封包动作时,首先PC送出一个IN封包,接着设备回传一个数据封包,最后PC送一个握手封包,表示已收到资料。 OUT封包 Sync + pid + 7bit设备地址 + 4bit端点地址 + 5bitCRC + EOP SETUP封包 只在控制型传输的建立阶段使用 在形式上类似一个OUT动作,SETUP封包后跟一个DATA0封包和一个握手封包。SETUP包的目的是传送一个命令给设备执行。 Sync + pid + 7bit设备地址 + 4bit端点地址 + 5bitCRC + EOP DATA封包跟在IN,OUT,SETUP封包后,IN封包后的DATA封包是将资料传给PC,OUT与SETUP封包后的DATA封包是把数据传给设备。传输数据时,DATA0封包和DATA1封包交互使用,作为一个同步机制。 DATA0 DATA1封包格式 Sync + PID + data0~datan(0~1024字节) + 16bitCRC + EOP 握手封包: ACK封包:确认数据接收正确 NAK封包:告诉主机现在设备暂时无法接收或传回数据 STALL封包:无法完成传输,需要软件处理使设备能从STALL状态复原 握手封包格式 Sync + PID + EOP 下面详细介绍USB的枚举过程: USB接上主机后,主机识别到有USB设备插入,先复位USB总线。然后发送请求描述符命令。此时主机使用默认地址0,默认端点0发送命令 1、主机发送SETUP包 sync Pid(setup) Addr Endp Crc5 eop 0xb4 0 0 0x08

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档