HID读写过程

HIDUSB的上、下位机之间相互读写时,并不是直接通信的,而是经过各自的buffer.

如下图所示:

 

上位机向下位机写数据:

step1:      当点击Writ HID按键后,上位机首先将要写的数据写入PC的驱动buffer中;

step2:      然后PC的驱动再将buffer中的数据写入下位机USB-SIEbuffer中,进而触发下位机的中断;

step3:      下位机的USB中断程序将SIEbuffer中的数据取出,最后在firmware中进行处理。

USB trace中可以看到如下图所示

 

 

会有两个OUT包发出,第一个是上位机给驱动buffer,第二个是驱动buffer给下位机硬件buffer

上位机Write HID的程序如下图:

 

上位机读取下位机数据:

step1:      下位机将要发送的数据准备好:

step2:      根据自己设定的发送条件进行判断,满足发送条件,将要发送的数据写入下位机自身的SIE buffer中;

step3:      上位机发出读取指令,驱动先从下位机SIE中取出数据,然后UI程序再从驱动中取出数据。

                                                                       

step1

step2

 

首先将要发送的数据准备好(IN_DATAh函数中),然后在主函数中判断发送条件,当条件满足时将准备好的数据发送到下位机SIE buffer中。

如下图所示:

此时上位机还没有读取数据,但下位机因已满足firmware自己编写的发送条件,已将待发送数据送至SIE buffer。所以会出现一个IN包。

 

上位机再按下Read HID按键后,数据被读至上位机,如下图所示:

此时第二个IN包表示数据传输至上位机。
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值