WO2022045144A1 - 通信装置、通信システム及び通信方法 - Google Patents

通信装置、通信システム及び通信方法 Download PDF

Info

Publication number
WO2022045144A1
WO2022045144A1 PCT/JP2021/031014 JP2021031014W WO2022045144A1 WO 2022045144 A1 WO2022045144 A1 WO 2022045144A1 JP 2021031014 W JP2021031014 W JP 2021031014W WO 2022045144 A1 WO2022045144 A1 WO 2022045144A1
Authority
WO
WIPO (PCT)
Prior art keywords
spi
packet
communication
slave
serial signal
Prior art date
Application number
PCT/JP2021/031014
Other languages
English (en)
French (fr)
Inventor
俊久 百代
順也 山田
哲史 太田
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Priority to CN202180051040.7A priority Critical patent/CN115956355A/zh
Priority to EP21861569.8A priority patent/EP4207693A4/en
Priority to KR1020237004685A priority patent/KR20230056665A/ko
Priority to JP2022545645A priority patent/JPWO2022045144A1/ja
Publication of WO2022045144A1 publication Critical patent/WO2022045144A1/ja

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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • 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
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • 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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock

Definitions

  • This disclosure relates to communication devices, communication systems and communication methods.
  • an FDD (Frequency Division Duplex) method or a TDD (Time Division Duplex) method is used. If there is a large difference between the amount of data sent from one SerDes to the other SerDes and the amount of data sent from the other SerDes to one SerDes, the TDD method is used to convert the data in the up and down directions. It is conceivable to make a difference in the transmission capacity.
  • the TDD system is a half-duplex communication system in which uplink and downlink communication cannot be performed at the same time, and only one-way communication can be performed.
  • SPI Serial Peripheral Interface
  • SPI Serial Peripheral Interface
  • SPI is a full-duplex communication method that can simultaneously perform uplink and downlink communication. While each of the above two SerDes communicates with another communication device by SPI, the SPI data is transmitted via SerDes to the communication device connected to the opposite SerDeS connected to SerDes itself. In this case, assuming that communication is performed between two SerDes by the TDD method, the SPI data of the full-duplex communication method cannot be transmitted as it is by the TDD method of the half-duplex communication method.
  • the present disclosure provides a communication device, a communication system, and a communication method capable of performing serial communication at high speed by combining different communication methods.
  • a group of serial signals compliant with SPI (Serial Peripheral Interface) transmitted from the master in synchronization with a clock is transmitted within one frame period of a predetermined communication protocol.
  • a communication device including a communication unit for transmitting to a communication partner device as a set of data blocks or transmitting to the communication partner device as a plurality of data blocks divided according to a plurality of frame periods.
  • a memory that stores the SPI-compliant first serial signal group transmitted from the master in synchronization with the clock, and stores the SPI-compliant second serial signal group transmitted from the slave in synchronization with the clock.
  • a packet encoder that converts the first serial signal group stored in the memory into a first packet of the predetermined communication protocol
  • a packet decoder that converts the second packet of the predetermined communication protocol received from the communication partner device into the second serial signal group may be provided.
  • the first packet may include frequency information, polarity information of the clock, and phase information of the clock with respect to the data signal of the first serial signal group conforming to the SPI.
  • the first packet may include information indicating that the first packet contains a set of data blocks within the one frame period, or information indicating that the first packet contains a plurality of data blocks divided according to the plurality of frame periods. good.
  • the first packet may include the total number of the plurality of data blocks and the division position information of the data blocks.
  • the first packet may include size information of the data block.
  • the first packet may include information indicating whether the data block is valid or invalid.
  • the first packet may include information indicating that the slave is to be reset.
  • the second packet may include at least one of information indicating the operating state of the slave and interrupt information from the slave.
  • the slave requests to read the state of the slave when the second packet contains the interrupt information and when the second packet itself arrives at the memory from the communication partner device. It may be determined that the interrupt signal is transmitted to the master.
  • the first packet may include information on a slave select signal included in the first serial signal group conforming to the SPI that selects the communication partner device or the slave.
  • the packet encoder may transmit the first packet to the communication partner device or the slave selected by the slave select signal.
  • Each serial signal included in the first serial signal group is sequentially stored in the memory in synchronization with the clock, and each serial signal included in the second serial signal group is synchronized with the clock and sequentially stored in the master.
  • a shift register for transmission may be provided.
  • the communication unit may transmit the first packet at the first timing specified by the predetermined communication protocol and receive the second packet at the second timing specified by the predetermined communication protocol. ..
  • the packet encoder may determine that when the slave select signal transmitted from the master transitions from the first logic to the second logic, the transmission of the first serial signal group from the master is completed.
  • the communication unit may send and receive the first packet and the second packet to and from the communication partner device by the communication protocol corresponding to TDD (Time Division Duplex).
  • TDD Time Division Duplex
  • a group of SPI-compliant serial signals transmitted from a slave in synchronization with a clock generated based on clock frequency information included in a packet from a communication partner device is used as one of predetermined communication protocols.
  • a packet decoder that converts the first packet of a predetermined communication protocol received from the communication partner device into a first serial signal group conforming to SPI, and A clock generator that generates the clock based on the clock frequency information included in the first serial signal group.
  • a memory that stores the first serial signal group synchronized with the clock and stores a second serial signal group conforming to the SPI transmitted from the slave in synchronization with the clock.
  • a packet encoder that converts the second serial signal group stored in the memory into a second packet of the predetermined communication protocol may be provided.
  • the second packet indicates information indicating whether or not the slave is in a busy state in which the first serial signal group cannot be received, and whether or not there is an error in the first serial signal group received by the slave. Information may be included.
  • the second packet may include interrupt information requesting the master to read the state of the slave.
  • a shift register may be provided for storing each serial signal included in the second serial signal group in the memory and transmitting each serial signal included in the first serial signal group to the slave.
  • the communication unit may transmit the second packet at the first timing specified by the predetermined communication protocol and receive the first packet at the second timing specified by the predetermined communication protocol. ..
  • the communication unit may send and receive the first packet and the second packet to and from the communication partner device by the communication protocol corresponding to TDD (Time Division Duplex).
  • TDD Time Division Duplex
  • a first communication device and a second communication device for transmitting and receiving packets according to a predetermined communication protocol.
  • the first communication device uses a first serial signal group conforming to SPI (Serial Peripheral Interface) transmitted from the master in synchronization with a clock as a set of data blocks within one frame period of a predetermined communication protocol. It has a first communication unit that transmits to the second communication device or transmits to the second communication device as a plurality of data blocks divided according to a plurality of frame periods.
  • the second communication device performs the second serial signal group conforming to the SPI transmitted from the slave in synchronization with the clock generated based on the clock frequency information included in the packet from the first communication device. It is transmitted to the first communication device as a set of data blocks within one frame period of a predetermined communication protocol, or transmitted to the first communication device as a plurality of data blocks divided according to a plurality of frame periods.
  • a communication system is provided.
  • the first communication device is A first memory that stores the first serial signal group transmitted in synchronization with the first clock from the master and stores the second serial signal group transmitted in synchronization with the first clock from the slave.
  • a first packet encoder that converts a first serial signal group stored in the first memory into a first packet of the predetermined communication protocol, and a first packet encoder.
  • a first packet decoder that converts the second packet of the predetermined communication protocol received from the second communication device into the second serial signal group, and It has a first communication unit that transmits the first packet at a timing specified by the predetermined communication protocol and receives the second packet at the timing specified by the predetermined communication protocol.
  • the second communication device is A second packet decoder that converts the received first packet into the first serial signal group, and A clock generator that generates a second clock based on the clock frequency information included in the first serial signal group.
  • a second memory that stores the first serial signal group in synchronization with the second clock and stores the second serial signal group transmitted from the slave in synchronization with the second clock.
  • a packet encoder that converts the second serial signal group stored in the second memory into the second packet, and It may have a second communication unit that transmits the second packet at the timing specified by the predetermined communication protocol and receives the first packet at the timing specified by the predetermined communication protocol. ..
  • the SPI-compliant serial signal group transmitted from the master in synchronization with the clock is transmitted to the communication partner device as a set of data blocks within one frame period of a predetermined communication protocol.
  • a communication method including a communication unit for transmitting to the communication partner device as a plurality of data blocks divided according to a plurality of frame periods.
  • the block diagram which shows the schematic structure of the communication system provided with the communication apparatus which concerns on 1st Embodiment.
  • Basic signal waveform diagram of SPI protocol The figure explaining the TDD scheme performed between M_SerDes and S_SerDes of FIG.
  • FIG. 7A The figure which shows typically the packet sent and received by UPLink and DownLink.
  • FIG. 11 is a block diagram of a main part of a communication system provided with a communication device according to a modification of FIG. 11.
  • FIG. 1 is a block diagram showing a schematic configuration of a communication system 2 including communication devices 1a and 1b according to the first embodiment.
  • Communication system 2 of FIG. 1 includes SPI / Master 11, Master SerDes (M_SerDes) 31, SPI / Slave 12, and Slave SerDes (S_SerDes) 41.
  • M_SerDes31 corresponds to the communication device 1a
  • S_SerDes41 corresponds to the communication device 1b.
  • SPI / Master11 and M_SerDes31 perform SPI-compliant serial communication (hereinafter, may be referred to as SPI communication).
  • SPI / Slave 12 and S_SerDes41 perform SPI-compliant serial communication (SPI communication).
  • M_SerDes31 and S_SerDes41 perform high-speed serial communication by the TDD method.
  • the signal transmission path from M_SerDes31 to S_SerDes41 is called UPLink
  • the signal transmission path from S_SerDes41 to M_SerDes31 is called DownLink.
  • serial communication is performed using a protocol that conforms to the SPI standard (hereinafter referred to as SPI protocol). Further, in the present specification, serial data transmitted / received by SPI communication may be referred to as SPI data.
  • M_SerDes31 is a set of data of a serial signal group conforming to SPI (Serial Peripheral Interface) transmitted from the master (SPI_Master11) in synchronization with the clock within one frame period of a predetermined communication protocol.
  • the communication unit (DLL31-4) is provided as a block to be transmitted to the communication partner device (S_SerDes41) or to be transmitted to the communication partner device (S_SerDes41) as a plurality of data blocks divided according to a plurality of frame periods.
  • S_SerDes41 predetermined a SPI-compliant serial signal group transmitted from the slave (SPI_Slave12) in synchronization with the clock generated based on the clock frequency information included in the packet from the communication partner device (M_SerDes31). It is transmitted to the communication partner device (M_SerDes31) as a set of data blocks within one frame period of the communication protocol of the above, or to the communication partner device (M_SerDes31) as a plurality of data blocks divided according to a plurality of frame periods.
  • a communication unit (DLL41-4) for transmission is provided.
  • FIG. 2 is a block diagram of a part related to SPI communication between SPI / Master 11 and SPI / Slave 12. Note that FIG. 2 shows an example in which SPI / Master 11 and SPI / Slave 12 directly perform SPI-compliant serial communication for the sake of simplicity of explanation.
  • the SPI / Master 11 has a shift register 11-1 and a buffer / memory 11-2.
  • the SPI / Slave 12 has a shift register 12-1 and a buffer / memory 12-2.
  • the shift register 12-1 in the SPI / Slave 12 operates in synchronization with the clock SCK supplied from the SPI / Master 11.
  • the shift register 11-1 in the SPI / Master 11 outputs serial data in order from the MSB (Most Significant Bit) side in synchronization with the SCK.
  • the output serial data is input to the LSB (Least Significant Bit) side of the shift register 12-1 in the SPI / Slave 12 via the MOSI pin.
  • the serial data output from the MSB side of the shift register 12-1 in the SPI / Slave 12 is input to the LSB side of the shift register 11-1 in the SPI / Master 11 via the MISO pin.
  • the data held in the shift register 11-1 in the SPI / Master 11 can be stored in the buffer / memory 11-2. Further, the shift register 11-1 can hold the data stored in the buffer / memory 11-2. Similarly, the data held by the shift register 12-1 in the SPI / Slave 12 can be stored in the buffer / memory12-2. Further, the shift register 12-1 can hold the data stored in the buffer / memory12-2.
  • FIG. 3 is a basic signal waveform diagram of the SPI protocol.
  • the SCK polarity when the slave selector signal (CS signal) output by SPI / Master 11 is idle high level in FIG. 3
  • the data when the CS signal is in the active state low level in FIG. 3
  • the SPI / Master 11 can arbitrarily select one of the four SPI modes.
  • SPI / Master11 knows the SPI mode that SPI / Slave can support in advance, and it is necessary to select the mode that supports it.
  • FIGS. 3A to 3D are signal waveform diagrams of four SPI modes.
  • SPI / Master 11 Since the SCK frequency is not specified by the SPI protocol and differs for each device that performs SPI communication, SPI / Master 11 selects the SCK frequency for each device that performs SPI communication. Therefore, SPI / Master 11 needs to know in advance the SCK frequency that each device that performs SPI communication can support.
  • the communication method using the SPI protocol will be described below.
  • communication by the SPI protocol is performed between SPI / Master 11 and SPI / Slave 12.
  • the SPI / Slave 12 connected to the SPI / Master 11 may be one or a plurality.
  • the SPI / Master 11 has a plurality of CS signals corresponding to the plurality of SPI / Slave 12, and the Slave to be communicated is selected by the corresponding CS signal for communication. be able to.
  • the CS signal for selecting the SPI / Slave 12 that the SPI / Master 11 wants to communicate with is included in the SPI control information as described later.
  • the SPI / Master 11 includes the SPI control information in the SPI data and transmits it to M_SerDes31.
  • SPI / Master 11 puts the CS signal connected to the SPI / Slave 12 to be communicated into the active state (Low in FIGS. 3A to 3D).
  • making various signals active may be referred to as asserting, and making various signals idle may be referred to as deasserting.
  • SPI / Master 11 and SPI / Slave 12 transfer the data to be transferred from the buffer / memory 11-2 and 12-2, respectively, to the shift registers 11-1 and 12-1.
  • the SPI / Master 11 generates an SCK and supplies it to its own shift register 11-1, and also supplies it to the shift register 12-1 in the SPI / Slave 12.
  • the shift registers 11-1 and 12-1 shift the retained data bit by bit by the toggle of SCK.
  • SCK toggles by the number of stages of the shift registers 11-1 and 12-1
  • the data of the shift registers 11-1 and 12-1 are exchanged.
  • SPI / Master 11 shifts the CS signal to an idle state (High in FIGS. 3A to 3D).
  • SPI / Master 11 and SPI / Slave 12 transfer the data of the shift registers 11-1 and 12-1 at that time to buffer / memory 11-2 and 12-2, so that the data from buffer / memory 11-2 and 12-2 Can be obtained, which ends SPI communication.
  • FIG. 2 shows an example in which SPI / Master 11 and SPI / Slave 12 directly perform SPI communication, but in FIG. 1, M_SerDes31 and S_SerDes41 are arranged between SPI / Master11 and M_SerDes31.
  • SPI / Master 11 and M_SerDes31 perform SPI communication
  • M_SerDes31 and S_SerDes41 perform serial communication by the TDD method
  • SPI / Slave 12 and S_SerDes41 perform SPI communication.
  • FIG. 4 is a diagram illustrating a TDD method performed between M_SerDes31 and S_SerDes41 in FIG.
  • FIG. 4 shows a simplified internal configuration of SPI / Master 11 and SPI / Slave 12 shown in FIG. Further, FIG. 4 shows an example in which peripheral devices 32 and 42 are connected to M_SerDes31 and S_SerDes41, respectively.
  • M_SerDes31 and S_SerDes41 are connected to each other by, for example, a cable 103 of several meters to several meters. Through this cable 103, M_SerDes31 and S_SerDes41 perform high-speed serial communication. There may be two or more devices that perform serial communication with M_SerDes31. In this case, each device has the same configuration as S_SerDes41 in FIG. Further, a plurality of sets of two devices having the same configuration as M_SerDes31 and S_SerDes41 in FIG. 4 may be provided, and high-speed serial communication may be performed for each set. M_SerDes31 and S_SerDes41 in FIG. 4 can be widely applied to applications for transmitting and receiving a large amount of data, such as an in-vehicle camera module.
  • M_SerDes31 and S_SerDes41 perform high-speed serial communication by TDD method.
  • the timing and frequency band of the TDD scheme are shown in the lower right of FIG.
  • the uplink signal transmission period and the downlink signal transmission period are provided so as not to overlap in time within one TDD cycle.
  • the signal transmission period of the upstream signal (called UPLink) from M_SerDes31 to S_SerDes41 is the signal transmission period of the downstream signal (called DownLink) from S_SerDes41 to M_SerDes31.
  • the frequency band used for UPLink signal transmission in the TDD system and the frequency band used for DownLink signal transmission are illustrated.
  • the TDD method most of the frequency bands overlap in the UPLink signal transmission and the DownLink signal transmission.
  • the downstream DownLink signal transmission having a large signal amount requires a wider frequency band than the uplink UPLink signal transmission.
  • the downlink DownLink signal transmission period does not overlap with the uplink UPLink signal transmission period, so an echo cancel circuit for separating both signals becomes unnecessary.
  • M_SerDes31 and S_SerDes41 are premised on signal transmission by the TDD method, but in some cases, signal transmission may also be possible by the FDD method.
  • the timing and frequency band of the FDD method are shown in the lower left of FIG. In the FDD method, the frequency band used for signal transmission from M_SerDes31 to S_SerDes41 and the frequency band used for signal transmission from S_SerDes41 to M_SerDes31 are different.
  • the signal transmission from M_SerDes31 to S_SerDes41 and the signal transmission from S_SerDes41 to M_SerDes31 can be performed at the same timing, and the upstream signal transmission and the downstream signal transmission can be performed using the entire period within one FDD cycle. Can be done.
  • the signal transmission in the upstream direction with a large signal amount is performed using a wide frequency band on the high frequency side.
  • Downward signal transmission with a small amount of signal is performed using a narrow frequency band on the low frequency side.
  • the frequency band used for the signal transmission in the upstream direction and the frequency band used for the signal transmission in the downstream direction are partially overlapped. Due to this overlap, an echo cancel circuit is required.
  • the echo canceling circuit is a circuit that accurately separates the upstream signal and the downstream signal.
  • M_SerDes31 and S_SerDes41 perform high-speed serial communication by TDD method
  • M_SerDes31 performs SPI-compliant serial communication with SPI / Master11
  • S_SerDes41 performs SPI-compliant serial communication with SPI / Slave12. An example of communication will be described.
  • serial communication is performed between M_SerDes31 and S_SerDes41 by the TDD method instead of SPI, it is necessary to perform protocol conversion inside M_SerDes31 and S_SerDes41.
  • serial communication by SPI is a full-duplex communication method
  • serial communication by TDD method is a half-duplex communication method, so data from SPI / Master 11 and SPI_Slave is sent and received by TDD method at the same timing. I can't.
  • the SPI / Master 11 of FIG. 1 has a shift register 11-1 and a buffer / memory 11-2, as well as a controller 11-3 and a SCK generator 11-4.
  • Controller 11-3 supplies a slave select signal (CS signal) for activating SPI communication to M_SerDes31 through the M_CSn pin.
  • CS signals are provided as many as the number of devices that perform SPI communication with SPI / Master 11.
  • M_CSn pins are assigned to M_SerDes31, S_SerDes41, and SPI / Slave12.
  • M_CSn the pin that outputs the CS signal output from SPI / Master 11 may be referred to as M_CSn (x).
  • M_CSn (0) is assigned to M_SerDes31
  • M_CSn (1) is assigned to SPI / Slave12.
  • Controller 11-3 controls the operation of SCK generator 11-4.
  • SCK generator 11-4 outputs SCK when any CS signal is in the active state.
  • the shift register 11-1 performs a shift operation in synchronization with the SCK.
  • the controller 11-3 detects that the SPI / Slave 12 outputs the interrupt signal S_INT by the interrupt signal M_INT from M_SerDes31, and starts SPI communication in the next frame using this interrupt signal M_INT as a trigger. Alternatively, when the controller 11-3 itself wants to transmit SPI data, SPI communication is started in the same manner (time t5 of M_CSn (1) in FIG. 6 described later).
  • M_SerDes31 is connected to SPI / Master 11.
  • M_SerDes31 has SPI block 31-1 for data communication with SPI / Master 11 according to the SPI protocol.
  • the SPI block 31-1 has a shift register 31-1-1 and a buffer / memory 31-1-2.
  • the controller 11-3 in SPI / Master 11 activates the CS signal corresponding to M_SerDes31 and the SCK generator 41-1-3 outputs SCK
  • the shift register 31-1-1 is synchronized with this SCK.
  • the data is output and supplied to the SPI / Master 11 via the MISO pin.
  • the shift register 31-1-1 takes in the SPI data output from the SPI / Master 11 via the MOSI pin in synchronization with the SCK.
  • the controller 11-3 stops the SCK output to the SCK generator 11-4 when the CS signal becomes idle. As a result, the shift register 31-1-1 holds the state immediately before the SCK is stopped.
  • the SPI block 31-1 in M_SerDes31 transfers all the data in the shift register 31-1-1 to the buffer / memory31-1-2 when the CS signal transitions to the idle state. As a result, the data transfer process by the SPI protocol from SPI / Master 11 to M_SerDes 31 is completed.
  • the data transfer from the shift register 31-1-1 in M_SerDes31 to the buffer / memory31-1-2 depends on the amount of data that the SPI / Master 11 wants to transfer and the data capacity of the shift register 31-1-1. Therefore, if there is a risk that the data in the shift register 31-1-1 may overflow while the CS signal is active, the data in the shift register 31-1-1 should be buffered / memory31-1- before overflowing. By transferring to 2, data loss can be prevented.
  • M_SerDes31 has packet encoder (ECP) 31-2, packet decoder (DCP) 31-3, DLL31-4, and PHY layer block (PHY) 31-5.
  • ECP31-2 in M_SerDes31 converts the SPI data stored in buffer / memory31-1-2 into a packet (SPI packet) conforming to the TDD method.
  • DLL31-4 combines the SPI packet generated by ECP31-2 with transmission packets other than the SPI packet to generate an UPLink packet.
  • PHY31-5 transmits the UPLink packet to S_SerDes41 via UPLink.
  • the S_SerDes41 in FIG. 1 is connected to SPI / Slave 12.
  • the S_SerDes41 has an SPI block 41-1 for transmitting and receiving data according to the SPI / Slave 12 and the SPI protocol.
  • the SPI block 41-1 has a controller (CNTR) 41-1-4, a SCK generator 41-1-3, a shift register 41-1-1, and a buffer / memory 41-1-2.
  • the controller 41-1-4 controls the timing and frequency of the SCK output from the SCK generator 41-1-3 based on the SPI control information from the SPI / Master 11.
  • S_SerDes41 has a packet encoder (ECP) 41-2, a packet decoder (DCP) 41-3, a DLL41-4, and a PHY layer block (PHY) 41-5.
  • ECP packet encoder
  • DCP packet decoder
  • PHY PHY layer block
  • ECP41-2 in S_SerDes41 converts the SPI data stored in buffer / memory41-1-2 into a packet (SPI packet) conforming to the TDD method.
  • DLL41-4 combines the SPI packet generated by ECP41-2 with transmission packets other than the SPI packet to generate an UPLink packet.
  • PHY41-5 transmits the UPLink packet to S_SerDes41 via UPLink.
  • FIG. 5 is a diagram illustrating information included in the transmission packet generated by ECP31-2 and 41-2.
  • FIG. 5 shows an identification symbol, an information name, a function in a transmission packet for transmitting data from SPI / Master 11 to SPI / Slave 12, and data transmission from SPI / Slave 12 to SPI / Master 11 for each information in the transmission packet.
  • the function in the transmission packet that performs the above is associated with the explanation.
  • C-1 is a transmission mode, and SPI / Master 11 commands it as a command.
  • the transmission mode included in the packet from SPI / Slave 12 is used by SPI / Master 11 to monitor the status. If C-1 is 0, a set of data blocks is transmitted within one frame period of TDD. If C-1 is 1, a plurality of data blocks divided according to a plurality of frame periods are transmitted.
  • C-2 is a slave selector signal (CSn signal), and SPI / Master 11 commands it as a command.
  • the CSn signal contained in the packet from the SPI / Slave 12 is used by the SPI / Master 11 to monitor the state.
  • the CSn signal is a signal that the SPI / Master 11 selects the SPI / Slave 12 that the SPI / Slave 12 wants to communicate with.
  • SerDes M_SerDes31 or S_SerDes41
  • C-3 is the SCK frequency, and SPI / Master 11 commands it as a command.
  • the SCK frequency contained in the packet from the SPI / Slave 12 is used by the SPI / Master 11 to monitor the state.
  • SPI / Master 11 specifies the SCK frequency on the SPI / Slave 12 side.
  • C-4 is in SPI mode, and SPI / Master 11 commands it as a command.
  • C-5 is the total number of data block DBs, and SPI / Master 11 provides it as information.
  • the total number of DBs contained in the packet from SPI / Slave 12 is used by SPI / Master 11 to monitor the status.
  • C-1 is 0 (when transmitting the divided DB)
  • C-5 is 1.
  • SPI / Slave 12 returns the number of received DBs since the start of SPI communication.
  • C-6 is the current position of the data block DB, and SPI / Master 11 provides it as information. It is not included in the packet from SPI / Slave 12. If C-6 is 0, it indicates invalid information. When C-1 is 0, it becomes 0. If C-6 is 1, it indicates that it is the first divided data. If it is 2, it indicates that the data is divided other than the beginning and the end. If it is 3, it indicates that it is the last divided data.
  • C-7 is the current state of the data block DB, and both SPI / Master 11 and SPI / Slave 12 provide it as information. If C-7 is 0, it indicates that it is dummy data, and if it is 1, it indicates that it is valid data.
  • C-8 is the size of the data block DB, and SPI / Master 11 provides it as information.
  • the data transmission size contained in the packet from SPI / Slave 12 is used by SPI / Master 11 to monitor the status.
  • C-8 represents the data transmission size in bytes, and the maximum size is 511 bytes.
  • C-9 is the interrupt information of SPI / Slave 12, and is an interrupt flag not included in the packet transmitted by SPI / Master 11 but included in the packet transmitted by SPI / Slave 12. If C-9 is 0, it indicates that there is no interrupt, and if it is 1, it indicates that there is an interrupt.
  • C-10 is the operating state on the SPI / Slave 12 side, and is not included in the packet transmitted by SPI / Master 11, but is included in the packet from SPI / Slave 12. If C-10 is 0, it is a normal state, if it is 1, it means busy (DCP31-3 is not empty, and if it is 2, an error has occurred (SPI data is corrupted).
  • C-11 is a reset of SPI block 41-1, and SPI / Master 11 commands it as a command. It is not included in the SPI / Slave 12 packet. If C-11 is 0, it is not reset, and if it is 1, the SPI block 41-1 of S_SerDes41 is reset.
  • D-1 is SPI data transmitted together with C-1 to C-11 described above, SPI data transmitted by SPI / Master 11 is output from the M_MOSI pin, and SPI data transmitted by SPI / Slave 12 is transmitted from the S_MISO pin. It is output.
  • E-1 is a CRC transmitted together with the above-mentioned C-1 to C-11 and D-1, and is included in both the SPI data transmitted from SPI / Master 11 and the SPI data transmitted from SPI / Slave 12. .. CRC is used for error detection of control data C-1 to C-11 and SPI data.
  • FIG. 6 is a timing diagram in which SPI / Master 11 communicates with SPI / Slave 12 and FIGS. 7A and 7B are flowcharts showing a processing procedure in which SPI / Master 11 communicates with SPI / Slave 12.
  • FIG. 8 is a diagram schematically showing packets sent and received by UPLink and DownLink. 6 to 8 show a processing procedure for transmitting and receiving a set of data blocks in one frame period of TDD.
  • SPI / Master 11 performs a process of generating SPI control information used in ECP31-2 and DCP31-3 in M_SerDes31 and transmitting it to M_SerDes31 (steps S1 to S4, time t1 to t4).
  • the SPI control information includes, for example, the SPI transmission mode, the SCK frequency information, the SPI mode, and the size and number of data block DBs during SPI communication.
  • SPI / Master 11 stores SPI control information in buffer / memory 11-2 in advance.
  • Controller 11-3 in SPI / Master 11 sets (asserts) M_CSn (0) to the active state (Low) in order to perform SPI communication with M_SerDes31 (step S1, time t1).
  • the controller 11-3 in the SPI / Master 11 controls the SCK generator 11-4 to output the clock M_SCK (step S2, time t2).
  • the SPI control information stored in the buffer / memory 11-2 is sequentially read out and transferred to the shift register 11-1.
  • the SPI control information to be transferred includes transmission mode, SCK frequency information, SPI mode, transmission data size, number of data blocks, and the like.
  • the shift register 11-1 outputs SPI control information in order in synchronization with the clock M_SCK (steps S2 to S3, time t2 to t3).
  • This SPI control information is input to M_SerDes31 via the M_MOSI pin.
  • the shift register 31-1-1 in M_SerDes31 takes in SPI control information from SPI / Master 11 in synchronization with M_SCK.
  • the shift register 31-1-1 synchronizes the data held in the shift register 31-1-1 with the M__SCK in parallel with fetching the SPI control information from the SPI / Master 11, and via the M_MISO pin. Send to SPI / Master 11. Since this data is invalid data, it is shown by a broken line at times t2 to t3 in FIG. SPI / Master 11 discards this data after receiving it.
  • the controller 11-3 in SPI / Master 11 stops the generation of M_SCK in SCK generator 11-4 and deasserts M_CSn (0) to the idle state (step S4, time t4). ..
  • M_SCK is stopped, the shift register 31-1-1 in M_SerDes31 transfers the held SPI control information from SPI / Master 11 to buffer / memory31-1-2.
  • Buffer / memory31-1-2 in M_SerDes31 transfers SPI control information from SPI / Master11 to ECP31-2.
  • ECP31-2 converts SPI control information into SPI packets.
  • SPI / Master 11 transmits SPI data to M_SerDes31 for the purpose of transmitting data to SPI / Slave 12.
  • the controller 11-3 in the SPI / Master 11 transitions (asserts) M_CSn (1) corresponding to the SPI / Slave 12 from the idle state to the active state (step S5, time t5).
  • the controller 11-3 outputs M_SCK to the SCK generator 11-4 (step S6, time t6).
  • the buffer / memory 11-2 reads out the data to be transmitted to the SPI / Slave 12 by the size of the transmission data and inputs it to the shift register 11-1.
  • the shift register 11-1 sequentially outputs data for SPI / Slave 12 via the M_MOSI pin in synchronization with M_SCK (step S7, time t7).
  • the shift register 31-1-1 in M_SerDes31 sequentially takes in the data output from SPI / Master 11 into the shift register 31-1-1 in synchronization with SCK.
  • the controller 11-3 in the SPI / Master 11 causes the SCK generator 11-4 to stop the output of M_SCK (step S8, time t8).
  • the controller 11-3 of the SPI / Master 11 puts M_CSn (1) in an idle state (deassert) and ends SPI communication (step S9, time t9).
  • M_SerDes31 transfers the data held in the shift register 31-1-1 to buffer / memory31-1-2.
  • the buffer / memory31-1-2 transfers the data transferred from the shift register 31-1-1 to the ECP31-2.
  • the ECP31-2 generates data including SPI control information received in the communication at times t1 to t3, a CS signal (M_CSn (1)) corresponding to SPI / Slave 12, and Data for SPI / Slave 12.
  • ECP31-2 adds a flag indicating that the packet is valid to the generated data to generate a transmission packet.
  • ECP31-2 transmits the generated transmission packet as SPI packet 51 to DLL31-4 as shown in FIG.
  • the DLL 31-4 collectively generates the UPLink packet 52 with the SPI packet 51 from the ECP 31-2 and other transmission packets, and outputs the UP Link packet 52 to the PHY layer block 31-5.
  • the PHY layer block 31-5 outputs the received UPLink packet 52 to the cable 103 according to the UPLink output timing by the TDD (step S10, time t10).
  • S_SerDes41 communicates with M_SerDes31 by TDD method and also performs SPI communication with SPI / Slave 12.
  • the PHY layer block 41-5 in S_SerDes 41 receives the UPLink Packet from M_SerDes31 via the cable 103 and outputs it to the Link layer block (DLL) 41-4.
  • Linklayer block41-4 in S_SerDes41 takes out an SPI packet containing SPI data from UPLinkPacket and outputs it to packet decoder (DCP) 41-3.
  • DCP41-3 detects that SPI / Slave 12 is the target of SPI communication based on the CSn information (C-2) in the received SPI packet. Then, the controller 41-1-4 detects that all the SPI data has been transmitted by the transmission mode information (C-1) in the SPI packet in order to start the SPI communication with the SPI / Slave 12.
  • Step S11 After acquiring the number of SCK cycles required for one SPI communication by the number of SPI data (C-5) and the size of SPI data (C-8), activate the Slave select signal S_CS (assert). ) (Step S11, time t11).
  • the controller 41-1-4 in S_SerDes41 acquires the SCK frequency information (C-3) included in the SPI packet, and causes the SCK generator 41-1-3 to output S_SCK at the acquired frequency (step). S12, time t12). At this time, the phase relationship between S_CS and SCK follows the SPI mode (C-4) in the SPI packet.
  • S_SerDes41 can transfer SPI / Slave 12 and SPI data.
  • the data transferred to the SPI / Slave 12 is an SPI packet (D-1) and is stored in the buffer / memory41-1-2.
  • the shift register 41-1-1 in S_SerDes41 sequentially outputs the SPI data transferred from the buffer / memory41-1-2 from the S_MOSI pin by the SCK supplied from the SCK generator 41-1-3 (step S13, Time t13).
  • the SPI data output from the SPI / Slave 12 to the S_MISO pin is stored in the shift register 41-1-1 and then transferred to the buffer / memory41-1-2 in a timely manner.
  • the SPI / Slave 12 sequentially fetches the SPI data from the S_MOSI pin of S_SerDes41 into the shift register 12-1 in synchronization with S_SCK, and sequentially outputs the data held by the shift register 12-1 from the S_MISO pin (step). S14, time t14).
  • the controller (41-1-4) drives S_SCK by the set SPI data size (C-8), it stops SCK and returns S_CS to the idle state in order to end SPI communication (4-1-4). Deassert) (step S15, time t15).
  • the SPI / Slave 12 finally transfers the SPI data from the S_MOSI pin from the shift register 12-1 to the buffer / memory 12-2 while receiving the SPI data from the S_MOSI pin of the S_SerDes 41. The reception of data from SPI / Master 11 is completed.
  • Buffer / memory41-1-2 transfers the SPI data received from SPI / Slave 12 to packet encoder (ECP) 41-2 in order to transmit it to SPI / Master 11.
  • ECP41-2 adds the SPI control information obtained by itself in the SPI packet to the SPI packet 53 together with the received SPI data. Further, ECP41-2 adds the information indicating the operating state of SPI / Slave 12 in FIG. 5 (C-10) and the CRC in (E-1) to the SPI packet.
  • ECP41-2 when SPI / Slave 12 outputs an interrupt signal (C-9), ECP41-2 also includes the interrupt signal information in the SPI packet 53. In this case, the SPI packet 53 does not transmit the SPI data from the SPI / Slave 12.
  • the reason for providing the interrupt signal is that in the SPI protocol, only SPI / Master 11 controls the CS signal and SCK, and SPI / Slave 12 cannot actively output data, so an interrupt signal is output from SPI / Master 11. I try to wait for the instructions.
  • the Link layer block (DLL) 41-4 combines the SPI packet 53 received from the ECP 41-2 with other transmission packets to generate a Down Link packet 54, and outputs the Down Link packet 54 to the PHY layer block 41-5.
  • the PHY layer block 41-5 outputs the received DownLink packet 54 to the cable 103 according to the DownLink output timing (step S16, time t16).
  • the PHY layer block 31-5 of M_SerDes31 receives the DownLink packet including the SPI packet 53 from SPI / Slave 12 output from S_SerDes41 and outputs it to DLL31-4.
  • the DLL 31-4 extracts the SPI packet 53 from the received DownLink packet 54 and outputs it to the packet decoder (DCP) 31-3.
  • DCP31-3 in M_SerDes31 receives the packet including I_DB # 1 transmitted to Master11 at the same time when SPI data O_DB # 1 is received from Master11, and stores it in buffer / memory31-1-2.
  • Buffer / memory31-1-2 asserts the interrupt signal M_INT to indicate that valid SPI data I_DB # 1 has returned from SPI / Slave 12 (step S17, time t17). ..
  • the controller 11-3 of the SPI / Master 11 starts SPI communication in order to read the SPI data from the SPI / Slave 12 from the M_SerDes31, and activates (asserts) M_CSn (1) (step S18). , Time t18).
  • the SPI / Master 11 controller 11-3 controls the SCK generator 11-4 and outputs M_SCK (11-10-2) (step S19, time t19).
  • the shift register 11-1 sequentially captures data from the M_MISO pin by the transmission data size (c-8) set in Frame # 1 in synchronization with SCK.
  • the buffer / memory31-1-2 in M_SerDes31 transfers the data from the SPI / Slave 12 to the shift register 31-1-1 in a timely manner, and the shift register 31-1-1 is the SCK generator 11- as described above.
  • Data is output sequentially in synchronization with 4. This data is captured from the M_MISO pin (step S20, time t20).
  • the SPI / Master 11 next reads the SPI data to be transferred to the SPI / Slave 12 from the buffer / memory 11-2, takes it into the shift register 11-1, and sequentially outputs it from the M_MOSI pin from the shift register 11-1. (Step S21, time t21). After the necessary data is read out, buffer / memory31-1-2 returns (deasserts) the interrupt signal M_INT to the idle state (step S22, time t22).
  • SPI / Master 11 When SPI / Master 11 reads the last SPI data from SPI / Slave 12, SPI / Master 11 asserts M_CSn (1) to output dummy data (step S24, time t24). Since this dummy data is invalid data and does not need to be transferred to the SPI slave, it is discarded without being transferred from the shift register 31-1-1 of M_SerDes31 to the buffer / memory31-1-2 (step S25). , Time t25). The final data from SPI / Slave 12 is output from the shift register 31-1-1 in M_SerDes31 through the M_MISO pin and taken into the shift register 11-1 in SPI / Master 11 (step S26, time t26).
  • a set of data transmitted by SPI / Master 11 to M_SerDes31 by SPI communication is transmitted to S_SerDes41 via UPLink within one frame period of the TDD method, and SPI /.
  • a set of data transmitted by Slave 12 to S_SerDes41 by SPI communication can be transmitted to M_SerDes31 via DownLink.
  • the data transmitted / received by SPI communication is divided into a plurality of frame periods of the TDD method and transmitted / received.
  • the communication system 2 according to the second embodiment is configured in the same manner as in FIG. 1, but the SPI control information transmitted by the SPI / Master 11 to the M_SerDes31 is different.
  • FIG. 9 is a timing diagram when the process of transmitting the divided data is repeated over a plurality of frames within one frame period.
  • 10A, 10B, and 10C are flowcharts showing a processing procedure of the communication system 2 that operates at the timing of FIG.
  • Steps S31 to S38 (time t31 to t38) in FIG. 10A are the same as steps S1 to S8 (time t1 to t8) in FIG. 7, and SPI / Master 11 generates SPI control information and ECP31- in M_SerDes31. Set to 2 and DCP31-3.
  • the processing operation after step S39 is basically the same as in FIGS. 7A and 7B, but in FIGS. 9, 10A, 10B and 10C, the data transmitted in one SPI frame is divided into a plurality of data. It is divided and each of the plurality of divided data is transmitted in one frame period of TDD.
  • the signal transmitted in one frame period of TDD is called a TDD burst signal.
  • the Slave Select signal M_CSn (1) between SPI / Master 11 and M_SerDes 31 and the Slave Select signal S_CS between S_SerDes 41 and SPI / Slave 12 are in the active state until the transfer of all the divided data in the SPI frame is completed. Is continued.
  • SPI / Master 11 asserts a CS signal (M_CSn (1)) to start transmission of SPI data (step S35, time t35).
  • the SPI / Master 11 causes the SCK generator 11-4 to output M_SCK for the purpose of transmitting one divided data (data block DB) (step S36, time t36).
  • the SPI / Master 11 outputs SPI data in order from the shift register 11-1 in synchronization with the SCK, and outputs the SPI data from the M_MOSI pin (step S37, time t37). Further, the SPI / Master 11 outputs a CS signal corresponding to the SPI / Slave 12 to be communicated to M_SerDes31 (step S38, time t38).
  • ECP31-2 in M_SerDes31 generates a packet containing SPI data and a CS signal (step S39, time t39). This packet is combined with other transmission packets by PHY layer block 31-5, and an UPLink packet is generated. This UPLink packet is transmitted to S_SerDes41 via UPLink.
  • SPI / Master 11 continues to assert the CS signal until all the divided data is transmitted (step S40, time t40).
  • the SPI / Master 11 stops the output of M_SCK from the SCK generator 11-4 until the next divided data is transmitted (step S41, time t41).
  • S_SerDes41 acquires the CS signal and SPI data from the received packet and asserts S_CS (step S42, time t42).
  • the controller 41-1-4 in S_SerDes41 causes the SCK generator 41-1-3 to output S_SCK (step S43, time t43).
  • S_SerDes41 temporarily stores the SPI data in the received packet in buffer / memory41-1-2 and then transfers it to the shift register 41-1-1.
  • the shift register 41-1-1 outputs data sequentially in synchronization with S_SCK.
  • the output data is input to SPI / Slave 12 from the S_MOSI pin (step S44, time t44). Further, the data output in synchronization with S_SCK from the shift register 12-1 in SPI / Slave 12 is input to S_SerDes41 from the S_MISO pin (step S45, time t45).
  • DLL41-4 in S_SerDes41 generates a transmission packet containing data from the S_MISO pin.
  • the PHY layer block 41-5 transmits a transmission packet to DownLink at the timing specified by the TDD method (step S46, time t46).
  • DLL31-4 in M_SerDes31 transmits the SPI packet included in the transmission packet transmitted from S_SerDes41 to DCP31-3.
  • DCP31-3 receives a packet including I_DB # 1 transmitted to Master 11 at the same time as receiving SPI data O_DB # 1 from Master 11, and stores it in buffer / memory311-2.
  • Buffer / memory31-1-2 asserts the interrupt signal M_INT to indicate that valid SPI data I_DB # 1 has returned from SPI / Slave 12 (step S47, time t47).
  • the SPI / Master 11 When the SPI / Master 11 detects that M_INT has been asserted, it causes the SCK generator 11-4 to output M_SCK (step S48, time t48).
  • the buffer / memory 11-2 transfers the data to be transmitted next to the shift register 11-1, and the shift register 11-1 synchronizes with the M_SCK and outputs the SPI data from the M_MOSI pin (step S49, time t49). ..
  • the data output from the M_SerDes31 via the M_MISO pin is taken into the shift register 11-1 (step S50, time t50).
  • S_SerDes41 maintains the active state (assertion) of S_CS until all the divided data are transmitted (step S52, time t52). Further, the SCK generator 41-1-3 in S_SerDes41 stops the output of S_SCK until the next SPI data is transmitted from M_SerDes31 (step S53, time t53).
  • step S54 time t54
  • S_SerDes41 transmits the last divided packet by UPLink (step S55, time t55)
  • S_SerDes41 outputs S_SCK (step S56, time t56).
  • S_SerDes41 outputs SPI data via the S_MOSI pin (step S57, time t57) and receives the final SPI data from SPI / Slave 12 via the S_MISO pin (step S58, time t58).
  • S_SerDes41 When S_SerDes41 finishes receiving the last SPI data, it deasserts S_CS (step S59, time t59). Further, S_SerDes41 transmits a transmission packet including the last SPI data to M_SerDes31 by DownLink (step S60, time t60).
  • M_SerDes31 activates M_INT in the same manner as in step S47 (step S61, time t61). Further, M_SerDes31 causes SCK generator 11-4 in SPI / Master 11 to output M_SCK (step S62, time 62). In synchronization with M_SCK, the data output from the shift register 31-1-1 via the M_MISO pin is taken into the shift register 11-1 in SPI / Master 11 (steps S63 to S64, time t63 to t64). When the SPI / Master 11 captures all the data, it puts the CS signal in an idle state (step S65, time t65). Further, since the data output from the shift register 11-1 in step S63 is a dummy, it is discarded (step S66, time t66).
  • each divided data obtained by dividing a set of data transmitted by SPI / Master 11 to M_SerDes 31 by SPI communication into a plurality of divided data is divided into a plurality of divided data in a plurality of frame periods of the TDD method via UPLink.
  • each divided data obtained by dividing a set of data transmitted by SPI / Slave 12 to S_SerDes41 by SPI communication can be transmitted to M_SerDes31 via DownLink in a plurality of frame periods of the TDD method. ..
  • the SPI / Master 11 performs serial communication with a plurality of SPI / Slave 12.
  • FIG. 11 is a block diagram of a main part of the communication system 2 provided with the communication device according to the third embodiment.
  • FIG. 11 shows S_SerDes41 and a plurality of SPI / Slave 12. Since the internal configurations of SPI / Slave 12 and M_SerDes 31 are the same as those in FIG. 1, they are omitted in FIG. 11. Further, in FIG. 11, the same reference numerals are given to the components common to those in FIG.
  • SPI / Master 11 specifies the CSn signal of SPI / Slave 12 to be communicated with the SPI control information transmitted to M_SerDes31.
  • the controller 41-1-4 in S_SerDes41 activates the CSn signal specified by SPI / Master 11.
  • FIG. 11 shows an example in which two SPI / Slave12_1 and SPI / Slave12_2 are connected to S_SerDes41.
  • SPI / Master11 sets the CSn signal in the SPI control signal to CS1 when it wants to perform data communication with SPI / Slave12_1.
  • the controller 41-1-4 in S_SerDes41 activates the S_CS1 pin that outputs the CS1 signal. Since the CS1 signal from the S_CS1 pin is input to SPI / Slave12_1, SPI / Slave12_1 receives SPI data in synchronization with S_SCK from S_SerDes41 and transmits SPI data to S_SerDes41 in synchronization with S_SCK.
  • the CSn signal in the SPI control signal is set to CS2.
  • the controller 41-1-4 in S_SerDes41 activates the S_CS2 pin that outputs the CS2 signal. Since the CS2 signal from the S_CS2 pin is input to SPI / Slave12_2, SPI / Slave12_2 receives SPI data in synchronization with S_SCK from S_SerDes41 and transmits SPI data to S_SerDes41 in synchronization with S_SCK.
  • FIG. 12 is a block diagram of a main part of a communication system 2 provided with a communication device according to a modification of FIG. 11.
  • FIG. 12 shows two SPI / Slave 12s capable of performing serial communication at the same time as SPI / Master 11, but three or more SPI / Slave 12s can perform serial communication at the same time as SPI / Master 11. May be good.
  • the shift registers 12-1 in the two SPI / Slave 12_1 and 12_1 in FIG. 12 are daisy-chained, and the data output from the MSB of the shift register 12-1 in the SPI / Slave 12_2 in synchronization with SCK is The data is input to the LSB of the shift register 12-1 in SPI / Slave12_1 and the data output from the MSB is transmitted to S_SerDes41 by SPI communication.
  • the SPI / Master 11 can perform serial communication with a plurality of SPI / Slave 12 in both directions by designating each SPI / Slave 12 with the CSn signal in the SPI control information. .. Further, by daisy-chaining a plurality of SPI / Slave 12, the SPI / Master 11 can perform serial communication at the same time as the plurality of SPI / Slave 12.
  • the present technology can have the following configurations.
  • a group of serial signals compliant with SPI (Serial Peripheral Interface) transmitted from the master in synchronization with the clock is transmitted to the communication partner device as a set of data blocks within one frame period of a predetermined communication protocol.
  • a communication device including a communication unit that transmits data to the communication partner device as a plurality of data blocks divided according to a plurality of frame periods.
  • the first serial signal group conforming to the SPI transmitted in synchronization with the clock from the master is stored, and the second serial signal group conforming to the SPI transmitted in synchronization with the clock from the slave is stored.
  • Memory to store and A packet encoder that converts the first serial signal group stored in the memory into a first packet of the predetermined communication protocol
  • the communication device according to (1) comprising: a packet decoder that converts a second packet of the predetermined communication protocol received from a communication partner device into the second serial signal group.
  • the first packet includes frequency information and polarity information of the clock, and phase information of the clock with respect to a data signal of the first serial signal group conforming to the SPI. ..
  • the communication device (5) The communication device according to (4), wherein when the first packet includes the plurality of data blocks, the total number of the plurality of data blocks and the division position information of the data blocks are included. (6) The communication device according to (4) or (5), wherein the first packet includes size information of the data block. (7) The communication device according to any one of (2) to (6), wherein the first packet contains information indicating whether the data block is valid or invalid. (8) The communication device according to any one of (2) to (7), wherein the first packet contains information indicating that the slave is to be reset. (9) The communication device according to any one of (2) to (8), wherein the second packet includes at least one of information indicating an operating state of the slave and interrupt information from the slave. ..
  • the memory reads out the state of the slave when the second packet contains the interrupt information and when the second packet itself arrives at the memory from the communication partner device.
  • the first packet includes information on a slave select signal included in the first serial signal group conforming to the SPI that selects the communication partner device or the slave.
  • the communication device according to item 1. (12) The communication device according to (11), wherein the packet encoder transmits the first packet to the communication partner device or the slave selected by the slave select signal.
  • Each serial signal included in the first serial signal group is sequentially stored in the memory in synchronization with the clock, and each serial signal included in the second serial signal group is sequentially synchronized with the clock.
  • the communication device according to any one of (2) to (12), comprising a shift register for transmitting to the master.
  • the communication unit transmits the first packet at the first timing specified by the predetermined communication protocol, and receives the second packet at the second timing specified by the predetermined communication protocol. , The communication device according to any one of (2) to (13).
  • the packet encoder determines that the transmission of the first serial signal group from the master is completed (2).
  • the communication unit sends and receives the first packet and the second packet to and from the communication partner device by the communication protocol corresponding to TDD (Time Division Duplex), (2) to (15). ) The communication device according to any one of the paragraphs.
  • a communication device including a communication unit that is transmitted to the communication partner device as a set of data blocks, or is transmitted to the communication partner device as a plurality of data blocks divided according to a plurality of frame periods.
  • a packet decoder that converts a first packet of a predetermined communication protocol received from the communication partner device into a first serial signal group conforming to SPI.
  • a clock generator that generates the clock based on the clock frequency information included in the first serial signal group.
  • a memory that stores the first serial signal group synchronized with the clock and stores a second serial signal group conforming to the SPI transmitted from the slave in synchronization with the clock.
  • the communication device comprising: a packet encoder that converts the second serial signal group stored in the memory into a second packet of the predetermined communication protocol.
  • Information indicating that the second packet includes a set of data blocks transmitted within one frame period of the second serial signal group, or a plurality of transmitted packets divided into a plurality of frame periods.
  • the communication device which includes information indicating that the data block is included.
  • the second packet contains information indicating whether or not the slave is in a busy state in which the first serial signal group cannot be received, and whether or not there is an error in the first serial signal group received by the slave.
  • the communication device according to (18) or (19), which includes information indicating the above.
  • the communication device according to any one of (18) to (20), wherein the second packet includes interrupt information requesting that the master read the state of the slave.
  • a shift register for storing each serial signal included in the second serial signal group in the memory and transmitting each serial signal included in the first serial signal group to the slave (18) to The communication device according to any one of (21).
  • the communication unit transmits the second packet at the first timing specified by the predetermined communication protocol, and receives the first packet at the second timing specified by the predetermined communication protocol. , (18) to (22).
  • the communication unit transmits and receives the first packet and the second packet to and from the communication partner device by the communication protocol corresponding to TDD (Time Division Duplex), (18) to (23). )
  • the communication device according to any one of the paragraphs.
  • a first communication device and a second communication device for transmitting and receiving packets according to a predetermined communication protocol are provided.
  • the first communication device uses a first serial signal group conforming to SPI (Serial Peripheral Interface) transmitted from the master in synchronization with a clock as a set of data blocks within one frame period of a predetermined communication protocol. It has a first communication unit that transmits to the second communication device or transmits to the second communication device as a plurality of data blocks divided according to a plurality of frame periods. The second communication device performs the second serial signal group conforming to the SPI transmitted from the slave in synchronization with the clock generated based on the clock frequency information included in the packet from the first communication device.
  • SPI Serial Peripheral Interface
  • the first communication device is A first memory that stores the first serial signal group transmitted in synchronization with the first clock from the master and stores the second serial signal group transmitted in synchronization with the first clock from the slave.
  • a first packet encoder that converts a first serial signal group stored in the first memory into a first packet of the predetermined communication protocol, and a first packet encoder.
  • a first packet decoder that converts a second packet of the predetermined communication protocol received from the second communication device into the second serial signal group, and a first packet decoder.
  • the second communication device has a first communication unit that transmits the first packet at a timing specified by the predetermined communication protocol and receives the second packet at the timing specified by the predetermined communication protocol.
  • the second communication device is A second packet decoder that converts the received first packet into the first serial signal group, and A clock generator that generates a second clock based on the clock frequency information included in the first serial signal group.
  • a second memory that stores the first serial signal group in synchronization with the second clock and stores the second serial signal group transmitted from the slave in synchronization with the second clock.
  • a packet encoder that converts the second serial signal group stored in the second memory into the second packet, and It has a second communication unit that transmits the second packet at the timing specified by the predetermined communication protocol and receives the first packet at the timing specified by the predetermined communication protocol (25).
  • the described communication system A group of SPI-compliant serial signals transmitted from the master in synchronization with the clock is transmitted to the communication partner device as a set of data blocks within one frame period of a predetermined communication protocol, or during multiple frame periods.
  • a communication method including a communication unit that transmits data to the communication partner device as a plurality of data blocks divided according to the data blocks.
  • 1a communication device, 1b communication device, 2 communication system 11 SPI / Master, 11-1 sequential shift register, 11-1 shift register, 11-2 buffer / memory, 11-3 controller, 11-4 SCK generator, 12 SPI / Slave, 12-1 shift register, 12-2 buffer / memory, 31 M_SerDes, 31-1 SPI block, 31-1-1 shift register, 31-1-2 buffer / memory, 31-3 packet decoder (DCP) , 31-5 PHY layer block, 32 peripheral devices, 41 S_SerDes, 41-1 SPI block, 41-1-1 shift register, 41-1-2 buffer / memory, 41-1-3 SCK generator, 41-1- 4 Controller, 41-2 packet encoder (ECP), 41-3 packet decoder (DCP), 41-4 Link layer block (DLL), 41-5 PHY layer block, 42 peripheral devices, 51 SPI packet, 52 UP Link packet , 53 SPI packet, 54 DownLink packet, 103 cable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)

