zoukankan      html  css  js  c++  java
  • 嵌入式编程:四平台免驱的usb设备(一)

    如今,PC势弱,手机、平板大行其道,安卓、苹果、win三大平台混战,设备厂商苦之久矣!

    我们的产品是一个基于usb连接的设备,为了方便用户使用,以及争取最多的二次开发厂商支持,

    我们希望这样usb设备是这样的 --

    1. 无论win32还win64都不需要另外安装驱动程序就能连接

    2. 安卓下不需要root就能访问

    3. iOS无需越狱能访问

    4. 一般linux usb能直接支持,无需用户自己加入额外的内核驱动

    (当然,所谓 “免驱” 是通俗说法,所有平台都需要usb驱动。只是想最大程序简化用户安装使用)

    要实现这样的目标,选择一个最合适的usb设备类就是最基本的要求。

    经常用来实现usb沟通的一些类,比如usb串口,u盘,usb鼠标、键盘、自定义的hid或bulk传输设备,

    都是备选的目标。然而,不是每个类型的设备都能达到以上的目标。比如将设备模拟成u盘,系统会

    多出盘符;将设备做成usb串口,虽然各平台都有现成的驱动用,但要用户安装总不免折腾。。

    几经考虑,我们决定做这样的一个玩意 --

        这个设备包含两个interfaces,第一个interface是标准usb键盘,并支持控制传输读写数据;

    第二个interface是一个自定义的 "hid设备",支持device向host发送数据。

    这个设备可以达到什么样的目标呢?比我们最初的构想还要好!--

    1. 兼容多个平台。我们已经验证 windows,linux 都达到所谓“免驱” 目标,安卓也不用root验证通讯成功。

    iOS我们暂时尚未验证,但有一些技术考察看,我们相信这个不成问题。

    2. 双向的数据通讯

    3. 设备有消息向主机发送时,主机无需轮询。标准的键盘接口,可随时向主机发送输入信息。

    4. 第二个interface,在不方便使用键盘发送消息时,可以随时向主机发送信息。

    (待续,usb设备固件编程、windows/linux/安卓编程)

  • 相关阅读:
    数据库表中批量替换某个字段的方法
    css清除浮动方法大全
    IE6中的常见BUG与相应的解决办法
    [转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护
    Oracle 数据库导入导出 dmp文件
    Tomcat 服务应用
    Perforce 与Source Insight, Visual Studio集成
    Oracle 11g必须开启的服务及服务详细介绍
    Python学习笔记8-单元测试(1)
    Python学习笔记7-高级迭代器
  • 原文地址:https://www.cnblogs.com/xhawk18/p/4668806.html
Copyright © 2011-2022 走看看