wince与android USB通信,WinCE下USB串口功能实现

By Toradex 秦海

1).简介

本文着重介绍嵌入式设备基于WinCE操作系统下通过USB模拟串口功能和PC主机实现点对点通信功能,在很多场景下,这个可以很方便的实现主机和嵌入式设备的通信。

本文所演示的系统为Toradex Colibri iMX6 ARM计算机模块(基于NXP iMX6 SoC)配合Colibri Eva Board,主机为配置标准Windows 7 32bit 系统计算机。

2).具体配置步骤示例

a). Colibri iMX6嵌入式设备端

./ 模块安装Toradex官方发布WEC7 V1.1b2 image

./ 在CE系统控制面板-> PC Connection 选项里面,取消勾选“自动连接”,然后保存注册表。

./ Toradex image里面已经包含了USB 串口的驱动,默认是用来进行Active Sync连接使用,在这里可以查看USB 串口驱动对应的注册表键值

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class],从”Index”键值可以确定在设备CE端对应的COM端口,这里默认为”COM9:”

./ 为了后面和PC进行互联测试,设备端串口应用使用Toradex 开发者中心网站提供的UART测试Demo,只是将对应端口号修改为”COM9:” 。

------------------------------------

1f9e83e08ec0c3a24e74f63d7e78d07b.jpg

------------------------------------

b). Windows 7 32bit主机端

./ 因为我们稍后将使用WinUSB与设备进行连接,因此首先需要将下面两个Windows Mobile Center相关服务禁止,避免串口被其占用。

7dc23451a6d6a295460d0402ed73af12.jpg

./ 使用Microsoft WinUSB进行通讯,对于Toradex Colibri iMX6,其WinCE系统默认USB Serial Client驱动使用为Microsoft 官方测试USB VID/PID,基于测试使用,本文无需自定义WinUSB驱动,将设备连接到主机后,可以在设备管理器查看自动识别为Microsoft USB Sync设备。

c2b3f1aa4eee6b848e986c6cd1bf8485.jpg

而在实际产品开发中,客户应该需要配置自己的USB VID/PID(如需免费获得VID/PID资源请参考这里),这样就需要修改WinUSB驱动以适配,可以直接参考Microsoft MSDN说明进行修改部署,也可以借助第三方工具Zadig去定制化WinUSB驱动。

./ 主机端测试程序我们同样使用Toradex基于Microsoft 官方WinUSB例程修改的测试程序,请从下面下载:

项目里面同样也已经包含基于Windows Driver Kit Version 7.1.0的相关libs 和 headers。

./ 为了达到更好的测试效果,这里对原例程进行如下修改,将收到的字符串处理后通过Debug输出。

------------------------------------

0eba347a384b84aee72dd93d9a3a9c7e.jpg

------------------------------------

c).通信测试示例

./ 首先将设备端应用部署运行UART 程序,如下

48f3ca230df23cca6250f317a63ef7d2.jpg

./ 然后在将主机端WinUSB例程编译并启动调试

09a71f57ecb47e9a866068326c08b76b.jpg

./ 在设备端首先输入选项2进行发送数据操作,这时候可以看到主机调试端打印出收到对应的字符串

c059b74d2c55cb9b1edf2f4f005a83c2.jpg

./ 然后再设备端输入选项1进行读取数据操作,同样可以接收到来自主机发送的字符串

f9ee11d24fe00219d4099269b3ea9197.jpg

参考资料:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部