英创信息技术EM9460 USB虚拟串口应用简介

描述

任何时候若想用计算机和外部设备通信,USB都是一个方便、可行的解决方案,因为USB拥有使用方便、数据传输快速可靠、成本低以及省电等优点。英创公司提供嵌入式板卡EM9460若想实现和计算机的数据通信,最方便的方法就是利用EM9460中的USB device设备口和PC机的USB主控口相连,在EM9460的USB device驱动实现将其映射为一个虚拟串口的功能,PC和EM9460就可按照串口通讯的方式进行数据通讯了,虚拟串口的波特率只是形式化的一个参数,而实际的数据传输速率是由USB的传输速率决定,EM9460的USB设备口支持USB1.1标准,数据通讯速率为12Mbps。

EM9460内核版本为Linux-2.6.30,在Linux内核中Linux USB gadget serial driver是Linux USB gadget driver的一种标准应用,在EM9460端加载gadget serial driver之后,对于PC机这端来说就是一个基于USB接口的串口设备。

WINDOWS

PC端大部分都是采用的Windows操作系统,对于Win7系统来说,直接根据提示安装驱动即可,对于WinXP系统,安装微软提供的usbser.sys驱动以及相应的inf文件。

1、USB设备端驱动

EM9460作为USB设备端,其Linux内核配置如下:
Device Drivers --->
[*] USB support --->
<*> USB Gadget Support --->
USB Gadget Drivers
Serial Gadget (with CDC ACM and CDC OBEX support)

内核编译后后生成相应的g_serial.ko文件,并将该文件放置于EM9X60 文件系统中的/lib/module/2.6.30/目录下。
[root@EM9X60 /]#insmod /lib/modules/2.6.30/g_serial.ko
g_serial gadget: Gadget Serial v2.4
g_serial gadget: g_serial ready

表明USB设备驱动加载成功,系统中会增加一个/dev/ttyGS0的节点:
[root@EM9X60 /]#ls /dev/ttyGS0 -l
crw-rw---- 1 root root 252, 0 Jan 1 00:14 /dev/ttyGS0

EM9460板卡可以直接按照串口通讯的方式打开该节点 /dev/ttyGS0,进行数据读写操作。

2、PC机端Windows操作系统

Win7操作系统可以自动加载基于udc标准的serial驱动,接上EM9460后,会自动提示“正在安装设备驱动程序软件”,安装成功后:

WINDOWS

EM9460对于PC机来说就是一个串口设备,设备号为“COM10”。

对于WinXP操作系统,要使用ACM串口,需要WindowsXP机器上有gserial.inf和usbser.sys这两个文件,其中gserial.inf的配置如下:
[Version]
Signature='$Windows NT$'
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%LINUX%
DriverVer=08/17/2004,0.0.2.0
; Copyright (C) 2004 Al Borchers (alborchers@steinerpoint.com)
[Manufacturer]
%LINUX%=GSerialDeviceList
[GSerialDeviceList]
%GSERIAL%=GSerialInstall, USB\VID_0525&PID_A4A7
[DestinationDirs]
DefaultDestDir=10,System32\Drivers
[GSerialInstall]
CopyFiles=GSerialCopyFiles
AddReg=GSerialAddReg
[GSerialCopyFiles]
usbser.sys
[GSerialAddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,'MsPorts.dll,SerialPortPropPageProvider'
[GSerialInstall.Services]
AddService = usbser,0x0002,GSerialService
[GSerialService]
DisplayName = %GSERIAL_DISPLAY_NAME%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\usbser.sys
LoadOrderGroup = Base
[Strings]
LINUX = 'Linux'
GSERIAL = 'Gadget Serial'
GSERIAL_DISPLAY_NAME = 'USB Gadget Serial Driver'

安装成功后,在设备管理器中可以看到 “Gadget Serial (COM11) '这个端口。

WINDOWS

基于这种USB连接的方式,EM9460可以类似于一个超级单片机,作为前置的智能控制器,而PC机作为一个主控方,从而构成一个高性能的智能监控系统。

本文所介绍的方法同样适用于EM9X60系列的其它产品型号,如:EM9160、EM9260、EM9360等。

WinCEx版的工控主板管理虚拟串口方法如下:英创工控主板USB虚拟串口设置说明

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分