KR20170065586A - 직렬 통신들을 위한 스택 타이밍 조정 - Google Patents

직렬 통신들을 위한 스택 타이밍 조정 Download PDF

Info

Publication number
KR20170065586A
KR20170065586A KR1020177011244A KR20177011244A KR20170065586A KR 20170065586 A KR20170065586 A KR 20170065586A KR 1020177011244 A KR1020177011244 A KR 1020177011244A KR 20177011244 A KR20177011244 A KR 20177011244A KR 20170065586 A KR20170065586 A KR 20170065586A
Authority
KR
South Korea
Prior art keywords
serial
usb
timing adjustment
stack
stack timing
Prior art date
Application number
KR1020177011244A
Other languages
English (en)
Other versions
KR102078090B1 (ko
Inventor
폴 제이. 헤이즈
크리스 이. 에어
Original Assignee
마이크로 모우션, 인코포레이티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 마이크로 모우션, 인코포레이티드 filed Critical 마이크로 모우션, 인코포레이티드
Publication of KR20170065586A publication Critical patent/KR20170065586A/ko
Application granted granted Critical
Publication of KR102078090B1 publication Critical patent/KR102078090B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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/4226Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal 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)
  • Bidirectional Digital Transmission (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)

Abstract

직렬 통신들을 위한 스택 타이밍 조정에 대한 방법이 제공된다. 이 방법은 USB 통신을 수신하는 단계, USB 통신을 UART 프레임으로 디코딩하는 단계 및 직렬 프로토콜에 따라 UART 프레임의 타이밍을 조정하는 단계를 포함한다.

Description

