- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2024年江西信息应用职业技术学院单招职业适应性测试试题库及参考答案解析.docx
- 药丸不是糖豆豆.pptx VIP
- 常用阀门基础知识.ppt VIP
- 必威体育精装版人教版五年级数学上册第一单元《小数乘整数》课件.ppt
- 2024届高考作文模拟写作训练:行者常至,为者常成.docx VIP
- 2024年江西信息应用职业技术学院单招职业技能测试题库及答案解析.docx VIP
- 绿皮书电影课件.ppt
- 鼻出血处理(幼儿园课件)课件.pptx
- 综采工作面安装专项辨识评估报告.docx VIP
- Unit5IntothewildUnderstandingideas教学设计-2024-2025学年高中英语外研版(2019)必修第一册.docx
文档评论(0)