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_MACHINEDriversUSBFunctionDriversSerial_Class],从”Index”键值可以确定在设备CE端对应的COM端口,这里默认为”COM9:”
./ 为了后面和PC进行互联测试,设备端串口应用使用Toradex 开发者中心网站提供的
UART测试Demo,只是将对应端口号修改为”COM9:” 。
------------------------------------
------------------------------------
b). Windows 7 32bit 主机端
./ 因为我们稍后将使用WinUSB与设备进行连接,因此首先需要将下面两个Windows Mobile Center相关服务禁止,避免串口被其占用。
./ 使用Microsoft WinUSB进行通讯,对于Toradex Colibri iMX6,其WinCE系统默认USB Serial Client驱动使用为Microsoft 官方测试USB VID/PID,基于测试使用,本文无需自定义WinUSB驱动,将设备连接到主机后,可以在设备管理器查看自动识别为Microsoft USB Sync设备。
而在实际产品开发中,客户应该需要配置自己的USB VID/PID(如需免费获得VID/PID资源请参考
这里),这样就需要修改WinUSB驱动以适配,可以直接参考Microsoft
MSDN说明进行修改部署,也可以借助第三方工具
Zadig去定制化WinUSB驱动。
./ 主机端测试程序我们同样使用Toradex基于Microsoft 官方
WinUSB例程修改的测试程序,请从下面下载:
WinUSB Serial Sample Project
项目里面同样也已经包含基于
Windows Driver Kit Version 7.1.0的相关libs 和 headers。
./ 为了达到更好的测试效果,这里对原例程进行如下修改,将收到的字符串处理后通过Debug输出。
------------------------------------
------------------------------------
c). 通信测试示例
./ 首先将设备端应用部署运行UART 程序,如下
./ 然后在将主机端WinUSB例程编译并启动调试
./ 在设备端首先输入选项2进行发送数据操作,这时候可以看到主机调试端打印出收到对应的字符串
./ 然后再设备端输入选项1进行读取数据操作,同样可以接收到来自主机发送的字符串
参考资料:
http://developer.toradex.com/knowledge-base/serial-over-usb