직렬 통신들을 위한 스택 타이밍 조정{STACK TIMING ADJUSTMENT FOR SERIAL COMMUNICATIONS}
이하에서 설명되는 실시예들은 프로토콜 스택들(protocol stacks)에 관한 것으로서, 보다 구체적으로, 직렬 통신들을 위한 스택 타이밍 조정에 관한 것이다.
마스터 디바이스와 슬레이브 디바이스 간의 직렬 통신들은 때때로 통신의 시작과 끝을 결정하는 타이밍에 의존한다. 예를 들어, Modbus 통신 프로토콜은 마스터가 모든 통신 활동을 개시하는 마스터-슬레이브 어레인지먼트를 사용한다. 이 어레인지먼트에서, 마스터는 슬레이브에게 커맨드를 전송한다. 슬레이브는 응답하기 전에 일정 시간 기간, 통상적으로 3.5 캐릭터(character)들을 대기한다. 마스터가 일정 시간 기간 후에 어떠한 다른 데이터도 전송하지 않는 경우, 슬레이브가 응답을 전송하도록 허용된다. 이 어레인지먼트는 마스터 또는 슬레이브만이 주어진 시간에 통신하는 것을 보장한다. 다른 통신 프로토콜들은 HART(Highway Addressable Remote Transducer) 프로토콜과 같은 유사한 타이밍 제약들을 사용한다. HART 프로토콜은, 네트워크 상의 디바이스가 통신할 수 있는 시기를 결정하는 다양한 타이밍 제약들, 예컨대, STO(slave time-out), 링크 그랜트(RT1) 및 링크 콰이어트(RT2)를 갖는 다중-마스터 프로토콜이다.
직렬 통신들은 통상적으로, 이진 데이터를 순차적으로 송신하는 UART(Universal Asynchronous Receiver/Transmitter)를 통해 송신된다. 예를 들어, 마스터 상의 프로그램은 Modbus 표준을 준수하는 커맨드를 생성하고 UART를 통해 커맨드를 전송할 수 있다. 슬레이브는 슬레이브의 UART로 이진 데이터를 수신할 수 있다. UART는 Modbus 표준에 따라 이진 데이터를 해석할 수 있는 슬레이브의 프로그램 또는 임베디드 시스템에 이진 데이터를 제공할 수 있다. 슬레이브는 그 후 커맨드에 대한 응답을 생성하고 이를 UART를 통해 마스터에 전송한다. 응답은 그 후 Modbus 표준에 따라 마스터에 의해 해석된다. 유사한 방법들이 다른 직렬 통신 프로토콜들과 함께 사용될 수 있다.
인지될 수 있는 바와 같이, 순차적으로 송신된 이진 데이터의 올바른 해석은 직렬 통신 프로토콜들에 따라야만 한다. 통신 프로토콜들은 통신을 완료하는 시간, 수신과 송신 사이의 대기 기간들, 통신에서 필드들의 비트 크기들 등과 같은 타이밍 간격들을 정의할 수 있다. 예를 들어, 마스터의 UART가 이진 데이터에 간극(중간에 1-캐릭터 사일런스(silence))이 있는 요청 패킷을 송신하는 경우, 슬레이브는 이것을 2개의 독립적인 요청 패킷들로 인식하지 않을 것이다. 간극이 3.5 캐릭터 시간을 초과하면, 슬레이브는 이를 2개의 독립적인 요청 패킷들로서 올바르지 않게 인식할 것이다.
USB(Universal Serial Bus)는 점차적으로, 사실상의 하드웨어 표준으로서 구(older) UART-기반 직렬 통신 프로토콜들을 대체하고 있다. 예를 들어, UART-기반 직렬 통신 프로토콜들에서 마스터들로서 기능하는 많은 컴퓨터들은 USB 인터페이스들을 갖는 컴퓨터들로 대체되고 있다. 그러나 UART-기반 직렬 통신 프로토콜들을 사용하는 프로그램들은 많은 애플리케이션들에서 여전히 사용되고 있다. USB 인터페이스들을 통해 통신하기 위해, 직렬 통신들은 가상 UART 층 상에 '스택'되고 USB 표준에 따라 USB 인터페이스 상에서 송신된다.
그러나 타이밍에 의존하는 UART-기반 직렬 통신들이 USB 인터페이스 상에서 송신되는 경우, 통신들이 해석될 때 타이밍 에러들이 발생할 수 있다. 이에 따라, 직렬 통신들을 위한 스택 타이밍 조정이 필요하다.
직렬 통신들을 위한 스택 타이밍 조정을 위한 방법이 제공된다. 일 실시예에 따라, 이 방법은 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 통신으로 인코딩된 2개 또는 그 초과의 직렬 패킷들 사이에 지연을 추가하는 단계를 포함한다.
바람직하게는, 직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정하는 단계는 USB 통신으로 인코딩된 직렬 패킷에 추가된 캐릭터간 지연들(inter-character delays)을 제거하는 단계를 포함한다.
바람직하게는, 직렬 프로토콜은 Modbus 프로토콜을 포함한다.
바람직하게는, 직렬 프로토콜은 HART 프로토콜을 포함한다.
바람직하게는, USB 통신은 직렬 패킷을 갖는 USB CDC 메시지를 포함한다.
일 양상에 따라, 스택 타이밍 조정을 갖는 USB 디바이스(100)는, USB 통신을 수신하고 USB 통신으로부터 인코딩된 직렬 패킷을 추출하도록 구성된 USB 제어기(100a), 인코딩된 직렬 패킷을 UART 프레임들로 디코딩하도록 구성된 마이크로프로세서(100b) 및 직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정하도록 구성된 스택 타이밍 조정(100c)을 포함한다.
바람직하게는, 마이크로프로세서(100b)는 추가로, UART 프레임들을 시퀀스대로 순서화하도록 구성된다.
바람직하게는, 직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정하도록 구성된 스택 타이밍 조정(100c)은 USB 통신으로 인코딩된 직렬 패킷들 중 2개 또는 그 초과 사이에 시간 지연을 추가하도록 구성된 스택 타이밍 조정(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는 또한, USB 케이블(18)에 커플링된 USB 제어기(16a)를 갖는 것으로 변환기 박스(16)를 도시한다. 변환기 박스(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 통신으로 인코딩하는 것은, 시간 지연과 같은 지연을 직렬 패킷에 추가할 수 있다. 지연은 또한 직렬 패킷에서 2개 또는 그 초과의 캐릭터들 사이의 캐릭터간 지연일 수 있다. 이들 및 다른 지연들은 타이밍이 조정되지 않는 경우 통신 이슈들을 야기할 수 있다. 예를 들어, Modbus 슬레이브에 의해 타이밍 조정 없이 Modbus 직렬 요청 패킷에 추가된 시간 지연은, Modbus 직렬 요청 패킷들의 2개 또는 그 초과의 캐릭터들 사이에의 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 메시지로 구성될 수 있다. 직렬 패킷을 USB 통신으로 인코딩하는 세부사항들은 도 5 내지 도 8을 참조하여 보다 보다 상세히 설명된다. 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)은 도 5 내지 도 8을 참조하여 아래에서 논의되는 바와 같이 직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정할 수 있다. 이에 따라, 스택 타이밍 조정(100c)은 예를 들어, 지연들 없이, 스택 타이밍 조정을 갖는 USB 디바이스(100) 상에서 실행되는 소프트웨어에 직렬 프로토콜 스택(100d)을 제공할 수 있다.
직렬 프로토콜 스택(100d)은 스택 타이밍 조정을 갖는 USB 디바이스(100)에 의해 사용되는 임의의 직렬 프로토콜 스택일 수 있다. 예를 들어, 스택 타이밍 조정을 갖는 USB 디바이스(100)는 Modbus 또는 HART 표준들을 따르는 통신들을 수신하고 전송하는 소프트웨어를 가질 수 있다. 스택 타이밍 조정을 갖는 USB 디바이스(100)가 유량계인 실시예에서, 직렬 프로토콜 스택(100d)은 USB 디바이스(200)에 의해 전송된 직렬 요청 패킷일 수 있다. 스택 타이밍 조정이 지연들에 의해 야기되는 에러들 없이 직렬 통신이 일어나도록 허용하기 때문에, USB 디바이스(200)는 직렬 요청 패킷에 올바르게 응답할 수 있다. 직렬 패킷의 인코딩 및 디코딩의 추가 세부사항들은 다음에서 설명된다.
도 5는 일 실시예에 따라 타이밍 조정(500)을 갖는 프로토콜 스택을 도시한다. 도 5의 실시예에서, 직렬 요청 패킷(510)은 예를 들어, 도 3 및 도 4를 참조하여 설명된 USB 디바이스(200)에 의해 제공될 수 있다. 도 5에 도시된 바와 같이, 직렬 요청 패킷(510)은 복수의 UART 프레임들(520)로 인코딩된다. 복수의 UART 프레임들(520)은 UART 프레임들의 제 1 세트(520a) 및 UART 프레임들의 제 2 세트(520b)로 구성되는 것으로 도시된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 UART 프레임들이 사용될 수 있다. 도 5에서 또한 알 수 있는 바와 같이, 복수의 UART 프레임들(520)은 USB 통신(530)으로 인코딩된다. UART 프레임들의 제 1 세트(520a)는 제 1 USB CDC 메시지(530a)로 인코딩되고, UART 프레임들의 제 2 세트(520b)는 제 2 USB CDC 메시지(530b)로 인코딩된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 USB CDC 메시지들(530a, 530b)이 사용될 수 있다. USB 통신(530)은 스택 타이밍 조정을 갖는 USB 디바이스(100)에 전송될 수 있다.
예를 들어, USB 통신(530)을 수신한 후에 스택 타이밍 조정을 갖는 USB 디바이스(100)에 의해 전송될 수 있는 직렬 응답 패킷(550)이 도 5에 또한 도시된다. 직렬 응답 패킷(550)은 도 3을 참조하여 설명된 USB 디바이스(200)로 전송될 수 있다. 도 5의 실시예에서, 직렬 응답 패킷(550)은 복수의 UART 프레임들(560)로 인코딩된다. 복수의 UART 프레임들(560)은 UART 프레임들의 제 1 세트(560a) 및 UART 프레임들의 제 2 세트(560b)로 구성되는 것으로 도시된다. 복수의 UART 프레임들(560)은 USB 통신(570)으로 인코딩된다. 도시된 실시예에서, UART 프레임들의 제 1 세트(560a)는 제 1 USB CDC 메시지(570a)로 인코딩된다. UART 프레임들의 제 2 세트(560b)는 제 2 USB CDC 메시지(570b)로 인코딩된다. USB 통신(570)은 예를 들어, 직렬 요청 패킷(510)에 응답하여 USB 디바이스(200)로 전송될 수 있다.
직렬 요청 패킷(510)은 Modbus 및 HART 표준들과 같은 직렬 통신 표준을 준수하는 캐릭터들의 시퀀스일 수 있다. 그러나 다른 직렬 통신 표준들이 본 개시의 범위 내에 있다. 캐릭터들의 시퀀스는 커맨드, 질의, 데이터 등을 나타낼 수 있다. 예를 들어, 캐릭터들의 시퀀스는 USB 디바이스(200) 상에서 실행되는 애플리케이션에 의해 개시되는 통신일 수 있다. 데이터가 USB 케이블(120)을 통해 USB 디바이스(200)에 제공되도록 요청하기 위해, 스택 타이밍 조정을 갖는 USB 디바이스(100)에 통신이 어드레싱될 수 있다.
직렬 요청 패킷(510)은 인터페이스 표준에 따라 복수의 UART 프레임들(520)로 인코딩된다. 예를 들어, 복수의 UART 프레임들(520)은 RS232 표준과 같은 직렬 인터페이스 표준을 따르는 타이밍 및 데이터 레이트들을 갖는 캐릭터들의 시퀀스로의 직렬 요청 패킷(510)의 변환일 수 있다. 그러나 RS232 커넥터를 통해 복수의 UART 프레임들(520)을 송신하는 대신에, 복수의 UART 프레임들(520)이 USB 통신(530)으로 인코딩된다.
복수의 UART 프레임들(520)의 일부는 USB 통신(530)의 일부에 포함될 수 있다. 예를 들어, USB CDC 표준은 데이터를 캡슐화하기 위해 USB CDC 메시지의 일부를 할당할 수 있다. 데이터를 캡슐화하는데 사용되는 USB 통신(530) 각각의 부분은 때때로 페이로드로서 당업계에 알려진다. 일부 실시예들에서, 페이로드는 제한된 바이트 폭을 가질 수 있다. 예를 들어, 페이로드는 64바이트 폭일 수 있다. 부가적으로, 복수의 UART 프레임들(520) 각각은 페이로드와 동일한 바이트 폭을 갖지 않을 수 있다. 결과적으로, 페이로드에 사용되지 않는 캐릭터가 있을 수 있다. 또한, 복수의 UART 프레임들(520) 각각은 상이한 USB 통신들(530) 사이에서 분할될 수 있다. 이들 및 다른 실시예들에서, USB 통신(530)은 복수의 UART 프레임들(520)을 통신하는데 사용될 수 있다. 이에 따라, 스택 타이밍 조정을 갖는 USB 디바이스(100) 상에서 실행되는 애플리케이션은 예를 들어, USB 포트(110)를 통해 통신하도록 수정되거나 재프로그래밍될 필요가 없다.
직렬 요청 패킷(510)과 복수의 UART 프레임들(520) 사이의 점선으로 표시된 시간 지연이 도 5에 또한 도시된다. 시간 지연은, 직렬 요청 패킷(510)이 복수의 UART 프레임들(520)로 디코딩되는 동안 예를 들어, 마이크로프로세서(100b)에서의 프로세싱 인터럽트들 또는 다른 지연들을 갖는 스택 타이밍 조정을 갖는 USB 디바이스(100)에 기인할 수 있다. 시간 지연은 직렬 요청 패킷(510)과 복수의 UART 프레임들(520) 사이에 있는 것으로 예시된다. 그러나 전술한 바와 같이, 다른 지연들이 발생할 수 있다. 예를 들어, 복수의 UART 프레임들(520) 각각 사이, 복수의 UART 프레임들(520) 각각의 2개 또는 그 초과의 캐릭터들 사이 등에 지연들이 존재할 수 있다.
도 3 내지 도 4를 참조하여 전술한 바와 같이, 스택 타이밍 조정(100c)은 스택 타이밍 조정을 갖는 USB 디바이스(100)와 USB 디바이스(200) 간의 직렬 통신이 에러 없이 발생하는 것을 보장하기 위해 지연들을 제거할 수 있다. 인지될 수 있는 바와 같이, 스택 타이밍 조정(100c)은 직렬 프로토콜을 따를 수 있다. 예시적인 직렬 프로토콜들은 도 6 및 도 7를 참조하여 아래에서 보다 상세히 설명된다.
도 6은 일 실시예에 따라 스택 타이밍 조정을 갖는 Modbus 프로토콜 스택(600)을 도시한다. 도 6의 실시예에서, 직렬 요청 패킷(610)은 예를 들어, 도 3 및 도 4를 참조하여 설명된 USB 디바이스(200)에 의해 제공될 수 있다. 도 6에 도시된 바와 같이, Modbus 요청 패킷(610)은 복수의 UART 프레임들(620)로 인코딩된다. 복수의 UART 프레임들(620)은 UART 프레임들의 제 1 세트(620a) 및 UART 프레임들의 제 2 세트(620b)로 구성되는 것으로 도시된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 UART 프레임들이 사용될 수 있다. 도 6에서 또한 알 수 있는 바와 같이, 복수의 UART 프레임들(620)은 USB 통신(630)으로 인코딩된다. UART 프레임들의 제 1 세트(620a)는 제 1 USB CDC 메시지(630a)로 인코딩되고, UART 프레임들의 제 2 세트(620b)는 제 2 USB CDC 메시지(630b)로 인코딩된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 USB CDC 메시지들이 사용될 수 있다. USB 통신(630)은 스택 타이밍 조정을 갖는 USB 디바이스(100)에 전송될 수 있다.
EOP(end-of-packet)(640) 지연이 또한 도 6에 도시된다. EOP(640)는 슬레이브가 응답하도록 허용하는 Modbus 요청 패킷(610) 이후의 시간 기간 또는 지연이다. Modbus 요청 패킷(610)이 3.5 캐릭터 지연으로 슬레이브에 의해 수신되면, 슬레이브는 Modbus 응답 패킷(650)으로 응답할 수 있다.
Modbus 응답 패킷(650)은 예를 들어, USB 통신(630)을 수신한 후에 스택 타이밍 조정을 갖는 USB 디바이스(100)에 의해 전송될 수 있다. Modbus 응답 패킷(650)은 도 3을 참조하여 설명된 USB 디바이스(200)로 전송될 수 있다. 도 6의 실시예에서, Modbus 응답 패킷(650)은 복수의 UART 프레임들(660)로 인코딩된다. 복수의 UART 프레임들(660)은 UART 프레임들의 제 1 세트(660a) 및 UART 프레임들의 제 2 세트(660b)로 구성되는 것으로 도시된다. 복수의 UART 프레임들(660)은 USB 통신(670)으로 인코딩된다. 도시된 실시예에서, UART 프레임들의 제 1 세트(660a)는 제 1 USB CDC 메시지(670a)로 인코딩된다. UART 프레임들의 제 2 세트(660b)는 제 2 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)은 2개 또는 그 초과의 USB 통신(630) 사이에서 분할될 수 있다. 이 분할은 추가 캐릭터들이 Modbus 요청 패킷(610)에 삽입되게 할 수 있다. HART 프로토콜에서 직렬 패킷에 유사한 지연들이 추가될 수 있으며, 이는 아래에서 보다 상세히 설명될 것이다.
도 7은 일 실시예에 따라 스택 타이밍 조정을 갖는 HART 프로토콜 스택(700)을 도시한다. 도 7의 실시예에서, HART 요청 패킷(710)은 예를 들어, 도 3 및 도 4를 참조하여 설명된 USB 디바이스(200)에 의해 제공될 수 있다. 도 7에 도시된 바와 같이, HART 요청 패킷(710)은 복수의 UART 프레임들(720)로 인코딩된다. 복수의 UART 프레임들(720)은 UART 프레임들의 제 1 세트(720a) 및 UART 프레임들의 제 2 세트(720b)로 구성되는 것으로 도시된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 UART 프레임들이 사용될 수 있다. 도 7에서 또한 알 수 있는 바와 같이, 복수의 UART 프레임들(720)은 USB 통신(730)으로 인코딩된다. UART 프레임들의 제 1 세트(720a)는 제 1 USB CDC 메시지(730a)로 인코딩되고, UART 프레임들의 제 2 세트(720b)는 제 2 USB CDC 메시지(730b)로 인코딩된다. 대안적인 실시예들에서, 더 많거나 더 적은 수의 USB CDC 메시지들(730a, 730b)이 사용될 수 있다. USB 통신(730)은 스택 타이밍 조정을 갖는 USB 디바이스(100)에 전송될 수 있다.
STO(slave time-out)(740) 기간이 또한 도 7에 도시된다. STO(740)는 HART 표준의 슬레이브가 예를 들어, HART 응답 패킷(750)으로 응답하기 시작해야 하는, HART 요청 패킷(710) 이후의 최대 시간 기간이다.
HART 응답 패킷(750)은 예를 들어, USB 통신(730)을 수신한 후에 스택 타이밍 조정을 갖는 USB 디바이스(100)에 의해 전송될 수 있다. HART 응답 패킷(750)은 도 3을 참조하여 설명된 USB 디바이스(200)로 전송될 수 있다. 도 7의 실시예에서, HART 응답 패킷(750)은 복수의 UART 프레임들(760)로 인코딩된다. 복수의 UART 프레임들(760)은 UART 프레임들의 제 1 세트(760a) 및 UART 프레임들의 제 2 세트(760b)로 구성되는 것으로 도시된다. 복수의 UART 프레임들(760)은 USB 통신(770)으로 인코딩된다. 도시된 실시예에서, UART 프레임들의 제 1 세트(760a)는 제 1 USB CDC 메시지(770a)로 인코딩된다. UART 프레임들의 제 2 세트(760b)는 제 2 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), 디리미터(delimiter)(714) 및 데이터(716) 부분으로 구성된다. HART 응답 패킷(750)은 유사하게 프리엠블(752), 디리미터(754) 및 데이터(756) 부분으로 분할된다. 프리엠블(712, 752)은 동기화 및 캐리어 검출 필드이다. 디리미터(714, 754)는 데이터(716, 756) 부분으로부터 프리엠블(712, 752)을 분리한다. 도 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)을 포함할 수 있다. 위에서 설명된 바와 같이, 인코딩은 타이밍 지연과 같은 지연들을 직렬 패킷에 추가할 수 있다.
UART 프레임들로 USB 통신을 디코딩하는 단계(820)는 다양한 동작들을 포함할 수 있다. 예를 들어, USB 통신을 UART 프레임들로 디코딩하는 단계(820)는 USB 통신으로 인코딩된 UART 프레임들과 동일한 시퀀스로 UART 프레임들을 순서화하는 단계를 포함할 수 있다. 부가적으로 또는 대안적으로, USB 통신을 UART 프레임들로 디코딩하는 단계는 인터페이스 표준의 데이터 레이트에 따르는 레이트로 인코딩된 UART 프레임들을 버퍼링하는 단계를 포함할 수 있다.
직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정하는 단계(830)는 직렬 패킷들 간의 시간 지연들, 캐릭터간 지연들 등을 조정하는 동작들을 포함할 수 있다. 예를 들어, 직렬 프로토콜에 따라 UART 프레임들의 타이밍을 조정하는 단계(830)는 UART 프레임들에서 캐릭터간 지연을 제거하는 단계를 포함할 수 있다. 부가적으로 또는 대안적으로, 직렬 패킷들 간의 시간 지연이 또한 조정될 수 있다. UART 프레임들의 타이밍을 조정하는 단계는 전술한 EOP(640) 또는 STO(740)와 같은 패킷의 끝(end-of-packet) 지연을 증명(proving)하는 단계를 포함할 수 있다. 패킷의 끝 지연이 직렬 통신 표준을 충족시키지 않으면, 직렬 요청 패킷(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 디바이스(100)와 USB 디바이스(200) 사이의 통신들에 대한 데이터 레이트들이 개선될 수 있다. 예를 들어, USB 통신들(530-730)은 RS232 표준과 같은 다수의 직렬 인터페이스 표준들보다 훨씬 더 높은 레이트들로 송신될 수 있다.
스택 타이밍 조정을 갖는 USB 디바이스(100)에 스택 타이밍 조정에 대한 방법(800)을 포함시키는 것은 또한 고객이 소프트웨어를 수정할 필요성을 제거하고 변환기 박스들의 호환성을 보장하는 등을 할 수 있다. 예를 들어, USB 디바이스(200)에서 실행되는 소프트웨어는 예를 들어, 사유 USB 통신 프로토콜로 업데이트될 필요가 없다. 소프트웨어는 새로운 소프트웨어를 개발하거나 수정하지 않고도 직렬 요청 패킷들(510-710)과 같은 직렬 패킷들을 계속 전송할 수 있다.
위의 실시예들의 상세한 설명들은 본 설명의 범위 내에 있는 것으로 본 발명자들에 의해 고려되는 모든 실시예들의 총망라하는 설명은 아니다. 실제로, 당업자는 위에서 설명된 실시예들의 특정 엘리먼트들이 추가 실시예들을 생성하기 위해 다양하게 결합되거나 제거될 수 있으며, 이러한 추가 실시예들은 본 명세서의 범위 및 교시들 내에 있다는 것을 인지할 것이다. 위에서 설명된 실시예들이 전체적으로 또는 부분적으로 조합되어 본 명세서의 범위 및 교시들 내의 추가 실시예들을 생성할 수 있다는 것이 당업자들에게 또한 자명할 것이다.
따라서, 특정 실시예들이 예시의 목적을 위해 본원에서 설명되지만, 당업자들이 인지할 수 있는 바와 같이, 다양한 등가의 수정들이 본 설명의 범위 내에서 가능하다. 본원에서 제공된 교시들은 첨부 도면들에서 도시되고 위에서 설명된 실시예들에 뿐만 아니라, 직렬 프로토콜들에 대한 다른 스택 타이밍 조정에도 적용될 수 있다. 따라서, 위에서 설명된 실시예들의 범위는 다음의 청구항들로부터 결정되어야 한다.

Claims (17)

  1. 직렬 통신들을 위한 스택 타이밍 조정을 위한 방법으로서,
    USB 통신을 수신하는 단계;
    상기 USB 통신을 UART 프레임들로 디코딩하는 단계; 및
    직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하는 단계를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  2. 제 1 항에 있어서,
    상기 USB 통신을 상기 UART 프레임들로 디코딩하는 단계는 상기 UART 프레임들을 순서화(ordering)하는 단계를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하는 단계는 상기 USB 통신으로 인코딩된 2개 또는 그 초과의 직렬 패킷들 사이에 지연을 추가하는 단계를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하는 단계는 상기 USB 통신으로 인코딩된 직렬 패킷에 추가된 캐릭터간 지연들(inter-character delays)을 제거하는 단계를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜은 Modbus 프로토콜을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜은 HART 프로토콜을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 USB 통신은 직렬 패킷을 갖는 USB CDC 메시지를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 위한 방법.
  8. 직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100)로서,
    USB 제어기(100a) - 상기 USB 제어기(100a)는 USB 통신을 수신하도록; 그리고 상기 USB 통신으로부터 인코딩된 직렬 패킷을 추출하도록 구성됨 - ;
    상기 인코딩된 직렬 패킷을 UART 프레임들로 디코딩하도록 구성된 마이크로프로세서(100b); 및
    직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하도록 구성된 스택 타이밍 조정(100c)을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  9. 제 8 항에 있어서,
    상기 마이크로프로세서(100b)는 추가로, 상기 UART 프레임들을 시퀀스대로 순서화하도록 구성되는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  10. 제 8 항 또는 제 9 항에 있어서,
    상기 직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하도록 구성된 스택 타이밍 조정(100c)은, 상기 USB 통신으로 인코딩된 직렬 패킷들 중 2개 또는 그 초과의 패킷들 사이에 시간 지연을 추가하도록 구성된 스택 타이밍 조정(100c)을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  11. 제 8 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜에 따라 상기 UART 프레임들의 타이밍을 조정하도록 구성된 스택 타이밍 조정(100c)은, 상기 USB 통신으로 인코딩된 직렬 패킷에 추가된 캐릭터간 지연들을 제거하도록 구성된 스택 타이밍 조정(100c)을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  12. 제 8 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜은 Modbus 프로토콜을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  13. 제 8 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 직렬 프로토콜은 HART 프로토콜을 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 USB 통신은 직렬 패킷을 갖는 USB CDC 메시지를 포함하는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 USB 디바이스(100).
  15. 직렬 통신들을 위한 스택 타이밍 조정을 갖는 통신 시스템(50)으로서,
    직렬 패킷을 USB 통신으로 인코딩하도록 적응된 USB 디바이스(200); 및
    USB 디바이스(200)와 통신하는, 스택 타이밍 조정을 갖는 USB 디바이스(100)를 포함하고, 상기 USB 디바이스(100)는,
    상기 USB 통신으로부터 직렬 패킷을 추출 및 디코딩하도록; 그리고
    상기 직렬 패킷의 타이밍을 조정하도록 구성되는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 통신 시스템(50).
  16. 제 15 항에 있어서,
    상기 스택 타이밍 조정을 갖는 USB 디바이스(100)는 추가로, 응답 USB 통신으로 인코딩된 직렬 응답 패킷으로 상기 직렬 패킷에 응답하도록 구성되는,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 통신 시스템(50).
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 USB 디바이스(200)는 직렬 요청 패킷을 상기 USB 통신으로 인코딩하도록 추가로 구성된 마스터(master)인,
    직렬 통신들을 위한 스택 타이밍 조정을 갖는 통신 시스템(50).
