KR100712242B1 - Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법 - Google Patents

Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법 Download PDF

Info

Publication number
KR100712242B1
KR100712242B1 KR1020017006071A KR20017006071A KR100712242B1 KR 100712242 B1 KR100712242 B1 KR 100712242B1 KR 1020017006071 A KR1020017006071 A KR 1020017006071A KR 20017006071 A KR20017006071 A KR 20017006071A KR 100712242 B1 KR100712242 B1 KR 100712242B1
Authority
KR
South Korea
Prior art keywords
message
message object
frame
received
acknowledgment
Prior art date
Application number
KR1020017006071A
Other languages
English (en)
Other versions
KR20010080449A (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 KR20010080449A publication Critical patent/KR20010080449A/ko
Application granted granted Critical
Publication of KR100712242B1 publication Critical patent/KR100712242B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/4015Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1664Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

승인 신호 메시지를 자동으로 전송하기 위하여, 프로세서 코어를 포함하는 CAN 장치(예를 들면, CAN 마이크로 제어기)에서 사용하기 위한 방법. 본 방법은 멀티-프레임인 단편화된 메시지의 프레임을 수신하고, 그 수신 단계 응답하여, 프로세서 코어의 어떤 개입도 없이, 승인 신호 메시지를 자동으로 전송하는 단계를 포함한다. 상기 자동 전송 단계는 프로세서 코어 외부의 하드웨어, 예를 들면, CAN 장치의 CAN/CAL 모듈에 의해서 바람직하게 실행된다. 바람직한 실시예에서, 본 방법은 수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하는 단계, 그 수신 메시지 객체를 사용가능하게 하는 단계, 그 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하는 단계, 그 전송 메시지 객체와 관련된 응답 메시지 버퍼로 승인 신호 메시지를 저장하는 단계, 멀티-프레임인 단편화된 메시지의 프레임을 수신하는 단계, 그 수신된 프레임이 사용가능한 수신 메시지 객체와 부합하는 지를 결정하도록 그 수신된 프레임을 승인(acceptance) 필터링하는 단계, 그 전송 메시지 객체를 사용가능하게 하는 단계, 및 프로세서 코어의 어떤 개입도 없이, 승인 신호 메시지를 자동으로 전송하는 단계를 포함한다.

Description

CAN 장치 및 CAN 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법{A METHOD FOR AUTOMATICALLY TRANSMITTING AN ACKNOWLEDGE FRAME IN CANOPEN AND OTHER CAN APPLICATION LAYER PROTOCOLS}
본 출원은 1999년 9월 15일 출원된 미국 가특허출원(U.S. Provisional Application) 제 60/154,022호의 모든 특권 및 우선권을 주장하며, 그 개시된 내용은 모든 목적으로 본원에 완전히 포함된다.
본 발명은 일반적으로 데이터 통신 분야에 관한 것으로서, 특히, 직렬 통신 버스 제어기 및 마이크로콘트롤러 분야에 관한 것이다.
CAN(Control Area Network)은 의료 장비, 항공 전자 공학, 사무 자동화 설비, 소비자 제품, 및 다른 많은 제품 및 애플리케이션뿐만 아니라, 자동차 및 산업용 제어 애플리케이션에 널리 사용되는 산업-표준(industry-standard)인 2가닥 도선(two-wire) 직렬 통신 버스이다. CAN 제어기는 마이크로콘트롤러와 인터페이스 하도록 구성된 독립형 장치로서 또는 마이크로콘트롤러 칩 내부에 통합된 회로 또는 마이크로콘트롤러 칩에 삽입된 모듈로서 현재 사용 가능하다. 1986년 이래로, CAN 사용자들(소프트웨어 프로그래머들)은 CAN 물리적 레이어 및 CAN 프레임 포맷을 사용하면서, 그리고 CAN 사양을 지지하면서 CAN의 기능을 확장하는 다수의 고급 CAL(CAN 애플리케이션 레이어들)을 개발하여 왔다. 지금까지 CAL는 하드웨어 CAL을 거의 지원하지 않으면서, 주로 소프트웨어에서 구현되었다. 그 결과, 지금까지 CAL는 상당량의 호스트 CPU 개입을 요구하여, 그것에 의해서 프로세싱 부담을 증가시키고 그 호스트 CPU의 성능을 감소시켰다.
따라서, 이런 작업들을 호스트 CPU에서 CAN 하드웨어로 내리기 위해서(offload) 일반적으로 소프트웨어에 구현된 CAL 기능의 CAN 하드웨어 구현을 위한 기술이 필요하며, 그에 의해서 CPU 프로세싱 리소스를 절약할 수 있고 호스트 CPU 성능에 대응하는 향상을 도모할 수 있다. 가장 필요한 사항중 하나 및 CPU 리소스-집중적(resource-intensive) CAL 기능은 메시지 관리이며, 이것은 CAN 직렬 통신 버스를 통해서 수신되는 입력 CAL/CAN 메시지 및 CAN 직렬 통신 버스를 통해서 전송되는 출력 CAL/CAN 메시지의 핸들링(handling), 저장, 및 프로세싱(processing)을 수반한다. DeviceNet, CANopen, 및 OSEK와 같은, CAL 프로토콜은 다수의 CAN 프레임에 분배된 긴 메시지를 전송하며, 그 방법은 때로 Afragmented@ 또는 Asegmented@ 메시징으로 지칭된다. 지금까지 단편화된, 멀티프레임 메시지 조합의 처리는 상당한 호스트 CPU 개입을 요구해왔다. 특히, 호스트 CPU에서 동작하는 CAL 소프트웨어는 메시지 조각 또는 세그먼트를 완전한 메시지로 조합하기 위해서, 메시지 데이터의 버퍼링 및 프로세싱을 활발히 감시 및 관리한다.
전술한 사항에 의거하여, 호스트 CPU로부터 이런 작업을 오프로드(offload)하기 위해서 일반적으로 소프트웨어에 구현된 CAL 기능의 하드웨어 구현이 본 기술분야에 필요하며, 그것에 의해서 CPU 프로세싱 리소스를 절약할 수 있고 호스트 CPU 성능에 대응하는 향상을 도모할 수 있음을 알 수 있다.
본 발명의 양수인은 현재 "XA-C3"으로 명명된, 본 기술 분야에 필요한 새로운 마이크로콘트롤러 제품을 개발하였다. XA-C3은 고성능 16 비트 단일-칩 마이크로콘트롤러의 Philips XA(확장된 아키텍처:eXtended Architecture)계열 패밀리의 가장 새로운 부재이다. XA-C3은 하드웨어 CAL 지원의 특징을 이루는 최초의 칩이다.
XA-C3은 본 발명을 포함하는, 다수의 다른 발명을 포함하는 CMOS 16 비트 CAL/CAN 2.0B 마이크로콘트롤러이다. 이 발명들은 메모리 데이터의 저장 및 복구, 및 그것을 위해 활용되는 메모리 리소스를 관리하기 위한 것뿐만 아니라, 최소한의 CPU 개입으로 멀티프레임 단편화된 메시지의 자동 조합을 포함하여, CAL/CAN 메시지의 필터링(filtering), 버퍼링, 핸들링(handling), 및 프로세싱을 위한 고급 기술 및 하드웨어를 포함한다.
본 발명은 주어진 메시지 버퍼의 액세스 상태를 나타내도록 3 가지-상태 세마포어(semaphore) 코드를 주어진 메시지 버퍼에 기록하기 위한 방법에 관한 것이다. 그런 다음 CPU 상에서 동작하는 애플리케이션(소프트웨어)은 주어진 메시지 버퍼가 CPU에 의해서 판독할 준비가 되어있는지, 주어진 메시지 버퍼가 DMA 엔진에 의해서 즉시 액세스되고 있는지 (및 CPU에 의해서 판독할 준비가 되어있지 않은지), 또는 주어진 메시지 버퍼가 CPU에 의해서 즉시 판독되고 있는지를 결정하도록 이 3 가지-상태 세마포어 코드를 판독할 수 있다. 상기 방법으로, CPU 판독이 진행중일 동안 비록 DMA 엔진이 주어진 메시지 버퍼에 액세스하더라도, 주어진 메시지 버퍼에 저장된 데이터의 무결성이 보장된다.
본 발명은 승인 신호 메시지를 자동으로 전송하기 위해서, 프로세서 코어를 포함하는 CAN 장치(예를 들면, CAN 마이크로 제어기)에서 사용하기 위한 방법을 포함한다. 본 방법은 멀티-프레임의 단편화된 메시지의 프레임을 수신하고, 수신 단계에 응답하여, 프로세서 코어의 어떤 개입을 요구하지 않고 승인 신호 메시지를 자동으로 전송하는 단계를 포함한다. 자동으로 전송하는 단계는 프로세서 코어의 외부의 하드웨어(예를 들면, CAN 장치의 CAN/CAL 모듈)에 의해서 바람직하게 실행된다.
바람직한 실시예에서, 본 방법은 수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하고, 수신 메시지 객체를 사용가능하게 하고, 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하고, 전송 메시지 객체와 관련된 응답 메시지 버퍼에 승인 신호 메시지를 저장하고, 멀티-프레임인 단편화된 메시지의 프레임을 수신하고, 수신된 프레임이 사용가능하게된 수신 메시지 객체와 부합하는 지를 결정하도록 수신된 메시지를 승인 필터링하고, 전송 메시지 객체를 사용가능하게 하고, 프로세서 코어의 어떤 개입도 요구하지 않으면서, 승인 신호 메시지를 자동으로 전송하는 단계를 포함한다.
특정 구현에서, 승인 신호 메시지는 관리 CAL 프로토콜, 예를 들면, CANopen 프로토콜에 의해서 정의된 승인 신호 바이트를 포함하고, 그리고 본 방법은 자동으로 전송하는 단계 이전에 승인 신호 바이트의 대응하는 비트 위치 내부로 수신된 프레임에 포함된 토글 비트를 복사하는 단계를 더 포함한다.
다른 특징에서, 본 발명은 상술된 방법을 구현하는 CAN 장치, 예를 들면, CAN 마이크로 제어기를 포함한다.
도 1은 표준 CAN 프레임이 포맷 및 확장된 CAN 프레임의 포맷을 도시한 도면.
도 2는 다른, 무관한 메시지의 CAN 데이터 프레임의 인터리빙을 도시한 도면.
도 3은 XA-C3 마이크로콘트롤러의 하이-레벨, 기능 블럭도.
도 4는 XA-C3 마이크로콘트롤러에 의해서 제공되는 모든 MMRs(Memory Mapped Registers)의 목록을 나열한 테이블.
도 5는 XA-C3 마이크로콘트롤러의 전체 데이터 메모리 공간의 맵핑을 도시한 도면.
도 6은 XA-C3 마이크로콘트롤러의 전체 데이터 메모리 공간 내부에 포함된 MMR 공간을 도시한 도면.
도 7은 오프-칩(off-chip) 데이터 메모리 내부로 맵핑된 객체 n 메시시를 가진, XA-C3 마이크로콘트롤러의 온-칩 XRAM의 기본 어드레스의 구성을 도시한 도면.
도 8은 온-칩 XRAM 내부로 맵핑된 객체 n 메시지를 가진, XA-C3 마이크로콘트롤러의 온-칩 XRAM의 기본 어드레스의 구성을 도시한 도면.
도 9는 표준 CAN 프레임을 위한 스크리너(Screener) ID 필드를 도시한 도면.
도 10은 확장된 CAN 프레임을 위한 스크리너(Screener) ID 필드를 도시한 도면.
도 11은 단편화된 CAL 메시지를 위한 메시지 저장 포맷을 도시한 도면.
도 12는 단편화된 CAN 메시지를 위한 메시지 저장 포맷을 도시한 도면.
본 발명은 특정 구현, 즉, Philips Semiconductors에 의해서 제조된 XA-C3 마이크로콘트롤러 환경과 관련하여 설명된다. 물론, 본 명세서에서 기술된 본 발명의 하나 이상의 다양한 임의의 실시예 및 특징은, 예를 들면, 독립형 CAN 제어기 장치에서 또는 다른 마이크로콘트롤러 또는 시스템의 부분으로서, 개별적으로 또는 조합하여 활용될 수 있는 바와 같이, 본 발명은 이런 특정 구현에 제한을 두지 않는다.
본 발명의 바람직한 실시예(즉, XA-C3 마이크로콘트롤러)를 기술하는데 있어서 본 명세서에서 사용된 다음의 용어들은 다음과 같이 정의된다:
표준 CAN 프레임(Standard CAN Frame): 표준 CAN 프레임의 포맷은 도 1에 표시되어 있다.
확장 CAN 프레임(Extended CAN Frame): 확장 CAN 프레임의 포맷은 도 1에 또한 표시되어 있다.
승인 필터링(Acceptance Filtering): CAN 장치가 CAN 프레임이 승인되어야 할 지 또는 무시되어야할 지를 결정하도록 구현하고, 만약 승인된다면, 사전할당된 메시지 객체에서 그 프레임을 저장하도록 구현하는 프로세스.
메시지 객체(Message Object): 사전 정의된(pre-specified) 크기 (CAL 메시지에 대하여 256 바이트까지) 및 특정 승인 필터(Acceptance Filter)와 관련된 수신 램(Receive RAM) 버퍼 또는, 사용자가 완전한 CAN 데이터 프레임(Data Frame)을 전송하기 위한 모든 필요한 데이터를 프리로드(preload)하는 전송 램(Transmit RAM) 버퍼. 메시지 객체는 완전한 메시지, 또는 연속된 메시지가 전송될 수 있는 통신 채널로 간주된다.
CAN 중재(Arbitration) ID: CAN 프레임 헤더(Frame Header)에 위치한 11 비트 (Standard CAN 2.0 프레임) 또는 29 비트 (Extended CAN 2.0B 프레임) 식별자 필드. 이 ID 필드는 CAN 버스에 접근하는 프레임을 중재하는데 사용된다. 또한 CAN 프레임 접수 및 전송 사전 중재(Transmit Pre-Arbitration)를 위한 승인 필터링(Acceptance Filtering)에서 사용된다.
스크리너(Screener) ID: 승인 필터링(Acceptance Filtering)에서 사용되는 입력 메시지로부터 추출된 30 비트 필드. 스크리너(Screener) ID는 CAN 중재(Arbitration) ID 및 IDE 비트를 포함하고, 2 데이터 바이트(Data Bytes)까지 포함할 수 있다. 이런 추출된 30 비트는 승인 필터링(Acceptance Filtering)에 의해서 검정된 정보이다.
매치(Match) ID: 입력 스크리너(Screener) ID와 비교되는 사용자에 의하여 사전 지정된 30 비트 필드. 32 메시지 객체들의 각각에 대한 개별적인 매치(Match) ID는 지정된 MMR(Memory Mapped Registers) 내부에 사용자에 의해서 프로그램된다.
마스크(Mask): 승인 필터링(Acceptance Filter)에서 임의의 특정 비트(또는, 비트들의 조합)에서 매치(Match) ID 비교(Mask)를 무시할 수 있는 사용자에 의하여 사전 지정된 29 비트 필드. 개별적인 마스크, 각각의 메시지 객체(Message Object)에 대한 마스크는 지정된 MMR에 사용자에 의해서 프로그램된다. 개별적인 마스크 패턴은 단일 수신 객체(Receive Objects)가 다중의 승인된(acknowledged) CAL/CAN 프레임에 대하여 차단(Screen) 할 수 있고 따라서 그런 낮은 우선순위의(lower Priority) 프레임에 제공되어야하는 수신 객체(Receive Objects)의 개수를 최소화할 수 있다. 개별적인(individual) 메시지 객체를 마스크(마스크)할 수 있는 능력은 중요한 새로운(new) CAL 특징이다.
CAL: CAN 애플리케이션 레이어(CAN Application Layer). 하이-레벨 프로토콜에 대한 일반적인 용어는 CAN 물리적 레이어 및 CAN 프레임 포맷을 사용하는 동안 CAN의 기능을 확장하며, CAN 사양을 지지한다. 특히, CAL은 CAN 프레임에서 고유한 8 바이트 데이터 제한을 초과하는 메시지의 전송을 허용한다. 이것은 각각의 메시지를 복합 패킷으로 분할함으로써 가능하며, 각각의 패킷은 최대 8 데이터 바이트로 구성되는 단일 CAN 프레임처럼 전송된다. 그런 메시지는 일반적으로 "분할된(segmented)" 또는 "단편화된(fragmented)" 메시지로 지칭된다. 완전한 단편화된 메시지를 구성하는 개별적인 CAN 프레임은 통상적으로 접근하여 전송되지 않으며, 오히려 도 2에 도시되어 있는 바와 같이, 다른, 무관한 메시지의 개별적인 CAN 프레임은 CAN 버스 상에서 인터리브된다.
단편화된 메시지(Fragmented Message): 연속된 개별적인 CAN 프레임을 사용하여 데이터 패킷으로 분할되어 전송되는 길이가 긴 메시지(8 바이트 초과). 연속된 CAN 프레임이 길이가 긴 메시지를 구성하는 구체적인 방법은 특정 CAL의 설명서에 정의되어 있다. XA-C3 마이크로콘트롤러는 하드웨어에서 자동으로 이 패킷들을 원본의, 길이가 긴 메시지로 재결합하여 완료된(재결합된) 메시지가 관련된 수신 메시지 객체(Receive Message Object)로서 사용가능할 때 (인터럽트를 통해서) 보고한다.
메시지 버퍼(Message Buffer): 입력(수신된) 메시지가 저장되거나 출력(전송) 메시지가 스테이지되는 XA 데이터 메모리에서 위치의 블럭.
MMR: 메모리가 배치된 레지스터(Memory Mapped Register). 어드레스가 XA 데이터 메모리 공간에 배치되고 XA 프로세서에 의해서 데이터 메모리로서 액세스되는 온-칩 명령/제어/상태 레지스터. XA-C3 마이크로콘트롤러에서, MMR에 제공되는 8개의 한 세트는 각각의 메시지 객체와 관련한다. 또한, 비트들이 모든 메시지 객체에 적용되는 전역 변수들을 제어하는 몇 개의 MMR이 있다.
도 3은 XA-C3 마이크로콘트롤러(20)의 하이-레벨 블럭도이다. XA-C3 마이크로콘트롤러(20)는 44-핀 PLCC로 패킷화된 단일 집적회로(IC) 또는 44-핀 LQFP 패키지에서 제조되는 다음의 기능 블럭을 포함한다.
XA CPU 코어(22)는 현재 24-비트 프로그램 및 데이터 어드레스 범위로 16-비트의 완전한 정적(static) CPU로서 구현되며, 80C51 아키텍쳐와 호환가능하고, 그리고 30 MHz의 주파수까지 작동한다.
프로그램 또는 코드 메모리(24)는 32K ROM/EPROM으로 현재 구현되고, 내부 프로그램 버스(25)를 통해서 XA CPU 코어(22)와 양방향으로 결합된다. 코드 메모 리 공간의 맵은 도 4에 도시되어 있다.
데이터 RAM(26)(내부적인 또는 스크래치(scratch) 패드 데이터 메모리)은 현재 전체 XA-C3 데이터 메모리 공간의 1024 바이트 영역으로 구현되며, 내부 데이터 버스(27)를 통해서 XA CPU 코어(22)와 양방향으로 결합된다.
온-칩(on-chip) 메시지 버퍼 RAM 또는 XRAM(28)은 CAN/CAL (전송 & 수신 객체) 메시지 버퍼의 일부 또는 전부를 포함하는 전체 XA-C3 데이터 메모리 공간의 512 바이트 영역으로 구현된다.
MIF(메모리 인터페이스:Memory Interface) 유닛(30)은 외부 어드레스/데이터 버스(32)를 통해서, 내부 코어 데이터 버스(34)를 통해서, 그리고 내부 MMR 버스(36)를 통해서 SRAM, DRAM, 플래시, ROM 및 EPROM 메모리 장치와 같은 일반적인 메모리 장치와의 인터페이스를 제공한다.
DMA 엔진(38)은 32 CAL DAM 채널들을 제공한다.
다수의 온-칩 MMR(40)는 전체 XA-C3 데이터 메모리 공간에 맵핑된다. 전체 XA-C3 데이터 공간의 4 KByte 영역은 MMR을 위하여 확보된다. 이런 MMR는 32 CAL 메시지 객체에 대응하는, 32 (메시지) 객체 또는 어드레스 포인터들 및 32 ID 스크리너(Screener) 또는 Match ID를 포함한다. 모든 MMR의 완전한 리스팅은 도 5에 도시된 테이블에서 제공된다.
2.0B CAN/DLL 코어(42)는 Philips SJA1000 CDLL(CAN (2.0A/B) Data Link Layer) 장치에서의 CAN 제어기 코어이다(이후 CCB("CAN Core Block")로 지칭된다).
일련의 표준 마이크로콘트롤러 주변장치는 SFR(특수 기능 레지스터:Special Function Register) 버스(43)를 통해서 XA CPU 코어(22)와 양방향으로 결합된다. 이런 표준 마이크로콘트롤러 주변장치들은 UART(범용 비동기 송수신 장치:Universal Asynchronous Receiver Transmitter)(49), SPI 직렬 인터페이스(포트)(51), 토글 출력 가능한 3개의 표준 타이머/카운터, 즉, 타이머 블럭(53)에 포함된 타이머 0 & 타이머 1, 및 타이머 블럭(54)에 포함된 타이머 2, 감시장치 타이머(55), 및 4 개의 8 비트 I/O 포트들, 즉, 4 프로그램가능한 출력 구성을 가지는, 블럭(61)에 포함된 포트 0-3을 포함한다.
DMA 엔진(38), MMR(40), 및 CCB(42)는 CAN/CAL 모듈(77)을 구성하며, 다음의 기술을 통하여 여러번 언급될 것이다. 또한 "메시지 관리(message management)" 및 "메시지 처리(message handling)" 기능을 실행하는 CAN/CAL 모듈(77) 내부의 특정 로직 성분은 다음의 기술을 통하여 여러번 각각, "메시지 관리 엔진(message management engine)" 및 "메시지 핸들러(message handler)"라 지칭된다. 다른 전문용어는 다음의 기술을 통하여 소개되는 바와 같이 정의될 것이다.
전술한 바와 같이, XA-C3 마이크로 컨트롤러(20)는 이미 호스트 CPU에서 동작하는 소프트웨어에서 구현되는(또는 전혀 구현되지 않은) 다수의 메시지 관리 및 다른 기능을, 하드웨어에서, 구현하며, 인터리브된, 멀티프레임, 단편화된 CAL 메시지를 동시에 32개 까지 투명한, 자동 재조합을 포함한다. 호스트 CPU(즉, XA CPU 코어(22))에서 작동하도록 설치된 각각의 애플리케이션에 대하여, 사용자(소프트웨어 프로그래머)는 XA-C3 기능 사양(Functional Specification) 및 XA-C3 CAN 전송 레이어 제어기(Transport Layer Controller) 사용자 매뉴얼에 설명되어 있는 방법으로 MMR 및 SFRs를 프로그래밍함으로써 이런 기능을 실행하기 위한 하드웨어를 셋업해야 한다. 본 발명의 이해에 가장 관련된 레지스터 프로그래밍 프로시저는 후술되며, 사용자에 의해서 적합하게 셋업된 다음 XA-C3 마이크로콘트롤러(20)의 동작 동안 CAL/CAN 모듈(77)에 의해서 자동으로 실행되는 다양한 메시지 관리 및 다른 기능을 기술한다. 다음의 절에서, 본 애플리케이션이 지정되는 특별한 발명의 보다 상세한 기술이 제공된다.
셋업/프로그래밍 프로시저(Set-up/Programming Procedures)
먼저, 사용자는 도 5에 도시되어 있는 바와 같이, 전체 XA-C3 데이터 메모리 공간을 배치해야 한다. 특히, 어떤 제약 조건이 있다면, 사용자는 XRAM(28)의 시작 또는 기본 어드레스 및 MMR(40)의 시작 또는 기본 어드레스를 지정해야한다. MMR(40)의 기본 어드레스는 SFR(Special Function Registers) MRBL 및 MRBH를 적당하게 프로그래밍함으로서 지정될 수 있다. XRAM(28)의 기본 어드레스는 MBXSR 및 MRAMB에 지정된 MMR를 적당히 프로그래밍함으로서 지정될 수 있다(도 4 참조).
사용자는 MMR(40)을 위해 확보된 4KByte를, 내부 또는 스크래치-패드(scratch-pad) 메모리로 사용되는 온-칩 데이터 RAM(26)과 충돌할 수도 있는, 메모리 공간의 최하부(즉, 최초 1 KByte 영역, 000000h 의 시작 어드레스)와 다른, XA 아키텍처에 의해서 지원되는 전체 16 Mbyte 데이터 메모리 공간 내부의 어디에라도 위치시킬 수 있다. MMR 공간의 4KBytes는 항상 4K 범위에서 시작한다. MRBH 및 MRBL에 대한 리셋 값은 각각 0Fh 및 F0h이다. 따라서, 리셋 후, MMR 공간은 데이터 세그먼트 0Fh의 최상부 4 KBytes에 배치되지만, MMR(40)으로의 액세스는 불가능하다. MMR 공간의 최초 512 Bytes(오프셋 000h - 1FFh)는, 도 6에 도시되어 있는 바와 같이, 객체 n = 0 - 31을 위한 메시지 객체 레지스터(Message Object Registers)(메시지 객체당 8)이다.
도 7 및 8에 도시되어 있는 바와 같이, XRAM(28)의 기본 어드레스는 MBXSR 및 XRAMB가 지정된 MMR의 내용에 의해서 결정된다. 전술한 바와 같이, 512 Byte XRAM(28)에는 (메시지 객체 n = 0 - 31에 상응하는) 일부(또는 전체) 32 (Rx/Tx) 메시지 버퍼가 상주한다. 메시지 버퍼는 최대 8 KBytes까지 확장된 오프-칩일 수 있다. 이 오프-칩은 32, 256 바이트 메시지 버퍼까지 확장 가능하다. 모든 메시지 버퍼의 최상부 8 비트는 MBXSR 레지스터의 내용에 의해서 구성되기 때문에, XRAM(28) 및 모든 32 메시지 버퍼는 동일한 64 KByte 데이터 메모리 세그먼트에 상주해야 한다. XA-C3 마이크로콘트롤러(20)는 외부 메모리에 접근하기 위해서 단지 어드레스 라인 A0-A19를 제공할 뿐이므로, 모든 외부 메모리 어드레스는 어드레스 공간의 최하부 1 MByte 내부에 있어야 한다. 따라서, 만약 32 메시지 버퍼가 배치될 시스템에 외부 메모리가 있다면, 또한 모든 32 메시지 버퍼 및 XRAM(28)은 동일한 64 KByte 세그먼트 내부에 완전히 배치되어야 하며, 1MByte 어드레스 제한 아래이어야 한다.
메모리 공간이 배치된 후, 32 분리된 메시지 객체를 셋업 또는 정의하고, 메시지 객체 각각은 전송(Transmit)(Tx) 또는 수신(Receive)(Rx) 메시지 객체일 수 있다. Rx 메시지 객체는 유일한 CAN ID, 또는 임의의 ID 비트 필드를 공유하는 한 세트의 CAN ID와 관련될 수 있다. 전술한 바와 같이, 각각의 메시지 객체는, 메시지 객체의 메시지 버퍼로 언급되는, 데이터 메모리 공간의 자신만의 확보된 블럭(256 바이트까지)을 가진다. 도시되는 바와 같이, 메시지 객체의 메시지 버퍼의 크기 및 기본 어드레스 둘 모두는 프로그램가능하다.
전술한 바와 같이, 각각의 메시지 객체는 그 메시지 객체에 제공되는 한 세트의 8 MMR(40)와 관련된다. 일부 이런 레지스터는 Rx 메시지 객체를 위한 작동과는 다르게 Tx 메시지 객체를 위해 작동한다. 이런 8 MMR(40)는 "메시지 객체 레지스터(Message Object Registers)"로 지정된다(도 4 참조).
8 MMR(40)의 명칭:
1. MnMIDH 메시지 n 매치 ID 하이(Message n Match ID High)
2. MnMIDL 메시지 n 매치 ID 로우(Message n Match ID Low)
3. MnMSKH 메시지 n 마스크 하이(Message n 마스크 High)
4. MnMSKL 메시지 n 마스크 로우(Message n 마스크 Low)
5. MnCTL 메시지 n 제어(Message n Control)
6. MnBLR 메시지 n 버퍼 위치지정 레지스트(Message n Buffer Location Register)
7. MnBSZ 메시지 n 버퍼 크기(Message n Buffer Size)
8. MnFCR 메시지 n 조각 카운트 레지스터(Message n Fragment Count Register)
여기서 n 범위는 0에서 31까지이다(즉, 32 독립 메시지 객체에 대응).
일반적으로, 후술되는 바와 같이, 사용자는 메시지 객체로 제공되는 8 MMR의 일부 또는 전부를 구성(프로그래밍)함으로서 메시지 객체를 정의하거나 또는 셋업한다. 또한, 후술되는 바와 같이, 사용자는, 비트가 모든 메시지 객체에 적용되는 전역 변수들을 제어하는, 전역 GCTL 레지스터를 구성(프로그램)해야 한다.
특히, 사용자는 승인 필터링(Acceptance Filtering)을 위한 입력 CAN 프레임으로부터 추출된 스크리너(Screener) ID에 대하여 비교되는 각각이 메시지 객체를 위한 매치(Match) ID 값을 지정할 수 있다. 각각의 메시지 객체 n에 대한 매치(Match) ID 값은 그 메시지 객체 n와 관련된 MnMIDH 및 MnMIDL에서 지정된다. 사용자는 각각의 특정한 메시지 객체 n와 관련된 적당한 MnMSKH 및/또는 MnMSKL 레지스터 내부의 (마스크 되도록) 필요한 비트 영역에 논리값 '1'을 기록함으로서, 하나의 객체씩으로, 승인 필터링(Acceptance Filtering)에 사용되지 않도록 임의의 스크리너(Screener) ID 비트를 마스크할 수 있다. 셋업시, 사용자는 각각의 메시지 객체 n에 대한 유일한 메시지 버퍼 위치를 할당해야 한다. 특히, 사용자는 그 메시지 객체 n와 관련된 MnBLR 레지스터를 프로그래밍함으로서 각각의 특정 메시지 객체 n에 대한 메시지 버퍼의 기본 어드레스의 최소한 특정 16 비트를 지정할 수 있다. 전술한 바와 같이, 모든 메시지 객체에 대하여, 24 비트 어드레스의 상부 8 비트는 MBXSR의 내용에 의해서 지정되어, 모든 메시지 객체에 대한 메시지 버퍼는 동일한 64KByte 메모리 세그먼트 내부에 상주한다. 셋업시, 또한 사용자는 각각의 메시지 객체 n에 대한 메시지 버퍼의 크기를 지정해야한다. 특히, 사용자는 그 메시지 객체 n와 관련된 MnBSZ 레지스터를 프로그래밍함으로서 각각의 특정 메시지 객체 n에 대한 메시지 버퍼의 크기를 지정할 수 있다. 각각의 메시지 객체 n에 대한 메시지 버퍼의 정상 위치는 MnBSZ 레지스터에 대응하여 지정된 바와 같이 그 메시지 버퍼의 크기에 의해서 결정된다.
사용자는 그 메시지 객체 n을 가능하게 또는 불가능하게 할 수 있도록, 그 메시지 객체 n를 Tx 또는 Rx 메시지 객체로 정의하거나 또는 지정하도록, 그 메시지 객체 n에 대한 단편화된 Rx 메시지의 자동적인 하드웨어 조합(즉, 단편화된 메시지의 자동 처리)을 가능하게 또는 불가능하게 할 수 있도록, 그 메시지 객체 n에 대한 메시지-완료 인터럽트의 자동 발생을 가능하게 또는 불가능하게 할 수 있도록, 그리고 RTR(원격 전송 요청:Remote Transmit Request) 처리에 대한 그 메시지 객체 n을 가능하게 또는 불가능하게 할 수 있도록, 각각의 특정 메시지 객체 n과 관련된 MnCTL 레지스터를 구성(프로그램)할 수 있다. CANopen 및 OSEK 시스템에서, 사용자는 또한 각각의 메시지 객체 n과 관련된 MnFCR 레지스터를 초기화해야 한다.
전술한 바와 같이, 셋업시, 사용자는, 모든 메시지 객체에 적용되는 전역 변수를 비트가 제어하는, 전역 GCTL 레지스터를 구성(프로그램)해야 한다. 특히, 사용되는 하이-레벨 CAL 프로토콜을 지정하도록(예를 들면, DeviceNet, CANopen, 또는 OSEK), CANopen 프레임의 자동 승인(CANopen auto-acknowledge)이 가능하게 또 는 불가능하도록, 두개의 전송(Tx) 사전중재(pre-arbitration) 방안/수단(즉, 두번째 타이브레이커(tie-breaker)로서 사용되는 객체 번호를 가진, Tx 사전중재(pre-arbitration) 기반의 CAN ID, 또는 단지 Tx 사전중재(pre-arbitration) 기반의 객체 번호 중 하나)이 활용될 수 있게 지정하도록 사용자는 GCTL 레지스터를 구성(프로그램)할 수 있다.
수신 메시지 객체 및 수신 프로세스(Receive Message Objects and the Receive Process)
수신 동안(즉, 입력 CAN 프레임이 XA-C3 마이크로콘트롤러(20)에 의해서 수신되는 동안), CAN/CAL 모듈(77)은 그 입력 CAN 프레임을 임시(13 바이트) 버퍼에 저장할 것이며, 완전한, 에러 없는 CAN 프레임이 성공적으로 수신되었는지를 결정한다. 만약 완전한, 에러 없는 CAN 프레임이 성공적으로 수신되었는지가 결정되면, CAN/CAL 모듈(77)은 그 CAN 프레임을 접수 및 저장할지, 또는 그 CAN 프레임을 무시/폐기할 지를 결정하도록 승인 필터링(Acceptance Filtering)을 초기화한다.
승인 필터링(Acceptance Filtering)
전술한 바와 같이, 일반적으로, XA-C3 마이크로콘트롤러(20)는 사용자에게 하나의 객체씩으로, 각각의 32 독립 메시지 객체에 대한 분리된 매치(Match) ID 및 마스크 필드를 프로그램할 기능을 제공한다. XA-C3 마이크로콘트롤러(20)에 의해서 실행되는 승인 필터링(Acceptance Filtering) 프로세스는 "매치(match) 및 마스크" 기술로서 특징지워질 수 있다. 이 승인 필터링(Acceptance Filtering) 프로세스의 기본 목적은 수신된 CAN 프레임(각각의 메시지 객체에 대한 마스크 필드에 의해서 마스크되는 "비보호(don't care)" 비트를 제외)의 스크리너(Screener) ID 필드가 수신 메시지 객체가 지정되어있는 32 메시지 객체의 임의의 가능한 하나의 매치(Match) ID와 부합하는 지를 결정하는 것이다. 만약 수신된 CAN 프레임 및 하나의 메시지 객체 이상과 매치된다면, 수신된 CAN 프레임은 최소 객체 번호(n)를 가지고 메시지 객체와 매치되도록 고려해야한다.
승인 필터링(Acceptance Filtering)은 XA-C3 마이크로콘트롤러(20)에 의해서 다음과 같이 실행된다.
(1) 스크리너(Screener) ID 필드는 입력(수신된) CAN 프레임으로부터 추출된다. 이 점에 관해서, 입력 비트 스트림으로부터 조합되는 스크리너(Screener) ID 필드는 표준 및 확장 CAN 프레임과 다르다. 특히, 도 9에 도시된 바와 같이, 표준 CAN 프레임에 대한 스크리너(Screener) ID 필드는, 수신된 CAN 프레임 + IDE 비트의 첫번째 및 두번째 데이터 바이트(데이터 바이트 1 및 데이터 바이트 2)로부터 수신된 CAN 프레임 + 2x8 (16)의 헤더로부터 추출된 11 CAN ID로 구성되는, 28 비트이다. 따라서, 사용자는 표준 CAN 프레임 메시지 객체에 대한 마스크 필드(MnMSKL 레지스터)에서 Msk1 및 Msk0 비트를 설정하도록, 즉 "비보호(don't care)" 하도록 요구된다. 또한, 표준 CAN 프레임 기반의 다수의 애플리케이션에서, 데이터 바이트 1, 데이터 바이트 2 또는 둘 모두는 승인 필터링(Acceptance Filtering)에 관계하지 않는다. 그런 애플리케이션에서, 사용자는 또한 사용되지 않는 데이터 바이트를 마스크 아웃(마스크 out)해야한다. IDE 비트는 마스크가 불가능하다. 도 10에 도시되어있는 바와 같이, 확장 CAN 프레임에 대한 스크리너(Screener) ID 필드는 30 비트이며, 입력 CAN 프레임 + IDE 비트의 헤더로부터 추출된 29 CAN ID 비트를 구성한다. 다시, IDE 비트는 마스크 불가능하다.
(2) 그런 다음 수신된 CAN 프레임의 조합된 스크리너(Screener) ID 필드는 모든 현재 가능안 수신 메시지 객체에 대한 MnMIDH 및 MnMIDL 레지스터에서 지정된 대응하는 Match ID 값과 비교된다. 물론, 특정 메시지 객체에 의해서 마스크되는 스크리너(Screener) ID 필드에서의 임의의 비트들은 비교에 포함되지 않는다. 즉, 만약 특정 메시지 객체에 대한 MnMSKH 및 MnMSKL 레지스터에서 지정된 마스크 필드의 비트 위치에서 '1'이면, 그 특정 메시지 객체에 대한 Match ID 필드에서 대응하는 비트 위치는 "비보호(don't care)" 된다. 즉, 항상 수신된 CAN 프레임이 스크리너(Screener) ID의 대응하는 비트와 부합하게 한다.
(3) 만약 상기 비교 프로세스가 하나 초과의 메시지 객체와 부합한다면, 수신된 CAN 프레임은 최소 객체 번호(n)를 갖는 메시지 객체와 부합되었다고 고려될 것이다.
메시지 저장(Message Storage)
승인 필터링(Acceptance Filtering)을 통과하는 각각의 입력(수신된) CAN 프레임은, DMA 엔진(38)을 통하여, 특정 CAN 프레임이 부합되었음이 발견된 수신 메시지 객체에 대한 메시지 버퍼 내부로 자동으로 저장될 것이다. 예시적인 구현에서, 모든 메시지 객체에 대한 메시지 버퍼는 XRAM(28)에 포함된다.
메시지 조합(Message Assembly)
일반적으로, DMA 엔진(38)은 MBXSR 및 MnBLR 레지스터의 내용에 의해서 위치가 지정된 어드레스로부터 시작하여, 한번에 한 워드씩, 13-byte 프리-버퍼로부터 적당한 메시지 버퍼(예를 들면, XRAM(28) 내부)로 각각 접수된 CAN 프레임을 전송한다. DMA 엔진(38)은 하나의 바이트 또는 하나의 워드를 전송할 때마다, 그 버스가 필요하다. 이 점에 관하여, MIF 유닛(30)은 XA CPU 코어(22)로 부터의 액세스 및 DMA 엔진(38)으로부터의 액세스 사이를 중재한다. 일반적으로, 버스 중재는 "교대(alternate)" 방식으로 실행된다. DMA 버스 액세스 후에, 필요하다면, XA CPU 코어(22)는 버스 액세스가 승인된다. XA CPU 버스 액세스 후에, 필요하다면, DMA 엔진(38)은 버스 액세스가 승인된다. (그러나, XA CPU 코어(22)에 의한 버스트(burst) 액세스는 DMA 버스 액세스에 의해서 인터럽트될 수 없다.)
일단 버스 액세스가 MIF 유닛(30)에 의해서 승인되면, DMA 엔진(38)은 13 바이트 프리-버퍼로부터 적당한 메시지 버퍼 위치로 데이터를 기록한다. DMA 엔진(38)은 모든 접수된 CAN 프레임이 전송될 때까지 적당한 메시지 버퍼 위치로 메시지 데이터를 연속적으로 기록하면서, 그 버스를 계속 요청한다. DMA 엔진(38)이 적당한 메시지 버퍼 위치로 접수된 CAN 프레임을 성공적으로 전송한 후에, 메시지 버퍼의 내용은 CAN 프레임이 종속되는 메시지가 조각나지 않은(non-fragmented) (단일 프레임) 메시지 또는 단편화된 메시지인지에 의존한다. 각각의 경우가 후술된다.
조각나지 않은 메시지 조합(Non-Fragmented Message Assembly)
자동의 단편화된 메시지 핸들링이 불가능하도록 셋업된 메시지 객체에 대하여(가능하지 않은--즉, 메시지 객체가 '0'으로 설정된 데 대한 MnCTL 레지스터에서 FRAG 비트), 일단 DMA 엔진(38)이 메시지 객체와 관련된 메시지 버퍼로 접수된 CAN 프레임을 성공적으로 전송했다면, (접수된 CAN 프레임이 표준 또는 확장 CAN 프레임인지에 의존하여, 11 또는 29 비트 중 하나인) 접수된 CAN 프레임의 완전한 CAN ID는 부합하도록 간주된 메시지 객체와 관련된 MnMIDH 및 MnMIDL 레지스터 내부에 기록된다. 이렇게 함으로서, 비록 CAN ID의 한 영역이 승인 필터링을 위하여 마스크될지라도, 사용자 애플리케이션은 결국 부합되는 정확한 CAN ID를 알 수 있다. 이 메카니즘의 결과로, MnMIDH 및 MnMIDL 레지스터의 내용은 입력 CAN 프레임이 접수될 때마다 변할 수 있다. 입력 CAN 프레임이 수용될 수 있기 전에 승인 필터(Acceptance Filter)를 통과하기 때문에, 마스크 아웃된 비트들만이 변할 것이다. 따라서, 적당한 메시지 버퍼로 전송되는 접수된 입력 CAN 프레임에 응답하여 변하는 MnMIDH 및 MnMIDL 레지스터 내용의 결과로서 매치(match) 및 마스크 승인 필터링(Acceptance Filtering)을 위한 기준은 변하지 않는다.
단편화된 메시지 조합(Fragmented Message Assembly)
자동적인 단편화된 메시지 핸들링이 가능하도록 셋업된 메시지 객체에 대하여(즉, 메시지 객체가 '1'로 설정된 데 대한 MnCTL 레지스터에서 FRAG 비트로), 11/29 비트 CAN ID 필드의 마스킹은 허용되지 않는다. 상술한 바와 같이, 접수된 CAN 프레임의 CAN ID는 명백하게 알려져 있으며, 부합하도록 간주된 메시지 객체와 관련된 MnMIDH 및 MnMIDL 레지스터에 포함된다. 따라서, 부합하도록 간주된 메시지 객체와 관련된 MnMIDH 및 MnMIDL 레지스터 내부로 접수된 CAN 프레임의 CAN ID를 기록할 필요는 없다.
단편화된 메시지의 후속 CAN 프레임이 수신되기 때문에, 새로운 데이터 바이트는 이미 수신되어 저장된 데이터 바이트의 말단부에 첨부된다. 이런 처리는 완전한 멀티프레임 메시지가 수신되어 적당한 메시지 버퍼에 저장될 때까지 계속된다.
CAL 프로토콜 DeviceNet, CANopen, 및 OSEK 에서, 만약 메시지 객체가 허가된(enabled) 수신 메시지 객체이고, 관련된 MnCTL 레지스터가 '1'로 설정된 FRAG 비트를 가진다면(즉, 단편화된 메시지의 자동 조합이 특정 수신 메시지 객체에 대하여 가능함), 그 특정 수신 메시지 객체와 부합하는 각각의 수신된 CAN 프레임의 첫번째 데이터 바이트(Data Byte 1)는 단지 조각 정보를 부호화하도록 사용될 것이고, 따라서, 그 특정 수신 메시지 객체에 대한 메시지 버퍼에 저장되지 않을 것이다. 따라서, 상기 "FRAG-enabled" 수신 메시지 객체에 대한 메시지 저장은 두번째 데이터 바이트(Data Byte 2)로 시작할 것이고 전술한 방법으로 완전한 멀티프레임 메시지가 수신되어 적당한 메시지 버퍼에 저장될 때까지 진행할 것이다. 상기 메시지 저장 포맷은 도 11에 도시되어 있다. 메시지 핸들러 하드웨어는 이 처리를 돕기 위해서 각각의 CAN 프레임의 Data Byte 1에 포함된 조각 정보를 사용할 것이다.
CAN 프로토콜에서, 만약 메시지 객체가 허가된(enabled) 수신 메시지 객체이고, 관련된 MnCTL 레지스터가 '1'로 설정된 FRAG 비트를 가진다면(즉, 단편화된 메시지의 자동 조합이 그 특정 수신 메시지 객체에 대하여 가능하다), 그 특정 수신 메시지 객체에 부합하는 CAN 프레임은 도 12에 도시되어 있는 포맷을 사용하여 그 특정 수신 메시지 객체에 대한 메시지 버퍼에 연속적으로 저장될 것이다.
메시지 객체 n과 관련된 메시지 버퍼 내부로 메시지 데이터를 기록하는 동안, (그 메시지 객체 n과 관련된 MnBLR 레지스터에 지정된 바와 같이) DMA 엔진(38)은 그 메시지 버퍼의 기본 어드레스로부터 자동으로 출발하는 어드레스를 발생시킬 것이다. 그 메시지 버터의 크기는 그 메시지 객체 n과 관련된 MnBSZ 레지스터에서 지정되기 때문에, DMA 엔진(38)은 그 메시지 버퍼의 정상 위치에 도달했을 때를 결정할 수 있다. 만약 DMA 엔진(38)이 그 메시지 버퍼의 정상 위치에 도달했는지를 결정한다면, 그리고 그 메시지 버퍼에 기록되는 메시지가 아직 완전히 전송되지 않았는지가 결정된다면, DMA 엔진(38)은 다시 그 메시지 버퍼의 기본 어드레스로부터 출발하는 어드레스를 발생시킴으로서 보호할 것이다. 이것이 발생하기 전에 경고 인터럽트가 발생하여 사용자 애플리케이션은 데이터 손실을 방지할 수 있는 경우도 있다.
메시지 핸들러는 DMA 엔진(38)에 의해서 기록되고 있는 메시지 버퍼의 현재 어드레스 위치의 트랙, 및 상기 지정된 메시지 버퍼에서 조합되기 때문에 각각의 CAL 메시지의 바이트 수를 유지한다. CAL 메시지에 대한 "메시지의 끝(End of Message)"이 디코드된 후, 메시지 핸들러는 DMA 엔진(38)을 통하여 상기 지정된 메시지 버퍼 내부로 완전한 CAL 메시지 및 바이트 카운트(Byte Count)를 전송하는 것을 종료하고, 그런 다음 완전한 메시지가 수신되었음을 나타내는 XA CPU 코어(22)로 인터럽트를 발생한다.
각각의 CAN 프레임의 데이터 바이트 1이 조각 정보를 포함하기 때문에, 그 CAN 프레임에 대한 지정된 메시지 버퍼에 결코 저장되지 않을 것이다. 따라서, 각각의 CAN 프레임의 7개의 데이터 바이트까지 저장될 것이다. 전체 메시지가 저장된 후, 지정된 메시지 버퍼는 저장된 정보의 데이터 바이트의 총 개수를 포함하는 위치 00에 수신된 모든 실제 정보의 데이터 바이트(조각 정보 바이트는 제외)에 바이트 카운트를 더하여 포함할 것이다.
단편화된 OSEK 및 CANopen 메시지의 자동적 하드웨어 조합을 호출할 때 뒤따라야하는 일부 특정 사용사 셋업/프로그래밍 프로시저가 있다. 모든 특색들이, 모든 목적을 위하여 여기에 전부 포함되어 있는 특허명세서, 계류중인 특허 출원 제 60/154,022호의 일부인 XA-C3 CAN 전송 레이어 제어기(Transport Layer Controller) 사용자 매뉴얼에서 발견될 수 있다.
전송 메시지 객체 및 전송 프로세스(Transmit Message Objects and the Transmit Process)
메시지를 전송하기 위해서, XA 애플리케이션 프로그램은 먼저 완전한 메시지를 조합하여 적당한 전송 메시지 객체 n을 위한 지정된 메시지 버퍼에 그것을 저장하여야 한다. 그 메시지 헤더(CAN ID 및 프레임 정보)는 그 전송 메시지 객체 n과 관련된 MnMIDH, MnMIDL, 및 MnMSKH 레지스터 내부에 기록되어야한다. 전송을 초기화하기 위해서, CANopen에서 자동-승인(Auto-Acknowledge) 프레임을 전송할 때를 제외하고, 그 전송 메시지 객체 n과 관련된 MnCTL 레지스터의 객체 가능 비트(OBJ_EN bit)는 설정되어야 한다. 이에 따라 이 전송 준비된(ready-to-transmit) 메시지가 사전중재(pre-arbitration) 프로세스에 참여할 수 있게 된다. 이와 관련하여, 만약 하나 이상의 메시지가 전송될 준비가 되어있다면(즉, 하나 이상의 전송 메시지 객체가 가능하다면), Tx 사전중재(Pre-Arbitration) 프로세스가 허가된(enabled) 전송 메시지 객체가 전송을 위해 선택될 것인지를 결정하도록 실행될 것이다. GCTL 레지스터에서 Pre_Arb 비트를 셋팅 또는 제거에 의한 것 중에서 사용자가 선택할 수 있는 2 개의 Tx 사전중재(Pre-Arbitration) 수단이 있다.
완료된 메시지가 성공적으로 전송된 메시지 핸들러에 의해서 정해진 결정에 응답하여 Tx 메시지 완료 인터럽트가 발생된 다음, Tx 사전중재(Pre-Arbitration) 프로세스는 "리셋(reset)"이고, 다시 시작한다. 또한, 만약 "성공(winning)" 전송 메시지 객체가 CAN 버스에서 결과적으로 중재를 상실한다면, Tx 사전중재 프로세스는 리셋되고 다시 시작한다. 만약 OBJ_EN 비트가 설정된 전송 메시지 객체가 단지 하나일 뿐이라면, 선택되는 Tx 사전중재 수단을 고려하지 않고 선택될 것이다.
일단 허가된(enabled) 전송 메시지 객체가 전송용으로 선택되었다면, DMA 엔진(38)은 그 전송 메시지 객체와 관련된 메시지 버퍼로부터 전송 메시지 데이터 검색을 시작할 것이며, 검색된 전송 메시지 데이터를 전송용 CCB(42)로 전송을 시작 할 것이다. 동일한 DMA 엔진 및 어드레스 포인터 로직이 전송 메시지의 메시지 검색용으로 사용되는데, 전술한 바와 같이, 수신 메시지의 메시지 저장용으로 사용된 것과 같다. 또한, 메시지 버퍼 위치 및 크기 정보는, 전술한 바와 같이, 동일한 방법으로 지정된다. 요약해서, 전송 메시지가 검색될 때, 그것은 DMA 엔진(38)에 의해서 CCB(42)로 연속적으로 기록된다. 이 처리 동안, DMA 엔진(38)은 버스 요청을 유지할 것이다. 버스 액세스가 승인되면, DMA 엔진(38)은 어드레스 포인터 로직에 의해서 지정된 현재의 메시지 버퍼에서의 위치로부터 전송 메시지 데이터를 연속적으로 판독할 것이다. 그리고, DMA 엔진(38)은 검색된 전송 메시지 데이터를 CCB(42)로 연속적으로 기록할 것이다. 메시지를 전송용으로 준비할 동안, 전송(Tx) 로직은 적당한 MnMIDH, MnMIDL, 및 MnMSKH 레지스터로부터 직접 이 정보를 검색할 것이기 때문에, 사용자 애플리케이션은 지정된 메시지 버퍼 내부에 기록된 전송 메시지 데이터에 CAN ID 및 프레임 정보를 포함해서는 안 된다.
XA-C3 마이크로콘트롤러는 하드웨어에서 단편화된 메시지의 전송을 처리하지 않는다. 단편화된 메시지의 각각의 CAN 프레임을 적당한 메시지 버퍼로 기록하고, 전송을 위해 관련된 전송 메시지 객체를 가능하게 하고, 그리고 그 단편화된 메시지의 다음 CAN 프레임을 적당한 메시지 버퍼로 기록하기 전에 완료를 대기하는 것은 사용자의 책임이다. 따라서, 사용자 애플리케이션은 모든 멀티프레임, 단편화된 전송 메시지가 성공적으로 전송될 때까지 한번에 하나씩 복합 CAN 프레임을 전송해야한다. 그러나, 객체 개수가 계속 증가하고, 그리고 CAN ID가 동일하게 구성된 복합 전송 메시지 객체를 사용함으로서, 단편화된 전송 메시지의 일부 CAN 프레임은 대기한 다음 허가되고, 그런 다음 순서대로 전송된다.
메시지를 전송할 때 데이터 오염을 방지하기 위한 3 가지 가능한 방법이 있다.
1. 만약 Tx 메시지 완료 인터럽트가 전송 메시지용으로 허가된다면, 사용자 애플리케이션은 다음 전송 메시지를 그 Tx 메시지 완료 인터럽트의 수신에 대한 지정된 전송 메시지 버퍼에 기록할 것이다. 일단 그 인터럽트 플래그가 설정되면, 대기중인 전송 메시지는 이미 전송된 것으로 알려진다.
2. 관련된 전송 메시지 버퍼에 기록하기 전에 관련된 전송 메시지 객체의 MnCTL 레지스터의 OBJ_EN 비트가 제거될 때까지 대기한다. 이것은 관련된 전송 메시지 객체의 MnCTL 레지스터의 OBJ_EN 비트를 폴링함으로서 실현된다.
3. 그 전송 메시지 객체가 여전히 Tx 사전중재에 있을 동안 관련된 전송 메시지 객체의 MnCTL 레지스터의 OBJ_EN 비트를 제거한다.
위의 최초 두 가지 경우에, 다음 전송 메시지가 전송되기 전에 대기중인 전송 메시지는 완전히 전송될 것이다. 위의 세번째 경우, 전송 메시지는 전송되지 않을 것이다. 대신에, 새로운 내용의 전송 메시지가 Tx 사전중재를 시작할 것이다.
전송되고 있는 메시지의 오염을 방지하는 추가적인 메카니즘이 있다. 특히, 만약 전송이 전송 메시지 객체를 위해 진행중이라면, 사용자는 그 특정 전송 메시지 객체와 관련된 MnCTL 레지스터에 OBJ_EN 비트를 제거할 수 없다.
CAN/CAL 관련 인터럽트(CAN/CAL RELATED INTERRUPTS)
XA-C3 마이크로콘트롤러(20)의 CAN/CAL 모듈(77)은 다음의 5가지 다른 이벤트 인터럽트를 XA CPU 코어(22)로 발생시키도록 현재 구성되어있다.
1. Rx 메시지 완료(Rx Message Complete)
2. Tx 메시지 완료(Tx Message Complete)
3. Rx 버퍼 풀(Rx Buffer Full)
4. 메시지 오류(Message Error)
5. 프레임 오류(Frame Error)
단일-프레임 메시지에 대하여, "메시지 완료(Message Complete)" 조건은 단일 프레임의 말단에서 발생한다. 멀티프레임 (단편화된) 메시지에 대하여, "메시지 완료(Message Complete)" 조건은 마지막 프레임이 수신되고 저장된 후에 발생한다. XA-C3 마이크로콘트롤러(20) 하드웨어는 전송 메시지에 대한 조각을 인식하거나 처리하지 않기 때문에, Tx 메시지 완료(Message Complete) 조건은 항상 각각의 성공적으로 전송된 프레임의 말단에서 발생될 것이다.
전술한 바와 같이, 메시지 완료(Message Complete) 조건이 인터럽트를 발생시켜야 하는지, 또는 단지 인터럽트를 발생시키지 않고 (폴링을 위해서) "메시지 완료 상태 플래그(Message Complete Status Flag)"를 설정해야 하는지를 나타내는 각각의 메시지 객체와 관련된 제어 비트가 있다. 이것은 각각의 메시지 객체 n과 관련된 MnCTL 레지스터에서의 INT_EN 비트이다.
2개의 16 비트 MMR(40), MCPLH 및 MCPLL이 있으며, 모든 32 메시지 객체에 대한 메시지 완료 상태 플래그를 포함한다. 메시지 완료(Tx 또는 Rx) 조건이 특정 메시지 객체에 대하여 감지되면, MCPLH 또는 MCPLL 레지스터에서 대응하는 비트가 설정될 것이다. 이것은 INT_EN 비트가 (관련된 MnCTL 레지스터에서) 그 특정 메시지 객체에 대해서 설정되는지, 또는 메시지 완료 상태 플래그가 이미 임의의 다른 메시지 객체용으로 설정되었는지에 무관하게 발생한다.
이들 32 메시지 완료 상태 플래그 뿐만 아니라, 각각 MMR(40) 지정된 CANINTFLG의 비트 [1] 및 [0]에 대응하는, Tx 메시지 완료 인터럽트 플래그 및 Rx 메시지 완료 인터럽트 플래그가 있으며, XA CPU 코어(22)로 실제 이벤트 인터럽트 요청을 발생시킬 것이다. 메시지 끝(End-of-Message) 조건이 발생할 때, 메시지 완료 상태 플래그가 설정되는 동시에, 만약 관련된 메시지 객체에 대해서 INT_EN = 1 이면, 그리고 인터럽트가 이미 설정 및 대기중이지 않으면, 적당한 Tx 또는 Rx 메시지 완료 인터럽트 플립-플롭(flip-flop)이 설정된다.
인터럽트의 발생 및 관련된 레지스터에 관한 보다 상세한 것은 XA-C3 기능 사양(Functonal Specification) 및 XA-C3 CAN 전송 레이어 제어기 사용자 매뉴얼에서 발견될 수 있으며, 둘 모두 모든 목적으로 여기에 완전히 포함된 특허명세서인, 계류중인 가특허출원 제 60/154,022호의 일부이다.
본 발명(THE PRESENT INVENTION)
비록 CANopen 프로토콜이 멀티-프레임인, 단편화된 메시지를 지원할지라도, 일부 CAL 프로토콜, 특히 CANopen 프로토콜은 수신 CAN 장치에 의해서 수신되는 각각의 CANopen 프레임에 응답하여 수신 CAN 장치에 의해서 전송되도록 승인 신호 메시지를 요구한다. 요구된 승인 신호를 전송가능하게 하기 위해서, 단편화된, 멀티-프레임 CANopen 메시지의 각각의 CANopen 프레임의 수신 다음에 (이후 간단하게 "프로세서 코어"로 지칭되는)XA-C3 CPU 코어(22)의 인터럽팅은 XA-C3 마이크로 제어기(20)에 의해서 제공되는 멀티-프레임인, 단편화된 메시지의 자동적인 하드웨어 조합으로부터 적용되는 주요 장점을 심각하게 손상시킬 것이다. 따라서, 본 발명에 따라서, XA-C3 마이크로 제어기(20)는 프로세서 코어(22)를 인터럽팅하지 않고 다이 비용을 크게 증가시키지 않고, CANopen 프로토콜에서 요구된 승인 신호를 하드웨어가 자동으로 발생시킬 수 있게 한다. 이런 소위 "자동 승인 신호(automaitc(또는 "auto-") acknowledgment)" 특성은 단지 단편화된 메시지 및, 그런 승인 신호가 발생되도록 요구되는, CANopen과 같은, 하이-레벨 CAN 프로토콜에 유리하다. 단일 CAN 프레임 내부에 완전히 포함되는 메시지는 프로세서 코어(22)로 메시지의 끝(End-of-Message) 인터럽트를 어쨌든 발생시킬 것이며, 그래서 하드웨어에 의해서 승인 신호를 자동으로 발생시키는데에 추가되는 가치 및 이득은 없다.
개략적으로, 자동 승인 신호 특징을 유효하게 하기 위한 기본 계획은 각각의 수신 메시지 객체(Receive Message Object) 승인 신호 요구에 대응하는 제공된 "응답(Response)" 메시지 객체를 소프트웨어(즉, 프로세서 코어(22)를 실행하는 애플리케이션)에 의해서 설정되는 것을 포함한다. 각각의 그런 응답 메시지 객체는 전송 메시지 객체로서 지정되어야 하며, 관련된 수신 메시지 객체의 객체 번호에 따라서 즉시 객체 번호가 할당되어야한다. 예를 들면, 만약 메시지 객체 n = 13이 승인 신호가 발생되도록 요구하는 단편화된 메시지를 위한 수신 메시지 객체이면, 메시지 객체 n = 13을 위한 필수 응답 코드를 포함하는 전송 메시지 객체로서 소프트웨어에 의해서 메시지 객체 n = 14가 설정된다.
특히, 자동 승인 신호 특징은 다음 방법으로 XA-C3 마이크로 제어기(20)에서 구현된다. GCTL(전역 제어기:Global Control) 레지스터에서 지정된 CAL 프로토콜이 ( [Prtcl] 및 [Prtcl0] 비트가 00로 설정에 의해) CANopen이라고 가정하면, 자동 승인 신호 특징은 사용자(애플리케이션)가 GCTL 레지스터에 있는 Auto_Ack 비트를 '1'로 설정함으로서 가능하다.
사용가능한 수신 메시지 객체 n이 단편화된 메시지의 자동적인 하드웨어 조합이 가능하도록 설정되었다고 가정한다 (즉, 수신 메시지 객체 n과 관련된 MnCTL 레지스터의 FRAG 비트를 '1'로 설정). 메시지 객체 n+1은 그 메시지 객체 n+1과 관련된 Mn+1CTL 레지스터의 OBJ_EN 비트를 '1'로 설정하지 않음으로서, 즉, OBJ_EN 비트가 '0'=disabled로 소거됨으로서 설정된다. 사용자(소프트웨어)는 CALopen 프로토콜 사양에 의해서 정의된 바와 같이, 메시지 객체 n+1과 관련된 메시 버퍼의 바이트 오프셋 0에 적당한 "승인 신호 바이트(Acknowledgment Byte)"를 저장해야 한다. 후술되는 바와 같이, CAN/CAL 모듈(77)은 입력 CANopen 프레임으로부터 출력 자동 승인 신호 프레임의 토글 비트 위치[4] 내부로 토글 비트 값을 자동으로 삽입하기 때문에, 비트 위치[4]는 "염려하지 않아도 된다(don't care)".
자동 승인 신호 특징이 사용가능하게 되었다고 가정하고, 입력 CANopen 프레임이 성공적으로 수신되고, 승인 필터링(Acceptance Filtering) 처리를 통과하고, 사용가능하게 된 수신 메시지 객체 n과 부합한다고 가정한다. 상기 설정으로, CAN/CAL 모듈(77)에 의해서, 하드웨어에서, 후속 단계들이 자동으로 구현된다.
특히, CAN/CAL 모듈(77)은 매칭 메시지 객체와 관련된 Mn+1CTL 레지스터에서 OBJ_EN 및 Tx 비트를 '1'로 자동 설정하여, 메시지 객체를 전송 메시지 객체로서 사용가능하게 한다. 전술한 바와 같이, 이것은 그 전송 메시지 객체 n+1을 활성화시켜, 전송 사전중재를 처리하도록 한다. 그 전송 메시지 객체 n+1과 관련된 메시지 버퍼에 저장된 승인 신호 프레임은 우선 순위가 허용되는 순간 자동으로 검색되어 전송된다. 전술한 바와 같이, CANopen 프로토콜은 입력 CANopen 프레임의 지시자 필드에 포함된, 용어로 "토글 비트(toggle bit)"인, 제어 비트의 상태가 승인 신호 프레임에 반영되도록 지정한다. 이 점에 관하여, XA-C3 마이크로 제어기(22)의 CAN/CAL 모듈(77)은 전송(Tx)용으로 사용가능하게 되기 전에 전송 메시지 객체 n+1과 관련된 메시지 버퍼에 저장된 승인 신호 프레임의 대응하는 비트 위치[4] 내부로 입력 CANopen 프레임의 토글 비트를 자동으로 복사하는 로직을 포함한다.
비록 본 발명이 특정의 바람직한 실시예/구현의 내용에서 상세하게 기술되어 있지만, 당업자라면, 첨부한 특허 청구 범위에서 정의된 바와 같이, 다수의 변형, 수정, 및/또는 대안의 실시예/구현이 여전히 본발명의 정신 및 범주에 속하는 것을 명백하게 이해할 것이다.

Claims (28)

  1. 프로세서 코어(22)를 포함하는 CAN 장치(20)에서, 승인 신호 메시지를 자동으로 전송하기 위한 방법으로서,
    멀티-프레임인 단편화된 메시지의 프레임을 수신하는 단계와,
    상기 수신 단계에 응답하여, 상기 프로세서 코어(22)의 어떤 개입도 요구하지 않으면서 승인 신호 메시지를 자동으로 전송하는 단계와,
    상기 수신 단계 전에, 수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하는 단계와,
    상기 수신 단계 전에, 상기 수신 메시지 객체를 사용가능하게 하는 단계와,
    상기 수신 단계 전에 상기 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하는 단계와,
    상기 수신 단계 전에, 상기 전송 메시지 객체와 관련된 응답 메시지 버퍼(28)에 상기 승인 신호 메시지를 저장하는 단계를 포함하는
    승인 신호 메시지 자동 전송 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 CAN 장치(20)는 CAN/CAL 모듈(77)을 포함하는 상기 프로세서 코어(22) 외부의 하드웨어를 더 포함하고, 상기 CAN/CAL 모듈(77)은 DMA 엔진(38)과, MMR(Memory mapped registors)(4) 및 2.0 CAN/DLL 코어(42)를 포함하며, 상기 전송된 메시지 객체를 사용 가능하게 하는 승인 신호 메시지 자동 전송 방법.
  4. 제 1 항에 있어서,
    상기 CAN 장치(20)는 상기 승인 신호 메시지의 전송을 요구하는 CAL 프로토콜에서 실행가능하게 되는 승인 신호 메시지 자동 전송 방법.
  5. 제 4 항에 있어서,
    상기 CAL 프로토콜은 CANopen 프로토콜을 포함하는 승인 신호 메시지 자동 전송 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 승인 신호 메시지는 관리 CAL 프로토콜에 의해서 정의된 승인 신호 바이트를 포함하는 승인 신호 메시지 자동 전송 방법.
  8. 제 7 항에 있어서,
    상기 승인 신호 바이트는 상기 프로세서 코어(22)상에서 실행하는 애플리케이션에 의해서 상기 응답 메시지 버퍼(28)에 저장되는 승인 신호 메시지 자동 전송 방법.
  9. 제 7 항에 있어서,
    상기 승인 신호 바이트는 객체 셋업 프로시저 동안 사용자에 의해서 상기 응답 메시지 버퍼(28)에 저장되는 승인 신호 메시지 자동 전송 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 제 1 항에 있어서,
    상기 수신된 프레임이 사용가능한 수신 메시지 객체와 부합하는 지를 결정하도록 상기 수신된 프레임을 승인(acceptance) 필터링하는 단계와,
    상기 전송 메시지 객체를 사용가능하게 하는 단계를 더 포함하고,
    상기 단계들은 상기 수신 및 자동 전송 단계 사이에서 실행되는 방법.
  18. 프로세서 코어(22)를 포함하는 CAN 장치(20)에서, 승인 신호 메시지를 자동으로 전송하기 위한 방법에 있어서,
    수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하는 단계와,
    상기 수신 메시지 객체를 사용가능하게 하는 단계와,
    상기 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하는 단계와,
    상기 전송 메시지 객체와 관련된 응답 메시지 버퍼(28)에 상기 승인 신호 메시지를 저장하는 단계와,
    멀티-프레임인 단편화된 메시지의 프레임을 수신하는 단계와,
    상기 수신된 프레임이 사용가능한 수신 메시지 객체와 부합하는 지를 결정하도록 상기 수신된 프레임을 승인(acceptance) 필터링하는 단계와,
    상기 전송 메시지 객체를 사용가능하게 하는 단계와,
    상기 프로세서 코어(22)의 어떤 개입도 없이 상기 승인 신호 메시지를 자동으로 전송하는 단계
    를 포함하는 방법.
  19. 제 18 항에 있어서,
    상기 승인 신호 메시지는 관리 CAL 프로토콜에 의해서 정의된 승인 신호 바이트를 포함하는 방법.
  20. 제 7 항 또는 제 19 항에 있어서,
    상기 관리 CAL 프로토콜은 CANopen 프로토콜인 방법.
  21. 제 7 항 또는 제 19 항에 있어서,
    상기 자동 전송 단계 이전에 상기 수신된 프레임에 포함된 토글 비트를 상기 승인 신호 바이트의 대응하는 비트 위치로 복사하는 단계를 더 포함하는 방법.
  22. 제 1 항 또는 제 18 항에 있어서,
    상기 자동 전송 단계는 상기 프로세서 코어(22) 외부의 하드웨어에 의해서 실행되는 방법.
  23. 제 22 항에 있어서,
    상기 프로세서 코어(22) 외부의 하드웨어는 CAN/CAL 모듈(77)을 포함하고, 상기 CAN/CAL 모듈(77)은 DMA 엔진(38)과, MMR(Memory mapped registors)(4) 및 2.0 CAN/DLL 코어(42)를 포함하며, 상기 전송된 메시지 객체를 사용 가능하게 하는
    방법.
  24. 제 1 항 또는 제 18 항에 있어서,
    상기 CAN 장치(20)는 CAN 마이크로 제어기를 포함하는 방법.
  25. 프로세서 코어(22)를 포함하며, 승인 신호 메시지를 자동으로 전송하기 위한 CAN 장치(20)로서,
    멀티-프레임인 단편화된 메시지의 프레임을 수신하는 수단과,
    상기 프레임 수신에 응답하여, 상기 프로세서 코어(22)의 어떤 개입도 요구하지 않으면서 승인 신호 메시지를 자동으로 전송하는 수단과,
    수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하는 수단과,
    상기 수신 메시지 객체를 사용가능하게 하는 수단과,
    상기 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하는 수단과,
    상기 전송 메시지 객체와 관련된 응답 메시지 버퍼(28)에 상기 승인 신호 메시지를 저장하는 수단을 포함하는
    CAN 장치(20).
  26. 삭제
  27. 프로세서 코어(22)를 포함하며, 승인 신호 메시지를 자동으로 전송하기 위한 CAN 장치(20)로서,
    수신 메시지 객체로서 객체 번호 n을 갖는 첫번째 메시지 객체를 셋업하는 수단과,
    상기 수신 메시지 객체를 사용가능하게 하는 수단과,
    상기 수신 메시지 객체에 대응하는 전송 메시지 객체로서 객체 번호 n+1을 갖는 두번째 메시지 객체를 셋업하는 수단과,
    상기 전송 메시지 객체와 관련된 응답 메시지 버퍼(28)에 상기 승인 신호 메시지를 저장하는 수단과,
    멀티-프레임인 단편화된 메시지의 프레임을 수신하는 수단과,
    상기 수신된 프레임이 사용가능한 수신 메시지 객체와 부합하는 지를 결정하도록 상기 수신된 프레임을 승인(acceptance) 필터링하는 수단과,
    상기 전송 메시지 객체를 사용가능하게 하는 수단과,
    상기 프로세서 코어(22)의 어떤 개입도 없이 상기 승인 신호 메시지를 자동으로 전송하는 수단을 포함하는
    CAN 장치(20).
  28. 제 25항 또는 제 27 항에 있어서,
    상기 CAN 장치(20)는 CAN 마이크로 제어기를 포함하는 CAN 장치(20).
KR1020017006071A 1999-09-15 2000-09-06 Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법 KR100712242B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15402299P 1999-09-15 1999-09-15
US60/154,022 1999-09-15
US09/474,904 US6721799B1 (en) 1999-09-15 1999-12-30 Method for automatically transmitting an acknowledge frame in canopen and other can application layer protocols and a can microcontroller that implements this method
US09/474,904 1999-12-30

Publications (2)

Publication Number Publication Date
KR20010080449A KR20010080449A (ko) 2001-08-22
KR100712242B1 true KR100712242B1 (ko) 2007-04-27

Family

ID=26851070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017006071A KR100712242B1 (ko) 1999-09-15 2000-09-06 Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법

Country Status (6)

Country Link
US (1) US6721799B1 (ko)
EP (1) EP1129548B1 (ko)
JP (1) JP4722357B2 (ko)
KR (1) KR100712242B1 (ko)
DE (1) DE60028176T2 (ko)
WO (1) WO2001020854A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010609B1 (en) * 2000-12-21 2006-03-07 Borland Software Corporation System and method for adding transport protocols in distributed middleware applications
DE50107611D1 (de) 2001-04-07 2005-11-10 Vector Informatik Gmbh Verfahren und Generierungsmodul zur Ermittlung von Filtermasken zur Relevanzprüfung von Kennzeichnern
US7747764B2 (en) * 2001-04-20 2010-06-29 Rockwell Automation Technologies, Inc. Web access for non-TCP/IP control devices of an industrial control system
US7139839B2 (en) * 2001-11-26 2006-11-21 Schneider Automation Inc. Method and apparatus for assigning a network node address
US7230929B2 (en) * 2002-07-22 2007-06-12 Qlogic, Corporation Method and system for dynamically assigning domain identification in a multi-module fibre channel switch
US7154886B2 (en) * 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
JP2004086523A (ja) 2002-08-27 2004-03-18 Suzuki Motor Corp 車両用警戒情報提供装置
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
FR2847751B1 (fr) * 2002-11-22 2005-04-01 Peugeot Citroen Automobiles Sa Systeme de transmission securisee d'informations entre des stations raccordees par un reseau de transmission d'informations embarque a bord d'un vehicule automobile
US20050108682A1 (en) * 2003-02-26 2005-05-19 Bea Systems, Inc. Systems for type-independent source code editing
US6961784B1 (en) * 2003-04-17 2005-11-01 Qlogic Corporation Method and system for processing non-data frames in host bus adapters
US7646767B2 (en) * 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7380030B2 (en) * 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7164425B2 (en) * 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7392437B2 (en) 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
DE102006016331A1 (de) * 2006-04-06 2007-10-11 Siemens Ag Medizinisches Gesamtsystem
US20080005385A1 (en) * 2006-06-30 2008-01-03 Seagate Technology Llc Passive mirroring through concurrent transfer of data to multiple target devices
US8032673B2 (en) * 2009-12-14 2011-10-04 Apple Inc. Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements
CN103841212B (zh) * 2014-03-25 2017-01-11 武汉理工大学 一种面向汽车can网络带宽消耗优化的车辆信号封装方法
CN103841213B (zh) * 2014-03-25 2017-01-11 武汉理工大学 一种面向汽车can网络报文数优化的车辆信号封装方法
KR101593840B1 (ko) * 2014-12-10 2016-02-15 현대오트론 주식회사 캔 프레임 송신 방법 및 장치
KR101676353B1 (ko) 2015-11-06 2016-11-15 전자부품연구원 이종 네트워크 상의 메시지 제어 방법 및 장치
EP4221104A1 (en) 2022-01-28 2023-08-02 Nxp B.V. Network interface apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574848A (en) * 1993-08-24 1996-11-12 National Semiconductor Corporation Can interface selecting one of two distinct fault recovery method after counting a predetermined number of recessive bits or good can frames

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI87290C (fi) * 1991-01-17 1992-12-10 Kone Oy Foerfarande foer bestaemning av meddelandeidentifierare i ett foer hissar avsett datanaet
DE4129412C2 (de) * 1991-09-04 1994-10-27 Nec Electronics Germany Verfahren zur Datenübertragung in einer Datenverarbeitungsanlage
JP3300016B2 (ja) * 1992-03-30 2002-07-08 キヤノン株式会社 通信インターフェイス及び記録装置及び通信制御方法
US5323385A (en) * 1993-01-27 1994-06-21 Thermo King Corporation Serial bus communication method in a refrigeration system
US5675830A (en) * 1994-02-28 1997-10-07 Eaton Corporation Addressing scheme for control network having remote address request device
US5854454A (en) * 1996-09-16 1998-12-29 Otis Elevator Company Message routing in control area network (CAN) protocol
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
US6122713A (en) * 1998-06-01 2000-09-19 National Instruments Corporation Dual port shared memory system including semaphores for high priority and low priority requestors
US6363083B1 (en) * 1999-03-12 2002-03-26 Otis Elevator Company Bilevel node identifiers in control area network (CAN) protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574848A (en) * 1993-08-24 1996-11-12 National Semiconductor Corporation Can interface selecting one of two distinct fault recovery method after counting a predetermined number of recessive bits or good can frames

Also Published As

Publication number Publication date
JP4722357B2 (ja) 2011-07-13
JP2003509961A (ja) 2003-03-11
WO2001020854A1 (en) 2001-03-22
US6721799B1 (en) 2004-04-13
EP1129548A1 (en) 2001-09-05
KR20010080449A (ko) 2001-08-22
EP1129548B1 (en) 2006-05-24
DE60028176T2 (de) 2007-05-03
DE60028176D1 (de) 2006-06-29

Similar Documents

Publication Publication Date Title
KR100712242B1 (ko) Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법
KR100741179B1 (ko) 메시지 데이터의 무결성 보장 방법 및 can 장치
US7443885B2 (en) CAN device featuring advanced can filtering and message acceptance
US6647440B1 (en) End-of-message handling and interrupt generation in a CAN module providing hardware assembly of multi-frame CAN messages
US6732255B1 (en) Can microcontroller that permits concurrent access to different segments of a common memory by both the processor core and the DMA engine thereof
KR100713956B1 (ko) Can 마이크로콘트롤러에서 전력을 절약하는 방법 및 상기 방법을 구현하는 can 마이크로콘트롤러
US6510479B1 (en) Transmit pre-arbitration scheme for a can device and a can device that implements this scheme
US8650341B2 (en) Method for CAN concatenating CAN data payloads
KR100697396B1 (ko) 입력 can 프레임을 승인 필터링하기 위한 방법 및 can 장치
US4939636A (en) Memory management unit
JPH0865334A (ja) マルチメディア通信装置及び方法
US6604156B1 (en) Message buffer full handling in a CAN device that employs reconfigurable message buffers
US6615302B1 (en) Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a CAN device that employs reconfigurable message buffers
US6715001B1 (en) Can microcontroller that employs reconfigurable message buffers
US6493287B1 (en) Can microcontroller that utilizes a dedicated RAM memory space to store message-object configuration information
JP2002521942A (ja) メモリ装置およびメモリ装置の作動方法
EP1085719A2 (en) Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a can device that employs reconfigurable message buffers

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
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee