任何時候若想用計算機和外部設備通信,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文章
3545瀏覽量
88707 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35342
發布評論請先 登錄
相關推薦
評論