Abstract

[課題]異なる通信方式を組み合わせて高速にシリアル通信を行う。 [解決手段]通信装置は、マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える。

Description

通信装置、通信システム及び通信方法
 本開示は、通信装置、通信システム及び通信方法に関する。
 Master用のSerDesとSlave用のSerDesとの間で、高速シリアル通信を行う技術が提案されている(特許文献1参照)。
 2つのSerDesの間でシリアル通信を行う場合、例えば、FDD(Frequency Division Duplexing)方式やTDD(Time Division Duplex)方式が用いられる。一方のSerDesから他方のSerDesに送信されるデータ量と、他方のSerDesから一方のSerDesに送信されるデータ量に大きな違いがある場合、TDD方式を採用して、上り方向と下り方向でデータの伝送容量に違いを持たせることが考えられる。TDD方式は、上り方向と下り方向の通信を同時に行うことはできず、片方向の通信しか行えない半二重通信方式である。
特開2011-239011号公報
 シリアル通信の規格の一つに、SPI(Serial Peripheral Interface)と呼ばれるものがある。SPIは、上りと下りの通信を同時に行える全二重通信方式である。上述した2つのSerDesのそれぞれが他の通信装置とSPIで通信を行いつつ、そのSPIデータをSerDes自身に接続されている対向側のSerDeSに接続されている通信装置に、SerDesを介して伝送する場合、2つのSerDes間でTDD方式で通信を行う場合を想定すると、全二重通信方式のSPIのデータをそのままでは、半二重通信方式のTDD方式では送信できない。
 そこで、本開示では、異なる通信方式を組み合わせて高速にシリアル通信を行うことができる通信装置、通信システム及び通信方法を提供するものである。
 上記の課題を解決するために、本開示によれば、マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置が提供される。
 前記マスタから前記クロックに同期して送信されたSPIに準拠する第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
 前記メモリに記憶された前記第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換するパケットエンコーダと、
 通信相手装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換するパケットデコーダと、を備えてもよい。
 前記第1パケットは、前記クロックの周波数情報、極性情報、及び前記SPIに準拠する前記第1シリアル信号群のデータ信号に対する前記クロックの位相情報を含んでもよい。
 前記第1パケットは、前記1つのフレーム期間内にひとまとまりのデータブロックを含むことを示す情報、又は前記複数のフレーム期間に応じて分割される複数のデータブロックを含むことを示す情報を含んでもよい。
 前記第1パケットは、前記複数のデータブロックを含む場合には、前記複数のデータブロックの総数と、前記データブロックの分割位置情報とを含んでもよい。
 前記第1パケットは、前記データブロックのサイズ情報を含んでもよい。
 前記第1パケットは、前記データブロックが有効か、又は無効かを示す情報を含んでもよい。
 前記第1パケットは、前記スレーブをリセットすることを示す情報を含んでもよい。
 前記第2パケットは、前記スレーブの動作状態を示す情報と、前記スレーブからの割り込み情報との少なくとも1つを含んでもよい。
 前記メモリは、前記第2パケットに前記割り込み情報が含まれる場合と、前記第2パケットそれ自体が前記通信相手装置から前記メモリに届いた場合とにおいて、前記スレーブの状態の読み出しを前記スレーブが要求していると判断して、前記マスタに割り込み信号を送信してもよい。
 前記第1パケットは、前記通信相手装置又は前記スレーブを選択する前記SPIに準拠する前記第1シリアル信号群に含まれるスレイブセレクト信号の情報を含んでもよい。
 前記パケットエンコーダは、前記スレイブセレクト信号で選択された前記通信相手装置又は前記スレーブを宛先として、前記第1パケットを送信してもよい。
 前記第1シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記メモリに記憶するとともに、前記第2シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記マスタに送信するシフトレジスタを備えてもよい。
 前記通信部は、前記第1パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第2パケットを受信してもよい。
 前記パケットエンコーダは、前記マスタから送信されたスレイブセレクト信号が第1論理から第2論理に遷移すると、前記マスタからの前記第1シリアル信号群の送信が終了したと判断してもよい。
 前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受してもよい。
 本開示によれば、通信相手装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置が提供される。
 前記通信相手装置から受信された所定の通信プロトコルの第1パケットを、SPIに準拠する第1シリアル信号群に変換するパケットデコーダと、
 前記第1シリアル信号群に含まれる前記クロック周波数情報に基づいて、前記クロックを発生させるクロック発生器と、
 前記クロックに同期して前記第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
 前記メモリに記憶された前記第2シリアル信号群を前記所定の通信プロトコルの第2パケットに変換するパケットエンコーダと、を備えてもよい。
 前記第2パケットは、前記第2シリアル信号群の1つのフレーム期間内に送信されるひとまとまりのデータブロックを含むことを示す情報、又は複数のフレーム期間に分割して送信される複数のデータブロックを含むことを示す情報とを含んでもよい。
 前記第2パケットは、前記スレーブが前記第1シリアル信号群を受信できないビジー状態であるか否かを示す情報と、前記スレーブが受信した前記第1シリアル信号群にエラーがあるか否かを示す情報とを含んでもよい。
 前記第2パケットは、マスタが前記スレーブの状態を読み出すことを要求する割り込み情報を含んでもよい。
 前記第2シリアル信号群に含まれる各シリアル信号を前記メモリに記憶するとともに、前記第1シリアル信号群に含まれる各シリアル信号を前記スレーブに送信するシフトレジスタを備えてもよい。
 前記通信部は、前記第2パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第1パケットを受信してもよい。
 前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受してもよい。
 本開示によれば、所定の通信プロトコルにてパケットを送受する第1通信装置及び第2通信装置を備え、
 前記第1通信装置は、マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠する第1シリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第2通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第2通信装置に送信する第1通信部を有し、
 前記第2通信装置は、前記第1通信装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠する第2シリアル信号群を、前記所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第1通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第1通信装置に送信する、通信システムが提供される。
 前記第1通信装置は、
 マスタから第1クロックに同期して送信された前記第1シリアル信号群を記憶するとともに、スレーブから前記第1クロックに同期して送信された前記第2シリアル信号群を記憶する第1メモリと、
 前記第1メモリに記憶された第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換する第1パケットエンコーダと、
 前記第2通信装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換する第1パケットデコーダと、
 前記第1パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第2パケットを受信する第1通信部と、を有し、
 前記第2通信装置は、
 受信された前記第1パケットを、前記第1シリアル信号群に変換する第2パケットデコーダと、
 前記第1シリアル信号群に含まれるクロック周波数情報に基づいて、第2クロックを発生させるクロック発生器と、
 前記第2クロックに同期して、前記第1シリアル信号群を記憶するとともに、前記スレーブから前記第2クロックに同期して送信された前記第2シリアル信号群を記憶する第2メモリと、
 前記第2メモリに記憶された前記第2シリアル信号群を前記第2パケットに変換するパケットエンコーダと、
 前記第2パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第1パケットを受信する第2通信部と、を有してもよい。
 本開示によれば、マスタからクロックに同期して送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信方法が提供される。
