- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HID程序总结_zzc
HID程序总结
2011.3.25
1.程序结构
InitializeSystem ; //系统初始化函数
初始化设备
USBTasks ; //USB 任务函数 //检测是否有主机传来的报表
void ReportLoopback usb_device_state,设备状态 /* USB Device States - To be used with [byte usb_device_state]
USB设备状态定义,最终应该达到CONFIGURED_STATE状态,算USB与主机配置完成
*/
#define DETACHED_STATE 0 //分离状态
#define ATTACHED_STATE 1 //接入状态
#define POWERED_STATE 2 //使能状态
#define DEFAULT_STATE 3 //缺省状态
#define ADR_PENDING_STATE 4 //地址未决状态
#define ADDRESS_STATE 5 //地址配置状态
#define CONFIGURED_STATE 6 //配置状态 不 __ __ __ __ __ __ __ __ __ __ 设备尚未连接至接口.其他特性无关 是 不 __ __ __ __ __ __ __ __ 设备已连接至接口,但未加电. 其他特性无关. 是 是 不 __ __ __ __ __ __ 设备已连接至接口,并且已加电.但尚未被复位. 是 是 是 不
__ __ __ __ 设备已连接至接口,已加电. 并被复位.
但尚未分配地址.设备在缺省地址处可寻址. 是 是 是 是 不
__ __ 设备已连接至接口,已加电. 并被复位.且分配了唯一地址.
尚未被配置. 是 是 是 是 是 不
设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.
设备功能可被使用. 是 是 __ __ __ __ __ __ 是 设备在至少3毫秒以内探测不到总线活动,自动进如挂起.
设备功能不可用.
3.Bus Enumeration总线标号 当USB设备接上或从USB设备移开的时候,主机启动一个被称作总线标识 bus enumeration 的进程,来标识并管理设备状态的改变,当USB设备接上一个加电端口时,系统当采取以下操作: 1.USB设备所连的集线器通过其通向主机的状态改变通道向主机,汇报本USB设备已连接上。 参照11.13.3节 。此时,USB设备处于加电状态,它所连接的端口是无效的。 2.主机通过寻问集线器决定此次状态改变的确切含义。 3.主机一旦得知新设备已连上以后,它至少等待100ms以使得插入操作的完成以及设备电源稳定工作。然后主机发出端口使能及复位命令给那个端口。具体这些事件发生的顺序及时间判定请参看7.1.7.1节及图7-19。 4.集线器将发向端口的复位信号持续10ms 见11.5.15节 。当复位信号撤消后,端口已经有效了。这时USB设备处于缺省状态,并且可从VBUS汲取小于100mA的电能,所有设备寄存器及状态已经被复位,设备可对缺省地址产生响应。 5.主机给设备分配一个唯一的地址,设备转向编址状态。 Address state 。 6.在USB设备接受设备地址之前,它的缺省控制通道 Default Control Pipe 在缺省地址处自然是可寻址的,主机通过读取设备描述表,判决设备缺省通道的实际净数据负载。 7.主机从设备读取配置信息要从配置0读到配置n-1,其中n为配置个数,此操作须花费几个毫秒。 8.基于从设备取来的配置信息及设备如何被使用的信息,主机给设备一个配置值,此刻,设备就处于配置状态 Configured state 并此配置有关的所有端节点,都按照配置各就各位,USB设备现在可以从VBUS得到描述中所要求的电量了。从设备的角度来讲,它已经准备就绪了。
当UBS设备被取走时,集线器同样会通知主机,断开一个设备连接会使得设备所连接的端口无效,一收到断开通知后,主机就会更新的拓扑信息。
4.程序文件内容
main.c 主函数;
usb_device.c 定义缓冲器描述符地址; 接收,传送和处理USB命令
usb_descriptors.c
usb_function_hid.c
5.头文件内容
usb_config.h 定义端点缓冲器大小; 定义是否使用中断; 定义传输模式:全速或低速; 定义使用HID; 定义HID端口等特征;
Compiler.h MCC18;
HardwareProfile - PICDEM FSUSB.h
HardwareProfile.h
p18f4550.h
USB下的头文件:
您可能关注的文档
- HCZN-油浸箔式吸收电容器.doc
- HD-KQ2A第二代驾校学员指纹考勤系统.doc
- HD-SDI分配器.doc
- HD5000笔记本显卡详尽规格.docx
- HD-SDI视频分配器.doc
- HD200型装配式公路钢桥拼装架设.doc
- HDAudio双音频输出设置.doc
- hdb3编译码器总共的代码.doc
- HDC陡坡缓降系统详解.docx
- HDD结构及分区表解析.doc
- HIFIMANES100工程版试听分享.doc
- highcharts使用之柱状图.doc
- Higherfrequencyandepsilonupdateswithfull-waveforminversionindeepwaterWestAfrican.doc
- HighSensitiveMagneticTransducerConsistingofPZTTerfenol-DandUltrasonicHornwithHighQ.doc
- Highso【司法】备考计划.doc
- HIIT--高强度间歇练习.doc
- HillstoneQoS白皮书.docx
- Hillstone山石网科SG-6000-X6150防火墙评测报告.docx
- HILL密码密码学.doc
- HIOKI3244-60卡片型万用表UNI-TUT61A数字万用表.docx
文档评论(0)