KR20230162622A - 통신 장치, 통신 시스템 및 통신 방법 - Google Patents

통신 장치, 통신 시스템 및 통신 방법 Download PDF

Info

Publication number
KR20230162622A
KR20230162622A KR1020237033268A KR20237033268A KR20230162622A KR 20230162622 A KR20230162622 A KR 20230162622A KR 1020237033268 A KR1020237033268 A KR 1020237033268A KR 20237033268 A KR20237033268 A KR 20237033268A KR 20230162622 A KR20230162622 A KR 20230162622A
Authority
KR
South Korea
Prior art keywords
spi
communication
master
data
data blocks
Prior art date
Application number
KR1020237033268A
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 소니 세미컨덕터 솔루션즈 가부시키가이샤
Publication of KR20230162622A publication Critical patent/KR20230162622A/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
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

[과제] 간이한 하드웨어 구성으로, 다른 통신 방식을 조합시켜서 시리얼 통신을 행한다.
[해결 수단] 통신 장치는 마스터로부터 클록에 동기하여 송신된 SPI에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 통신 상대 장치에 송신하는 통신부와, 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 마스터로부터의 소정수의 데이터 블록에 응답하여 통신 상대 장치로부터 송신되어 기억된 데이터 블록을 마스터에 송신하기 위해 출력하는 기억부를 구비한다.

Description