第1の実施形態に係る通信装置を備えた通信システムの概略構成を示すブロック図。 SPI/MasterとSPI/SlaveのSPI通信に関わる部分のブロック図。 SPIプロトコルの基本的な信号波形図。 図1のM_SerDesとS_SerDesの間で行われるTDD方式を説明する図。 ECPが生成する伝送パケットに含まれる情報を説明する図。 SPI/MasterがSPI/Slaveと通信を行うタイミング図。 SPI/MasterがSPI/Slaveと通信を行う処理手順を示すフローチャート。 図7Aに続くフローチャート。 UP LinkとDown Linkで送受されるパケットを模式的に示す図。 1フレーム期間内に分割データを伝送する処理を複数フレームにわたって繰り返す場合のタイミング図。 図9のタイミングで動作する通信システムの処理手順を示すフローチャート。 図10Aに続くフローチャート。 図10Bに続くフローチャート。 第3の実施形態に係る通信装置を備えた通信システムの要部のブロック図。 図11の一変形例に係る通信装置を備えた通信システムの要部のブロック図。
 以下、図面を参照して、通信装置、通信システム及び通信方法の実施形態について説明する。以下では、通信装置、通信システム及び通信方法の主要な構成部分を中心に説明するが、通信装置、通信システム及び通信方法には、図示又は説明されていない構成部分や機能が存在しうる。以下の説明は、図示又は説明されていない構成部分や機能を除外するものではない。
 (第1の実施形態)
 図1は第1の実施形態に係る通信装置1a、1bを備えた通信システム2の概略構成を示すブロック図である。図1の通信システム2は、SPI/Master11と、Master SerDes (M_SerDes)31と、SPI/Slave12と、Slave SerDes (S_SerDes)41とを備えている。このうち、M_SerDes31が通信装置1aに対応し、S_SerDes41が通信装置1bに対応する。
 SPI/Master11とM_SerDes31とは、SPIに準拠したシリアル通信(以下、SPI通信と呼ぶことがある)を行う。同様に、SPI/Slave12とS_SerDes41とは、SPIに準拠したシリアル通信(SPI通信)を行う。M_SerDes31とS_SerDes41は、TDD方式にて高速シリアル通信を行う。図1では、M_SerDes31からS_SerDes41への信号伝送経路をUP Linkと呼び、S_SerDes41からM_SerDes31への信号伝送経路をDown Linkと呼ぶ。SPI通信では、SPIの規格に準拠したプロトコル(以下、SPIプロトコルと呼ぶ)にてシリアル通信を行う。また、本明細書では、SPI通信で送受されるシリアルデータを、SPIデータと呼ぶことがある。
 後述するように、M_SerDes31は、マスタ(SPI_Master11)からクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置(S_SerDes41)に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして通信相手装置(S_SerDes41)に送信する通信部(DLL31-4)を備える。また、S_SerDes41は、通信相手装置(M_SerDes31)からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブ(SPI_Slave12)から送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置(M_SerDes31)に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして通信相手装置(M_SerDes31)に送信する通信部(DLL41-4)を備える。
 図2はSPI/Master11とSPI/Slave12のSPI通信に関わる部分のブロック図である。なお、図2では、説明の簡略化のため、SPI/Master11とSPI/Slave12が直接、SPIに準拠したシリアル通信を行う例を示している。
 図2に示すように、SPI/Master11は、シフトレジスタ11-1とbuffer/memory11-2とを有する。同様に、SPI/Slave12は、シフトレジスタ12-1とbuffer/memory12-2とを有する。
 SPI/Slave12内のシフトレジスタ12-1は、SPI/Master11から供給されるクロックSCKに同期して動作する。SPI/Master11内のシフトレジスタ11-1は、SCKに同期してMSB(Most Significant Bit)側から順にシリアルデータを出力する。出力されたシリアルデータは、MOSIピンを介して、SPI/Slave12内のシフトレジスタ12-1のLSB(Least Significant Bit)側に入力される。SPI/Slave12内のシフトレジスタ12-1のMSB側から出力されたシリアルデータは、MISOピンを介して、SPI/Master11内のシフトレジスタ11-1のLSB側に入力される。SPI/Master11内のシフトレジスタ11-1が保持しているデータは、buffer/memory11-2に記憶することができる。また、シフトレジスタ11-1は、buffer/memory11-2が記憶しているデータを保持できる。同様に、SPI/Slave12内のシフトレジスタ12-1が保持しているデータは、buffer/memory12-2に記憶することができる。また、シフトレジスタ12-1は、buffer/memory12-2が記憶しているデータを保持できる。
 図3はSPIプロトコルの基本的な信号波形図である。SPIプロトコルでは、SPI/Master11が出力するスレイブセレクタ信号(CS信号)がアイドル時(図3ではハイレベル)のSCKの極性と、CS信号がアクティブ状態(図3ではローレベル)になるときにデータをラッチするクロック(SCK)のエッジ(立ち上がりエッジ又は立ち下がりエッジ)との組合せが4つある。これら4つの組み合わせはSPI modeと呼ばれる。SPI/Master11は、4つのSPI modeのうち一つを任意に選択することができる。SPI/Master11は、あらかじめSPI/Slaveが対応できる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/Master11は、SPI通信を行う個々のデバイス毎に、SCKの周波数を選択する。そのためSPI/Master11は、SPI通信を行う各デバイスが対応できるSCK周波数をあらかじめ知っておく必要がある
 以下、SPIプロトコルを用いた通信方法を説明する。図2の例では、SPIプロトコルによる通信は、SPI/Master11とSPI/Slave12の間で行われる。SPI/Master11に接続されるSPI/Slave12は、一つでも複数でもよい。SPI/Master11に複数のSPI/Slave12が接続される場合、SPI/Master11は、複数のSPI/Slave12に対応する複数のCS信号を持ち、通信したいSlaveを対応するCS信号で選択して通信を行うことができる。SPI/Master11が通信したいSPI/Slave12を選択するためのCS信号は、後述するようにSPI制御情報に含まれる。SPI/Master11は、SPI制御情報をSPIデータに含めてM_SerDes31に送信する。
 SPI/Master11は、SPI通信を行う場合、通信したいSPI/Slave12に接続されたCS信号をアクティブ状態(図3A~図3DではLow)にする。本明細書では、各種の信号をアクティブ状態にすることをアサート、アイドル状態にすることをデアサートと呼ぶことがある。
 SPI/Master11とSPI/Slave12は、転送したいデータをそれぞれのbuffer/memory11-2、12-2からシフトレジスタ11-1、12-1に転送する。SPI/Master11は、SCKを生成して、自身のシフトレジスタ11-1に供給するとともに、SPI/Slave12内のシフトレジスタ12-1にも供給する。各シフトレジスタ11-1、12-1は、SCKのトグルにより保持データを1bitごとシフトする。SCKがシフトレジスタ11-1、12-1の段数分トグルすることで、シフトレジスタ11-1、12-1のデータが入れ替わる。その後、SPI/Master11は、CS信号をアイドル状態(図3A~図3DではHigh)に遷移させる。SPI/Master11とSPI/Slave12は、その時点のシフトレジスタ11-1、12-1のデータをbuffer/memory11-2、12-2に転送することで、buffer/memory11-2、12-2からデータを取得でき、これによりSPI通信が終了する。
 図2では、SPI/Master11とSPI/Slave12が直接SPI通信を行う例を示したが、図1では、SPI/Master11とM_SerDes31の間に、M_SerDes31とS_SerDes41が配置されている。図1では、SPI/Master11とM_SerDes31がSPI通信を行い、M_SerDes31とS_SerDes41がTDD方式によるシリアル通信を行い、SPI/Slave12とS_SerDes41がSPI通信を行う。
 図4は図1のM_SerDes31とS_SerDes41の間で行われるTDD方式を説明する図である。図4では、図1に示すSPI/Master11とSPI/Slave12の内部構成を簡略化して図示している。また、図4では、M_SerDes31とS_SerDes41にそれぞれ、peripheral devices32、42が接続されている例を示している。
 M_SerDes31とS_SerDes41は、例えば数m~10数mのケーブル103で互いに接続されている。このケーブル103を介して、M_SerDes31とS_SerDes41は高速シリアル通信を行う。なお、M_SerDes31とシリアル通信を行う2台以上のデバイスが存在してもよい。この場合、各デバイスは図4のS_SerDes41と同様の構成を有する。また、図4のM_SerDes31とS_SerDes41と同様の構成を持つ2つのデバイスを組とする複数組を設けて、組ごとに高速シリアル通信を行ってもよい。図4のM_SerDes31とS_SerDes41は、例えば、車載カメラモジュールなど、大量のデータを送受信する用途に幅広く適用できる。
 M_SerDes31とS_SerDes41は、TDD方式による高速シリアル通信を行う。図4の右下には、TDD方式のタイミングと周波数帯域が図示されている。TDD方式では、図4の右側に示すように、1TDDサイクル内に、上り方向の信号伝送期間と下り方向の信号伝送期間が時間的に重ならないように設けられている。図4のTDDタイミング図の例では、M_SerDes31からS_SerDes41への上り方向の信号(UP Linkと呼ぶ)の信号伝送期間が、S_SerDes41からM_SerDes31への下り方向の信号(Down Linkと呼ぶ)の信号伝送期間よりも極端に短い例、すなわちUP Link の信号比率がDownlinkの信号比率よりも極端に小さい例を示している。例えば、S_SerDes41内のセンサが撮像した映像信号をM_SerDes31に送信する場合には、図4のTDDタイミング図のような信号比率になる。
 図4の右側には、TDD方式におけるUP Linkの信号伝送に用いられる周波数帯域と、Down Linkの信号伝送に用いられる周波数帯域とが図示されている。図示のように、TDD方式では、UP Linkの信号伝送とDown Linkの信号伝送において、周波数帯域の大半が重なっている。例えば、S_SerDes41内のセンサが撮像した映像信号をM_SerDes31に送信する場合には、信号量の大きい下り方向Down Linkの信号伝送は、上り方向UP Linkの信号伝送よりも広い周波数帯域を必要とするため、上り方向UP Linkの信号伝送に用いられる周波数帯域を含むより広範な周波数帯域を用いて行われる。TDD方式では、下り方向Down Linkの信号伝送期間が上り方向UP Linkの信号伝送期間と重ならないため、両信号を分離するためのエコーキャンセル回路が不要になる。
 本実施形態に係るM_SerDes31とS_SerDes41は、TDD方式にて信号伝送を行うことを前提としているが、場合によってはFDD方式でも信号伝送を行えるようにしてもよい。図4の左下にはFDD方式のタイミングと周波数帯域が図示されている。FDD方式では、M_SerDes31からS_SerDes41への信号伝送に用いる周波数帯域と、S_SerDes41からM_SerDes31への信号伝送に用いる周波数帯域とが異なっている。このため、M_SerDes31からS_SerDes41への信号伝送と、S_SerDes41からM_SerDes31への信号伝送とを同タイミングで行うことができ、上り方向の信号伝送と下り方向の信号伝送を1FDDサイクル内の全期間を利用して行うことができる。
 また、FDD方式では、信号量の大きい上り方向の信号伝送は、高周波側の広い周波数帯域を用いて行われる。信号量の小さい下り方向の信号伝送は、低周波側の狭い周波数帯域を用いて行われる。図4の左下の例では、周波数の利用効率を高めるために、上り方向の信号伝送で用いられる周波数帯域と、下り方向の信号伝送で用いられる周波数帯域とを一部重複させている。この重複部分があるために、エコーキャンセル回路が必要となる。エコーキャンセル回路は、上り方向の信号と下り方向の信号とを精度よく分離する回路である。
 以下では、M_SerDes31とS_SerDes41がTDD方式にて高速シリアル通信を行うとともに、M_SerDes31はSPI/Master11との間でSPIに準拠したシリアル通信を行い、S_SerDes41はSPI/Slave12との間でSPIに準拠したシリアル通信を行う例を説明する。
 M_SerDes31とS_SerDes41の間では、SPIではなくTDD方式によるシリアル通信を行うため、M_SerDes31とS_SerDes41の内部でプロトコル変換を行う必要がある。また、SPIによるシリアル通信は全二重通信方式であるのに対し、TDD方式によるシリアル通信は半二重通信方式であるため、SPI/Master11やSPI_SlaveからのデータをそのままのタイミングでTDD方式で送受信することはできない。
 以下、図1の通信システム2の構成を詳細に説明する。図1のSPI/Master11は、図4に示したように、シフトレジスタ11-1とbuffer/memory11-2を有する他に、コントローラ11-3とSCK generator11-4とを備えている。
 コントローラ11-3は、SPI通信をアクティブ状態にするためのスレイブセレクト信号(CS信号)を、M_CSnピンを通して、M_SerDes31に供給する。CS信号は、SPI/Master11とSPI通信を行うデバイスの数だけ設けられる。例えば、図1では、M_SerDes31、S_SerDes41、及びSPI/Slave12にそれぞれ異なるM_CSnピンが割り当てられている。本明細書では、SPI/Master11から出力されるCS信号を出力するピンを、M_CSn(x)と表記することがある。例えば、M_CSn(0)をM_SerDes31に割り当てて、M_CSn(1)をSPI/Slave12に割り当てる。
 コントローラ11-3は、SCK generator11-4の動作を制御する。SCK generator11-4は、いずれかのCS信号がアクティブ状態のときに、SCKを出力する。シフトレジスタ11-1は、SCKに同期してシフト動作を行う。
 コントローラ11-3は、SPI/Slave12が割り込み信号S_INTを出力したことを、M_SerDes31からの割り込み信号M_INTで検出し、この割り込み信号M_INTをトリガとして、次のフレームのSPI通信を開始する。あるいは、コントローラ11-3自身がSPIデータを送信したい場合も、同様にSPI通信を開始する(後述する図6のM_CSn(1)の時刻t5)。
 M_SerDes31は、SPI/Master11に接続されている。M_SerDes31は、SPI/Master11とSPIプロトコルに従ってデータ通信を行うために、SPIブロック31-1を有する。SPIブロック31-1は、シフトレジスタ31-1-1とbuffer/memory31-1-2を有する。SPI/Master11内のコントローラ11-3がM_SerDes31に対応するCS信号をアクティブ状態にして、SCK generator41-1-3がSCKを出力すると、このSCKに同期して、シフトレジスタ31-1-1はSPIデータを出力して、MISOピンを介してSPI/Master11に供給する。また、シフトレジスタ31-1-1は、SPI/Master11からMOSIピンを介して出力されたSPIデータを、SCKに同期して取り込む。
 コントローラ11-3は、CS信号がアイドル状態になると、SCK generator11-4に対してSCKの出力を停止させる。これにより、シフトレジスタ31-1-1はSCKが停止される直前の状態を保持する。
 M_SerDes31内のSPIブロック31-1は、CS信号がアイドル状態に遷移すると、シフトレジスタ31-1-1内の全データをbuffer/memory31-1-2に転送する。これにより、SPI/Master11からM_SerDes31へのSPIプロトコルによるデータ転送処理が終了する。
 なお、M_SerDes31内のシフトレジスタ31-1-1からbuffer/memory31-1-2へのデータ転送は、SPI/Master11が転送したいデータ量とシフトレジスタ31-1-1のデータ容量に依存する。よって、CS信号がアクティブ状態の間に、シフトレジスタ31-1-1内のデータが溢れるおそれがある場合は、溢れる前に、シフトレジスタ31-1-1内のデータをbuffer/memory31-1-2に転送することで、データの欠落を防止できる。
 この他、M_SerDes31は、packet encoder (ECP)31-2と、packet decoder (DCP)31-3と、DLL31-4と、PHY layer block (PHY)31-5とを有する。M_SerDes31内のECP31-2は、buffer/memory31-1-2に記憶されたSPIデータをTDD方式に準拠したパケット(SPIパケット)に変換する。DLL31-4は、ECP31-2で生成されたSPIパケットを、SPIパケット以外の他の伝送パケットとまとめて、UP Link packetを生成する。PHY31-5は、UP Link packetをUP Linkを介してS_SerDes41に送信する。
 図1のS_SerDes41は、SPI/Slave12に接続される。S_SerDes41は、SPI/Slave12とSPIプロトコルに従ってデータの送受信を行うために、SPIブロック41-1を有する。SPIブロック41-1は、コントローラ(CNTR)41-1-4と、SCK generator41-1-3と、シフトレジスタ41-1-1と、buffer/memory41-1-2とを有する。コントローラ41-1-4は、SPI/Master11からのSPI制御情報に基づいて、SCK generator41-1-3から出力されるSCKのタイミングと周波数を制御する。コントローラ41-1-4がSPI/Slave12に対応するCS信号をアクティブ状態にして、SCK generator41-1-3がSCKを出力したときに、このSCKに同期して、シフトレジスタ41-1-1はSPIデータを出力して、S_MOSIピンを介してSPI/Slave12に供給する。また、シフトレジスタ41-1-1には、SPI/Slave12からS_MISOピンを介して出力されたSPIデータが、SCKに同期して入力される。この他、S_SerDes41は、packet encoder (ECP)41-2と、packet decoder (DCP)41-3と、DLL41-4と、PHY layer block (PHY)41-5とを有する。S_SerDes41内のECP41-2は、buffer/memory41-1-2に記憶されたSPIデータをTDD方式に準拠したパケット(SPIパケット)に変換する。DLL41-4は、ECP41-2で生成されたSPIパケットを、SPIパケット以外の他の伝送パケットとまとめて、UP Link packetを生成する。PHY41-5は、UP Link packetをUP Linkを介してS_SerDes41に送信する。
 図5はECP31-2、41-2が生成する伝送パケットに含まれる情報を説明する図である。図5には、伝送パケット内の情報ごとに、識別記号と、情報名と、SPI/Master11からSPI/Slave12にデータ伝送を行う伝送パケットでの機能と、SPI/Slave12からSPI/Master11にデータ伝送を行う伝送パケットでの機能と、説明とが対応づけられている。
 C-1は、伝送モードであり、SPI/Master11がコマンドとして指令する。SPI/Slave12からのパケットに含まれる伝送モードは、SPI/Master11が状態をモニタするために用いられる。C-1が0であれば、TDDの1つのフレーム期間内にひとまとまりのデータブロックを伝送する。C-1が1であれば、複数のフレーム期間に応じて分割される複数のデータブロックを伝送する。
 C-2は、スレイブセレクタ信号(CSn信号)であり、SPI/Master11がコマンドとして指令する。SPI/Slave12からのパケットに含まれるCSn信号は、SPI/Master11が状態をモニタするために用いられる。CSn信号は、SPI/Master11が通信したいSPI/Slave12を選択する信号である。CSn信号では、個々のSPI/Slave12を選択するだけでなく、SerDes(M_SerDes31又はS_SerDes41)を選択することもできる。
 C-3は、SCK周波数であり、SPI/Master11がコマンドとして指令する。SPI/Slave12からのパケットに含まれるSCK周波数は、SPI/Master11が状態をモニタするために用いられる。C-3は、SPI/Master11がSPI/Slave12側のSCK周波数を指定するものである。
 C-4は、SPIモードであり、SPI/Master11がコマンドとして指令する。SPI/Slave12からのパケットに含まれるSPIモードは、SPI/Master11が状態をモニタするために用いられる。例えば、C-4が0であれば図3Aのmode=0が選択され、1であれば図3Bのmode=1が選択され、2であれば図3Cのmode=2が選択され、3であれば図3Dのmode=3が選択される。
 C-5は、データブロックDBの総数であり、SPI/Master11が情報として提供する。SPI/Slave12からのパケットに含まれるDB総数は、SPI/Master11が状態をモニタするために用いられる。C-1が0のとき(分割DBの送信時)にはC-5は1である。SPI/Slave12は、SPI通信が開始されてからの受信DB数を返す。
 C-6は、現在のデータブロックDBの位置であり、SPI/Master11が情報として提供する。SPI/Slave12からのパケットには含まれない。C-6が0であれば、無効な情報であることを示す。C-1が0の場合は0になる。C-6が1であれば、先頭の分割データであることを示す。2であれば、先頭と最後以外の分割データであることを示す。3であれば、最後の分割データであることを示す。
 C-7は、現在のデータブロックDBの状態であり、SPI/Master11とSPI/Slave12がともに情報として提供する。C-7が0であればダミーデータであることを示し、1であれば有効データであることを示す。
 C-8は、データブロックDBのサイズであり、SPI/Master11が情報として提供する。SPI/Slave12からのパケットに含まれるデータ伝送サイズは、SPI/Master11が状態をモニタするために用いられる。C-8は、データ伝送サイズをバイト単位で表したものであり、最大サイズは511バイトである。
 C-9は、SPI/Slave12の割り込み情報であり、SPI/Master11が送信するパケットには含まれず、SPI/Slave12が送信するパケットに含まれる割り込みフラグである。C-9が0であれば割り込みなしを示し、1であれば割り込みありを示す。
 C-10は、SPI/Slave12側の動作状態であり、SPI/Master11が送信するパケットには含まれず、SPI/Slave12からのパケットに含まれている。C-10が0であれば正常状態、1であればビジー(DCP31-3が空でない、2であればエラーが起こった(SPIデータが壊れた)ことを示す。
 C-11は、SPIブロック41-1のリセットであり、SPI/Master11がコマンドとして指令する。SPI/Slave12のパケットには含まれていない。C-11が0であればリセットせず、1であればS_SerDes41のSPIブロック41-1をリセットする。
 D-1は、上述したC-1~C-11とともに送信されるSPIデータであり、SPI/Master11が送信するSPIデータはM_MOSIピンから出力され、SPI/Slave12が送信するSPIデータはS_MISOピンから出力される。
 E-1は、上述したC-1~C-11とD-1とともに送信されるCRCであり、SPI/Master11から送信されるSPIデータとSPI/Slave12から送信されるSPIデータの双方に含まれる。CRCは、制御データC-1~C-11とSPIデータのエラー検出に用いられる。
 図6はSPI/Master11がSPI/Slave12と通信を行うタイミング図、図7A及び図7BはSPI/Master11がSPI/Slave12と通信を行う処理手順を示すフローチャートである。図8はUP LinkとDown Linkで送受されるパケットを模式的に示す図である。図6~図8は、TDDの1つのフレーム期間にひとまとまりのデータブロックを送受信する処理手順を示している。
 まず、SPI/Master11は、M_SerDes31内のECP31-2とDCP31-3で使用されるSPI制御情報を生成して、M_SerDes31に送信する処理を行う(ステップS1~S4、時刻t1~t4)。SPI制御情報は、例えば、SPI伝送モードと、SCK周波数情報と、SPIモードと、SPI通信時のデータブロックDBのサイズ及び数とを含んでいる。SPI/Master11は、SPI制御情報を予めbuffer/memory11-2に記憶しておく。
 SPI/Master11内のコントローラ11-3は、M_SerDes31とSPI通信をするために、M_CSn(0)をアクティブ状態(Low)に(アサート)する(ステップS1、時刻t1)。
 SPI/Master11内のコントローラ11-3は、SCK generator11-4を制御して、クロックM_SCKを出力させる(ステップS2、時刻t2)。クロックM_SCKに同期して、buffer/memory11-2に記憶されているSPI制御情報が順次読み出されてシフトレジスタ11-1に転送される。転送されるSPI制御情報は、伝送モード、SCK周波数情報、SPIモード、伝送データサイズ、データブロックの数などである。シフトレジスタ11-1は、クロックM_SCKに同期してSPI制御情報を順に出力する(ステップS2~S3、時刻t2~t3)。このSPI制御情報は、M_MOSIピンを介してM_SerDes31に入力される。M_SerDes31内のシフトレジスタ31-1-1は、M_SCKに同期して、SPI/Master11からのSPI制御情報を取り込む。
 シフトレジスタ31-1-1は、SPI/Master11からのSPI制御情報を取り込むのに並行して、シフトレジスタ31-1-1に保持されていたデータをM__SCKに同期して、M_MISOピンを介してSPI/Master11に送信する。このデータは、無効なデータであるため、図6の時刻t2~t3では破線で示している。SPI/Master11は、このデータを受信後に廃棄する。
 SPI/Master11のデータ転送が終了すると、SPI/Master11内のコントローラ11-3はSCK generator11-4にM_SCKの生成を停止させるとともに、M_CSn(0)をアイドル状態にデアサートする(ステップS4、時刻t4)。M_SerDes31内のシフトレジスタ31-1-1は、M_SCKが停止すると、保持されているSPI/Master11からのSPI制御情報をbuffer/memory31-1-2に転送する。
 M_SerDes31内のbuffer/memory31-1-2は、SPI/Master11からのSPI制御情報をECP31-2に転送する。ECP31-2は、SPI制御情報をSPIパケットに変換する。
 次に、SPI/Master11は、SPI/Slave12へのデータ伝送を行う目的で、M_SerDes31にSPIデータを送信する。具体的には、SPI/Master11内のコントローラ11-3は、SPI/Slave12に対応するM_CSn(1)をアイドル状態からアクティブ状態に遷移させる(アサートする)(ステップS5、時刻t5)。
 また、コントローラ11-3は、SCK generator11-4に対してM_SCKを出力させる(ステップS6、時刻t6)。buffer/memory11-2は、SPI/Slave12に伝送されるべきデータを、伝送データサイズ分だけ読み出してシフトレジスタ11-1に入力する。シフトレジスタ11-1は、M_SCKに同期して、SPI/Slave12向けのデータを順次、M_MOSIピンを介して出力する(ステップS7、時刻t7)。
 M_SerDes31内のシフトレジスタ31-1-1は、SPI/Master11から出力されたデータを、SCKに同期して順次シフトレジスタ31-1-1に取り込む。SPI/Master11内のコントローラ11-3は、伝送データサイズ分のデータ転送が終了すると、SCK generator11-4にM_SCKの出力を停止させる(ステップS8、時刻t8)。その後、SPI/Master11のコントローラ11-3は、M_CSn(1)をアイドル状態(デアサート)にして、SPI通信を終了する(ステップS9、時刻t9)。
 M_SerDes31は、M_SCKが停止すると、シフトレジスタ31-1-1に保持されたデータをbuffer/memory31-1-2に転送する。buffer/memory31-1-2は、シフトレジスタ31-1-1から転送されたデータをECP31-2に転送する。ECP31-2は、時刻t1~t3の通信で受信されたSPI制御情報と、SPI/Slave12に対応するCS信号(M_CSn(1))と、SPI/Slave12向けのDataとを含むデータを生成する。ECP31-2は、生成されたデータに、パケットが有効であることを示すフラグを付加して伝送パケットを生成する。
 ECP31-2は、生成した伝送パケットを図8に示すようにSPIパケット51として、DLL31-4に送信する。DLL31-4はECP31-2からのSPIパケット51と他の伝送パケットとをまとめてUP Link packet52を生成し、PHY layer block31-5に出力する。PHY layer block31-5は、受信されたUP Link packet52をTDDによるUP Link出力タイミングに従って、ケーブル103に出力する(ステップS10、時刻t10)。
 S_SerDes41は、M_SerDes31とTDD方式で通信を行うとともに、SPI/Slave12とSPI通信を行う。S_SerDes41内のPHY layer block41-5は、ケーブル103を介してM_SerDes31からのUP Link Packetを受信し、Link layer block(DLL)41-4に出力する。
 S_SerDes41内のLink layer block41-4は、UP Link PacketからSPIデータを含むSPIパケットを取り出して、packet decoder(DCP)41-3に出力する。DCP41-3は、受信されたSPIパケット内のCSn情報(C-2)に基づいて、SPI/Slave12がSPI通信対象であることを検出する。そして、コントローラ41-1-4は、SPI/Slave12とのSPI通信を開始するために、SPIパケット内の伝送モード情報(C-1)により、SPIデータのすべてが送信されたことを検出するとともに、SPIデータの個数(C-5)と、SPIデータのサイズ(C-8)とにより、1回のSPI通信に必要なSCKサイクル数を取得した後、Slave select信号S_CSをアクティブ状態に(アサート)する(ステップS11、時刻t11)。
 次に、S_SerDes41内のコントローラ41-1-4は、SPIパケットに含まれるSCK周波数情報(C-3)を取得して、取得された周波数でSCK generator41-1-3にS_SCKを出力させる(ステップS12、時刻t12)。このとき、S_CSとSCKの位相関係は、SPIパケット内のSPIモード(C-4)に従う。これにより、S_SerDes41はSPI/Slave12とSPIデータの転送が可能になる。SPI/Slave12に転送されるデータは、SPIパケット(D-1)であり、buffer/memory41-1-2に記憶される。
 S_SerDes41内のシフトレジスタ41-1-1は、buffer/memory41-1-2から転送されるSPIデータを、SCK generator41-1-3から供給されるSCKにより、順次S_MOSIピンから出力する(ステップS13、時刻t13)。これに並行して、SPI/Slave12からS_MISOピンに出力されるSPIデータは、シフトレジスタ41-1-1に記憶された後、適時buffer/memory41-1-2に転送される。
 SPI/Slave12は、S_SerDes41のS_MOSIピンからのSPIデータを、S_SCKに同期して順次シフトレジスタ12-1に取り込むとともに、シフトレジスタ12-1が保持していたデータを順次S_MISOピンから出力する(ステップS14、時刻t14)。
 コントローラ(41-1-4)は、設定されたSPIデータのサイズ(C-8)だけ、S_SCKを駆動したら、SPI通信を終了するために、SCKを停止させるとともに、S_CSをアイドル状態に戻す(デアサートする)(ステップS15、時刻t15)。これに並行して、SPI/Slave12は、S_SerDes41のS_MOSIピンからSPIデータを受信中に、適時シフトレジスタ12-1からbuffer/memory12-2にS_MOSIピンからのSPIデータを転送することで、最終的にSPI/Master11からのデータの受信が完了する。
 buffer/memory41-1-2は、SPI/Slave12から受信したSPIデータをSPI/Master11に送信するために、packet encoder(ECP)41-2に転送する。ECP41-2は、受信されたSPIデータと共に、自身がSPIパケットで得たSPI制御情報をSPIパケット53に付加する。また、ECP41-2は、図5の(C-10)のSPI/Slave12の動作状態を示す情報と、(E-1)のCRCをSPIパケットに付加する。
 また、ECP41-2は、SPI/Slave12が割り込み信号(C-9)を出力した場合、割り込み信号の情報もSPIパケット53に含める。この場合、SPIパケット53は、SPI/Slave12からのSPIデータを伝送しない。割り込み信号を設けた理由は、SPIプロトコルでは、SPI/Master11のみがCS信号とSCKを制御し、SPI/Slave12は能動的にはデータを出力できないことから、割り込み信号を出して、SPI/Master11からの指示を待つようにしている。
 Link layer block (DLL)41-4は、ECP41-2から受信したSPIパケット53を他の伝送パケットとまとめて Down Link packet54を生成し、PHY layer block41-5に出力する。PHY layer block 41-5は、受信したDown Link packet54をDown Link出力タイミングに従って、ケーブル103に出力する(ステップS16、時刻t16)。
 M_SerDes31のPHY layer block31-5は、S_SerDes41から出力されるSPI/Slave12からのSPIパケット53を含むDown Link packetを受信し、DLL31-4に出力する。DLL31-4は、受信したDown Link packet54からSPIパケット53を抜き出し、packet decoder(DCP)31-3に出力する。
 M_SerDes31内のDCP31-3は、Master11からSPIデータO_DB#1を受信したときに同時にMaster11に送信されるI_DB#1を含むパケットを受信して、buffer/memory31-1-2に格納する。有効なSPIデータI_DB#1がSPI/Slave12から返ってきたことを示すために、buffer/memory31-1-2は、割り込み信号M_INTをアサートする(ステップS17、時刻t17)。。割り込み信号M_INTを受け取ったSPI/Master11のコントローラ11-3は、SPI/Slave12からのSPIデータをM_SerDes31から読み出すためにSPI通信を開始し、M_CSn(1)をアクティブ状態に(アサート)する(ステップS18、時刻t18)。
 SPI/Master11のコントローラ11-3は、SCK generator11-4を制御し、M_SCK(11-10-2)を出力させる(ステップS19、時刻t19)。シフトレジスタ11-1は、SCKに同期して、Frame#1で設定された伝送データサイズ(c-8)分だけ、M_MISOピンからデータを順次取り込む。この時、M_SerDes31内のbuffer/memory31-1-2は、適時SPI/Slave12からのデータをシフトレジスタ31-1-1に転送し、シフトレジスタ31-1-1は、前述したようにSCK generator11-4に同期して順次データを出力する。このデータは、M_MISOピンより取り込まれる(ステップS20、時刻t20)。これに並行して、SPI/Master11は、次にSPI/Slave12に転送したいSPIデータをbuffer/memory11-2から読み出してシフトレジスタ11-1に取り込み、順次シフトレジスタ11-1よりM_MOSIピンより出力する(ステップS21、時刻t21)。必要なデータが読み出された後、buffer/memory31-1-2は、割り込み信号M_INTをアイドル状態に戻す(デアサートする)(ステップS22、時刻t22)。
 ここまでの動作で、SPI/Master11とSPI/Slave12間でSPIデータの転送は完了される。以上の一連の動作が、必要なSPIデータの転送回数だけ繰り返される(ステップS23、時刻t23)。
 SPI/Master11がSPI/Slave12からの最後のSPIデータを読み出す際、SPI/Master11は、ダミーデータを出力するためにM_CSn(1)をアサートする(ステップS24、時刻t24)。このダミーデータは、無効データであり、SPIスレーブに転送する必要がないため、M_SerDes31のシフトレジスタ31-1-1からbuffer/memory31-1-2に転送されることなく、破棄される(ステップS25、時刻t25)。SPI/Slave12からの最後のデータは、M_SerDes31内のシフトレジスタ31-1-1からM_MISOピンを通して出力されて、SPI/Master11内のシフトレジスタ11-1に取り込まれる(ステップS26、時刻t26)。
 このように、第1の実施形態では、SPI/Master11がSPI通信でM_SerDes31に送信したひとまとまりのデータを、TDD方式の1フレーム期間内に、UP Linkを介してS_SerDes41に送信するとともに、SPI/Slave12がSPI通信でS_SerDes41に送信したひとまとまりのデータを、Down Linkを介してM_SerDes31に送信することができる。これにより、全二重通信方式のSPI通信と、半二重通信方式のTDD通信とを組み合わせて、SPI/Master11とSPI/Slave12間で、M_SerDes31とS_SerDes41を介してシリアル通信を行うことができる。
 (第2の実施形態)
 第2の実施形態は、SPI通信で送受信されるデータを、TDD方式の複数のフレーム期間に分割して送受信するものである。
 第2の実施形態に係る通信システム2は、図1と同様に構成されているが、SPI/Master11がM_SerDes31に送信するSPI制御情報が異なっている。
 図9は1フレーム期間内に分割データを伝送する処理を複数フレームにわたって繰り返す場合のタイミング図である。図10A、図10B及び図10Cは図9のタイミングで動作する通信システム2の処理手順を示すフローチャートである。
 図10AのステップS31~S38(時刻t31~t38)は図7のステップS1~S8(時刻t1~t8)と同様であり、SPI/Master11は、SPI制御情報を生成して、M_SerDes31内のECP31-2とDCP31-3に設定する。ステップS39以降の処理動作も、基本的には図7A及び図7Bと同様であるが、図9、図10A、図10B及び図10Cでは、一つのSPIフレーム内に伝送されるデータを複数個に分割し、複数の分割データのそれぞれをTDDの1フレーム期間に伝送する。TDDの1フレーム期間に伝送される信号はTDDバースト信号と呼ばれる。
 SPIフレーム内のすべての分割データの転送が完了するまでの間、SPI/Master11とM_SerDes31の間のSlave Select信号 M_CSn(1)と、S_SerDes41とSPI/Slave12の間のSlave Select信号S_CSは、アクティブ状態が継続される。
 SPI/Master11は、SPIデータの伝送を開始するためにCS信号(M_CSn(1))をアサートする(ステップS35、時刻t35)。SPI/Master11は、一つの分割データ(データブロックDB)を伝送する目的で、SCK generator11-4にM_SCKを出力させる(ステップS36、時刻t36)。
 次に、SPI/Master11は、SCKに同期して、シフトレジスタ11-1からSPIデータを順に出力し、M_MOSIピンから出力する(ステップS37、時刻t37)。また、SPI/Master11は、通信対象であるSPI/Slave12に対応するCS信号をM_SerDes31に出力する(ステップS38、時刻t38)。次に、M_SerDes31内のECP31-2は、SPIデータとCS信号を含むパケットを生成する(ステップS39、時刻t39)。このパケットは、PHY layer block31-5で他の伝送パケットとまとめられ、UP Link packetが生成される。このUP Link packetは、UP Linkを介してS_SerDes41に送信される。
 SPI/Master11は、すべての分割データが送信されるまで、CS信号をアサートし続ける(ステップS40、時刻t40)。SPI/Master11は、次の分割データが送信されるまで、SCK generator11-4からのM_SCKの出力を停止させる(ステップS41、時刻t41)。
 S_SerDes41は、受信されたパケットからCS信号とSPIデータを取得し、S_CSをアサートする(ステップS42、時刻t42)。S_SerDes41内のコントローラ41-1-4は、SCK generator41-1-3にS_SCKを出力させる(ステップS43、時刻t43)。S_SerDes41は、受信されたパケット内のSPIデータをいったんbuffer/memory41-1-2に記憶させた後に、シフトレジスタ41-1-1に転送する。シフトレジスタ41-1-1は、S_SCKに同期してデータを順次出力する。出力されたデータは、S_MOSIピンからSPI/Slave12に入力される(ステップS44、時刻t44)。また、SPI/Slave12内のシフトレジスタ12-1からS_SCKに同期して出力されたデータは、S_MISOピンからS_SerDes41に入力される(ステップS45、時刻t45)。
 S_SerDes41内のDLL41-4は、S_MISOピンからのデータを含む伝送パケットを生成する。PHY layer block41-5は、TDD方式で規定されるタイミングで、伝送パケットをDown Linkに送信する(ステップS46、時刻t46)。
 M_SerDes31内のDLL31-4は、S_SerDes41から送信された伝送パケットに含まれるSPIパケットをDCP31-3に送信する。DCP31-3は、Master11からSPIデータO_DB#1を受信したときに同時にMaster11に送信されるI_DB#1を含むパケットを受信して、buffer/memory31-1-2に記憶する。有効なSPIデータI_DB#1がSPI/Slave12から返ってきたことを示すために、buffer/memory31-1-2は、割り込み信号M_INTをアサートする(ステップS47、時刻t47)。
 SPI/Master11は、M_INTがアサートされたことを検出すると、SCK generator11-4にM_SCKを出力させる(ステップS48、時刻t48)。buffer/memory11-2は、次に伝送されるべきデータをシフトレジスタ11-1に転送し、シフトレジスタ11-1はM_SCKに同期させてSPIデータをM_MOSIピンから出力する(ステップS49、時刻t49)。これに並行して、M_SerDes31からM_MISOピンを介して出力されたデータをシフトレジスタ11-1に取り込む(ステップS50、時刻t50)。
 SPI/Master11は、M_SerDes31からの全データを読み出すと、M_INTをアイドル状態に戻す(デアサートする)(ステップS51、時刻t51)。
 S_SerDes41は、すべての分割データが送信されるまでは、S_CSのアクティブ状態(アサート)を維持する(ステップS52、時刻t52)。また、S_SerDes41内のSCK generator41-1-3は、次のSPIデータがM_SerDes31から送信されてくるまでは、S_SCKの出力を停止する(ステップS53、時刻t53)。
 その後、ステップS40~S53の処理動作が繰り返される(ステップS54、時刻t54)。M_SerDes31が最後の分割パケットをUP Linkで送信すると(ステップS55、時刻t55)、S_SerDes41はS_SCKを出力する(ステップS56、時刻t56)。そして、S_SerDes41は、S_MOSIピンを介してSPIデータを出力するとともに(ステップS57、時刻t57)、S_MISOピンを介して、SPI/Slave12からの最後のSPIデータを受信する(ステップS58、時刻t58)。
 S_SerDes41は、最後のSPIデータを受信し終わると、S_CSをアイドル状態に(デアサート)する(ステップS59、時刻t59)。また、S_SerDes41は、最後のSPIデータを含む伝送パケットをDown LinkでM_SerDes31に送信する(ステップS60、時刻t60)。
 M_SerDes31はステップS47と同様にM_INTをアクティブ状態にする(ステップS61、時刻t61)。また、M_SerDes31は、SPI/Master11内のSCK generator11-4にM_SCKを出力させる(ステップS62、時刻62)。M_SCKに同期して、シフトレジスタ31-1-1からM_MISOピンを介して出力されたデータをSPI/Master 11内のシフトレジスタ11-1に取り込む(ステップS63~S64、時刻t63~t64)。SPI/Master11は、すべてのデータを取り込むと、CS信号をアイドル状態にする(ステップS65、時刻t65)。また、ステップS63でシフトレジスタ11-1から出力されるデータはダミーであるため廃棄される(ステップS66、時刻t66)。
 このように、第2の実施形態では、SPI/Master11がSPI通信でM_SerDes31に送信したひとまとまりのデータを複数に分割した各分割データを、TDD方式の複数のフレーム期間で、UP Linkを介してS_SerDes41に送信するとともに、SPI/Slave12がSPI通信でS_SerDes41に送信したひとまとまりのデータを分割した各分割データを、TDD方式の複数のフレーム期間で、Down Linkを介してM_SerDes31に送信することができる。
 (第3の実施形態)
 第3の実施形態は、SPI/Master11が複数のSPI/Slave12とシリアル通信を行うものである。
 図11は第3の実施形態に係る通信装置を備えた通信システム2の要部のブロック図である。図11には、S_SerDes41と複数のSPI/Slave12が図示されている。SPI/Slave12とM_SerDes31の内部構成は図1と同様であるため、図11では割愛している。また、図11では、図1と共通する構成部分に同一符号を付している。
 SPI/Master11は、M_SerDes31に送信されるSPI制御情報にて、通信を行いたいSPI/Slave12のCSn信号を指定する。S_SerDes41内のコントローラ41-1-4は、SPI/Master11が指定したCSn信号をアクティブ状態にする。図11は、S_SerDes41に2つのSPI/Slave12_1とSPI/Slave12_2が接続される例を示している。
 SPI/Master11は、SPI/Slave12_1とデータ通信を行いたい場合は、SPI制御信号におけるCSn信号をCS1に設定する。これにより、S_SerDes41内のコントローラ41-1-4はCS1信号を出力するS_CS1ピンをアクティブ状態にする。S_CS1ピンからのCS1信号はSPI/Slave12_1に入力されるため、SPI/Slave12_1はS_SerDes41からのS_SCKに同期してSPIデータを受信するとともに、S_SerDes41に対してS_SCKに同期してSPIデータを送信する。
 また、SPI/Master11は、SPI/Slave12_2とデータ通信を行いたい場合は、SPI制御信号におけるCSn信号をCS2に設定する。これにより、S_SerDes41内のコントローラ41-1-4はCS2信号を出力するS_CS2ピンをアクティブ状態にする。S_CS2ピンからのCS2信号はSPI/Slave12_2に入力されるため、SPI/Slave12_2はS_SerDes41からのS_SCKに同期してSPIデータを受信するとともに、S_SerDes41に対してS_SCKに同期してSPIデータを送信する。
 図11の通信システム2では、SPI/Master11が通信したいSPI/Slave12をSPI制御信号内のCSn信号で指定する例を示したが、図12に示すように複数のSPI/Slave12がディジーチェーン接続されていてもよい。
 図12は図11の一変形例に係る通信装置を備えた通信システム2の要部のブロック図である。図12には、SPI/Master11と同時にシリアル通信を行うことが可能な2つのSPI/Slave12が図示されているが、3つ以上のSPI/Slave12がSPI/Master11と同時にシリアル通信を行えるようにしてもよい。
 図12の2つのSPI/Slave12_1、12_2内のシフトレジスタ12-1同士は、ディジーチェーンされており、SCKに同期してSPI/Slave12_2内のシフトレジスタ12-1のMSBから出力されたデータは、SPI/Slave12_1内のシフトレジスタ12-1のLSBに入力されるとともに、MSBから出力されたデータは、SPI通信でS_SerDes41に送信される。
 図12の通信装置では、SPI/Slave12の数だけ図6のステップS24~S26の処理を繰り返す必要がある。
 このように、第3の実施形態では、SPI/Master11がSPI制御情報内のCSn信号で個々のSPI/Slave12を指定することで、複数のSPI/Slave12と双方向にシリアル通信を行うことができる。また、複数のSPI/Slave12をディジーチェーンすることで、SPI/Master11は複数のSPI/Slave12と同時にシリアル通信を行うことができる。
 なお、本技術は以下のような構成を取ることができる。
 (1)マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置。
 (2)前記マスタから前記クロックに同期して送信されたSPIに準拠する第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
 前記メモリに記憶された前記第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換するパケットエンコーダと、
 通信相手装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換するパケットデコーダと、を備える、(1)に記載の通信装置。
 (3)前記第1パケットは、前記クロックの周波数情報、極性情報、及び前記SPIに準拠する前記第1シリアル信号群のデータ信号に対する前記クロックの位相情報を含む、(2)に記載の通信装置。
 (4)前記第1パケットは、前記1つのフレーム期間内にひとまとまりのデータブロックを含むことを示す情報、又は前記複数のフレーム期間に応じて分割される複数のデータブロックを含むことを示す情報を含む、(2)又は(3)に記載の通信装置。
 (5)前記第1パケットは、前記複数のデータブロックを含む場合には、前記複数のデータブロックの総数と、前記データブロックの分割位置情報とを含む、(4)に記載の通信装置。
 (6)前記第1パケットは、前記データブロックのサイズ情報を含む、(4)又は(5)に記載の通信装置。
 (7)前記第1パケットは、前記データブロックが有効か、又は無効かを示す情報を含む、(2)乃至(6)のいずれか一項に記載の通信装置。
 (8)前記第1パケットは、前記スレーブをリセットすることを示す情報を含む、(2)乃至(7)のいずれか一項に記載の通信装置。
 (9)前記第2パケットは、前記スレーブの動作状態を示す情報と、前記スレーブからの割り込み情報との少なくとも1つを含む、(2)乃至(8)のいずれか一項に記載の通信装置。
 (10)前記メモリは、前記第2パケットに前記割り込み情報が含まれる場合と、前記第2パケットそれ自体が前記通信相手装置から前記メモリに届いた場合とにおいて、前記スレーブの状態の読み出しを前記スレーブが要求していると判断して、前記マスタに割り込み信号を送信する、(9)に記載の通信装置。
 (11)前記第1パケットは、前記通信相手装置又は前記スレーブを選択する前記SPIに準拠する前記第1シリアル信号群に含まれるスレイブセレクト信号の情報を含む、(2)乃至(10)のいずれか一項に記載の通信装置。
 (12)前記パケットエンコーダは、前記スレイブセレクト信号で選択された前記通信相手装置又は前記スレーブを宛先として、前記第1パケットを送信する、(11)に記載の通信装置。
 (13)前記第1シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記メモリに記憶するとともに、前記第2シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記マスタに送信するシフトレジスタを備える、(2)乃至(12)のいずれか一項に記載の通信装置。
 (14)前記通信部は、前記第1パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第2パケットを受信する、(2)乃至(13)のいずれか一項に記載の通信装置。
 (15)前記パケットエンコーダは、前記マスタから送信されたスレイブセレクト信号が第1論理から第2論理に遷移すると、前記マスタからの前記第1シリアル信号群の送信が終了したと判断する、(2)乃至(14)のいずれか一項に記載の通信装置。
 (16)前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受する、(2)乃至(15)のいずれか一項に記載の通信装置。
 (17)通信相手装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置。
 (18)前記通信相手装置から受信された所定の通信プロトコルの第1パケットを、SPIに準拠する第1シリアル信号群に変換するパケットデコーダと、
 前記第1シリアル信号群に含まれる前記クロック周波数情報に基づいて、前記クロックを発生させるクロック発生器と、
 前記クロックに同期して前記第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
 前記メモリに記憶された前記第2シリアル信号群を前記所定の通信プロトコルの第2パケットに変換するパケットエンコーダと、を備える、(17)に記載の通信装置。
 (19)前記第2パケットは、前記第2シリアル信号群の1つのフレーム期間内に送信されるひとまとまりのデータブロックを含むことを示す情報、又は複数のフレーム期間に分割して送信される複数のデータブロックを含むことを示す情報とを含む、(18)に記載の通信装置。
 (20)前記第2パケットは、前記スレーブが前記第1シリアル信号群を受信できないビジー状態であるか否かを示す情報と、前記スレーブが受信した前記第1シリアル信号群にエラーがあるか否かを示す情報とを含む、(18)又は(19)に記載の通信装置。
 (21)前記第2パケットは、マスタが前記スレーブの状態を読み出すことを要求する割り込み情報を含む、(18)乃至(20)のいずれか一項に記載の通信装置。
 (22)前記第2シリアル信号群に含まれる各シリアル信号を前記メモリに記憶するとともに、前記第1シリアル信号群に含まれる各シリアル信号を前記スレーブに送信するシフトレジスタを備える、(18)乃至(21)のいずれか一項に記載の通信装置。
 (23)前記通信部は、前記第2パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第1パケットを受信する、(18)乃至(22)のいずれか一項に記載の通信装置。
 (24)前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受する、(18)乃至(23)のいずれか一項に記載の通信装置。
 (25)所定の通信プロトコルにてパケットを送受する第1通信装置及び第2通信装置を備え、
 前記第1通信装置は、マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠する第1シリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第2通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第2通信装置に送信する第1通信部を有し、
 前記第2通信装置は、前記第1通信装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠する第2シリアル信号群を、前記所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第1通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第1通信装置に送信する、通信システム。
 (26)前記第1通信装置は、
 マスタから第1クロックに同期して送信された前記第1シリアル信号群を記憶するとともに、スレーブから前記第1クロックに同期して送信された前記第2シリアル信号群を記憶する第1メモリと、
 前記第1メモリに記憶された第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換する第1パケットエンコーダと、
 前記第2通信装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換する第1パケットデコーダと、
 前記第1パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第2パケットを受信する第1通信部と、を有し、
 前記第2通信装置は、
 受信された前記第1パケットを、前記第1シリアル信号群に変換する第2パケットデコーダと、
 前記第1シリアル信号群に含まれるクロック周波数情報に基づいて、第2クロックを発生させるクロック発生器と、
 前記第2クロックに同期して、前記第1シリアル信号群を記憶するとともに、前記スレーブから前記第2クロックに同期して送信された前記第2シリアル信号群を記憶する第2メモリと、
 前記第2メモリに記憶された前記第2シリアル信号群を前記第2パケットに変換するパケットエンコーダと、
 前記第2パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第1パケットを受信する第2通信部と、を有する、(25)記載の通信システム。
 マスタからクロックに同期して送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信方法。
 本開示の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本開示の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
1a 通信装置、1b 通信装置、2 通信システム、11 SPI/Master、11-1 順次シフトレジスタ、11-1 シフトレジスタ、11-2 buffer/memory、11-3 コントローラ、11-4 SCK generator、12 SPI/Slave、12-1 シフトレジスタ、12-2 buffer/memory、31 M_SerDes、31-1 SPIブロック、31-1-1 シフトレジスタ、31-1-2 buffer/memory、31-3 packet decoder(DCP)、31-5 PHY layer block、32 peripheral devices、41 S_SerDes、41-1 SPIブロック、41-1-1 シフトレジスタ、41-1-2 buffer/memory、41-1-3 SCK generator 、41-1-4 コントローラ、41-2 packet encoder(ECP)、41-3 packet decoder(DCP)、41-4 Link layer block(DLL)、41-5 PHY layer block、42 peripheral devices、51 SPIパケット、52 UP Link packet、53 SPIパケット、54 Down Link packet、103 ケーブル

Claims (27)

  1.  マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置。
  2.  前記マスタから前記クロックに同期して送信されたSPIに準拠する第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
     前記メモリに記憶された前記第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換するパケットエンコーダと、
     通信相手装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換するパケットデコーダと、を備える、請求項1に記載の通信装置。
  3.  前記第1パケットは、前記クロックの周波数情報、極性情報、及び前記SPIに準拠する前記第1シリアル信号群のデータ信号に対する前記クロックの位相情報を含む、請求項2に記載の通信装置。
  4.  前記第1パケットは、前記1つのフレーム期間内にひとまとまりのデータブロックを含むことを示す情報、又は前記複数のフレーム期間に応じて分割される複数のデータブロックを含むことを示す情報を含む、請求項2に記載の通信装置。
  5.  前記第1パケットは、前記複数のデータブロックを含む場合には、前記複数のデータブロックの総数と、前記データブロックの分割位置情報とを含む、請求項4に記載の通信装置。
  6.  前記第1パケットは、前記データブロックのサイズ情報を含む、請求項4に記載の通信装置。
  7.  前記第1パケットは、前記データブロックが有効か、又は無効かを示す情報を含む、請求項2に記載の通信装置。
  8.  前記第1パケットは、前記スレーブをリセットすることを示す情報を含む、請求項2に記載の通信装置。
  9.  前記第2パケットは、前記スレーブの動作状態を示す情報と、前記スレーブからの割り込み情報との少なくとも1つを含む、請求項2に記載の通信装置。
  10.  前記メモリは、前記第2パケットに前記割り込み情報が含まれる場合と、前記第2パケットそれ自体が前記通信相手装置から前記メモリに届いた場合とにおいて、、前記スレーブの状態の読み出しを前記スレーブが要求していると判断して、前記マスタに割り込み信号を送信する、請求項9に記載の通信装置。
  11.  前記第1パケットは、前記通信相手装置又は前記スレーブを選択する前記SPIに準拠する前記第1シリアル信号群に含まれるスレイブセレクト信号の情報を含む、請求項2に記載の通信装置。
  12.  前記パケットエンコーダは、前記スレイブセレクト信号で選択された前記通信相手装置又は前記スレーブを宛先として、前記第1パケットを送信する、請求項11に記載の通信装置。
  13.  前記第1シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記メモリに記憶するとともに、前記第2シリアル信号群に含まれる各シリアル信号を前記クロックに同期させて順次前記マスタに送信するシフトレジスタを備える、請求項2に記載の通信装置。
  14.  前記通信部は、前記第1パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第2パケットを受信する、請求項2に記載の通信装置。
  15.  前記パケットエンコーダは、前記マスタから送信されたスレイブセレクト信号が第1論理から第2論理に遷移すると、前記マスタからの前記第1シリアル信号群の送信が終了したと判断する、請求項2に記載の通信装置。
  16.  前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受する、請求項2に記載の通信装置。
  17.  通信相手装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信装置。
  18.  前記通信相手装置から受信された所定の通信プロトコルの第1パケットを、SPIに準拠する第1シリアル信号群に変換するパケットデコーダと、
     前記第1シリアル信号群に含まれる前記クロック周波数情報に基づいて、前記クロックを発生させるクロック発生器と、
     前記クロックに同期して前記第1シリアル信号群を記憶するとともに、スレーブから前記クロックに同期して送信されたSPIに準拠する第2シリアル信号群を記憶するメモリと、
     前記メモリに記憶された前記第2シリアル信号群を前記所定の通信プロトコルの第2パケットに変換するパケットエンコーダと、を備える、請求項17に記載の通信装置。
  19.  前記第2パケットは、前記第2シリアル信号群の1つのフレーム期間内に送信されるひとまとまりのデータブロックを含むことを示す情報、又は複数のフレーム期間に分割して送信される複数のデータブロックを含むことを示す情報とを含む、請求項18に記載の通信装置。
  20.  前記第2パケットは、前記スレーブが前記第1シリアル信号群を受信できないビジー状態であるか否かを示す情報と、前記スレーブが受信した前記第1シリアル信号群にエラーがあるか否かを示す情報とを含む、請求項18に記載の通信装置。
  21.  前記第2パケットは、マスタが前記スレーブの状態を読み出すことを要求する割り込み情報を含む、請求項18に記載の通信装置。
  22.  前記第2シリアル信号群に含まれる各シリアル信号を前記メモリに記憶するとともに、前記第1シリアル信号群に含まれる各シリアル信号を前記スレーブに送信するシフトレジスタを備える、請求項18に記載の通信装置。
  23.  前記通信部は、前記第2パケットを前記所定の通信プロトコルで規定された第1タイミングで送信するとともに、前記所定の通信プロトコルで規定された第2タイミングで前記第1パケットを受信する、請求項18に記載の通信装置。
  24.  前記通信部は、前記通信相手装置との間で、TDD(Time Division Duplex)に応じた前記通信プロトコルにて前記第1パケット及び前記第2パケットを送受する、請求項18に記載の通信装置。
  25.  所定の通信プロトコルにてパケットを送受する第1通信装置及び第2通信装置を備え、
     前記第1通信装置は、マスタからクロックに同期して送信されたSPI(Serial Peripheral Interface)に準拠する第1シリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第2通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第2通信装置に送信する第1通信部を有し、
     前記第2通信装置は、前記第1通信装置からのパケットに含まれるクロック周波数情報に基づいて生成されたクロックに同期して、スレーブから送信されたSPIに準拠する第2シリアル信号群を、前記所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして前記第1通信装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記第1通信装置に送信する、通信システム。
  26.  前記第1通信装置は、
     マスタから第1クロックに同期して送信された前記第1シリアル信号群を記憶するとともに、スレーブから前記第1クロックに同期して送信された前記第2シリアル信号群を記憶する第1メモリと、
     前記第1メモリに記憶された第1シリアル信号群を前記所定の通信プロトコルの第1パケットに変換する第1パケットエンコーダと、
     前記第2通信装置から受信された前記所定の通信プロトコルの第2パケットを前記第2シリアル信号群に変換する第1パケットデコーダと、
     前記第1パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第2パケットを受信する第1通信部と、を有し、
     前記第2通信装置は、
     受信された前記第1パケットを、前記第1シリアル信号群に変換する第2パケットデコーダと、
     前記第1シリアル信号群に含まれるクロック周波数情報に基づいて、第2クロックを発生させるクロック発生器と、
     前記第2クロックに同期して、前記第1シリアル信号群を記憶するとともに、前記スレーブから前記第2クロックに同期して送信された前記第2シリアル信号群を記憶する第2メモリと、
     前記第2メモリに記憶された前記第2シリアル信号群を前記第2パケットに変換するパケットエンコーダと、
     前記第2パケットを前記所定の通信プロトコルで規定されたタイミングで送信するとともに、前記所定の通信プロトコルで規定されたタイミングで前記第1パケットを受信する第2通信部と、を有する、請求項25に記載の通信システム。
  27.  マスタからクロックに同期して送信されたSPIに準拠するシリアル信号群を、所定の通信プロトコルの1つのフレーム期間内にひとまとまりのデータブロックとして通信相手装置に送信するか、又は複数のフレーム期間に応じて分割される複数のデータブロックとして前記通信相手装置に送信する通信部を備える、通信方法。
PCT/JP2021/031014 2020-08-27 2021-08-24 通信装置、通信システム及び通信方法 WO2022045144A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180051040.7A CN115956355A (zh) 2020-08-27 2021-08-24 通信设备、通信系统和通信方法
EP21861569.8A EP4207693A4 (en) 2020-08-27 2021-08-24 COMMUNICATION DEVICE, COMMUNICATION SYSTEM AND COMMUNICATION METHOD
KR1020237004685A KR20230056665A (ko) 2020-08-27 2021-08-24 통신 장치, 통신 시스템 및 통신 방법
JP2022545645A JPWO2022045144A1 (ja) 2020-08-27 2021-08-24

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063071119P 2020-08-27 2020-08-27
US63/071,119 2020-08-27
US17/405,334 2021-08-18
US17/405,334 US11971842B2 (en) 2020-08-27 2021-08-18 Communication device, communication system, and communication method for transmitting a serial signal group conforming to a serial peripheral interface

Publications (1)

Publication Number Publication Date
WO2022045144A1 true WO2022045144A1 (ja) 2022-03-03

Family

ID=80353720

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/031014 WO2022045144A1 (ja) 2020-08-27 2021-08-24 通信装置、通信システム及び通信方法

Country Status (6)

Country Link
US (1) US11971842B2 (ja)
EP (1) EP4207693A4 (ja)
JP (1) JPWO2022045144A1 (ja)
KR (1) KR20230056665A (ja)
CN (1) CN115956355A (ja)
WO (1) WO2022045144A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014373A (zh) * 2022-04-27 2023-11-07 维沃移动通信有限公司 数据处理方法、装置、通信设备和存储介质
CN114911743B (zh) * 2022-07-12 2022-10-25 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法

Citations (4)

* 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 無線基地局装置
JP2015080045A (ja) * 2013-10-15 2015-04-23 株式会社デンソー 車載診断システム
JP2018046547A (ja) * 2016-09-09 2018-03-22 株式会社デンソー 電子制御装置
JP2018056682A (ja) * 2016-09-27 2018-04-05 株式会社デンソーテン 通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687769B2 (en) * 2001-03-16 2004-02-03 Texas Instruments Incorporated Serial peripheral interface with high performance buffering scheme
CN100437541C (zh) * 2006-03-28 2008-11-26 华为技术有限公司 一种串行外设接口的实现方法
US8060681B2 (en) 2007-11-27 2011-11-15 Microsoft Corporation Interface protocol and API for a wireless transceiver
TWI406135B (zh) * 2010-03-09 2013-08-21 Nuvoton Technology Corp 資料傳輸系統與可編程序列周邊介面控制器
TW201216063A (en) * 2010-10-08 2012-04-16 Asix Electronic Corp Hybrid serial peripheral interface data transmission architecture and method of the same
JP2015080054A (ja) 2013-10-16 2015-04-23 コニカミノルタ株式会社 画像形成システム
US10216678B2 (en) * 2014-10-07 2019-02-26 Infineon Technologies Ag Serial peripheral interface daisy chain communication with an in-frame response

Patent Citations (4)

* 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 無線基地局装置
JP2015080045A (ja) * 2013-10-15 2015-04-23 株式会社デンソー 車載診断システム
JP2018046547A (ja) * 2016-09-09 2018-03-22 株式会社デンソー 電子制御装置
JP2018056682A (ja) * 2016-09-27 2018-04-05 株式会社デンソーテン 通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4207693A4

Also Published As

Publication number Publication date
US11971842B2 (en) 2024-04-30
EP4207693A4 (en) 2024-01-10
EP4207693A1 (en) 2023-07-05
JPWO2022045144A1 (ja) 2022-03-03
US20220066979A1 (en) 2022-03-03
KR20230056665A (ko) 2023-04-27
CN115956355A (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
WO2022045144A1 (ja) 通信装置、通信システム及び通信方法
US7769906B2 (en) FlexRay communication module
US8194652B2 (en) Serializer for generating serial clock based on independent clock source and method for serial data transmission
US8867573B2 (en) Transferring data between asynchronous clock domains
WO2022172837A1 (ja) 通信装置、通信システム及び通信方法
US20090300254A1 (en) Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method
CN108683536B (zh) 异步片上网络的可配置双模式融合通信方法及其接口
US7590146B2 (en) Information processing unit
CN110830137B (zh) 一种基于srio的多节点时间同步控制系统及其同步控制方法
WO2022215701A1 (ja) 通信装置、通信システム及び通信方法
WO2022262587A1 (zh) 数据传输方法、装置、系统、电子设备及可读介质
US20230145915A1 (en) Communication device and communication system
US11789884B2 (en) Bus system and method for operating a bus system
US7248663B2 (en) Apparatus and method for transforming data transmission speed
JPH08214031A (ja) 通信システムおよび通信用中継器
WO2022244761A1 (ja) 通信装置及び通信システム
US20210288781A1 (en) Communication device, communication system and communication method
KR101371512B1 (ko) 고속 기저대역 데이터 저장 장치 및 방법
JPH10254828A (ja) データ転送方式
JPH05102950A (ja) 位相吸収装置
JPH02226930A (ja) 伝送遅延位相補償回路
JPH07235926A (ja) パケット送信・受信回路
JPH05130112A (ja) データ伝送方式
KR20010065001A (ko) 자동수신모드를 갖는 비동기화 데이터 수신장치
JPH04182852A (ja) Dma制御処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21861569

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022545645

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021861569

Country of ref document: EP

Effective date: 20230327