KR1020177011244A 2014-09-25 2014-09-25 직렬 통신들을 위한 스택 타이밍 조정 KR102078090B1 (ko)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187024813A Division KR20180099938A (ko) 2014-09-25 2014-09-25 직렬 통신들을 위한 스택 타이밍 조정

Publications (2)

Publication Number Publication Date
KR20170065586A true KR20170065586A (ko) 2017-06-13
KR102078090B1 KR102078090B1 (ko) 2020-02-17

Family

ID=51743549

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177011244A KR102078090B1 (ko) 2014-09-25 2014-09-25 직렬 통신들을 위한 스택 타이밍 조정
KR1020187024813A KR20180099938A (ko) 2014-09-25 2014-09-25 직렬 통신들을 위한 스택 타이밍 조정

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187024813A KR20180099938A (ko) 2014-09-25 2014-09-25 직렬 통신들을 위한 스택 타이밍 조정

Country Status (13)

Country Link
US (1) US10649947B2 (ko)
EP (1) EP3198461B1 (ko)
JP (1) JP6465965B2 (ko)
KR (2) KR102078090B1 (ko)
CN (1) CN106716392B (ko)
AR (1) AR102009A1 (ko)
AU (1) AU2014407115B2 (ko)
BR (1) BR112017005333B1 (ko)
CA (1) CA2962252C (ko)
MX (1) MX363039B (ko)
RU (1) RU2677376C2 (ko)
SG (1) SG11201701808PA (ko)
WO (1) WO2016048329A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017049548A1 (zh) * 2015-09-24 2017-03-30 广东欧珀移动通信有限公司 移动终端、电源适配器及其升级方法
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151653A (en) * 1998-02-26 2000-11-21 Winbond Electronics Corp. USB/UART converter and its control method
KR20050070659A (ko) * 2003-12-30 2005-07-07 엘지전자 주식회사 엠피시8260 엠시시를 이용한 다중 유에이알티 통신 장치및 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4700358A (en) 1985-11-18 1987-10-13 Hayes Microcomputer Products, Inc. Synchronous/asynchronous modem
US6260084B1 (en) * 1998-05-18 2001-07-10 3Com Corporation Modem apparatus and method for serial command and data multiplexing
JP2001251324A (ja) * 2000-03-08 2001-09-14 Fuji Electric Co Ltd フィールドバスの端末器、この端末器の制御方法およびこの端末器を有するフィールドバスシステム
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 ストリームデータ受信装置およびストリームデータ受信方法
KR200360109Y1 (ko) 2004-05-18 2004-08-26 강길종 유에스비 대 유아트 통신용 데이터 통신 케이블
US20060245533A1 (en) * 2005-04-28 2006-11-02 Arad Rostampour Virtualizing UART interfaces
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 横河電機株式会社 通信制御装置
ES2428394T3 (es) * 2009-10-15 2013-11-07 Seiko Epson Corporation Dispositivo electrónico, método de control del mismo y medio de grabación
US9860093B2 (en) * 2010-03-18 2018-01-02 Pepper+Fuchs Gmbh 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151653A (en) * 1998-02-26 2000-11-21 Winbond Electronics Corp. USB/UART converter and its control method
KR20050070659A (ko) * 2003-12-30 2005-07-07 엘지전자 주식회사 엠피시8260 엠시시를 이용한 다중 유에이알티 통신 장치및 방법

Also Published As

Publication number Publication date
RU2017114016A (ru) 2018-10-25
MX2017003206A (es) 2017-06-19
WO2016048329A1 (en) 2016-03-31
MX363039B (es) 2019-03-06
AR102009A1 (es) 2017-01-25
CA2962252C (en) 2021-10-05
US10649947B2 (en) 2020-05-12
US20170249278A1 (en) 2017-08-31
BR112017005333A2 (pt) 2017-12-12
JP6465965B2 (ja) 2019-02-06
KR102078090B1 (ko) 2020-02-17
RU2017114016A3 (ko) 2018-10-25
CA2962252A1 (en) 2016-03-31
JP2017530632A (ja) 2017-10-12
CN106716392B (zh) 2021-06-08
RU2677376C2 (ru) 2019-01-16
EP3198461A1 (en) 2017-08-02
AU2014407115B2 (en) 2018-03-15
KR20180099938A (ko) 2018-09-05
EP3198461B1 (en) 2021-07-14
AU2014407115A1 (en) 2017-03-30
CN106716392A (zh) 2017-05-24
BR112017005333B1 (pt) 2021-12-14
SG11201701808PA (en) 2017-04-27

Similar Documents

Publication Publication Date Title
US9740655B2 (en) Data transmission using a protocol exception state
RU2597501C2 (ru) Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита
RU2597502C2 (ru) Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
KR102078090B1 (ko) 직렬 통신들을 위한 스택 타이밍 조정
EP2712123A1 (en) Standard CAN implementation tolerating CAN FD frames
EP2521319A1 (en) Controller area network with flexible data-rate
WO2016054245A1 (en) Confirming data accuracy in a distributed control system
US8737426B1 (en) High speed embedded protocol for distributed control system
EP2928108B1 (en) System, method and apparatus for multi-lane auto-negotiation over reduced lane media
WO2015158156A1 (zh) 延长通用串行总线传输距离的装置
WO2015148895A1 (en) Low latency serial data encoding scheme for enhanced burst error immunity
US10311005B2 (en) Message translator
JP2016500503A (ja) プロトコル例外状態を用いたデータ伝送プロトコル
US9178692B1 (en) Serial link training method and apparatus with deterministic latency
KR20210131963A (ko) 단방향 통신을 이용한 이종 망간 통신 시스템 및 방법
US20080021573A1 (en) Communication system for flexible use in different application scenarios in automation technology
US20170192920A1 (en) Transmission unit with checking function
EP3319249B1 (en) Transmission checking method, node, system and computer storage medium
CN105262655B (zh) 一种可兼容can2.0总线的具有更高速率的通信方法
US20050251676A1 (en) Method for offloading the digest portion of protocols
CN109120628A (zh) 打印系统千兆网通信方法、终端及系统
CN110865955B (zh) 多路全双工串口的高可靠合并转发系统
CN108141357B (zh) 用于在网络中生成秘密的电路装置
JP2004514321A (ja) データ伝送
EP3317996A1 (en) Identification codewords for a rate-adapted version of a data stream

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2018101003602; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20180828

Effective date: 20191108

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant