WinCE下USB串口功能实现
2016-11-11 16:18
295 查看
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:” 。
------------------------------------
![](http://uphotos.eepw.com.cn/1451461111/pics/1f9e83e08ec0c3a24e74f63d7e78d07b.jpg)
------------------------------------
b). Windows 7 32bit 主机端
./ 因为我们稍后将使用WinUSB与设备进行连接,因此首先需要将下面两个Windows Mobile Center相关服务禁止,避免串口被其占用。
![](http://uphotos.eepw.com.cn/1451461111/pics/7dc23451a6d6a295460d0402ed73af12.jpg)
./ 使用Microsoft WinUSB进行通讯,对于Toradex Colibri iMX6,其WinCE系统默认USB Serial Client驱动使用为Microsoft 官方测试USB VID/PID,基于测试使用,本文无需自定义WinUSB驱动,将设备连接到主机后,可以在设备管理器查看自动识别为Microsoft USB Sync设备。
![](http://uphotos.eepw.com.cn/1451461111/pics/c2b3f1aa4eee6b848e986c6cd1bf8485.jpg)
而在实际产品开发中,客户应该需要配置自己的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输出。
------------------------------------
![](http://uphotos.eepw.com.cn/1451461111/pics/0eba347a384b84aee72dd93d9a3a9c7e.jpg)
------------------------------------
c). 通信测试示例
./ 首先将设备端应用部署运行UART 程序,如下
![](http://uphotos.eepw.com.cn/1451461111/pics/48f3ca230df23cca6250f317a63ef7d2.jpg)
./ 然后在将主机端WinUSB例程编译并启动调试
![](http://uphotos.eepw.com.cn/1451461111/pics/09a71f57ecb47e9a866068326c08b76b.jpg)
./ 在设备端首先输入选项2进行发送数据操作,这时候可以看到主机调试端打印出收到对应的字符串
![](http://uphotos.eepw.com.cn/1451461111/pics/c059b74d2c55cb9b1edf2f4f005a83c2.jpg)
./ 然后再设备端输入选项1进行读取数据操作,同样可以接收到来自主机发送的字符串
![](http://uphotos.eepw.com.cn/1451461111/pics/f9ee11d24fe00219d4099269b3ea9197.jpg)
参考资料:
http://developer.toradex.com/knowledge-base/serial-over-usb
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:” 。
------------------------------------
![](http://uphotos.eepw.com.cn/1451461111/pics/1f9e83e08ec0c3a24e74f63d7e78d07b.jpg)
------------------------------------
b). Windows 7 32bit 主机端
./ 因为我们稍后将使用WinUSB与设备进行连接,因此首先需要将下面两个Windows Mobile Center相关服务禁止,避免串口被其占用。
![](http://uphotos.eepw.com.cn/1451461111/pics/7dc23451a6d6a295460d0402ed73af12.jpg)
./ 使用Microsoft WinUSB进行通讯,对于Toradex Colibri iMX6,其WinCE系统默认USB Serial Client驱动使用为Microsoft 官方测试USB VID/PID,基于测试使用,本文无需自定义WinUSB驱动,将设备连接到主机后,可以在设备管理器查看自动识别为Microsoft USB Sync设备。
![](http://uphotos.eepw.com.cn/1451461111/pics/c2b3f1aa4eee6b848e986c6cd1bf8485.jpg)
而在实际产品开发中,客户应该需要配置自己的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输出。
------------------------------------
![](http://uphotos.eepw.com.cn/1451461111/pics/0eba347a384b84aee72dd93d9a3a9c7e.jpg)
------------------------------------
c). 通信测试示例
./ 首先将设备端应用部署运行UART 程序,如下
![](http://uphotos.eepw.com.cn/1451461111/pics/48f3ca230df23cca6250f317a63ef7d2.jpg)
./ 然后在将主机端WinUSB例程编译并启动调试
![](http://uphotos.eepw.com.cn/1451461111/pics/09a71f57ecb47e9a866068326c08b76b.jpg)
./ 在设备端首先输入选项2进行发送数据操作,这时候可以看到主机调试端打印出收到对应的字符串
![](http://uphotos.eepw.com.cn/1451461111/pics/c059b74d2c55cb9b1edf2f4f005a83c2.jpg)
./ 然后再设备端输入选项1进行读取数据操作,同样可以接收到来自主机发送的字符串
![](http://uphotos.eepw.com.cn/1451461111/pics/f9ee11d24fe00219d4099269b3ea9197.jpg)
参考资料:
http://developer.toradex.com/knowledge-base/serial-over-usb
相关文章推荐
- 在WinCE 6.0系统下实现USB功能定制
- WinCE的USB Device功能实现(Serial,RNDIS,Mass_Storage)
- 在WinCE 6.0系统下实现USB功能定制
- WinCE的USB Device功能实现(Serial,RNDIS,Mass_Storage)
- 在WinCE 6.0系统下实现USB功能定制
- 在WinCE 6.0系统下实现USB功能定制
- 在WinCE 6.0系统下实现USB功能定制
- 在WinCE 6.0系统下实现USB功能定制
- USB学习总结3—USB gadget设备驱动实现(usb串口功能)
- 在WinCE 6.0系统下实现USB功能定制
- WinCE的USB Device功能实现(S…
- 在WinCE 6.0系统下实现USB功能定制
- 实现"通过串口升级嵌入式目标板软件"功能的一些心得体会
- WINCE下实现基于USB的camera
- WinCE6.0下实现USB功能定制
- 基于USB的IAP功能实现
- WinCE 中调试串口打印信息的实现介绍
- 利用ST提供的USB例程实现USB IAP功能
- WINCE下实现基于USB的camera
- WINCE下实现USB转RS232