paris
驱动小牛
驱动小牛
  • 注册日期2002-01-30
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1373回复:5

关于USB的基础,大家帮帮我?

楼主#
更多 发布于:2002-08-16 14:38
平台:PC机,DOS操作系统
关于PC机芯片组里面的USB Controller与USB keyboard通信的原理
大家来谈谈,

我说说:我了解的和我的疑问
1:当有键被按下时,芯片组会产生系统中断smi,然后中断程序将USB keyboard的数据转换成扫描码,然后下64端口命令D2,并将扫描码
写到60端口,之后8042MCU会去处理,产生IRQ1和扫描码,对于系统来讲,都一样了,
2:我的问题是:
A:键盘的数据是:在键按下时就自动传到了memory中,还是程序去读进来的.
B:如果是自动传到了memory中,那程序又到memory那个位址去读呢?

另外有个问题:
我用工具看到:键盘不工作时,frame counter也一直在计数,controller并不是在halt的状态,为啥?这样的原理,我不懂,
那位讲讲?
Oliver
zzq191
驱动中牛
驱动中牛
  • 注册日期2001-08-09
  • 最后登录2018-05-29
  • 粉丝17
  • 关注0
  • 积分1041分
  • 威望716点
  • 贡献值0点
  • 好评度318点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-16 14:54
问题解答:
A:键盘的数据是:在键按下时就自动传到了memory中,还是程序去读进来的.
   Re:
      键盘数据是DOS操作系统预先与键盘中通讯得到键值后存放在c操作系统的键值缓冲区中,应用程序是从键值缓冲区中得到键值的。

B:如果是自动传到了memory中,那程序又到memory那个位址去读呢?
   Re:
      键值缓冲区是一个操作系统管理的,应用程序不需直接操作此内存。
QQ:416331891,承接windows下应用和驱动的开发,雅虎通:zzq191, Email:zzq191@21cn.com
paris
驱动小牛
驱动小牛
  • 注册日期2002-01-30
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-16 15:08
噢,刚才这位没有明白我的意思,
谢谢你!

Oliver
ydg4001
驱动牛犊
驱动牛犊
  • 注册日期2002-07-17
  • 最后登录2002-08-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-16 16:36
你错了按下一个键并不产生中断,而是主机通过论寻得之有无键按下
paris
驱动小牛
驱动小牛
  • 注册日期2002-01-30
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-16 16:46
噢,在DOS下一定有的,我确定
Oliver
paris
驱动小牛
驱动小牛
  • 注册日期2002-01-30
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-16 16:53
知道的,给点提示吧,
Oliver
游客

返回顶部