통신 장치, 통신 시스템 및 통신 방법
본 개시는 통신 장치, 통신 시스템 및 통신 방법에 관한 것이다.
Master용의 SerDes와 Slave용의 SerDes의 사이에서, 고속 시리얼 통신을 행하는 기술이 제안되어 있다(특허문헌 1 참조).
2개의 SerDes의 사이에서 시리얼 통신을 행하는 경우, 예를 들면, FDD(Frequency Division Duplexing) 방식이나 TDD(Time Division Duplex) 방식이 이용된다. 일방의 SerDes로부터 타방의 SerDes에 송신되는 데이터량과, 타방의 SerDes로부터 일방의 SerDes에 송신되는 데이터량에 큰 차이가 있는 경우, TDD 방식을 채용하여, 상행 방향과 하행 방향에서 데이터의 전송 용량에 차이를 주는 것이 생각된다. TDD 방식은 상행 방향과 하행 방향의 통신을 동시에 행할 수 없고, 편방향의 통신밖에 행할 수 없는 반(半)2중 통신 방식이다.
일본 특개2011-239011호 공보
시리얼 통신 규격의 하나에, SPI(Serial Peripheral Interface)라고 불리는 것이 있다. SPI는 상행과 하행의 통신을 동시에 행할 수 있는 전(全)2중 통신 방식이다. SPI 통신은 SPI 마스터 디바이스(이후, 마스터라고 부른다)와 SPI 슬레이브 디바이스(이후, 슬레이브라고 부른다)가 직접 접속되어, 데이터 통신을 행하는 것이 일반적이다. 한편, SPI 통신을 SerDes라 불리는 장거리 전송용 시리얼 통신 디바이스를 경유하여, 마스터·슬레이브 사이의 SPI 통신을 행하는 경우가 있다. 이와 같은 시스템에서는, 마스터와 Master SerDes 사이에서 SPI 통신을 행함과 함께, 슬레이브와 Slave SerDes 사이에서 SPI 통신을 행하고, Master SerDes와 Slave SerDes 사이에서 TDD 방식이나 FDD 방식에 의한 시리얼 통신을 행하는 경우가 있을 수 있다.
이 경우, 마스터는 Master SerDes와 Slave SerDes 사이의 시리얼 통신이 끝났는지의 여부를 파악할 수 없기 때문에, 예를 들면, Master SerDes로부터 마스터에 인터럽트 신호를 송신하여, Slave SerDes와의 시리얼 통신이 완료된 것을 마스터에 알리는 수법이 생각된다.
그렇지만, 마스터와 Master SerDes 사이에서 인터럽트 신호를 송수(送受)하도록 하면, 마스터와 Master SerDes에 인터럽트 신호용의 핀을 마련할 필요가 있다. 또한, Master SerDes의 내부에는, 인터럽트 신호의 생성 회로를 마련할 필요가 있다. 이와 같이, 인터럽트 신호는 하드웨어 구성을 복잡하게 하는 요인이 될 수 있다.
그래서, 본 개시에서는, 간이한 하드웨어 구성으로, 다른 통신 방식을 조합시켜서 시리얼 통신을 행할 수 있는 통신 장치, 통신 시스템 및 통신 방법을 제공하는 것이다.
상기한 과제를 해결하기 위해, 본 개시에 의하면, 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 통신부와,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 기억된 데이터 블록을 상기 마스터에 송신하기 위해 출력하는 기억부를 구비하는 통신 장치가 제공된다.
상기 소정수의 데이터 블록은 상기 소정수의 프레임 기간에 상기 통신 상대 장치에 전송되어도 좋다.
상기 소정수의 데이터 블록은 상기 마스터로부터 송신된 상기 시리얼 신호군에 포함되는 상기 데이터 블록의 총수 정보에 대응한 소정수의 연속한 데이터 블록이라도 좋다.
상기 마스터와 상기 슬레이브 사이에서 공유되는 기준 클록에 의거하여, 상기 프레임 기간의 길이를 계측하는 제1 카운터와,
상기 마스터로부터 송신된 데이터 블록의 수를 카운트하는 제2 카운터를 구비하고,
상기 기억부는 상기 제1 카운터 및 상기 제2 카운터의 카운트값에 응한 타이밍에서, 상기 소정수의 데이터 블록을 차례로 기억하고, 그 후에, 기억된 상기 통신 상대 장치로부터의 데이터 블록을 출력해도 좋다.
상기 기준 클록은 ASA(Automotive SerDes Alliance) 규격으로 규정된 주파수의 클록이고,
상기 제2 카운터는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 클록에 동기시켜서 카운트 동작을 행해도 좋다.
상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 기억부에 기억하는 주기인 제1 기간은 상기 통신부가 상기 통신 상대 장치에 상기 데이터 블록을 포함하는 패킷을 송신하는 주기인 제2 기간과 같거나, 또는 상기 제2 기간보다도 길어도 좋다.
상기 제2 기간은 상기 제1 기간의 반분의 기간보다도 길어도 좋다.
상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과한 후의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신해도 좋다.
상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과하기 전의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신해도 좋다.
상기 통신부는 상기 통신 상대 장치에 송신해야 할 데이터 블록의 준비가 정돈되지 않은 경우에는, 다음의 프레임 기간까지 상기 통신 상대 장치에의 데이터 블록의 송신을 정지해도 좋다.
상기 기억부는 상기 마스터로부터 데이터 블록에 대해 상기 통신 상대 장치로부터의 데이터 블록이 도달하지 않은 경우에는, 다음의 프레임 기간까지 새로운 데이터 블록의 기억을 정지해도 좋다.
상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 제1 기간마다 차례로 상기 기억부에 기억한 후, 상기 통신 상대 장치로부터 송신되어 상기 기억부에 기억된 데이터 블록을 상기 제1 기간마다 상기 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 시프트 레지스터를 구비해도 좋다.
상기 시프트 레지스터는 상기 통신 상대 장치로부터의 데이터 블록이 도달한 것을 나타내는 인터럽트 신호를 상기 마스터에 송신하는 일 없이, 상기 기억부에 기억된 상기 통신 상대 장치로부터의 데이터 블록을 차례로 판독하여 상기 마스터에 송신해도 좋다.
상기 통신부는 상기 통신 상대 장치와의 사이에서, TDD(Time Division Duplex)에 응한 상기 통신 프로토콜로, 상기 프레임 기간 내의 서로 다른 기간에 상기 마스터로부터의 데이터 블록을 상기 통신 상대 장치에 송신하고, 또한 상기 통신 상대 장치로부터의 데이터 블록을 수신해도 좋다.
본 개시에 의하면, 소정의 통신 프로토콜로 패킷을 송수하는 제1 통신 장치 및 제2 통신 장치를 구비하고,
상기 제1 통신 장치는,
마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 상기 제2 통신 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 제2 통신 장치에 송신하는 제1 통신부와,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 제2 통신 장치를 통하여 송신된 데이터 블록을 기억하는 제1 기억부를 가지고,
상기 제2 통신 장치는 상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록에 응답하여 상기 슬레이브로부터 송신된 데이터 블록을 적어도 하나의 상기 프레임 기간 내에 상기 제1 통신 장치에 송신하는 제2 통신부를 갖는 통신 시스템이 제공된다.
상기 제1 통신 장치는 상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제1 기억부에 기억한 후, 상기 제2 통신 장치로부터 송신되어 상기 제1 기억부에 기억된 데이터 블록을 상기 제1 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 제1 시프트 레지스터를 가지고,
상기 제2 통신 장치는,
상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 기억함과 함께, 상기 슬레이브로부터 송신된 데이터 블록을 기억하는 제2 기억부와,
상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제2 기억부에 기억함과 함께, 상기 슬레이브로부터 송신되어 상기 제2 기억부에 기억된 데이터 블록을 상기 제2 기억부로부터 차례로 판독하여 상기 제2 통신부를 통하여 상기 제1 통신부에 송신하는 제2 시프트 레지스터를 가져도 좋다.
상기 제2 시프트 레지스터는 상기 제2 기억부에 기억해야 할 데이터 블록과, 상기 제1 통신부에 송신해야 할 데이터 블록이 존재하지 않은 경우에는, 시프트 동작을 정지해도 좋다.
상기 제2 기억부에 기억해야 할 데이터 블록이 상기 제2 통신부에서 수신된 경우에, 상기 제2 시프트 레지스터에 시프트 동작을 행하게 하는 클록을 생성하는 클록 생성기를 가져도 좋다.
상기 클록은 상기 마스터가 상기 제1 통신 장치에 송신하는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 시리얼 클록에 동기하고 있어도 좋다.
본 개시에 의하면, 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 스텝과,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 기억부에 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 상기 기억부에 기억된 데이터 블록을 상기 마스터에 송신하기 위해 판독하는 스텝를 구비하는 통신 방법이 제공된다.
도 1은 본 개시에 의한 통신 시스템의 기본 구성을 도시하는 블록도.
도 2는 SPI/Master와 SPI/Slave의 SPI 통신에 관한 부분의 블록도.
도 3은 SPI 프로토콜의 기본적인 신호 파형도.
도 4는 도 1의 M_SerDes와 S_SerDes 사이에서 행해지는 TDD 방식을 설명하는 도면.
도 5는 도 1의 통신 시스템의 타이밍도.
도 6a는 도 1의 통신 시스템의 처리 동작을 도시하는 플로우차트.
도 6b는 도 6a에 계속된 플로우차트.
도 7은 도 5의 한 변형례의 타이밍도.
도 8은 제1 실시 형태에 관한 통신 시스템의 개략 구성을 도시하는 블록도.
도 9는 도 8의 M_SerDes 내의 각 부분의 신호의 흐름을 도시하는 도면.
도 10은 M_SerDes 내의 ECP와 S_SerDes 내의 ECP가 생성한 전송 패킷에 포함된 정보를 설명하는 도면.
도 11은 제1 실시 형태에 관한 통신 시스템의 타이밍도.
도 12a는 제1 실시 형태에 관한 통신 시스템의 플로우차트.
도 12b는 도 12a에 계속된 플로우차트.
도 13은 도 11의 한 변형례에 관한 타이밍도.
도 14는 제2 실시 형태에 관한 통신 시스템의 타이밍도.
도 15a는 제2 실시 형태에 관한 통신 시스템의 처리 동작을 도시하는 플로우차트.
도 15b는 도 15a에 계속된 플로우차트.
이하, 도면을 참조하여, 통신 장치, 통신 시스템 및 통신 방법의 실시 형태에 관해 설명한다. 이하에서는, 통신 장치, 통신 시스템 및 통신 방법의 주요한 구성 부분을 중심으로 설명하지만, 통신 장치, 통신 시스템 및 통신 방법에는, 도시 또는 설명되지 않은 구성 부분이나 기능이 존재할 수 있다. 이하의 설명은 도시 또는 설명되지 않은 구성 부분이나 기능을 제외하는 것이 아니다.
(기본 구성)
도 1은 본 개시에 의한 통신 시스템(2)의 기본 구성을 도시하는 블록도이다. 도 1의 통신 시스템(2)은 SPI/Master(11)와, Master SerDes(M_SerDes(31))(31)와, SPI/Slave(12)와, Slave SerDes(S_SerDes)(41)를 구비하고 있다. 이 중, M_SerDes(31)가 통신 장치(1a)에 대응하고, S_SerDes(41)가 통신 장치(1b)에 대응한다.
SPI/Master(11)와 M_SerDes(31)는 SPI에 준거한 시리얼 통신(이하, SPI 통신이라고 부르는 일이 있다)을 행한다. 마찬가지로, SPI/Slave(12)와 S_SerDes(41)는 SPI에 준거한 시리얼 통신(SPI 통신)을 행한다. M_SerDes(31)와 S_SerDes(41)는 TDD 방식으로 고속 시리얼 통신을 행한다. 도 1에서는, M_SerDes(31)로부터 S_SerDes(41)에의 신호 전송 경로를 UP Link라고 부르고, S_SerDes(41)로부터 M_SerDes(31)에의 신호 전송 경로를 Down Link라고 부른다. SPI 통신에서는, SPI의 규격에 준거한 프로토콜(이하, SPI 프로토콜이라고 부른다)로 시리얼 통신을 행한다. 또한, 본 명세서에서는, SPI 통신으로 송수되는 시리얼 데이터를 SPI 데이터라고 부르는 일이 있다. M_SerDes(31)와 S_SerDes(41)는 예를 들면 ASA(Automotive SerDes Appliance)의 규격에 준거하여, 고속 시리얼 통신을 행한다.
후술하는 바와 같이, M_SerDes(31)는 마스터(SPI/Master(11))로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 소정의 통신 프로토콜의 하나의 프레임 기간 내에 한 묶음의 데이터 블록으로서 통신 상대 장치(S_SerDes(41))에 송신하든지, 또는 복수의 프레임 기간에 응하여 분할되는 복수의 데이터 블록으로서 통신 상대 장치(S_SerDes(41))에 송신하는 통신부(DLL(31-4))를 구비한다.
또한, S_SerDes(41)는 통신 상대 장치(M_SerDes(31))로부터의 패킷에 포함되는 클록 주파수 정보에 의거하여 생성된 클록에 동기하여, 슬레이브(SPI/Slave(12))로부터 송신된 SPI에 준거하는 시리얼 신호군을 소정의 통신 프로토콜의 하나의 프레임 기간 내에 한 묶음의 데이터 블록으로서 통신 상대 장치(M_SerDes(31))에 송신하든지, 또는 복수의 프레임 기간에 응하여 분할되는 복수의 데이터 블록으로서 통신 상대 장치(M_SerDes(31))에 송신하는 통신부(DLL(41-4))를 구비한다.
도 2는 SPI/Master(11)와 SPI/Slave(12)의 SPI 통신에 관한 부분의 블록도이다. 또한, 도 2에서는, 설명의 간략화를 위해, SPI/Master(11)와 SPI/Slave(12)가 직접, SPI에 준거한 시리얼 통신을 행하는 예를 나타내고 있다.
도 2에 도시하는 바와 같이, SPI/Master(11)는 시프트 레지스터(11-1)와 buffer/memory(11-2)를 갖는다. 마찬가지로, SPI/Slave(12)는 시프트 레지스터(12-1)와 buffer/memory(12-2)를 갖는다.
SPI/Slave(12) 내의 시프트 레지스터(12-1)는 SPI/Master(11)로부터 공급되는 클록(SCK)에 동기하여 동작한다. SPI/Master(11) 내의 시프트 레지스터(11-1)는 SCK에 동기하여 MSB(Most Significant Bit)측부터 차례로 시리얼 데이터를 출력한다. 출력된 시리얼 데이터는 MOSI핀을 통하여, SPI/Slave(12) 내의 시프트 레지스터(12-1)의 LSB(Least Significant Bit)측에 입력된다. SPI/Slave(12) 내의 시프트 레지스터(12-1)의 MSB측부터 출력된 시리얼 데이터는 MISO핀을 통하여, SPI/Master(11) 내의 시프트 레지스터(11-1)의 LSB측에 입력된다. SPI/Master(11) 내의 시프트 레지스터(11-1)가 유지하고 있는 데이터는 buffer/memory(11-2)에 기억할 수 있다. 또한, 시프트 레지스터(11-1)는 buffer/memory(11-2)가 기억하고 있는 데이터를 유지할 수 있다. 마찬가지로, SPI/Slave(12) 내의 시프트 레지스터(12-1)가 유지하고 있는 데이터는, buffer/memory(12-2)에 기억할 수 있다. 또한, 시프트 레지스터(12-1)는 buffer/memory(12-2)가 기억하고 있는 데이터를 유지할 수 있다.
도 3은 SPI 프로토콜의 기본적인 신호 파형도이다. SPI 프로토콜에서는, SPI/Master(11)가 출력하는 슬레이브 셀렉트 신호(CS 신호)가 아이들시(時)(도 3에서는 하이 레벨)의 SCK의 극성과, CS 신호가 액티브 상태(도 3에서는 로우 레벨)가 될 때에 데이터를 래치하는 클록(SCK)의 에지(상승 에지 또는 하강 에지)의 조합이 4개 있다. 이들 4개의 조합은 SPI mode라고 불린다. SPI/Master(11)는 4개의 SPI mode 중 하나를 임의로 선택할 수 있다. SPI/Master(11)는 미리 SPI/Slave(12)가 대응할 수 있는 SPI mode를 알고 있고, 그것에 대응한 모드를 선택할 필요가 있다.
도 3A∼도 3D는 4개의 SPI mode의 신호 파형도이다. 도 3A에 도시하는 SPI mode=0은 CS 신호가 아이들시에 SCK가 Low이고, SCK의 상승에서 데이터를 유지한다. 도 3B에 도시하는 SPI mode=1은 CS 신호가 아이들시에 SCK가 Low이고, SCK의 하강에서 데이터를 유지한다. 도 3C에 도시하는 SPI mode=2는 CS 신호가 아이들시에 SCK가 High이고, SCK의 하강에서 데이터를 유지한다. 도 3D에 도시하는 SPI mode=3은 CS 신호가 아이들시에 SCK가 High이고, SCK의 상승에서 데이터를 유지한다.
SCK의 주파수는 SPI 프로토콜에서는 규정되어 있지 않고, SPI 통신을 행하는 개개의 디바이스마다 다르기 때문에, SPI/Master(11)는 SPI 통신을 행하는 개개의 디바이스마다, SCK의 주파수를 선택한다. 그 때문에 SPI/Master(11)는 SPI 통신을 행하는 각 디바이스가 대응할 수 있는 SCK 주파수를 미리 알아 둘 필요가 있다.
이하, SPI 프로토콜을 이용한 통신 방법을 설명한다. 도 2의 예에서는, SPI 프로토콜에 의한 통신은 SPI/Master(11)와 SPI/Slave(12) 사이에서 행해진다. SPI/Master(11)에 접속되는 SPI/Slave(12)는 하나라도 복수라도 좋다. SPI/Master(11)에 복수의 SPI/Slave(12)가 접속되는 경우, SPI/Master(11)는 복수의 SPI/Slave(12)에 대응하는 복수의 CS 신호를 가지고, 통신하고 싶은 Slave를 대응하는 CS 신호로 선택하여 통신을 행할 수 있다. SPI/Master(11)가 통신하고 싶은 SPI/Slave(12)를 선택하기 위한 CS 신호는, 후술하는 바와 같이 SPI 제어 정보에 포함된다. SPI/Master(11)는 SPI 제어 정보를 SPI 데이터에 포함하여 M_SerDes(31)에 송신한다.
SPI/Master(11)는 SPI 통신을 행하는 경우, 통신하고 싶은 SPI/Slave(12)에 접속된 CS 신호를 액티브 상태(도 3A∼도 3D에서는 Low)로 한다. 본 명세서에서는, 각종의 신호를 액티브 상태로 하는 것을 어서트, 아이들 상태로 하는 것을 디어서트라고 부르는 일이 있다.
SPI/Master(11)와 SPI/Slave(12)는 전송하고 싶은 데이터를 각각의 buffer/memory(11-2, 12-2)로부터 시프트 레지스터(11-1, 12-1)에 전송한다. SPI/Master(11)는 SCK를 생성하여, 자신의 시프트 레지스터(11-1)에 공급함과 함께, SPI/Slave(12) 내의 시프트 레지스터(12-1)에도 공급한다. 각 시프트 레지스터(11-1, 12-1)는 SCK의 토글에 의해 유지 데이터를 1bit 마다 시프트한다. SCK가 시프트 레지스터(11-1, 12-1)의 단수(段數)만큼 토글함으로써, 시프트 레지스터(11-1, 12-1)의 데이터가 교체된다. 그 후, SPI/Master(11)는 CS 신호를 아이들 상태(도 3A∼도 3D에서는 High)로 천이시킨다. SPI/Master(11)와 SPI/Slave(12)는 그 시점의 시프트 레지스터(11-1, 12-1)의 데이터를 buffer/memory(11-2, 12-2)에 전송함으로써, buffer/memory(11-2, 12-2)로부터 데이터를 취득할 수 있고, 이에 의해 SPI 통신이 종료된다.
도 2에서는, SPI/Master(11)와 SPI/Slave(12)가 직접 SPI 통신을 행하는 예를 나타냈지만, 도 1에서는, SPI/Master(11)와 SPI/Slave(12)의 사이에, M_SerDes(31)와 S_SerDes(41)가 배치되어 있다. 도 1에서는, SPI/Master(11)와 M_SerDes(31)가 SPI 통신을 행하고, M_SerDes(31)와 S_SerDes(41)가 TDD 방식에 의한 시리얼 통신을 행하고, SPI/Slave(12)와 S_SerDes(41)가 SPI 통신을 행한다.
도 4는 도 1의 M_SerDes(31)와 S_SerDes(41) 사이에서 행해지는 TDD 방식을 설명하는 도면이다. 도 4에서는, 도 1에 도시하는 SPI/Master(11)와 SPI/Slave(12)의 내부 구성을 간략화하여 도시하고 있다. 또한, 도 4에서는, M_SerDes(31)와 S_SerDes(41)에 각각, 주변 장치(32, 42)가 접속되어 있는 예를 나타내고 있다.
M_SerDes(31)와 S_SerDes(41)는 예를 들면 수m∼10수m의 케이블(103)로 서로 접속되어 있다. 이 케이블(103)을 통하여, M_SerDes(31)와 S_SerDes(41)는 고속 시리얼 통신을 행한다. 또한, 도 4의 M_SerDes(31)와 S_SerDes(41)와 같은 구성을 갖는 2개의 디바이스를 조(組)로 하는 복수조를 마련하고, 조마다 고속 시리얼 통신을 행해도 좋다. 도 4의 M_SerDes(31)와 S_SerDes(41)는 예를 들면 차량탑재 카메라 모듈 등 대량의 데이터를 송수신하는 용도에 폭넓게 적용할 수 있다.
M_SerDes(31)와 S_SerDes(41)는 TDD 방식에 의한 고속 시리얼 통신을 행한다. 도 4의 우하(右下)에는, TDD 방식의 타이밍과 주파수대역이 도시되어 있다. TDD 방식에서는, 도 4의 우측에 도시하는 바와 같이, 1TDD 사이클 내에, 상행 방향의 신호 전송 기간과 하행 방향의 신호 전송 기간이 각각 하나씩 시간적으로 겹쳐지지 않도록 마련되어 있다. 도 4의 TDD 타이밍도의 예에서는, M_SerDes(31)로부터 S_SerDes(41)에의 상행 방향의 신호(UP Link라고 부른다)의 신호 전송 기간이 S_SerDes(41)로부터 M_SerDes(31)에의 하행 방향의 신호(Down Link라고 부른다)의 신호 전송 기간보다도 극단적으로 짧은 예, 즉 UP Link의 신호 비율이 Down Link의 신호 비율보다도 극단적으로 작은 예를 나타내고 있다. 예를 들면, S_SerDes(41) 내의 센서가 촬상한 영상 신호를 M_SerDes(31)에 송신하는 경우에는, 도 4의 TDD 타이밍도와 같은 신호 비율이 된다.
도 4의 우측에는, TDD 방식에서의 UP Link의 신호 전송에 이용되는 주파수대역과, Down Link의 신호 전송에 이용되는 주파수대역이 도시되어 있다. 도시하는 바와 같이, TDD 방식에서는, UP Link의 신호 전송과 Down Link의 신호 전송에서, 주파수대역의 일부가 겹쳐져 있다. 예를 들면, S_SerDes(41) 내의 센서가 촬상한 영상 신호를 M_SerDes(31)에 송신하는 경우에는, 신호량이 큰 하행 방향 Down Link의 신호 전송은 상행 방향 UP Link의 신호 전송보다도 넓은 주파수대역을 필요로 하기 때문에, 상행 방향 UP Link의 신호 전송에 이용되는 주파수대역을 포함하는 보다 광범한 주파수대역을 이용하여 행해진다. TDD 방식에서는, 하행 방향 Down Link의 신호 전송 기간이 상행 방향 UP Link의 신호 전송 기간과 겹쳐지지 않기 때문에, 양 신호를 분리하기 위한 에코 캔슬 회로가 불필요해진다.
본 실시 형태에 관한 M_SerDes(31)와 S_SerDes(41)는 TDD 방식으로 신호 전송을 행하는 것을 전제로 하고 있는데, 경우에 따라서는 FDD 방식으로도 신호 전송을 행할 수 있도록 하여도 좋다. 도 4의 좌하에는 FDD 방식의 타이밍과 주파수대역이 도시되어 있다. FDD 방식에서는, M_SerDes(31)로부터 S_SerDes(41)에의 신호 전송에 이용하는 주파수대역과, S_SerDes(41)로부터 M_SerDes(31)에의 신호 전송에 이용하는 주파수대역이 다르다. 이 때문에, M_SerDes(31)로부터 S_SerDes(41)에의 신호 전송과, S_SerDes(41)로부터 M_SerDes(31)에의 신호 전송을 동(同) 타이밍에서 행할 수 있고, 상행 방향의 신호 전송과 하행 방향의 신호 전송을 1FDD 사이클 내의 전(全)기간을 이용하여 행할 수 있다.
또한, FDD 방식에서는, 신호량이 큰 상행 방향의 신호 전송은 고주파측의 넓은 주파수대역을 이용하여 행해진다. 신호량이 작은 하행 방향의 신호 전송은 저주파측의 좁은 주파수대역을 이용하여 행해진다. 도 4의 좌하의 예에서는, 주파수의 이용 효율을 높이기 위해, 상행 방향의 신호 전송에서 이용되는 주파수대역과, 하행 방향의 신호 전송에서 이용되는 주파수대역을 일부 중복시키고 있다. 또한, 도 4의 좌하에 도시한 것처럼 시간 영역의 상행 방향의 신호 전송 구간과 하행 방향의 신호 전송 구간은 완전히 겹쳐져 있다. 이들의 중복 부분이 있기 때문에, 에코 캔슬 회로가 필요해진다. 에코 캔슬 회로는 상행 방향의 신호와 하행 방향의 신호를 정밀도 좋게 분리하는 회로이다.
TDD 쌍방향 통신 방식은 FDD 쌍방향 통신과 달리, 통신 기기 사이의 상행 신호(UP Link)와 하행 신호(Down Link)가 각각에 할당된 시간마다 전환되면서 통신을 행하는 반2중 통신 방식에, 마스터 디바이스와 SPI 슬레이브 디바이스 사이에서 SCK에 동기하여 동시에 데이터를 교환하는 전2중 통신 방식의 신호를 전송할 것이 필요하고, 특히 Slave측부터의 판독 신호(도 3의 MISO)가 S_SerDes(41)를 통하여 M_SerDes(31)에 도달한 것을 SPI 마스터 디바이스(11)가 어떠한 수단을 이용하여 알며, 판독할 필요가 있다.
도 4에서는, SPI/Slave(12)로부터의 판독 데이터(S_MISO)가 S_SerDes(41)와 케이블(103)을 통하여, M_SerDes(31) 내의 buffer/memory(31-1-2)에 도달하면, buffer/memory(31-1-2)는 SPI/Master(11) 디바이스(11)에 대해 인터럽트 신호(M_INT)(11-11)에 의해 판독 데이터(S_MISO)가 도달한 것을 알리고, 그것을 받은 SPI/Master(11) 디바이스(11)가 SPI 클록인 M_SCK를 M_SerDes(31)에 공급하고, M_SCK에 동기하여 시프트 레지스터(31-1-1)로부터 M_MISO 데이터가 판독된다. 그렇지만, 이 방법에서는, 인터럽트 신호(M_INT)가 필요하게 되고, 그 때문에 전용의 신호 핀이 필요해지고, 비용 상승 요인이 된다.
이하에서는, M_SerDes(31)와 S_SerDes(41)가 TDD 방식으로 고속 시리얼 통신을 행함과 함께, M_SerDes(31)는 SPI/Master(11)와의 사이에서 SPI에 준거한 시리얼 통신을 행하고, S_SerDes(41)는 SPI/Slave(12)와의 사이에서 SPI에 준거한 시리얼 통신을 행하는 예를 설명한다.
M_SerDes(31)와 S_SerDes(41) 사이에서는, SPI가 아니라 TDD 방식에 의한 시리얼 통신을 행하기 때문에, M_SerDes(31)와 S_SerDes(41)의 내부에서 프로토콜 변환을 행할 필요가 있다. 또한, SPI에 의한 시리얼 통신은 전2중 통신 방식임에 대해, TDD 방식에 의한 시리얼 통신은 반2중 통신 방식이기 때문에, SPI/Master(11)나 SPI_Slave로부터의 데이터를 그대로의 타이밍에서 TDD 방식으로 송수신할 수는 없다.
이하, 도 1의 통신 시스템(2)의 구성을 상세히 설명한다. 도 1의 SPI/Master(11)는 도 4에 도시한 바와 같이, 시프트 레지스터(11-1)와 buffer/memory(11-2)를 갖는 외에, 컨트롤러(11-3)와 SCK 생성기(11-4)를 구비하고 있다.
컨트롤러(11-3)는 SPI 통신을 액티브 상태로 하기 위한 슬레이브 셀렉트 신호(CS 신호)를 M_CSn핀을 통하여, M_SerDes(31)에 공급한다. CS 신호는 SPI/Master(11)와 SPI 통신을 행하는 디바이스의 수만큼 마련된다. 예를 들면, 도 1에서는, M_SerDes(31), S_SerDes(41) 및 SPI/Slave(12)에 각각 다른 M_CSn핀이 할당되어 있다. 본 명세서에서는, SPI/Master(11)로부터 출력되는 CS 신호를 출력하는 핀을 M_CSn(x)이라고 표기하는 일이 있다. 예를 들면, M_CSn(0)을 M_SerDes(31)에 할당하고, M_CSn(1)을 SPI/Slave(12)에 할당한다.
컨트롤러(11-3)는 SCK 생성기(11-4)의 동작을 제어한다. SCK 생성기(11-4)는 어느 하나의 CS 신호가 액티브 상태인 때에, SCK를 출력한다. 시프트 레지스터(11-1)는 SCK에 동기하여 시프트 동작을 행한다.
컨트롤러(11-3)는 SPI/Slave(12)가 인터럽트 신호(S_INT)를 출력한 것을 M_SerDes(31)로부터의 인터럽트 신호(M_INT)로 검출하고, 이 인터럽트 신호(M_INT)를 트리거로 하여, 다음 프레임의 SPI 통신을 시작한다. 또는, 컨트롤러(11-3) 자신이 SPI 데이터를 송신하고 싶은 경우도, 마찬가지로 SPI 통신을 시작한다(후술하는 도 5의 M_CSn(1)의 시각 t1).
M_SerDes(31)는 SPI/Master(11)에 접속되어 있다. M_SerDes(31)는 SPI/Master(11)와 SPI 프로토콜에 따라 데이터 통신을 행하기 위해, SPI 블록(31-1)을 갖는다. SPI 블록(31-1)은, 시프트 레지스터(31-1-1)와 buffer/memory(31-1-2)를 갖는다. SPI/Master(11) 내의 컨트롤러(11-3)가 M_SerDes(31)에 대응하는 CS 신호를 액티브 상태로 하여, SCK 생성기(11-4)가 SCK를 출력하면, 이 SCK에 동기하여, 시프트 레지스터(31-1-1)는 SPI 데이터를 출력하고, MISO핀을 통하여 SPI/Master(11)에 공급한다. 또한, 시프트 레지스터(31-1-1)는 SPI/Master(11)로부터 MOSI핀을 통하여 출력된 SPI 데이터를 SCK에 동기하여 취입한다.
컨트롤러(11-3)는 CS 신호가 아이들 상태가 되면, SCK 생성기(11-4)에 대해 SCK의 출력을 정지시킨다. 이에 의해, 시프트 레지스터(31-1-1)는 SCK가 정지되기 직전의 상태를 유지한다.
M_SerDes(31) 내의 SPI 블록(31-1)은 CS 신호가 아이들 상태로 천이하면, 시프트 레지스터(31-1-1) 내의 전(全)데이터를 buffer/memory(31-1-2)에 전송한다. 이에 의해, SPI/Master(11)로부터 M_SerDes(31)에의 SPI 프로토콜에 의한 데이터 전송 처리가 종료된다.
또한, M_SerDes(31) 내의 시프트 레지스터(31-1-1)로부터 buffer/memory(31-1-2)에의 데이터 전송은 SPI/Master(11)가 전송하고 싶은 데이터량과 시프트 레지스터(31-1-1)의 데이터 용량에 의존한다. 따라서, CS 신호가 액티브 상태인 사이에, 시프트 레지스터(31-1-1) 내의 데이터가 넘칠 우려가 있는 경우는, 넘치기 전에, 시프트 레지스터(31-1-1) 내의 데이터를 buffer/memory(31-1-2)에 전송함으로써, 데이터의 결락(缺落)을 방지할 수 있다.
이 밖에, M_SerDes(31)는 패킷 인코더(ECP)(31-2)와, 패킷 디코더(DCP)(31-3)와, DLL(31-4)과, PHY layer block(PHY)(31-5)을 갖는다. M_SerDes(31) 내의 ECP(31-2)는 buffer/memory(31-1-2)에 기억된 SPI 데이터를 TDD 방식에 준거한 패킷(SPI 패킷)으로 변환한다. DLL(31-4)은 ECP(31-2)에서 생성된 SPI 패킷을 SPI 패킷 이외의 다른 전송 패킷과 통합하여, UP Link packet을 생성한다. PHY(31-5)는 UP Link packet을 UP Link를 통하여 S_SerDes(41)에 송신한다.
도 1의 S_SerDes(41)는 SPI/Slave(12)에 접속된다. S_SerDes(41)는 SPI/Slave(12)와 SPI 프로토콜에 따라 데이터의 송수신을 행하기 위해, SPI 블록(41-1)을 갖는다. SPI 블록(41-1)은 컨트롤러(CNTR)(41-1-4)와, SCK 생성기(41-1-3)와, 시프트 레지스터(41-1-1)와, buffer/memory(41-1-2)를 갖는다. 컨트롤러(41-1-4)는 SPI/Master(11)로부터의 SPI 제어 정보에 의거하여, SCK 생성기(41-1-3)로부터 출력되는 SCK의 타이밍과 주파수를 제어한다. 컨트롤러(41-1-4)가 SPI/Slave(12)에 대응하는 CS 신호를 액티브 상태로 하여, SCK 생성기(41-1-3)가 SCK를 출력한 때에, 이 SCK에 동기하여, 시프트 레지스터(41-1-1)는 SPI 데이터를 출력하여, S_MOSI핀을 통하여 SPI/Slave(12)에 공급한다. 또한, 시프트 레지스터(41-1-1)에는, SPI/Slave(12)로부터 (S_MISO)핀을 통하여 출력된 SPI 데이터가 SCK에 동기하여 입력된다. 이 밖에, S_SerDes(41)는 패킷 인코더(ECP)(41-2)와, 패킷 디코더(DCP)(41-3)와, DLL(41-4)과, PHY layer block(PHY)(41-5)을 갖는다. S_SerDes(41) 내의 ECP(41-2)는 buffer/memory(41-1-2)에 기억된 SPI 데이터를 TDD 방식에 준거한 패킷(SPI 패킷)으로 변환한다. DLL(41-4)은 ECP(41-2)에서 생성된 SPI 패킷을 SPI 패킷 이외의 다른 전송 패킷과 통합하여, Down Link packet을 생성한다. PHY(41-5)는 Down Link packet을 Down Link를 통하여 M_SerDes(31)에 송신한다.
도 5는 도 1의 통신 시스템(2)의 타이밍도이다. 도 5는 M_SerDes(31)와 S_SerDes(41)가 TDD 방식으로 시리얼 통신을 행할 때의 TDD 버스트 기간을 TB로 하고, TDD의 1프레임 기간을 L로 하고 있다. 또한, SPI 데이터 블록 길이를 D로 하고 있다. SPI 데이터 블록은 N바이트의 SPI 데이터로 구성되어 있고, N바이트의 모든 데이터가 1TDD 버스트 신호로 전송된다. 1TDD 버스트 신호는 하나의 TDD 버스트 기간(TB)에 송신되는 시리얼 신호이다.
UP Link 패킷과 Down Link 패킷의 각각은 하나의 TDD 버스트 기간에, 하나의 TDD 버스트 신호로서 송신된다. 도 5의 예에서는, TDD의 1프레임 기간에 4개의 TDD 버스트 기간이 있고, 그 중의 하나의 TDD 버스트 기간에 SPI 데이터 블록을 포함하는 하나의 TDD 버스트 신호(UP Link 패킷)가 송신되는 예를 나타내고 있다.
SPI/Master(11)로부터 전송되는 SPI 데이터의 전부를 SPI/Slave(12)에 전송하려면, SPI 데이터의 전송 용량보다, TDD 버스트 기간에 할당된 SPI용의 전송 슬롯의 전송 용량이 동등하든지, 또는 크지 않으면 안 된다. 이 때문에, SPI 데이터의 블록 길이(D)와, SPI 데이터를 전송하는 TDD 버스트 신호의 주기(L)와의 관계는 D≥L일 필요가 있다.
SPI 데이터가 발생하는 타이밍은 SPI/Master(11)가 스스로의 어플리케이션의 사정으로 정하기 때문에, TDD 버스트 신호와는 무관계(無關係)하게 된다.
따라서 D에 대해 L을 너무 짧게 하면, 즉 SPI 데이터를 전송하는 TDD 버스트의 할당수를 너무 많게 하면, SPI 데이터를 전송하지 않는 TDD 버스트가 많아지고, 전체의 전송 용량을 낭비해 버린다. 이 때문에, SPI 데이터 블록 시간 길이(D)와, SPI 데이터를 전송하는 TDD 버스트 신호의 주기(L)와의 관계는 D≥L>D/2로 하는 것이 바람직하다.
도 6a 및 도 6b는 도 1의 통신 시스템(2)의 처리 동작을 도시하는 플로우차트이다. 이하, 도 5의 타이밍도를 참조하면서, 도 6a 및 도 6b의 플로우차트에 의거하여, 도 1의 통신 시스템(2)의 동작을 설명한다.
우선, SPI/Master(11)는 SPI 통신을 시작하기 위해 칩 셀렉트 신호(CS)(M_CS)를 어서트하여(스텝 S1, 시각 t1), SPI 통신용의 SCK(M_SCK)의 클록 출력을 시작시킨다(스텝 S2, 시각 t2).
SPI/Master(11)는 M_SCK에 동기하여 전송하는 N바이트의 SPI 데이터 블록(O_DB#1)을 M_SerDes(31)에 출력한다(스텝 S3, 시각 t3). M_SerDes(31)는 수신한 SPI 데이터 블록(O_DB#1)을 일단 buffer/memory(31-1-2)에 유지한다(스텝 S4, 시각 t4). buffer/memory(31-1-2)는, DLL(31-4)에 의해 스케줄된 SPI 데이터를 전송하기 위해 할당된 UP link의 최초의 TDD 버스트 기간에는, SPI 데이터 블록(O_DB#1)을 전송하지 않고 그대로 유지한다. 이 유지 기간은 SPI/Master(11)로부터 M_SerDes(31)와 S_SerDes(41)를 통하여, SPI/Slave(12)와 SPI 데이터를 연속해서 판독 기록하기 위한 최저한의 지연 시간(L)를 생성하기 위해 마련되어 있다. 지연 시간(L)은 TDD의 1프레임 기간(L)과 같다.
buffer/memory(31-1-2)는 SPI 데이터 블록(O_DB#1)을 유지하고 나서, 2번째에 온 SPI 데이터를 전송하기 위해 할당된 UP link의 TDD 버스트 기간에, SPI 데이터를 전송하기 위한 캡슐화 처리를 행하는 패킷 인코더(31-2)를 통하여, 캡슐화된 SPI 데이터 블록(O_DB#1)을 전송한다(스텝 S5, 시각 t5). 캡슐화된 SPI 정보에는, SPI 데이터가 얼마만큼의 블록으로 구성되어 있는지를 나타내는 정보가 기술되어 있다. 도 5에서는, 4개의 SPI 데이터 블록을 포함하는 패킷을 전송하는 예를 나타내고 있다. M_SerDes(31)는 UP link 패킷을 케이블(103)을 통하여 S_SerDes(41)에 전송한다.
S_SerDes(41)는 수신한 SPI 데이터 블록(O_DB#1)을 포함하는 UP link 패킷을 PHY(41-5)와 DLL(41-4)을 통하여 디코드하고, SPI 데이터 패킷(이하, SPI 데이터 패킷)을 패킷 디코더(41-3)에 전송한다(스텝 S6, 시각 t6). 패킷 디코더(41-3)는 SPI 데이터 패킷을 디코드하고, 디코드한 SPI 데이터 블록(O_DB#1)을 SPI 블록(41-1)에 건네준다.
S_SerDes(41) 내의 SPI 블록(41-1)의 컨트롤러(41-1-4)는 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)을 전송하기 위한 SPI 통신의 시작을 지시하는 CS(S_CS)를 어서트 한다(스텝 S7, 시각 t7).
S_SerDes(41)의 SPI 블록(41-1)은 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)을 전송하기 위한 SPI의 SCK(S_SCK)의 클록 출력을 시작시킨다(스텝 S8, 시각 t8). S_SCK의 주파수는 SPI/Master(11)측의 SCK(M_SCK)와 같다.
S_SerDes(41)의 SPI 블록(41-1)은 S_SCK에 동기하여 N바이트의 SPI 데이터 블록(O_DB#1)을 SPI/Slave(12)에 출력한다(스텝 S9, 시각 t9).
SPI/Slave(12)는 동시에 SPI 판독 데이터(I_DB#1)를 S_SCK(S_SCK)에 동기하여, 기록 데이터(O_DB#1)와 같은 N바이트분(分)을 출력한다(스텝 S10, 시각 t10).
S_SerDes(41)는 수신한 N바이트의 SPI 판독 데이터(I_DB#1)를 buffer/memory(41-1-2)에 일단 유지한다(스텝 S11, 시각 t11). buffer/memory(41-1-2)는 N바이트분의 SPI 데이터 블록(I_DB#1)을 유지한 후, DLL(41-4)에 의해 스케줄된 최초의 SPI 데이터를 전송하기 위해 할당된 Down Link의 TDD 버스트 기간에, SPI 데이터를 전송하기 위한 캡슐화 처리를 행하는 패킷 인코더(41-2)를 통하여, 캡슐화된 SPI 데이터 블록(I_DB#1)을 전송한다. S_SerDes(41)는 그 Down Link 패킷을 케이블(103)을 통하여 M_SerDes(31)에 전송한다.
M_SerDes(31)는 수신한 SPI 데이터 블록(I_DB#1)을 포함하는 Down Link 패킷을 PHY(31-5)와 DLL(31-4)을 통하여 디코드하고, SPI 데이터 패킷을 패킷 디코더(31-3)에 공급한다(스텝 S12, 시각 t12). 패킷 디코더(31-3)는 SPI 데이터 패킷을 디코드하고, 디코드한 SPI 데이터 블록(I_DB#1)을 SPI 블록(31-1)에 건네준다.
M_SerDes(31)의 SPI 블록(31-1) 내의 buffer/memory(31-1-2)는, 디코드된 SPI 데이터 블록(I_DB#1)을 수취하면, SPI/Master(11)에 송신해야 할 유효한 SPI 데이터가 존재하고 있는 것을 나타내는 인터럽트 신호(M_INT)를 어서트 한다(스텝 S13, 시각 t13). 이 인터럽트 신호(M_INT)는 SPI/Master(11)에 보내진다.
SPI/Master(11)는 SPI 데이터 블록(O_DB#1)을 출력한 후, 인터럽트 신호(M_INT)를 수신하면, 나머지 전송해야 할 SPI 데이터를 N바이트마다, M_SCK에 동기하여 출력을 계속한다(스텝 S14, 시각 t14). 도 5의 예에서는 SPI 데이터 블록(O_DB#4)까지 출력하는 것을 나타내고 있다. M_SerDes(31), S_SerDes(41)는 각각의 N바이트의 SPI 데이터 블록(O_DB#X)마다, 상술한 스텝 S5∼S14의 처리를 반복해서 행한다.
SPI/Master(11)는 M_SerDes(31)로부터 유효한 SPI 데이터가 존재하고 있는 것을 나타내는 인터럽트 신호(M_INT)를 수신하면, SPI 데이터 블록(I_DB#1)을 판독하기 위해, SCK(M_SCK)를 N바이트분, 클록 출력을 행한다(스텝 S15, 시각 t15).
도 5의 예에서는, 기록 SPI 데이터가 4N바이트분이기 때문에, 판독 SPI 데이터 블록(I_DB#1)을 판독하기 위해, 더미의 SPI 데이터 블록(O_DB#5)을 출력하지만, 이 더미의 SPI 데이터 블록(O_DB#5)은 S_SerDes(41)에는 전송되지 않는다(스텝 S16, 시각 t16).
SPI/Master(11)는 SCK(M_SCK)에 의해 더미의 SPI 데이터 블록(O_DB#5)을 출력하는 동시에 SPI/Slave(12)로부터의 판독 데이터(I_DB#1)를 판독한다(스텝 S17, 시각 t17). 지금까지의 조작에 의해, SPI/Master(11)로부터 SPI/Slave(12)에 대한, SPI 데이터의 N바이트분의 기록과 판독이 완료된다.
S_SerDes(41)의 SPI 블록(41-1) 내의 컨트롤러(41-1-4)는 SPI 데이터 패킷에 기술되어 있는 블록수만큼의 SPI 데이터를 수신한 후(도 5에서는, 4블록), SPI/Slave(12)에 대해 SPI 통신을 종료하는 것을 나타내기 위해, S_SCK의 클록 출력을 정지시킨다(시각 S18, 시각 t18). 또한 S_CS를 디어서트함으로써, S_SerDes(41)와 SPI/Slave(12) 사이의 SPI 통신을 종료한다(스텝 S19, 시각 t19).
S_SerDes(41)는 스텝 S11와 같은 처리를 SPI/Slave(12)로부터 수신한 4블록분의 SPI 판독 데이터(I_DB#X)에 대해 행하고, Down Link를 통하여 M_SerDes(31)에 전송한다(스텝 S20, 시각 t20).
M_SerDes(31)는 수신한 SPI 데이터 블록(I_DB#2-#4)에 대해 스텝 S12, S13과 같은 처리를 행한다(스텝 S21, 시각 t21).
SPI/Master(11)는 M_SerDes(31)로부터 유효한 SPI 데이터가 존재하고 있는 것을 나타내는 인터럽트 신호(M_INT)를 수신하면, 최후의 블록인 SPI 데이터 블록(I_DB#4)을 판독하기 위해, SCK(M_SCK)는 N바이트분의 클록 출력을 행한다(스텝 S22, 시각 t22).
SPI/Master(11) 내의 컨트롤러(11-3)는 소망하는 블록분의 SPI 데이터를 수신한 후(도 5에서는, 4블록), M_SerDes(31)에 대해 SPI 통신을 종료하는 것을 나타내기 위해, M_SCK은 클록 출력을 정지한다(스텝 S23, 시각 t23). 또한 M_CSn(1)을 디어서트함으로써, SPI/Master(11)와 M_SerDes(31) 사이의 SPI 통신을 종료한다(스텝 S24, 시각 t24).
도 5에 도시한 SPI/Master(11)가 SPI 통신을 시작하는 시각 t2와 SPI 데이터를 전송하는데 할당된 TDD 버스트 기간의 생성 타이밍(시각 t5)의 관계에서는, SPI/Master(11)가 SPI/Slave(12)에 기록하는 SPI 데이터 블록(O_DB#1)에 대해, SPI/Slave(12)로부터 SPI/Master(11)에의 SPI 판독 데이터(I_DB#1)가 되돌아 오고, SPI/Master(11)가 판독할 수 있는 타이밍은, 5개의 SPI 데이터 블록 후(시각 t16, O_DB#5)이다.
도 7은 도 5의 한 변형례의 타이밍도이다. 도 7은 SPI 데이터의 통신 시작 타이밍 t2와 SPI 데이터를 최초에 전송하는 TDD 버스트 기간의 타이밍 t5과의 위상 관계가 도 5와는 다른 예를 나타내고 있다.
도 7인 경우, SPI/Master(11)가 SPI/Slave(12)에 기록하는 SPI 데이터 블록(O_DB#1)에 대해, SPI/Slave(12)로부터 SPI/Master(11)에의 SPI 판독 데이터(I_DB#1)가 되돌아 오고, SPI/Master(11)가 판독할 수 있는 타이밍은 6SPI 데이터 블록 후((16), O_DB#6)이다.
도 5와 도 7에 도시하는 바와 같이, SPI 데이터 통신 시작 타이밍과 TDD 버스트의 타이밍의 관계에서, SPI/Slave(12)로부터의 SPI 판독 데이터를 SPI/Master(11)가 판독할 수 있는 타이밍이 다르다. 이 때문에, M_SerDes(31)는, SPI/Slave(12)로부터의 SPI 데이터가 도달한 것을 SPI/Master(11)에 나타내기 위한 인터럽트 신호(도 1 M_INT)가 필요하다.
그렇지만, 전술한 바와 같이 인터럽트 신호는 물리적인 핀을 필요로 하기 때문에, 상술한 바와 같이 비용 상승 요인이 될 우려가 있다. 이하에 설명하는 제1 및 제2 실시 형태에 관한 통신 시스템(2)은 인터럽트 신호를 필요로 하지 않고서, SPI/Master(11)가 SPI/Slave(12)로부터의 데이터가 도달하는 타이밍을 파악하여, 다음의 SPI 데이터를 M_SerDes(31)에 송신하는 것을 특징으로 한다.
(제1 실시 형태)
도 8은 제1 실시 형태에 관한 통신 시스템(2)의 개략 구성을 도시하는 블록도이다. 도 8에서는, 도 1과 공통되는 구성 부분에는 동일 부호를 붙이고 있고, 이하에서는 상위점을 중심으로 설명한다. 도 8의 통신 시스템(2)은 도 1과 마찬가지로 구성된 SPI/Master(11), M_SerDes(31), S_SerDes(41) 및 SPI/Slave(12)를 구비하고 있다. 도 8의 통신 시스템(2) 내의 M_SerDes(31)는 도 1의 M_SerDes(31)의 내부 구성에 더하여, PTB(Precision Time Base) 카운터(제1 카운터)(31-6)와, RTC(Real Time Counter, 제2 카운터)(31-7)를 갖는다.
PTB 카운터(31-6)는 통신 시스템(2) 내의 M_SerDes(31)와 S_SerDes(41)에서 공유하는 시간 정보(PTB)에 의거하여 TDD 사이클 기간(프레임 기간)을 계측한다. RTC(31-7)는 SPI/Master(11)가 공급하는 SCK를 카운트하여, SPI/Slave(12)로부터의 SPI 데이터를 판독하는 타이밍을 계측한다.
도 8의 M_SerDes(31)는 PTB 카운터(31-6)에서 카운트된 수와 RTC(31-7)에서 카운트된 수에 의거하여, buffer/memory(31-1-2)에 기억된 SPI/Master(11)로부터의 데이터 블록이 DLL(31-4)에 송신되는 타이밍과, buffer/memory(31-1-2)에 기억된 SPI/Slave(12)로부터의 데이터 블록이 SPI/Master(11)에 송신되는 타이밍을 제어한다. 즉, buffer/memory(31-1-2)는 PTB 카운터(31-6)와 RTC 카운터(31-7)의 카운트값에 응한 타이밍에서, SPI/Master(11)로부터의 소정수의 데이터 블록을 기억하고, 그 후에, 기억된 SPI/Slave(12)로부터의 데이터 블록을 출력한다.
도 8에서는, S_SerDes(41)와 SPI/Slave(12)가 별개의 장치인 예를 나타내지만, S_SerDes(41)와 SPI/Slave(12)를 일체화하여 하나의 장치로 하여도 좋다. 이 경우, SPI 프로토콜 신호군은 일체화한 장치의 내부 신호로서 취급된다.
도 8의 M_SerDes(31) 내의 buffer/memory(31-1-2)는 SPI/Master(11)로부터 송신된 1 이상의 소정수의 프레임 기간에서의 소정수의 데이터 블록을 기억한 후에, SPI/Slave(12)로부터 송신되어 기억된 데이터 블록을 SPI/Master(11)에 송신하기 위해 출력한다. 소정수의 데이터 블록은 예를 들면 SPI/Master(11)로부터 송신된 시리얼 신호군에 포함되는 데이터 블록의 총수 정보(후술하는 도 10의 c-5)에 대응한 소정수(예를 들면, 4개)의 연속한 데이터 블록이다.
도 8의 M_SerDes(31) 내의 DLL(31-4)은 SPI/Master(11)로부터 송신된 데이터 블록이 buffer/memory(31-1-2)에 기억되고 나서, 제2 기간이 경과한 후의 프레임 기간에, buffer/memory(31-1-2)에 기억된 데이터 블록을 S_SerDes(41)에 송신한다. 제2 기간이란, 하나의 TDD 프레임 기간(L)이다.
도 8의 M_SerDes(31) 내의 시프트 레지스터(31-1-1)는 SPI/Master(11)로부터 송신된 소정수의 데이터 블록을 제1 기간마다 차례로 buffer/memory(31-1-2)에 기억한 후, S_SerDes(41)로부터 송신되어 buffer/memory(31-1-2)에 기억된 데이터 블록을 제1 기간마다 buffer/memory(31-1-2)로부터 차례로 판독하여 SPI/Master(11)에 송신한다. 제1 기간이란, SPI 데이터 블록의 길이(D)이다.
시프트 레지스터(31-1-1)는 S_SerDes(41)로부터의 데이터 블록이 도달한 것을 나타내는 인터럽트 신호를 SPI/Master(11)에 송신하는 일 없이, buffer/memory(31-1-2)에 기억된 S_SerDes(41)로부터의 데이터 블록을 차례로 판독하여 SPI/Master(11)에 송신한다.
이와 같이, 도 8의 통신 시스템(2)에서는, M_SerDes(31)가 SPI/Slave(12)로부터의 SPI 데이터를 수신한 때에, SPI/Master(11)에 인터럽트 신호(M_INT)를 송신하는 일 없이, 그 수신 데이터를 M_SerDes(31)로부터 SPI/Master(11)에 송신할 수 있도록 하고 있다. 이에 의해, 인터럽트 신호(M_INT)가 불필요하게 되고, SPI/Master(11)와 M_SerDes(31) 사이에서의 데이터의 송수의 순서를 간략화할 수 있다.
도 9는 도 8의 M_SerDes(31) 내의 각 부분의 신호의 흐름을 도시하는 도면이다. 도 9에 도시하는 바와 같이, RTC(31-7)는, SPI/Master(11)로부터 공급된 SCK에 의해 카운트 동작을 행하고, RTC(31-7)의 카운트값은 buffer/memory(31-1-2)에 보내진다. RTC(31-7)의 카운트 동작은 buffer/memory(31-1-2)에 격납된 데이터에 의해 제어된다.
PTB 카운터(31-6)는 TDD 사이클(L)을 계측한다. PTB 카운터(31-6)의 정밀도는 매우 높은 것을 특징으로 하고, 예를 들면 250㎒의 클록(이하, PTB 클록)으로 TDD 사이클(L)을 정밀도 좋게 계측할 수 있다. PTB 클록은 ASA의 규격으로 규정된 주파수(예를 들면 250㎒)의 클록이다.
도 10은 M_SerDes(31) 내의 ECP(31-2)와 S_SerDes(41) 내의 ECP(41-2)가 생성하는 전송 패킷에 포함되는 정보를 설명하는 도면이다. 도 10에는, 전송 패킷 내의 정보마다, 식별 기호와, 정보명과, SPI/Master(11)로부터 SPI/Slave(12)에 데이터 전송을 행하는 전송 패킷에서의 기능과, SPI/Slave(12)로부터 SPI/Master(11)에 데이터 전송을 행하는 전송 패킷에서의 기능과, 설명이 대응되어 있다.
C-1은 전송 모드이고, SPI/Master(11)가 커맨드로서 지령한다. SPI/Slave(12)로부터의 패킷에 포함되는 전송 모드는 SPI/Master(11)가 상태를 모니터하기 위해 이용된다. C-1이 0이면, TDD의 하나의 프레임 기간 내에 한 묶음의 데이터 블록을 전송한다. C-1이 1이면, 복수의 프레임 기간에 응하여 분할되는 복수의 데이터 블록을 전송한다.
C-2는 슬레이브 셀렉트 신호(CSn 신호)이고, SPI/Master(11)가 커맨드로서 지령한다. SPI/Slave(12)로부터의 패킷에 포함되는 CSn 신호는 SPI/Master(11)가 상태를 모니터하기 위해 이용된다. CSn 신호는, SPI/Master(11)가 통신하고 싶은 SPI/Slave(12)를 선택하는 신호이다. CSn 신호에서는, 개개의 SPI/Slave(12)를 선택할 뿐만 아니라, SerDes(M_SerDes(31) 또는 S_SerDes(41))를 선택할 수도 있다.
C-3은 SCK 주파수이고, SPI/Master(11)가 커맨드로서 지령한다. SPI/Slave(12)로부터의 패킷에 포함되는 SCK 주파수는, SPI/Master(11)가 상태를 모니터하기 위해 이용된다. C-3은 SPI/Master(11)가 SPI/Slave(12)측의 SCK 주파수를 지정하는 것이다.
C-4는 SPI 모드이고, SPI/Master(11)가 커맨드로서 지령한다. SPI/Slave(12)로부터의 패킷에 포함되는 SPI 모드는 SPI/Master(11)가 상태를 모니터하기 위해 이용된다. 예를 들면, C-4가 0이면 도 3A의 mode=0이 선택되고, 1이면 도 3B의 mode=1이 선택되고, 2이면 도 3C의 mode=2가 선택되고, 3이면 도 3D의 mode=3이 선택된다.
C-5는 데이터 블록(DB)의 총수이고, SPI/Master(11)가 정보로서 제공한다. SPI/Slave(12)로부터의 패킷에 포함되는 DB 총수는 SPI/Master(11)가 상태를 모니터하기 위해 이용된다. C-1이 0인 때(분할 DB의 송신시)에는 C-5는 1이다. SPI/Slave(12)는 SPI 통신이 시작되고 나서의 수신 DB 수를 돌려 준다.
C-6은 현재의 데이터 블록(DB)의 위치이고, SPI/Master(11)가 정보로서 제공한다. SPI/Slave(12)로부터의 패킷에는 포함되지 않는다. C-6이 0이면, 무효인 정보인 것을 나타낸다. C-1이 0인 경우는 0이 된다. C-6이 1이면, 선두의 분할 데이터인 것을 나타낸다. 2이면, 선두와 최후 이외의 분할 데이터인 것을 나타낸다. 3이면, 최후의 분할 데이터인 것을 나타낸다.
C-7은 현재의 데이터 블록(DB)의 상태이고, SPI/Master(11)와 SPI/Slave(12)가 모두 정보로서 제공한다. C-7이 0이면 더미 데이터인 것을 나타내고, 1이면 유효 데이터인 것을 나타낸다.
C-8은 데이터 블록(DB)의 사이즈이고, SPI/Master(11)가 정보로서 제공한다. SPI/Slave(12)로부터의 패킷에 포함된 데이터 전송 사이즈는 SPI/Master(11)가 상태를 모니터하기 위해 이용된다. C-8은 데이터 전송 사이즈를 바이트 단위로 나타낸 것이고, 최대 사이즈는 511바이트이다.
C-9는 SPI/Slave(12)의 인터럽트 정보이고, SPI/Master(11)가 송신하는 패킷에는 포함되지 않고, SPI/Slave(12)가 송신하는 패킷에 포함되는 인터럽트 플래그이다. C-9가 0이면 인터럽트 없음을 나타내고, 1이면 인터럽트 있음을 나타낸다.
C-10은 SPI/Slave(12)측의 동작 상태이고, SPI/Master(11)가 송신하는 패킷에는 포함되지 않고, SPI/Slave(12)로부터의 패킷에 포함되어 있다. C-10이 0이면 정상 상태, 1이면 비지(DCP(31-3)가 비어있지 않은), 2이면 에러가 일어난(SPI 데이터가 깨진) 것을 나타낸다.
C-11은 SPI 블록(41-1)의 리셋이고, SPI/Master(11)가 커맨드로서 지령한다. SPI/Slave(12)의 패킷에는 포함되어 있지 않다. C-11이 0이면 리셋하지 않고, 1이면 S_SerDes(41)의 SPI 블록(41-1)을 리셋한다.
C-12는 현재의 데이터 블록의 번호이다. M_SerDes(31)로부터 S_SerDes(41)에 패킷을 보내는 경우, M_SerDes(31)는 각 패킷에 ID 번호를 부여한다. S_SerDes(41)로부터 M_SerDes(31)에 패킷을 보내는 경우, S_SerDes(41)는 각 패킷에, M_SerDes(31)로부터 수신한 패킷의 ID 번호와 같은 ID 번호를 부여한다.
D-1은 상술한 C-1∼C-12와 함께 송신되는 SPI 데이터이고, SPI/Master(11)가 송신하는 SPI 데이터는 M_MOSI핀으로부터 출력되고, SPI/Slave(12)가 송신하는 SPI 데이터는 S_MISO핀으로부터 출력된다.
E-1은 상술한 C-1∼C-12와 D-1과 함께 송신되는 CRC이고, SPI/Master(11)로부터 송신되는 SPI 데이터와 SPI/Slave(12)로부터 송신되는 SPI 데이터의 쌍방에 포함된다. CRC는 제어 데이터 C-1∼C-12와 SPI 데이터의 에러 검출에 이용된다.
도 11은 제1 실시 형태에 관한 통신 시스템(2)의 타이밍도이다. 도 12a 및 도 12b은 제1 실시 형태에 관한 통신 시스템(2)의 플로우차트이다. 이하, 도 11를 참조하면서, 도 12a 및 도 12b에 의거하여, 제1 실시 형태에 관한 통신 시스템(2)의 처리 동작을 설명한다.
SPI/Master(11)는 SPI 통신을 시작하기 위해 CS(M_CS)를 어서트 한다(스텝 S31, 시각 t31). 다음에, SPI/Master(11)는 SPI의 SCK(M_SCK)의 클록 출력을 시작시킨다(스텝 S32, 시각 t32).
SPI/Master(11)는 SCK에 동기하여 전송하는 N바이트의 SPI 데이터 블록(O_DB#1)을 M_SerDes(31)에 출력한다(스텝 S33, 시각 t33). 이것에 병행하여, M_SerDes(31)로부터의 데이터의 판독이 행해지지만, SPI/Master(11)는 SPI/Slave(12)로부터의 유효한 판독 데이터는 5번째의 SPI 데이터 블록의 후에 얻어지는 것을 알고 있기 때문에, 5번째까지의 SPI 데이터 블록은 파기된다. 이와 같이, SPI 데이터 블록의 파기는 5번째의 SPI 데이터 블록(O_DB#5)까지 계속된다.
M_SerDes(31)는 SPI/Master(11)로부터 수신한 SPI 데이터 블록(O_DB#1)을 일단 buffer/memory(31-1-2)에 유지한다(스텝 S34, 시각 t34).
PTB 카운터(31-6)는 buffer/memory(31-1-2)가 SPI 데이터 블록(O_DB#1) 중의 최후의 데이터를 기억한 시점을 기점으로 하여(도 9의 31-a), PTB 클록을 이용하여 시간 폭(L)을 계측한다(스텝 S35, 시각 t35).
buffer/memory(31-1-2)는 스텝 S35에서 계측한 시간 폭(L)이 경과한 후(도 9의 31-c), SPI 데이터 블록을 전송하기 위해 할당된 UP link의 TDD 버스트 기간에 SPI 데이터를 전송하기 위해, ECP(31-2)에 최초의 SPI 데이터 블록(O_DB#1)을 출력한다(스텝 S36, 시각 t36, 도 9의 31-e). ECP(31-2)는, 미리 스텝 S31의 처리를 행하기 전에 SPI/Master(11)로부터 수신한 SPI 데이터를 패킷화 하는 정보에 의거하여, SPI 데이터 블록(O_DB#1)을 패킷화하여, DLL(31-4)에 출력한다. 이 경우, 유효한 SPI 데이터를 포함하는 것 나타내기 위한 플래그(후술하는 도 10의 C-7)를 유효(valid)로 한다. 패킷화된 SPI 데이터 블록(O_DB#1)은 DLL(31-4)과 PHY(31-5)를 통하여, UP link 패킷으로서 케이블(103)에 출력된다.
S_SerDes(41)는 수신한 SPI 데이터 블록(O_DB#1)을 포함하는 UP link 패킷을 PHY(41-5)와 DLL(41-4)을 통하여 디코드하고, SPI 데이터 패킷을 패킷 디코더(41-3)에 공급한다(스텝 S37, 시각 t37). 패킷 디코더(41-3)는 SPI 데이터 패킷을 디코드하고, 디코드한 SPI 데이터 블록(O_DB#1)을 SPI 블록(41-1)에 건네준다.
S_SerDes(41)의 SPI 블록(41-1) 내의 컨트롤러(41-1-4)는 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)을 전송하기 위한 SPI 통신을 시작하는 것을 나타내는 CS(S_CS)를 어서트 한다(스텝 S38, 시각 t38). 얼마만큼의 기간 어서트하는지는 SPI 데이터 패킷에 포함되어 있는 SPI 전송 모드, SPI 데이터 블록의 데이터 사이즈(N바이트)와 1회의 SPI 통신에 포함되는 SPI 데이터 블록수의 정보로 결정된다.
S_SerDes(41)의 SPI 블록(41-1)은 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)의 전송을 하기 위한 SPI의 SCK(S_SCK)의 클록 출력을 시작시킨다(스텝 S39, 시각 t39). SPI 데이터 패킷에 포함되어 있는 SCK 주파수 정보를 이용하여 재생되어, SPI/Master(11)측의 SCK(M_SCK)와 같은 주파수가 된다.
S_SerDes(41)의 SPI 블록(41-1)은 SCK에 동기하여 N바이트의 SPI 데이터 블록(O_DB#1)을 SPI/Slave(12)에 출력한다(스텝 S40, 시각 t40). 이때, SPI mode는 SPI 데이터 패킷에 포함되어 있는 SPI mode 정보로 결정된다.
SPI/Slave(12)는 동시에 SPI 판독 데이터(I_DB#1)를 SCK(S_SCK)에 동기하여, SPI/Master(11)로부터의 기록 데이터(O_DB#1)와 같은 N바이트분을 출력한다(스텝 S41, 시각 t41).
S_SerDes(41)는 수신한 N바이트의 SPI 판독 데이터(I_DB#1)를 buffer/memory(41-1-2)에 일단 유지한다(스텝 S42, 시각 t42). buffer/memory(41-1-2)는 N바이트분의 SPI 데이터 블록(I_DB#1)을 유지한 후, DLL(도 8의 DLL(41-4))에 의해 스케줄된 최초의 SPI 데이터를 전송하기 위해 할당된 Down Link의 TDD 버스트 기간에, SPI 데이터를 전송하기 위한 캡슐화 처리를 행하는 패킷 인코더(41-2)를 통하여, 캡슐화된 SPI 데이터를 포함하는 Down Link 패킷(I_DB#1)을 생성한다. S_SerDes(41)는 그 Down Link 패킷을 케이블(103)을 통하여 M_SerDes(31)에 전송한다.
M_SerDes(31)는 수신한 SPI 데이터 블록(I_DB#1)을 포함하는 Down Link 패킷을 PHY(31-5)와 DLL(31-4)을 통하여 디코드하고, 디코드된 SPI 데이터 패킷을 패킷 디코더(31-3)에 공급한다. 패킷 디코더(31-3)는 SPI 데이터 패킷을 디코드하고, 디코드된 SPI 데이터 블록(I_DB#1)을 SPI 블록(31-1)에 건네준다(스텝 S43, 시각 t43, 도 9의 31-f).
SPI 블록(31-1) 내의 buffer/memory(31-1-2)는 일단 SPI 데이터 블록(I_DB#1)을 유지한다(스텝 S44, 시각 t44).
RTC(31-7)(도 8의 RTC(31-7))는 buffer/memory(31-1-2)가 SPI 데이터 블록(O_DB#1) 중의 최후의 데이터를 기록한 시점을 기점으로 하여(도 9의 31-a), SCK 클록을 이용하여 시간 폭(4D)을 계측한다(스텝 S45, 시각 t45).
buffer/memory(31-1-2)는 RTC(31-7)가 SCK 클록을 이용하여 시간 폭(4D)을 계측한 다음의 SCK 클록, 즉 SPI/Master(11)가 출력하는 SPI 기록 데이터(O_DB#6)의 출력 시작 시점(31-g)을 기점으로 하여, SCK에 동기하여 N바이트의 SPI 데이터 블록(O_DB#1)의 출력을 시작한다(스텝 S46, 시각 t46).
SPI/Master(11)는 SPI/Slave(12)로부터의 SPI 데이터 블록(I_DB#1)을 SCK에 동기하여 순차적으로 N바이트분 판독한다(스텝 S47, 시각 t47).
SPI/Master(11)는 동시에 기록 데이터(O_DB#6)를 출력하지만, M_SerDes(31)는 스텝 S31 보다 전에 행해지는 처리로, 본 SPI 통신으로 전송하여야 하는 SPI 데이터 블록수(본 예에서는 4)를 알고 있기 때문에, 기록 데이터(O_DB#5) 이후의 SPI 데이터 블록을 출력하기 위한 처리를 행하지 않고, 이들의 SPI 데이터 블록을 파기한다(스텝 S48, 시각 t48).
여기까지의 처리로, SPI/Master(11)는 인터럽트 신호를 이용하는 일 없이 최초의 SPI 데이터 블록(O_DB#1)의 SPI/Slave(12)에 대한 기록과, 그것에 대한 SPI/Slave(12)로부터의 SPI 데이터 블록(I_DB#1)의 판독이 완료된다.
SPI/Master(11)는 최초의 SPI 데이터 블록(O_DB#1)에 계속되어, 다음의 SPI 데이터 블록(O_DB#2)을 출력하고, 순차적으로, 전송해야 할 SPI 데이터 블록을 계속 출력한다(스텝 S49, 시각 t49).
단, SPI/Slave(12)에 전송되는 SPI 데이터 블록은 (O_DB#4)까지이고, 그 이후는 SPI/Slave(12)로부터 SPI 데이터 블록을 판독하는 처리에 부수되는 더미 데이터이다.
M_SerDes(31)는 수신한 SPI 데이터 블록(O_DB#2)을 일단 buffer/memory(31-1-2)에 유지한다(스텝 S50, 시각 t50).
buffer/memory(31-1-2)는 SPI 데이터 블록(O_DB#2)을 유지한 후, 최초에 도래하는 SPI 데이터를 전송하기 위해 할당된 UP link의 TDD 버스트 기간에, SPI 데이터를 송신하기 위해, ECP(31-2)에 SPI 데이터 블록(O_DB#2)을 출력한다(스텝 S51, 시각 t51).
여기서는, 스텝 S35와 같은 대기 시간(L)은 필요 없다. ECP(31-2)는 스텝 S31의 처리 전에 미리, 수신한 SPI 데이터를 패킷화하는 정보를 기초로 SPI 데이터 블록(O_DB#2)을 패킷화하여, DLL(31-4)에 출력한다. 패킷화된 SPI 데이터 블록(O_DB#2)은 DLL(31-4)과 PHY(31-5)를 통하여, UP link 패킷으로서 케이블(103)에 출력된다(스텝 S52, 시각 t52). 이것과 같은 처리가 나머지 SPI 기록 데이터 블록(O_DB#3, #4)에 대해서도 순차적으로 행해진다.
스텝 S40부터 스텝 S52까지의 처리가 SPI 데이터 블록(O_DB#2, #3, #4) 및 (I_DB#2, #3, #4)에 관해 순차적으로 행해진다(스텝 S53, 시각 t53).
S_SerDes(41)의 SPI 블록(41-1) 내의 컨트롤러(41-1-4)는 SPI 데이터 패킷에 기재되어 있는 블록분의 SPI 데이터를 수신한 후(본 예에서는 4블록), SPI/Slave(12)에 대해 SPI 통신을 종료하는 것을 나타내기 위해, S_SCK의 클록 출력을 정지시킨다(스텝 S54, 시각 t54).
또한, S_SerDes(41)는 S_CS를 디어서트함으로써, S_SerDes(41)와 SPI/Slave(12) 사이의 SPI 통신을 종료한다(스텝 S55, 시각 t55).
SPI/Master(11)는 SPI/Slave(12)로부터의 판독 SPI 데이터 블록수(본 예에서는 4)에, SPI 통신 시작 타이밍과 TDD 버스트의 위상 관계에 의하지 않는 처리 지연 시간인 5개의 SPI 데이터 블록수를 가산한 분(본 예에서는 4+5=9)까지, SCK를 클록 출력시켜서, SPI 데이터 블록(I_DB#4)까지 판독 처리를 계속하고, 판독 종료 후에, M_CS를 디어서트하여, SPI 통신을 종료한다(스텝 S56, 시각 t56).
이상의 처리 동작에 의해, SPI/Master(11)와 SPI/Slave(12) 사이의 M_SerDes(31)와 S_SerDes(41)를 통한 SPI 통신이 인터럽트 신호를 이용하지 않고 행하는 것이 가능하다.
도 13은 도 11의 한 변형례에 관한 타이밍도이다. 도 13은 SPI 통신 시작 타이밍과 TDD 버스트 신호의 타이밍의 관계가 도 11과는 다른 예를 나타내고 있다.
도 11와 마찬가지로, 스텝 S35에서, SPI 통신 시작시의 SPI 데이터 블록(O_DB#1)을 TDD 버스트 신호의 UP link로 전송할 때에, PTB 카운터(31-6)에서 SPI 데이터 블록(O_DB#1)이 buffer/memory(31-1-2)에 유지된 때를 기점으로 하여 시간 폭(L)을 카운트하고, 그 이후의 SPI 데이터에 할당된 TDD 버스트 기간에 UP link 패킷으로 SPI 데이터를 전송하고, 같은 기점으로부터 SCK 클록을 계측하고, 4D 시간을 센 후에, SPI/Slave(12)로부터의 최초의 판독 데이터를 판독함으로써, 인터럽트 신호를 이용하는 일 없이, SPI/Master(11)는 SPI 데이터를 올바르게 판독할 수 있다. 도 13 중의 번호와 그 설명은 전부 도 11와 같기 때문에, 설명은 생략한다.
이와 같이, 제1 실시 형태에서는, SPI/Master(11)가 4개의 SPI 데이터 블록을 M_SerDes(31)에 송신한 후, M_SerDes(31)는 S_SerDes(41)로부터 송신된 SPI/Slave(12)로부터의 응답 데이터를 포함하는 패킷을 수신하여, 대응하는 SPI 데이터 블록을 SPI/Master(11)에 송신한다. 이에 의해, SPI/Master(11)는 M_SerDes(31)로부터의 인터럽트 신호가 없어도, SPI/Slave(12)로부터의 응답 데이터가 도달하는지를 사전에 파악할 수 있고, 응답 데이터를 올바르게 수신할 수 있다. 따라서, SPI/Master(11)와 M_SerDes(31) 사이에서 인터럽트 신호를 송수하지 않고서 해결되어, 인터럽트 신호용의 핀도 불필요하게 되고, 비용 저감이 도모할 수 있다.
(제2 실시 형태)
제1 실시 형태에서는, SPI 통신 시작시의 SPI 데이터 블록(O_DB#1)을 TDD 버스트 기간에 UP link 패킷에 전송할 때에, SPI 데이터 블록(O_DB#1)이 buffer/memory(31-1-2)에 유지된 때를 기점으로 하여 시간 폭(L)을 PTB 카운터(31-6)에서 카운트하고, 시간 폭(L)이 경과한 후에, 그 이후의 SPI 데이터를 UP link 패킷으로 차례로 전송한다. 또한, 같은 기점으로부터 RTC(31-7)에서 SCK 클록을 계측하여 4D 시간을 센 후에, SPI/Slave(12)로부터의 최초의 판독 데이터를 판독한다. 이에 의해, 인터럽트 신호를 이용하는 일 없이, SPI/Master(11)는 SPI 데이터를 올바르게 판독할 수 있는데, 그 한편으로, M_SerDes(31)로부터 S_SerDes(41)에 데이터를 송신할 때까지 처리 지연 시간(L)이 생기기 때문에, SPI/Slave(12)에 SPI/Master(11)로부터의 SPI 데이터가 도달하는 것이 늦어 버린다.
이하에 설명하는 제2 실시 형태에 관한 통신 시스템(2)은 M_SerDes(31)가 SPI/Master(11)로부터의 SPI 데이터 블록을 수신한 후, 처리 지연 시간(L)이 경과할 때까지 대기하는 일 없이, SPI 데이터 블록을 패킷화하여 S_SerDes(41)에 송신하는 것을 특징으로 한다.
제2 실시 형태에 관한 통신 시스템(2)은 도 8과 같은 블록 구성을 구비하고 있다. 제2 실시 형태에 관한 M_SerDes(31) 내의 DLL(31-4)은, SPI/Master(11)로부터 송신된 데이터 블록이 buffer/memory(31-1-2)에 기억되고 나서, 제2 기간이 경과하기 전의 프레임 기간에, buffer/memory(31-1-2)에 기억된 데이터 블록을 S_SerDes(41)에 송신한다. DLL(31-3)은 S_SerDes(41)에 송신해야 할 데이터 블록의 준비가 정돈되지 않은 경우에는, 다음의 프레임 기간까지 S_SerDes(41)에의 데이터 블록의 송신을 정지한다. buffer/memory(31-1-2)는 SPI/Master(11)로부터 데이터 블록에 대해 S_SerDes(41)로부터의 데이터 블록이 도달하지 않은 경우에는, 다음의 프레임 기간까지 새로운 데이터 블록의 기억을 정지한다.
도 14는 제2 실시 형태에 관한 통신 시스템(2)의 타이밍도이다. 도 15a 및 도 15b은 제2 실시 형태에 관한 통신 시스템(2)의 처리 동작을 도시하는 플로우차트이다. 이하, 도 14를 참조하면서, 도 15a 및 도 15b에 의거하여, 제2 실시 형태에 관한 통신 시스템(2)의 처리 동작을 설명한다.
SPI/Master(11)는 SPI 통신을 시작하기 위해 CS(M_CS)를 어서트 한다.(스텝 S61, 시각 t61). SPI/Master(11)는 SPI의 SCK의 클록 출력을 시작시킨다(스텝 S62, 시각 t62).
SPI/Master(11)는 SCK에 동기하여 전송하는 N바이트의 SPI 데이터 블록(O_DB#1)을 M_SerDes(31)에 출력한다(스텝 S63, 시각 t63). 동시에, M_SerDes(31)로부터의 데이터의 판독이 행해진다. SPI/Master(11)는 SPI/Slave(12)로부터의 유효한 판독 데이터는 5개의 SPI 데이터 블록을 송신한 후에 얻어지는 것을 알고 있기 때문에, M_SerDes(31)로부터의 판독 데이터는 파기된다. 판독 데이터의 파기는 5번째의 SPI 데이터 블록(O_DB#5)을 송신할 때까지의 기간, 계속해서 행해진다.
M_SerDes(31)는 수신한 SPI 데이터 블록(O_DB#1)을 일단 buffer/memory(31-1-2)에 유지한다(스텝 S64, 시각 t64).
buffer/memory(31-1-2)는 SPI 데이터 블록(O_DB#1) 중의 최후의 데이터를 유지한 후, SPI 데이터를 전송하기 위해 할당된 UP link의 최초에 도래하는 TDD 버스트 기간에, SPI 데이터 블록(O_DB#1)을 송신하기 위해, ECP(31-2)에 SPI 데이터 블록(O_DB#1)을 출력한다(스텝 S65, 시각 t65, 도 9의 31-e).
ECP(31-2)는 스텝 S61의 처리 전에 미리 수신한 SPI 데이터를 패킷화하는 정보를 기초로 하여 SPI 데이터 블록(O_DB#1)을 도 10에 의거한 형식으로 패킷화하여, DLL(31-4)에 출력한다. 이 경우, 유효한 SPI 데이터를 포함하는 것을 나타내기 위한 플래그(도 10의 C-7)를 valid로 한다. 패킷화된 SPI 데이터 블록(O_DB#1)은 DLL(31-4)과 PHY(31-5)를 통하여, UP link 패킷으로서 케이블(103)에 출력된다.
S_SerDes(41)는 수신한 SPI 데이터 블록(O_DB#1)을 포함하는 UP link 패킷을 PHY(41-5)와 DLL(41-4)을 통하여 디코드하고, SPI 데이터 패킷을 패킷 디코더(41-3)에 공급한다(스텝 S66, 시각 t66). 패킷 디코더(41-3)는 SPI 데이터 패킷을 디코드하고, 디코드한 SPI 데이터 블록(O_DB#1)을 SPI 블록(41-1)에 건네준다.
S_SerDes(41)의 SPI 블록(41-1) 내의 컨트롤러(41-1-4)는 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)을 전송하기 위한 SPI 통신을 시작하는 것을 나타내는 CS(S_CS)를 어서트 한다(스텝 S67, 시각 t67). 얼마만큼의 기간 어서트하는지는 SPI 데이터 패킷에 포함되어 있는 SPI 전송 모드, SPI 데이터 블록의 데이터 사이즈(N바이트)와 1회의 SPI 통신에서 사용하는 SPI 데이터 블록수의 정보로 결정된다.
S_SerDes(41)의 SPI 블록(41-1)은 SPI/Slave(12)에 SPI 데이터 블록(O_DB#1)을 전송하기 위한 SPI의 SCK(S_SCK)의 클록 출력을 시작시킨다(스텝 S68, 시각 t68). SPI 데이터 패킷에 포함되어 있는 SCK 주파수 정보를 이용하여 재생되고, SPI/Master(11)측의 SCK(M_SCK)와 같은 주파수가 된다.
S_SerDes(41)의 SPI 블록(41-1)은 SCK에 동기하여 N바이트의 SPI 데이터 블록(O_DB#1)을 SPI/Slave(12)에 출력한다(스텝 S69, 시각 t69). 이때, SPI mode는 SPI 데이터 패킷에 포함되어 있는 SPI mode 정보로 결정된다.
SPI/Slave(12)는 동시에 SPI 판독 데이터(I_DB#1)를 SCK(S_SCK)에 동기하여, 기록 데이터(O_DB#1)와 같은 N바이트분을 출력한다(스텝 S70, 시각 t70).
S_SerDes(41)는 수신한 N바이트의 SPI 판독 데이터(I_DB#1)를 buffer/memory(41-1-2)에 일단 유지한다(스텝 S71, 시각 t71). buffer/memory(41-1-2)는 N바이트분의 SPI 데이터 블록(I_DB#1)을 유지한 후, DLL(도 8의 DLL(41-4))에 의해 스케줄된 SPI 데이터를 전송하기 위해 할당된, 최초에 도래하는 Down Link의 TDD 버스트 기간에, SPI 데이터를 전송하기 위한 캡슐화 처리를 행하는 패킷 인코더(41-2)를 통하여, 캡슐화된 SPI 데이터 패킷(I_DB#1)을 전송한다. S_SerDes(41)는 그 Down Link 패킷을 케이블(103)을 통하여 M_SerDes(31)에 전송한다.
M_SerDes(31)는 수신한 SPI 데이터 블록(I_DB#1)을 포함하는 Down Link 패킷을 PHY(31-5)와 DLL(31-4)을 통하여 디코드하고, SPI 데이터 패킷을 패킷 디코더(31-3)에 공급한다(스텝 S72, 시각 t72). 패킷 디코더(31-3)는 SPI 데이터 패킷을 디코드하고, 디코드한 SPI 데이터 블록(I_DB#1)을 SPI 블록(31-1)에 건네준다(도 9의 31-f).
SPI 블록(31-1) 내의 buffer/memory(31-1-2)는 일단 SPI 데이터 블록(I_DB#1)을 유지한다(스텝 S73, 시각 t73).
RTC(31-7)는 buffer/memory(31-1-2)가 SPI 데이터 블록(O_DB#1)의 최후의 데이터를 기록한 시점을 기점으로 하여(도 9의 31-a), SCK 클록을 이용하여 시간 폭(4D)을 계측한다(스텝 S74, 시각 t74).
buffer/memory(31-1-2)는 RTC(31-7)가 SCK 클록을 이용하여 시간 폭(4D)을 계측한 다음의 SCK 클록, 즉 SPI/Master(11)가 출력하는 SPI 기록 데이터(O_DB#6)의 출력 시작 시점(31-g)을 기점으로 하여, SCK에 동기하여 N바이트의 SPI 데이터 블록(O_DB#1)의 출력을 시작한다(스텝 S75, 시각 t75).
SPI/Master(11)는 SPI/Slave(12)로부터의 SPI 데이터 블록(I_DB#1)을 SCK에 동기하여, 순차적으로, N바이트분 판독한다(스텝 S76, 시각 t76).
SPI/Master(11)는 동시에 기록 데이터(O_DB#6)를 출력한다. M_SerDes(31)는 스텝 S61의 처리 전에 행해지는 처리 순서로, 본 SPI 통신에서 전송하여야 하는 SPI 데이터 블록수(본 예에서는 4)를 알고 있기 때문에, 기록 데이터(O_DB#5) 이후의 SPI 데이터 블록이 출력하기 위한 처리를 행하지 않고, 그들의 SPI 데이터 블록을 파기한다(스텝 S77, 시각 t77).
여기까지의 처리 순서로, SPI/Master(11)는 인터럽트 신호를 이용하는 일 없이 최초의 SPI 데이터 블록(O_DB#1)의 SPI/Slave(12)에 대한 기록과, 그것에 대한 SPI/Slave(12)로부터의 SPI 데이터 블록(I_DB#1)의 판독이 완료된다.
SPI/Master(11)는 최초의 SPI 데이터 블록(O_DB#1)에 계속해서, 다음의 SPI 데이터 블록(O_DB#2)을 출력하고, 순차적으로, 전송해야 할 SPI 데이터 블록을 계속 출력한다(스텝 S78, 시각 t78). 단, SPI/Slave(12)에 전송되는 SPI 데이터 블록은 (O_DB#4)까지이고, 그 이후는 SPI/Slave(12)로부터의 판독 데이터를 판독 위한 처리에 부수되는 더미 데이터이다. 이후, 각 SPI 데이터 블록(O_DB#2, 3, 4)에 대해 스텝 S63∼S78과 같은 처리가 행해진다. 제2 실시 형태에서는, SPI/Master(11)로부터 송신된 최초의 SPI 데이터 블록(O_DB#1)을 M_SerDes(31)에서 처리 지연 시간(L)을 발생시키지 않고 데이터 전송을 행함에 의해, 이하에 나타내는 다른 처리가 필요해진다.
buffer/memory(31-1-2)는 순서대로 SPI/Master(11)로부터 입력되는 SPI 데이터 블록(I_DB#X)을 일단 유지하고, SPI 데이터를 전송하는데 할당된 UP link에 ECP(31-2)를 경유하여 출력하는데, UP link용의 TDD 버스트 기간의 타이밍에서, SPI 데이터(이 경우, O_DB#3)가 buffer/memory(31-1-2)에 모두 모여 있지 않기 때문에, ECP(31-2)는 SPI 데이터를 포함하지 않는 것을 나타내는 플래그(도 10의 C-7)를 Invalid로 하여, DLL(31-4)에 출력한다(스텝 S79, 시각 t79). DLL(31-4)과 PHY(31-5)는 SPI 데이터를 포함하지 않은 SPI 패킷을 UP link 패킷으로서 케이블(103)에 출력한다.
S_SerDes(41)는 수신한 UP link의 SPI 패킷을 DCP(41-3)에서 해석하고, 빈(空) 플래그(도 10의 C-7 Invalid)를 검출함으로써, SPI 데이터가 포함되지 않은 것을 알면, SPI 블록(41-1) 내의 컨트롤러(41-1-4)에 그 정보를 보내고, 컨트롤러(41-1-4)는 SCK 생성기(41-1-3)의 동작을 정지하고, SCK 클록의 출력을 정지한다(스텝 S80, 시각 t80). 이에 의해, S_SerDes(41)와 SPI/Slave(12) 사이의 SPI 통신은 일시적으로 정지된다.
S_SerDes(41)는 SPI 데이터 블록(O_DB#3)을 포함하는 UP link 패킷을 수신하면, DCP(41-3)가 해석하고, SPI 데이터가 포함되어 있는 것을 파악하여 SPI 통신을 재개(再開)하고, SPI 블록(41-1) 내의 컨트롤러(41-1-4)에 그 정보를 보낸다(스텝 S81, 시각 t81).
컨트롤러(41-1-4)는 SCK 생성기(41-1-3)의 동작을 재개하고, SCK의 클록 출력을 시작시킨다(스텝 S82, 시각 t82).
스텝 S69∼S78의 처리는 각 SPI 데이터 블록(O_DB#3, #4) 및 (I_DB#3, #4)에 관해 순차적으로 행해진다(스텝 S83, 시각 t83).
S_SerDes(41)의 SPI 블록(41-1) 내의 컨트롤러(41-1-4)는, SPI 데이터 패킷에 기술되어 있는 블록수만큼의 SPI 데이터를 수신한 후(본 예에서는 4블록), SPI/Slave(12)에 대해 SPI 통신의 종료를 통지하기 위해, S_SCK의 클록 출력을 정지시킨다(스텝 S84, 시각 t84).
또한 S_CS를 디어서트함으로써, S_SerDes(41)와 SPI/Slave(12) 사이의 SPI 통신을 종료한다(스텝 S85, 시각 t85).
SPI/Master(11)는 SPI/Slave(12)로부터의 판독 SPI 데이터 블록수(본 예에서는 4)에, SPI 통신 시작 타이밍과 TDD 버스트 기간의 위상 관계에 의하지 않는 처리 지연 시간인 5개의 SPI 데이터 블록수를 가산한 수(본 예에서는 4+5=9)까지, SCK의 클록 출력을 행하게 하여, SPI 데이터 블록(I_DB#4)까지 판독 처리를 계속하고, 판독 종료 후에, M_CS를 디어서트하여, SPI 통신을 종료한다(스텝 S86, 시각 t86).
이와 같이, SPI/Master(11)로부터의 SPI 데이터 블록을 수신한 M_SerDes(31)는 TDD의 프레임 기간(L)이 경과하기 전에, 수신된 SPI 데이터 블록을 포함하는 UP link 패킷을 S_SerDes(41)에 송신한다. 따라서, SPI/Master(11)로부터의 SPI 데이터 블록을 신속하게 SPI/Slave(12)에 송신할 수 있다. S_SerDes(41)는 M_SerDes(31)로부터의 UP link 패킷이 도달하지 않은 경우는 시프트 레지스터에 클록을 공급하지 않도록 하기 때문에, M_SerDes(31)로부터 UP link 패킷이 도달하는 타이밍에 맞추어서 시프트 레지스터를 동작시킬 수 있고, 소비 전력의 삭감이 도모된다.
또한, 본 기술은 이하와 같은 구성을 취할 수 있다.
(1) 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 통신부와,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 기억된 데이터 블록을 상기 마스터에 송신하기 위해 출력하는 기억부를 구비하는 통신 장치.
(2) 상기 소정수의 데이터 블록은 상기 소정수의 프레임 기간에 상기 통신 상대 장치에 전송되는 (1)에 기재된 통신 장치.
(3) 상기 소정수의 데이터 블록은 상기 마스터로부터 송신된 상기 시리얼 신호군에 포함되는 상기 데이터 블록의 총수 정보에 대응한 소정수의 연속한 데이터 블록인 (1) 또는 (2)에 기재된 통신 장치.
(4) 상기 마스터와 상기 슬레이브 사이에서 공유되는 기준 클록에 의거하여, 상기 프레임 기간의 길이를 계측하는 제1 카운터와,
상기 마스터로부터 송신된 데이터 블록의 수를 카운트하는 제2 카운터를 구비하고,
상기 기억부는 상기 제1 카운터 및 상기 제2 카운터의 카운트값에 응한 타이밍에서, 상기 소정수의 데이터 블록을 차례로 기억하고, 그 후에, 기억된 상기 통신 상대 장치로부터의 데이터 블록을 출력하는 (1) 내지 (3)의 어느 한 항에 기재된 통신 장치.
(5) 상기 기준 클록은 ASA(Automotive SerDes Alliance) 규격으로 규정된 주파수의 클록이고,
상기 제2 카운터는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 클록에 동기시켜서 카운트 동작을 행하는 (4)에 기재된 통신 장치.
(6) 상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 기억부에 기억하는 주기인 제1 기간은 상기 통신부가 상기 통신 상대 장치에 상기 데이터 블록을 포함하는 패킷을 송신하는 주기인 제2 기간과 같거나, 또는 상기 제2 기간보다 긴 (1) 내지 (5)의 어느 한 항에 기재된 통신 장치.
(7) 상기 제2 기간은 상기 제1 기간의 반분의 기간보다 긴 (6)에 기재된 통신 장치.
(8) 상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과한 후의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신하는 (6) 또는 (7)에 기재된 통신 장치.
(9) 상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과하기 전의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신하는 (6) 또는 (7)에 기재된 통신 장치.
(10) 상기 통신부는 상기 통신 상대 장치에 송신해야 할 데이터 블록의 준비가 정돈되지 않은 경우에는, 다음의 프레임 기간까지 상기 통신 상대 장치에의 데이터 블록의 송신을 정지하는 (9)에 기재된 통신 장치.
(11) 상기 기억부는 상기 마스터로부터 데이터 블록에 대해 상기 통신 상대 장치로부터의 데이터 블록이 도달하지 않은 경우에는, 다음의 프레임 기간까지 새로운 데이터 블록의 기억을 정지하는 (10)에 기재된 통신 장치.
(12) 상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 제1 기간마다 차례로 상기 기억부에 기억한 후, 상기 통신 상대 장치로부터 송신되어 상기 기억부에 기억된 데이터 블록을 상기 제1 기간마다 상기 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 시프트 레지스터를 구비하는 (6) 내지 (11)의 어느 한 항에 기재된 통신 장치.
(13) 상기 시프트 레지스터는 상기 통신 상대 장치로부터의 데이터 블록이 도달한 것을 나타내는 인터럽트 신호를 상기 마스터에 송신하는 일 없이, 상기 기억부에 기억된 상기 통신 상대 장치로부터의 데이터 블록을 차례로 판독하여 상기 마스터에 송신하는 (12)에 기재된 통신 장치.
(14) 상기 통신부는 상기 통신 상대 장치와의 사이에서, TDD(Time Division Duplex)에 응한 상기 통신 프로토콜로, 상기 프레임 기간 내의 서로 다른 기간에 상기 마스터로부터의 데이터 블록을 상기 통신 상대 장치에 송신하고, 또한 상기 통신 상대 장치로부터의 데이터 블록을 수신하는 (1) 내지 (13)의 어느 한 항에 기재된 통신 장치.
(15) 소정의 통신 프로토콜로 패킷을 송수하는 제1 통신 장치 및 제2 통신 장치를 구비하고,
상기 제1 통신 장치는,
마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 상기 제2 통신 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 제2 통신 장치에 송신하는 제1 통신부와,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 제2 통신 장치를 통하여 송신된 데이터 블록을 기억하는 제1 기억부를 가지고,
상기 제2 통신 장치는 상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록에 응답하여 상기 슬레이브로부터 송신된 데이터 블록을 적어도 하나의 상기 프레임 기간 내에 상기 제1 통신 장치에 송신하는 제2 통신부를 갖는 통신 시스템.
(16) 상기 제1 통신 장치는 상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제1 기억부에 기억한 후, 상기 제2 통신 장치로부터 송신되어 상기 제1 기억부에 기억된 데이터 블록을 상기 제1 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 제1 시프트 레지스터를 가지고,
상기 제2 통신 장치는,
상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 기억함과 함께, 상기 슬레이브로부터 송신된 데이터 블록을 기억하는 제2 기억부와,
상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제2 기억부에 기억함과 함께, 상기 슬레이브로부터 송신되어 상기 제2 기억부에 기억된 데이터 블록을 상기 제2 기억부로부터 차례로 판독하여 상기 제2 통신부를 통하여 상기 제1 통신부에 송신하는 제2 시프트 레지스터를 갖는 (15)에 기재된 통신 시스템.
(17) 상기 제2 시프트 레지스터는 상기 제2 기억부에 기억해야 할 데이터 블록과, 상기 제1 통신부에 송신해야 할 데이터 블록이 존재하지 않은 경우에는, 시프트 동작을 정지하는 (16)에 기재된 통신 시스템.
(18) 상기 제2 기억부에 기억해야 할 데이터 블록이 상기 제2 통신부에서 수신된 경우에, 상기 제2 시프트 레지스터에 시프트 동작을 행하게 하는 클록을 생성하는 클록 생성기를 갖는 (17)에 기재된 통신 시스템.
(19) 상기 클록은 상기 마스터가 상기 제1 통신 장치에 송신하는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 시리얼 클록에 동기하고 있는 (18)에 기재된 통신 시스템.
(20) 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 스텝과,
상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 기억부에 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 상기 기억부에 기억된 데이터 블록을 상기 마스터에 송신하기 위해 판독하는 스텝를 구비하는 통신 방법.
본 개시의 양태는 상술한 개개의 실시 형태로 한정되는 것이 아니고, 당업자가 상도할 수 있는 여러 가지의 변형도 포함하는 것이고, 본 개시의 효과도 상술한 내용으로 한정되지 않는다. 즉, 특허청구의 범위에 규정된 내용 및 그 균등물로부터 도출되는 본 개시의 개념적인 사상과 취지를 일탈하지 않는 범위에서 여러 가지의 추가, 변경 및 부분적 삭제가 가능하다.
1a: 통신 장치
1b: 통신 장치
2: 통신 시스템
11: SPI/Master
11-1: 시프트 레지스터
11-2: buffer/memory
11-3: 컨트롤러
11-4: SCK 생성기
12-1: 시프트 레지스터
12-2: buffer/memory
31: M_SerDes
31-1: SPI 블록
31-1-1: 시프트 레지스터
31-1-2: buffer/memory
31-2: 패킷 인코더
31-3: 패킷 디코더
31-5: PHY
31-6: PTB 카운터
31-7: RTC 카운터
32: 주변 장치
41: S_SerDes
41-1: SPI 블록
41-1-1: 시프트 레지스터
41-1-2: buffer/memory
41-1-3: SCK 생성기
41-1-4: 컨트롤러
41-2: 패킷 인코더
41-3: 패킷 디코더
41-5: PHY
103: 케이블

Claims (20)

  1. 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 통신부와,
    상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 기억된 데이터 블록을 상기 마스터에 송신하기 위해 출력하는 기억부를 구비하는 것을 특징으로 하는 통신 장치.
  2. 제1항에 있어서,
    상기 소정수의 데이터 블록은 상기 소정수의 프레임 기간에 상기 통신 상대 장치에 전송되는 것을 특징으로 하는 통신 장치.
  3. 제1항에 있어서,
    상기 소정수의 데이터 블록은 상기 마스터로부터 송신된 상기 시리얼 신호군에 포함되는 상기 데이터 블록의 총수 정보에 대응한 소정수의 연속한 데이터 블록인 것을 특징으로 하는 통신 장치.
  4. 제1항에 있어서,
    상기 마스터와 상기 슬레이브 사이에서 공유되는 기준 클록에 의거하여, 상기 프레임 기간의 길이를 계측하는 제1 카운터와,
    상기 마스터로부터 송신된 데이터 블록의 수를 카운트하는 제2 카운터를 구비하고,
    상기 기억부는 상기 제1 카운터 및 상기 제2 카운터의 카운트값에 응한 타이밍에서, 상기 소정수의 데이터 블록을 차례로 기억하고, 그 후에, 기억된 상기 통신 상대 장치로부터의 데이터 블록을 출력하는 것을 특징으로 하는 통신 장치.
  5. 제4항에 있어서,
    상기 기준 클록은 ASA(Automotive SerDes Alliance) 규격으로 규정된 주파수의 클록이고,
    상기 제2 카운터는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 클록에 동기시켜서 카운트 동작을 행하는 것을 특징으로 하는 통신 장치.
  6. 제1항에 있어서,
    상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 기억부에 기억하는 주기인 제1 기간은, 상기 통신부가 상기 통신 상대 장치에 상기 데이터 블록을 포함하는 패킷을 송신하는 주기인 제2 기간과 같거나, 또는 상기 제2 기간보다도 긴 것을 특징으로 하는 통신 장치.
  7. 제6항에 있어서,
    상기 제2 기간은 상기 제1 기간의 반분의 기간보다도 긴 것을 특징으로 하는 통신 장치.
  8. 제6항에 있어서,
    상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과한 후의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신하는 것을 특징으로 하는 통신 장치.
  9. 제6항에 있어서,
    상기 통신부는 상기 마스터로부터 송신된 데이터 블록이 상기 기억부에 기억되고 나서, 상기 제2 기간이 경과하기 전의 상기 프레임 기간에, 상기 기억부에 기억된 데이터 블록을 상기 통신 상대 장치에 송신하는 것을 특징으로 하는 통신 장치.
  10. 제9항에 있어서,
    상기 통신부는 상기 통신 상대 장치에 송신해야 할 데이터 블록의 준비가 정돈되지 않은 경우에는, 다음의 프레임 기간까지 상기 통신 상대 장치에의 데이터 블록의 송신을 정지하는 것을 특징으로 하는 통신 장치.
  11. 제10항에 있어서,
    상기 기억부는 상기 마스터로부터 데이터 블록에 대해 상기 통신 상대 장치로부터의 데이터 블록이 도달하지 않은 경우에는, 다음의 프레임 기간까지 새로운 데이터 블록의 기억을 정지하는 것을 특징으로 하는 통신 장치.
  12. 제6항에 있어서,
    상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 상기 제1 기간마다 차례로 상기 기억부에 기억한 후, 상기 통신 상대 장치로부터 송신되어 상기 기억부에 기억된 데이터 블록을 상기 제1 기간마다 상기 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 시프트 레지스터를 구비하는 것을 특징으로 하는 통신 장치.
  13. 제12항에 있어서,
    상기 시프트 레지스터는 상기 통신 상대 장치로부터의 데이터 블록이 도달한 것을 나타내는 인터럽트 신호를 상기 마스터에 송신하는 일 없이, 상기 기억부에 기억된 상기 통신 상대 장치로부터의 데이터 블록을 차례로 판독하여 상기 마스터에 송신하는 것을 특징으로 하는 통신 장치.
  14. 제1항에 있어서,
    상기 통신부는 상기 통신 상대 장치와의 사이에서, TDD(Time Division Duplex)에 응한 상기 통신 프로토콜로, 상기 프레임 기간 내의 서로 다른 기간에 상기 마스터로부터의 데이터 블록을 상기 통신 상대 장치에 송신하고, 또한 상기 통신 상대 장치로부터의 데이터 블록을 수신하는 것을 특징으로 하는 통신 장치.
  15. 소정의 통신 프로토콜로 패킷을 송수하는 제1 통신 장치 및 제2 통신 장치를 구비하고,
    상기 제1 통신 장치는,
    마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 상기 제2 통신 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 제2 통신 장치에 송신하는 제1 통신부와,
    상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 제2 통신 장치를 통하여 송신된 데이터 블록을 기억하는 제1 기억부를 가지고,
    상기 제2 통신 장치는 상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록에 응답하여 상기 슬레이브로부터 송신된 데이터 블록을 적어도 하나의 상기 프레임 기간 내에 상기 제1 통신 장치에 송신하는 제2 통신부를 갖는 것을 특징으로 하는 통신 시스템.
  16. 제15항에 있어서,
    상기 제1 통신 장치는 상기 마스터로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제1 기억부에 기억한 후, 상기 제2 통신 장치로부터 송신되어 상기 제1 기억부에 기억된 데이터 블록을 상기 제1 기억부로부터 차례로 판독하여 상기 마스터에 송신하는 제1 시프트 레지스터를 가지고,
    상기 제2 통신 장치는,
    상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 기억함과 함께, 상기 슬레이브로부터 송신된 데이터 블록을 기억하는 제2 기억부와,
    상기 제1 통신부로부터 송신된 상기 소정수의 데이터 블록을 차례로 상기 제2 기억부에 기억함과 함께, 상기 슬레이브로부터 송신되어 상기 제2 기억부에 기억된 데이터 블록을 상기 제2 기억부로부터 차례로 판독하여 상기 제2 통신부를 통하여 상기 제1 통신부에 송신하는 제2 시프트 레지스터를 갖는 것을 특징으로 하는 통신 시스템.
  17. 제16항에 있어서,
    상기 제2 시프트 레지스터는 상기 제2 기억부에 기억해야 할 데이터 블록과, 상기 제1 통신부에 송신해야 할 데이터 블록이 존재하지 않는 경우에는, 시프트 동작을 정지하는 것을 특징으로 하는 통신 시스템.
  18. 제17항에 있어서,
    상기 제2 기억부에 기억해야 할 데이터 블록이 상기 제2 통신부에서 수신된 경우에, 상기 제2 시프트 레지스터에 시프트 동작을 행하게 하는 클록을 생성하는 클록 생성기를 갖는 것을 특징으로 하는 통신 시스템.
  19. 제18항에 있어서,
    상기 클록은 상기 마스터가 상기 제1 통신 장치에 송신하는 상기 SPI에 준거하는 시리얼 신호군에 포함되는 시리얼 클록에 동기하고 있는 것을 특징으로 하는 통신 시스템.
  20. 마스터로부터 클록에 동기하여 송신된 SPI(Serial Peripheral Interface)에 준거하는 시리얼 신호군을 포함하는 한 묶음의 데이터 블록에, 상기 데이터 블록을 식별하는 식별 정보를 부가하여, 소정의 통신 프로토콜의 하나의 프레임 기간 내에 통신 상대 장치에 송신하든지, 또는 상기 시리얼 신호군의 일부씩을 포함하는 복수의 데이터 블록에 상기 복수의 데이터 블록의 각각을 식별하는 식별 정보를 부가하여, 복수의 프레임 기간에 상기 통신 상대 장치에 송신하는 스텝과,
    상기 마스터로부터 송신된 1 이상의 소정수의 데이터 블록을 기억부에 차례로 기억한 후에, 상기 마스터로부터의 상기 소정수의 데이터 블록에 응답하여 슬레이브로부터 상기 통신 상대 장치를 통하여 송신되어 상기 기억부에 기억된 데이터 블록을 상기 마스터에 송신하기 위해 판독하는 스텝를 구비하는 것을 특징으로 하는 통신 방법.
KR1020237033268A 2021-04-07 2022-04-06 통신 장치, 통신 시스템 및 통신 방법 KR20230162622A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163171745P 2021-04-07 2021-04-07
US63/171,745 2021-04-07
US17/713,534 2022-04-05
US17/713,534 US11960434B2 (en) 2021-04-07 2022-04-05 Communication device, communication system, and communication method for transmitting data blocks including signal groups conforming to a serial peripheral interface
PCT/JP2022/017149 WO2022215701A1 (ja) 2021-04-07 2022-04-06 通信装置、通信システム及び通信方法

Publications (1)

Publication Number Publication Date
KR20230162622A true KR20230162622A (ko) 2023-11-28

Family

ID=83509285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033268A KR20230162622A (ko) 2021-04-07 2022-04-06 통신 장치, 통신 시스템 및 통신 방법

Country Status (6)

Country Link
US (1) US11960434B2 (ko)
EP (1) EP4322451A1 (ko)
JP (1) JPWO2022215701A1 (ko)
KR (1) KR20230162622A (ko)
CN (1) CN117178517A (ko)
WO (1) WO2022215701A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011239011A (ja) 2010-05-06 2011-11-24 Hitachi Kokusai Electric Inc 無線基地局装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039931A (ja) 2009-08-17 2011-02-24 Sony Corp 信号処理装置、及び信号伝送方法
GB2512928B (en) * 2013-04-12 2016-01-06 Protean Electric Ltd A control system for an electric motor
US10146727B2 (en) 2015-04-14 2018-12-04 Qualcomm Incorporated Enhanced virtual GPIO with multi-mode modulation
US10140242B2 (en) 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
KR102447016B1 (ko) * 2017-11-01 2022-09-27 삼성디스플레이 주식회사 디스플레이 구동 집적 회로, 디스플레이 시스템, 및 디스플레이 구동 집적 회로의 구동 방법
DE102019126668A1 (de) * 2019-10-02 2021-04-08 Phoenix Contact Gmbh & Co. Kg Ein-/ausgabe-einheit zur datenerfassung bei einem feldbussystem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011239011A (ja) 2010-05-06 2011-11-24 Hitachi Kokusai Electric Inc 無線基地局装置

Also Published As

Publication number Publication date
US11960434B2 (en) 2024-04-16
WO2022215701A1 (ja) 2022-10-13
US20220327089A1 (en) 2022-10-13
EP4322451A1 (en) 2024-02-14
CN117178517A (zh) 2023-12-05
JPWO2022215701A1 (ko) 2022-10-13

Similar Documents

Publication Publication Date Title
CN106951388B (zh) 一种基于PCIe的DMA数据传输方法及系统
US8867573B2 (en) Transferring data between asynchronous clock domains
US20060259669A1 (en) Latency insensitive FIFO signaling protocol
CN108683536B (zh) 异步片上网络的可配置双模式融合通信方法及其接口
JP2004521426A (ja) バスサイクル毎に選択可能な数のデータワードの読み出し及び/又は書き込みを行うことができるファーストイン・ファーストアウトバッファ
WO2022172837A1 (ja) 通信装置、通信システム及び通信方法
KR100944892B1 (ko) 버스 시스템 및 버스 인터페이스
WO2022045144A1 (ja) 通信装置、通信システム及び通信方法
KR20110115572A (ko) 메모리 요청과 데이터 전송 간 타이밍 교정을 포함하는 프로토콜
CN105553883A (zh) 基于fpga的多dsp数据交换装置
US7590146B2 (en) Information processing unit
EP2036232B1 (en) Method and apparatus for transmitting data in a flexray node
JP2022096389A (ja) 半導体集積回路、半導体記憶装置、および制御方法
KR20230162622A (ko) 통신 장치, 통신 시스템 및 통신 방법
CN110827891B (zh) 信号转换单元、存储器以及应用于存储器的驱动方法
RU175049U9 (ru) УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire
CN115809210A (zh) 一种基于fpga的lvds高速数据交换机
US8555104B2 (en) Frequency adapter utilized in high-speed internal buses
JP3475857B2 (ja) ソースシンクロナス転送方式
CN111190853A (zh) 基于emif和srio接口的片间高速通信系统
CN113626356B (zh) 实现串行接口全双工通信的主机芯片的电路结构
CN103164370B (zh) 一种高速局部总线访问控制接口模块
EP2515226A1 (en) An arrangement
US20050094590A1 (en) Method for reducing the amount of needed memory in a tdm switch system
Yi et al. An Implementation of Low Cost and Low-power Network Broadcast Data Transmission and Storage System