相关文章  
  • 华为认证网络工程师--认证考试试题(笔试)
  • Linux系统下实现多线程客户/服务器(3)
  • 使用Linux高效构建无线网关/防火墙(2)
  • 使用Linux高效构建无线网关/防火墙(5)
  • Linux操作系统的编程环境详细介绍(1)
  • Linux系统管理员秘技:用快捷命令一招制胜
  • Linux英文试题50道(1)
  • Linux英文试题50道(3)
  • Linux英文试题50道(2)
  • Linux英文试题50道(4)
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    基于Linux的USB设备的详细介绍3

    块便调用sa1100_usb_stop(),然后是 sa1100_usb_close(),关闭SA1100的USB控制器。

       StrongARM USB控制器支持数据传输作业的bulk-in 和bulk-out。在从USB主机接收数据包时,内核模块调用sa1100_usb_recv(),把数据缓冲区和回调函数地址传递给它。然后内核的底层USB设备控制代码对来自主机的bulk-out包进行检索,把内容放于缓冲区中,并调用回调函数。

       回调函数必须从接收缓冲区提取数据并保存于其它位置或者把缓冲区空间加到一个队列中,为下一个数据包的接收分配新的缓冲区。而后回调函数二次调用sa1100_usb_recv(),在需要时进行下一个数据包的接收。过程与对USB主机的数据传输相类似。在聚集起一帧的数据量后,内核模块将数据的地址、长度和回调地址传递给 sa1100_usb_send()。传输完成时,内核调用回调函数。

       主机

       主机端USB驱动的几个例子在主流的Linux版本以及 Linux内核档案组织分配的原始内核源中都有提供。用于Handspring Visor(drivers/usb/serial/visor.c)的模块是编写较为简洁易懂的模块之一,作为USB主机端模块的模板 (drivers/usb/usb-skeleton.c)使用。

       高速串行

       对于大多数实际应用来说, 可以把USB总线当作一种高速串行端口考虑。如此在某些类型的

    页码:[1] [2] [3] [4] [5] [6] [7] [8]3页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved