KR100949045B1 - 유에스비(usb) 직렬 통신을 이용한 can 접속 장치 - Google Patents

유에스비(usb) 직렬 통신을 이용한 can 접속 장치 Download PDF

Info

Publication number
KR100949045B1
KR100949045B1 KR1020080109155A KR20080109155A KR100949045B1 KR 100949045 B1 KR100949045 B1 KR 100949045B1 KR 1020080109155 A KR1020080109155 A KR 1020080109155A KR 20080109155 A KR20080109155 A KR 20080109155A KR 100949045 B1 KR100949045 B1 KR 100949045B1
Authority
KR
South Korea
Prior art keywords
data
usb
memory
control
buffer
Prior art date
Application number
KR1020080109155A
Other languages
English (en)
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 대성전기공업 주식회사
Priority to KR1020080109155A priority Critical patent/KR100949045B1/ko
Application granted granted Critical
Publication of KR100949045B1 publication Critical patent/KR100949045B1/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 USB(Universal Serial Bus)직렬 통신을 이용한 CAN 접속 장치에 관한 것으로, 보다 상세하게는 CAN에 접속된 CAN 디바이스를 USB 직렬 버스를 통하여 컴퓨터에 직접 접속하게 함으로서, CAN 디바이스의 컴퓨터 접속을 단순하고 사용이 편리하게 하는 USB를 통한 CAN 디바이스 접속 장치에 관한 것으로,
본 발명에 의한 USB 직렬 통신을 이용한 CAN 접속장치는 외부의 CAN 디바이스에 접속되어 물리계층에서 CAN 데이터를 송수신하는 CAN 트랜시버와; 상기 CAN 트랜시버로 부터 수신한 데이터를 일시 저장하거나 상기 CAN 트랜시버로 송신할 데이터를 일시 저장하는 CAN 버퍼부와; CAN 통신을 전반적으로 제어하는 CAN 제어부와; 상기 CAN 트랜시버 및 상기 CAN 제어부의 상태를 나타내는 CAN 상태 메모리와; 메모리의 내용을 바꿈으로서 상기 CAN 트랜시버 및 상기 CAN 제어부의 설정을 바꾸거나 제어하게 하는 CAN 제어 메모리와; USB 직렬 통신을 통하여 외부의 USB 호스트와 물리계층에서 데이터를 송수신하는 USB 트랜시버와; 상기 USB 트랜시버로부터 수신한 데이터를 일시 저장하거나 상기 USB 트랜시버를 통하여 외부로 송신할 데이터를 일시 저장하는 USB 버퍼부와; USB 통신을 전반적으로 제어하는 USB 제어부와 수신된 USB 데이터에서 외부의 CAN 디바이스로 전달할 데이터를 분리하거나 외부의 CAN 디바이스로 부터 수신된 CAN 데이터에서 외부의 USB 호스트로 전달할 데이터를 분리하는 데이터 분리부와; 외부의 CAN 디바이스로 부터 수신되고 외부의 USB 호스트로 전송하기 위해 상기 데이터 분리부에서 분리된 CAN 데이터를 USB 데이터 포멧 으로 변환하고, 외부의 USB 호스트로 부터 수신되고 외부의 CAN 디바이스로 전송하기 위하여 상기 데이터 분리부에서 분리된 USB 데이터를 CAN 데이터 포멧으로 변환하는 데이터 변환부와; 전반적인 제어를 담당하는 엠씨유(MCU)와; 상기 엠씨유(MCU)의 제어 프로그램이 저장되어 있는 메모리와; CAN 통신 및 USB 통신을 위한 타이밍 및 클럭을 생성하는 타이머;로 이루어진다.
본 발명에 의한 USB 직렬 통신을 이용한 CAN 접속 장치는 컴퓨터의 외부에서 USB 포트에 연결되어 CAN 디바이스를 컴퓨터에서 직접 감시하거나 모니터링 분석이 가능하므로 사용이 간편하고 편리하다.
USB, CAN, USB-CAN인터페이스

Description

유에스비(USB) 직렬 통신을 이용한 CAN 접속 장치 {A CAN Network Adaptation Apparatus Using USB Serial Bus}
본 발명은 USB(Universal Serial Bus)직렬 통신을 이용한 CAN 접속 장치에 관한 것으로, 보다 상세하게는 CAN에 접속된 CAN 디바이스를 USB 직렬 버스를 통하여 컴퓨터에 직접 접속하게 함으로서, CAN 디바이스의 컴퓨터 접속을 단순하고 사용이 편리하게 하는 USB를 통한 CAN 디바이스 접속 장치에 관한 것이다.
일반적으로 차량에 이용되는 통신망 표준은 크게 컨트롤러 영역망(Controller Area Network, CAN), 로컬 상호 연결망(Local Interconnect Network, LIN), 플렉스레이 망으로 구분되는 3가지가 있다. 이중에서, CAN은 1980년대 초 자동차 산업에 적용하기 위해 고안된 시리얼 네트워크 통신 방식으로 독일의 Robert Bosch사에 의해 개발되었으며, 차량 내 통신의 증가와 배선의 증가로 인한 배선 관련 문제점의 증가, 설계상의 한계, 차체 중량 증가와 이에 따른 개발비 증가 등 문제점 발생함에 따라 이를 보안 하기 위해 다중 통신 방식인 CAN (Controller Area Network) 표준이 제정되어 사용되게 되었다. 캔의 전송속도는 최대 1Mbps로 단일 채널을 이용하며, 이벤트 트리거 형식으로 1개의 노드가 통신경로를 점거하여 지연이 발생할 수도 있다는 단점을 가지고 있다.
또 다른 통신방식인 LIN은 저렴한 가격에 비하여 높은 성능을 가지는 단선으로 이루어진 차량용 LAN 통신표준으로, CAN통신 말단부 시스템의 분산화를 위하여 사용되며, Single wire로 구성되어 있다. 최대 속도는 20kbps를 지원하며 Sensor 및 actuator 와 같은 간단한 기능의 ECU를 컨트롤 하는 데 사용된다. CAN에 비해 적은 개발 비용으로 네트워크 구성이 가능하지만 사용범위가 제한적이다.
마지막으로, 플렉스레이는 X-by-wire System과 같이 안전성이 중시되는 Safety-Critical System용 통신 표준이다. 여기서, X-by-wire System이란 기계식 연결이 아닌 전기적 신호를 이용한 시스템을 말하며, 플렉스레이의 전송속도는 10Mbps의 빠른 통신 속도를 지원하고, 사전에 송신 시간을 정의하는 방식이 사용되기 때문에 더욱 유연하고 안전하다. 채널을 중복함으로 통신선 장애 및 접촉 불량 등의 경우에도 통신이 유지되며, Bus Guardian특성은 통신 Controller의 상태를 모니터링 하는 'Watchdog'와 같은 기능을 제공한다. 주로 브레이크 페달과 브레이크간의 연결, 핸들과 바퀴간의 연결을 제어하는데 사용한다.
일반적으로 USB는 (범용 직렬 버스, Universal Serial Bus, USB)는 컴퓨터와 주변 기기를 연결하는데 많이 사용되는 입출력 표준 가운데 하나이다. Plug & Play를 지원하여 연결하면 자동으로 컴퓨터가 디바이스를 인식할 수 있고, 컴퓨터 전원이 켜져 있는 상태에서 디바이스를 연결하거나 제거할 수 있는 Hot Plugging 기능 을 지원한다. 대표적인 버전으로는 USB 1.0, USB 1.1, USB 2.0 등이 있다. 프린터, 스캐너, 마우스 등 대부분의 주변장치가 이 방식을 채택하고 있으며, IEEE 1394와 시장을 양분하고 있다. 이론적인 최대 전송 속도는 Low speed에서 10~100kps, Full speed에서 500kbps ~ 10Mbps, High speed에서 25~400Mbps의 속도를 가진다. USB는 전송방식에 따른 패킷 전송량을 달리 하며 하나의 버스라인에서 각기 다른 패킷 전송량과 형태를 가진 데이터를 함께 전송할 수 있다. USB 1.1기준으로 살펴보면, 전송방식은 Isochronous방식과 Bulk방식과, interrupt방식으로 구분된다. Isochronous방식의 경우, 전송주기는 1ms이고, 전송속도는 12Mbps를 가지며, 패킷 전송량은 1~1023byte이며, 실시간 전송에 적합하고, 잘못 전송된 경우에도 재전송에 대한 요구는 없다. 반면, Bulk방식의 경우, 전송주기는 부정기적이며, 전송속도는 12Mbps를 가지며, 패킷 전송량은 8/16/32/64byte이다. 부정기적 대용량 데이터 전송에 유리하고, 잘못 전송된 경우에 재전송에 대한 요구가 있다. Interrupt방식의 경우에는, 전송주기는 1~255ms이며 전송속도는 1.5M/12Mbps를 가지며, 패킷 전송량은 Full speed에서 1~64byte, Low speed에서 1~8byte를 가진다. 주기적인 소용량 전송에 유리하고, 잘못 전송된 경우에 재전송에 대한 요구가 있다.
한편, 지금까지는 차량에 탑재된 CAN 디바이스를 컴퓨터 등 컴퓨터로 모니터링 하거나 시험하고자 할 때, 컴퓨터의 컴퓨터 내부 버스인 PCI 버스에 CAN 접속 카드를 직접 삽입하여 사용하거나, LAN 통신망에 접속하여 사용하는 방법이 제시된바 있다. 그러나, USB 직렬 버스는 컴퓨터에 외부 기기를 접속하는 매우 보편화된 수단으로, CAN 디바이스를 컴퓨터에 직접 접속하여 모니터링 하거나 시험하고자 할 때, USB 직렬 버스 통하여 CAN 디바이스를 컴퓨터에 직접 접속할 수 있는 방법이 제공되지 않아, USB 직렬 통신을 이용한 CAN 접속 장치의 제공이 절실히 요구되고 있는 실정이다.
본 발명은 상기의 문제점을 해결하기 위하여 안출된 것으로, USB 접속을 통하여 컴퓨터에 CAN 디바이스를 직접 연결하여 컴퓨터에서 CAN 디바이스를 직접 모니터링 하거나 제어가능하도록 하는 USB 직렬버스를 통한 CAN 디바이스 접속장치를 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명에 의한 USB 직렬 통신을 이용한 CAN 접속 장치는 외부의 CAN 디바이스에 접속되어 물리계층에서 CAN 데이터를 송수신하는 CAN 트랜시버와; 상기 CAN 트랜시버로 부터 수신한 데이터를 일시 저장하거나 상기 CAN 트랜시버로 송신할 데이터를 일시 저장하는 CAN 버퍼부와 CAN 통신을 전반적으로 제어하는 CAN 제어부와; CAN 트랜시버 및 CAN 제어부의 상태를 나타내는 CAN 상태 메모리와; 메모리의 내용을 바꿈으로서 CAN 트랜시버 및 CAN 제어부의 설정을 바꾸거나 제어하게 하는 CAN 제어 메모리와; USB 직렬 통신을 통하여 외부의 USB 호스트와 물리계층에서 데이터를 송수신하는 USB 트랜시버와; USB 트랜시버로 부터 수신한 데이터를 일시 저장하거나, USB 트랜시버를 통하여 외부로 송신할 데이터를 일시 저장하는 USB 버퍼부와; USB 통신을 전반적으로 제어하는 USB 제어부와; 수신된 USB 데이터에서 외부의 CAN 디바이스로 전달할 데이터를 분리하거나 외부의 CAN 디바이스로 부터 수신된 CAN 데이터에서 외부의 USB 호스트로 전달할 데이터를 분 리하는 데이터 분리부와; 외부의 CAN 디바이스로 부터 수신되고 외부의 USB 호스트로 전송하기 위해 상기 데이터 분리부에서 분리되어 있는 CAN 데이터를 USB 데이터 포멧으로 변환하고 외부의 USB 호스트로부터 수신되고 USB 데이터로부터 외부의 CAN 디바이스로 전송하기 위하여 상기 데이터 분리부에서 분리되어 있는 USB 데이터를 CAN 데이터 포멧으로 변환하는 데이터 변환부와; 전반적인 제어를 담당하는 엠씨유(MCU)와; 상기 MCU의 제어 프로그램이 저장되어 있는 메모리와; CAN 통신 및 USB 통신을 위한 타이밍 및 클럭을 생성하는 타이머;를 포함하여 이루어진다.
상술한 바와 같이 본 발명에 의한 'USB 직렬 통신을 이용한 CAN 접속 장치'는 컴퓨터의 외부에서 USB 포트에 접속된 본 발명에 의한 USB-CAN 접속장치를 통하여 컴퓨터에서 직접 CAN 디바이스를 감시하거나 모니터링 분석이 가능하므로 사용이 간편하고 편리하다.
이하 본 발명에 따른 'USB 직렬 통신을 이용한 CAN 접속 장치'에 관한 바람직한 실시 예를 도면을 참조하여 상세하게 설명한다. 다음의 실시 예는 단지 본 발명을 설명하기 위하여 예시된 것에 불과하고, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 1은 전체적인 연결 구성을 나타낸 연결도이며, 도 2는 USB 직렬 통신을 이용한 CAN 접속장치 내부의 구성을 나타낸 구성도이며, 도 3은 컴퓨터와 USB 직렬 통신을 이용한 CAN 접속장치간의 논리적 연결이 제어용 파이프(pipe)와 데이터용 파이프(pipe)로 구성되어 있음을 나타낸 것이며, 도 4는 CAN 메세지의 포멧을 나타낸 것이며, 도 5는 USB 프레임 및 패킷의 메세지 포멧을 나타낸 것이며, 도 6은 CAN 메세지 포멧중의 중재부(Arbitration)와 제어부(Control) 및 데이터부를 USB 메세지 포멧중의 데이터(Data) 부분에 매핑하는 것에 대한 매핑도이며, 도 7은 USB 데이터 패킷 메세지 포멧중에서 데이터(Data) 부분을 CAN 메세지 포멧의 중재부(Arbitration)와 제어부(Control) 및 데이터(Data)부에 매핑하는 것에 대한 매핑도이며, 도 8은 수신된 CAN 데이터를 변환하여 USB를 통하여 컴퓨터측으로 송신하는 과정을 나타낸 흐름도이며, 도 9는 컴퓨터 측으로 부터 수신된 USB 메세지를 CAN 디바이스로 전송하기 위하여 CAN로 데이터로 변환하여 송신하는 과정을 나타낸 흐름도이며, 도 10은 CAN 상태 메모리의 내용을 나타낸 것이며, 도 11은 CAN 제어 메모리의 내용을 나타낸 것이며, 도 12는 USB 버퍼부의 내부 구조를 나타낸 것이며, 도 13은 CAN 버퍼부의 내부 구조를 나타낸 것이다.
도 1을 참조하면, 본 발명에 따른 "유에스비(USB) 직렬통신을 이용한 CAN 디바이스 접속장치(105)"는 CAN 직렬통신 케이블(103)을 통하여 외부의 CAN 디바이스(101)와 접속되고, USB 직렬 통신 케이블(107)을 통하여 컴퓨터(USB 호스트 또는호스트, 109)와 접속된다.
도 2는 본 발명에 의한 USB를 통한 CAN 디바이스 접속장치(105)의 내부 구성을 나타낸 것으로, CAN 트랜시브(Tranceiver)(203)는 외부의 CAN 디바이스(101)에 접속되어 물리계층에서 전송을 담당하며, 상기 CAN 트랜시브(203)에서 수신한 데이터 및 외부의 CAN 디바이스(101)로 송신할 데이터는 CAN 버퍼부(205)에서 일시적으로 저장되며, CAN 통신의 전반적인 제어는 CAN 제어부(216)에서 이루어진다. 컴퓨터(109)와의 접속은 USB 직렬 통신 케이블(107)로 이루어지며, 물리계층에서의 전송은 USB 트랜시브(213)에 의해 이루어지며, 상기 USB 트랜시브(213)를 통하여 수신된 데이터나, 상기 USB 트랜시브(213)를 통하여 송신할 데이터는 USB 버퍼부(211)에 일시적으로 저장된다. 또한, USB 제어부(218)는 본 발명에 의한 'USB 직렬통신을 이용한 CAN 접속장치(105)'가 USB 디바이스 기능(Function)을 수행할 수 있도록 전반적인 USB 통신을 제어한다. CAN 상태 메모리(229)는 상기 CAN 트랜시브(203)의 내부 상태 및 상기 CAN 제어부의 내부 상태를 반영하고 있으며, USB 통신을 통하여 컴퓨터(109)로 보고된다. 또한, CAN 제어 메모리는 메모리의 내용을 변경함으로서 상기 CAN 제어부(218) 및 상기 CAN 트랜시브(203)의 설정을 변경할 수 있다. USB를 통하여 수신된 데이터중 CAN 디바이스(101)로 전달할 데이터는 상기 데이터 분리부(215)에 의하여 분리된 후, 상기 데이터 변환부(217)에서 CAN 메세지 포멧으로 변환되어 상기 CAN 버퍼부(205) 및 상기 CAN 트랜시버(203)을 커쳐 외부의 CAN 디바이스(101)로 전달된다. 반대로 외부의 CAN 디바이스(101)로 부터 수신한 CAN 데이터 중에서 USB 직렬버스(107)를 통하여 컴퓨터(109)로 전달할 데이터는 데이터 분리부(215)에서 분리하여 USB 데이터 페킷 포멧으로 변환한 후 USB 버퍼부(211) 및 USB 트랜시브(213)를 거처 컴퓨터(109)로 전송된다. 상기 데이터 변환부(217)에는 CAN 디바이스(101)로 부터 수신하여 컴퓨터(109)로 전송할 데이터 나, 컴퓨터(109)로 부터 수신하여 CAN 디바이스(101)로 송신할 일반 데이터를 변환하는 일반 데이터 변환부(231)와 상기 CAN 상태 메모리(229) 내용을 컴퓨터(109)의 응용프로그램(225)에 보고하기 위하여 USB 데이터 포멧으로 변환하거나, 컴퓨터(109)의 응용프로그램(225)으로 부터 수신된 USB 데이터 포멧에서 CAN 통신을 제어하기 위하여 상기 CAN 제어 메모리에 기록할 제어 데이터를 추출하는 제어 데이터 변환부(232)가 있다.
상기 CAN 제어부(216)는 CAN 트랜시브(203)를 제어하여 외부 CAN 디바이스(101)와의 통신을 전반적으로 제어한다. 상기 CAN 제어부(216) 및 상기 CAN 트랜시브(203)의 상태는 상기 CAN 상태 메모리(229)에 반영되며(도 10 참조), 상기 CAN 제어부(216)를 통한 상기 CAN 트랜시브(203)의 제어 및 외부 CAN 디바이스와 통신 모드 설정은 도 11에 나타나 있는 바와 같이 CAN 제어 메모리(227)의 설정을 통하여 이루어진다. MCU(219)는 전체적인 제어를 담당하며, MCU(219)에 대한 제어 프로그램은 메모리(207)에 저장되며, 주기적인 프로그램의 수행 및 타이밍 동기 등을 위하여 타이머(209)가 사용된다. 컴퓨터(109) 측에서는 CAN 디바이스(101)과 통신을 담당하는 응용프로그램(225)이 USB 디바이스 드라이브(223) 및 물리계층의 통신을 수행하는 USB 트랜시버(221)을 통하여 본 발명에 의한 'USB 직렬 통신을 이용한 CAN 접속 장치(105)'와 통신이 이루어진다.
도 3은 외부 CAN 디바이스(101)와 USB 직렬 통신을 통한 CAN 디바이스 접속장치(105)와 컴퓨터(109)간의 논리적 데이터 흐름을 나타낸 것으로, 본 발명에 의한 'USB를 직렬 통신을 이용한 CAN 디바이스 접속장치(105)'와 컴퓨터(109)간에는 제어 데이터 파이프(301a, 301b, 301c)와 일반 데이터 파이프(303a, 303b, 303c)가 설정되어 있으며, 각각 제어 데이터와 일반 데이터를 분리하여 송수신한다. CAN 통신 프로토콜의 처리에 따라 상기 CAN 제어부(216)의 상태는 바뀌게 되며, 이러한 상기 CAN 제어부(216)의 데이터 송수신 상태는 상기 CAN 상태 메모리(229)에 반영되다. 상기 CAN 상태 메모리(229)의 내용은 상기 데이터 변환부(217)에서 USB 데이터 형식으로 변환되어 제어 데이터 파이프(301a, 301b, 301c)를 통하여 컴퓨터(109)의 응용 프로그램(225)으로 전달된다. 한편 컴퓨터(109)의 응용 프로그램(225)에서 CAN 제어부(216)를 제어하여 CAN 통신 모드 혹은 CAN 트랜시버를 설정을 변경하고자 할 때에도(도 11 참조) 제어 데이터 파이프(301a, 301b, 301c)를 통하여 제어 데이터가 전달되며, 데이터 분리부(215)에서 분리되고, 데이터 변환부(217)에서 CAN 제어 데이터가 분리되어 MCU(219)에 전달되고, MCU(219)에 의해 CAN 제어 메모리(227)에 기록되므로서, CAN 통신을 위한 통신 모드 및 CAN 트랜시버의 설정이 변경된다.
컴퓨터(109)와 외부의 USB 디바이스(105) 사이에서 사용되는 USB 전송 방식에는 인터럽트 전송 방식과 벌크 전송 방식이 사용되는 데, 인터럽트 전송방식은 비주기적인 매우 적은 양의 데이터 송수신에 사용되고, 최대 서비스 주기가 보장되며, USB 직렬 버스(107)에서의 에러가 발생하면 다음 주기에서 재시도가 허용된다. 반면, 벌크 전송 방식은 비교적 많은 양의 데이터를 시간에 구애 없이 정확히 전송하기 위하여 사용되며, 전송 에러가 발생하였을 경우에는 데이터의 재전송이 허용된다. 벌크 전송방식은 데이터 전송은 보장하지만, 대역폭이나, 지연에 대해서는 보장하지 않는다. 상기 CAN 상태 메모리(229)의 내용 및 상기 CAN 제어 메모리(227)의 설정을 위한 제어 데이터는 인터럽트 전송 방식으로 전송되고, 일반 데이터는 벌크 전송 방식으로 전송된다.
USB 통신에서 엔드포인트(Endpoint)는 통신 흐름의 종단을 의미하며 각각 고유 ID를 갖고 USB 디바이스 내에 존재하게 된다. 각각의 USB 논리 디바이스는 엔드포인트(Endpoint)의 집합체로 다수 개의 엔드포인트(Endpoint)를 갖는다. 즉 각각의 USB 논리 디바이스는 컴퓨터(109)에 연결될 때 컴퓨터(109)에 의하여 독립적인 주소를 할당받는다. 그리고 각각의 엔드포인트(Endpoint)는 설정된 시간 동안 고유 번호를 갖는다. 엔드포인트(ENDP: Endpoint, 527)는 데이터의 전송 방향에 따라, 입력 디바이스, 입력 호스트, 출력 디바이스, 출력 호스트 중 하나가 된다.
USB 통신에서 파이프(Pipe)는 하나의 디바이스상의 엔드포인트(ENDP: endpoint, 527)와 호스트상의 USB 응용 소프트웨어(225) 사이의 데이터 흐름의 통로이다. 파이프(Pipe)는 특징에 따라 스트림 파이프와 메세지 파이프가 있으며, 스트림 파이프는 USB에서 정의 되지 않은 구조의 데이터를 전송하는 데 사용하며, 일반 데이터 파이프(303a, 303b, 303c)는 스트림 파이프를 사용한다. 또한, 메세지 파이프는 USB에서 정의된 구조의 데이터를 전송하는 데 사용하며, 제어 데이터 파이프(301a, 301b, 301c)는 메세지 파이프를 사용한다.
도 4는 CAN 메시지의 포멧 구성을 나타낸 것으로, 프레임 구성은 크게 프레임의 시작 필드(SOF:Start Of Frame Field, 401)와, 디바이스 중재를 하는 중재 필드(AF:Arbitration Field, 408)와, 프로토콜을 제어하는 제어 필드(CF:Control Field, 409)와, 실제 데이터가 실리는 데이터 필드(Data Field, 410)와, 오류 검출을 하는 CRC 필드(CRC: Cyclic Redundancy Check Field, 411)와, 메세지에 응답을 하는 ACK 필드(ACK: ACKnowledge Field, 412)와, 프레임의 끝을 알리는 프레임 종료 필드(EOF:End Of Frame Filed, 407)로 구성된다. 특히, 중재 필드(408)는 11 비트의 식별자(ID)와 원격 전송 요구(Remote Transmission Request, RTR, 403a) 비트로 구성되는 데, 기본값으로 '0'을 가지는 RTR(403a) 비트 값이 '0'일 때, CAN 메시지가 데이터 프레임이라는 것을 의미한다. 반대로 RTR(403a) 비트 값이 '1'이면 CAN 메시지가 RTR 메세지 즉 원격 프레임(Remote Frame)임을 나타내며, 다른 노드로 데이터를 전송 요청할 때 사용되는 원격 프레임은 데이터 필드를 포함하지 않는다. 제어필드(Control Field, 409)는 향후에 사용되기 위해 예약된 두 개의 '0'의 값을 가지는 R0(403b)와 R1(404)와 데이터 필드의 바이트 수(즉 길이)를 가리키는 4비트의 데이터 길이 코드(DLC:Data Length Code, 405)로 구성된다. 데이터 필드(410)는 전달하고자 하는 데이터가 실제 실리는 부분으로 0~8 바이트로 구성되며, CRC 필드(411)는 15비트의 주기적 중복확인(CRC) 코드로 오류 발생 여부를 확인하기 위하여 사용하며, EOF(407)은 프레임의 끝을 알리는 '1'의 값을 가지는 비트가 이어진다. CAN 데이터 프레임중에서 USB를 통하여 컴퓨터(109)로 전달되는 부분은 중재필드(408)중 아이덴티파이어(ID:Identfier, 402)와 제어 필드(409)중에서 데이터 길이를 나타내는 DLC(4bit, 405)와 데이터 필드(0~8byte, 410)이다.
도 5는 USB 데이터의 포멧을 나타낸 것으로, USB 데이터 프레임은 한 개의 SOF(Start of Frame, 501)와 여러 개의 트랜잭션(TR:Transaction, 503)으로 구성된 프레임 형태로 전송된다. SOF(501)는 다시 8bit의 SYNC(505)와, 8 bit의 PID(507)와, 11 비트의 프레임 번호(509)와, 5 비트의 CRC5(511)로 구성된다. 트랜잭션(513)은 다시 토큰 패킷(515)과 데이터 패킷(517) 및 핸드세이크 패킷(519)으로 구성되어 있다. 토큰 패킷(515)은 프레임 동기를 위하여 고유 패턴을 갖는 SYNC(521)와, 패킷의 고유특성을 나타내는 PID(523)와 패킷이 전달되는 주소를 나타내는 7 비트의 ADDRESS(525)와 엔드포인트의 주소를 나타내는 4 비트의 ENDP(527)로 구성된다. 데이터 패킷(517)은 실제 데이터를 전달하는 부분으로 0~64 BYTE의 크기를 가지며, 데이터 패킷(517)의 CRC(534)는 16 비트의 CRC16를 갖는다. 핸드세이크 패킷(519)은 8 비트의 SYNC(535)와 8 비트의 PID(537)로 구성되며, 패킷 전송의 성공 여부을 알리거나, 재전송 요청하거나, 전송을 일시 정시할 것 등을 요청할 때 사용된다.
도 6은 CAN 송수신부를 통하여 수신된 CAN 데이터 프레임에서 중재 필드(408), 제어 필드(409) 및 데이터 필드(410)을 데이터 분리부(215)에서 분리 한 후, 데이터 변환부(217)에서 USB 데이터 패킷의 데이터부(533)에 매핑하여 USB 데이터 패킷 포멧으로 변환하는 것을 나타낸 것이다.
도 7은 도 6의 반대 개념으로, USB 송수신부에서 수신된 CAN 데이터 패킷에서 데이터부(533)를 데이터 분리부(215)에서 분리 한 후, 데이터 변환부(217)에서 CAN 데이터 패킷의 중재 필드(408), 제어 필드(409) 및 데이터 필드(410)에 매핑하는 것을 나타낸 것이다. CAN 제어 데이터는 데이터 분리부(215)에서 분리된 후, 데이터 변환부(217)에서 CAN 데이터 패킷으로 매핑되지 않고, 데이터 변환부(217)의 제어 데이터 변환부(214)에서 제어 데이터로 변환되어 MCU(219)에 전달된다. 상기 MCU(219)에 전달된 제어 데이터는 CAN 제어 메모리(227)에 기록되어 CAN 제어부(216)를 제어하게 된다. CAN 제어 데이터는 인터럽트 전송 방식으로 전송되며, CAN 디바이스(101)로 전송되는 일반 데이터는 벌크 전송 방식으로 전송 된다.
도 8는 CAN 디바이스(101)로 부터 수신된 CAN 데이터를 USB 데이터로 변환하는 변환과정을 나타낸 흐름도로, 수신할 CAN 데이터가 존재하면(S801) 수신되어 CAN 데이터 버퍼부(205)에 저장되고(S803), 데이터 분리부(215)에 의해서 분리된 후(S805, S807), 데이터 변환부(217)에서 USB 데이터 형식으로 변환이 되어(S809) 각각 USB 버퍼부(211)와 USB 전송부(213)를 거쳐 컴퓨터(109)로 전달된다(S811, S813, S815). USB DEVICE 드라이브(Driver)(223)는 하드웨어를 제어하여 컴퓨터측 USB 트랜시버(221)로 부터 데이터를 읽어오거나, USB 트랜시버(221)에 데이터를 기록한다. 응용 프로그램(225)에서는 API함수를 사용하여 제어 데이터 파이프(301)와 일반용 제이터 파이프(303)를 오픈 한 후, 각각의 파이프로 데이터를 송수신 한다.
도 9는 컴퓨터(109)로부터 수신된 데이터가 외부의 CAN 디바이스로 전송되는 과정을 나타낸 처리 흐름도로, 수신할 USB 데이터가 존재하면(S901), 컴퓨터(109)로 부터 수신된 USB 데이터는 USB 트랜시버부(213)에 의하여 USB 버퍼부(211)에 저장되게 된다(S903). USB 버퍼부(211)에 저장된 USB 데이터는 데이터 분리부(215)에 의하여 일반용 데이터와 제어 데이터로 분리되게 되고(S907), 분리된 제어 데이터는 데이터 변환부(217)의 제어 데이터 변환부(214)에서 제어 데이터로 변환되어, MCU(219)에 전달되고, MCU(219)에 의해 CAN 제어부(216)를 제어하기 위하여 CAN 제어 메모리(227)에 기록되어 CAN 제어부(216)를 제어한다(S909). 또한, 데이터 분리부(215)에 의하여 분리된 일반용 데이터는 데이터 변환부(217)의 일반 데이터 변환부(216)에 의하여 CAN 데이터 프레임 포멧으로 변환하게 된다(S911). 변환된 CAN 데이터 프레임은 CAN 송수신 버퍼부(205)에 저장되게 되고(S913), CAN 송수신 트랜시버부(203)에 의하여 외부 CAN 디바이스(101)로 전송된다(S915,S917). 컴퓨터(109)에서는 전송된 제어 데이터를 기억하고 있다가, CAN 제어 메모리(227)에 변경할 사항이 있을 때에만 변경 내용을 제어 데이터 파이프(301)를 통하여 전송한다. 변경 사항이 없을 때에는 CAN 통신 제어를 위한 USB 제어 데이터를 전송되지 않는다.
도 10은 외부 CAN 디바이스(101)와 송수신에 의해 발생한 CAN 버스, CAN 트렌시브(203) 및 CAN 제어부(216)의 상태를 CAM 상태 메모리(229) 상에 나타낸 것이다. CAN 상태 메모리(229)의 내용은 데이터 변환부(217)의 제어 데이터 변환부(214)에서 USB 제어 데이터로 변환되어 제어 데이터 파이프(301)를 통하여 컴퓨터(109)의 응용 프로그램(225)으로 전달된다. CAN 상태 메모리(229)는 각각 SM001, SM002, SM003, SM004로 구성되며, 상태 메모리가 나타내는 내용은 다음과 같다.
상태 메모리 SM001 : 수신된 데이터의 상태를 나타냄.
0x00: 수신 상태 양호
0x01: 수신 상태 경고
0x10: 수신 상태 에러
0x11: 수신 상태 CAN BUS-OFF
상태 메모리 SM002 : 송신된 데이터의 상태를 나타냄
0x00: 송신 상태 양호
0x01: 송신 상태 경고
0x10: 송신 상태 에러
0x11: 송신 상태 CAN BUS-OFF
상태 메모리 SM003 : CAN 트랜시버(203) 내의 송신버퍼의 OVERRUN으로 더 이상 들어갈 데이터가 공간이 없음을 알림.
0x00: no overrun
0x01: overrun
상태 메모리 SM004 : CAN 트랜시버(203) 내의 수신 버퍼 상태를 알림
0x00: empty, 새로이 읽어 올 데이터가 없음.
0x01: data Ready
도 11은 CAN 트랜시브(203)통하여 CAN 버스를 모니터하는 등, CAN 트랜시버(203) 혹은 CAN 제어부(216)를 제어하기 위하여 사용하는 CAN 제어 메모리(227)의 내용을 나타낸 것으로, 컴퓨터(109)의 응용 프로그램(225)에서는 CAN 제어 메모리(227)의 내용을 기억하고 있다가 변경이 필요한 경우에만, USB 메세지 형태로 제 어 데이터 파이프를 통하여 본 발명에 의한 '유에스비(USB) 직렬 통신을 이용한 CAN 접속 장치(105)'로 전달하고, 이는 다시 데이터 분리부(217)에서 분리된 후, 데이터 변환부(217)의 제어 데이터 변환부(214)에서 변환되어, MCU(219)에 전달되고, MCU(219)에 의하여 CAN 제어 메모리(227)에 기록되어, 외부에 접속된 CAN 디바이스(101)의 제어하거나 모니터링이 가능하게 하다. CAN 제어 메모리(227)의 갱신은 컴퓨터(109)의 응용프로그램(225)에서 USB 제어 데이터 형식으로 전송되어온 제어 데이터를 데이터 분리부(215)에서 분리 한 후, 데이터 변환부(217)의 제어 데이터 변환부(214)에서 CAN 제어 데이터로 변환한 후, MCU(219)에 전달되고 MCU(219)에 의해 CAN 제어 메모리(227)에 기록된다. 다음은 CAN 제어 메모리(227)의 내용을 나타낸 것이다.
제어 메모리 CM001: CAN 송, 수신 트랜시버부의 슬립 모드 진입 설정.
0x00: 일반 모드, CAN 버스는 CAN 데이터 송수신.
0x01: 슬립 모드 진입, CAN 버스는 Idle 상태, 송수신이 금지됨.
제어 메모리 CM002: 수신 모드 설정
0x00: 일반 CAN 데이터 송수신
0x01: 일반 CAN 데이터 수신 전용 모드
제어 메모리 CM003: CAN 송수신 트랜시버 클럭 설정
0x00: 버스 클럭 사용
0x01: 내부 클럭 사용
제어 메모리 CM004: CAN 송수신 트랜시버의 버스 타이밍 설정,
1 ~ 64의 값으로 프리스케일(분주비)값 설정.
도 12는 USB 버퍼부(211)의 내부 구성을 나타낸 것으로, 인터럽트 모드에서 제어 데이터 파이프(301a, 301b, 301c)를 통하여 제어 데이터를 수신하는 인터럽트 수신버퍼와, 벌크모드에서 일반 데이터 파이프(303a, 303b, 303c)를 통하여 데이터를 수신하는 벌크 수신 버퍼와, 인터럽트 모드에서 제어 데이터 파이프(301a, 301b, 301c)를 통하여 제어 데이터를 송신하는 인터럽트 송신버퍼와, 벌크모드에서 일반 데이터 파이프(303a, 303b, 303c)를 통하여 데이터를 송신하는 벌크 송신 버퍼와로 구성된다.
도 13은 CAN 버퍼부(205)의 내부 구성을 나타낸 것으로, CAN 디바이스(101)로 부터 수신된 데이터를 일시 저장하는 CAN 수신 버퍼와 외부의 CAN 디바이스로 송신할 데이터를 일시 저장하는 CAN 송신 버퍼로 구성된다.
도 1은 전체적인 연결 구성을 나타낸 연결도,
도 2는 USB 직렬 통신을 이용한 CAN 접속장치 내부 및 컴퓨터 내부의 USBN 구성을 나타낸 구성도,
도 3은 컴퓨터와 USB 직렬 통신을 이용한 CAN 접속장치간의 USB 연결이 논리적으로 제어용 파이프(pipe)와 데이터용 파이프(pipe)로 파이프 구성도,
도 4는 CAN 메세지의 포멧 구성도,
도 5는 USB 프레임을 구성하는 트랜잭션 및 트랜잭션을 구성하는 패킷의 메세지 포멧의 구성도,
도 6은 CAN-to-USB 메세지 포멧 매핑도,
도 7은 USB-to-CAN 메세지 포멧 매핑도,
도 8은 CAN 디바이스 측으로 수신된 CAN 메세지를 USB 호스트로 전송하기 위하여 USB로 데이터로 변환하여 송신하는 과정을 나타낸 흐름도,
도 9는 컴퓨터 측으로 부터 USB를 통하여 수신된 USB 메세지를 CAN 디바이스로 전송하기 위하여 CAN로 데이터로 변환하여 송신하는 과정을 나타낸 흐름도,
도 10은 CAN 제어부 상태 메모리 구성도,
도 11은 CAN 제어부 제어 메모리 구성도,
도 12는 USB 버퍼부의 내부 구조도,
도 13은 CAN 버퍼부의 내부 구조도 이다.

Claims (7)

  1. 유에스비(USB) 직렬 통신을 이용한 CAN 접속 장치에 있어서, 외부의 CAN 디바이스(101)에 접속되어 물리계층에서 CAN 데이터를 송수신하는 CAN 트랜시버(203)와; 상기 CAN 트랜시버(203)로 부터 수신한 데이터를 일시 저장하거나 상기 CAN 트랜시버(203)로 송신할 데이터를 일시 저장하는 CAN 버퍼부(205)와; CAN 통신을 전반적으로 제어하는 CAN 제어부(216)와; 상기 CAN 트랜시버(203) 및 상기 CAN 제어부(216)의 상태를 나타내는 CAN 상태 메모리(229)와; 메모리의 내용을 바꿈으로서 상기 CAN 트랜시버(203) 및 상기 CAN 제어부(216)의 설정을 바꾸거나 제어하게 하는 CAN 제어 메모리(227)와; USB 직렬 통신을 통하여 외부의 USB 호스트(109)와 물리계층에서 데이터를 송수신하는 USB 트랜시버(213)와; 상기 USB 트랜시버(213)로 부터 수신한 데이터를 일시 저장하거나, 상기 USB 트랜시버(213)를 통하여 외부로 송신할 데이터를 일시 저장하는 USB 버퍼부(211)와; USB 통신을 전반적으로 제어하는 USB 제어부(218)와; 수신된 USB 데이터에서 외부의 CAN 디바이스(101)로 전달할 데이터를 분리하거나 외부의 CAN 디바이스(101)로부터 수신된 CAN 데이터에서 외부의 USB 호스트(109)로 전달할 데이터를 분리하는 데이터 분리부(215)와; 외부의 CAN 디바이스(101)로부터 수신되고 외부의 USB 호스트(109)로 전송하기 위해 상기 데이터 분리부(215)에서 분리된 CAN 데이터를 USB 데이터 포멧으로 변환하고 외부의 USB 호스트(109)로부터 수신되고 외부의 CAN 디바이스(101)로 전송하기 위하여 상기 데이터 분리부(215)에서 분리된 USB 데이터를 CAN 데이터 포멧으로 변환하는 데이터 변환부(217)와; 전반적인 제어를 담당하는 엠씨유(MCU)(219)와; 상기 엠씨유(MCU,219)의 제어 프로그램이 저장되어 있는 메모리(207)와; CAN 통신 및 USB 통신을 위한 타이밍 및 클럭을 생성하는 타이머(209);를 포함하여 이루어지며,
    상기 데이터 변환부(217)는 USB 버퍼부(211)를 통하여 수신하여 데이터 분리부(215)에서 분리된 데이터 중에서 제어 데이터는 CAN 데이터 포멧으로 변환하지 않고, CAN 제어 메모리(227)에 기록하여 CAN 통신을 제어할 수 있게 하는 CAN 제어 데이터로 변환하고 CAN 상태 메모리(229)의 내용을 USB 데이터 포멧으로 변환하여 외부의 컴퓨터로 전송할 수 있게 하는 제어 데이터 변환부와; USB 버퍼부(211)를 통하여 수신되고 데이터 분리부(215)에 의하여 분리된 데이터 중에서 일반 데이터는 CAN 데이터 포멧으로 변환하고 CAN 디바이스로부터 수신되고 데이터 분리부(215)에서 분리된 CAN 데이터를 USB 일반 데이터 포멧으로 변환하는 일반 데이터 변환부;로 이루어지고,
    상기 USB 버퍼부(211)는 제어 데이터를 수신하는 인터럽트 수신버퍼와; 일반 데이터를 수신하는 벌크 수신버퍼와; 제어 데이터를 송신하는 인터럽트 송신버퍼와; 일반 데이터를 송신하는 벌크 송신버퍼;로 구성되며,
    상기 CAN 버퍼부(205)는 외부의 CAN 디바이스(101)로부터 송신된 데이터를 일시 저장하는 CAN 수신 버퍼와; 외부의 CAN 디바이스(101)로 송신할 데이터를 일시 저장하는 CAN 송신 버퍼;로 구성되고,
    상기 CAN 제어 메모리(227)는 송수신모드설정 메모리와; 모니터링설정 메모리와; 클럭설정 메모리와; 버스타이밍설정 메모리;를 포함하여 이루어지며,
    상기 CAN 상태 메모리(229)는 수신상태 메모리와; 송신상태 메모리와; 송신버퍼 오버런(Overrun) 메모리와; 수신버퍼 엠프티(empty) 메모리;를 포함하여 이루어진 것을 특징으로 하는 유에스비(USB) 직렬 통신을 이용한 CAN 접속 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제1항에 있어서, 외부 컴퓨터와의 USB 직렬 통신은 CAN 제어 메모리에 기록할 내용을 담은 CAN 제어 데이터 및 CAN 상태 메모리의 상태 정보를 담은 CAN 제어 데이터는 제어 데이터 파이프(301)를 통하여 전송되고, 일반 데이터는 일반 데이터 파이프(303)를 통하여 전송되는 것을 특징으로 하는 유에스비(USB) 직렬 통신을 이용한 CAN 접속 장치.
KR1020080109155A 2008-11-05 2008-11-05 유에스비(usb) 직렬 통신을 이용한 can 접속 장치 KR100949045B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080109155A KR100949045B1 (ko) 2008-11-05 2008-11-05 유에스비(usb) 직렬 통신을 이용한 can 접속 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080109155A KR100949045B1 (ko) 2008-11-05 2008-11-05 유에스비(usb) 직렬 통신을 이용한 can 접속 장치

Publications (1)

Publication Number Publication Date
KR100949045B1 true KR100949045B1 (ko) 2010-03-24

Family

ID=42183660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080109155A KR100949045B1 (ko) 2008-11-05 2008-11-05 유에스비(usb) 직렬 통신을 이용한 can 접속 장치

Country Status (1)

Country Link
KR (1) KR100949045B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101249788B1 (ko) 2011-07-15 2013-04-03 (주)동아엘텍 디스플레이 모듈 에이징 시스템의 통신 네트워크 구조

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002009849A (ja) 2000-06-21 2002-01-11 Nec Microsystems Ltd Usb転送制御方法およびusbコントローラ
JP2002312296A (ja) 2001-04-10 2002-10-25 Nec Microsystems Ltd 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム
KR20060003754A (ko) * 2004-07-07 2006-01-11 현대자동차주식회사 캔 통신 네트워크 시험장치 및 방법
KR20080039086A (ko) * 2006-10-31 2008-05-07 지형림 휴대용 데이타 직접 전송 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002009849A (ja) 2000-06-21 2002-01-11 Nec Microsystems Ltd Usb転送制御方法およびusbコントローラ
JP2002312296A (ja) 2001-04-10 2002-10-25 Nec Microsystems Ltd 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム
KR20060003754A (ko) * 2004-07-07 2006-01-11 현대자동차주식회사 캔 통신 네트워크 시험장치 및 방법
KR20080039086A (ko) * 2006-10-31 2008-05-07 지형림 휴대용 데이타 직접 전송 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101249788B1 (ko) 2011-07-15 2013-04-03 (주)동아엘텍 디스플레이 모듈 에이징 시스템의 통신 네트워크 구조

Similar Documents

Publication Publication Date Title
JP5663037B2 (ja) 映像および音声用デジタル相互インターフェース(DiiVA)上のマルチメディアUSBデータ転送
US20020156952A1 (en) Communication control apparatus, communication system and communication control method
JP4966695B2 (ja) マルチマスタのチェーン接続された二線シリアルバス装置及びディジタル状態機械
CN106959935B (zh) 一种兼容i2c通信与ipmb通信的方法
JP2013505507A (ja) マルチプロトコル記憶装置ブリッジ
JP3584789B2 (ja) データ転送制御装置及び電子機器
JP4432385B2 (ja) データ中継システム
US20030179719A1 (en) Method and apparatus for transmitting packets at a transfer rate that depends on a response from a destination
JP4541949B2 (ja) データ転送装置
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
WO2001075618A3 (en) Asynchronous input/output interface protocol
US7711877B2 (en) Image sensing device
KR100949045B1 (ko) 유에스비(usb) 직렬 통신을 이용한 can 접속 장치
US6445718B1 (en) Serial interface circuit
US6952276B2 (en) Printer detecting data precisely in response to change in data transmission speed
US6580711B1 (en) Serial interface circuit and signal processing method of the same
US6978327B1 (en) Data transfer control device and electronic equipment for performing data
US20040139386A1 (en) Data exchange unit
US7181551B2 (en) Backward-compatible parallel DDR bus for use in host-daughtercard interface
KR20220156512A (ko) 통신 장치 및 통신 시스템
JP4582180B2 (ja) データ伝送装置
JP4123641B2 (ja) 情報処理装置及び方法
JPH10336252A (ja) シリアルデータ転送制御装置およびシリアルデータ転送方法
JP2671426B2 (ja) シリアルデータ転送方法
JP2002281034A (ja) 情報転送装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee