0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-03 08:59 次阅读

任何时候若想用计算机和外部设备通信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接口的串口设备。

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后,会自动提示“正在安装设备驱动程序软件”,安装成功后:

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) '这个端口

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

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

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

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

    关注

    3

    文章

    3524

    浏览量

    88414
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35210
收藏 人收藏

    评论

    相关推荐

    为什么通信要使用虚拟串口串口助手?

    串口助手和虚拟串口是什么?串口助手和虚拟串口串口
    的头像 发表于 11-15 01:04 387次阅读
    为什么通信要使用<b class='flag-5'>虚拟</b><b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 379次阅读

    USB串口串口卡的性能比较

    在当今的电子设备中,串口通信是一种非常常见的通信方式。随着技术的发展,USB接口逐渐取代了传统的串口接口,但串口通信在某些特定领域仍然具有不
    的头像 发表于 07-15 15:21 710次阅读

    ESP32-S3 USB CDC虚拟串口发送数据失败的原因?

    最近在使用ESP32-S3的USB CDC虚拟串口时,发现USB在热插拔之后发送数据出现了问题,USB热插拔后,PC端是能与
    发表于 06-06 06:50

    USB转多协议串口通信

    简介: 板子集成了一个USB转4串口的芯片CH344Q,该芯片为 480Mbps 高速 USB 设备接口,支持通讯波特率 1200bps~6Mbps 应用场景: 研发工程师的办公调试工
    的头像 发表于 04-29 16:23 531次阅读
    <b class='flag-5'>USB</b>转多协议<b class='flag-5'>串口</b>通信

    关于STM32 USB虚拟串口的疑问求解

    大家都说STM32 USB虚拟串口有问题, 只要PC端串口打开着, 然后拔掉USB, 再插上USB
    发表于 04-25 08:15

    为什么拔插STM32 USB虚拟串口Windows没有DBT_DEVICEARRIVAL消息?

    拔插STM32 USB虚拟串口 Windows没有DBT_DEVICEARRIVAL消息呢? 因为拔掉STM32 USB虚拟
    发表于 04-15 07:06

    帝晶虚拟串口屏的应用

    帝晶虚拟串口屏的应用
    的头像 发表于 04-02 13:39 1348次阅读
    帝晶<b class='flag-5'>虚拟</b><b class='flag-5'>串口</b>屏的应用

    STM32Cubemx配置USB虚拟串口,电脑无法识别怎么解决?

    STM32Cubemx配置USB虚拟串口,电脑无法识别问题?(上拉和驱动都配置好了)
    发表于 03-08 07:00

    如何实现STM32 USB host对另外的一个USB虚拟串口设备的通讯?

    如何实现STM32 USB host 对另外的一个USB 虚拟串口设备的通讯
    发表于 03-07 06:10

    usb串口线怎么使用 usb串口串口usb的区别

    USB串口线(USB to Serial Cable)是一种用于将计算机的USB接口连接到串口设备的转换线。正常情况下,计算机主机上只带有
    的头像 发表于 01-22 14:56 4222次阅读

    USB虚拟串口串口1可以同时发送吗

    可以同时发送,USB虚拟串口和物理串口1都可以作为数据传输的通道,可以同时操作和发送数据。 USB虚拟
    的头像 发表于 01-04 11:26 1476次阅读

    usb虚拟串口usb协议的区别

    USB虚拟串口USB协议是两个相关但不同的概念。在理解它们之前,我们首先需要了解USB的基本知识。 U
    的头像 发表于 12-28 14:55 1752次阅读

    AD9460参考时钟如何选择?

    如题,目前项目要做一个100m16bit的数据采集卡,看了下贵公司的AD9460,但是差分参考时钟无法选择? 需不需要加一个时钟综合芯片比如Si5324?但类似的这种芯片市场上很不好买到。 如果用elcosc能否推荐个厂家和芯片?还有ad9460能否申请样品?谢谢
    发表于 12-25 07:44

    stm32虚拟串口接收的数据处理

    在STM32中使用虚拟串口时,我们需要处理接收的数据。接收到的数据可能是来自其他设备的传感器数据、用户输入的命令或其他任何信息。在本篇文章中,我将详细介绍STM32虚拟
    的头像 发表于 12-20 11:22 2179次阅读