CN106716392B - 用于串行通信的栈定时调整 - Google Patents
用于串行通信的栈定时调整 Download PDFInfo
- Publication number
- CN106716392B CN106716392B CN201480082213.1A CN201480082213A CN106716392B CN 106716392 B CN106716392 B CN 106716392B CN 201480082213 A CN201480082213 A CN 201480082213A CN 106716392 B CN106716392 B CN 106716392B
- Authority
- CN
- China
- Prior art keywords
- serial
- usb
- timing adjustment
- communication
- stack
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000001934 delay Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4213—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Computer And Data Communications (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
- Bidirectional Digital Transmission (AREA)
Abstract
提供了一种用于串行通信的用于栈定时调整的方法。该方法包括接收USB通信,将USB通信解码成UART帧,以及根据串行协议来调整UART帧的定时。
Description
技术领域
下面描述的实施例涉及协议栈,并且更特别地涉及用于串行通信的栈定时调整。
背景技术
主设备与从设备之间的串行通信有时依赖于定时来确定通信的开始和结束。例如,Modbus通信协议采用主-从布置,其中主设备发起所有通信活动。在此布置中,主设备向从设备发送命令。从设备在进行响应之前等待一段时间,通常是3.5个字符。如果主设备在该时间段之后未发送任何其它数据,则允许从设备发送响应。此布置确保在给定时间只有主设备或从设备在进行通信。其它通信协议采用类似的定时约束,诸如可寻址远程传感器高速通道(HART)协议。HART协议是具有确定网络上的设备何时可以进行通信的各种定时约束的多主设备协议,所述约束诸如从设备超时(STO)、链路准许RT1以及链路静默RT2。
通常通过连续地发射二进制数据的通用异步接收机/发射机(UART)来发射串行通信。例如,主设备上的程序可以生成符合Modbus标准的命令并通过UART来发送命令。从设备可以用从设备的UART来接收二进制数据。UART可以将二进制数据提供给从设备的程序或嵌入式***,其可以根据Modbus标准来解释二进制数据。从设备然后可以生成对命令的响应并通过UART将其发送到主设备。该响应然后被主设备根据Modbus标准进行解释。用其它串行通信协议可以采用类似方法。
如可以认识到的,连续发射的二进制数据的正确解释必须是根据串行通信协议。通信协议可以定义定时间隔,诸如用以完成通信的时间、接收与发射之间的等待时段、通信中的字段的位尺寸等。例如,如果主设备的UART发射请求包,其中在二进制数据中存在间隙(中间的一个字符寂静),则从设备将不会将其视为两个独立的请求包。如果间隙超过3.5个字符的时间,则从设备将不正确地将其视为两个独立的请求包。
通用串行总线(USB)将较旧的基于UART的串行通信协议逐渐替换为实际上的硬件标准。例如,在基于UART的串行通信协议中充当主设备的许多计算机正在被具有USB接口的计算机取代。然而,在许多应用中仍在利用采用基于UART的串行通信协议的程序。为了通过USB接口进行通信,串行通信被“堆叠”在虚拟UART层上并根据USB标准通过USB接口进行发射。
然而,当通过USB接口来发射依赖于定时的基于UART的串行通信时,在解释通信时可能导致定时误差。因此,需要一种用于串行通信的栈定时调整。
发明内容
提供了一种用于串行通信的用于栈定时调整的方法。根据实施例,所述方法包括接收USB通信,将USB通信解码成UART帧,以及根据串行协议来调整UART帧的定时。
提供了一种用于串行通信的具有栈定时调整的USB设备。根据实施例,具有栈定时调整的USB设备包括USB控制器,其被配置成接收USB通信并从USB通信提取已编码串行包。具有栈定时调整的USB设备还包括被配置成将已编码串行包解码成UART帧的微处理器和被配置成根据串行协议来调整UART帧的定时的栈定时调整。
提供了一种用于串行通信的具有栈定时调整的通信***。根据实施例,用于串行通信的具有栈定时调整的通信***包括被适配成将串行包编码到USB通信中的USB设备和与该USB设备通信的具有栈定时调整的USB设备。具有栈定时调整的USB被配置成从USB通信提取串行包并将其解码,并且调整串行包的定时。
方面
根据一方面,一种用于串行通信的用于栈定时调整的方法包括接收USB通信,将USB通信解码成UART帧,以及根据串行协议来调整UART帧的定时。
优选地,将USB通信解码成UART帧的步骤包括将UART帧排序。
优选地,根据串行协议来调整UART帧的定时的步骤包括在被编码到USB通信中的两个或更多个串行包之间添加延迟。
优选地,根据串行协议来调整UART帧的定时的步骤包括去除添加到被编码到USB通信中的串行包的字符间延迟。
优选地,所述串行协议包括Modbus协议。
优选地,所述串行协议包括HART协议。
优选地,所述USB通信包括具有串行包的USB CDC消息。
根据一方面,具有栈定时调整的USB设备(100)包括USB控制器(100a),其被配置成接收USB通信并从USB通信提取已编码串行包;微处理器(100b),其被配置成将已编码串行包解码成UART帧;以及栈定时调整(100c),其被配置成根据串行协议来调整UART帧的定时。
优选地,所述微处理器(100b)进一步被配置成按顺序排序UART帧。
优选地,被配置成根据串行协议来调整UART帧的定时的栈定时调整(100c)包括被配置成在被编码到USB通信中的串行包中的两个或更多个之间添加时间延迟的栈定时调整(100c)。
优选地,被配置成根据串行协议来调整UART帧的定时的栈定时调整(100c)包括被配置成去除添加到被编码到USB通信中的串行包的字符间延迟的栈定时调整(100c)。
优选地,所述串行协议包括Modbus协议。
优选地,所述串行协议包括HART协议。
优选地,所述USB通信包括具有串行包的USB CDC消息。
根据一方面,用于串行通信的具有栈定时调整的通信***(50)包括被适配成将串行包编码到USB通信中的USB设备(200)和与USB设备(200)通信的具有栈定时调整的USB设备(100)。具有栈定时调整的USB设备被配置成从USB通信提取串行包并将其解码,并且调整串行包的定时。
优选地,具有栈定时调整的USB设备(100)进一步被配置成用被编码到响应USB通信中的串行响应包对串行包进行响应。
优选地,USB设备(200)是进一步被配置成将串行请求包编码到USB通信中的主设备。
附图说明
相同的附图标记在所有图上表示相同元件。应理解的是附图不一定按比例。
图1示出了具有USB设备12和串行设备14的现有技术通信***的框图10。
图2示出了图1中所示的框图10的更详细部分视图。
图3示出了根据实施例的具有栈定时调整的通信***50的框图。
图4示出了参考图3所述的具有栈定时调整的USB设备100的更详细框图。
图5示出了根据实施例的具有定时调整的协议栈500。
图6示出了根据实施例的具有栈定时调整的Modbus协议栈600。
图7示出了根据实施例的具有栈定时调整的HART协议栈700。
图8示出了根据实施例的用于串行通信的用于栈定时调整的方法800。
具体实施方式
图1-8和随后的描述描绘了特定示例以教导本领域的技术人员如何实现和使用用于串行通信的栈定时调整的实施例的最佳方式。出于教导本发明原理的目的,某些常规方面已被简化或省略。本领域的技术人员将认识到落在本描述的范围内的根据这些示例的变化。本领域的技术人员将认识到可以用各种方式将下面描述的特征组合以形成用于串行通信的栈定时调整的多个变化。结果,下面描述的实施例不限于下面描述的特定示例,而是仅由权利要求及其等价物限制。
图1示出了具有USB设备12和串行设备14的现有技术通信***的框图10。在图1中所示的布置中,转换器箱16在USB设备12与串行设备14之间。USB线缆18通过USB端口18a将转换器箱16耦合到USB设备12。转换器箱16还通过串行通信端口19a用串行通信线缆19耦合到串行设备14。以下是串行设备14和转换器箱16的更详细描述,其示出了可以如何用用于串行通信的栈定时调整来消除硬件冗余。
图2示出了图1中所示的框图10的更详细部分视图。框图10包括参考图1所述的串行设备14、转换器箱16、USB线缆18以及串行通信线缆19。还示出了被耦合到串行通信线缆19的RS485转换器14a。然而,在替换实施例中,可以采用其它物理层,诸如Bell202或RS422物理层。RS485转换器14a还被示为与RS232 UART 14b通信。替换地,可以不采用RS485转换器14a。替代地,可以采用RS232 UART 14b来与转换器箱16通信。在所示的实施例中,微处理器14c被耦合到RS232 UART 14b。微处理器14c向例如在USB设备12上执行的软件提供串行协议栈14d。图2还将转换器箱16示为具有被耦合到USB线缆18的USB控制器16a。在转换器箱16中,微处理器16b被耦合到USB控制器16a和RS232 UART 16c。RS232 UART 16c被耦合到RS485转换器16d。替换地,可以不采用RS485转换器16d。替代地,RS232 UART 16c可以与串行设备14通信。在所示的实施例中,RS485转换器16d被耦合到串行通信线缆19且与串行设备14中的RS485转换器14a通信。
如从图2可以认识到的,RS485转换器14a的使用可以要求冗余硬件。例如,串行设备14和转换器箱16二者都包括微处理器14c、16b、RS232 UART 14b、16c以及RS485转换器14a、16d。冗余硬件的功能涉及到USB设备12与串行设备14之间的串行通信的编码和解码。例如,转换器箱16中的RS485转换器16d编码来自RS232 UART 16c的UART帧,并且串行设备14中的RS485转换器14a解码UART帧。因此,消除编码和解码UART帧的冗余功能可以消除冗余硬件。以下描述例证了栈定时调整可以如何减少或消除定时误差和冗余通信硬件。
图3示出了根据实施例的具有栈定时调整的通信***50的框图。在所示的实施例中,具有栈定时调整的通信***50包括用USB线缆120耦合到USB设备200的具有栈定时调整的USB设备100。USB线缆120通过USB端口110耦合到具有栈定时调整的USB设备100且通过USB端口210耦合到USB设备200。
具有栈定时调整的USB设备100可以是可以包括串行通信的栈定时调整的任何适当USB设备。例如,具有栈定时调整的USB设备100可以是包括生成串行包的软件的流量计发射机。在某些实施例中,可以响应于来自USB设备200的请求而从流量计获得数据并将数据转换成串行包。可以根据串行通信协议来生成串行包。在该示例性实施例中,具有栈定时调整的USB设备100可以是对USB设备200的从设备。
USB设备200可以是能够与具有栈定时调整的USB设备100通信的任何适当USB设备。例如,在其中具有栈定时调整的USB设备100是从流量计获得数据的发射机的前述示例中,USB设备200可以是运行可以发送串行请求包的软件的个人计算机。串行请求包可以遵守具有栈定时调整的USB设备100所采用的串行通信协议。因此,具有栈定时调整的USB设备100可以正确地解释串行请求包并用串行响应包对其进行响应。
如下面将更详细地描述的,USB设备200可以将串行包编码到USB通信中。例如,可以将串行请求包编码成USB通信设备类(CDC)消息。USB CDC是定义具有不同接口(诸如串行接口)的设备之间的通信的USB标准。然而,将串行包编码到USB通信中可以向串行包添加延迟,诸如时间延迟。该延迟还可以是串行包中的两个或更多个字符之间的字符间延迟。如果不调整定时,则这些及其它延迟可能引起通信问题。例如,在没有由Modbus从设备进行的定时调整的情况下被添加到Modbus串行请求包的时间延迟可以由于Modbus串行请求包中的两个或更多个字符之间的3.5字符间延迟的存在而阻止响应。字符间延迟可以引起串行请求包的错误解码,其可以导致不正确的数据响应和命令以及甚至工业设备中的灾难性故障。下面描述可以防止此类问题的栈定时调整的附加细节。
图4示出了参考图3所述的具有栈定时调整的USB设备100的更详细框图。如图4中所示,具有栈定时调整的USB设备100包括经由USB端口110耦合到USB线缆120的USB控制器100a。USB控制器100a被耦合到微处理器100b。栈定时调整100c被示为被耦合到微处理器100b。在替换实施例中,栈定时调整100c可以是微处理器100b的一部分。栈定时调整100c可以向例如在具有栈定时调整的USB设备100上执行的软件提供串行协议栈100d。
USB控制器100a可以从USB设备200接收USB通信。USB通信可以由具有由在USB设备200上执行的软件生成的串行包的USB CDC消息组成。下面参考图5-8更详细地描述将串行包编码到USB通信中的细节。USB控制器100a可以是能够解码USB通信以从USB通信提取已编码串行包的任何适当USB控制器。USB控制器100a可以提取已编码串行包并将其提供给微处理器100b。
微处理器100b可以被配置成将已编码串行包解码成UART帧。微处理器100b可以是能够将已编码串行包解码成UART帧的任何适当微处理器。例如,微处理器100b可以是执行以高时钟速率接收提取出的串行包、缓冲已编码串行包以便数据速率遵照UART格式并按适当顺序排序UART帧的软件的处理器。已解码UART帧可以被提供给栈定时调整100c。
栈定时调整100c可以从微处理器100b接收已解码UART帧。虽然来自微处理器100b的已解码UART帧可以被排序且具有遵照UART标准的数据速率,但UART帧仍可能具有在前文中讨论的延迟。例如,UART帧可能在串行包之间具有字符间延迟或不适当的时间延迟。栈定时调整100c可以根据串行协议来调整UART帧的定时,如下面将参考图5-8所讨论的。因此,栈定时调整100c可以将没有延迟的串行协议栈100d提供给例如在具有栈定时调整的USB设备100上执行的软件。
串行协议栈100d可以是被具有栈定时调整的USB设备100采用的任何串行协议栈。例如,具有栈定时调整的USB设备100可以具有接收和发送遵照Modbus或HART标准的通信的软件。在其中具有栈定时调整的USB设备100是流量计的实施例中,串行协议栈100d可以是由USB设备200发送的串行请求包。由于栈定时调整允许串行通信在没有由延迟引起的误差的情况下发生,所以USB设备200可以正确地对串行请求包进行响应。下面描述串行包的编码和解码的附加细节。
图5示出了根据实施例的具有定时调整的协议栈500。在图5的实施例中,可以由例如参考图3和4所述的USB设备200来提供串行请求包510。如图5中所示,串行请求包510被编码成多个UART帧520。所述多个UART帧520被示为由第一组UART帧520a和第二组UART帧520b组成。在替换实施例中,可以采用更多或更少的UART帧。如在图5中还可以看到的,所述多个UART帧520被编码到USB通信530中。第一组UART帧520a被编码成第一USB CDC消息530a且第二组UART帧520b被编码成第二USB CDC消息530b。在替换实施例中,可以采用更多或更少的USB CDC消息530a、530b。USB通信530可以被发送到具有栈定时调整的USB设备100。
在图5中还示出了串行响应包550,其可以在例如具有栈定时调整的USB设备100接收到USB通信530之后由具有栈定时调整的USB设备100发送。串行响应包550可以被发送到参考图3所述的USB设备200。在图5的实施例中,串行响应包550被编码成多个UART帧560。所述多个UART帧560被示为由第一组UART帧560a和第二组UART帧560b组成。所述多个UART帧560被编码成USB通信570。在所示的实施例中,第一组UART帧560a被编码成第一USB CDC消息570a。第二组UART帧560b被编码成第二USB CDC消息570b。USB通信570可以响应于串行请求包510而被发送到例如USB设备200。
串行请求包510可以是符合串行通信标准(诸如Modbus和HART标准)的字符序列。然而,其它串行通信标准在本公开的范围内。所述字符序列可以表示命令、查询、数据等。例如,所述字符序列可以是由在USB设备200上运行的应用发起的通信。该通信可以被定址到具有栈定时调整的USB设备100以请求经由USB线缆120向USB设备200提供数据。
串行请求包510被根据接口标准而编码成所述多个UART帧520。例如,所述多个UART帧520可以是串行请求包510到具有遵照串行接口标准(诸如RS232标准)的定时和数据速率的字符序列的转换。然而,作为通过RS232连接器来发射所述多个UART帧520的替代,所述多个UART帧520被编码成USB通信530。
可以在USB通信530的一部分中包括所述多个UART帧520的一部分。例如,USB CDC标准可以分配USB CDC消息的一部分用于封装数据。被用来封装数据的每个USB通信530的所述部分有时在本领域中称为有效负荷。在某些实施例中,有效负荷可以具有有限的字节宽度。例如,有效负荷可以是64字节宽的。附加地,所述多个UART帧520中的每一个可以不具有与有效负荷相同的字节宽度。结果,在有效负荷中可能存在未使用字符。另外,可以将所述多个UART帧520中的每一个划分在不同的USB通信530之间。在这些及其它实施例中,USB通信530可以用来传送所述多个UART帧520。因此,在具有栈定时调整的USB设备100上运行的应用不需要被修改或重编程成通过例如USB端口110进行通信。
在图5中还示出了串行请求包510与所述多个UART帧520之间的用短划线指示的时间延迟。该时间延迟可以是由于具有栈定时调整的USB设备100在例如微处理器100b中具有处理中断或者在串行请求包510正在被解码成所述多个UART帧520时的其它延迟而引起的。该时间延迟被图示为在串行请求包510与所述多个UART帧520之间。然而,如前文所述,可以发生其它延迟。例如,延迟可以存在于所述多个UART帧520中的每一个之间、所述多个UART帧520中的每一个中的两个或更多个字符之间等等。
如前文参考图3-4所述,栈定时调整100c可以去除所述延迟以确保具有栈定时调整的USB设备100与USB设备200之间的串行通信在没有误差的情况下发生。如可以认识到的,栈定时调整100c可以遵照串行协议。下面参考图6和7来更详细地描述示例性串行协议。
图6示出了根据实施例的具有栈定时调整的Modbus协议栈600。在图6的实施例中,可以由例如参考图3和4所述的USB设备200来提供Modbus请求包610。如图6中所示,Modbus请求包610被编码成多个UART帧620。所述多个UART帧620被示为由第一组UART帧620a和第二组UART帧620b组成。在替换实施例中,可以采用更多或更少的UART帧。如在图6中还可以看到的,所述多个UART帧620被编码到USB通信630中。第一组UART帧620a被编码成第一USBCDC消息630a,并且第二组UART帧620b被编码成第二USB CDC消息630b。在替换实施例中,可以采用更多或更少的USB CDC消息。USB通信630可以被发送到具有栈定时调整的USB设备100。
在图6中还示出了包尾(end-of-packet,EOP)640延迟。EOP 640是允许从设备进行响应的Modbus请求包610之后的延迟或时间段。如果Modbus请求包610被从设备以3.5字符的延迟接收到,则从设备可以用Modbus响应包650进行响应。
Modbus响应包650可以在例如具有栈定时调整的USB设备100接收到USB通信630之后由具有栈定时调整的USB设备100发送。Modbus响应包650可以被发送到参考图3所述的USB设备200。在图6的实施例中,Modbus响应包650被编码成多个UART帧660。所述多个UART帧660被示为由第一组UART帧660a和第二组UART帧660b组成。所述多个UART帧660被编码成USB通信670。在所示的实施例中,第一组UART帧660a被编码成第一USB CDC消息670a。第二组UART帧660b被编码成第二USB CDC消息670b。USB通信670可以响应于Modbus请求包610而被发送到例如USB设备200。
Modbus请求包610可以是符合Modbus通信标准的字符序列。该序列可以包括由主设备发送到从设备的命令。然而,由于图6中所示的用短划线图示出的延迟,具有栈定时调整的USB设备100不能在没有调整Modbus请求包610的定时的情况下进行响应。例如,将Modbus请求包610解码成所述多个UART帧620可以促使Modbus请求包610的定时移位,从而将EOP 640减小至小于3.5个字符。结果,从设备不能对Modbus请求包610进行响应。
另外,Modbus标准将Modbus请求包610划分成由位长定义的部分或字段。例如,Modbus RTU帧格式可以在地址和函数字段之后具有数据部分。将Modbus请求包610编码成USB通信630可以向这些字段中***字符或位。例如,如前文参考图5所述,可以将Modbus请求包610划分在两个或更多个USB通信630之间。此划分可以促使附加字符被***Modbus请求包610中。在HART协议中可以向串行包添加类似延迟,这将在下面更详细地描述。
图7示出了根据实施例的具有栈定时调整的HART协议栈700。在图7的实施例中,可以由例如参考图3和4所述的USB设备200来提供HART请求包710。如图7中所示,HART请求包710被编码成多个UART帧720。所述多个UART帧720被示为由第一组UART帧720a和第二组UART帧720b组成。在替换实施例中,可以采用更多或更少的UART帧。如在图7中还可以看到的,所述多个UART帧720被编码到USB通信730中。第一组UART帧720a被编码成第一USB CDC消息730a,并且第二组UART帧720b被编码成第二USB CDC消息730b。在替换实施例中,可以采用更多或更少的USB CDC消息730a、730b。USB通信730可以被发送到具有栈定时调整的USB设备100。
在图7中还示出了从设备超时(STO)740时段。STO 740是HART请求包710之后的最大时间段,在该时间段中HART标准中的从设备必须用例如HART响应包750开始响应。
HART响应包750可以在例如具有栈定时调整的USB设备100接收到USB通信730之后由具有栈定时调整的USB设备100发送。HART响应包750可以被发送到参考图3所述的USB设备200。在图7的实施例中,HART响应包750被编码成多个UART帧760。所述多个UART帧760被示为由第一组UART帧760a和第二组UART帧760b组成。所述多个UART帧760被编码成USB通信770。在所示的实施例中,第一组UART帧760a被编码成第一USB CDC消息770a。第二组UART帧760b被编码成第二USB CDC消息770b。USB通信770可以响应于HART请求包710而被发送到例如USB设备200。
HART请求包710可以是符合HART通信标准的字符序列。该序列可以包括由主设备发送到从设备的命令。然而,由于图7中所示的用短划线图示出的延迟,具有栈定时调整的USB设备100可能不能在没有对HART请求包710进行定时调整的情况下进行响应。例如,将HART请求包710解码成所述多个UART帧720可以促使HART请求包710的定时移位,从而减小STO 740的长度。结果,从设备不能对HART请求包710进行响应。
另外,HART标准将HART请求包710划分成由位长定义的部分或字段。如图7中所示,HART请求包710由前导码712、定界符714以及数据716部分组成。HART响应包750被同样地划分成前导码752、定界符754以及数据756部分。前导码712、752是同步和载波检测字段。定界符714、754将前导码712、752与数据716、756部分分离。虽然在图7中未示出,但数据716、756在HART协议中由地址、命令、尺寸、状态、数据字段以及校验和字段组成。
可以采用栈定时调整将前述延迟从串行包(诸如串行请求包510-710)去除,如下面将更详细地描述的。
图8示出了根据实施例的用于串行通信的用于栈定时调整的方法800。方法800包括接收USB通信810,将USB通信解码成UART帧820,以及根据串行协议来调整UART帧的定时830。
如前文中所讨论的,接收USB通信的步骤810可以由接收USB CDC通信组成。USB通信530可以包括被USB设备200编码到USB通信530中的串行请求包510。如前文所述,该编码可以向串行包添加延迟,诸如定时延迟。
将USB通信解码成UART帧的步骤820可以包括各种操作。例如,将USB通信解码成UART帧820可以包括按与被编码成USB通信的UART帧相同的顺序排序UART帧。附加地或替换地,将USB通信解码成UART帧可以包括将已编码UART帧缓冲成与接口标准的数据速率相符的速率。
根据串行协议来调整UART帧的定时的步骤830可以包括调整串行包之间的时间延迟、字符间延迟等的操作。例如,根据串行协议来调整UART帧的定时830可以包括去除UART帧中的字符间延迟。附加地或替换地,还可以调整串行包之间的时间延迟。调整UART帧的定时可以包括检验包尾延迟,诸如前文中描述的EOP 640或STO 740。如果包尾延迟不满足串行通信标准,则可以向串行请求包510-710添加延迟。因此,具有栈定时调整的USB设备100能够正确地对串行请求包510-710进行响应。
上文所述的实施例提供用于串行通信的栈定时调整。如上文所解释的,用于栈定时调整的方法800可以调整所述多个UART帧520-720的定时。调整所述多个UART帧520-720的定时可以包括去除延迟,诸如添加到串行请求包510-710的定时延迟、字符间延迟等。通过去除延迟,具有栈定时调整的USB设备100可以正确地解释串行包,诸如由USB设备200发送的串行请求包510。
具有栈定时调整的USB设备100可以包括用以执行用于栈定时调整的方法800的栈定时调整100c。具有栈定时调整的USB设备100因此可以正确地执行串行包中的命令。例如,具有栈定时调整的USB设备100可以是从流量计读取数据并经由串行响应包550-750将所述数据发送到USB设备200的发射机。
在具有栈定时调整的USB设备100中包括栈定时调整100c可以减少或消除组件和设备。例如,不需要参考图1和2所述的转换器箱16。另外,不需要参考图2所述的RS485转换器14a。附加地,可以改善用于USB设备200与具有栈定时调整的USB设备100之间的通信的数据速率。例如,可以以比许多串行接口标准(诸如RS232标准)高得多的速率发射USB通信530-730。
在具有栈定时调整的USB设备100中包括用于栈定时调整的方法800还可以消除对于客户修改软件、确保转换器箱的兼容性等的需要。例如,不需要用例如专用USB通信协议来更新在USB设备200上执行的软件。软件可以继续在不修改或开发新软件的情况下发送串行包,诸如串行请求包510-710。
上述实施例的详细描述并不是被本发明人设想在本描述的范围内的所有实施例的详尽描述。事实上,本领域的技术人员将认识到,上述实施例的某些元件可以被以各种方式组合或消除以产生另外的实施例,并且此类另外的实施例落在本描述的范围和教导内。对于本领域的技术人员而言还将显而易见的是,可以整体地或部分地将上述实施例组合以产生在本描述的范围和教导内的附加实施例。
因此,虽然在本文中出于例证性目的描述了特定实施例,但在本描述的范围内可以有各种等价修改,如相关领域的技术人员将认识到的。本文中提供的教导可以应用于用于串行通信的其它栈定时调整而不仅仅是上文所述和附图中所示的实施例。因此,应根据以下权利要求来确定上述实施例的范围。
Claims (17)
1.一种用于串行通信的用于栈定时调整的方法,该方法包括:
接收USB通信;
将接收的USB通信解码成解码的UART帧;以及
根据串行协议通过以下之一来调整所述解码的UART帧的定时:
向所述解码的UART帧添加延迟;以及
从所述解码的UART帧中去除延迟。
2.根据权利要求1所述的方法,其中,将所述接收的USB通信解码成UART帧的步骤包括将所述UART帧排序。
3.根据权利要求1或权利要求2之一所述的方法,其中,根据串行协议来调整所述解码的UART帧的定时的步骤包括在被编码到所述USB通信中的两个或更多个串行包之间添加延迟。
4.根据前述权利要求1至2中的任何一个所述的方法,其中,根据串行协议来调整所述解码的UART帧的定时的步骤包括去除添加到被编码到所述USB通信中的串行包的字符间延迟。
5.根据前述权利要求1至2中的任何一个所述的方法,其中,所述串行协议包括Modbus协议。
6.根据前述权利要求1至2中的任何一个所述的方法,其中,所述串行协议包括HART协议。
7.根据前述权利要求1至2中的任何一个所述的方法,其中,所述USB通信包括具有串行包的USB CDC消息。
8.一种用于串行通信的具有栈定时调整的USB设备(100),包括:
USB控制器(100a),其被配置成:
接收USB通信;以及
从所述USB通信提取已编码串行包;
微处理器(100b),其被配置成将所述已编码串行包解码成解码的UART帧;以及
栈定时调整(100c),其被配置成根据串行协议通过以下之一来调整所述解码的UART帧的定时:
向所述解码的UART帧添加延迟;以及
从所述解码的UART帧中去除延迟。
9.根据权利要求8所述的具有栈定时调整的USB设备(100),其中,所述微处理器(100b)进一步被配置成按顺序排序所述解码的UART帧。
10.根据权利要求8或权利要求9之一所述的具有栈定时调整的USB设备(100),其中,被配置成根据串行协议来调整所述解码的UART帧的定时的栈定时调整(100c)包括被配置成在被编码到所述接收的USB通信中的串行包中的两个或更多个之间添加时间延迟的栈定时调整(100c)。
11.根据前述权利要求8至9中的任何一个所述的具有栈定时调整的USB设备(100),其中,被配置成根据串行协议来调整所述解码的UART帧的定时的栈定时调整(100c)包括被配置成去除添加到被编码到所述接收的USB通信中的串行包的字符间延迟的栈定时调整(100c)。
12.根据前述权利要求8至9中的任何一个所述的具有栈定时调整的USB设备(100),其中,所述串行协议包括Modbus协议。
13.根据前述权利要求8至9中的任何一个所述的具有栈定时调整的USB设备(100),其中,所述串行协议包括HART协议。
14.根据前述权利要求8至9中的任何一个所述的具有栈定时调整的USB设备(100),其中,所述USB通信包括具有串行包的USB CDC消息。
15.一种用于串行通信的具有栈定时调整的通信***(50),包括:
USB设备(200),其被适配成将串行包编码到USB通信中;以及
具有栈定时调整的USB设备(100),其与所述USB设备(200)通信并被配置成:
从所述USB通信提取所述串行包并将所述串行包解码为解码的串行包;以及
通过配置为以下之一来调整所述解码的串行包的定时:
向提取并解码的串行包添加延迟;以及
从提取并解码的串行包中去除延迟。
16.根据权利要求15所述的具有栈定时调整的通信***(50),其中,具有栈定时调整的USB设备(100)进一步被配置成用被编码到响应USB通信中的串行响应包对所述解码的串行包进行响应。
17.根据权利要求15或权利要求16之一所述的具有栈定时调整的通信***(50),其中,USB设备(200)是进一步被配置成将串行请求包编码到所述USB通信中的主设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/057487 WO2016048329A1 (en) | 2014-09-25 | 2014-09-25 | Stack timing adjustment for serial communications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106716392A CN106716392A (zh) | 2017-05-24 |
CN106716392B true CN106716392B (zh) | 2021-06-08 |
Family
ID=51743549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480082213.1A Active CN106716392B (zh) | 2014-09-25 | 2014-09-25 | 用于串行通信的栈定时调整 |
Country Status (13)
Country | Link |
---|---|
US (1) | US10649947B2 (zh) |
EP (1) | EP3198461B1 (zh) |
JP (1) | JP6465965B2 (zh) |
KR (2) | KR20180099938A (zh) |
CN (1) | CN106716392B (zh) |
AR (1) | AR102009A1 (zh) |
AU (1) | AU2014407115B2 (zh) |
BR (1) | BR112017005333B1 (zh) |
CA (1) | CA2962252C (zh) |
MX (1) | MX363039B (zh) |
RU (1) | RU2677376C2 (zh) |
SG (1) | SG11201701808PA (zh) |
WO (1) | WO2016048329A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3171484B1 (en) * | 2015-09-24 | 2019-04-17 | Guangdong Oppo Mobile Telecommunications Corp., Ltd | Mobile terminal, power supply adapter, and upgrading method thereof |
CN108156156A (zh) * | 2017-12-25 | 2018-06-12 | 广州市熙泰自控设备有限公司 | 一种hart协议与modbus协议转换器 |
US11729272B2 (en) * | 2020-09-25 | 2023-08-15 | Texas Instruments Incorporated | Hart-enabled device with reduced communication lines and break extension protocol |
WO2024030845A1 (en) | 2022-08-01 | 2024-02-08 | Cytomx Therapeutics, Inc. | Protease-cleavable moieties and methods of use thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001251324A (ja) * | 2000-03-08 | 2001-09-14 | Fuji Electric Co Ltd | フィールドバスの端末器、この端末器の制御方法およびこの端末器を有するフィールドバスシステム |
CN1862517A (zh) * | 2005-04-28 | 2006-11-15 | 惠普开发有限公司 | 虚拟化通用异步接收器-发送器接口 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4700358A (en) | 1985-11-18 | 1987-10-13 | Hayes Microcomputer Products, Inc. | Synchronous/asynchronous modem |
TW455805B (en) * | 1998-02-26 | 2001-09-21 | Winbond Electronics Corp | Converter allowing data communications equipment to transmit data to data terminal equipment through universal serial bus and the control method thereof |
US6260084B1 (en) * | 1998-05-18 | 2001-07-10 | 3Com Corporation | Modem apparatus and method for serial command and data multiplexing |
FR2816786B1 (fr) * | 2000-11-14 | 2003-09-12 | Schneider Automation S A | Dispositif d'adaptation programmable pour protocoles de communication |
JP2004247856A (ja) * | 2003-02-12 | 2004-09-02 | Sanyo Electric Co Ltd | データ受信装置及びデータ送受信方法 |
JP4812066B2 (ja) | 2003-10-09 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | 半導体集積回路 |
JP2005151463A (ja) * | 2003-11-19 | 2005-06-09 | Pioneer Electronic Corp | ストリームデータ受信装置およびストリームデータ受信方法 |
KR20050070659A (ko) | 2003-12-30 | 2005-07-07 | 엘지전자 주식회사 | 엠피시8260 엠시시를 이용한 다중 유에이알티 통신 장치및 방법 |
KR200360109Y1 (ko) | 2004-05-18 | 2004-08-26 | 강길종 | 유에스비 대 유아트 통신용 데이터 통신 케이블 |
US20070067458A1 (en) | 2005-09-20 | 2007-03-22 | Rockwell Software, Inc. | Proxy server for integration of industrial automation data over multiple networks |
JP4940764B2 (ja) * | 2006-06-02 | 2012-05-30 | 横河電機株式会社 | 通信制御装置 |
EP2541429B1 (en) * | 2009-10-15 | 2014-03-12 | Seiko Epson Corporation | Electronic device, control method thereof and recording medium |
EP2771975A4 (en) * | 2010-03-18 | 2018-03-21 | Mactek Corporation | Frequency shift keying modulation and demodulation |
JP5121876B2 (ja) * | 2010-04-21 | 2013-01-16 | 三菱電機株式会社 | データ転送装置 |
US9619417B2 (en) | 2011-06-17 | 2017-04-11 | Alcatel Lucent | Method and apparatus for remote delivery of managed USB services via a mobile computing device |
JP5866101B2 (ja) * | 2012-04-20 | 2016-02-17 | 三菱電機株式会社 | 中継装置及び中継方法及びプログラム |
JP2013243509A (ja) * | 2012-05-21 | 2013-12-05 | Yokogawa Electric Corp | 通信装置 |
US9482592B2 (en) * | 2014-09-24 | 2016-11-01 | General Monitors, Inc. | Directional ultrasonic gas leak detector |
-
2014
- 2014-09-25 EP EP14786392.2A patent/EP3198461B1/en active Active
- 2014-09-25 KR KR1020187024813A patent/KR20180099938A/ko not_active Application Discontinuation
- 2014-09-25 CN CN201480082213.1A patent/CN106716392B/zh active Active
- 2014-09-25 CA CA2962252A patent/CA2962252C/en active Active
- 2014-09-25 US US15/509,132 patent/US10649947B2/en active Active
- 2014-09-25 RU RU2017114016A patent/RU2677376C2/ru active
- 2014-09-25 SG SG11201701808PA patent/SG11201701808PA/en unknown
- 2014-09-25 WO PCT/US2014/057487 patent/WO2016048329A1/en active Application Filing
- 2014-09-25 JP JP2017516337A patent/JP6465965B2/ja active Active
- 2014-09-25 AU AU2014407115A patent/AU2014407115B2/en active Active
- 2014-09-25 BR BR112017005333-0A patent/BR112017005333B1/pt active IP Right Grant
- 2014-09-25 MX MX2017003206A patent/MX363039B/es unknown
- 2014-09-25 KR KR1020177011244A patent/KR102078090B1/ko active IP Right Grant
-
2015
- 2015-09-24 AR ARP150103068A patent/AR102009A1/es active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001251324A (ja) * | 2000-03-08 | 2001-09-14 | Fuji Electric Co Ltd | フィールドバスの端末器、この端末器の制御方法およびこの端末器を有するフィールドバスシステム |
CN1862517A (zh) * | 2005-04-28 | 2006-11-15 | 惠普开发有限公司 | 虚拟化通用异步接收器-发送器接口 |
Also Published As
Publication number | Publication date |
---|---|
EP3198461B1 (en) | 2021-07-14 |
JP2017530632A (ja) | 2017-10-12 |
CN106716392A (zh) | 2017-05-24 |
MX363039B (es) | 2019-03-06 |
RU2017114016A (ru) | 2018-10-25 |
KR20170065586A (ko) | 2017-06-13 |
US20170249278A1 (en) | 2017-08-31 |
AU2014407115B2 (en) | 2018-03-15 |
RU2017114016A3 (zh) | 2018-10-25 |
US10649947B2 (en) | 2020-05-12 |
EP3198461A1 (en) | 2017-08-02 |
CA2962252C (en) | 2021-10-05 |
BR112017005333B1 (pt) | 2021-12-14 |
SG11201701808PA (en) | 2017-04-27 |
WO2016048329A1 (en) | 2016-03-31 |
RU2677376C2 (ru) | 2019-01-16 |
JP6465965B2 (ja) | 2019-02-06 |
AR102009A1 (es) | 2017-01-25 |
BR112017005333A2 (pt) | 2017-12-12 |
MX2017003206A (es) | 2017-06-19 |
KR102078090B1 (ko) | 2020-02-17 |
AU2014407115A1 (en) | 2017-03-30 |
CA2962252A1 (en) | 2016-03-31 |
KR20180099938A (ko) | 2018-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
RU2597501C2 (ru) | Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита | |
CN106716392B (zh) | 用于串行通信的栈定时调整 | |
CA2880979C (en) | Usb 3.0 link layer timer adjustment to extend distance | |
JP6121563B2 (ja) | プロトコル例外状態を用いたデータ伝送プロトコル | |
CN106603506B (zh) | 基于多现场总线的数据通信方法、设备及*** | |
WO2015158156A1 (zh) | 延长通用串行总线传输距离的装置 | |
JP2006285378A (ja) | データ転送装置 | |
US10162777B2 (en) | Transmission unit with checking function | |
US9722702B2 (en) | SATA host bus adapter using optical signal and method for connecting SATA storage using the same | |
CN101212480A (zh) | 在usb主机和usb装置之间通信的方法和设备 | |
US5721891A (en) | Detection of N length bit serial communication stream | |
EP3319249B1 (en) | Transmission checking method, node, system and computer storage medium | |
CN107579936A (zh) | 报文传输方法、控制器及存储*** | |
US20050251676A1 (en) | Method for offloading the digest portion of protocols | |
CN117493248B (zh) | Usb数据传输方法、装置、***、电子设备及存储介质 | |
CN109120628A (zh) | 打印***千兆网通信方法、终端及*** | |
KR101502147B1 (ko) | 네트워크 상에서 usb 호스트와 usb 디바이스 간의 통신 방법, 장치 및 기록매체 | |
CN213461779U (zh) | 基于以太网线的时钟同步装置及*** | |
CN115378756B (zh) | 监控控制器域网络(can)xl节点 | |
EP3772845B1 (en) | Protocol converter, data transmission system, data transmission method, and non-transitory computer-readable medium | |
JP2009130614A (ja) | 通信制御装置、通信制御方法および通信制御プログラム | |
CN108141357B (zh) | 用于在网络中生成秘密的电路装置 | |
Postolache | CANopen implementation using BCP protocols over TIA-485 in networked embedded systems | |
JP2008108083A (ja) | Usb機器およびusbシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1238365 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |