3

我目前正在编写一个arm嵌入式设备。目前我已经安装了 thttpd,并且我在设备上运行了一个 Web 服务器。我们使用以太网连接进行了检查,一切正常。该网页控制运行一些 sh ​​脚本的系统,该脚本执行通过 pmpp 与最终系统通信的 c++ 程序。

该设备有一个usb端口,我们计划用它来连接android/ios/bb设备(手机或平板电脑)并打开相同的网页,例如通过192.168.0.222。

假设我是一名工人,我有我的公司智能手机,我想修改产品的一些值,所以我只需插入 USB,我使用 safari/chrome 或我决定使用的任何导航器访问,更改值并回家下午剩下的时间和我的家人一起度过。

我们不想做的是开发一个应用程序来从设备检索网页以绘制它们,如果我们之前创建了它。

4

1 回答 1

1

如果您我正确理解了这个问题,那么您有几个基本的架构问题需要解决——也就是说,您希望通过与移动设备的直接 USB 连接建立以太网连接,以便移动设备可以在您的嵌入式系统上使用 Web 服务.

1) USB 角色:其中一台设备需要有一个 USB 主机控制器,并充当主机。碰巧的是,手机在其 USB 端口上支持 USB-OTG - 您会希望让它们进入主机模式(适用于带有微型 USB 连接器的手机的电缆, 适用于 iOS 设备的USB 相机连接套件)。

2) USB 设备角色:您的嵌入式设备需要为主机实现适当的端点进行通信。一种选择是来自Linux Gadget Framework的 CDC 以太网。如果您的设备具有功能性 USB 设备堆栈并支持小工具框架,那么这应该是更改内核配置和重新编译的情况。或者,您编写一个驱动程序来欺骗现有的 USB 以太网加密狗的 API。

3) USB 主机驱动程序:您需要在主机上安装相应的 USB 驱动程序。这就是一切开始崩溃的地方。这些手机都不可能附带这些。在 Android 上,您理论上可以根手机,然后侧载额外的驱动程序。在 iOS 上,您需要加入Made For iPnone计划才能开始考虑这一点。甚至加入该计划的成本也包含在 NDA 中,并且仅适用于批量 OEM。我想黑莓也被很好地锁定了。

或者,一种更有可能奏效的方法是将 USB 以太网(成本:约 15 美元)或 Wifi 加密狗(以太网要容易得多)连接到嵌入式设备的 USB 主机端口,然后将该接口连接到您的办公网络。

在实现这一点的嵌入式方面,任何能够 CGI 的网络服务器都是一种快速而肮脏的方式来完成这项工作。

于 2012-10-25T22:44:44.233 回答