CN103186485A - 通用的usb转串口设备控制方法 - Google Patents
通用的usb转串口设备控制方法 Download PDFInfo
- Publication number
- CN103186485A CN103186485A CN2011104512058A CN201110451205A CN103186485A CN 103186485 A CN103186485 A CN 103186485A CN 2011104512058 A CN2011104512058 A CN 2011104512058A CN 201110451205 A CN201110451205 A CN 201110451205A CN 103186485 A CN103186485 A CN 103186485A
- Authority
- CN
- China
- Prior art keywords
- data
- equipment
- message
- subprocess
- serial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种USB转串口设备控制技术。本发明的通用的USB转串口设备控制方法,包括如下步骤:(1)监听应用消息;(2)判断是否收到应用消息,没有收到,返回步骤(1);收到,进行下一步骤;(3)判断是否为初始化消息:(4)将控制指令封装成消息发送给处理设备的子进程;(5)子进程解析消息;(6)子进程将指令数据发送给设备;(7)子进程判断设备是否为被动型设备;(8)接收设备数据;(9)将设备数据封装成消息,发送给主进程;(10)主进程解析子进程消息,得到设备数据,对数据进行封装,将数据发送给应用。本发明的通用USB转串口设备控制方法,为USB转串口设备的远程控制提供了条件。
Description
技术领域
本发明涉及一种USB转串口设备控制技术。
背景技术
随着科技的进步,各种各样的设备开始走进人们的生活。其中有很大一批设备是可以与电脑进行连接的,同时有很大一批设备是通过USB转串口方式连接到电脑上的。有很多设备生产厂商针对自己的产品定义了协议,根据协议向设备发送控制命令,以及接受并解析设备返回的指令。这些设备厂商在发布自己的产品时都会相应地提供一套可在PC机上运行的软件,用于对自己生产的某种或某几种设备进行处理。如果某个厂商想针对另外一个商家的设备开发应用,就必须了解其设备的通信协议,同时处理对设备数据的读写。这就造成了设备与厂商的紧密依赖关系。
经过对USB转串口设备的研究,我们发现对所有USB转串口设备都有如下特性:串口波特率,数据位,奇偶校验,停止位,流控制方式。目前研究的USB转串口设备或者主动输出数据,或者需要外部出发才会传输数据。同时我们也发现USB转串口设备的接收和发送的指令数据的格式可以分成几大类,其中包括:指令字+指令长度+指令数据;指令头+指令数据+指令尾。有些USB转串口设备的数据的长度是固定的,有些USB转串口设备需要首先向其发送一条某个长度的指令,然后会返回一个已知长度的数据。利用这些研究结果我们可以设计一种通用的USB转串口设备控制方案。这种方案经过一个USB转串口设备的初始化过程,然后就可以通过向设备发送指令对其进行控制,获取其返回数据了。
如2011年4月29日公开的中国专利,公开号为CN102185918A,公开了一种用于远程串口控制的无线节点,此方法是使用ZigBee技术,通过两个接口节点,一个通过串口与串口设备连接,另一个通过USB接口与PC连接,通过在PC端发送指令控制串口设备,但该技术没有解决远端串口设备的数据的读取问题。
发明内容
本发明的技术效果能够克服上述缺陷,提供一种通用的USB转串口设备控制方法,其提高应用开发者针对USB转串口设备进行应用开发的效率,免去其在USB转串口开发上的工作。
为实现上述目的,本发明采用如下技术方案:其包括如下步骤:
(1)监听应用消息;
(2)判断是否收到应用消息,没有收到,返回步骤(1);收到,进行下一步骤;
(3)判断是否为初始化消息:
是初始化消息,进行如下步骤:
(I)解析消息,启动设备处理子进程,当主进程启动设备处理子进程后返回监听应用消息步骤;
(II)子进程启动监听主进程消息的线程;
(III)子进程判断设备是否为主动型设备:
不是主动型设备,接收设备数据,并判断是否接收到数据,若没有收到数据,继续接收设备数据;收到数据,将设备数据封装发送给主进程,主进程对消息进行解析、封装,发送给对应应用;
是主动型设备,子进程启动监听设备消息的线程;
不是初始化消息,进行下一步骤;
(4)将控制指令封装成消息发送给处理设备的子进程;
(5)子进程解析消息;
(6)子进程将指令数据发送给设备;
(7)子进程判断设备是否为被动型设备,是被动型设备,进行下一步骤;
(8)接收设备数据;
(9)将设备数据封装成消息,发送给主进程;
(10)主进程解析子进程消息,得到设备数据,对数据进行封装,将数据发送给应用。
本发明主要解决如下几个问题:USB转串口设备数据格式的抽象,分类;USB转串口设备初始化信息的抽取;USB转串口设备的初始化,包括设备本身及对其处理的方式的初始化。
双数流程可以描述为:如果是初始化消息,解析出初始化数据,包括串口点(相对于Linux系统为文件挂载点,相对于Windows系统为端口号)串口波特率,数据位,奇偶校验,停止位,流控制方式,数据格式类别,设备类别(主动型设备或被动型设备)。启动设备处理子进程,设备处理子进程启动监听接收主进程消息的线程,设备处理子进程根据设备是否是主动型设备,决定是否启动监听设备消息的线程。
如果不是初始化消息,解析出设备控制指令,将控制指令封装成消息发送给相应的设备处理子进程。设备数据处理子进程解析消息,将指令数据发送给设备,如果设备是被动型设备,则接收起返回数据,封装消息发送给主进程,主进程解析消息,封装,并发送给对应应用。
初始化消息包括串口波特率、数据位、奇偶校验、停止位、流控制方式、数据格式类别、设备类别。设备分为被动型设备和主动型设备,主动型设备的设备本身不需要出发指令,而主动输出数据;被动型设备只有在接收到控制指令后,才输出数据。
数据格式包括控制指令格式和返回指令格式,其包括四种类型:
控制指令及返回指令格式均为:指令字+指令长度+指令数据;
控制指令及返回指令格式均为:指令头+指令数据+指令尾;
控制指令及返回指令具有固定的长度;
某条控制指令对应某条数据指令,并且该条数据指令的长度可知。
根据初始化信息进行串口初始化,以及数据格式相关项初始化。
按照数据格式类别进行控制指令的接收,向串口写入数据实现对设备的控制,进行串口数据的接收,向设备应用发送实现设备数据的传输。
本发明的通用USB转串口设备控制方法,为USB转串口设备的远程控制提供了条件,扩大了设备的应用空间,免除了应用开发商对硬件设备的处理工作。
附图说明
图1为本发明的流程示意图。
具体实施方式
本发明的通用USB转串口设备控制方法包括如下步骤:
(1)监听应用消息;
(2)判断是否收到应用消息,没有收到,返回步骤(1);收到,进行下一步骤;
(3)判断是否为初始化消息:
是初始化消息,进行如下步骤:
(I)解析消息,启动设备处理子进程,当主进程启动设备处理子进程后返回监听应用消息步骤;
(II)子进程启动监听主进程消息的线程;
(III)子进程判断设备是否为主动型设备:
不是主动型设备,接收设备数据,并判断是否接收到数据,若没有收到数据,继续接收设备数据;收到数据,将设备数据封装发送给主进程,主进程对消息进行解析、封装,发送给对应应用;
是主动型设备,子进程启动监听设备消息的线程;
不是初始化消息,进行下一步骤;
(4)将控制指令封装成消息发送给处理设备的子进程;
(5)子进程解析消息;
(6)子进程将指令数据发送给设备;
(7)子进程判断设备是否为被动型设备,是被动型设备,进行下一步骤;
(8)接收设备数据;
(9)将设备数据封装成消息,发送给主进程;
(10)主进程解析子进程消息,得到设备数据,对数据进行封装,将数据发送给应用。
本发明的控制方法不仅能够实现USB转串口设备的控制,同时能够实现对USB转串口设备数据的读取。
根据USB转串口设备输出数据的情形将设备分为被动型设备(编号01)和主动型设备(编号02)。当设备本身不需要出发指令,而主动输出数据时,称该设备为主动型设备;当设备本身只有在接收到控制指令后,才输出数据时,称该设备为被动型设备。
将USB转串口设备的数据格式进行抽象,分类。根据现有研究结果可分为如下四类(根据研究的深入,可能会发现新的数据格式类,此处可进行扩展),并进行编号:
控制指令及返回指令格式均为:指令字+指令长度+指令数据,此类编号为01。
控制指令及返回指令格式均为:指令头+指令数据+指令尾,此类编号为02。
控制指令及返回指令具有固定的长度,此类编号为03。
某条控制指令对应某条数据指令,并且该条数据指令的长度可知,此类编号为04。
定义数据格式解析相关规则内容
数据格式类别为01时,数据格式解析按照“&指令字长度&指令长度长度&”规则进行,其中“&”为分隔符。
数据格式类别为02时,数据格式解析按照“&指令头长度&指令尾长度&”规则进行,其中“&”为分隔符。
数据格式类别为03时,数据格式解析按照“&指令长度&”规则进行,其中“&”为分隔符。
数据格式类别为04时,数据格式不在此处解析。
Claims (4)
1.一种通用的USB转串口设备控制方法,其特征在于,包括如下步骤:
(1)监听应用消息;
(2)判断是否收到应用消息,没有收到,返回步骤(1);收到,进行下一步骤;
(3)判断是否为初始化消息:
是初始化消息,进行如下步骤:
(I)解析消息,启动设备处理子进程,当主进程启动设备处理子进程后返回监听应用消息步骤;
(II)子进程启动监听主进程消息的线程;
(III)子进程判断设备是否为主动型设备:
不是主动型设备,接收设备数据,并判断是否接收到数据,若没有收到数据,继续接收设备数据;收到数据,将设备数据封装发送给主进程,主进程对消息进行解析、封装,发送给对应应用;
是主动型设备,子进程启动监听设备消息的线程;
不是初始化消息,进行下一步骤;
(4)将控制指令封装成消息发送给处理设备的子进程;
(5)子进程解析消息;
(6)子进程将指令数据发送给设备;
(7)子进程判断设备是否为被动型设备,是被动型设备,进行下一步骤;
(8)接收设备数据;
(9)将设备数据封装成消息,发送给主进程;
(10)主进程解析子进程消息,得到设备数据,对数据进行封装,将数据发送给应用。
2.根据权利要求1所述的通用的USB转串口设备控制方法,其特征在于,初始化消息包括串口波特率、数据位、奇偶校验、停止位、流控制方式、数据格式类别、设备类别。
3.根据权利要求1或2所述的通用的USB转串口设备控制方法,其特征在于,设备分为被动型设备和主动型设备,主动型设备的设备本身不需要出发指令而主动输出数据;被动型设备只有在接收到控制指令后,才输出数据。
4.根据权利要求2所述的通用的USB转串口设备控制方法,其特征在于,数据格式包括控制指令格式和返回指令格式,其包括四种类型:
控制指令及返回指令格式均为:指令字+指令长度+指令数据;
控制指令及返回指令格式均为:指令头+指令数据+指令尾;
控制指令及返回指令具有固定的长度;
某条控制指令对应某条数据指令,并且该条数据指令的长度可知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104512058A CN103186485A (zh) | 2011-12-29 | 2011-12-29 | 通用的usb转串口设备控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104512058A CN103186485A (zh) | 2011-12-29 | 2011-12-29 | 通用的usb转串口设备控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103186485A true CN103186485A (zh) | 2013-07-03 |
Family
ID=48677659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104512058A Pending CN103186485A (zh) | 2011-12-29 | 2011-12-29 | 通用的usb转串口设备控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103186485A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843762A (zh) * | 2015-12-22 | 2016-08-10 | 武汉理工通宇新源动力有限公司 | 一种usb串口智能通信系统及usb串口通信监视方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064629A (zh) * | 2006-04-26 | 2007-10-31 | 英业达股份有限公司 | 实现虚拟远程设备的系统及其方法 |
CN101620581A (zh) * | 2008-07-03 | 2010-01-06 | 西安奇维测控科技有限公司 | 双口ram实现闪存控制器缓存的结构及实现该缓存的方法 |
US20110040904A1 (en) * | 2006-08-31 | 2011-02-17 | American Megatrends, Inc. | Remotely controllable switch and testing methods using same |
CN102185918A (zh) * | 2011-04-29 | 2011-09-14 | 南京航空航天大学 | 用于远程串口控制的无线节点 |
-
2011
- 2011-12-29 CN CN2011104512058A patent/CN103186485A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064629A (zh) * | 2006-04-26 | 2007-10-31 | 英业达股份有限公司 | 实现虚拟远程设备的系统及其方法 |
US20110040904A1 (en) * | 2006-08-31 | 2011-02-17 | American Megatrends, Inc. | Remotely controllable switch and testing methods using same |
CN101620581A (zh) * | 2008-07-03 | 2010-01-06 | 西安奇维测控科技有限公司 | 双口ram实现闪存控制器缓存的结构及实现该缓存的方法 |
CN102185918A (zh) * | 2011-04-29 | 2011-09-14 | 南京航空航天大学 | 用于远程串口控制的无线节点 |
Non-Patent Citations (1)
Title |
---|
赵政华: "《基于Zigbee技术的无线温、湿度监测系统的设计与实现》", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843762A (zh) * | 2015-12-22 | 2016-08-10 | 武汉理工通宇新源动力有限公司 | 一种usb串口智能通信系统及usb串口通信监视方法 |
CN105843762B (zh) * | 2015-12-22 | 2018-12-11 | 武汉理工通宇新源动力有限公司 | 一种usb串口智能通信系统及usb串口通信监视方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575552B2 (en) | Device, method and system for operation of a low power PHY with a PCIe protocol stack | |
US20200241888A1 (en) | Method and apparatus for plug and play, networkable iso 18000-7 connectivity | |
CN108107827B (zh) | 一种基于zynq平台软核的srio控制方法 | |
CN104079415B (zh) | 网络装置及其联线检测方法 | |
EP2860638B1 (en) | Serial communication over communication control pin | |
CN108255776B (zh) | 一种兼容apb总线的i3c主设备、主从系统及通信方法 | |
CN107592250B (zh) | 基于航空fc总线多速率自适应测试设备 | |
CN102622136B (zh) | 一种多点触摸系统数据处理方法及装置 | |
CN112398714B (zh) | 一种背板总线主站、系统及其数据通信方法 | |
CN101763324B (zh) | 设备模拟的实现方法和装置 | |
CN106464824B (zh) | 引脚控制方法及装置 | |
CN104793759A (zh) | 一种基于ps2接口鼠标信号的模拟与监控设备 | |
CN103369711A (zh) | 通信连接建立方法及终端设备 | |
CN103186485A (zh) | 通用的usb转串口设备控制方法 | |
CN103440218A (zh) | 基于usb-hid协议的can总线监控方法 | |
CN108965368A (zh) | 具有网络功能的数据管理电路及基于网络的数据管理方法 | |
CN113452538B (zh) | 控制设备、执行设备、设备管理方法和设备管理系统 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
WO2021098157A1 (zh) | 通信芯片的检测方法、装置、设备及介质 | |
CN110572387B (zh) | 一种链路层处理方法 | |
CN203859747U (zh) | 一种蓝牙通信卡 | |
CN117834750B (zh) | 获取协议数据的装置、方法、系统、设备、介质及服务器 | |
CN103200248A (zh) | 基于嵌入式系统的电力参数监测的通信方法 | |
CN110519740B (zh) | 一种链路层处理装置 | |
CN116701005A (zh) | 一种基于连接器的端口管理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130703 |