WO2022113812A1 - 情報処理装置、移動体装置、および通信システム - Google Patents

情報処理装置、移動体装置、および通信システム Download PDF

Info

Publication number
WO2022113812A1
WO2022113812A1 PCT/JP2021/042005 JP2021042005W WO2022113812A1 WO 2022113812 A1 WO2022113812 A1 WO 2022113812A1 JP 2021042005 W JP2021042005 W JP 2021042005W WO 2022113812 A1 WO2022113812 A1 WO 2022113812A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
extended
session key
phy
cci
Prior art date
Application number
PCT/JP2021/042005
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 US18/253,917 priority Critical patent/US20240007286A1/en
Priority to JP2022565244A priority patent/JPWO2022113812A1/ja
Publication of WO2022113812A1 publication Critical patent/WO2022113812A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present disclosure relates to an information processing device, a mobile device, and a communication system, and more particularly to an information processing device, a mobile device, and a communication system capable of updating a session key.
  • the CSI-2 standard has come to be widely used not only for mobile devices but also for various purposes such as in-vehicle and IoT (Internet of Things), and as a result, in the existing packet structure, those uses. It is assumed that it cannot correspond to. Therefore, the MIPI (Mobile Industry Processor Interface) Alliance is considering extended packets that extend the packet structure of existing packet headers and packet footers in order to support various uses.
  • MIPI Mobile Industry Processor Interface
  • SPDM Security Protocol and Data Model
  • This disclosure was made in view of such a situation, and makes it possible to update the session key.
  • the information processing device of one aspect of the present technology includes a protection unit that protects the first communication and the second communication faster than the first communication, and the first communication is a command or a command for controlling the second communication.
  • the protection unit uses the first communication to derive a first secret from the key schedule, derives a first session key related to the first secret, and includes transmission or reception of a response to the instruction.
  • the first session key is used for encryption or message authentication of the first communication, and the protection unit receives or receives the second session key by using the first communication protected by the first session key.
  • a second session related to the second secret by deriving or generating a two-session key and transmitting using the first communication protected by the first session key, or by deriving a second secret from the key schedule.
  • the key is derived
  • the second session key is used for encryption or message authentication of the second communication
  • the protection unit uses the first communication protected by the first session key to perform a third session.
  • the third session key is derived, and the third session key is an information processing apparatus that is started to be used in place of the second session key.
  • the mobile device on one aspect of the present technology includes a protection unit that protects the first communication and the second communication faster than the first communication, and the first communication is a command or a command for controlling the second communication.
  • the protection unit uses the first communication to derive a first secret from the key schedule, derives a first session key related to the first secret, and includes transmission or reception of a response to the instruction.
  • the first session key is used for encryption or message authentication of the first communication, and the protection unit receives or receives the second session key by using the first communication protected by the first session key.
  • a second session related to the second secret by deriving or generating a two-session key and transmitting using the first communication protected by the first session key, or by deriving a second secret from the key schedule.
  • the key is derived, the second session key is used for encryption or message authentication of the second communication, and the protection unit uses the first communication protected by the first session key to perform a third session.
  • the third session key is derived, and the third session key is a mobile device that is started to be used in place of the second session key.
  • the communication system of one aspect of the present technology includes a protection unit that protects the first communication and the second communication faster than the first communication, and the first communication is a command for controlling the second communication or the said.
  • the protection unit uses the first communication to derive a first secret from the key schedule, derives a first session key related to the first secret, and includes the transmission or reception of a response to the instruction.
  • the 1-session key is used for encryption or message authentication of the 1st communication, and the protection unit receives or receives the 2nd session key by using the 1st communication protected by the 1st session key.
  • a second session key related to the second secret by deriving or generating a session key and transmitting using the first communication protected by the first session key, or by deriving a second secret from the key schedule.
  • the second session key is used for encryption or message authentication of the second communication, and the protection unit uses the first communication protected by the first session key to use the third session key. Received, or derived or generated a third session key and transmitted using the first communication protected by the first session key, or a second associated with the second session key in addition to the second session key.
  • the 3 session key is derived, and the 3rd session key is a communication system that is started to be used in place of the 2nd session key.
  • the first secret is derived from the key schedule by using the first communication including the instruction for controlling the second communication faster than the first communication or the transmission or reception of the response to the instruction.
  • the first session key associated with the first secret is derived, the first session key is used for encryption or message authentication of the first communication, and the first communication protected by the first session key is used.
  • the second session key is received, or the derived or generated second session key is transmitted using the first communication protected by the first session key, or the second secret is derived from the key schedule.
  • the second session key associated with the second secret is derived, the second session key is used for encryption or message authentication of the second communication, and the first communication protected by the first session key is used.
  • the third session key is received, or the derived or generated third session key is transmitted using the first communication protected by the first session key, or in addition to the second session key to the second secret.
  • the related third session key is derived, and the third session key is used in place of the second session key.
  • HEARTBEAT processing (part 2) of a CCI host (requester). It is a flowchart explaining HEARTBEAT processing (part 2) of a CCI device (responder). It is a flowchart explaining HEARTBEAT processing (part 3) of a CCI host (requester). It is a flowchart explaining HEARTBEAT processing (part 3) of a CCI device (responder). It is a figure explaining the configuration example of the ERROR response message. It is a figure explaining the setting example of Error code and Error data. It is a figure explaining the setting example of ExtendedErrorData. It is a figure explaining the setting example of Registry or standards body ID when the pseudo HEARTBEAT function is used.
  • FIG. 1 is a block diagram showing a configuration example of a first embodiment of a communication system to which the present technology is applied.
  • the communication system 11 is configured by connecting an image sensor 21 and an application processor 22 via a bus 23.
  • the communication system 11 is used for CSI-2 connection inside an existing mobile device such as a so-called smartphone.
  • the image sensor 21 is configured by incorporating an extended mode compatible CSI-2 transmission circuit 31 together with, for example, a lens and an image sensor (none of which are shown). For example, the image sensor 21 transmits the image data of the image acquired by the image sensor to the application processor 22 by the extended mode compatible CSI-2 transmission circuit 31.
  • the application processor 22 is configured by incorporating an extended mode compatible CSI-2 receiving circuit 32 together with an LSI (Large Scale Integration) that performs processing according to various applications executed by a mobile device equipped with a communication system 11.
  • the application processor 22 may receive the image data transmitted from the image sensor 21 by the extended mode compatible CSI-2 receiving circuit 32, and process the image data according to the application by the LSI. can.
  • Bus 23 is a communication path that transmits signals in accordance with the CSI-2 standard. For example, the transmission distance that can transmit signals is about 30 cm. Further, the bus 23 connects the image sensor 21 and the application processor 22 by a plurality of signal lines (I2C, CLKP / N, D0P / N, D1P / N, D2P / N, D3P / N) as shown in the figure. ..
  • the extended mode compatible CSI-2 transmission circuit 31 and the extended mode compatible CSI-2 reception circuit 32 support communication in the extended mode, which is an extension of the CSI-2 standard, and transmit and receive signals from each other. Can be done.
  • the detailed configuration of the extended mode compatible CSI-2 transmission circuit 31 and the extended mode compatible CSI-2 reception circuit 32 will be described later with reference to FIGS. 9 and 10.
  • FIG. 2 is a block diagram showing a configuration example of a second embodiment of a communication system to which the present technology is applied.
  • the image sensor 21 and the SerDes device 25 are connected via the bus 24-1, and the application processor 22 and the SerDes device 26 are connected via the bus 24-2.
  • the SerDes device 25 and the SerDes device 26 are connected to each other via the bus 27.
  • the communication system 11A is used for connection in an existing in-vehicle camera.
  • the image sensor 21 and the application processor 22 are configured in the same manner as the image sensor 21 and the application processor 22 in FIG. 1, and detailed description thereof will be omitted.
  • Buses 24-1 and 24-2 are communication paths for transmitting signals in accordance with the CSI-2 standard, like bus 23 in FIG. 1, and have a plurality of signal lines (HS-GPIO) as shown in the figure. , I2C / I3C, CLKP / N, D0P / N, D1P / N, D2P / N, D3P / N).
  • the SerDes device 25 includes a CSI-2 receiving circuit 33 and a SerDes (SerializerDeserializer) transmitting circuit 34.
  • the SerDes device 25 is transmitted from the image sensor 21 by the CSI-2 receiving circuit 33 communicating with the extended mode compatible CSI-2 transmitting circuit 31 in accordance with the normal CSI-2 standard. Get the incoming bit parallel signal. Then, the SerDes device 25 converts the acquired signal into bit series, and the SerDes transmission circuit 34 communicates with the SerDes reception circuit 35 in one lane to transmit the signal to the SerDes device 26. do.
  • the SerDes device 26 includes a SerDes receiving circuit 35 and a CSI-2 transmitting circuit 36.
  • the SerDes device 26 acquires a bit-series signal transmitted by the SerDes receiving circuit 35 communicating with the SerDes transmitting circuit 34 in one lane. Then, the SerDes device 26 converts the acquired signal into bit parallel, and the CSI-2 transmission circuit 36 complies with the normal CSI-2 standard with the extended mode compatible CSI-2 reception circuit 32. By communicating, it is transmitted to the application processor 22.
  • Bus 27 is a communication path that transmits signals in accordance with standards such as A-PHY and FPD (Flat Panel Display) -LINK III.
  • A-PHY and FPD Fluorescence Display
  • FPD Flexible Panel Display
  • the transmission distance that can transmit signals is 15 m. It is a long distance.
  • MIPI A-PHY has an asymmetric data link layer (asymmetric upper layer) with a point-to-point topology, making it possible to share the same physical wiring with high-speed data transmission, control data, and power, as well as cameras and sensors. It serves as the foundation for end-to-end systems designed to simplify display integration, while also incorporating functional safety and security.
  • the communication systems 11 and 11A configured in this way transmit and receive data in packets having an expanded packet structure as described later by the extended mode compatible CSI-2 transmission circuit 31 and the extended mode compatible CSI-2 reception circuit 32. be able to.
  • This makes it possible to support a wider variety of applications, such as RAW24, which will be described later, SmartROI (Region of Interest), GLD (Graceful Link Degradation), and the like.
  • FIG. 3 shows the overall packet structure of a packet (hereinafter referred to as an extended packet for D-PHY) used in the extended mode of CSI-2 when the physical layer is D-PHY.
  • an extended packet for D-PHY a packet used in the extended mode of CSI-2 when the physical layer is D-PHY.
  • the extended packet for D-PHY has the same packet structure as the existing CSI-2 standard in the packet header and packet footer.
  • the packet header stores VC (VirtualChannel) indicating the number of lines of the virtual channel, data type (DataType) indicating the data type, WC (WordCount) indicating the data length of the payload, and VCX / ECC.
  • CRC Cyclic Redundancy Check
  • the data type transmitted in the packet header is defined as 0x38 to 0x3F as reserve. Therefore, in the extended packet for D-PHY, the setting information for identifying the extended mode on the receiving side is newly defined by using the data type that is already reserved.
  • DataType [5: 3] is defined as extended mode setting information
  • DataType [1: 0] is the extended type. It is defined as setting information.
  • the extended mode setting information indicates whether or not the extended mode is set, and for example, when the DataType [5: 3] is 3'b111, it indicates that the extended mode is set. Further, when four types of extended mode 0, extended mode 1, extended mode 2, and extended mode 3 are prepared as the types of the extended mode, the extended type setting information is any of them. Indicates. For example, when DataType [1: 0] is 2'b00, it indicates that the type of extended mode is extended mode 0.
  • the payload in the extended mode 0 includes an extended packet header (ePH: extended Packet Header), an optional extended packet header (OePH: Optional extended Packet Header), a legacy payload (Legacy Payload), and an optional. Separated into extended packet footers (OePF: Optional extended Packet Footer).
  • the extended packet header may be repeatedly transmitted.
  • the extended packet header is placed at the beginning corresponding to the payload of the existing CSI-2 standard, and must be transmitted in the extended mode.
  • the extended packet header is composed of setting information such as an SROI identification flag, an extended VC (VirtualChannel), an extended DataType, an OePH selection flag, and an OePF selection flag, as shown in the figure.
  • the extended VC expands the VC, which was 4 bits in the existing CSI-2 standard, to 8 bits
  • the extended DataType expands the DataType, which was 4 bits in the existing CSI-2 standard, to 8 bits.
  • the optional extended packet header and optional extended packet footer are selectively transmitted according to the intended use.
  • the legacy payload corresponds to the same payload as the existing CSI-2 standard.
  • the extended packet header, the optional extended packet header, and the optional extended packet footer shall be 26bit + 6bit ECC (Error Correction Code).
  • ECC Error Correction Code
  • FIG. 4 shows a short packet used in the extended mode of CSI-2 when the physical layer is D-PHY (hereinafter, D-PHY).
  • the packet structure of (referred to as extended short packet) is shown.
  • FIG. 5 shows the packet structure of a long packet (hereinafter referred to as an extended long packet for D-PHY) used in the extended mode of CSI-2 when the physical layer is D-PHY. There is.
  • the packet is an extended short packet and the optional extended packet header is always extended.
  • Data including the Short Packet Data Field of the short packet is transmitted. This Short Packet Data Field is the same as that defined in the existing CSI-2 standard.
  • MC MessageCount for GLD
  • RSID in-vehicle line number and SourceID
  • An extended short packet having a packet structure as shown in FIG. 4 can expand the data type and the bit width of the virtual channel as compared with the extended short packet according to the existing CSI-2 standard, and is optional. It can be used for various purposes defined by the extended packet header. If these functions are not required, the extended short packet according to the existing CSI-2 standard may be transmitted together with the extended long packet.
  • the optional extended packet header, legacy payload, and optional extended packet footer are stored in the payload according to the existing CSI-2 standard and transmitted.
  • the existing SerDes transmission circuit 34 and the SerDes reception circuit 35 (FIG. 2) in the same manner as the image data transmitted in the existing payload, and is transmitted as it is. It is transmitted to the latter stage.
  • the application processor 22 at the last stage can be determined to be in the extended mode by the data type DT [5: 0] of the packet header. Therefore, the application processor 22 can interpret the contents of the payload in order from the extended packet header and retrieve the data of the desired extended mode.
  • FIG. 6 shows the overall packet structure of a packet (hereinafter referred to as an extended packet for C-PHY) used in the extended mode of CSI-2 when the physical layer is C-PHY.
  • an extended packet for C-PHY shown in FIG. 6, the configuration common to the extended packet for D-PHY in FIG. 3 will be omitted, and different configurations will be described.
  • the extended mode is identified by the data type as in the extended packet for D-PHY in FIG. 3, and all the data corresponding to each application executed by the application processor 22 is included. It is embedded in the payload and transmitted.
  • the extended packet for C-PHY transmits the packet header twice like the packet for C-PHY according to the existing CSI-2 standard, and the C-PHY transmits 16 bits to 7 symbols. For convenience of conversion to, arrange the data in 16-bit units.
  • the extended packet header is placed at the beginning of the payload, but for the virtual channel, in the case of C-PHY, the beginning of the existing packet header was Reserve for that reason, so the virtual channel is in the extended packet header. Is not stored.
  • the virtual channel may be stored in the extended packet header as in the extended packet for D-PHY.
  • a flag called OePHF is prepared, and if this flag is 1, OePH / OePF information is transmitted next. Then, after the ePH information and the OePH information, the CRC is transmitted as an extended packet header, and the similarly configured packet header is repeatedly transmitted twice. In this way, by making the structure and the mechanism of transmitting the existing packet header twice, it is possible to achieve both circuit reusability and error immunity.
  • FIG. 7 shows a short packet used in the extended mode of CSI-2 when the physical layer is C-PHY (hereinafter, C-PHY).
  • the packet structure of (referred to as extended short packet) is shown.
  • FIG. 8 shows the packet structure of a long packet (hereinafter referred to as an extended long packet for C-PHY) used in the extended mode of CSI-2 when the physical layer is C-PHY. There is.
  • the extended short packet for C-PHY shown in FIG. 7 has no significant difference in packet structure from the extended short packet for D-PHY shown in FIG. 4, and the extended long packet for C-PHY shown in FIG. There is no big difference in the packet structure from the extended long packet for D-PHY shown in FIG.
  • FIG. 9 is a block diagram showing a configuration example of the image sensor 21 including the extended mode compatible CSI-2 transmission circuit 31.
  • the image sensor 21 includes a pixel 41, an AD converter 42, an image processing unit 43, a pixel CRC calculation unit 44, and a physical layer processing unit 45. It is configured to include an I2C / I3C slave 46 and a register 47. Further, the extended mode compatible CSI-2 transmission circuit 31 includes a packing unit 51, a packet header generation unit 52, an extended packet header generation unit 53, an extended packet footer generation unit 54, selection units 55 and 56, a CRC calculation unit 57, and a lane distribution unit. It is configured to include a unit 58, a CCI slave 59, and a controller 60.
  • the pixel 41 outputs an analog pixel signal according to the amount of received light
  • the AD converter (ADC: Analog-to-Digital Converter) 42 digitally converts the pixel signal output from the pixel 41 into an image. It is supplied to the processing unit 43.
  • the image processing unit (ISP: Image Signal Processor) 43 supplies image data obtained by performing various image processing on an image based on a pixel signal to the pixel CRC calculation unit 44 and the packing unit 51. Further, the image processing unit 43 supplies the packing unit 51 and the controller 60 with a data enable signal data_en indicating whether or not the image data is valid.
  • the pixel CRC calculation unit 44 calculates and obtains the CRC for each pixel in the image data supplied from the image processing unit 43, and supplies the CRC to the extended packet footer generation unit 54.
  • the physical layer processing unit 45 can execute both C-PHY and D-PHY physical layer processing. For example, the physical layer processing unit 45 executes the physical layer processing of the C-PHY when the C layer enable signal cphy_en supplied from the controller 60 is valid, and when the C layer enable signal cphy_en is invalid, the physical layer processing unit 45 executes the physical layer processing of the C-PHY. Performs D-PHY physical layer processing. Then, the physical layer processing unit 45 transmits the packet divided into four lanes by the lane distribution unit 58 to the application processor 22.
  • the I2C / I3C slave 46 communicates according to the I2C / I3C master 72 (FIG. 10) of the application processor 22 based on the I2C (Inter-Integrated Circuit) or I3C (Improved Inter Integrated Circuits) standard.
  • the settings written to the register 47 include, for example, a communication setting according to the CSI-2 standard, an extended mode setting indicating whether or not the extended mode is used, and a fixed communication setting required for communication in the extended mode. and so on.
  • the packing unit 51 performs a packing process for storing the image data supplied from the image processing unit 43 in the payload of the packet, and supplies the payload to the selection unit 55 and the lane distribution unit 58.
  • the packet header generation unit 52 When the packet header generation unit 52 is instructed to generate a packet header according to the packet header generation instruction signal ph_go supplied from the controller 60, the packet header generation unit 52 generates a packet header and supplies it to the selection unit 55 and the lane distribution unit 58.
  • the packet header generation unit 52 generates a packet header for storing setting information indicating the set conditions for the data transmitted in the packet, for example, a data type indicating the data type, according to the existing CSI-2 standard. .. Further, the packet header generation unit 52 uses an extended header in an unused area defined as unused in the existing CSI-2 standard in the data type which is the setting information indicating the type of the data transmitted in the packet. Stores extended mode setting information indicating whether or not the extended mode is set. Further, the packet header generation unit 52 stores the extended type setting information indicating which type of the plurality of types of extended modes prepared as the extended mode is in the unused area.
  • the extended packet header generation unit 53 generates an extended packet header and an optional extended packet header according to the extended packet header generation instruction signal eph_go and the extended packet header enable signal ePH_en supplied from the controller 60, and the selection unit 56 and the lane distribution unit. Supply to 58. Further, the extended packet header generation unit 53 is supplied with an in-vehicle line number, a source ID (identification), and the like according to the use of the image sensor 21, and if necessary, they are an extended packet header or an optional extended packet header. Stored in.
  • the extended packet header generation unit 53 generates an extended packet header for storing the setting information as shown in FIG. 3, for example, in addition to the packet header generated by the packet header generation unit 52. Further, when transmitting the optional extended packet header, the extended packet header generation unit 53 uses the optional extended packet as optional extended packet header setting information (OePH [7: 0]) indicating whether or not to transmit the optional extended packet header.
  • optional extended packet header setting information indicating that the header is transmitted is stored in the extended packet header, and the optional extended packet header is generated following the extended packet header.
  • the extended packet footer generation unit 54 generates an optional extended packet footer according to the extended packet footer generation instruction signal epf_go and the extended packet header enable signal ePF_en supplied from the controller 60, and supplies the optional extended packet footer to the selection unit 56 and the lane distribution unit 58.
  • the extended packet footer generation unit 54 is a legacy payload in which data is stored when the packet transmitted in the extended mode is an extended long packet that stores data transmitted as a payload in the existing CSI-2 standard. Generates an optional extended packet footer that follows.
  • the C-layer enable signal cphy_en is supplied from the controller 60 to the packet header generation unit 52, the extended packet header generation unit 53, and the extended packet footer generation unit 54.
  • the packet header generation unit 52 When the C-layer enable signal cphy_en indicates that it is valid, the packet header generation unit 52 generates a packet header for C-PHY, and the extended packet header generation unit 53 generates an extended packet header for C-PHY and an optional extension.
  • the packet header is generated, and the extended packet footer generation unit 54 generates an optional extended packet footer for C-PHY.
  • the packet header generation unit 52 when the C-layer enable signal cphy_en indicates invalid, the packet header generation unit 52 generates a packet header for D-PHY, and the extended packet header generation unit 53 generates an extended packet header for D-PHY and an optional extension.
  • the packet header is generated, and the extended packet footer generation unit 54 generates an optional extended packet footer for D-PHY.
  • the selection unit 55 selects the packet header supplied from the packet header generation unit 52 and supplies the packet header to the selection unit 56 when the C layer enable signal cphy_en is valid according to the C layer enable signal cphy_en supplied from the controller 60. .. On the other hand, when the C layer enable signal cphy_en is invalid, the selection unit 55 selects the payload supplied from the packing unit 51 and supplies it to the selection unit 56.
  • the selection unit 56 includes a packet header or payload selectively supplied via the selection unit 55 according to the data selection signal data_sel supplied from the controller 60, an extended packet header supplied from the extended packet header generation unit 53, and an optional extension.
  • One of the optional extended packet footer supplied from the packet header and the extended packet footer generation unit 54 is selected and supplied to the CRC calculation unit 57.
  • the CRC calculation unit 57 calculates and obtains the CRC of the packet header, payload, extended packet header, optional extended packet header, or optional extended packet footer selectively supplied via the selection unit 56, and distributes the CRC to the lane. Supply to unit 58.
  • the lane distribution unit 58 has a payload supplied from the packing unit 51, a packet header supplied from the packet header generation unit 52, an extended packet header supplied from the extended packet header generation unit 53, and an optional extended packet according to the control of the controller 60.
  • the header, the optional extended packet footer supplied from the extended packet footer generation unit 54, and the CRC supplied from the CRC calculation unit 57 are distributed to four lanes according to the CSI-2 standard, and the physical layer processing unit 45 is used. Supply to.
  • the CCI (Camera Control Interface) slave 59 communicates based on the CSI-2 standard according to the initiative of the CCI master 88 (FIG. 10) of the application processor 22.
  • the controller 60 reads various settings stored in the register 47 and controls each block constituting the extended mode compatible CSI-2 transmission circuit 31 according to those settings. For example, the controller 60 controls switching between transmission of a packet structure packet according to the existing CSI-2 standard and transmission of a packet structure packet in the extended mode according to the content of the data to be transmitted.
  • the image sensor 21 is configured in this way, and can generate an extended packet having a packet structure as described with reference to FIGS. 3 to 8 and transmit it to the application processor 22.
  • FIG. 10 is a block diagram showing a configuration example of an application processor 22 including an extended mode compatible CSI-2 receiving circuit 32.
  • the application processor 22 includes a physical layer processing unit 71, an I2C / I3C master 72, a register 73, and a controller 74 in addition to the extended mode compatible CSI-2 receiving circuit 32.
  • the extended mode compatible CSI-2 receiving circuit 32 includes a packet header detection unit 81, a lane merging unit 82, an interpretation unit 83, a selection unit 84 and 85, a CRC calculation unit 86, an unpacking unit 87, and a CCI master 88. Be prepared for it.
  • the physical layer processing unit 71 can execute both C-PHY and D-PHY physical layer processing. As described above, the physical layer processing unit 45 of the image sensor 21 performs physical layer processing of either C-PHY or D-PHY, and the physical layer processing unit 71 is the physical layer processing unit 45. Performs the same physical layer processing that was performed in.
  • the I2C / I3C master 72 takes the lead in communicating with the I2C / I3C slave 46 (FIG. 9) of the image sensor 21 based on the I2C or I3C standard.
  • the controller 74 controls each block constituting the application processor 22.
  • mrg_en merging enable signal
  • the packet header detection unit 81 detects the packet header in which the setting information (data type, etc.) indicating the set conditions for the data transmitted in the packet is stored according to the existing CSI-2 standard. At this time, the packet header detection unit 81 is stored in an unused area defined as unused in the existing CSI-2 standard in the data type which is the setting information indicating the type of the data transmitted in the packet. , By outputting the extended mode detection flag according to the extended mode setting information indicating whether or not the extended mode uses the extended header, the packet structure of the packet structure according to the existing CSI-2 standard can be received and the extended mode. It switches between receiving and receiving packets with a packet structure at the time. Further, the packet header detection unit 81 has a plurality of types prepared as extended modes according to the extended mode type information stored in the unused area of the data type defined as unused in the existing CSI-2 standard. Recognize which type of extended mode it is.
  • the lane merge unit 82 merges the packets divided into four lanes supplied from the physical layer processing unit 71. Then, the lane merging unit 82 supplies the packet of one lane to the interpretation unit 83, the selection unit 84, and the selection unit 85.
  • the interpretation unit 83 starts from the packet supplied from the lane merging unit 82 based on the packet structure of the extended mode. , Extended packet header, optional extended packet header, and optional extended packet footer. Then, the interpretation unit 83 interprets the setting information stored in the extended packet header, the optional extended packet header, and the optional extended packet footer.
  • the interpreting unit 83 receives the extended packet header placed at the beginning of the payload according to the existing CSI-2 standard as the extended header, and interprets the setting information stored in the extended packet header. Further, when the interpretation unit 83 indicates that the optional extended packet header setting information stored in the extended packet header transmits the optional extended packet header that is selectively transmitted according to the purpose, the extended packet header Then, the optional extended packet header is received, and the setting information stored in the optional extended packet header is interpreted. Further, the interpretation unit 83 follows the legacy payload in which the data is stored when the packet transmitted in the extended mode is an extended long packet containing the data transmitted as the payload in the existing CSI-2 standard. Receives the placed optional extended packet footer and interprets the optional extended packet footer.
  • the interpretation unit 83 reads, for example, the in-vehicle line number and the source ID stored in the optional extended packet header, and outputs the output to the subsequent LSI (not shown).
  • the interpretation unit 83 does not indicate that the extended mode detection flag supplied from the packet header detection unit 81 is in the extended mode, that is, when a packet having an existing packet structure is supplied. Stops without performing the above-mentioned processing.
  • the selection unit 84 selectively supplies data to the unpacking unit 87 based on the packet structure of the existing packet or the packet structure of the extended packet according to the extended mode detection flag supplied from the packet header detection unit 81.
  • the selection unit 85 selectively supplies data to the CRC calculation unit 86 based on the packet structure of the existing packet or the packet structure of the extended packet according to the extended mode detection flag supplied from the packet header detection unit 81.
  • the CRC calculation unit 86 calculates the CRC of the packet header, payload, extended packet header, optional extended packet header, or optional extended packet footer selectively supplied via the selection unit 85. Then, when a CRC error is detected, the CRC calculation unit 86 outputs a crcCRC error detection signal to that effect to a subsequent LSI (not shown).
  • the unpacking unit 87 performs an unpacking process for extracting image data stored in the payload selectively supplied via the selection unit 84, and outputs the acquired image data to a subsequent LSI (not shown). ..
  • the CCI master 88 takes the lead in communicating with the CCI slave 59 (FIG. 9) of the image sensor 21 based on the CSI-2 standard.
  • the application processor 22 is configured in this way, receives the extended packet transmitted from the image sensor 21, and interprets the setting information stored in the extended packet header, the optional extended packet header, and the optional extended packet footer. Then, the image data can be acquired.
  • FIG. 11 is a flowchart illustrating a process in which the image sensor 21 transmits a packet.
  • step S11 the controller 60 determines whether or not to use the extended mode when starting communication with the application processor 22. For example, the controller 60 checks the extended mode setting stored in the register 47, and determines that the extended mode is used when the extended mode setting indicating that the extended mode is used is written by the application processor 22.
  • step S11 determines in step S11 that the extended mode is not used. If the controller 60 determines in step S11 that the extended mode is not used, the process proceeds to step S12.
  • step S12 the I2C / I3C slave 46 receives the transmission start command of the image data transmitted from the application processor 22 (in step S54 of FIG. 13 described later). Further, the I2C / I3C slave 46 receives the communication setting according to the CSI-2 standard transmitted together with the transmission start command, and writes the communication setting to the register 47 via the CCI slave 59.
  • step S13 the image sensor 21 executes a conventional packet transmission process of transmitting a packet having a packet structure according to the existing CSI-2 standard to the application processor 22 based on the communication setting stored in the register 47. Will be done.
  • step S11 determines in step S11 that the extended mode is to be used
  • the process proceeds to step S14.
  • step S14 the I2C / I3C slave 46 receives a fixed communication setting (for example, a copy of PH / PF for each lane during GLD) required for communication in the extended mode, and via the CCI slave 59. And write to register 47.
  • a fixed communication setting for example, a copy of PH / PF for each lane during GLD
  • step S15 the I2C / I3C slave 46 receives the transmission start command of the image data transmitted from the application processor 22 (in step S57 of FIG. 13 described later). Further, the I2C / I3C slave 46 receives the communication setting according to the CSI-2 standard transmitted together with the transmission start command, and writes the communication setting to the register 47 via the CCI slave 59.
  • step S16 the controller 60 determines whether or not to start the transmission of the packet, and waits for the process until it is determined to start the transmission of the packet.
  • step S16 determines whether or not the transmission of the packet is to be started.
  • the process proceeds to step S17, and the controller 60 determines whether or not the data should be transmitted in the extended mode.
  • the controller 60 determines that the data should be transmitted in the extended mode, for example, when the data is transmitted in the use case of the application example described later, depending on the content of the data to be transmitted. do.
  • step S17 If the controller 60 determines in step S17 that the data should be transmitted in the extended mode, the process proceeds to step S18, and the extended mode transmission process (see FIG. 12) for transmitting the extended packet corresponding to the extended mode is performed. Will be.
  • step S17 determines in step S17 that the data is not data to be transmitted in the extended mode. If the controller 60 determines in step S17 that the data is not data to be transmitted in the extended mode, the process proceeds to step S19.
  • step S19 the controller 60 determines whether or not to transmit a short packet. For example, the controller 60 determines to transmit a short packet at the start and end of the frame.
  • step S19 If it is determined in step S19 that the controller 60 transmits a short packet, the process proceeds to step S20.
  • step S20 the packet header generation unit 52 generates a packet header and transmits a short packet having a conventional packet structure to the application processor 22.
  • step S19 if it is determined in step S19 that the controller 60 does not transmit a short packet (that is, a long packet is transmitted), the process proceeds to step S21.
  • step S21 the packing unit 51 stores the image data in the payload, and the CRC calculation unit 57 obtains the CRC to generate a long packet having a conventional packet structure and transmit it to the application processor 22.
  • step S18 After the processing of step S18, step S20, or step S21, the processing proceeds to step S22, and the controller 60 ends the packet transmission processing. After that, the process returns to step S16, and thereafter, the process of transmitting the packet is repeated for the next packet.
  • FIG. 12 is a flowchart illustrating the extended mode transmission process performed in the process of step S18 of FIG.
  • step S31 the packet header generation unit 52 generates a packet header containing a VC, a data type, a WC, and the like, and transmits the packet header to the application processor 22.
  • step S32 the application processor 22 determines whether or not to transmit the extended short packet. For example, the controller 60 determines to transmit the extended short packet at the start and end of the frame.
  • step S32 determines in step S32 to transmit the extended short packet. If the application processor 22 determines in step S32 to transmit the extended short packet, the process proceeds to step S33.
  • step S33 the extended packet header generation unit 53 transmits an extended packet header in which the data type (DataType [7: 0]) is set as a short packet in the first byte of the payload.
  • the extended packet header generation unit 53 makes various settings (for example, OePH [7: 0], OePF [3: 0], etc.) stored in the extended packet header.
  • step S34 the extended packet header generation unit 53 stores and transmits the frame number (FN: FrameNumber) in the second byte of the payload.
  • step S35 the extended packet header generation unit 53 generates and transmits an optional extended packet header as shown in FIG. 4 according to the setting (OePH [7: 0]) made in step S33.
  • step S36 the CRC calculation unit 57 seeks the CRC and transmits it as a packet footer.
  • step S32 determines whether the application processor 22 does not transmit the extended short packet (that is, the long packet is transmitted). If it is determined in step S32 that the application processor 22 does not transmit the extended short packet (that is, the long packet is transmitted), the process proceeds to step S37.
  • step S37 the extended packet header generation unit 53 transmits an extended packet header in which the data type (DataType [7: 0]) is set to other than a short packet in the first byte of the payload.
  • the extended packet header generation unit 53 makes various settings (for example, OePH [7: 0], OePF [3: 0], etc.) stored in the extended packet header.
  • step S38 the extended packet header generation unit 53 generates and transmits an optional extended packet header as shown in FIG. 5 according to the setting (OePH [7: 0]) made in step S37.
  • step S39 the packing unit 51 packs the image data supplied from the image processing unit 43, generates a legacy payload, and transmits the image data.
  • step S40 the extended packet footer generation unit 54 generates and transmits an optional extended packet footer as shown in FIG. 4 according to the setting (OePF [3: 0]) made in step S37.
  • step S41 the CRC calculation unit 57 seeks the CRC and transmits it as a packet footer.
  • step S36 or S41 the extended mode transmission processing is terminated.
  • the image sensor 21 can generate and transmit an extended short packet or an extended long packet.
  • FIG. 13 is a flowchart illustrating a process in which the application processor 22 receives a packet.
  • step S51 the controller 74 writes the initial settings of the image sensor 21 (for example, whether to use C-PHY or D-PHY as the physical layer) to the register 73, and I2C / I3C via the CCI master 88. It is transmitted to the image sensor 21 by the master 72. As a result, the initial setting is written in the register 47 of the image sensor 21.
  • step S52 the controller 74 recognizes whether or not the image sensor 21 supports the extended mode.
  • the controller 74 supports the extended mode by acquiring the set value (for example, the expanded PH / PF compatible capability) stored in the register 47 of the image sensor 21 by the I2C / I3C master 72. It is possible to recognize whether or not it is.
  • the controller 74 can recognize in advance whether or not the image sensor 21 supports the extended mode based on, for example, a manual input.
  • step S53 the controller 74 determines whether or not the image sensor 21 supports the extended mode and the application executed by the application processor 22 requires the use of the extended mode.
  • step S53 If the controller 74 determines in step S53 that the image sensor 21 does not support the extended mode or is not required to use the extended mode, the process proceeds to step S54.
  • step S54 the controller 74 transmits an image data transmission start command to the image sensor 21 by the I2C / I3C master 72. At this time, the controller 74 also transmits the communication setting according to the CSI-2 standard.
  • step S55 the application processor 22 performs a conventional packet reception process of receiving a packet having a packet structure according to the existing CSI-2 standard based on the communication setting transmitted in step S54.
  • step S53 determines in step S53 that the image sensor 21 supports the extended mode and the application executed by the application processor 22 requires the use of the extended mode
  • step S56 proceeds to.
  • step S56 the I2C / I3C master 72 transmits fixed communication settings required for communication in the extended mode before communication in the extended mode is started. As a result, the fixed communication setting is written to the register 47 of the image sensor 21 (step S14 in FIG. 11).
  • step S57 the controller 74 transmits an image data transmission start command to the image sensor 21 by the I2C / I3C master 72. At this time, the controller 74 also transmits the communication setting according to the CSI-2 standard.
  • step S58 the packet header detection unit 81 determines whether or not the packet reception has started by checking the data supplied from the physical layer processing unit 71, and processes until it is determined that the packet reception has started. Wait for. For example, when the packet header detection unit 81 detects the packet header from the data supplied from the physical layer processing unit 71, the packet header detection unit 81 determines that the packet reception has started.
  • step S58 If the packet header detection unit 81 determines in step S58 that the packet has started to be received, the process proceeds to step S59.
  • step S59 If the packet header detection unit 81 determines in step S59 that the packet that has started reception is an extended packet, the process proceeds to step S60, and the extended mode reception process (see FIG. 14) for receiving the extended packet is performed. ..
  • step S59 determines in step S59 that the packet that has started reception is not an extended packet, the process proceeds to step S61.
  • step S61 the packet header detection unit 81 confirms the data type (DataType [5: 0]) of the packet header detected in step S58, and determines whether or not the packet that has started reception is a short packet. ..
  • step S61 If the packet header detection unit 81 determines in step S61 that the packet that has started reception is a short packet, the process proceeds to step S62.
  • step S62 the packet header detection unit 81 receives a short packet having a conventional packet structure transmitted from the image sensor 21.
  • step S61 the process proceeds to step S63.
  • the unpacking unit 87 receives the payload of the long packet of the conventional packet structure transmitted from the image sensor 21 and takes out the image data, and the CRC calculation unit 86 is transmitted continuously to the packet header. The coming WC + 1st byte is received as CRC.
  • step S60 After the processing of step S60, step S62, or step S63, the processing proceeds to step S64, and the controller 74 ends the packet reception processing. After that, the process returns to step S58, and thereafter, the process of receiving the packet is repeated for the next packet.
  • FIG. 14 is a flowchart illustrating the extended mode reception process performed in the process of step S60 of FIG.
  • step S71 If the packet header detection unit 81 determines in step S71 that the mode setting of the extended mode is the extended mode 0, the process proceeds to step S72.
  • step S72 the interpreting unit 83 receives the first byte of the payload as an extended packet header.
  • step S73 the interpreting unit 83 confirms the data type (DataType [7: 0]) of the extended packet header received in step S72, and determines whether or not the packet that has started reception is an extended short packet. ..
  • step S73 If the interpretation unit 83 determines in step S73 that the packet is an extended short packet, the process proceeds to step S74.
  • step S74 the interpreting unit 83 receives the optional extended packet header according to the setting (OePH [7: 0]) stored in the extended packet header received in step S72.
  • step S75 the CRC calculation unit 86 receives the WC + 1th byte transmitted following the optional extended packet header as CRC.
  • step S73 determines in step S73 that the packet is not an extended short packet (that is, it has started receiving an extended long packet)
  • the process proceeds to step S76.
  • step S76 the interpreting unit 83 receives the optional extended packet header according to the setting (OePH [7: 0]) stored in the extended packet header received in step S72.
  • step S77 the unpacking unit 87 receives the legacy payload of the extended long packet transmitted from the image sensor 21 and retrieves the image data.
  • step S78 the interpretation unit 83 receives the optional extended packet footer according to the setting (OePF [3: 0]) stored in the extended packet header received in step S72.
  • step S79 the CRC calculation unit 86 receives the WC + 1th byte transmitted continuously to the optional extended packet footer as CRC.
  • step S71 If it is determined in step S71 that the mode setting of the extended mode is not the extended mode 0, the extended mode reception process is terminated after the process of step S75 or the process of step S79.
  • the application processor 22 can receive the extended short packet or the extended long packet and acquire the data.
  • the packet header and the packet footer are the same as the existing CSI-2 standard, with an emphasis on maintaining compatibility with the existing CSI-2 standard. It has a packet structure, and the packet structure is expanded by an extended packet header, an optional extended packet header, and an optional extended packet footer.
  • the packet header and the packet footer are different from the existing CSI-2 standard, and the packet structure is expanded by the extended packet header and the extended packet footer.
  • FIG. 15 shows the packet structure of a short packet (hereinafter referred to as an extended short packet for D-PHY) used in the extended mode of CSI-2 when the physical layer is D-PHY.
  • a short packet hereinafter referred to as an extended short packet for D-PHY
  • the extended short packet for D-PHY shown in FIG. 15 is stored in the same packet header as the existing CSI-2 standard, like the extended short packet for D-PHY of the first structural example shown in FIG.
  • the extended mode is identified by the data type that is used.
  • the frame number is set in the short packet data field in the short packet data field in the next 16 bits of the data type of the packet header, as in the short packet according to the existing CSI-2 standard. Is stored. Then, following the packet header, an extended packet header configured in the same manner as the extended packet header shown in FIG. 4 is transmitted.
  • the application processor 22 on the receiving side interprets the data type stored in the extended packet header and determines that the frame number is stored in the data field of the packet header when the packet is an extended short packet. can do.
  • the optional extended packet header in the extended short packet for D-PHY shown in FIG. 15 is configured in the same manner as the optional extended packet header in the extended short packet for D-PHY of the first structural example shown in FIG. To. However, since the optional extended packet header has a packet structure that is not embedded in the payload, it is not necessary to add CRC at the end.
  • FIG. 16 shows the packet structure of a long packet (hereinafter referred to as an extended long packet for D-PHY) used in the extended mode of CSI-2 when the physical layer is D-PHY.
  • an extended long packet for D-PHY a long packet used in the extended mode of CSI-2 when the physical layer is D-PHY.
  • the extended data is not embedded in the payload and is transmitted as a part of the packet header or packet footer. Therefore, the WC in the first packet header indicates the byte length of the payload, as in the existing standard.
  • FIG. 17 shows the packet structure of a short packet (hereinafter referred to as an extended short packet for C-PHY) used in the extended mode of CSI-2 when the physical layer is C-PHY.
  • a short packet hereinafter referred to as an extended short packet for C-PHY
  • the extended part of the extended short packet for C-PHY shown in FIG. 17 is transmitted as an extension of the packet header according to the existing CSI-2 standard, the extended part such as the extended packet header is inserted after the frame number. To. And, like the existing CSI-2 standard, the packet header ends with CRC. Further, the packet structure in which these are transmitted twice with SYNC in between is the same as the short packet according to the existing CSI-2 standard.
  • FIG. 18 shows the packet structure of a long packet (hereinafter referred to as an extended long packet for C-PHY) used in the extended mode of CSI-2 when the physical layer is C-PHY.
  • a long packet hereinafter referred to as an extended long packet for C-PHY
  • the WC of the first packet header indicates the byte length of the payload, as in the existing standard, and is the first one shown in FIG. There is a difference from the extended long packet for C-PHY in the structure example.
  • the packet structure of the extended packet of the second structure example shown in FIGS. 15 to 18 is more diverse than the conventional one, as in the packet structure of the extended packet of the first structure example (FIGS. 3 to 8). It is possible to correspond to various applications.
  • the extended packet of the second structure example has a packet structure in which the existing packet header and footer are expanded without embedding the extended data in the existing payload. Therefore, when the packet structure of the extended packet of the second structure example is adopted, compared with the case of adopting the packet structure of the extended packet of the first structure example, the communication system conventionally used is used. The impact that requires change cannot be minimized. That is, for example, the existing SerDes transmission circuit 34 needs to be changed from the SerDes reception circuit 35 (FIG. 2).
  • Each block constituting the image sensor 21 of FIG. 9 and the application processor 22 of FIG. 10 described above was configured to be able to process both D-PHY and C-PHY packets.
  • both a block that exclusively processes the packet for D-PHY and a block that exclusively processes the packet for C-PHY may be provided, and the processing may be switched for each. ..
  • the image sensor 21A shown in FIG. 19A includes a D layer processing block unit 101, a C layer processing block unit 102, a switching unit 103, and a controller 60.
  • the D-layer processing block unit 101 has a block that exclusively processes packets for D-PHY among the blocks constituting the image sensor 21 of FIG.
  • the C-layer processing block unit 102 has a block that exclusively processes C-PHY packets among the blocks constituting the image sensor 21 of FIG.
  • the switching unit 103 outputs a packet for the D-PHY generated in the D layer processing block unit 101 according to the control by the controller 60, and outputs the C-PHY to the physical layer. When used, switching is performed so as to output the C-PHY packet generated in the C layer processing block unit 102.
  • the application processor 22A shown in FIG. 19B includes a switching unit 111, a D-layer processing block unit 112, a C-layer processing block unit 113, and a controller 74.
  • the switching unit 111 switches so that the packet transmitted from the image sensor 21A is supplied to one of the D layer processing block unit 112 and the C layer processing block unit 113 according to the control by the controller 74.
  • the D-layer processing block unit 112 has a block that exclusively processes a packet for D-PHY among the blocks constituting the application processor 22 of FIG.
  • the C-layer processing block unit 113 has a block that exclusively processes a packet for C-PHY among the blocks constituting the application processor 22 of FIG.
  • the physical layer to be used can be set between the controller 60 and the controller 74 before starting communication. Then, for example, when the D-PHY is used for the physical layer, the packet for the D-PHY generated in the D layer processing block unit 101 is transmitted via the switching unit 103, and the D-PHY is transmitted via the switching unit 111. It is supplied to the layer processing block unit 112 and processed. Further, for example, when C-PHY is used for the physical layer, a packet for C-PHY generated in the C layer processing block unit 102 is transmitted via the switching unit 103, and is C via the switching unit 111. It is supplied to the layer processing block unit 113 and processed.
  • RAW6, RAW7, RAW8, RAW10, RAW12, RAW14, RAW16, and RAW20 are defined as data types stored in the packet header according to the existing CSI-2 standard when transmitting image data in RAW format. There is.
  • transmission of higher-definition images is expected in order to support automatic driving using an in-vehicle camera. Therefore, by applying an extended packet to expand the number of bits of the data type, for example, it is possible to define a higher definition RAW24 for the data type of the extended packet header.
  • SmartROI is a technology that transmits only the image area of interest on the screen.
  • the extended packet for example, it becomes possible to transmit coordinate data of 16 bits or more for each of the X coordinate and the Y coordinate.
  • GLD is a proposal being considered in CSI-2 ver3.0.
  • the in-vehicle camera interface has at least a disconnection detection function, and indicates the line number (16bit) indicating which line of information on the screen, the SourceID (8bit) indicating which camera the information was sent from, and the transmission number. Information such as the message counter (16bit) is required. Furthermore, when used in combination with SROI as described above, it is conceivable that these information will be transmitted on a frame-by-frame basis.
  • the SerDes device 26 transmits packets from the D-PHY to the C-PHY. It needs to be converted.
  • FIG. 20 is a block diagram showing a configuration example of a communication system 201 adapted to E2E protection as a third embodiment of a communication system to which the present technology is applied.
  • the communication system 201 is configured by connecting an image sensor 211, a SerDes device 212, a SerDes device 213, and an application processor 214.
  • FIG. 20 describes the case where SERDES is A-PHY as an example, but it also includes the case where it is connected using another SERDES standard such as FPD-LINK3 or the like.
  • communication may be performed based on the SERDES standard while maintaining the CIS-2 format (at least Application Specific payload).
  • the physical layer processing units 237 and 247 may include a plurality of physical layer processing units of other SERDES standards in addition to the A-PHY, and the physical layer processing units may be switched according to the application. can.
  • the image sensor 211 is a CSI-2 transmission circuit 221 compatible with extended mode, a physical layer processing unit (hereinafter referred to as C / D-PHY physical layer processing unit) 222 corresponding to C-PHY, D-PHY, or both. It has at least a slave (hereinafter referred to as an I2C / I3C slave) 223 corresponding to I2C and / or I3C, and a CCI slave 224.
  • the SerDes device 212 includes a CSI-2 reception circuit 231, a C / D-PHY physical layer processing unit 232, an I2C / I3C master 233, a CCI master 234, an A-PHY packet generation unit 235 for CSI-2, and an A-PHY for CCI. It has at least a packet transmission / reception unit 236 and a physical layer processing unit 237 corresponding to A-PHY. For example, in the SerDes device 212, a packet for C-PHY or a packet for D-PHY is converted into a packet for A-PHY, and this conversion is determined based on a register setting or the like.
  • the SerDes device 213 includes a CSI-2 transmission circuit 241, a C / D-PHY physical layer processing unit 242, an I2C / I3C slave 243, a CCI slave 244, an A-PHY packet reception unit 245 for CSI-2, and an A-PHY for CCI. It has at least a packet transmission / reception unit 246 and a physical layer processing unit 247 corresponding to A-PHY. For example, in the SerDes device 213, a packet for A-PHY is converted into a packet for C-PHY or a packet for D-PHY, and this conversion is determined based on a register setting or the like.
  • the application processor 214 has at least a CSI-2 receiving circuit 251 compatible with the extended mode, a C / D-PHY physical layer processing unit 252, an I2C / I3C master 253, and a CCI master 254.
  • the communication system 201 is configured in this way, and an extended packet having the above-mentioned structure is transmitted from the image sensor 211 and received by the application processor 214.
  • the communication system 201 is configured so that the physical layer processing unit 222 of the image sensor 211 corresponds to D-PHY and the physical layer processing unit 252 of the application processor 22 corresponds to C-PHY, E2E protectionion It is necessary not to violate.
  • the communication system 201 limits the protection range of the E2E protection to the Application Specific payload (hereinafter referred to as AS payload), which is a payload peculiar to the application, so that the communication system 201 can be adapted to the E2E protection. That is, the AS payload is converted from a packet for A-PHY to a packet for C-PHY or D-PHY, or from a packet for C-PHY or D-PHY to a packet for A-PHY. Changes are prohibited during conversion.
  • AS payload Application Specific payload
  • FIG. 21 shows an example of the structure of the extended packet for D-PHY expanded to correspond to E2E protection.
  • the AS payload consisting of the extended packet header (ePH), packet data, and extended packet footer (ePF) of the extended packet for D-PHY is limited as the protection range of E2E protection.
  • predetermined information required when the protection range of E2E protection is limited to the AS payload is described.
  • a packet count PC PacketCount
  • VC Virtual Channel
  • FIG. 22 shows an example of the structure of the extended packet for C-PHY expanded to correspond to E2E protection.
  • the extended packet for C-PHY has an AS payload consisting of an extended packet header (ePH), packet data, and an extended packet footer (ePF), similar to the extended packet for D-PHY. It is limited as the protection range of. Then, in the extended packet header, the packet count PC and the virtual channel VC are described as predetermined information required when the protection range of E2E protection is limited to the AS payload, as in the extended packet for D-PHY. ..
  • FIG. 23 shows an example of the structure of the extended packet for A-PHY expanded to correspond to E2E protection.
  • the AS payload consisting of the extended packet header (ePH), the packet data, and the extended packet footer (ePF) is limited as the protection range of E2E protection.
  • the communication system 201 is an extended packet for A-PHY from an extended packet for D-PHY or C-PHY transmitted from the image sensor 211 to the SerDes device 212. Is generated. Therefore, the packet count PC and the virtual channel VC are already described in the extended packet header of the extended packet for A-PHY.
  • the communication system 201 can avoid the AS payload being modified on the transmission path and comply with E2E protection.
  • the packet structure shown in FIGS. 21 to 23 can be partially replaced with the corresponding packet having the packet structure as shown in FIGS. 3 to 8 and 15 to 18, and can be used for packet generation. Some will be replaced.
  • FIG. 24 is a flowchart illustrating a packet transmission / reception process adapted to E2E protection.
  • the extended mode compatible CSI-2 transmission circuit 2221 when the data to be stored in the packet data (for example, image data) is supplied to the extended mode compatible CSI-2 transmission circuit 221, the process is started. Then, in step S101, in the image sensor 211, the extended mode compatible CSI-2 transmission circuit 221 stores the supplied data in the packet data. Further, the extended mode compatible CSI-2 transmission circuit 221 generates an extended packet header describing the virtual channel VC and the packet counting PC as shown in FIG. 21 or FIG. 22 above. Then, the extended mode compatible CSI-2 transmission circuit 221 generates an AS payload by adding an extended packet header and an extended packet footer to the packet data.
  • the extended mode compatible CSI-2 transmission circuit 221 when the data to be stored in the packet data (for example, image data) is supplied to the extended mode compatible CSI-2 transmission circuit 221, the process is started. Then, in step S101, in the image sensor 211, the extended mode compatible CSI-2 transmission circuit 221 stores the supplied data in the packet data. Further, the extended mode compatible CSI
  • the extended mode compatible CSI-2 transmission circuit 221 has a packet header for C-PHY or D-PHY and a packet for C-PHY or D-PHY for the AS payload generated in step S101. By adding a footer, an extended packet for C-PHY or D-PHY is generated. Then, the extended mode compatible CSI-2 transmission circuit 221 transmits an extended packet for C-PHY or D-PHY to the SerDes device 212 via the C / D-PHY physical layer processing unit 222.
  • step S103 in the SerDes device 212, the CSI-2 receiving circuit 231 is transmitted from the image sensor 211 in step S102 via the C / D-PHY physical layer processing unit 232 for C-PHY or D-PHY. Receive the extended packet for. Then, the CSI-2 reception circuit 231 acquires the AS payload excluding the packet header and the packet footer from the received extended packet, and supplies the AS payload as it is to the A-PHY packet generation unit 235 for CSI-2.
  • step S104 in the SerDes device 212, the CSI-2 A-PHY packet generation unit 235 uses the A-PHY packet header and the A-PHY packet header for the AS payload supplied from the CSI-2 reception circuit 231. By adding the packet footer of, an extended packet for A-PHY is generated. Then, the CSI-2 A-PHY packet generation unit 235 transmits the extended packet for the A-PHY to the SerDes device 213 via the physical layer processing unit 237 corresponding to the A-PHY.
  • step S105 in the SerDes device 213, the A-PHY packet receiving unit 245 for CSI-2 is transmitted from the SerDes device 212 in step S104 via the physical layer processing unit 247 corresponding to the A-PHY. Receive extended packets for the PHY. Then, the A-PHY packet receiving unit 245 for CSI-2 acquires the AS payload excluding the packet header and the packet footer from the received extended packet, and supplies the AS payload as it is to the CSI-2 transmission circuit 241.
  • the CSI-2 transmission circuit 241 has a packet header for C-PHY or D-PHY and a C for the AS payload supplied from the A-PHY packet receiving unit 245 for CSI-2 in step S105. -Generate extended packets for C-PHY or D-PHY by adding a packet footer for PHY or D-PHY. Then, the CSI-2 transmission circuit 241 transmits an extended packet for C-PHY or D-PHY to the application processor 214 via the C / D-PHY physical layer processing unit 242.
  • step S107 in the application processor 214, the extended mode compatible CSI-2 receiving circuit 251 is for C-PHY transmitted from the SerDes device 213 in step S106 via the C / D-PHY physical layer processing unit 252. Receive extended packets for D-PHY. Then, the extended mode compatible CSI-2 receiving circuit 251 acquires the AS payload excluding the packet header and the packet footer from the received extended packet, and various data stored in the packet data of the AS payload are collected in the subsequent stage. Output to LSI (not shown). After that, the packet transmission / reception processing adapted to E2E protection is terminated, and the same processing is repeated for the next extended packet.
  • the communication system 201 can transmit and receive extended packets without modifying the AS payload on the transmission path by executing the packet transmission / reception processing adapted to E2E protection. At this time, for example, even if the physical layer of the image sensor 211 is D-PHY and the physical layer of the application processor 214 is C-PHY, that is, the respective interfaces are different. Can also comply with E2E protection.
  • FIG. 25 is a block diagram showing a detailed configuration example of the image sensor 211.
  • the same reference numerals are given to the configurations common to the image sensor 21 in FIG. 9, and detailed description thereof will be omitted.
  • the image sensor 211 includes a pixel 41, an AD converter 42, an image processing unit 43, a register 47, and a controller 60, similarly to the image sensor 21 in FIG. Further, the I2C / I3C slave 223 and the CCI slave 224 included in the image sensor 211 correspond to the I2C / I3C slave 46 and the CCI slave 59 in FIG. 9, respectively.
  • the image sensor 211 includes an extended mode compatible CSI-2 transmission circuit 221 and a physical layer processing unit 222, and the physical layer processing unit 222 corresponds to A-PHY, C-PHY, and D-PHY. There is.
  • the extended mode compatible CSI-2 transmission circuit 221 includes an AS payload generation unit 301, a selector 302, an A-PHY packet generation unit 303, a C-PHY packet generation unit 304, and a D-PHY packet generation unit. It is configured to include a unit 305 and a selector 306.
  • the AS payload generation unit 301 generates an AS payload limited as the protection range of E2E protection and outputs it to the selector 302.
  • the AS payload generation unit 301 has a packing unit 311, an extended packet header generation unit 312, and an extended packet footer generation unit 313.
  • the packing unit 311 packs the image data supplied from the image processing unit 43 as the data to be transmitted, and generates the packet data of the number of bytes determined by the packet count PC.
  • the controller 60 can control the number of bytes of packet data generated by the packing unit 311 according to a set value (for example, an image size) stored in the register 47.
  • the extended packet header generation unit 312 generates an extended packet header describing a packet count PC and a virtual channel VC and adds it to the packet data, for example, as described with reference to FIGS. 21 to 23.
  • the extended packet footer generation unit 313 generates an extended packet footer and adds it to the packet data.
  • the selector 302 is provided in parallel with the A-PHY packet generation unit 303, the C-PHY packet generation unit 304, and the D-PHY as output destinations of the AS payload supplied from the AS payload generation unit 301 under the control of the controller 60. Select one of the packet generators 305.
  • the A-PHY packet generation unit 303 generates an extended packet for A-PHY from the AS payload supplied via the selector 302 and outputs it to the selector 306.
  • the A-PHY packet generation unit 303 has an AAL generation unit 321 and an A-PHY packet header generation unit 322, and an A-PHY packet footer generation unit 323.
  • the AAL (A-PHY Adaptation Layer) generation unit 321 divides the AS payload generated by the AS payload generation unit 301 into 380 bytes in a layer called the Adaptation Layer. Then, the packet header generation unit 322 for A-PHY adds the packet header for A-PHY to the AS payload after division, and the packet footer generation unit 323 for A-PHY adds the packet footer for A-PHY. Add.
  • AAL A-PHY Adaptation Layer
  • the C-PHY packet generation unit 304 generates an extended packet for C-PHY from the AS payload supplied via the selector 302 and outputs it to the selector 306.
  • the C-PHY packet generation unit 304 has a C-PHY packet header generation unit 331, a C-PHY packet footer generation unit 332, and a C-PHY lane distribution unit 333.
  • the C-PHY packet header generation unit 331 adds a C-PHY packet header to the AS payload generated by the AS payload generation unit 301, and the C-PHY packet footer generation unit 332 C-. Add a packet footer for PHY. Then, the C-PHY lane distribution unit 333 distributes the extended packet for C-PHY to three lanes according to the CSI-2 standard.
  • the D-PHY packet generation unit 305 generates an extended packet for D-PHY from the AS payload supplied via the selector 302 and outputs it to the selector 306.
  • the D-PHY packet generation unit 305 has a D-PHY packet header generation unit 341, a D-PHY packet footer generation unit 342, and a D-PHY lane distribution unit 343.
  • the packet header generation unit 341 for D-PHY adds a packet header for D-PHY to the AS payload generated by the AS payload generation unit 301, and the packet footer generation unit 342 for D-PHY adds D-PHY. Add a packet footer for PHY. Then, the D-PHY lane distribution unit 343 distributes the D-PHY extended packet to the four lanes according to the CSI-2 standard.
  • the selector 306 is provided in parallel with the A-PHY packet generation unit 303, the C-PHY packet generation unit 304, and the D-PHY as an output source of the extended packet supplied to the physical layer processing unit 222 under the control of the controller 60. Select one of the packet generators 305.
  • the physical layer processing unit 222 transmits the extended packet for A-PHY in one lane. Further, when the extended packet for C-PHY is supplied from the C-PHY packet generation unit 304, the physical layer processing unit 222 transmits the extended packet for C-PHY in three lanes. Further, when the extended packet for D-PHY is supplied from the D-PHY packet generation unit 305, the physical layer processing unit 222 transmits the extended packet for D-PHY in four lanes.
  • the AS payload generation unit 301 is connected to the A-PHY packet generation unit 303, the C-PHY packet generation unit 304, and the D-PHY packet generation unit 305 via the selector 302.
  • the extended mode compatible CSI-2 transmission circuit 221 is configured to be connected.
  • the image sensor 211 generates an AS payload common to the extended packet for A-PHY, the extended packet for C-PHY, and the extended packet for D-PHY by one AS payload generation unit 301. Can be done.
  • the AS payload generation unit 301 can be shared by the A-PHY packet generation unit 303, the C-PHY packet generation unit 304, and the D-PHY packet generation unit 305, whereby the circuit scale can be reduced. .. Therefore, the image sensor 211 can be miniaturized.
  • FIG. 26 is a block diagram showing a detailed configuration example of the application processor 214.
  • the same reference numerals are given to the configurations common to the application processor 22 of FIG. 10, and detailed description thereof will be omitted.
  • the application processor 214 is configured to include the register 73 and the controller 74, similarly to the application processor 22 of FIG.
  • the controller 74 may be realized by software.
  • the I2C / I3C master 253 and the CCI master 254 included in the application processor 214 correspond to the I2C / I3C master 72 and the CCI master 88 of FIG. 10, respectively.
  • the application processor 214 includes an extended mode compatible CSI-2 receiving circuit 251 and a physical layer processing unit 252, and the physical layer processing unit 252 corresponds to A-PHY, C-PHY, and D-PHY. There is.
  • the extended mode compatible CSI-2 receiving circuit 251 includes a selector 401, an A-PHY packet receiving section 402, a C-PHY packet receiving section 403, a D-PHY packet receiving section 404, a selector 405, and an AS payload. It is configured to include a receiving unit 406.
  • the selector 401 is one of the A-PHY packet receiving unit 402, the C-PHY packet receiving unit 403, and the D-PHY packet receiving unit 404 provided in parallel as the output destination of the extended packet supplied from the physical layer processing unit 252. Select one of.
  • the A-PHY packet receiving unit 402 receives the extended packet for A-PHY supplied via the selector 401 and outputs it to the selector 405.
  • the A-PHY packet receiving unit 402 has an A-PHY packet header interpretation unit 411, an A-PHY packet footer verification unit 412, and an AAL processing unit 413.
  • the packet header interpretation unit 411 for A-PHY interprets the contents described in the packet header for A-PHY, performs the processing necessary for receiving the extended packet for A-PHY, and performs the processing necessary for receiving the extended packet for A-PHY.
  • the packet footer verification unit 412 verifies the presence or absence of an error by using the packet footer for A-PHY.
  • the AAL processing unit 413 performs a process of combining the adaptation layers divided in the AAL generation unit 321 of FIG. 25.
  • the C-PHY packet receiving unit 403 receives the extended packet for C-PHY supplied via the selector 401 and outputs it to the selector 405.
  • the C-PHY packet receiving unit 403 has a C-PHY lane merging unit 421, a C-PHY packet header interpreting unit 422, and a C-PHY packet footer verification unit 423.
  • the C-PHY lane merging unit 421 merges extended packets for C-PHY distributed into three lanes according to the CSI-2 standard and supplied via the physical layer processing unit 252. Then, the packet header interpretation unit 422 for C-PHY interprets the contents described in the packet header for C-PHY, performs the processing necessary for receiving the extended packet for C-PHY, and performs the processing necessary for receiving the extended packet for C-PHY.
  • the packet footer verification unit 423 verifies the presence or absence of an error by using the packet footer for C-PHY.
  • the D-PHY packet receiving unit 404 receives the extended packet for D-PHY supplied via the selector 401 and outputs it to the selector 405.
  • the D-PHY packet receiving unit 404 has a D-PHY lane merging unit 431, a D-PHY packet header interpreting unit 432, and a D-PHY packet footer verification unit 433.
  • the D-PHY lane merging unit 431 merges extended packets for D-PHY distributed into four lanes according to the CSI-2 standard and supplied via the physical layer processing unit 252. Then, the packet header interpretation unit 432 for D-PHY interprets the contents described in the packet header for D-PHY, performs the processing necessary for receiving the extended packet for D-PHY, and performs the processing necessary for receiving the extended packet for D-PHY.
  • the packet footer verification unit 433 verifies the presence or absence of an error by using the packet footer for D-PHY.
  • the selector 405 is one of the A-PHY packet receiving unit 402, the C-PHY packet receiving unit 403, and the D-PHY packet receiving unit 404 provided in parallel as an output source of the extended packet supplied to the AS payload receiving unit 406. Select one of.
  • the AS payload receiving unit 406 has an unpacking unit 441, an extended packet header interpretation unit 442, and an extended packet footer verification unit 443, corresponding to the AS payload generation unit 301 in FIG. 25.
  • the unpacking unit 441 unpacks the image data packed by the packing unit 311.
  • the extended packet header interpretation unit 442 interprets the extended packet header generated by the extended packet header generation unit 312, and reads, for example, a packet count PC and a virtual channel VC.
  • the extended packet footer verification unit 443 verifies the presence or absence of an error by using the extended packet footer added by the extended packet footer generation unit 313.
  • the AS payload receiving unit 406 transmits various data stored in the packet data supplied via the selector 405, such as image data, a CRC error such as an in-vehicle line number and a Source ID, to the subsequent LSI ( Output to) (not shown).
  • the AS payload receiving unit 406 informs the A-PHY packet receiving unit 402, the C-PHY packet receiving unit 403, and the D-PHY packet receiving unit 404 via the selector 405.
  • the extended mode compatible CSI-2 receiving circuit 251 is configured to be connected.
  • the application processor 214 receives the AS payload common to the extended packet for A-PHY, the extended packet for C-PHY, and the extended packet for D-PHY in one AS payload receiving unit 406. Can be done. That is, the AS payload receiving unit 406 can be shared by the A-PHY packet receiving unit 402, the C-PHY packet receiving unit 403, and the D-PHY packet receiving unit 404, whereby the circuit scale can be reduced. .. Therefore, it is possible to realize the miniaturization of the application processor 214.
  • the communication system 501 shown in FIG. 27 has a directly connected configuration in which the image sensor 511 and the application processor 512 are directly connected by A-PHY (without using a SerDes device as described with reference to FIG. 40 described later). It has become.
  • the image sensor 511 includes an A-PHY processing unit 521, a CSIA processing unit 522, a CSI2 processing unit 523, a CSI2-FS processing unit 524, a CCI processing unit 525, a CCI-FS processing unit 526, and a register 527. ..
  • the CCI processing unit 525 is implemented as an upper layer, and the data including the extended packet header ePH and the extended packet footer ePF are connected to the A-PHY processing unit 531 of the application processor 512 by MIPI A-PHY. To send and receive.
  • the CCI-FS processing unit 526 compares, for example, the Destination ID included in the extended packet header ePH with the ID (Source ID) possessed by the image sensor 511, and determines whether or not the access is to the image sensor 511.
  • the application processor 512 includes an A-PHY processing unit 531, a CSIA processing unit 532, a CSI2 processing unit 533, a CSI2-FS processing unit 534, a CCI processing unit 535, a CCI-FS processing unit 536, a register 537, and a CCI-FS switch 538. Is configured with.
  • the CCI processing unit 535 is mounted as an upper layer, and the data including the extended packet header ePH and the extended packet footer ePF are connected to the A-PHY processing unit 521 of the image sensor 511 by MIPI A-PHY. To send and receive.
  • the CCI-FS processing unit 536 compares, for example, the Destination ID included in the extended packet header ePH with the ID (Source ID) possessed by the application processor 512, and determines whether or not the access is to the application processor 512.
  • the CCI-FS switch 538 transmits / receives data via the CCI-FS processing unit 536 when the CCI-FS processing unit 536 is valid, and the CCI-FS when the CCI-FS processing unit 536 is invalid. Switching is performed so that data is transmitted / received without going through the processing unit 536.
  • FIG. 28 shows an example of the packet configuration of the read command generated by the CCI-FS processing unit 536 of the application processor 512 at the time of read access.
  • Extended VC, extended DT, extended PFEN, and extended PHEN are stored in the extended packet header ePH0.
  • the extended DT is information indicating the CCI protocol (I2C), and routing processing is performed using the extended DT.
  • Source ID [7: 1] and Packet Length are stored in the extended packet header ePH1.
  • the Source ID is information indicating the source of the CCI protocol (I2C), and response processing is performed based on the Source ID.
  • PacketLength is information indicating the data length.
  • Security Descriptor and Message Counter are stored in the extended packet header ePH2.
  • Security Descriptor indicates whether or not to use security, and if security is not used, indicates "8'h0".
  • MessageCounter is information indicating the bucket order, indicates the count value obtained by counting the messages, and indicates "16'h5" when the message is the fifth.
  • the Destination ID [7: 1] indicates the slave address of the CCI processing unit 525 of the image sensor 511, and is “7'h0D” in the illustrated example.
  • the Destination ID is information indicating a destination of the CCI protocol (I2C), and routing is performed based on the Destination ID and a communication route is referenced.
  • Read / Write indicates read or write of data, and in the case of read, indicates "1'b1".
  • the Destination Address indicates the address of the register 527 of the image sensor 511 which is the final destination, and is "0x0200" in the illustrated example.
  • various data are stored in the AP (CCI) payload.
  • the AP (CCI) payload may not be sent when security is off, but may store and send dummy data when security is on.
  • the extended packet footer ePF1 is not sent when security is off.
  • CRC calculated value is stored in the extended packet footer ePF0.
  • a read command having such a packet structure is generated in the CCI-FS processing unit 536 and supplied to the A-PHY processing unit 531.
  • FIG. 29 shows an example of the packet configuration of the read command output from the A-PHY processing unit 531 of the application processor 512 at the time of read access.
  • the A-PHY processing unit 531 adds an A-PHY header and an A-PHY footer to the read command supplied from the CCI-FS processing unit 536 as the protection range of E2E Protection.
  • the read command of such a packet structure is A-PHY transferred by the A-PHY processing unit 531 of the application processor 512. Then, in the image sensor 511, the A-PHY processing unit 521 removes the A-PHY header and the A-PHY footer from the read command. After that, the read command is supplied to the CCI-FS processing unit 526 via the CCI processing unit 525 of the slave address "7'h0D" indicated by the Destination ID.
  • FIG. 30 shows an example of the packet structure of the read command supplied to the CCI-FS processing unit 526 and the read data generated by the CCI-FS processing unit 526 at the time of read access.
  • the read command with the packet structure shown in FIG. 28, that is, the read command within the protection range of E2E Protection in the A-PHY transfer, is supplied to the CCI-FS processing unit 526.
  • the read data of such a packet structure is generated in the CCI-FS processing unit 526 and supplied to the A-PHY processing unit 521.
  • FIG. 31 shows an example of a packet configuration of read data output from the A-PHY processing unit 521 of the image sensor 511 at the time of read access.
  • the A-PHY processing unit 521 adds an A-PHY header and an A-PHY footer to the read data supplied from the CCI-FS processing unit 526 as the protection range of E2E Protection.
  • the read data of such a packet structure is A-PHY transferred by the A-PHY processing unit 521 of the image sensor 511. Then, in the application processor 512, the A-PHY processing unit 531 removes the A-PHY header and the A-PHY footer from the read data, and the read data is supplied to the CCI-FS processing unit 536.
  • FIG. 32 shows an example of the packet structure of the read data supplied to the CCI-FS processing unit 536 at the time of read access.
  • the read data having the packet structure as shown in FIG. 30, that is, the read data within the protection range of E2E Protection in the A-PHY transfer is supplied to the CCI-FS processing unit 536.
  • FIG. 33 shows an example of a packet configuration of write data generated by the CCI-FS processing unit 536 of the application processor 512 at the time of write access.
  • Extended VC, extended DT, extended PFEN, and extended PHEN are stored in the extended packet header ePH0.
  • Source ID [7: 1] and Packet Length are stored in the extended packet header ePH1.
  • Security Descriptor and Message Counter are stored in the extended packet header ePH2.
  • Security Descriptor indicates whether or not to use security, and if security is not used, indicates "8'h0".
  • MessageCounter indicates the count value obtained by counting the messages, and indicates "16'h4" when the message is the fourth.
  • Destination ID [7: 1] indicates the slave address of the CCI processing unit 525 of the image sensor 511, and is “7'h0D” in the illustrated example.
  • Read / Write indicates read or write of data, and in the case of write, indicates "1'b0".
  • the Destination Address indicates the address of the register 527 of the image sensor 511 which is the final destination, and is "0x1234" in the illustrated example.
  • the data (Data0 [7: 0]) to be written to the image sensor 511 is stored in the AP (CCI) payload, and the 0xFF value becomes the write data.
  • the extended packet footer ePF1 is not sent when security is off.
  • CRC calculated value is stored in the extended packet footer ePF0.
  • write data having such a packet structure is generated in the CCI-FS processing unit 536 and supplied to the A-PHY processing unit 531.
  • FIG. 34 shows an example of a packet configuration of write data output from the A-PHY processing unit 531 of the application processor 512 at the time of write access.
  • the A-PHY processing unit 531 adds an A-PHY header and an A-PHY footer to the write data supplied from the CCI-FS processing unit 536 as the protection range of E2E Protection.
  • the write data of such a packet structure is A-PHY transferred by the A-PHY processing unit 531 of the application processor 512. Then, in the image sensor 511, the A-PHY processing unit 521 removes the A-PHY header and the A-PHY footer from the write data. After that, the write data is supplied to the CCI-FS processing unit 526 via the CCI processing unit 525 of the slave address "7'h0D" indicated by the Destination ID.
  • FIG. 35 shows an example of the packet structure of the write data supplied to the CCI-FS processing unit 526 at the time of write access.
  • the write data having the packet structure shown in FIG. 33 that is, the write data within the protection range of E2E Protection in the A-PHY transfer, is supplied to the CCI-FS processing unit 526.
  • the CCI-FS processing unit 526 transfers the CCI command ID information, that is, the address "0x1234" of the register 527 indicated by the source address information (Destination Address) of the extended packet header ePH of the read command to the AP (CCI) payload. Write the stored data.
  • the extended packet header ePH uses fields such as extended VC, extended DT, and Message Counter.
  • the length of the extended packet header ePH can be changed by the field value (epFEN field) of the extended packet header ePH.
  • Length Packet Length (PL) ⁇ Data Byte Width.
  • PL Packet Length
  • PL Packet Length
  • Data Byte Width Data Byte Width.
  • the packet data stores the write data for the payload data.
  • the packet data stores read data for the payload data.
  • a 1-byte data payload indicating the type of control is attached to the packet data.
  • the length of the extended packet footer ePF1 can be changed by the field setting value (epFEN field) of the extended packet header ePH.
  • security-related information can be added.
  • the extended packet footer ePF0 is a field setting value of the extended packet header ePH, and CRC-32 calculated from the packet data can be added.
  • steps S211 to S222 initial setting and confirmation operations are performed.
  • step S211 the application processor 512 to the image sensor 511 is read-accessed twice to the Capability register of the CCI-FS processing unit 526.
  • the number of times of read access is not limited to two times, and may be set arbitrarily, for example, in terms of functional safety, and may be one time or a plurality of times of three or more times.
  • step S212 in the application processor 512, the CSI2-FS processing unit 524 determines whether or not the Capability register value of the CCI-FS processing unit 526 is 1'b1 for the result of the read access in step S211. judge. If it is determined in step S212 that the Capability register value of the CCI-FS processing unit 526 is not 1'b1 both times, the process proceeds to step S213.
  • the CSI2-FS processing unit 524 determines whether or not the number of retransmissions is 3 or more.
  • the number of retransmissions is not limited to three, and can be set to any number, and the same applies to the number of retransmissions described below. If it is determined in step S213 that the number of retransmissions is not three or more (once or twice), the process returns to step S211 and the same process is repeated thereafter.
  • step S212 determines whether the Capability register value of the CCI-FS processing unit 526 is 1'b1 both times. If it is determined in step S212 that the Capability register value of the CCI-FS processing unit 526 is 1'b1 both times, the process proceeds to 214.
  • step S214 one write access is performed from the application processor 512 to the image sensor 511 to the Enable register of the CCI-FS processing unit 526.
  • step S215 in the image sensor 511, the CCI-FS processing unit 526 performs one write access to the Enable register of the CCI-FS processing unit 536 of the application processor 512.
  • step S216 the slave address of the opposite image sensor 511 is set in the Destination SID register of the CCI-FS processing unit 536 of the application processor 512.
  • step S217 the ePH register of the CCI-FS processing unit 536 of the application processor 512 is set.
  • step S218 the ePH register of the CCI-FS processing unit 526 is set from the application processor 512 to the image sensor 511.
  • step S219 read access is performed to the Enable register and Error register of the CCI-FS processing unit 526 from the application processor 512 to the image sensor 511.
  • step S220 in the application processor 512, the CCI-FS processing unit 536 determines that the Enable register value of the CCI-FS processing unit 526 is 1'b1 and the Error register value is 1'b1 for the result of the read access in step S219. It is determined whether or not it is 0.
  • step S220 If it is determined in step S220 that the Enable register value of the CCI-FS processing unit 526 is not 1'b1 or the Error register value is not 0, the process proceeds to step S221.
  • step S221 in the application processor 512, the CSI2-FS processing unit 524 determines whether or not the number of retransmissions is 3 or more. If it is determined in step S221 that the number of retransmissions is 3 or more, the process returns to step S211 and the same process is repeated thereafter.
  • step S213 determines whether the number of retransmissions is 3 or more, or if it is determined in step S221 that the number of retransmissions is not 3 or more (1 or 2), the process is step S222. Proceed to.
  • step S222 communication is performed by CCI without using CCI-FS, and then the communication process is terminated.
  • step S220 determines whether the Enable register value of the CCI-FS processing unit 526 is 1'b1 and the Error register value is 0, the process proceeds to step S223.
  • steps S223 to S234 a write operation using CCI-FS is performed.
  • step S223 the CCI-FS processing unit 536 of the application processor 512 sets the ePH register so that the write operation is performed.
  • step S224 the CCI-FS processing unit 536 of the application processor 512 sets the write data register.
  • step S225 the CCI-FS processing unit 536 of the application processor 512 sets the command execution register to 1.
  • step S226, in the application processor 512, the A-PHY processing unit 531 sets the write data generated by the CCI-FS processing unit 536 as the protection range of the E2E Protection as the A-PHY, as shown in FIG. 34 described above. Add header and A-PHY footer to perform A-PHY transfer.
  • step S227 in the image sensor 511, the A-PHY processing unit 521 removes the A-PHY header and the A-PHY footer from the write data, and supplies the protection range of E2E Protection to the CCI-FS processing unit 526.
  • step S229 in the image sensor 511, the CCI-FS processing unit 526 determines whether or not the Source ID of the image sensor 511 confirmed in step S228 and the Destination SID of the extended packet header ePH match.
  • step S229 If it is determined in step S229 that the Source ID of the image sensor 511 and the Destination SID of the extended packet header ePH match, the process proceeds to step S230.
  • step S230 in the image sensor 511, the CCI-FS processing unit 526 confirms the Message Counter from the contents of the extended packet header ePH.
  • step S231 in the image sensor 511, the CCI-FS processing unit 526 determines whether or not the Message Counter (reception) of the image sensor 511 confirmed in step S230 and the Message Counter of the extended packet header ePH match. ..
  • step S231 If it is determined in step S231 that the MessageCounter (received) of the image sensor 511 and the MessageCounter of the extended packet header ePH match, the process proceeds to step S232.
  • step S232 in the image sensor 511, the CCI-FS processing unit 526 confirms the CRC from the contents of the extended packet footer ePF.
  • step S233 in the image sensor 511, the received value (ePF0) of the extended packet footer ePF confirmed by the CCI-FS processing unit 526 in step S232 and the CRC calculation result calculated by the CCI-FS processing unit 526 match. Judge whether or not.
  • step S233 If it is determined in step S233 that the received value (ePF0) of the extended packet footer ePF and the CRC calculation result match, the process proceeds to step S234.
  • step S234 in the image sensor 511, the CCI-FS processing unit 526 performs write processing for writing write data to the address of the register 527 from the contents of the extended packet header ePH and the extended packet footer ePF. After that, the process proceeds to step S235.
  • steps S235 to S247 a read operation using CCI-FS is performed.
  • step S235 in the application processor 512, the CCI-FS processing unit 536 sets the ePH register so that the read operation is performed.
  • step S236 in the application processor 512, the CCI-FS processing unit 536 sets the command execution register to 1.
  • step S237 in the application processor 512, the A-PHY processing unit 531 sets the write data generated by the CCI-FS processing unit 536 as the protection range of the E2E Protection as the A-PHY, as shown in FIG. 29 described above. Add header and A-PHY footer to perform A-PHY transfer.
  • step S238 in the image sensor 511, the A-PHY processing unit 521 removes the A-PHY header and the A-PHY footer from the write data, and supplies the protection range of E2E Protection to the CCI-FS processing unit 526.
  • step S239 in the image sensor 511, the CCI-FS processing unit 526 confirms the Source ID of the image sensor 511 and the Destination SID of the extended packet header ePH from the contents of the extended packet header ePH.
  • step S240 in the image sensor 511, the CCI-FS processing unit 526 determines whether or not the Source ID of the image sensor 511 confirmed in step S239 and the Destination SID of the extended packet header ePH match.
  • step S240 If it is determined in step S240 that the Source ID of the image sensor 511 and the Destination SID of the extended packet header ePH match, the process proceeds to step S241.
  • step S241 in the image sensor 511, the CCI-FS processing unit 526 confirms the Message Counter from the contents of the extended packet header ePH.
  • step S242 in the image sensor 511, the CCI-FS processing unit 526 determines whether or not the Message Counter (receive) of the image sensor 511 confirmed in step S241 matches the Message Counter of the extended packet header ePH. ..
  • step S242 If it is determined in step S242 that the MessageCounter (received) of the image sensor 511 and the MessageCounter of the extended packet header ePH match, the process proceeds to step S243.
  • step S243 in the image sensor 511, the CCI-FS processing unit 526 confirms the CRC from the contents of the extended packet footer ePF.
  • step S244 in the image sensor 511, the received value (ePF0) of the extended packet footer ePF confirmed by the CCI-FS processing unit 526 in step S243 and the CRC calculation result calculated by the CCI-FS processing unit 526 match. Judge whether or not.
  • step S244 If it is determined in step S244 that the received value (ePF0) of the extended packet footer ePF and the CRC calculation result match, the process is terminated.
  • step S229 of FIG. 38 or step S240 of FIG. 39 the process proceeds to step S245.
  • step S245 the Error register (Routing) on the image sensor 511 side is set to 1, and then the process is terminated.
  • step S231 of FIG. 38 or step S242 of FIG. 39 determines whether the Message Counter (receive) of the image sensor 511 and the Message Counter of the extended packet header ePH do not match. If it is determined in step S231 of FIG. 38 or step S242 of FIG. 39 that the Message Counter (receive) of the image sensor 511 and the Message Counter of the extended packet header ePH do not match, the process proceeds to step S246. ..
  • step S246 the Error register (MC) on the image sensor 511 side is set to 1, and then the process is terminated.
  • step S233 of FIG. 38 or step S244 of FIG. 39 determines whether the received value (ePF0) of the extended packet footer ePF and the CRC calculation result do not match.
  • step S247 the Error register (CRC) on the image sensor 511 side is set to 1, and then the process is terminated.
  • CRC Error register
  • the communication system 601 shown in FIG. 40 has a SerDes connection configuration in which an image sensor 611 and an application processor 614 are connected via a SerDes device 612 on the slave side and a SerDes device 613 on the master side.
  • the image sensor 611 includes an I2C / I3C slave 621, a CCI processing unit 622, a CSI2-FS processing unit 623, and a register 624.
  • the SerDes device 612 on the slave side includes an A-PHY processing unit 631, a CSIA processing unit 632, a CSI2-FS processing unit 633, an I2C / I3C master 634, a CCI processing unit 635, a CCI-FS processing unit 636, and a register 637. It is composed of.
  • the SerDes device 613 on the master side includes an A-PHY processing unit 641, a CSIA processing unit 642, a CSI2-FS processing unit 643, an I2C / I3C slave 644, a CCI processing unit 645, a CCI-FS processing unit 646, and a register 647. It is composed of.
  • the application processor 614 includes an I2C / I3C master 651, a CCI processing unit 652, a CCI-FS processing unit 653, a register 654, and a CCI-FS switch 655.
  • SerDes connection configuration as shown in FIG. 40, if the CCI configuration or CCI-FS configuration is implemented as an upper layer protocol, another SerDes standard may be used. For example, by implementing the configuration of the extended packet header ePH, the extended packet footer ePF1, and the extended packet footer ePF0 as shown in FIG. 41 in the Payload from the Application Layer or the upper layer corresponding to the layer below it.
  • Various SerDes related items such as PCIE, USB, DisplayPort, HDMI (registered trademark), LVDS, and FPD-LINK can be applied.
  • FIG. 41 shows an example of the packet configuration of the read command generated by the CCI-FS processing unit 653 of the application processor 614 at the time of read access.
  • the details thereof are the same as those of the read command described with reference to FIG. 28 described above.
  • a read command having such a packet structure is generated by the CCI-FS processing unit 653 and supplied to the I2C / I3C master 651.
  • FIG. 42 shows an example of the packet configuration of the read command output from the I2C / I3C master 651 of the application processor 614 at the time of read access.
  • the I2C / I3C master 651 has the start condition S followed by the sensor address of the connection destination, that is, the address (Slave) of the CCI processing unit 645 of the SerDes device 613 on the master side in the configuration shown in FIG. 40. Address + W 8-bit) is sent.
  • the register address (Register Address [15: 8] and Register Address [7: 0]) of the register 647 of the SerDes device 613 on the master side is transmitted.
  • the read command of such a packet structure is transferred by I2C / I3C from the I2C / I3C master 651 of the application processor 614.
  • FIG. 43 shows an example of the packet configuration of the read command output from the A-PHY processing unit 641 of the SerDes device 613 on the master side at the time of read access.
  • the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the read command acquired by the I2C / I3C slave 644 as the protection range of E2E Protection.
  • the read command of such a packet structure is A-PHY transferred by the A-PHY processing unit 641 of the SerDes device 613 on the master side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer from the read command.
  • the read command is supplied to the CCI processing unit 635 of the slave address "7'h0E" indicated by the Destination ID via the CSIA processing unit 632, the CSI2-FS processing unit 633, and the CCI-FS processing unit 636, and then I2C. It is supplied to / I3C master 634.
  • FIG. 44 shows an example of the packet configuration of the read command output from the I2C / I3C master 634 at the time of read access.
  • the I2C / I3C master 634 has the start condition S followed by the sensor address of the connection destination, that is, the address of the CCI processing unit 622 of the image sensor 611 (Slave Address + W in the configuration shown in FIG. 40). 8-bit) is sent.
  • the register address (Register Address [15: 8] and Register Address [7: 0]) of the register 624 of the image sensor 611 is transmitted.
  • FIG. 45 shows an example of the packet structure of the read command supplied to the CSI2-FS processing unit 623 and the read data generated by the CSI2-FS processing unit 623 at the time of read access.
  • the read command with the packet structure shown in FIG. 41 that is, the read command within the protection range of E2E Protection in the A-PHY transfer, is supplied to the CSI2-FS processing unit 623.
  • the read data of such a packet structure is generated in the CCI-FS processing unit 623 and supplied to the I2C / I3C slave 621 via the CCI processing unit 622.
  • FIG. 46 shows an example of a packet configuration of read data output from the I2C / I3C slave 621 of the image sensor 611 at the time of read access.
  • the I2C / I3C slave 621 has the start condition S followed by the sensor address of the connection destination, that is, the address of the I2C / I3C master 634 of the SerDes device 612 on the slave side in the configuration shown in FIG. Slave Address + W 8-bit) is sent.
  • the read data storage address (address of the register 624 of the image sensor 611) is transmitted, and the address of the I2C / I3C master 634 (Slave Address + R 8-bit) of the SerDes device 612 on the slave side is transmitted. Will be done.
  • the read command of such a packet structure is transferred from the I2C / I3C slave 621 of the image sensor 611 by I2C / I3C.
  • FIG. 47 shows an example of a packet configuration of read data output from the A-PHY processing unit 631 of the SerDes device 612 on the slave side at the time of read access.
  • the A-PHY processing unit 631 adds an A-PHY header and an A-PHY footer to the read data acquired by the I2C / I3C master 634 as the protection range of E2E Protection.
  • the read data of such a packet structure is A-PHY transferred by the A-PHY processing unit 631 of the SerDes device 612 on the slave side. Then, in the SerDes device 613 on the master side, the A-PHY processing unit 641 removes the A-PHY header and the A-PHY footer from the read data.
  • the read data is supplied to the I2C / I3C slave 644 via the CSIA processing unit 642, the CSI2-FS processing unit 643, the CCI-FS processing unit 646, and the CCI processing unit 635.
  • FIG. 48 shows an example of a packet configuration of read data output from the I2C / I3C slave 644 of the SerDes device 613 on the master side at the time of read access.
  • the I2C / I3C slave 644 has the start condition S followed by the sensor address of the connection destination, that is, in the configuration shown in FIG. 40, the address of the CCI processing unit 635 of the SerDes device 613 on the master side ( Slave Address + W 8-bit) is sent.
  • the register address (Register Address [15: 8] and Register Address [7: 0]) of the register 647 of the SerDes device 613 on the master side is transmitted, and the address of the CCI processing unit 635 (Slave Address + R) is transmitted.
  • FIG. 49 shows an example of the packet structure of the read data supplied to the CCI-FS processing unit 653 at the time of read access.
  • the read data having the packet structure as shown in FIG. 45 that is, the read data within the protection range of E2E Protection in the A-PHY transfer, is supplied to the CCI-FS processing unit 653.
  • steps S301 to S317 initial setting and confirmation operation are performed.
  • step S301 the slave address of the opposite image sensor 611 is set in the Destination SID register of the CCI-FS processing unit 653 of the application processor 614.
  • step S302 the ePH register of the CCI-FS processing unit 653 of the application processor 614 is set.
  • step S303 the Destination SID of the Bridge configuration of the CCI-FS processing unit 653 of the application processor 614 is set, and the SerDes device 613 on the master side is registered.
  • the Address, attribution, and Timeout_no1 registers are also set in the same manner, and the same settings are made thereafter.
  • step S304 the ePH register of the CCI-FS processing unit 643 is set from the application processor 614 to the SerDes device 613 on the master side.
  • step S305 the destination SID of the Bridge configuration of the CCI-FS processing unit 643 is set from the application processor 614 to the SerDes device 613 on the master side, and the SerDes device 612 on the slave side is registered.
  • step S306 read access is performed from the application processor 614 to the SerDes device 613 on the master side to the Error register of the CCI-FS processing unit 643.
  • step S307 in the application processor 614, whether or not the register value of the Error register of the CCI-FS processing unit 643 of the SerDes device 613 on the master side is 0 as a result of the read access in step S306. Is determined.
  • step S307 If it is determined in step S307 that the register value of the Error register of the CCI-FS processing unit 643 of the SerDes device 613 on the master side is not 0 (other than 0), the process proceeds to step S308.
  • step S308 in the application processor 614, when the CCI-FS processing unit 653 determines whether or not the number of retransmissions is 3 or more, and determines that the number of retransmissions is not 3 or more (1 or 2). , The process returns to step S304, and the same process is repeated thereafter.
  • step S307 if it is determined in step S307 that the register value of the Error register of the CCI-FS processing unit 643 of the SerDes device 613 on the master side is 0, the process proceeds to step S309.
  • step S309 the ePH register of the CCI-FS processing unit 636 is set from the application processor 614 to the SerDes device 612 on the slave side.
  • step S310 the destination SID of the Bridge configuration of the CCI-FS processing unit 636 is set from the application processor 614 to the SerDes device 612 on the slave side, and the SerDes device 612 on the slave side is registered.
  • step S311 read access is performed from the application processor 614 to the SerDes device 612 on the slave side to the Error register of the CCI-FS processing unit 636.
  • step S312 in the application processor 614, the CCI-FS processing unit 653 determines whether or not the register value of the Error register of the CCI-FS processing unit 636 of the SerDes device 612 on the slave side is 0 as a result of the read access in step S311. Is determined.
  • step S312 If it is determined in step S312 that the register value of the Error register of the CCI-FS processing unit 636 of the SerDes device 612 on the slave side is not 0 (other than 0), the process proceeds to step S313.
  • step S313 in the application processor 614, when the CCI-FS processing unit 653 determines whether or not the number of retransmissions is 3 or more, and determines that the number of retransmissions is not 3 or more (1 or 2). , The process returns to step S309, and the same process is repeated thereafter.
  • step S312 determines whether the register value of the Error register of the CCI-FS processing unit 636 of the SerDes device 612 on the slave side is 0, the process proceeds to step S314.
  • step S314 the ePH register of the CCI-FS processing unit 623 is set from the application processor 614 to the image sensor 611.
  • step S315 read access is performed from the application processor 614 to the image sensor 611 to the Error register of the CCI-FS processing unit 623.
  • step S316 in the application processor 614, the CCI-FS processing unit 653 determines whether or not the register value of the Error register of the CCI-FS processing unit 623 of the image sensor 611 is 0 as a result of the read access in step S315. do.
  • step S316 If it is determined in step S316 that the register value of the Error register of the CCI-FS processing unit 623 of the image sensor 611 is not 0 (other than 0), the process proceeds to step S317.
  • step S317 in the application processor 614, when the CCI-FS processing unit 653 determines whether or not the number of retransmissions is 3 or more, and determines that the number of retransmissions is not 3 or more (1 or 2). , The process returns to step S314, and the same process is repeated thereafter.
  • step S308 if it is determined in step S308, step S313, or step S317 that the number of retransmissions is 3 or more, the process returns to step S301, and the same process is repeated thereafter.
  • step S316 determines whether the register value of the Error register of the CCI-FS processing unit 623 of the image sensor 611 is 0, the process proceeds to step S318.
  • steps S318 to S327 a write operation using CCI-FS is performed.
  • step S318 the CCI-FS processing unit 653 of the application processor 614 sets the ePH register so that the write operation is performed.
  • step S319 the CCI-FS processing unit 653 of the application processor 614 sets the write data register.
  • step S320 the CCI-FS processing unit 653 of the application processor 614 sets the command execution register to 1 and issues a write command.
  • step S321 the application processor 614 performs Sequence A_Write (at the time of AP) processing described later with reference to FIG. 53.
  • step S322 the SerDes device 613 on the master side performs Sequence B (at the time of SerDes (Master)) processing described later with reference to FIG. 56.
  • FIG. 56 describes the Sequence B (at the time of SerDes (Slave)) processing executed by the SerDes device 612 on the slave side, but the SerDes device 613 on the master side also executes the same processing by the corresponding blocks. can do.
  • step S323 the A-PHY processing unit 641 receives the A-PHY header and A from the extended DT of the extended packet header ePH of the SerDes device 613 on the master side via the CSI2-FS processing unit 643 and the CSIA processing unit 642. -Add a PHY footer to perform A-PHY transfer.
  • step S324 the SerDes device 612 on the slave side performs Sequence B (at the time of SerDes (Slave)) processing described later with reference to FIG. 56.
  • step S325 the SerDes device 612 on the slave side performs Sequence A_Write (at the time of SerDes (Slave)) processing described later with reference to FIG. 53.
  • FIG. 53 describes the Sequence A_Write (at the time of AP) processing executed by the application processor 614, the SerDes device 612 on the slave side can also execute the same processing by the corresponding blocks.
  • step S326 the image sensor 611 performs Sequence B (at the time of Image Sensor) processing described later with reference to FIG. 56.
  • FIG. 56 describes the Sequence B (at the time of SerDes (Slave)) processing executed by the SerDes device 612 on the slave side, but the image sensor 611 may also execute the same processing by the corresponding blocks. can.
  • step S327 in the image sensor 611, the CCI-FS processing unit 623 performs write processing for writing write data to the address of the register 624 from the contents of the extended packet header ePH and the extended packet footer ePF. After that, the process proceeds to step S328.
  • steps S328 to S344 a read operation using CCI-FS is performed.
  • step S328 the CCI-FS processing unit 653 of the application processor 614 sets the ePH register so as to perform a read operation.
  • step S329 the CCI-FS processing unit 653 of the application processor 614 sets the read data register.
  • step S330 the CCI-FS processing unit 653 of the application processor 614 sets the command execution register to 1 and issues a read command.
  • step S331 the application processor 614 performs Sequence A_Read_CMD (at the time of AP) processing described later with reference to FIG. 54.
  • Sequence A_Read_CMD at the time of AP
  • the two branched processes are performed in parallel, the process proceeds to step S332 according to the branch A, and the process proceeds to step S339 according to the branch B.
  • step S332 the SerDes device 613 on the master side performs Sequence B (at the time of SerDes (Master)) processing described later with reference to FIG. 56.
  • FIG. 56 describes the Sequence B (at the time of SerDes (Slave)) processing executed by the SerDes device 612 on the slave side, but the SerDes device 613 on the master side also executes the same processing by the corresponding blocks. can do.
  • step S333 the A-PHY processing unit 641 receives the A-PHY header and A from the extended DT of the extended packet header ePH of the SerDes device 613 on the master side via the CSI2-FS processing unit 643 and the CSIA processing unit 642. -Add a PHY footer to perform A-PHY transfer.
  • step S334 the SerDes device 612 on the slave side performs Sequence B (at the time of SerDes (Slave)) processing described later with reference to FIG. 56.
  • step S355 the SerDes device 612 on the slave side performs Sequence A_Read_CMD (at the time of SerDes (Slave)) processing described later with reference to FIG. 54.
  • FIG. 54 describes the Sequence A_Read_CMD (at the time of AP) processing executed by the application processor 614, the SerDes device 612 on the slave side can also execute the same processing by the corresponding blocks.
  • the Sequence A_Read_CMD at the time of SerDes (Slave)
  • the process does not proceed to the branch A, and the process proceeds to step S336 according to the branch B.
  • step S336 the SerDes device 612 on the slave side performs Sequence A_Read_Data (at the time of SerDes (Slave)) processing described later with reference to FIG. 57.
  • FIG. 57 describes the Sequence A_Read_Data (at the time of AP) processing executed by the application processor 614, but the SerDes device 612 on the slave side can also execute the same processing by the corresponding blocks.
  • step S337 the A-PHY processing unit 631 receives the A-PHY header and A from the extended DT of the extended packet header ePH of the SerDes device 612 on the slave side via the CSI2-FS processing unit 633 and the CSIA processing unit 632. -Add a PHY footer to perform A-PHY transfer.
  • step S3308 the SerDes device 613 on the master side performs Sequence B (at the time of SerDes (Master)) processing described later with reference to FIG. 56.
  • FIG. 56 describes Sequence B (at the time of SerDes (Slave)) processing executed by the SerDes device 612 on the slave side, but the same processing is also performed by the corresponding blocks in the SerDes device 613 on the master side. Can be executed.
  • step S339 the application processor 614 performs Sequence A_Read_Data (at the time of AP) processing described later with reference to FIG. 57.
  • step S340 the application processor 614 performs Sequence B (at the time of AP) processing described later with reference to FIG. 56.
  • FIG. 56 describes Sequence B (at the time of SerDes (Slave)) processing executed by the SerDes device 612 on the slave side, but the application processor 614 also executes the same processing by the corresponding blocks. Can be done.
  • step S341 in the application processor 614, the CCI-FS processing unit 653 stores read data in the address of the register 654 from the contents of the extended packet header ePH and the extended packet footer ePF.
  • step S342 the above-mentioned read process is performed by the image sensor 611, the SerDes device 612 on the slave side, the SerDes device 613 on the master side, and the application processor 614 to check the error register.
  • step S343 whether the image sensor 611, each device (SerDes device 612 on the slave side, SerDes device 613 on the master side, and application processor 614) has a register value of 0 in the Error register of each CCI-FS processing unit. Judge whether or not.
  • step S343 If it is determined in step S343 that the register values of all the CCI-FS processing units are not 0 (there is a register value other than 0 in any of them), the process proceeds to step S344.
  • step S344 the Error-related register value of the CCI-FS processing unit whose register value is not 0 is confirmed, the Error register is cleared by 1 and retransmission processing is performed.
  • step S343 if it is determined in step S343 that the register values of all the CCI-FS processing units are 0, or after the processing of step S344, the processing is terminated.
  • FIG. 53 is a flowchart illustrating the Sequence A_Write (at the time of AP) process performed in step S321 of FIG. 51.
  • the process performed by the application processor 614 will be described as an example in FIG. 53, the Sequence A_Write (at the time of SerDes (Slave)) process in step S325 of FIG. 51 is also performed in the same manner.
  • step S351 in the application processor 614, the I2C / I3C master 651 issues a start command and a slave address (Slave Address + W 8-bit shown in FIG. 42).
  • step S352 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side. If it is determined in step S352 that the ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S353.
  • step S353 in the application processor 614, the I2C / I3C master 651 issues a register address (Register Address [15: 8] shown in FIG. 42).
  • Register Address [15: 8] shown in FIG. 42.
  • step S354 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side. If it is determined in step S354 that an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S355.
  • step S355 in the application processor 614, the I2C / I3C master 651 determines whether or not the transfer of the final data is completed. If it is determined in step S355 that the transfer of the final data has not been completed, the process returns to step S353, and the same process is repeated thereafter.
  • step S355 if it is determined in step S355 that the transfer of the final data is completed, the process proceeds to step S356.
  • step S356 in the application processor 614, the I2C / I3C master 651 issues a stop command. As a result, the Sequence A_Write (at the time of AP) processing ends, and the processing returns to step S322 in FIG.
  • step S352 or S354 if it is determined in step S352 or S354 that the ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has not been received, the process proceeds to step S357.
  • step S357 in the application processor 614, the I2C / I3C master 651 issues a stop command. In this case, the Sequence A_Write (at the time of AP) processing ends and the communication processing itself ends.
  • FIG. 54 is a flowchart illustrating the Sequence A_Read_CMD (at the time of AP) process performed in step S331 of FIG. 52. Although the process performed by the application processor 614 will be described as an example in FIG. 54, the Sequence A_Read_CMD (at the time of SerDes (Slave)) process in step S335 of FIG. 52 is also performed in the same manner.
  • step S361 in the application processor 614, the I2C / I3C master 651 issues a start command and a slave address (Slave Address + W 8-bit shown in FIG. 42) to start the timer.
  • step S362 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side. If it is determined in step S362 that the ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S363.
  • step S363 in the application processor 614, the I2C / I3C master 651 issues a register address (Register Address [15: 8] shown in FIG. 42).
  • Register Address [15: 8] shown in FIG. 42.
  • step S364 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side.
  • step S364 If it is determined in step S364 that an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S365.
  • step S365 in the application processor 614, the I2C / I3C master 651 determines whether or not the transfer of the final data is completed.
  • step S365 If it is determined in step S365 that the transfer of the final data is completed, the process proceeds to step S366.
  • step S366 the I2C / I3C master 651 issues a stop command in the application processor 614. After that, the process branches into two, and the process proceeds to step S332 in FIG. 52 according to the branch A. On the other hand, according to the branch B, after the Sequence C (at the time of AP) processing (see FIG. 55 described later) is performed in step S367, the processing proceeds to step S339 in FIG. 52.
  • step S365 determines whether the transfer of the final data has been completed. If it is determined in step S365 that the transfer of the final data has not been completed, the process proceeds to step S368.
  • step S368 in the application processor 614, the I2C / I3C master 651 determines whether or not the timer started in step S361 has timed out. If it is determined in step S368 that the timer has not timed out, the process returns to step S363, and the same process is repeated thereafter.
  • step S368 determines whether the timer has timed out. If it is determined in step S368 that the timer has timed out, the process proceeds to step S369.
  • step S369 the application processor 614 sets 1 in the Error register (Timeout), and stores the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register.
  • step S370 If it is determined that the ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has not been received after the processing of step S369 or in step S362 or S364, the processing proceeds to step S370.
  • step S370 the I2C / I3C master 651 issues a stop command in the application processor 614.
  • the Sequence A_Read_CMD (at the time of AP) processing ends and the communication processing itself ends.
  • FIG. 55 is a flowchart illustrating the Sequence C (at the time of AP) processing performed in step S367 of FIG. 54. Although the processing performed by the application processor 614 will be described as an example in FIG. 55, the same processing can be performed by the SerDes device 612 on the slave side.
  • step S381 in the application processor 614, the I2C / I3C master 651 determines whether or not the timer started in step S361 of FIG. 54 has timed out, and the process is waited until it is determined that the time-out has occurred. If it is determined in step S381 that the time-out has occurred, the process proceeds to step S382, and in the application processor 614, the I2C / I3C master 651 performs a polling operation.
  • step S383 in the application processor 614, the I2C / I3C master 651 determines whether or not the Status register value of the read command is 1.
  • step S383 If it is determined in step S383 that the Status register value of the read command is 1, the process proceeds to step S384. In step S384, after the application processor 614 makes a read access, the process returns to step S339 of FIG.
  • step S383 determines whether the Status register value of the read command is 1 (other than 1), the process proceeds to step S385.
  • step S385 the application processor 614 sets 1 in the Error register (Timeout), and stores the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register.
  • step S386 in the application processor 614, the I2C / I3C master 651 issues a stop command.
  • the Sequence C (at the time of AP) processing ends and the communication processing itself ends.
  • FIG. 56 is a flowchart illustrating the Sequence B (at the time of SerDes (Slave)) process performed in steps S324 and S334 of FIG. 51.
  • Sequence B at the time of SerDes (Master)
  • Sequence B at the time of Image Sensor
  • S332 of FIG. 52 Processing and Sequence B (at the time of SerDes (Master)) processing in step S332 of FIG. 52 are also performed in the same manner.
  • step S391 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 confirms the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH.
  • step S392 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 determines whether or not the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH do not match.
  • step S392 If it is determined in step S392 that the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH do not match, the process proceeds to step S393.
  • step S393 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 confirms the Destination SID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH.
  • step S394 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 determines whether or not the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH match.
  • step S394 If it is determined in step S394 that the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH match, the process proceeds to step S395.
  • step S395 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 confirms the Message Counter from the contents of the extended packet header ePH.
  • step S396 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 matched the Message Counter in the SerDes device 612 on the slave side with the received value of the Message Counter confirmed from the contents of the extended packet header ePH. Judge whether or not.
  • step S396 If it is determined in step S396 that the Message Counter in the SerDes device 612 on the slave side and the received value of the Message Counter confirmed from the contents of the extended packet header ePH match, the process proceeds to step S397.
  • step S397 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 receives the CRC calculation result calculated from the extended packet header ePH by the SerDes device 612 on the slave side and the received value (ePF0) of the extended packet footer ePF. And confirm.
  • step S398 it is determined whether or not the received value (ePF0) of the extended packet footer ePF and the CRC calculation result match, and if it is determined that they match, the process returns to step S325 in FIG.
  • step S392 if it is determined in step S392 that the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH do not match (match), the process proceeds to step S399.
  • steps S399 to S402 the same processing as in steps S395 to S398 is performed.
  • step S402 If it is determined in step S402 that the received value (ePF0) of the extended packet footer ePF and the CRC calculation result match, the process proceeds to step S403. In step S403, write access is made to the register 637 of the SerDes device 612 on the slave side.
  • step S394 If it is determined in step S394 that the Source ID of the SerDes device 612 on the slave side and the Destination SID of the extended packet header ePH do not match, the process proceeds to step S404.
  • step S404 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 sets 1 in the Error register [2] (Routing), and sets the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register. Store.
  • step S398 or S402 If it is determined in step S398 or S402 that the received value (ePF0) of the extended packet footer ePF and the CRC calculation result do not match, the process proceeds to step S405.
  • step S405 in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 sets 1 in the Error register (CRC) and stores the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register.
  • CRC Error register
  • step S396 or S400 If it is determined in step S396 or S400 that the MessageCounter in the SerDes device 612 on the slave side does not match the received value of the MessageCounter confirmed from the contents of the extended packet header ePH, the process proceeds to step S406. .. In step S406, in the SerDes device 612 on the slave side, the CCI-FS processing unit 636 sets 1 in the Error register (MC) and stores the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register.
  • MC Error register
  • CRC calculation may be performed only for E2E Protection, error detection for each device, and packet discard / non-discarding, which are expected to be combined.
  • FIG. 57 is a flowchart illustrating the Sequence A_Read_Data (at the time of AP) process performed in step S339 of FIG. 52.
  • the process performed by the application processor 614 will be described as an example, but the Sequence A_Read_Data (at the time of SerDes (Slave)) process in step S336 of FIG. 52 is also performed in the same manner.
  • step S411 in the application processor 614, the I2C / I3C master 651 issues a start command and a slave address (Slave Address + W 8-bit shown in FIG. 48).
  • step S412 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side. If it is determined in step S412 that an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S413.
  • step S413 in the application processor 614, the I2C / I3C master 651 issues a start command and a slave address (Slave Address + R 8-bit shown in FIG. 48) to start the timer.
  • step S414 the application processor 614 determines whether or not the I2C / I3C master 651 has received an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side. If it is determined in step S414 that an ACK response from the I2C / I3C slave 644 of the SerDes device 613 on the master side has been received, the process proceeds to step S415.
  • step S415 in the application processor 614, the I2C / I3C master 651 acquires read data from the opposite I2C / I3C slave 644 on the application processor 614 side.
  • step S416 it is determined whether or not the I2C / I3C master 651 of the application processor 614 has performed ACK transmission and the opposite I2C / I3C slave 644 on the application processor 614 side has performed ACK reception.
  • step S416 If it is determined in step S416 that the I2C / I3C master 651 of the application processor 614 has performed ACK transmission and the opposite I2C / I3C slave 644 on the application processor 614 side has performed ACK reception, the process proceeds to step S417. move on.
  • step S417 it is determined whether or not the I2C / I3C master 651 of the application processor 614 has performed NACK transmission when the transfer of the final data is completed.
  • step S417 If it is determined in step S417 that NACK transmission has been performed, the process proceeds to step S418.
  • step S4108 in the application processor 614, the I2C / I3C master 651 issues a stop command. As a result, the Sequence A_Read_Data (at the time of AP) processing ends, and the processing returns to step S340 in FIG.
  • step S417 determines whether NACK transmission has been performed. If it is determined in step S417 that NACK transmission has not been performed, the process proceeds to step S419.
  • step S419 in the application processor 614, the I2C / I3C master 651 determines whether or not the timer started in step S413 has timed out. If it is determined in step S419 that the timer has not timed out, the process returns to step S415, and the same process is repeated thereafter.
  • step S419 determines whether the timer has timed out. If it is determined in step S419 that the timer has timed out, the process proceeds to step S420.
  • step S420 the application processor 614 sets 1 in the Error register (Timeout), and stores the data of the extended packet header ePH and the extended packet footer ePF in the Error-related register.
  • step S421 it is determined that the I2C / I3C master 651 of the application processor 614 is not performing ACK transmission, or that the opposite I2C / I3C slave 644 on the application processor 614 side is not performing ACK reception. If so, the process proceeds to step S421.
  • step S421 in the application processor 614, the I2C / I3C master 651 issues a stop command.
  • Sequence A_Read_Data at the time of AP processing ends and communication processing itself ends.
  • the access timing from the I2C / I3C master 634 to the I2C / I3C slave 621 and the I2C / I3C slave 644 of the SerDes device 613 on the master side There are three combinations of access timings from the I2C / I3C master 651 to the I2C / I3C slave 644 at the time of output (see FIG. 48) as described below.
  • the first access timing is polled until the read data is acquired, and the I2C / I3C master starts the read process after the read data is ready to be read.
  • the I2C / I3C master starts read processing after a certain period of time has elapsed.
  • the third access timing is a form in which the I2C / I3C master starts read processing after a certain period of time using the Clock Stretch method (see FIG. 72 described later), and at that time, read data is sent in chunks and reads. There is a form in which data is sent separately (Clock Stretch Mode signal is asserted).
  • ⁇ Configuration example of extended packet header ePH> 58 to 60 are diagrams showing a configuration example of the extended packet header ePH.
  • FIG. 58 shows a detailed configuration example of the extended packet header ePH0, the extended packet header ePH1, and the extended packet header ePH2.
  • the addition of the extended packet header ePH as shown is specified by diverting the contents of the extended packet header ePH for CCI-FS by diverting the ePH structure in C-PHY and D-PHY.
  • FIG. 59 shows a detailed configuration example of the extended packet header ePH3.
  • the addition of the extended packet header ePH as shown specifies the content of the extended packet header ePH for CCI-FS.
  • FIG. 60 shows a detailed configuration example of the extended DT of the extended packet header ePH.
  • "0xC0: For I2C” and "0xC1: For I3C” have been added to the data type of the extended packet header ePH to support CCI-FS.
  • FIG. 61 shows a configuration example using conventional I2C hardware.
  • an I2C configuration example in the case of a bus connection configuration is shown at the upper level, and the slave side may be configured to be able to receive AKC / NACK from the upper level.
  • the upper bus configurations do not always match.
  • FIG. 62 shows the waveform at the time of data transfer on the I2C bus.
  • the I2C bus standard and CCI (I2C) are equivalent.
  • FIG. 63 is a block diagram showing a CCI-related configuration example in the communication system 701 having an A-PHY direct connection configuration, similar to the communication system 501 shown in FIG. 27 above.
  • the image sensor 711 and the application processor 712 are directly connected by the A-PHY.
  • the image sensor 711 includes an A-PHY processing unit 721, a CSIA processing unit 722, a CSI2 processing unit 523, a CSI2-FS processing unit 724, a CCI processing unit 725, a CCI-FS processing unit 726, a register 727, and a selector 728-1. And 728-2 are configured. As shown in the figure, the selectors 728-1 and 728-2 are arranged so as to sandwich the CCI-FS processing unit 726, and enable / disable the CCI-FS processing unit 726 according to the CCI_FS_Enable signal of the register 727. Can be done.
  • the application processor 712 includes an A-PHY processing unit 731, a CSIA processing unit 732, a CSI2 processing unit 733, a CSI2-FS processing unit 734, a CCI processing unit 735, a CCI-FS processing unit 736, a register 737, and a selector 738-1. And 738-2 are configured. As shown in the figure, the selectors 738-1 and 738-2 are arranged so as to sandwich the CCI-FS processing unit 736, and enable / disable the CCI-FS processing unit 736 according to the CCI_FS_Enable signal of the register 737. Can be done.
  • CCI_FS_Enable 1
  • CCI_FS_Enable 2
  • CCI_FS_Enable 0
  • the CCI-FS processing unit 726 and the CCI-FS processing unit 736 do not go through. Data is sent and received to.
  • FIG. 64 shows an example of the network connection form (topology) of the A-PHY direct connection configuration and the SerDes connection configuration.
  • the application processor 801 is directly connected to the image sensor 802 via A-PHY, and the image sensor 802 can be configured to be connected to the sensor 803 via I2C / I3C.
  • the application processor 801 is connected to the SerDes device 804 on the master side via I2C / I3C, and the SerDes device 804 on the master side and the SerDes device 805 on the slave side are connected via A-PHY.
  • the SerDes device 805 on the slave side can be configured to be connected to the two sensors 806-1 and 806-2 via I2C / I3C.
  • FIG. 65 is a block diagram showing an example of the circuit configuration of the CCI-FS processing unit.
  • the CCI-FS processing unit 901 and the register 902 shown in FIG. 65 have a common configuration in the CCI-FS processing unit and the register included in each of the above-mentioned devices.
  • the CCI-FS processing unit 901 is provided with a CCI-FS switch, a register, and the like in the upper layer, and a CCI processing unit is provided in the lower layer.
  • the CCI-FS processing unit 901 includes a CCI-FS transmission unit 911 and a CCI-FS reception unit 912.
  • Various register setting value information is supplied from the register 902 to the CCI-FS processing unit 901, and an error notification is supplied from the CCI-FS processing unit 901 to the register 902.
  • the CCI-FS transmission unit 911 includes an extended packet header ePH generation unit 921, an extended packet footer ePF generation unit 922, and a Destination Address confirmation unit 923.
  • the extended packet header ePH generation unit 921 has an MC generation unit 941 that generates a Message Counter and a Packet Length calculation unit 942 that calculates the packet length.
  • the extended packet footer ePF generation unit 922 has an extended packet footer ePF1 generation unit 943 that generates the extended packet footer ePF1 and a CRC calculation unit 944 that calculates the CRC stored in the extended packet footer ePF0.
  • the CCI-FS receiving unit 912 includes an extended packet header ePH confirmation unit 931, an extended packet footer ePF confirmation unit 932, and a Destination Address confirmation unit 933.
  • the extended packet header ePH confirmation unit 931 has an MC confirmation unit 951 for confirming the Message Counter, and a Packet Length calculation / confirmation unit 952 for calculating and confirming the packet length.
  • the extended packet footer ePF confirmation unit 932 has an extended packet footer ePF1 confirmation unit 953 for confirming the extended packet footer ePF1 and a CRC calculation unit 954 for calculating the CRC stored in the extended packet footer ePF0.
  • the CCI-FS processing unit 901 confirms the Destination Address of the data from the upper layer by the CCI-FS transmission unit 911, generates the extended packet header ePH and the extended packet footer ePF, adds them to the data, and adds them to the lower layer. Can be supplied to.
  • the CCI-FS processing unit 901 can confirm the Destination Address of the data from the lower layer, confirm the extended packet header ePH and the extended packet footer ePF by the CCI-FS receiving unit 912, and supply the data to the upper layer. can.
  • the application processor 614 has a Source ID indicating its own device in the extended packet header ePH in the application processor 614. Then, the CCI-FS processing unit 653 adds the above information and information having a Destination ID indicating a device that performs the desired access.
  • the SerDes device 612 on the slave side and the SerDes device 613 on the master side have a Source ID indicating the own device by being preset or as an eigenvalue.
  • the CCI-FS processing unit 636 and the CCI-FS processing unit 646 preset the above information and information having a Destination ID indicating a connected device and a target device.
  • the CCI-FS processing unit 636 and the CCI-FS processing unit 646 compare the Destination ID of the received extended packet header ePH with their own ID (Source ID), and indicate whether they are accessing themselves or the target device. Determine whether it is (Desination ID). For example, when the Destination ID of the received extended packet header ePH and the own ID (Source ID) match, the register access is performed as the access to the intermediate device (SerDes device). On the other hand, if the Destination ID of the received extended packet header ePH and its own ID (Source ID) do not match, data is transferred to the connected device (Desination ID) as access to the subsequent device.
  • the Source ID of the preset or eigenvalue As described above, based on the Source ID and Destination ID embedded in the extended packet header ePH, the Source ID of the preset or eigenvalue, and the preset connection destination information in the intermediate device (SerDes device) or the target device. Transfer data and access the target device.
  • the CSI2-FS processing unit 623 of the image sensor 611 When the Destination ID of the received extended packet header ePH and its own ID (Source ID) match, the CSI2-FS processing unit 623 of the image sensor 611 performs its own register access as an access to the image sensor 611. conduct.
  • the Source ID of each device can be a value unique to each device, a preset value, or a combination thereof.
  • 66 to 68 are diagrams showing a detailed configuration example of the register 902.
  • FIG. 66 shows the details of the register 902 from the address 0x000 to the address 0x109.
  • FIG. 67 shows a configuration example at the time of Bridge configuration as details from the address 0x110 to the address 0x125 of the register 902.
  • FIG. 68 shows an Error-related register as the details of the address 0x200 of the register 902.
  • FIG. 68 shows an Error-related register (debug) as details of the address 0x300 and the address 0x400 of the register 902.
  • FIG. 68 shows an Error Injection related register (debug) as details of the address 0x800 of the register 902.
  • FIG. 69 shows a modified example of the extended packet header ePH in the packet configuration of the write data generated by the CCI-FS processing unit 536 of the application processor 512 at the time of write access. It is shown.
  • the configurations of the extended packet header ePH3 and the extended packet header ePH4 are different from the configuration example shown in FIG. 33 described above.
  • FIG. 70 shows a modified example of the extended packet header ePH in the packet configuration of the write data generated by the CCI-FS processing unit 536 of the application processor 512 at the time of read access. It is shown.
  • the configurations of the extended packet header ePH3 and the extended packet header ePH4 are different from the configuration example shown in FIG. 28 described above.
  • Read address information may be stored in the extended packet header ePH or in the AP (CCI) payload.
  • the Length information may be stored in the extended packet header ePH or in the AP (CCI) payload.
  • the CMD information may be stored in the CCI Command ID of the extended packet header ePH. Command start, resume, and end information is referenced based on the CCICommandID.
  • CCI information (for example, Slave Address) may be stored in the AP (CCI) payload using CCI Header Length.
  • CCI Header Length is information indicating the header length of the CCI protocol (I2C).
  • FIG. 71 is a diagram illustrating a flow between the image sensor 511 and the application processor 512 in the A-PHY direct connection configuration as shown in FIG. 27.
  • the CCI-FS switch 538 issues a read command and a write command.
  • the CCI processing unit 535 converts them into an AP (CCI) payload and supplies them to the A-PHY processing unit 531.
  • the A-PHY processing unit 531 adds an A-PHY header and an A-PHY footer to the AP (CCI) payload, and performs A-PHY transfer to the image sensor 511.
  • the A-PHY processing unit 521 removes the A-PHY header and the A-PHY footer and supplies the AP (CCI) payload to the CCI processing unit 525.
  • the CCI processing unit 525 converts the AP (CCI) payload, writes data to the register 527 according to the write command, and reads data from the register 527 according to the read command.
  • the initial setting of CCI-FSEnable is performed by the CCI processing unit 525, and bus conversion such as the register interface and the AHB bus is performed. Then, the confirmation of the CCI-FS Enable setting is performed via the CCI processing unit 525 or the CCI-FS processing unit 526.
  • the A-PHY processing unit 521 adds an A-PHY header and an A-PHY footer to the AP (CCI) payload, and performs A-PHY transfer to the application processor 512.
  • the A-PHY processing unit 531 removes the A-PHY header and the A-PHY footer and supplies the AP (CCI) payload to the CCI processing unit 535.
  • the CCI-FS switch 538 sets the CCI-FS Enable and various CCI-FS related registers for the register 537. At this time, register access depends on the implementation.
  • the CCI-FS switch 538 is CCI-FS related to the register 527 via the register 537, the CCI-FS processing unit 536, the A-PHY processing unit 531 and the A-PHY processing unit 521, and the CCI-FS processing unit 526. Set various registers.
  • the CCI-FS switch 538 issues a read command.
  • the A-PHY processing unit 531 adds an A-PHY header and an A-PHY footer to them, and performs A-PHY transfer to the image sensor 511.
  • the extended packet footer ePF0 is supplied to the CCI-FS processing unit 526.
  • the CCI-FS processing unit 526 converts the AP (CCI) payload, and based on the contents, reads data from the register 527 according to a read command.
  • the register access depends on the implementation, and bus conversion such as a register interface, an AHB bus, and a CCI interface is performed.
  • the A-PHY processing unit 521 adds an A-PHY header and an A-PHY footer to them, and performs A-PHY transfer to the application processor 512.
  • the extended packet footer ePF0 is supplied to the CCI-FS processing unit 536.
  • I2C / I3C generation by software SlaveAddress, Register address, Payload, ACK response reception, transmission, various control codes (S, Sr, ACK, NACK, P) are generated by software (for example, GPIO control). Image).
  • S, Sr, ACK, NACK, P various control codes
  • I2C / I3C command generation by software Slave Address, Register address, and Payload are issued from the CPU in response to ACK reception in the CPU bus setting.
  • I2C / I3C generation by hardware transfer settings and data are set to HWIP of I2C / I3C.
  • Various control codes are automatically answered by hardware.
  • I2C / I3C command generation by hardware set the data in the transfer setting to the HWIP of I2C / I3C and send it by the command.
  • Various control codes are automatically answered by hardware.
  • FIG. 72 is a diagram illustrating a flow using the Clock Stretch method in the Write access and Read access between the image sensor 611 and the application processor 614 in the SerDes connection configuration as shown in FIG. 40.
  • the CCI-FS switch 655 of the application processor 614 supplies a start command and a write command (Slave Address + W 8bit) to the CCI processing unit 645 of the SerDes device 613 on the master side, and asserts the Scl_enb signal.
  • the CCI processing unit 645 supplies a write command to the A-PHY processing unit 641, and the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the write command. , Perform A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer and supplies a write command to the CCI processing unit 635 (Slave).
  • the CCI processing unit 635 (Slave) negates the Scl_enb signal and supplies a write command to the CCI processing unit 635 (Master).
  • the CCI processing unit 635 that communicates with the SerDes device 613 side on the master side and functions as a slave is referred to as a CCI processing unit 635 (Slave), and CCI processing that communicates with the image sensor 611 side and functions as a master.
  • the unit 635 is referred to as a CCI processing unit 635 (Master).
  • the CCI processing unit 635 (Master) transmits a start command and a write command to the image sensor 611.
  • the CCI processing unit 622 receives the start command and the write command and supplies them to the CSI2-FS processing unit 623.
  • the CSI2-FS processing unit 623 supplies an ACK response indicating that the reception is successful to the CCI processing unit 622, and the CCI processing unit 622 transmits the ACK response to the SerDes device 612 on the slave side.
  • the CCI processing unit 635 (Master) receives the ACK response and the Scl_enb signal is negated from the CCI processing unit 635 (Slave), the ACK response is supplied to the CCI-FS processing unit 636. .. After that, the CCI processing unit 635 (Slave) asserts the Scl_enb signal to the CCI processing unit 635 (Master).
  • the CCI-FS processing unit 636 supplies the ACK response to the A-PHY processing unit 631.
  • the A-PHY processing unit 631 adds an A-PHY header and an A-PHY footer to the ACK response, and performs A-PHY transfer to the SerDes device 613 on the master side.
  • the A-PHY processing unit 641 removes the A-PHY header and the A-PHY footer and supplies an ACK response to the CCI processing unit 645.
  • the CCI-FS switch 655 of the application processor 614 negates the Scl_enb signal to the CCI processing unit 645, the CCI processing unit 645 sends an ACK response to the application processor 614.
  • the CCI processing unit 652 receives the ACK response and supplies it to the CCI-FS switch 655 via the CCI-FS processing unit 653.
  • the CCI-FS switch 655 of the application processor 614 supplies the register address (RegisterAddress [7: 0]) to the CCI processing unit 645 of the SerDes device 613 on the master side, and asserts the Scl_enb signal.
  • the CCI processing unit 645 supplies the register address to the A-PHY processing unit 641, and the A-PHY processing unit 641 adds the A-PHY header and the A-PHY footer to the register address. , Perform A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer and supplies the register address to the CCI processing unit 635 (Slave).
  • the CCI processing unit 635 (Slave) negates the Scl_enb signal and supplies the register address to the CCI processing unit 635 (Master).
  • the CCI processing unit 635 (Master) transmits the register address to the image sensor 611. After that, the CCI processing unit 635 (Slave) asserts the Scl_enb signal to the CCI processing unit 635 (Master).
  • the CCI processing unit 622 receives the register address and supplies it to the CSI2-FS processing unit 623.
  • the CSI2-FS processing unit 623 supplies an ACK response indicating that the reception is successful to the CCI processing unit 622, and the CCI processing unit 622 transmits the ACK response to the SerDes device 612 on the slave side.
  • the ACK response is supplied to the CCI-FS switch 655 in the same manner as the above-mentioned processing.
  • the CSI2-FS processing unit 623 supplies an ACK response indicating that the reception is successful to the CCI processing unit 622, and the CCI processing unit 622 transmits the ACK response to the SerDes device 612 on the slave side.
  • the ACK response is supplied to the CCI-FS switch 655 in the same manner as the above-mentioned processing.
  • the CCI-FS switch 655 of the application processor 614 supplies write data (Dara0 [7: 0]) to the CCI processing unit 645 of the SerDes device 613 on the master side, and asserts the Scl_enb signal.
  • the CCI processing unit 645 supplies write data to the A-PHY processing unit 641, and the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the write data. , Perform A-PHY transfer to the SerDes device 612 on the slave side.
  • the CCI processing unit 645 receives the write data, and when the Scl_enb signal is asserted from the CCI-FS switch 655, the write data is supplied to the A-PHY processing unit 641. After that, the CSI2-FS processing unit 653 negates the Scl_enb signal to the CCI processing unit 645 according to the control of the CCI-FS switch 655.
  • the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the write data, and performs A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer and supplies write data to the CCI processing unit 635.
  • the CCI processing unit 635 negates the Scl_enb signal and supplies write data to the CCI processing unit 635 (Master).
  • the CCI processing unit 635 (Master) transmits light data to the image sensor 611. After that, the CCI processing unit 635 (Slave) asserts the Scl_enb signal to the CCI processing unit 635 (Master).
  • the CCI processing unit 622 receives the write data and supplies it to the CSI2-FS processing unit 623, and the CSI2-FS processing unit 623 writes the write data to the register 624.
  • the CSI2-FS processing unit 623 supplies an ACK response indicating that the write data has been successfully written to the CCI processing unit 622, and the CCI processing unit 622 transmits the ACK response to the SerDes device 612 on the slave side.
  • the ACK response is supplied to the CCI-FS switch 655 in the same manner as the above-mentioned processing.
  • the CCI-FS processing unit 653 transmits the extended packet footer ePF0 to the SerDes device 613 on the master side under the control of the CCI-FS switch 655.
  • the CCI processing unit 645 receives the extended packet footer ePF0, and when the Scl_enb signal is asserted from the CCI-FS switch 655, the extended packet footer ePF0 is supplied to the A-PHY processing unit 641. .. After that, the CCI-FS switch 655 negates the Scl_enb signal to the CCI processing unit 645.
  • the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the extended packet footer ePF0, and performs A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer, and supplies the extended packet footer ePF0 to the CCI-FS processing unit 636.
  • the CCI-FS processing unit 636 negates the Scl_enb signal and supplies the extended packet footer ePF0 to the CCI processing unit 635 (Master).
  • the CCI processing unit 635 (Master) transmits the extended packet footer ePF0 to the image sensor 611. After that, the CCI processing unit 635 (Slave) asserts the Scl_enb signal to the CCI processing unit 635 (Master).
  • the CSI2-FS processing unit 623 receives the extended packet footer ePF0.
  • the CSI2-FS processing unit 623 supplies an ACK response indicating that the reception is successful to the CCI processing unit 622, and the CCI processing unit 622 transmits the ACK response to the SerDes device 612 on the slave side.
  • the ACK response is supplied to the CCI-FS switch 655 in the same manner as the above-mentioned processing.
  • the CCI-FS switch 655 of the application processor 614 supplies a repeat start command and a read command (SlaveAddress + R8bit) to the CCI processing unit 645 of the SerDes device 613 on the master side, and asserts the Scl_enb signal.
  • the CCI processing unit 645 supplies the read command to the A-PHY processing unit 641, and the A-PHY processing unit 641 adds the A-PHY header and the A-PHY footer to the read command. , Perform A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer and supplies a read command to the CCI processing unit 635 (Slave).
  • the CCI processing unit 635 (Slave) negates the Scl_enb signal and supplies a read command to the CCI processing unit 635 (Master).
  • the CCI processing unit 635 (Master) transmits a repeat start command and a read command to the image sensor 611.
  • the CCI processing unit 622 receives the repeat start command and the read command, and accesses the register 624.
  • the CCI processing unit 622 transmits an ACK response indicating that the reception was successful to the SerDes device 612 on the slave side.
  • the ACK response is supplied to the CCI-FS switch 655 in the same manner as the above-mentioned processing.
  • the CCI processing unit 622 reads the read data (Data0 [7: 0]) from the register 624 and transmits it to the SerDes device 612 on the slave side.
  • the CCI processing unit 635 (Master) receives the read data and supplies it to the CCI processing unit 635 (Slave), and the CCI processing unit 635 (Slave) processes the read data in A-PHY. Supply to unit 631.
  • the A-PHY processing unit 631 adds an A-PHY header and an A-PHY footer to the read data, and performs A-PHY transfer to the SerDes device 613 on the master side.
  • the A-PHY processing unit 641 removes the A-PHY header and the A-PHY footer and supplies read data to the CCI processing unit 645, and the CCI processing unit 645 supplies the application processor 614. Send read data.
  • the CCI processing unit 652 receives the read data and supplies it to the CCI-FS switch 655 via the CCI-FS processing unit 653.
  • the CCI-FS switch 655 sends a NACK response and a stop command to the CCI processing unit 645.
  • the CCI processing unit 645 supplies the NACK response and the stop command to the A-PHY processing unit 641.
  • the A-PHY processing unit 641 adds an A-PHY header and an A-PHY footer to the NACK response and the stop command, and performs A-PHY transfer to the SerDes device 612 on the slave side.
  • the A-PHY processing unit 631 removes the A-PHY header and the A-PHY footer, and supplies the NACK response and the stop command to the CCI processing unit 635 (Slave).
  • the CCI processing unit 635 supplies the NACK response and the stop command to the CCI processing unit 635 (Master), and the CCI processing unit 635 (Master) transmits the NACK response and the stop command to the image sensor 611.
  • the CCI processing unit 622 receives the NACK response and the stop command and supplies them to the CSI2-FS processing unit 623.
  • I2C control commands such as start, repeat start, ACK response, NACK response, and stop are assigned to the 1-byte Payload by setting the Control Code Indicator of the extended packet header ePH0 to 1. Each code is shown.
  • FIG. 73 is a block diagram showing a configuration example of the configuration in which the image sensor 211 shown in FIG. 25 described above includes the CCI-FS processing unit 1001.
  • the same reference numerals are given to the configurations common to the image sensor 211 in FIG. 25, and the description thereof will be omitted.
  • the CCI-FS processing unit 1001 is arranged between the CCI slave 224 and the register 47, and the MUX units 1002-1 and 1002-2 are arranged so as to sandwich the CCI-FS processing unit 1001. There is.
  • the MUX units 1002-1 and 1002-2 transmit and receive data via the CCI-FS processing unit 1001 according to the cci_fs_en signal supplied from the register 47.
  • the MUX units 1002-1 and 1002-2 transmit and receive data without going through the CCI-FS processing unit 1001. do.
  • FIG. 74 is a block diagram showing a configuration example of the configuration in which the application processor 214 shown in FIG. 26 described above includes the CCI-FS processing unit 1101.
  • the same reference numerals are given to the configurations common to the application processor 214 of FIG. 26, and the description thereof will be omitted.
  • the CCI-FS processing unit 1101 is arranged between the CCI master 254 and the register 73, and the MUX units 1102-1 and 1102-2 are arranged so as to sandwich the CCI-FS processing unit 1101. ..
  • the MUX units 1102-1 and 1102-2 transmit and receive data via the CCI-FS processing unit 1101 according to the cci_fs_en signal supplied from the register 73.
  • the MUX units 1102-1 and 1102-2 transmit and receive data without going through the CCI-FS processing unit 1101. do.
  • Extended VC is not used in Safe CCI. (The same configuration is used to match the extension header related and Header field in MIPI.)-In the extended DT, it may be embedded in the bus command related information from the upper level, or the signal line setting from the register setting is implemented. It may be configured. -Protocol is described in I2C, but the same can be done in SDR mode of I3C.
  • FIG. 75 is a block diagram of the communication system according to the fourth embodiment.
  • a of FIG. 75 shows a communication system 1201 as a first variation
  • B of FIG. 75 shows a communication system 1201A as a second variation.
  • the communication system 1201 shown in FIG. 75A is configured by directly connecting the image sensor 1211 and the application processor 1212.
  • the ALL layer 1222 is arranged on the A-PHY layer 1221, and the CSI-2 transmission unit 1223 and the CSI extension unit 1224, and the CCI slave 1225 and the CCI extension unit 1226 are arranged on the ALL layer 1222. It is composed.
  • the image sensor 1211 can correspond to each extended standard by providing the CSI extension unit 1224 for the CSI-2 transmission unit 1223 and providing the CCI extension unit 1226 for the CCI slave 1225. Will be.
  • the ALL layer 1232 is arranged on the A-PHY layer 1231, and the CSI-2 receiver 1233 and the CSI extension 1234, and the CCI master 1235 and the CCI extension 1236 are arranged on the ALL layer 1232. It is composed.
  • the application processor 1212 can correspond to each extended standard by providing the CSI extension unit 1234 for the CSI-2 receiver unit 1233 and providing the CCI extension unit 1236 for the CCI master 1235. Will be.
  • the CSI extension may be referred to as Camera Service Extensions (CSE).
  • the communication system 1201A shown in FIG. 75B is configured by connecting the display 1213 and the application processor 1212A.
  • the application processor 1212A is configured to include a DSI-2 transmission unit 1233A and a DSI expansion unit 1234A in place of the CSI-2 reception unit 1233 and the CSI expansion unit 1234 of the application processor 1212 in FIG. 75A.
  • the other blocks have the same configuration as the application processor 1212.
  • the display 1213 has a configuration in which the ALL layer 1242 is arranged on the A-PHY layer 1241, the DSI-2 receiving unit 1243 and the DSI expansion unit 1244, and the CCI slave 1245 and the CCI expansion unit 1246 are arranged on the ALL layer 1242. It has become.
  • the display 1213 can correspond to each extended standard by providing the DSI extension unit 1244 for the DSI-2 receiving unit 1243 and providing the CCI extension unit 1246 for the CCI slave 1245. Become.
  • the DSI extension may be referred to as DisplayService Extensions (DSE).
  • the communication systems 1201 and 1201A configured in this way are high-speed data transmission for transmitting frame data including image data in one direction and low-speed command transmission for transmitting commands related to high-speed data transmission in the opposite direction (however, Sending the command itself may be referred to as command transmission, and sending a response to the command may be referred to as command transmission).
  • Sending the command itself may be referred to as command transmission
  • sending a response to the command may be referred to as command transmission
  • low-speed command transmission at least a high-speed data transmission start command requesting the start of high-speed data transmission is transmitted, but this is not the case.
  • the high-speed data transmission is faster than the low-speed command transmission, and is started in response to the reception of the high-speed data transmission start command, but it is not limited to this.
  • the directions of high-speed data transmission and low-speed command transmission are different between the communication system 1201 in which the communication partner of the application processor 1212 is the image sensor 1211 and the communication system 1201A in which the communication partner of the application processor 1212A is the display 1213. That is, in the communication system 1201, the image data is transmitted from the image sensor 1211 to the application processor 1212, and in the communication system 1201A, the image data is transmitted from the application processor 1212A to the display 1213.
  • A-PHY In the physical layer standard A-PHY, high-speed data transmission and low-speed command transmission are transmitted via a part or all of a common communication path. Further, the A-PHY enables a part or all of the power supply from the application processor 1212 to the image sensor 1211 and the power supply from the application processor 1212A to the display 1213 to be transmitted via a common communication path. Support options.
  • low-speed command transmission conforms to the CCI of the CSI-2 standard, and communication is performed based on the I2C or I3C standard.
  • low-speed command transmission shares not only the independent physical layer of I2C or I3C but also a part or all of the physical layer of D-PHY, C-PHY, and A-PHY to transmit the command. It is possible to do.
  • High-speed data transmission transmits data via part or all of the physical layer of any of the D-PHY, C-PHY, and A-PHY.
  • commands are transmitted via part or all of the physical layer of either D-PHY or C-PHY. It is possible to do. That is, high-speed data transmission and low-speed command transmission can be transmitted via a part or all of the physical layer of any one of D-PHY, C-PHY, A-PHY, I2C, and I3C.
  • USB Unified Serial Link
  • the communication systems 1201 and 1201A may be configured to include, for example, an electronic control unit (ECU). That is, the processor is not limited to the application processor 1212 as long as it can communicate with the image sensor 1211, the display 1213, and the like by direct connection or indirect connection. Further, it may be configured to include various sensors other than the image sensor 1211.
  • ECU electronice control unit
  • the communication systems 1201 and 1201A configured in this way adopt an initialization vector configuration including a nonce value transmission method or a nonce value as described below.
  • a specific common key cryptographic algorithm for example, AES-GCM / GMAC
  • AES-GCM / GMAC requires an initialization vector including a nonce value. Therefore, the initialization vector and nonce value setting rules are agreed in advance between the image sensor 1211 and the application processor 1212, or between the display 1213 and the application processor 1212A.
  • the nonce value is erroneously recognized or falsified inside the image sensor 1211, the application processors 1212 and 1201A, and the display 1213, the decryption of the encrypted image data and the authentication of the message fail thereafter. Will end up. Therefore, in order to avoid a problem that the image data is not transmitted normally, a countermeasure technique for erroneous recognition and falsification of the nonce value is required.
  • this technique is suitable for a CSI standard compliant image pickup device including an image sensor 1211 or a DSI standard compliant display device including a display 1213, and is suitable for a nonce value transmission method or an initialization vector configuration including a nonce value.
  • FIG. 76 is a block diagram showing a detailed configuration example of the image sensor 1211.
  • the image sensor 1211 includes a pixel 1301, an AD converter 1302, an image processing unit 1303, an extended mode compatible CSI-2 transmission circuit 1304, a physical layer processing unit 1305, an I2C / I3C slave 1306, a storage unit 1307, a message counter 1308, and a nonce update. It is configured to include a unit 1309 and a security unit 1310.
  • the pixels 1301, the AD converter 1302, the image processing unit 1303, the extended mode compatible CSI-2 transmission circuit 1304, the physical layer processing unit 1305, the I2C / I3C slave 1306, and the storage unit 1307 are the other embodiments described above. It is configured in the same manner as each corresponding block in the above, and a detailed description thereof will be omitted.
  • the message counter 1308 updates the message count value in the image sensor 1211 every time an extended packet satisfying a predetermined count condition is transmitted.
  • the security unit 1310 derives the session key in the image sensor 1211 and protects the first protected data (for example, the integrity calculated value calculated to protect the integrity, the confidentiality) of the data transmitted at high speed. (Encrypted data encrypted for this purpose) is generated using the session key.
  • the nonce update unit 1309 updates the nonce (nonce; number used once) value in the image sensor 1211 every time the security unit 1310 generates the first protection data.
  • the image sensor 1211 configured in this way transmits a part or all of the nonce value and a part or all of the message count value to the application processor 1212 at high speed.
  • some or all of the nonce values may be count values or random numbers.
  • a part or all of the nonce value is stored outside the extended packet header and transmitted, and the image data is stored in the packet data and transmitted.
  • the message counter 1308 and the nonce update unit 1309 may be configured separately or integrally.
  • the updates of the nonce value and the message count value can be asynchronous.
  • the degree of freedom of the nonce value and the message count value can be increased.
  • the message counter 1308 and the nonce update unit 1309 are integrally configured, the updates of the nonce value and the message count value can be synchronized. In that case, if the count value is used as the nonce value, the bit width of the message counter 1308 can be saved by sharing the message count value with a part or all of the nonce value. That is, the message counter 1308 may be a part or all of the nonce update unit 1309, and a part or all of the nonce update unit 1309 can be shared.
  • FIG. 77 is a block diagram showing a detailed configuration example of the application processor 1212.
  • the application processor 1212 includes a physical layer processing unit 1321, an extended mode compatible CSI-2 receiving circuit 1322, an I2C / I3C master 1323, a storage unit 1324, a data verification unit 1325, a security unit 1326, and a controller 1327.
  • the physical layer processing unit 1321, the extended mode compatible CSI-2 receiving circuit 1322, the I2C / I3C master 1323, and the storage unit 1324 are configured in the same manner as the corresponding blocks in the other embodiments described above, and the details thereof. The explanation is omitted.
  • the data verification unit 1325 verifies the validity of the nonce value or the message count value transmitted from the image sensor 1211 to the application processor 1212.
  • the security unit 1326 derives the session key in the application processor 1212 corresponding to the session key in the image sensor 1211, and verifies the first protection data of the image data by using the session key in the application processor 1212 (verification of completeness). ) Or decrypt.
  • the data verification unit 1325 can verify the continuity. Further, the data verification unit 1325 may be configured to include a counter, and the comparison verification may be performed by updating the count value in the same manner as the image sensor 1211. When the data to be verified is a random number, the data verification unit 1325 may verify the randomness.
  • the data verification unit 1325 includes a nonce update unit 1309 (or a message counter), which may be used to verify or decode the first protected data, or may be used to verify the verified data. ..
  • the image sensor 1211 and the application processor 1212 can be configured to be mounted on a desired mobile device.
  • the mobile device may be a portable mobile device, for example, a mobile phone, a smartphone, a digital camera, a game device, or the like.
  • the mobile device may be a propulsion device, for example, a vehicle, a robot, a drone, or the like capable of propulsion (moving, running, walking, flying, etc.).
  • the mobile device may be any of an autonomous vehicle, an autonomous robot, an autonomous drone, etc., which is equipped with an AI (Artificial Intelligence) function and can be autonomously propelled.
  • the propulsion of the propulsion device may be controlled by the user of the propulsion device, and the propulsion device may notify the user of instructions or warnings as necessary.
  • the propulsion device may be configured so that the propulsion device automatically controls the propulsion of the propulsion device.
  • the security units 1310 and 1326 may each include, for example, a security calculation unit that executes an operation for protecting image data. Therefore, the security units 1310 and 1326 use the security calculation unit to perform encryption calculation, decryption calculation, hash value calculation, message authentication code calculation, digital signature calculation, ID (identification) authentication, firmware measurement, and encryption session key establishment. , Key exchange, key update, etc. can be processed.
  • any of the security units 1310 and 1326, the nonce update unit 1309, the message counter 1308, and the data verification unit 1325 can be configured to be electrically directly connected to the memory.
  • This memory may be electrically directly connected to the register, and any of the security units 1310 and 1326, the nonce update unit 1309, the message counter 1308, and the data verification unit 1325 is electrically directly connected to the register. You may.
  • the memory may be a memory protected from either leakage or falsification of in-memory information. Such memories and registers are used as storage units 1307 and 1324, respectively.
  • Storage units 1307 and 1324 contain key information (eg, pre-shared key, private key, public key, or session key), certificate (eg, root certificate, intermediate certificate, or leaf certificate), cryptographic algorithm. Any of the information and the like may be stored.
  • the storage units 1307 and 1324 contain functional information of the image sensor 1211 or the application processor 1212, ID information of the image sensor 1211 or the application processor 1212 (for example, a source ID, a destination ID, a final destination ID, etc.), and an image sensor. Either 1211 or firmware information of the application processor 1212 may be stored.
  • session information for example, session ID
  • operation value for example, an initial value, an intermediate value, or a final value
  • initialization vector for example, a nonce value
  • message count value for example, a message count value
  • Frame number frame count value
  • the image sensor 1211 or the application processor 1212 may use multiple nonce values, count values, and completeness calculation values.
  • the image sensor 1211 or the application processor 1212 may use multiple nonce values, count values, and completeness calculation values.
  • the image sensor 1211 or the application processor 1212 may use multiple nonce values, count values, and completeness calculation values.
  • the image sensor 1211 or the application processor 1212 may use multiple nonce values, count values, and completeness calculation values.
  • the image sensor 1211 or the application processor 1212 may use multiple nonce values, count values, and completeness calculation values.
  • the requester and responder i.e., the application processor 1212 and the image sensor 1211 can have one or more communication channels depending on the session.
  • a session will be described using an example in which the application processor 1212 is a requester and the image sensor 1211 is a responder.
  • the application processor 1212 may be the responder and the image sensor 1211 may be the requester.
  • the session provides either encryption, message authentication, or both.
  • the session includes, for example, three stages: a session handshake stage, an application stage, and a session termination stage.
  • the session handshake stage starts with, for example, a key exchange request from the requester (either PSK_EXCHANGE or KEY_EXCHANGE), derives the session key such as the session secret and encryption key, and protects the communication using the session key.
  • the purpose of this stage is, for example, to build trust between the responder and the requester before either side sends the application data (eg, image data).
  • some degree of handshake integrity may be guaranteed to be synchronized with the derived handshake secret.
  • the session may end immediately and proceed to the end of the session. If the handshake is successful, for example, it ends with a finish response (FINISH_RSP or PSK_FINISH_RSP) from the responder and the application stage begins. Once the handshake is complete and all validations pass, the session reaches the application stage where either the responder or the requester may send application data.
  • FINISH_RSP finish response
  • PSK_FINISH_RSP finish response
  • the application stage ends, for example, when an end request (END_SESSION) is issued by the requester, or when an error occurs.
  • the next stage is the session termination stage.
  • the session termination stage is, for example, just an internal stage, and there is no explicit message sent or received. Both the requester and the responder discard or clean up all derived session keys, such as session secrets and encryption keys, at the end of the session. Requesters and responders may have other internal data associated with this session, and they may also wish to be cleaned up.
  • the session secret is used, for example, to derive the encryption key and salt used in the AEAD (Authenticated Encryption with Additional Data) function.
  • HMAC may be frequently used for encryption key derivation as defined in RFC 2104 and HKDF-Expand described in RFC 5869.
  • the session secret may consist of a single secret or multiple types of secrets.
  • the session key may consist of a single key or multiple types of keys.
  • FIG. 78 is a flowchart illustrating a first processing example of communication processing.
  • the extended mode compatible CSI-2 receiving circuit 1322 of the application processor 1212 has functions as a CCI host (requester) and a CSI-2 host.
  • the extended mode compatible CSI-2 transmission circuit 1304 of the image sensor 1211 has functions as a CCI device (responder) and a CSI-2 device.
  • the CCI host sends a request message to the CCI device, and upon receipt, the CCI device sends a response message to the CCI host.
  • step S501 a GET_VERSION request and a VERSION response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 acquires the SPDM (Security Protocol and Data Model) version of the endpoint.
  • step S502 a GET_CAPABILITIES request and a CAPABILITIES response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 acquires the SPDM function of the endpoint.
  • step S503 a NEGOTIATE_ALGORITHMS request and an ALGORITHMS response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 negotiates the cryptographic algorithm with the extended mode compatible CSI-2 transmitting circuit 1304.
  • step S504 a PSK_EXCHANGE request and a PSK_EXCHANGE_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 and the extended mode compatible CSI-2 transmitting circuit 1304 derive a session key for CCI such as a session secret and an encryption key.
  • step S505 a PSK_FINISH request and a PSK_FINISH_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 knows the PSK (PSK: Pre-shared key) and proves to the responder that the session key for CCI derived in step S504 is correct.
  • step S506 a PSK_EXCHANGE request and a PSK_EXCHANGE_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 and the extended mode compatible CSI-2 transmitting circuit 1304 derive a session key for CSI-2 such as a session secret and an encryption key.
  • step S507 a PSK_FINISH request and a PSK_FINISH_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 knows the PSK (PSK: Pre-shared key) and proves to the responder that the session key for CSI-2 derived in step S506 is correct.
  • the proof of the session key in steps S505 and S507 is realized by the MAC value calculated by the finished_key of the requester and the message of this session. Then, the subsequent CCI communication and CSI-2 communication are protected by using the session key derived in steps S504 and S506.
  • step S508 in the extended mode compatible CSI-2 receiving circuit 1322, the session secret for CSI-2, the session key, the algorithm, and other parameters are supplied from the CCI host to the CSI-2 host.
  • step S509 in the extended mode compatible CSI-2 transmission circuit 1304, the session secret for CSI-2, the session key, the algorithm, and other parameters are supplied from the CCI device to the CSI-2 device.
  • step S510 the CSI-2 device of the extended mode compatible CSI-2 transmission circuit 1304 transmits image data by high speed data communication to the CSI-2 host of the extended mode compatible CSI-2 reception circuit 1322. For example, high-speed data communication continues until it is time to update the session key for CSI-2.
  • step S511 in the extended mode compatible CSI-2 receiving circuit 1322, a trigger for updating the session key for CSI-2 is supplied from the CSI-2 host to the CCI host.
  • the CSI-2 device or CCI device may supply a trigger to the CCI host, or the CCI host may supply a self-trigger to the CCI host.
  • a KEY_UPDATE request and a KEY_UPDATE_ACK response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304. This updates the session key and discards some of the old session key.
  • the session key is composed of a plurality of types of keys (request direction key, response direction key, etc.), a part or all of them may be updated.
  • the KEY_UPDATE request may be issued from the responder using the GET_ENCAPSULATED_REQUEST mechanism described later.
  • step S513 the same processing as in step S512 is performed, and the KEY_UPDATE request and the KEY_UPDATE_ACK response are performed twice. As a result, the rest (all) of the old session key that was not destroyed only by the process of step S512 is destroyed.
  • step S514 in the extended mode compatible CSI-2 receiving circuit 1322, the session secret for CSI-2, the session key (after update), the algorithm, and other parameters are supplied from the CCI host to the CSI-2 host. ..
  • step S515 in the extended mode compatible CSI-2 transmission circuit 1304, the session secret for CSI-2, the session key (after update), the algorithm, and other parameters are supplied from the CCI device to the CSI-2 device. ..
  • step S516 transmission of image data by high-speed data communication is started as in step S510, and thereafter, the same processing as in steps S510 to S515 is repeated.
  • the session key for CCI and the session key for CSI-2 are different, and the session ID is different between CCI and CSI-2, and it is for CCI.
  • the session secret is different between and for CSI-2.
  • the session key for CCI and the session key for CSI-2 may be the same as in the second processing example of communication processing, and the session key for CCI and CSI-2 may be the same.
  • the session ID may be the same for CCI and CSI-2
  • the session secret may be the same for CCI and CSI-2.
  • FIG. 79 is a flowchart illustrating a second processing example of the communication processing.
  • steps S521 to S523 the same processing as in steps S501 to S503 of FIG. 78 is performed.
  • step S524 a PSK_EXCHANGE request and a PSK_EXCHANGE_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • the same session secret for CCI and the session secret for CSI-2 are derived.
  • the session key for CCI and the session key for CSI-2 can be derived from the same session secret.
  • the session key for the uplink and the session key for the downlink may be derived from the same session secret.
  • a common session key for CCI and CSI-2 may be derived from the same session secret. Even if the session for CCI and CSI-2 are the same, the session secret and session key may be different between CCI and CSI-2.
  • steps S525 to S534 the same processing as in steps S507 to S516 of FIG. 78 is performed.
  • the pre-shared key PSK key exchange scheme provides options for requesters and responders to perform mutual authentication and session key establishment with symmetric key cryptography. This option is especially useful for endpoints that do not support asymmetric key cryptography or certificate processing. Even if asymmetric key cryptography is supported, this option can also be used to speed up session key establishment. This option requires requesters and responders to know the common PSK in advance before the handshake.
  • PSK functions as a base for mutual authentication credentials and session key establishment. Therefore, only two endpoints and a potentially trusted third party that provisions the PSK to the two endpoints may know the value of the PSK.
  • the requester may be paired with multiple responders. Similarly, the responder may be paired with multiple requesters. The requester and responder pair may be provisioned with one or more PSKs.
  • the endpoint may act as a requester for one device and at the same time as a responder for another device.
  • the transport layer needs to identify the peer and establish communication between the two endpoints before PSK-based session key exchange begins.
  • PSK may be provisioned in a reliable environment, for example during a secure manufacturing process.
  • PSK may be agreed between two endpoints using a secure protocol in an unreliable environment.
  • the size of the provisioned PSK depends on the security strength requirements of the application, but should be 128 bits or more, preferably 256 bits or more.
  • endpoint functionality and supported algorithms may be communicated to the peer. Therefore, the SPDM commands GET_CAPABILITIES and NEGOTIATE_ALGORITHMS are not required during session key establishment using the PSK option.
  • PSK_EXCHANGE / PSK_EXCHANGE_RSP
  • PSK_FINISH / PSK_FINISH_RSP.
  • the PSK_EXCHANGE message tells the requester that it has the role of prompting the responder to get a specific PSK, the role of exchanging context between the requester and the responder, and that the responder knows the correct PSK and derives the correct session key. There are three roles, the role of proving.
  • FIG. 80 is a flowchart illustrating a third processing example of communication processing.
  • steps S541 to S543 the same processing as in steps S501 to S503 of FIG. 78 is performed.
  • step S544 a GET_DIGESTS request and a DIGESTS response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 acquires the certificate chain digest from the extended mode compatible CSI-2 transmitting circuit 1304.
  • step S545 a GET_CERTIFICATE request and a CERTIFICATE response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the extended mode compatible CSI-2 receiving circuit 1322 acquires a certificate chain from the extended mode compatible CSI-2 transmitting circuit 1304. It should be noted that the acquisition of the certificate chain may be executed a plurality of times.
  • step S546 a CHALLENGE request and a CHALLENGE_AUTH response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304. This allows the extended mode capable CSI-2 receiver circuit 1322 to authenticate the extended mode compatible CSI-2 transmit circuit 1304 through the challenge-response protocol.
  • step S548 the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 transmits GET_ENCAPSULATED_REQUEST to the CCI device of the extended mode compatible CSI-2 transmission circuit 1304.
  • step S549 the CCI device of the extended mode compatible CSI-2 transmission circuit 1304 transmits ENCAPSULATED_REQUEST (GET_DIGESTS request) to the CCI host of the extended mode compatible CSI-2 reception circuit 1322.
  • ENCAPSULATED_REQUEST GET_DIGESTS request
  • step S550 the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 transmits DELIVER_ENCAPSULATED_RESPONSE (DIGESTS response) to the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • DIGESTS response DELIVER_ENCAPSULATED_RESPONSE
  • the CCI device of the extended mode compatible CSI-2 transmission circuit 1304 acquires the certificate chain digest from the CCI host of the extended mode compatible CSI-2 reception circuit 1322.
  • step S551 the CCI device of the extended mode compatible CSI-2 transmission circuit 1304 transmits ENCAPSULATED_RESPONSE_ACK (GET_CERTIFICATE request) to the CCI host of the extended mode compatible CSI-2 reception circuit 1322.
  • ENCAPSULATED_RESPONSE_ACK GET_CERTIFICATE request
  • step S552 the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 transmits DELIVER_ENCAPSULATED_RESPONSE (CERTIFICATE response) to the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the CCI device may acquire a certificate chain from the CCI host (requester). It should be noted that this process may be executed a plurality of times.
  • step S553 the CCI device of the extended mode compatible CSI-2 transmission circuit 1304 transmits ENCAPSULATED_RESPONSE_ACK to the CCI host of the extended mode compatible CSI-2 reception circuit 1322.
  • step S554 a FINISH request and a FINISH_RSP response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304. This completes the handshake between the CCI host of the extended mode capable CSI-2 receive circuit 1322 and the CCI device of the extended mode capable CSI-2 transmit circuit 1304 initiated by the KEY_EXCHANGE request in step S547.
  • step S555 a GET_MEASUREMENTS request and a MEASUREMENTS response are made between the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 and the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the CCI host of the extended mode compatible CSI-2 receiving circuit 1322 acquires the measurement data from the CCI device of the extended mode compatible CSI-2 transmitting circuit 1304.
  • the GET_MEASUREMENTS request may be issued by the responder using the GET_ENCAPSULATED_REQUEST mechanism described above.
  • other requests may be issued by the responder using the GET_ENCAPSULATED_REQUEST mechanism described above.
  • the extended packet is composed of a packet header PH, an extended packet header ePH, packet data, an extended packet footer ePF, and a packet footer PF.
  • An extended packet with such a configuration can be used to send a frame start, embedded data, image data, user-defined data, frame end, write command (CCI Write), read command (CCI Read), and read response (CCI Read return value).
  • the packet header PH, the extended packet header ePH, the packet data, the extended packet footer ePF, and the packet footer PF may be partially or completely omitted. That is, a packet configuration including at least the extended packet header ePH and packet data is defined as an extended packet.
  • the extended packet footer end ePF0 contains the extended packet header ePH, packet data, and the verification packet for verifying the integrity of the extended packet footer remaining ePF1.
  • CRC32 which is a cyclic redundancy check, which is a kind of error detection code, is used.
  • the generated polynomial of CRC32 is, for example, X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 is used.
  • Packet data can be used for the verified packet.
  • an extended packet header and packet data can be used for the packet to be verified.
  • the packet data and the extended packet footer remainder (ePF1) can be used for the verified packet.
  • the extended packet header, packet data, and extended packet footer remainder (ePF1) can be used for the verified packet. At least the packet data is protected by such a verified packet.
  • the image sensor 1211 includes a second protection unit (for example, CRC calculation unit) that generates second protection data (for example, CRC calculation value) of packet data without using a session key.
  • the second protected data is stored, for example, in the extended packet footer ePF for high-speed data transmission. That is, in the frame start, in the embedded data, in the image data, in the user-defined data, in the frame end, in the write command (CCIWrite), in the read command (CCIRead), in the read response (CCIRead return value), etc. It is stored in one of.
  • the extended packet footer ePF1 and ePF0 may have a security feature defined. That is, the image sensor 1211 may include a security calculation unit (for example, a encryption calculation unit, a decryption calculation unit, a hash value calculation unit, a message authentication code calculation unit, and a digital signature calculation unit). Then, the result of the security operation (for example, hash value, message authentication code, digital signature) may be stored in the extended packet footer ePF.
  • a security calculation unit for example, a encryption calculation unit, a decryption calculation unit, a hash value calculation unit, a message authentication code calculation unit, and a digital signature calculation unit.
  • the result of the security operation may be stored only in the extended packet footer ePF1 instead of in the extended packet footer ePF0, or outside the extended packet footer instead of inside the extended packet footer (eg, embedded). In the data or in the read response).
  • the security calculation unit included in the image sensor 1211 is included in the security unit 1310.
  • MAC MessageAuthenticationCode
  • GMAC GaloisMAC
  • CMAC Cipher-basedMAC
  • HMAC Hash-basedMAC
  • AES-GMAC AES-GMAC
  • AES-CMAC SHA2-HMAC
  • SHA3-HMAC SHA3-HMAC
  • AES Advanced Encryption Standard
  • SHA Secure Hash Algorithm
  • the block length of AES is 128 bits
  • the key length of AES is selected from 128 bits, 192 bits, and 256 bits.
  • the packet data is used as a verified packet, or the extended packet header and packet data are used as a verified packet, such as a hash (particularly cryptographic hash) value, a message authentication code, or a digital signature.
  • Security information may be stored. In that case, it is possible to make it more resistant to malicious tampering from an attacker.
  • the CRC of the cyclic redundancy check which is a kind of error detection code, may be stored in the extended packet footer "ePF1" or "ePF1 and ePF0".
  • 1 protection data, 2nd protection data) may be stored in the extended packet footer.
  • CRC can be used for functional safety and its integrity can be used to prevent undetected hardware failures.
  • the integrity of security features can be used to detect intentional interference or attacks. That is, the security calculation unit calculates the integrity calculation value based on the cryptography, and the CRC calculation unit calculates the integrity calculation value not based on the cryptography.
  • the application processor 1212 can verify the integrity of the verified packet, for example, by using the verification packet.
  • it is determined to be abnormal for example, transmission of a request message requesting retransmission of a packet including a packet to be verified and a packet for verification, transmission of a request message inquiring to the image sensor 1211 whether the image sensor 1211 is abnormal, or an image sensor. Any processing such as sending a request message requesting the image sensor 1211 to stop some or all of the functions of 1211, stopping the propulsion of the propulsion device, changing the propulsion control of the propulsion device, and changing the priority data used for the propulsion control. May be executed.
  • the integrity calculation value is stored in, for example, embedded data, image data (packet data), user-defined data, write command, read command, read response, or the like. You may do it. In that case, the integrity calculation value may not be stored in the extended packet footer. For example, the integrity calculation value may be stored in the frame unit of the image instead of the line unit of the image, in which case the integrity is calculated efficiently. In that case, the integrity calculation value is stored, for example, in the embedded data or the read response after the image data is transmitted.
  • the extended packet shown in FIG. 81A is an extended packet in which the extended packet header ePH, packet data, and the remaining ePF1 of the extended packet footer are used as verified packets, and the calculated values obtained by the security calculation using the verified packet are stored.
  • This is a configuration example in which ePF0 at the end of the footer is used as a verification packet.
  • the packet data and the remaining ePF1 of the extended packet footer are used as the verified packet, and the extended packet footer tail ePF0 containing the calculated value obtained by the security calculation using the verified packet is used for verification. It is a configuration example as a packet.
  • the extended packet header ePH and the packet data are used as the verified packet, and the extended packet footer end ePF0 in which the calculated value obtained by the security calculation using the verified packet is stored is the verification packet. It is a configuration example.
  • the extended packet shown in FIG. 81D has a configuration example in which the packet data is used as a verified packet and the extended packet footer end ePF0 in which the calculated value obtained by the security calculation using the verified packet is stored is used as a verification packet. It has become.
  • the extended packet header ePH and the packet data are used as the verified packet, and the extended packet footer remaining ePF1 in which the calculated value obtained by the security calculation using the verified packet is stored is the verification packet. It is a configuration example.
  • the extended packet shown in FIG. 82B is an extended packet footer remaining ePF1 and an extended packet footer in which the extended packet header ePH and the packet data are used as the verified packet and the calculated values obtained by the security calculation using the verified packet are stored.
  • This is a configuration example with ePF0 at the end as a verification packet.
  • the extended packet shown in FIG. 82C has a configuration example in which the packet data is used as a verified packet and the remaining ePF1 in the extended packet footer in which the calculated value obtained by the security calculation using the verified packet is stored is used as a verification packet. It has become.
  • the packet data is used as the verified packet, and the extended packet footer remaining ePF1 and the extended packet footter tail ePF0 in which the calculated value obtained by the security calculation using the verified packet is stored are used for verification. It is a configuration example as a packet.
  • FIG. 83 is a flowchart illustrating the data verification process performed in the application processor 1212.
  • step S601 when the extended packet transmitted from the image sensor 1211 is received by the extended mode compatible CSI-2 receiving circuit 1322, the security unit 1326 receives the verified packet of the extended packet. Then, when the security unit 1326 completes the reception of the verified packet, the process proceeds to step S602. Even if the reception of all the verified packets is not completed, the process may proceed to step S602 as long as the reception of at least a part (for example, 128 bits) that can start the calculation of the security calculation is completed. .. In that case, the rest of the verified packets are continuously received until all the verified packets have been received.
  • a part for example, 128 bits
  • step S602 the security unit 1326 starts the calculation of the calculated value obtained by the security calculation using at least a part of the verified packet received in step S601.
  • step S603 the security unit 1326 receives the verification packet transmitted from the image sensor 1211 via the extended mode compatible CSI-2 reception circuit 1322. Then, when the security unit 1326 completes the reception of the verification packet and acquires the received value (calculated value calculated by the image sensor 1211) stored in the verification packet, the process proceeds to step S604.
  • step S604 the security unit 1326 completes the calculation of the calculated value obtained by the security calculation using the verified packet started in step S602 (that is, receives all of the verified packets and calculates using all of them. Is completed), the process proceeds to step S605.
  • step S605 the security unit 1326 determines whether or not the received value received in step S603 and the calculated value obtained in step S604 match.
  • step S605 If the security unit 1326 determines in step S605 that the received value and the calculated value match, the process proceeds to step S606. In this case, in step S606, the security unit 1326 determines that the extended packet received by the extended mode compatible CSI-2 receiving circuit 1322 is normal, and the process is terminated.
  • step S605 determines that the received value and the calculated value do not match
  • the process proceeds to step S607.
  • step S607 the security unit 1326 determines that an abnormality has occurred in the extended packet received by the extended mode compatible CSI-2 receiving circuit 1322, and the process is terminated.
  • the image sensor 1211 stores the message count value counted by the message counter 1308 in the extended packet header or the extended packet footer in order to ensure functional safety (for example, detecting missing messages and taking appropriate measures). can do.
  • the message counter 1308 included in the image sensor 1211 can store an incremented or decremented message count value each time a message is transmitted from the image sensor 1211.
  • the image sensor 1211 may be configured to provide an independent message counter 1308 for each virtual channel (virtual channel), or may be configured to provide a message counter 1308 common to the virtual channels.
  • the message counter 1308 sets the message count value to the initial value (for example, 0 or the maximum value) in the first packet including the extended packet header of a virtual channel, and each time the data including the extended packet header of a virtual channel is transmitted. To increment or decrement the message count value. Further, the message counter 1308 counts, for example, when data including the extended packet header is transmitted, the next time data including the extended packet header is transmitted without incrementing or decrementing the message count value. resume.
  • the initial value for example, 0 or the maximum value
  • the message counter 1308 may continue counting regardless of the frame start or frame end. Then, when the message count value is canted to a specified value (for example, maximum value or 0), the message counter 1308 returns the next message count value to the initial value (for example, 0 or maximum value) and counts. .. A part of the nonce value may be stored in a part of the extended packet header.
  • the receiving side image sensor 1211 or application processor 1212
  • the receiving side can immediately detect the missing message.
  • a DoS Delivery-of-service
  • the receiving side can start responding to them in a short time, for example, high-speed movement or high-speed movement is possible. It is particularly suitable for propulsion devices.
  • write instruction (CCI Write), read instruction (CCI Read), or read response (CCI Read return value) may also be configured to store the message count value or the integrity operation value, and is an extended packet. Elements related to may be applied. In that case, it becomes possible to support functional safety and protect the integrity of the write command, read command, or read response.
  • FIG. 84 is a flowchart illustrating a message count value transmission process in which the image sensor 1211 transmits a message count value.
  • step S611 the message counter 1308 initializes the message count value and sets it to 0.
  • step S612 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet header, and the process waits until it is determined to transmit the extended packet header. Then, if it is determined in step S612 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet header, the process proceeds to step S613.
  • step S613 the extended mode compatible CSI-2 transmission circuit 1304 acquires a message count value from the message counter 1308 and stores it in the extended packet header.
  • step S614 the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet header storing the message count value in step S613.
  • step S615 the message counter 1308 determines whether or not the message count value has been counted up to the maximum value. If the message counter 1308 determines in step S615 that the message count value has not been counted up to the maximum value, the process proceeds to step S616.
  • step S616 the message counter 1308 increments the message count value. After that, the process returns to step S612, and the same process is repeated thereafter.
  • step S615 determines in step S615 that the message count value has been counted up to the maximum value
  • the process returns to step S611 to initialize the message count value, and then the same process is repeated. Will be done.
  • the message count value may be initialized and set to the maximum value for decrementing.
  • the image sensor 1211 can include additional information such as device setting information in the data stream by using the embedded data.
  • the embedded data is composed of one or more lines and includes any of the configuration data of the image sensor 1211, standard-compliant register values, vendor-specific register values, frame format explanations, statistical values, and the like. Is possible.
  • FIG. 85A the embedded data of one line is shown, the embedded data format code is followed by the embedded data of a desired amount of data, and the padding character is arranged in the rest. It has a structure like that.
  • the embedded data includes information related to image data or user-defined data. Therefore, the image data or the user-defined data may be compressed data, but the embedded data is preferably uncompressed data (uncompressed data). Therefore, when data compression is used, compressed data (image data or user-defined data) and uncompressed data (embedded data) are mixed in the frame of high-speed data transmission.
  • the number of rows of embedded data can be specified by part of the description in the frame format in the first embedded data row in the frame.
  • the line length of the embedded data may be shorter than the line length of the image data or the user-defined data, but it is not preferable to exceed the line length of the image data or the user-defined data, and the line length of the image data or the user-defined data is used. It is desirable that they are the same.
  • the first pixel value of the embedded data may indicate the format used for the embedded data.
  • the embedded data is stored either between the frame start and the first image data or user-defined data, and between the last image data or user-defined data and the frame end. However, the embedded data between the last image data or user-defined data and the frame end may be omitted.
  • FIG. 86 shows an example of the data structure of image data for two frames transmitted from the image sensor 1211.
  • the frame start (VC2 FS) of the second virtual channel is transmitted following the read instruction and the read response. ..
  • the first embedded data (VC1EmbData) of the first virtual channel and the first embedded data (VC2EmbData) of the second virtual channel are transmitted.
  • one frame of image data (VC1ImgData) of the first virtual channel and user-defined data (VC2UDData) of the second virtual channel are transmitted.
  • the second embedded data (VC1EmbData) of the first virtual channel and the second embedded data (VC2EmbData) of the second virtual channel are transmitted.
  • the frame end (VC1 FE) of the first virtual channel is transmitted
  • the frame end (VC2 FE) of the second virtual channel is transmitted following the read instruction and the read response.
  • FIG. 86 shows an example in which the message count value is shared between the first virtual channel and the second virtual channel.
  • the sage counters independent of the first virtual channel and the second virtual channel may be provided.
  • the user-defined data may be image data or the like.
  • part or all of the nonce value is stored, for example, within the period from the frame start to the frame end, or within the period from the frame end to the frame start (frame blanking period). Further, the nonce value can be stored in the period from the frame start to the frame end, for example, in the embedded data, in the image data, in the non-image data, and in the line blanking period. It may also be stored in a second virtual channel.
  • the embedded data is data in which attributes representing image data, information related to image data (metadata), and the like are stored.
  • high-speed data transmission and low-speed command transmission can be frequency-separated by a filter, so if there is no problem with power consumption, part or all of the transmission may be duplicated (parallel execution).
  • a part or all of the nonce value may be transmitted every multiple frames, but it is preferable that the nonce value is transmitted every frame for reasons such as missing frames.
  • FIG. 87 is a flowchart illustrating an image data transmission process in which the image sensor 1211 transmits image data.
  • step S621 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not a high-speed data transmission start command has been received, and waits until it is determined that the high-speed data transmission start command has been received. To. Then, if it is determined in step S621 that the extended mode compatible CSI-2 transmission circuit 1304 has received the high-speed data transmission start command, the process proceeds to step S622.
  • step S622 the pixel 1301 starts imaging, and the image data output from the pixel 1301 is supplied to the extended mode compatible CSI-2 transmission circuit 1304 via the AD converter 1302 and the image processing unit 1303.
  • step S623 the extended mode compatible CSI-2 transmission circuit 1304 transmits the frame start of the first virtual channel.
  • step S624 the extended mode compatible CSI-2 transmission circuit 1304 transmits the frame start of the second virtual channel.
  • step S625 the extended mode compatible CSI-2 transmission circuit 1304 transmits the first embedded data of the first virtual channel.
  • step S626 the extended mode compatible CSI-2 transmission circuit 1304 transmits the first embedded data of the second virtual channel.
  • step S627 the extended mode compatible CSI-2 transmission circuit 1304 transmits the image data of the first virtual channel.
  • step S628 the extended mode compatible CSI-2 transmission circuit 1304 transmits the user-defined data of the second virtual channel.
  • step S629 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not the transmission of image data for one frame is completed.
  • step S629 If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S629 that the transmission of image data for one frame has not been completed, the process returns to step S627, and the same process is repeated thereafter. .. On the other hand, if the extended mode compatible CSI-2 transmission circuit 1304 determines in step S629 that the transmission of image data for one frame is completed, the process proceeds to step S630.
  • step S630 the extended mode compatible CSI-2 transmission circuit 1304 transmits the second embedded data of the first virtual channel.
  • step S631 the extended mode compatible CSI-2 transmission circuit 1304 transmits the second embedded data of the second virtual channel.
  • step S632 the extended mode compatible CSI-2 transmission circuit 1304 transmits the frame end of the first virtual channel.
  • step S633 the extended mode compatible CSI-2 transmission circuit 1304 transmits the frame end of the second virtual channel.
  • step S634 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not a high-speed data transmission end command has been received.
  • step S634 If it is determined in step S634 that the extended mode compatible CSI-2 transmission circuit 1304 has not received the high-speed data transmission end command, the process returns to step S622, and the same process is repeated thereafter. On the other hand, if it is determined in step S634 that the extended mode compatible CSI-2 transmission circuit 1304 has received the high-speed data transmission end command, the process is terminated.
  • the imaging start may be continuously executed until the high-speed data transmission end command is received, or may be executed each time the high-speed data transmission start command is received.
  • FIG. 88 is a flowchart illustrating the integrity calculation value transmission process in which the image sensor 1211 transmits the integrity calculation value.
  • step S641 the security unit 1310 derives the session key of the first virtual channel.
  • step S642 the security unit 1310 derives the session key of the second virtual channel.
  • step S643 the message counter 1308 initializes the upper count value of the message count value and sets it to 0.
  • step S644 the message counter 1308 initializes the lower count value of the message count value and sets it to 0.
  • step S645 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S646.
  • step S646 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet of the first virtual channel.
  • step S646 If it is determined in step S646 that the extended mode compatible CSI-2 transmission circuit 1304 does not transmit the extended packet of the first virtual channel, the process returns to step S645, and the same process is repeated thereafter. On the other hand, if it is determined in step S646 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet of the first virtual channel, the process proceeds to step S647.
  • step S647 the security unit 1310 calculates the integrity calculation value of the first virtual channel using the session key of the first virtual channel derived in step S641.
  • step S648 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S647 in the extended packet of the first virtual channel, and transmits the extended packet of the first virtual channel. ..
  • step S649 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet of the second virtual channel, and performs processing until it is determined that the extended packet of the second virtual channel is transmitted. stand by. Then, if it is determined in step S649 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet of the second virtual channel, the process proceeds to step S650.
  • step S650 the security unit 1310 calculates the integrity calculation value of the second virtual channel using the session key of the second virtual channel derived in step S642.
  • step S651 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S650 in the extended packet of the second virtual channel, and transmits the extended packet of the second virtual channel. ..
  • step S652 the message counter 1308 determines whether or not the lower count value of the message count value has been counted up to the maximum value.
  • step S652 determines in step S652 that the lower count value of the message count value has not been counted up to the maximum value, the process proceeds to step S653.
  • step S653 the message counter 1308 increments the lower count value of the message count value, and then the process returns to step S645, and the same process is repeated thereafter.
  • step S652 determines in step S652 that the lower count value of the message count value has been counted up to the maximum value.
  • step S654 the message counter 1308 increments the higher count value of the message count value, and then the process returns to step S644, and the same process is repeated thereafter.
  • step S645 if the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S655.
  • step S655 the security unit 1310 discards or cleans up the session key of the first virtual channel and the session key of the second virtual channel, and then the process is terminated.
  • FIG. 89 shows a first modification of the data structure of the image data.
  • the message count value common to the first virtual channel and the second virtual channel is used.
  • the session key or the message counter may be shared between the first virtual channel and the second virtual channel.
  • the image data or the embedded data may be replaced with other data.
  • the embedded data may be replaced with image data.
  • the message counters may be standardized by counting across virtual channels (VC).
  • FIG. 90 shows a second modification of the data structure of the image data.
  • independent message count values are used for Write (CCI write instruction), Read1 (CCI read instruction), and Read2 (CCI read response).
  • FIG. 91 shows a third modification of the data structure of the image data.
  • independent message count values are provided for the CCI uplink (Write and Read1) and the CCI downlink (Read2). That is, the message count value may be shared between Write (CCI write instruction) and Read1 (CCI read instruction).
  • the nonce value is, for example, number used once for the same session key, it is used as a part or all of the initialization vector of the encryption operation or the decryption operation using the session key. Therefore, the nonce used by the image sensor 1211 for the encryption calculation is transmitted from the image sensor 1211 and received by the application processor 1212, so that the application processor 1212 can obtain the nonce value required for the decryption calculation.
  • the image sensor 1211 transmits the nonce value before transmitting the image data.
  • some or all of the nonce values corresponding to the image data in a certain frame are the first image data in a certain frame after the last image data in the frame has been transmitted one before.
  • the application processor 1212 which is the master of low-speed command transmission, has a frame start, embedded data, image data, user-defined data, frame end, etc. transmitted by high-speed data transmission from the image sensor 1211 which is a slave of low-speed command transmission.
  • a read command requesting that the nonce value in the image sensor 1211 be read to the application processor 1212 may be transmitted by low-speed command transmission in response to the reception start or reception completion of any of the above.
  • the image sensor 1211 receives the read instruction transmitted from the application processor 1212, and transmits the corresponding nonce value by high-speed data transmission. Then, when the application processor 1212 receives the read response, the image sensor 1211 can notify the application processor 1212 of the nonce value.
  • This read instruction corresponds to, for example, Read / Write Read in the I2C or I3C standard.
  • the read response corresponds to the Read return value.
  • a timer may be provided that waits for a predetermined time between the time when the application processor 1212 receives the high-speed data transmission and the time when the read instruction is transmitted.
  • the integrated circuit-to-integrated serial bus is a serial single - ended computer bus intended for use when connecting low-speed peripherals to the application processor 1212.
  • the I2C bus is a multi-master bus in which each device can act as a master and a slave for various messages transmitted on the I2C bus.
  • the I2C bus can transmit data using only two bidirectional open-drain connectors, including a serial data line (SDA) and a serial clock line (SCL). Those connectors usually include signal lines terminated by pull-up resistors.
  • SDA serial data line
  • SCL serial clock line
  • the protocol that manages the operation of the I2C bus defines the basic types of messages, each of which starts with START and ends with STOP.
  • the I2C bus uses 7-bit addressing to specify two types of nodes.
  • the master node is a node that generates a clock and starts communication with the slave node.
  • a slave node is a node that receives a clock and responds when it is addressed by the master.
  • the I2C bus is a multi-master bus, which means that any number of masternodes can exist.
  • the master and slave roles may change between messages (ie, after a STOP is sent).
  • one-way transmission may be used to capture an image from a sensor and transmit such image data to a memory in the baseband processor, while with the baseband processor.
  • Sensors and other peripheral devices may exchange control data.
  • the camera control interface (CCI) protocol may be used for such control data between the baseband processor and the image sensor (or one or more slave nodes).
  • the CCI protocol may be implemented via the I2C serial bus between the image sensor and the baseband processor.
  • Traditional I2C systems, or camera control interface-based camera systems have a separate interrupt for each slave device to allow the slave node to indicate to the master node that the slave node wants to use the bus. Use the (IRQ) line.
  • the I3C communication standard is a standard for communicating via two signal lines, an SDA line for transmitting data and an SCL line for transmitting a clock signal.
  • devices such as processors
  • devices are classified into devices that operate as masters or slaves and devices that operate only as slaves.
  • the processor operates as a master or slave
  • the sensor operates only as a slave.
  • the master is a device that controls the slave
  • the slave is a device that operates according to the control of the master.
  • a plurality of slaves can be connected to one master.
  • a plurality of masters can transmit signals to one slave, and this communication is hereinafter referred to as "multi-master communication".
  • slaves can communicate with each other without going through a master, and this communication is called “peer-to-peer communication”.
  • the slave can interrupt the communication while the SDA line is communicating (busy) due to the communication of another device, and this interrupt is an "in-band interrupt". Is called.
  • signals transmitted by multiple devices at the same time may collide on the SDA line.
  • the device in I3C has a function of detecting a collision and arbitrating between the devices.
  • the nonce-related information is transmitted according to the timing determined by the image sensor 1211 by executing the interrupt at the timing determined by the image sensor 1211.
  • the image sensor 1211 may trigger a read command by an in-band interrupt and transmit a read response accordingly, or may omit the read command by an in-band interrupt and transmit a read response.
  • FIG. 92 is a flowchart illustrating a first processing example of the integrity calculation value processing in which the image sensor 1211 transmits the integrity calculation value.
  • step S661 the security unit 1310 derives the session key.
  • step S662 the message counter 1308 initializes the message count value and sets it to 0.
  • step S663 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S664.
  • step S664 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet.
  • step S664 determines in step S664 that the extended packet is not transmitted, the process returns to step S663, and the same process is repeated thereafter. On the other hand, if it is determined in step S664 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet, the process proceeds to step S665.
  • step S665 the security unit 1310 calculates the integrity calculation value using the message count value.
  • step S666 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S665 in the extended packet and transmits the extended packet.
  • step S667 the message counter 1308 determines whether or not the message count value has been counted up to the maximum value. If the message counter 1308 determines in step S667 that the message count value has not been counted up to the maximum value, the process proceeds to step S668.
  • step S668 the message counter 1308 increments the message count value. After that, the process returns to step S663, and the same process is repeated thereafter.
  • step S667 determines in step S667 that the message count value has been counted up to the maximum value.
  • the process proceeds to step S669.
  • step S669 after the security unit 1310 updates the session key, the process returns to step S662, and the same process is repeated thereafter.
  • step S663 when the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S670.
  • step S670 the security unit 1310 discards or cleans up the session key, and then the process is terminated.
  • the message count value is incremented by 1 each time an extended packet is transmitted, so the message is 2 16 times.
  • the count value goes around. For example, when transmitting 4K data with a frame rate of 60 fps and a pixel count of 4096 x 2160 (horizontal x vertical), an extended packet of 2163 lines, which is the sum of 3 lines of frame start, embedded data, and frame end, is contained in one frame. Assuming that it is sent by, the message count value goes around in (2 16 ) / (60 ⁇ 2163) ⁇ 0.5 seconds.
  • the image sensor 1211 computes a MAC value such as the Galois Message Authentication Code (GMAC) value of a message with the same session key and the same initialization vector value
  • GMAC Galois Message Authentication Code
  • the attacker sends the message and the MAC value.
  • the session key can be easily obtained by calculating the simultaneous equations of MAC values.
  • the attacker can freely falsify the MAC value, so that attacks such as message spoofing, falsification, and replay are possible. Therefore, when the message count value is used as the variable part of the initialization vector, that is, the nonce value, it is necessary to update the session key before the message count value goes around. For example, by utilizing the period of frame blanking or line blanking, the session key may be updated before the nonce value goes around (rolls over).
  • FIG. 93 is a flowchart illustrating a second processing example of the integrity calculation value processing in which the image sensor 1211 transmits the integrity calculation value.
  • step S681 the security unit 1310 derives the session key.
  • step S682 the message counter 1308 initializes the upper count value of the message count value and sets it to 0.
  • step S683 the message counter 1308 initializes the lower count value of the message count value and sets it to 0.
  • step S684 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S685.
  • step S685 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet.
  • step S685 If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S685 that the extended packet is not transmitted, the process returns to step S684, and the same process is repeated thereafter. On the other hand, if it is determined in step S685 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet, the process proceeds to step S686.
  • step S686 the security unit 1310 calculates the integrity calculation value using the upper count value and the lower count value of the message count value.
  • step S687 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S686 in the extended packet and transmits the extended packet.
  • step S688 the message counter 1308 determines whether or not the lower count value of the message count value has been counted up to the maximum value. If the message counter 1308 determines in step S688 that the lower count value of the message count value has not been counted up to the maximum value, the process proceeds to step S689.
  • step S689 the message counter 1308 increments the lower count value of the message count value. After that, the process returns to step S684, and the same process is repeated thereafter.
  • step S688 determines in step S688 that the lower count value of the message count value has been counted up to the maximum value.
  • step S690 the message counter 1308 increments the higher count value of the message count value, and then the process returns to step S683, and the same process is repeated thereafter.
  • step S684 if the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S691.
  • step S691 the security unit 1310 discards or cleans up the session key, and then the process ends.
  • the message count value is used as a part of the initialization vector, that is, a part of the nonce value (for example, the low count value), the rest of the nonce value (for example, the high count value) is also used in combination with the session. It is possible to eliminate the need to update the key or reduce the frequency of updating the session key.
  • the key exchange is required before transmitting the protected image data again, so that the session key is changed accordingly. Will be updated. For example, it is unlikely that the power supply will not be restarted for 6 days or more for general in-vehicle use, and it is extremely unlikely that the power supply will not be restarted for 4 years or more. Is. Of course, this is not the case, and a bit width wider than that may be used.
  • the power may be turned off at the time of refueling, and even if the vehicle is a refueling type or rechargeable vehicle, if the power is turned off at the time of vehicle inspection, the protected image data is transmitted again.
  • the session key is updated accordingly because the key exchange is required before doing so.
  • IoT Internet of Things or Intelligence of Things
  • FIG. 94 is a flowchart illustrating a third processing example of the integrity calculation value processing in which the image sensor 1211 transmits the integrity calculation value.
  • step S701 the security unit 1310 derives the session key.
  • step S702 the message counter 1308 initializes the frame count value and sets it to 1.
  • step S703 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S704.
  • step S704 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet.
  • step S704 If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S704 that the extended packet is not transmitted, the process returns to step S703, and the same process is repeated thereafter. On the other hand, if it is determined in step S704 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet, the process proceeds to step S705.
  • step S705 the security unit 1310 prepares the calculation of the integrity calculation value performed by using the frame count value.
  • step S706 the extended mode compatible CSI-2 transmission circuit 1304 transmits an extended packet.
  • step S707 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not transmission other than the frame end in the frame is completed. If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S707 that transmission other than the frame end in the frame has not been completed, the process returns to step S703, and the same process is repeated thereafter. .. On the other hand, if the extended mode compatible CSI-2 transmission circuit 1304 determines in step S707 that transmission other than the frame end in the frame is completed, the process proceeds to step S708.
  • step S708 the security unit 1310 completes the calculation of the integrity calculation value performed using the frame count value.
  • step S709 the extended mode compatible CSI-2 transmission circuit 1304 transmits the integrity calculation value together with the frame end.
  • step S710 the message counter 1308 determines whether or not the frame count value has been counted up to the specified value. If the message counter 1308 determines in step S710 that the frame count value has not been counted up to the specified value, the process proceeds to step S711.
  • step S711 the message counter 1308 increments the frame count value. After that, the process returns to step S703, and the same process is repeated thereafter.
  • step S710 determines in step S710 that the frame count value has been counted up to the specified value. If the message counter 1308 determines in step S710 that the frame count value has been counted up to the specified value, the process proceeds to step S712. In step S712, after the security unit 1310 updates the session key, the process returns to step S702, and the same process is repeated thereafter.
  • step S703 when the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S713.
  • step S713 the security unit 1310 discards or cleans up the session key, and then the process is terminated.
  • the image sensor 1211 may calculate the completeness calculation value for each image frame and transmit it all at once.
  • the integrity calculation value in that case is stored and transmitted in the embedded data after the image data, the user-defined data, or the read response.
  • the frame start or frame end may include, for example, a 16-bit frame number. This frame number may be the same at the frame start and the frame end corresponding to a predetermined frame. When using a 16-bit frame number, it is desirable, but not limited to, to be non-zero to distinguish it from use cases where the frame number does not work and remains set to zero.
  • the frame number is incremented by 1 or 2 for each frame start packet with the same virtual channel, and is reset to 1 periodically. For example, if the image frame is masked (ie, not transmitted) due to corruption, the frame number may be incremented by two.
  • increments of 1 or 2 may be freely mixed in the sequence of frame numbers, if necessary.
  • the frame number goes around in 2 16-1 times. If the frame rate is 60 fps, the frame number goes around in (2 16 -1) ⁇ 60 ⁇ 18 minutes.
  • the image sensor 1211 computes a MAC value such as the Galois Message Authentication Code (GMAC) value of a message with the same session key and the same initialization vector value
  • GMAC Galois Message Authentication Code
  • the attacker sends the message and the MAC value.
  • the session key can be easily obtained by calculating the simultaneous equations of MAC values.
  • the attacker can freely falsify the MAC value, so that attacks such as message spoofing, falsification, and replay are possible.
  • the session key when the frame number is used as an initialization vector, that is, a nonce value, it is necessary to update the session key before the frame number goes around. For example, by utilizing the period of frame blanking or line blanking, the session key may be updated before the nonce value goes around (rolls over).
  • FIG. 95 is a flowchart illustrating a fourth processing example of the integrity calculation value processing in which the image sensor 1211 transmits the integrity calculation value.
  • step S721 the security unit 1310 derives the session key.
  • step S722 the message counter 1308 initializes the upper count value of the frame count value and sets it to 0.
  • step S723 the message counter 1308 initializes the lower count value of the frame count value and sets it to 1.
  • step S724 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S725.
  • step S725 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet.
  • step S725 If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S725 that the extended packet is not transmitted, the process returns to step S724, and the same process is repeated thereafter. On the other hand, if it is determined in step S725 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet, the process proceeds to step S726.
  • step S726 the security unit 1310 prepares the calculation of the integrity calculation value performed by using the upper count value and the lower count value of the frame count value.
  • step S727 the extended mode compatible CSI-2 transmission circuit 1304 transmits an extended packet.
  • step S728 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not transmission other than the frame end in the frame is completed. If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S728 that transmission other than the frame end in the frame has not been completed, the process returns to step S724, and the same process is repeated thereafter. .. On the other hand, if the extended mode compatible CSI-2 transmission circuit 1304 determines in step S728 that transmission other than the frame end in the frame is completed, the process proceeds to step S729.
  • step S729 the security unit 1310 completes the calculation of the integrity calculation value performed using the upper count value and the lower count value of the frame count value.
  • step S730 the extended mode compatible CSI-2 transmission circuit 1304 transmits the integrity calculation value together with the frame end.
  • step S731 the message counter 1308 determines whether or not the lower count value of the frame count value has been counted up to the specified value. If the message counter 1308 determines in step S731 that the lower count value of the frame count value has not been counted up to the specified value, the process proceeds to step S732.
  • step S732 the message counter 1308 increments the lower count value of the frame count value. After that, the process returns to step S724, and the same process is repeated thereafter.
  • step S731 determines in step S731 that the lower count value of the frame count value has been counted up to the specified value.
  • the process proceeds to step S733.
  • the security unit 1310 increments the higher count value of the frame count value, then returns to step S723, and the same process is repeated thereafter.
  • step S724 if the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S734.
  • step S734 the security unit 1310 discards or cleans up the session key, and then the process ends.
  • the session key is also used by using the rest of the nonce value (for example, the upper count value). You can eliminate the need to update the session key or reduce the frequency of updating the session key.
  • the key exchange is required before transmitting the protected image data again, so that the session key is changed accordingly. Will be updated. For example, in general in-vehicle use, it is unlikely that the power supply will not be restarted for 3 days or more, and it is extremely unlikely that the power supply will not be restarted for 2 years or more. It is enough. Of course, this is not the case, and a bit width wider than that may be used.
  • the power may be turned off at the time of refueling, and even if the vehicle is a refueling type or rechargeable vehicle, if the power is turned off at the time of vehicle inspection, the protected image data is transmitted again.
  • the session key is updated accordingly because the key exchange is required before doing so.
  • IoT Internet of Things or Intelligence of Things
  • Encryption and decryption will be described with reference to FIGS. 96 to 100.
  • FIG. 96 shows an example of an initial counter block in which an initialization vector is stored.
  • the 128-bit initial counter block is used for encryption by AES (Advanced Encryption Standard) -GCM (Galois / Counter Mode) or AES-GMAC (Galois Message Authentication Code), or is used for message authentication.
  • AES Advanced Encryption Standard
  • GCM Galois / Counter Mode
  • AES-GMAC Galois Message Authentication Code
  • the GHASH function as shown in FIG. 97 can be used for encryption of the initial counter block.
  • the GCTR function as shown in FIG. 98 can be used for encryption of the initial counter block.
  • the initialization vector is encrypted using the GCM-AE (Authenticated Encryption) function having an authenticated encryption function as shown in FIG. 99, and the GCM-AD (Authenticated) having an authenticated decryption function as shown in FIG. 100.
  • Decryption Used for decryption using the function. However, it may be used only for one of the functions of encryption (decryption) and message authentication.
  • the plaintext P is encrypted, and as a result, the encrypted text C and the authentication tag T are output.
  • the encrypted text C is decrypted and the plain text P is output. If the authentication tag T'does not match, a result (FAIL) indicating that the authentication has failed is output.
  • FIG. 101 shows the data structure of the image data for transmitting the integrity calculation value MAC for each line.
  • the transmission method for transmitting the integrity calculation value MAC for each line in this way is hereinafter appropriately referred to as a line MAC method.
  • the integrity operation value MAC is transmitted for each CSI-2 line, each CCI command, or each CCI return.
  • the initialization vectors have the same value between them, more session keys are needed.
  • the first session key for uplink is used in the VC0 command and the second session key for downlink is used in VC0 return, VC1 and VC2.
  • the first session key for CCI is used in VC0
  • the second session key for CSI-2 is used in VC1 and VC2.
  • one session key for all is used in VC0, VC1 and VC2.
  • a total of two message count values are used.
  • a common message count value in CSI-2 is used between VC1 and VC2, and a CCI independent message count value is used in VC0.
  • an independent message counter may be used between the virtual channels of CSI-2.
  • a part of the flowchart may be deleted.
  • the message counters may be synchronized or asynchronous between the virtual channels of CSI-2. For example, it may be desirable to standardize the message counters from the viewpoint of implementation efficiency, and it may be desirable to make the message counters independent from the viewpoint of safety.
  • the structural initialization vector shown in FIG. 102 is common to all virtual channels (CSI-2 and CCI). Then, a part or all of this initialization vector is transmitted from the transmitting side to the receiving side as shown in FIG. 103.
  • a specified value for example, 0 2 , 1 2
  • a pre-exchanged value may be used as the Source ID or Final Destination ID.
  • the receiving side may use a value grasped by the receiving side as a part or all of the initialization vector instead of the value transmitted from the transmitting side to the receiving side.
  • FIG. 103 shows an example in which the additional message count value is stored outside the extended packet header and transmitted
  • the additional message count value and the message count value may be stored outside the extended packet header and transmitted. .. In that case, the message count value may be stored in the extended packet header and transmitted.
  • only a part of the additional message count value may be used. For example, if the additional message count value in the initialization vector is 40 bits, the actual additional message count value may be a 16-bit counter, and that count value is part of the additional message count value in the initialization vector.
  • the specified value for example, 0 24 , 1 24
  • all the additional message count values in the initialization vector may be stored as specified values (for example, 0 40 , 1 40 ).
  • a part or all of the initialization vector transmitted from the image sensor 1211 to the application processor 1212 is configured not to be transmitted from the image sensor 1211 to the application processor 1212, and is based on prior agreement or register setting. It may be set.
  • FIG. 104 shows an example of the extended format of CSI-2 or CCI.
  • the first bit (Reserved and eVC) or quasi-first bit (eVC) of the required extended packet header ePH0 is used as the initialization vector.
  • the application processor 1212 can start the calculation of the GCTR function shown in FIG. 98 above immediately after receiving the bit. That is, the transmitting side and the receiving side may be configured so that the values of the initialization vector components other than the eVC can be determined before the eVC value is transmitted or received.
  • step S741 the security unit 1310 derives the common session key.
  • step S742 the message counter 1308 initializes the upper count value of the message count value and sets it to 0.
  • step S743 the message counter 1308 initializes the lower count value of the message count value and sets it to 0.
  • step S744 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S745.
  • step S745 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet of the first virtual channel.
  • step S745 If it is determined in step S745 that the extended mode compatible CSI-2 transmission circuit 1304 does not transmit the extended packet of the first virtual channel, the process returns to step S744, and the same process is repeated thereafter. On the other hand, if it is determined in step S745 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet of the first virtual channel, the process proceeds to step S746.
  • step S746 the security unit 1310 calculates the integrity calculation value of the first virtual channel using the common session key derived in step S741.
  • step S747 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S746 in the extended packet of the first virtual channel, and transmits the extended packet of the first virtual channel. ..
  • step S748 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet of the second virtual channel, and performs processing until it is determined to transmit the extended packet of the second virtual channel. stand by. Then, if it is determined in step S748 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet of the second virtual channel, the process proceeds to step S749.
  • step S749 the security unit 1310 calculates the integrity calculation value of the second virtual channel using the common session key derived in step S741.
  • step S750 the extended mode compatible CSI-2 transmission circuit 1304 arranges the integrity calculation value calculated in step S749 in the extended packet of the second virtual channel, and transmits the extended packet of the second virtual channel. ..
  • step S751 the message counter 1308 determines whether or not the lower count value of the message count value has been counted up to the maximum value.
  • step S751 If the message counter 1308 determines in step S751 that the lower count value of the message count value has not been counted up to the maximum value, the process proceeds to step S752. In step S752, the message counter 1308 increments the lower count value of the message count value, and then the process returns to step S744, and the same process is repeated thereafter.
  • step S751 determines in step S751 that the lower count value of the message count value has been counted up to the maximum value.
  • the process proceeds to step S753.
  • step S753 the message counter 1308 increments the higher count value of the message count value, and then the process returns to step S743, and the same process is repeated thereafter.
  • step S744 when the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S754.
  • step S754 the security unit 1310 discards or cleans up the common session key, and then the process is terminated.
  • the session key can be shared between CSI-2 and CCI.
  • the actual number of lines differs between the CSI-2 virtual channels, for example, by unifying the number of lines with dummy data, it becomes possible to standardize the message counters.
  • the process described with reference to FIG. 105 is an example in which the message count value is set as the lower count value and the additional message count value is set as the upper count value, and is an example when there are two types of CSI-2 virtual channels.
  • the initialization vector configuration may include extended data type eDT or data type DT.
  • the session key and the message counter can be shared among a plurality of types of data types.
  • Reserved, extended virtual channel eVC, and extended data type eDT are stored as the first bit of the CSI-2 / CCI extension format example, so the processor will perform GCTR operations as soon as some or all of them are received. Partial (CIPH K ) operations can be started. Further, if the frame configuration is agreed in advance between the image sensor 1211 and the application processor 1212, the application processor 1212 can omit the reception of these and start the calculation of a part (CIPH K ) of the GCTR calculation. .. That is, these initialization vector configurations are advantageous in terms of calculation time.
  • the application processor 1212 can use this value as the initialization vector.
  • the application processor 1212 may be configured not to provide an additional message counter from the viewpoint of mounting efficiency, or may be configured to provide an additional message counter from the viewpoint of safety.
  • the image sensor 1211 may be configured not to transmit the additional message count value. That is, when the initialization vector includes the extended virtual channel eVC, the transmission of the additional message count value is not an essential requirement.
  • FIG. 106 shows the data structure of the image data in which the integrity calculation value MAC is arranged for each frame.
  • the transmission method for transmitting the integrity calculation value MAC for each frame in this way is appropriately referred to as a frame MAC method.
  • the integrity calculation value MAC is derived from the extended packet header ePH, packet data, and extended packet footer ePF of each line except the extended packet footer ePF at the end of the frame.
  • the initialization vector of the structure shown in FIG. 107 is common to the line MAC and the frame MAC (CSI-2 only). Then, as shown in FIG. 108, this initialization vector is transmitted from the transmitting side to the receiving side.
  • FIG. 108 shows an example in which the additional frame number is stored outside the extended packet header and transmitted.
  • the additional frame number and the frame number may be stored outside the extended packet header and transmitted.
  • the frame number may be stored in the frame start and transmitted.
  • only a part of the additional frame number may be used.
  • the additional frame number in the initialization vector is 24 bits
  • the actual additional frame number may be a 16-bit counter whose count value is part of the additional frame number in the initialization vector (eg, for example). It is stored in the LSB side 16 bits), and the specified value (for example, 0 8 , 1 8 ) may be stored in the rest of the additional frame number in the initialization vector (for example, the MSB side 8 bits).
  • all the additional frame numbers in the initialization vector may store specified values (for example, 0 24 and 1 24 ).
  • a part or all of the initialization vector transmitted from the image sensor 1211 to the application processor 1212 is configured not to be transmitted from the image sensor 1211 to the application processor 1212, and is based on prior agreement or register setting. It may be set.
  • step S761 the security unit 1310 derives the session key.
  • step S762 the message counter 1308 initializes the upper count value in which the additional frame number is used and sets it to 0.
  • step S763 the message counter 1308 initializes the lower count value in which the frame number is used and sets it to 1.
  • step S764 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to end the session, and if it is determined not to end the session, the process proceeds to step S765.
  • step S765 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the extended packet.
  • step S765 If the extended mode compatible CSI-2 transmission circuit 1304 determines in step S765 that the extended packet is not transmitted, the process returns to step S764, and the same process is repeated thereafter. On the other hand, if it is determined in step S765 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the extended packet, the process proceeds to step S766.
  • step S766 the extended mode compatible CSI-2 transmission circuit 1304 transmits an extended packet.
  • step S767 the message counter 1308 determines whether or not the message count value has been counted up to the maximum value.
  • step S767 If the message counter 1308 determines in step S767 that the message count value has been counted up to the maximum value, the process proceeds to step S768. In step S768, the message counter 1308 initializes the message count value and sets it to 0.
  • step S767 the message counter 1308 increments the message count value.
  • step S768 and step S769 the processing proceeds to step S770, and the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not all the extended packets in the frame have been transmitted.
  • step S770 If it is determined in step S770 that the extended mode compatible CSI-2 transmission circuit 1304 has not completed transmission of all the extended packets in the frame, the process returns to step S764, and the same process is repeated thereafter.
  • step S770 if it is determined in step S770 that the extended mode compatible CSI-2 transmission circuit 1304 has completed transmission of all the extended packets in the frame, the process proceeds to step S771.
  • step S771 the message counter 1308 determines whether or not the lower count value has been counted up to the specified value.
  • step S771 If the message counter 1308 determines in step S771 that the lower count value has not been counted up to the specified value, the process proceeds to step S772. In step S772, the message counter 1308 increments the lower count value, then the process returns to step S764, and the same process is repeated thereafter.
  • step S771 determines in step S771 that the lower count value has been counted up to the specified value. If the message counter 1308 determines in step S771 that the lower count value has been counted up to the specified value, the process proceeds to step S773. In step S773, the message counter 1308 increments the upper count value, then the process returns to step S763, and the same process is repeated thereafter.
  • step S764 if the extended mode compatible CSI-2 transmission circuit 1304 determines that the session is terminated, the process proceeds to step S774.
  • step S774 the security unit 1310 discards or cleans up the common session key, and then the process ends.
  • the process described with reference to FIG. 109 is an example in which the frame number is used as the lower count value and the additional frame number is used as the upper count value.
  • the calculation and transmission of the integrity calculation value, the virtual channel, the session key update, and the like are omitted, it may be combined with a part or all of any of the above-mentioned flowcharts. The same applies to other flowcharts.
  • the frame number may be incremented by 1 or 2, it is desirable to increment the upper count value when the lower count value is a specified value (for example, maximum value or maximum value -1). However, if the increment of the frame number is only 1, the upper count value may be incremented when the lower count value is the maximum value.
  • the application processor 1212 can use this value for the initialization vector. Therefore, the application processor 1212 may be configured not to provide a frame counter from the viewpoint of mounting efficiency, or may be configured to provide a frame counter from the viewpoint of safety. Further, when the application processor 1212 is configured to provide a frame counter, the image sensor 1211 may be configured not to transmit a frame number. That is, when the initialization vector includes the extended virtual channel eVC, transmission of the frame number is not an essential requirement.
  • the application processor 1212 can use this value for the initialization vector. Therefore, the application processor 1212 may be configured not to provide an additional frame counter from the viewpoint of mounting efficiency, or may be configured to provide an additional frame counter from the viewpoint of safety. Further, when the application processor 1212 is configured to provide an additional frame counter, the image sensor 1211 may be configured not to transmit the additional frame number.
  • the message count value in the initialization vector may contain a specified value (eg 0 16 , 1 16 ) or for a particular extended packet (eg frame start or frame end).
  • the message count value may be stored.
  • the message count value is stored in the message count value in the initialization vector.
  • FIG. 110 is a flowchart illustrating a selection process in which the image sensor 1211 selects a transmission method of the integrity calculation value MAC.
  • step S781 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the integrity calculation value MAC by the line MAC method.
  • step S781 If it is determined in step S781 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the integrity calculation value MAC by the line MAC method, the process proceeds to step S782. In step S782, the extended mode compatible CSI-2 transmission circuit 1304 selects the line MAC method.
  • step S781 if it is determined in step S781 that the extended mode compatible CSI-2 transmission circuit 1304 does not transmit the integrity calculation value MAC by the line MAC method, the process proceeds to step S783.
  • step S783 the extended mode compatible CSI-2 transmission circuit 1304 determines whether or not to transmit the integrity calculation value MAC by the frame MAC method.
  • step S783 If it is determined in step S783 that the extended mode compatible CSI-2 transmission circuit 1304 transmits the integrity calculation value MAC by the frame MAC method, the process proceeds to step S784. In step S784, the extended mode compatible CSI-2 transmission circuit 1304 selects the frame MAC method.
  • step S783 if it is determined in step S783 that the extended mode compatible CSI-2 transmission circuit 1304 does not transmit the integrity calculation value MAC by the frame MAC method, the process proceeds to step S785.
  • step S785 the extended mode compatible CSI-2 transmission circuit 1304 selects a non-MAC method that does not transmit the integrity calculation value MAC.
  • step S786 the extended mode compatible CSI-2 transmission circuit 1304 transmits security MAC information (see FIG. 111) indicating either the line MAC method, the frame MAC method, or the non-MAC method, and then the process is terminated. ..
  • security MAC information for 2-bit allocation is shown in FIG. 111, allocation with a different number of bits (for example, 1 bit or 8 bits) may be used. Further, the reserved area data (Reserved for future use) may be assigned not to transmit a MAC value (for example, NoMAC).
  • the image sensor 1211 transmits the MAC value by the line MAC method (selects the line MAC method) or the frame MAC method (selects the frame MAC method). You can freely choose whether or not to use (select non-MAC method).
  • the image sensor 1211 may select either one in advance agreement with the application processor 1212.
  • the image sensor 1211 may initially select the line MAC method and switch to another method (for example, the frame MAC method) when a predetermined condition is satisfied.
  • the frame MAC method may be selected first, and then switched to another method (for example, the line MAC method) when a predetermined condition is satisfied.
  • the non-MAC method may be selected first, and then switched to another method (for example, the frame MAC method) when a predetermined condition is satisfied.
  • the application processor 1212 can support the switching of the transmission method of the integrity calculation value MAC according to the reception.
  • the transmission method after switching is changed from the image sensor after the start of the frame end transmission to before the completion of the frame start transmission. It is desirable, but not limited to, to be sent.
  • the initialization vector may include security MAC information that can identify whether it is a line MAC method or a frame MAC method. In that case, since the initialization vector does not surely overlap between the line MAC method and the frame MAC method, the switching of the transmission method of the integrity calculation value MAC is facilitated. If there is no security MAC information, for example, depending on the switching timing of the transmission method of the integrity calculation value MAC, it may be necessary to specify the value stored in the message counter 1308 in order to avoid duplication of the initialization vector. obtain.
  • FIG. 112 shows an example of a cycle in which the message count value and the frame count value roll over.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本開示は、セッション鍵を更新することができるようにする情報処理装置、移動体装置、および通信システムに関する。 第1通信よりも高速な第2通信を制御する命令またはその応答の送信または受信が含まれる第1通信を利用して鍵スケジュールから第1シークレットを導出し、その第1シークレットに関連する第1セッション鍵を導出し、その第1セッション鍵を第1通信の暗号化またはメッセージ認証に使用し、その第1通信を利用して第2セッション鍵を受信するか、送信するか、または導出するかし、その第2セッション鍵を第2通信の暗号化またはメッセージ認証に使用し、その第1通信を利用して第3セッション鍵を受信するか、送信するか、または導出するかし、その第3セッション鍵は、第2セッション鍵に替えて使用が開始される。本技術は、例えば、MIPIの規格に準拠した通信システムに適用できる。

Description

情報処理装置、移動体装置、および通信システム
 本開示は、情報処理装置、移動体装置、および通信システムに関し、特に、セッション鍵を更新することができるようにした情報処理装置、移動体装置、および通信システムに関する。
 現在、規格化が進行中であるCSI(Camera Serial Interface)-2 ver4.0では、物理層にC-PHYを使うパケット構造と、物理層にD-PHYを使うパケット構造との2種類が定義されている。
 また近年、CSI-2規格は、モバイル機器だけに用いられるのではなく、車載やIoT(Internet of Things)など様々な用途に広く用いられるようになった結果、既存のパケット構造では、それらの用途に対応することができないと想定される。そこで、MIPI(Mobile Industry Processor Interface)アライアンスでは、多様な用途に対応させるため、既存のパケットヘッダやパケットフッタなどのパケット構造を拡張させた拡張パケットが検討中となっている。
 ところで、非特許文献1に記載のSPDM(Security Protocol and Data Model)規格においては、鍵スケジュールが公開されている。
"Security Protocol and Data Model (SPDM) Specification", DSP0274, Version: 1.1.0, DMTF, 2020-07-15
 しかしながら、このSPDMをMIPIのCSI-2規格またはDSI(Display Serial Interface)-2規格に適用する場合、エクスポートマスターシークレット(Export Master Secret)が鍵更新機能に対応しておらず、エクスポートマスターシークレットから導出したセッション鍵を適用する場合にはセッション鍵を更新することができなかった。一方、例えばSPDMによって保護された通信を介して送信または受信されたセッション鍵を適用する場合、セッション鍵の更新を定義する必要があった。
 本開示は、このような状況に鑑みてなされたものであり、セッション鍵を更新することができるようにするものである。
 本技術の一側面の情報処理装置は、第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、前記保護部は、前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、前記第1シークレットに関連する第1セッション鍵を導出し、前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される情報処理装置である。
 本技術の一側面の移動体装置は、第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、前記保護部は、前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、前記第1シークレットに関連する第1セッション鍵を導出し、前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される移動体装置である。
 本技術の一側面の通信システムは、第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、前記保護部は、前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、前記第1シークレットに関連する第1セッション鍵を導出し、前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、前記保護部は、前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される通信システムである。
 本技術の一側面においては、第1通信よりも高速な第2通信を制御する命令またはその命令に対する応答の送信または受信が含まれる第1通信を利用して鍵スケジュールから第1シークレットが導出され、その第1シークレットに関連する第1セッション鍵が導出され、その第1セッション鍵が第1通信の暗号化またはメッセージ認証に使用され、その第1セッション鍵によって保護された第1通信を利用して第2セッション鍵が受信され、または導出または生成された第2セッション鍵がその第1セッション鍵によって保護された第1通信を利用して送信され、または鍵スケジュールから第2シークレットが導出されてその第2シークレットに関連する第2セッション鍵が導出され、その第2セッション鍵が第2通信の暗号化またはメッセージ認証に使用され、その第1セッション鍵によって保護された第1通信を利用して第3セッション鍵が受信され、または導出または生成された第3セッション鍵がその第1セッション鍵によって保護された第1通信を利用して送信され、または第2セッション鍵に加えて第2シークレットに関連する第3セッション鍵が導出され、その第3セッション鍵は、第2セッション鍵に替えて使用が開始される。
本技術を適用した通信システムの第1の実施の形態の構成例を示すブロック図である。 本技術を適用した通信システムの第2の実施の形態の構成例を示すブロック図である。 D-PHY用の拡張パケットの全体的なパケット構造の第1の構造例を示す図である。 D-PHY用の拡張ショートパケットのパケット構造の第1の構造例を示す図である。 D-PHY用の拡張ロングパケットのパケット構造の第1の構造例を示す図である。 C-PHY用の拡張パケットの全体的なパケット構造の第1の構造例を示す図である。 C-PHY用の拡張ショートパケットのパケット構造の第1の構造例を示す図である。 C-PHY用の拡張ロングパケットのパケット構造の第1の構造例を示す図である。 イメージセンサの構成例を示すブロック図である。 アプリケーションプロセッサの構成例を示すブロック図である。 イメージセンサがパケットを送信する処理を説明するフローチャートである。 拡張モード送信処理を説明するフローチャートである。 アプリケーションプロセッサがパケットを受信する処理を説明するフローチャートである。 拡張モード受信処理を説明するフローチャートである。 D-PHY用の拡張パケットの全体的なパケット構造の第2の構造例を示す図である。 D-PHY用の拡張ロングパケットのパケット構造の第2の構造例を示す図である。 C-PHY用の拡張ショートパケットのパケット構造の第2の構造例を示す図である。 C-PHY用の拡張ロングパケットのパケット構造の第2の構造例を示す図である。 D-PHYおよびC-PHYを切り替える構成の変形例を示すブロック図である。 本技術を適用した通信システムの第3の実施の形態の構成例を示すブロック図である。 パケット改変禁止の規定に対応するD-PHY用の拡張パケットの構造例を示す図である。 パケット改変禁止の規定に対応するC-PHY用の拡張パケットの構造例を示す図である。 パケット改変禁止の規定に対応するA-PHY用の拡張パケットの構造例を示す図である。 パケット改変禁止の規定に適応したパケット送受信処理を説明するフローチャートである。 パケット改変禁止の規定に適応したイメージセンサの構成例を示すブロック図である。 パケット改変禁止の規定に適応したアプリケーションプロセッサの構成例を示すブロック図である。 イメージセンサおよびアプリケーションプロセッサが直結構成された通信システムの構成例を示すブロック図である。 アプリケーションプロセッサ側で生成されるリードコマンドのパケット構成の一例を示す図である。 A-PHY転送されるリードコマンドのパケット構成の一例を示す図である。 イメージセンサ側のリードコマンドおよびリードデータのパケット構成の一例を示す図である。 A-PHY転送されるリードデータのパケット構成の一例を示す図である。 アプリケーションプロセッサ側で取得したリードデータのパケット構成の一例を示す図である。 アプリケーションプロセッサ側で生成されるライトデータのパケット構成の一例を示す図である。 A-PHY転送されるライトデータのパケット構成の一例を示す図である。 イメージセンサ側で取得したライトデータのパケット構成の一例を示す図である。 拡張パケットヘッダePHおよび拡張パケットフッタePFの概要を説明する図である。 CCI-FSを使用した通信処理の初期設定および確認動作を説明するフローチャートである。 CCI-FSを使用したライト動作を説明するフローチャートである。 CCI-FSを使用したリード動作を説明するフローチャートである。 イメージセンサおよびアプリケーションプロセッサがSerDes接続構成された通信システムの構成例を示すブロック図である。 アプリケーションプロセッサ側で生成されるリードコマンドのパケット構成の一例を示す図である。 I2C/I3Cで出力されるリードコマンドのパケット構成の一例を示す図である。 A-PHY転送されるリードコマンドのパケット構成の一例を示す図である。 スレーブ側のSerDes装置で生成されるリードデータのパケット構成の一例を示す図である。 イメージセンサ側のリードコマンドおよびリードデータのパケット構成の一例を示す図である。 I2C/I3Cで出力されるリードデータのパケット構成の一例を示す図である。 A-PHY転送されるリードデータのパケット構成の一例を示す図である。 I2C/I3Cで出力されるリードデータのパケット構成の一例を示す図である。 アプリケーションプロセッサ側で取得したリードデータのパケット構成の一例を示す図である。 CCI-FSを使用した通信処理の初期設定および確認動作を説明するフローチャートである。 CCI-FSを使用したライト動作を説明するフローチャートである。 CCI-FSを使用したリード動作を説明するフローチャートである。 Sequence A_Write(AP時)処理を説明するフローチャートである。 Sequence A_Read_CMD(AP時)処理を説明するフローチャートである。 Sequence C(AP時)処理を説明するフローチャートである。 Sequence B(SerDes(Slave)時)処理を説明するフローチャートである。 Sequence A_Read_Data(AP時)処理を説明するフローチャートである。 拡張パケットヘッダePH0、拡張パケットヘッダePH1、および拡張パケットヘッダePH2の詳細を示す図である。 拡張パケットヘッダePH3の詳細を示す図である。 拡張パケットヘッダePHの拡張DTの詳細を示す図である。 従来のI2Cのハードウェアでの構成例を示すブロック図である。 I2Cバス上のデータ転送時の波形の一例を示す図である。 A-PHY直結構成の通信システムにおけるCCI関連の構成例を示すブロック図である。 ネットワークの接続形態の一例を示す図である。 CCI-FS処理部の回路構成の一例を示すブロック図である。 レジスタ構成例を示す図である。 Bridge構成時のレジスタ構成例を示す図である。 Error関連レジスタのレジスタ構成例を示す図である。 アプリケーションプロセッサ側で生成されるライトデータのパケット構成における拡張パケットヘッダePHの変形例を示す図である。 アプリケーションプロセッサ側で生成されるリードコマンドのパケット構成における拡張パケットヘッダePHの変形例を示す図である。 A-PHY直結構成におけるアプリケーションプロセッサとイメージセンサとの間のフローを説明する図である。 Clock Stretch方式を用いたフローを説明する図である。 CCI-FS処理部を備えるイメージセンサの詳細な構成例を示すブロック図である。 CCI-FS処理部を備えるアプリケーションプロセッサの詳細な構成例を示すブロック図である。 本技術を適用した通信システムの第4の実施の形態の構成例を示すブロック図である。 イメージセンサの詳細な構成例を示すブロック図である。 アプリケーションプロセッサの詳細な構成例を示すブロック図である。 通信処理の第1の処理例を説明するフローチャートである。 通信処理の第1の処理例を説明するフローチャートである。 通信処理の第1の処理例を説明するフローチャートである。 検証用パケットおよび被検証パケットについて説明する図である。 検証用パケットおよび被検証パケットについて説明する図である。 データ検証処理を説明するフローチャートである。 メッセージカウント値送信処理を説明するフローチャートである。 埋め込みデータについて説明する図である。 画像データのデータ構造の一例を示す図である。 画像データ送信処理を説明するフローチャートである。 完全性演算値送信処理を説明するフローチャートである。 画像データのデータ構造の第1の変形例を示す図である。 画像データのデータ構造の第2の変形例を示す図である。 画像データのデータ構造の第3の変形例を示す図である。 完全性演算値処理の第1の処理例を説明するフローチャートである。 完全性演算値処理の第2の処理例を説明するフローチャートである。 完全性演算値処理の第3の処理例を説明するフローチャートである。 完全性演算値処理の第4の処理例を説明するフローチャートである。 初期化ベクトルが格納される初期カウンタブロックの一例を示す図である。 GHASH関数を示す図である。 GCTR関数を示す図である。 GCM-AE関数を示す図である。 GCM-AD関数を示す図である。 ラインごとに完全性演算値MACを送信する画像データのデータ構造の一例を示す図である。 初期化ベクトルの一例を示す図である。 送信側から受信側へ初期化ベクトルを送信する一例を示す図である。 CSI-2またはCCIの拡張フォーマットの一例を示す図である。 ラインMAC方式の送信処理を説明するフローチャートである。 フレームごとに完全性演算値MACが配置された画像データのデータ構造の一例を示す図である。 初期化ベクトルの一例を示す図である。 送信側から受信側へ初期化ベクトルを送信する一例を示す図である。 フレームMAC方式の送信処理を説明するフローチャートである。 選択処理を説明するフローチャートである。 セキュリティMAC情報の一例を示す図である。 メッセージカウント値およびフレームカウント値のロールオーバー周期の一例を示す図である。 初期化ベクトルの構成について説明する図である。 データ検証処理を説明するフローチャートである。 反映処理を説明する図である。 セキュリティプロトコルの一例を示す図である。 Source IDまたはFinal Destination IDの一例を示す図である。 自らの異常の有無を診断するイメージセンサの詳細な構成例を示すブロック図である。 妨害検出部による妨害検出処理(その1)を説明するフローチャートである。 イメージセンサによりToF方式の測距センサを実現する際の発光パターン(受光パターン)を格納パターンとして格納する際の格納方法を説明する図である。 イメージセンサによりToF方式の測距センサを実現する際の発光パターン(受光パターン)を格納パターンとして格納する際の格納方法を説明する図である。 妨害検出部による妨害検出処理(その2)を説明するフローチャートである。 障害検出部による障害検出処理を説明するフローチャートである。 侵害検出部によるセキュリティ部の異常検出処理を説明するフローチャートである。 温度検出部による異常検出処理を説明するフローチャートである。 イメージセンサの異常の有無を検出するアプリケーションプロセッサの詳細な構成例を示すブロック図である。 アプリケーションプロセッサが、イメージセンサの異常の有無を検出する処理をするときのイメージセンサの処理を説明するフローチャートである。 アプリケーションプロセッサが、イメージセンサの異常の有無を検出する処理をするときのアプリケーションプロセッサの処理を説明するフローチャートである。 画像データの高速データ送信を阻害せずに特異メッセージの高速データ送信を実現する際の特異メッセージを格納する位置を説明するための画像データのデータ構造の一例を示す図である。 画像データの高速データ送信を阻害せずに、特異メッセージの高速データ送信が実行される場合の処理を説明するフローチャートである。 撮像送信処理(その1)を説明するフローチャートである。 撮像送信処理(その1)の応用例を説明するフローチャートである。 撮像送信処理(その2)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その3)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その3)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その4)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その4)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その5)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その5)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その6)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その6)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その7)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その7)を説明するフローチャートである。 イメージセンサによる撮像送信処理(その8)を説明するフローチャートである。 アプリケーションプロセッサによる撮像送信処理(その8)を説明するフローチャートである。 撮像送信処理(その9)を説明するフローチャートである。 撮像送信処理(その10)を説明するフローチャートである。 撮像送信処理(その11)を説明するフローチャートである。 ハミング距離の異なる2種類のカウント値を用いたメッセージカウント値を説明する図である。 2種類のカウント値を用いたメッセージカウント値の不具合や改竄の有無を検出する方法を説明する図である。 2種類のカウント値を用いたメッセージカウント値の不具合や改竄の有無を検出する方法を説明する図である。 メッセージカウント処理を説明するフローチャートである。 拡張パケットヘッダePH2におけるリザーブド領域(Reserved)にWarning Descriptorが設定されるときの拡張パケットヘッダePH2の構成例を説明する図である。 Warning Descriptor(特異メッセージ)の各ビットを用いた識別情報の記述例を説明する図である。 拡張パケットヘッダに、第1特異メッセージとして警告速報(例えば、Physical attack detection)が設定されるときの構成例を説明する図である。 特異メッセージを分離して送信するときのイメージセンサの送信処理を説明するフローチャートである。 特異メッセージを分離して送信するときのアプリケーションプロセッサの送信処理を説明するフローチャートである。 警告速報が送信された後、警告詳細の読み出し命令を送信する場合の特異メッセージを分離して送信するときの送信処理を説明するフローチャートである。 イメージセンサ1211内外の異常の有無、イメージセンサ1211に対する妨害または攻撃の有無、などの何れかの特異メッセージが設定されるSecurity Descriptorの構成例を説明する図である。 イメージセンサとアプリケーションプロセッサとが実装された推進装置の構成例を示すブロック図である。 図160の推進装置の推進を制御する推進制御処理(その1)を説明する図である。 図160の推進装置の推進を制御する推進制御処理(その2)を説明する図である。 図160の推進装置の推進を制御するマイクロコンピュータによる推進制御処理(その3)を説明する図である。 図160の推進装置の推進を制御する撮像部による推進制御処理(その3)を説明する図である。 HEARTBEAT機能の有効化(HBEAT_CAP=1)または無効化(HBEAT_CAP=0)を設定するResponder flag fields definitionsの構成例を説明する図である。 HEARTBEAT要求メッセージの構成例を説明する図である。 HEARTBEAT_ACK応答メッセージの構成例を説明する図である。 HEARTBEAT_NAK応答メッセージの構成例を説明する図である。 END_SESSION要求メッセージの構成例を説明する図である。 HEARTBEAT処理(その1)を説明するフローチャートである。 END_SESSION_NAK応答メッセージの構成例を説明する図である。 CCIホスト(リクエスタ)のHEARTBEAT処理(その2)を説明するフローチャートである。 CCIデバイス(レスポンダ)のHEARTBEAT処理(その2)を説明するフローチャートである。 CCIホスト(リクエスタ)のHEARTBEAT処理(その3)を説明するフローチャートである。 CCIデバイス(レスポンダ)のHEARTBEAT処理(その3)を説明するフローチャートである。 ERROR応答メッセージの構成例を説明する図である。 Error codeとError dataの設定例を説明する図である。 ExtendedErrorDataの設定例を説明する図である。 疑似HEARTBEAT機能が用いられる場合のRegistry or standards body IDの設定例を説明する図である。 VENDOR_DEFINED_REQUEST要求メッセージの設定例を説明する図である。 VENDOR_DEFINED_RESPONSE応答メッセージの設定例を説明する図である。 SPDMの鍵スケジュールを説明する図である。 KEY_UPDATA_operationsの例を示す図である。 鍵更新に関する処理の流れの例を説明するフローチャートである。 ePH2の例を示す図である。 セッション鍵更新の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 セッション鍵更新の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 KeyUpdataReqとKeySwitchTimingの例を示す図である。 セッション鍵更新の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 プロセッサ処理の流れの例を説明するフローチャートである。 センサ処理の流れの例を説明するフローチャートである。 EvenOddkeyの例を示す図である。 セッション鍵の導出例を示す図である。 セッション鍵の導出例を示す図である。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
 <通信システムの構成例>
 図1は、本技術を適用した通信システムの第1の実施の形態の構成例を示すブロック図である。
 図1に示すように、通信システム11は、イメージセンサ21およびアプリケーションプロセッサ22がバス23を介して接続されて構成される。例えば、通信システム11は、いわゆるスマートフォンなどのような既存のモバイル機器の内部におけるCSI-2接続に用いられる。
 イメージセンサ21は、例えば、レンズや撮像素子(いずれも図示せず)などとともに、拡張モード対応CSI-2送信回路31が組み込まれて構成される。例えば、イメージセンサ21は、撮像素子が撮像することで取得した画像の画像データを、拡張モード対応CSI-2送信回路31によりアプリケーションプロセッサ22へ送信する。
 アプリケーションプロセッサ22は、通信システム11を備えるモバイル機器で実行される各種のアプリケーションに応じた処理を行うLSI(Large Scale Integration)とともに、拡張モード対応CSI-2受信回路32が組み込まれて構成される。例えば、アプリケーションプロセッサ22は、イメージセンサ21から送信されてくる画像データを、拡張モード対応CSI-2受信回路32により受信し、その画像データに対して、アプリケーションに応じた処理をLSIにより行うことができる。
 バス23は、CSI-2の規格に準拠して信号を伝送する通信経路であり、例えば、信号を伝送することが可能な伝送距離は30cm程度となっている。また、バス23は、図示するように複数本の信号線(I2C,CLKP/N,D0P/N,D1P/N,D2P/N,D3P/N)によって、イメージセンサ21およびアプリケーションプロセッサ22を接続する。
 拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32は、CSI-2の規格を拡張させた拡張モードでの通信に対応しており、互いに信号の送信および受信を行うことができる。なお、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32の詳細な構成については、図9および10を参照して後述する。
 図2は、本技術を適用した通信システムの第2の実施の形態の構成例を示すブロック図である。
 図2に示すように、通信システム11Aは、イメージセンサ21およびSerDes装置25がバス24-1を介して接続されるとともに、アプリケーションプロセッサ22およびSerDes装置26がバス24-2を介して接続されており、SerDes装置25およびSerDes装置26がバス27を介して接続されて構成される。例えば、通信システム11Aは、既存の車載カメラにおける接続に用いられる。
 ここで、イメージセンサ21およびアプリケーションプロセッサ22は、図1のイメージセンサ21およびアプリケーションプロセッサ22と同様に構成されており、その詳細な説明は省略する。
 バス24-1および24-2は、図1のバス23と同様に、CSI-2の規格に準拠して信号を伝送する通信経路であり、図示するように複数本の信号線(HS-GPIO,I2C/I3C,CLKP/N,D0P/N,D1P/N,D2P/N,D3P/N)を備えて構成される。
 SerDes装置25は、CSI-2受信回路33およびSerDes(Serializer Deserializer)送信回路34を備えて構成される。例えば、SerDes装置25は、CSI-2受信回路33が、拡張モード対応CSI-2送信回路31との間で通常のCSI-2の規格に準拠した通信を行うことにより、イメージセンサ21から送信されてくるビット並列の信号を取得する。そして、SerDes装置25は、その取得した信号をビット直列に変換して、SerDes送信回路34がSerDes受信回路35との間で1レーンでの通信を行うことにより、その信号をSerDes装置26へ送信する。
 SerDes装置26は、SerDes受信回路35およびCSI-2送信回路36を備えて構成される。例えば、SerDes装置26は、SerDes受信回路35が、SerDes送信回路34との間で1レーンでの通信を行うことにより送信されてくるビット直列の信号を取得する。そして、SerDes装置26は、その取得した信号をビット並列に変換して、CSI-2送信回路36が、拡張モード対応CSI-2受信回路32との間で通常のCSI-2の規格に準拠した通信を行うことにより、アプリケーションプロセッサ22へ送信する。
 バス27は、A-PHYや、FPD(Flat Panel Display)-LINK IIIなどのような規格に準拠して信号を伝送する通信経路であり、例えば、信号を伝送することが可能な伝送距離は15m程度の長距離となっている。
 これらの長距離伝送可能な物理層インタフェースによって、自動車業界が高度な運転支援システム(ADAS)、自動運転システム(ADS)、およびカメラや車載インフォテインメント(IVI)ディスプレイを含むその他のサラウンドセンサーアプリケーションを利用することが可能となる。MIPI A-PHYは、ポイントツーポイントトポロジの非対称データリンク層(非対称上位層)を有し、同一の物理配線を、高速データ伝送、制御データ、電力でシェアすることを可能としており、カメラ、センサ、ディスプレイの統合を簡素化するように設計されたエンドツーエンドシステムの基盤として機能すると同時に、機能的な安全性とセキュリティも組み込むことも可能としている。
 このように構成される通信システム11および11Aは、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32により、後述するように拡張されたパケット構造のパケットでデータを送受信することができる。これにより、より多様な用途、例えば、後述するようなRAW24や、SmartROI(Region of Interest)、GLD(Graceful Link Degradation)などに対応することができる。
 <パケット構造の第1の構造例>
 図3乃至図8を参照して、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32の間の通信で用いられるパケットのパケット構造の第1の構造例について説明する。
 図3には、物理層がD-PHYである場合にCSI-2の拡張モードで用いられるパケット(以下、D-PHY用の拡張パケットと称する)の全体的なパケット構造が示されている。
 図3に示すように、D-PHY用の拡張パケットは、パケットヘッダおよびパケットフッタが既存のCSI-2規格と同一のパケット構造となっている。例えば、パケットヘッダには、仮想チャネルの回線数を示すVC(VirtualChannel)、データの種類を示すデータタイプ(DataType)、ペイロードのデータ長を示すWC(Word Count)、VCX/ECCが格納される。また、パケットフッタには、CRC(Cyclic Redundancy Check)が格納される。
 ここで、既存のCSI-2規格では、パケットヘッダで送信されるデータタイプは、0x38~0x3Fがリザーブと定義されている。そこで、D-PHY用の拡張パケットでは、既存ではリザーブとなっているデータタイプを利用して、受信側で拡張モードを識別するための設定情報が新たに定義される。
 例えば、データタイプとして、・DataType[5:3]=3’b111の場合、拡張モード・DataType[2]=Reserve(RES:将来の拡張のための予約)・DataType[1:0]=extension mode type(4つの拡張モードを用意)を定義する。
 即ち、既存のCSI-2規格ではリザーブと定義されているデータタイプの0x38~0x3Fのうち、例えば、DataType[5:3]が拡張モード設定情報として定義され、DataType[1:0]が拡張タイプ設定情報として定義される。拡張モード設定情報は、拡張モードであるか否かを示し、例えば、DataType[5:3]が3’b111である場合には拡張モードであることを示す。また、拡張モードのタイプとして、拡張モード0、拡張モード1、拡張モード2、および拡張モード3の4つのタイプが用意されるとき、拡張タイプ設定情報は、それらのうちの、いずれのタイプであるかを示す。例えば、DataType[1:0]が2’b00である場合には、拡張モードのタイプが拡張モード0であることを示す。
 そして、拡張モード0(DataType[1:0]=2’b00)では、例えば、ペイロードが4つに分離されたパケット構造が定義される。即ち、拡張モード0におけるペイロードは、図3に示すように、拡張パケットヘッダ(ePH:extended Packet Header)、オプショナル拡張パケットヘッダ(OePH:Optional extended Packet Header)、レガシーペイロード(Legacy Payload)、および、オプショナル拡張パケットフッタ(OePF:Optional extended Packet Footer)に分離される。なお、拡張パケットヘッダは、繰り返し送信してもよい。
 拡張パケットヘッダは、既存のCSI-2規格のペイロードに相当する先頭に配置され、拡張モードでは必ず送信する必要がある。例えば、拡張パケットヘッダは、図示するように、SROIの識別フラグ、拡張VC(VirtualChannel)、拡張DataType、OePHの選択フラグ、およびOePFの選択フラグなどの設定情報で構成される。ここで、拡張VCにより、既存のCSI-2規格では4ビットであったVCが8ビットに拡張され、拡張DataTypeにより、既存のCSI-2規格では4ビットであったDataTypeが8ビットに拡張される。
 例えば、D-PHY用のパケットでは、既存のパケットヘッダのVCが既に4ビット存在しており、拡張パケットヘッダの拡張VCを4ビットと定義することにより、合計で8ビットとすることができる。具体的には、OePH[7:0] = {5’h00,RSID,XY_POS,MC}、OePF[3:0] = {3’h0,pCRC}と定義することができ、それぞれの用途に必要なパケット送信のON/OFFを制御することができる。
 オプショナル拡張パケットヘッダおよびオプショナル拡張パケットフッタは、用途に応じて選択的に伝送される。
 レガシーペイロードは、既存のCSI-2の規格と同一のペイロードに相当する。
 このように、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタを必要に応じて設定することで、様々な用途に対応したデータを送信することができるようになる。また、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタで伝送されるデータは、26bit+6bitのECC(Error Correction Code)とする。これにより、既存のパケットヘッダの回路を流用して回路規模の増大を抑制し、かつ、エラー耐性の向上を図ることができる。
 このようなD-PHY用の拡張パケットの具体的な適用例として、図4には、物理層がD-PHYである場合にCSI-2の拡張モードで用いられるショートパケット(以下、D-PHY用の拡張ショートパケットと称する)のパケット構造が示されている。同様に、図5には、物理層がD-PHYである場合にCSI-2の拡張モードで用いられるロングパケット(以下、D-PHY用の拡張ロングパケットと称する)のパケット構造が示されている。
 図4に示すようなD-PHY用の拡張ショートパケットにおいて、パケットヘッダに格納されているデータタイプの拡張タイプ設定情報は、拡張モードのタイプが拡張モード0であること(DT[5:0]=0x1C(5’b111_0_0))を示している。また、拡張パケットヘッダに格納されているデータタイプのショートパケット設定情報は、ショートパケットであること(DT[7:0]=0x00 (Frame Start Code(Short Packet)))を示している。
 このように、拡張モードであり、かつ、拡張パケットヘッダに格納されているデータタイプがDT[7:0]=0x00~0x0Fである場合、拡張ショートパケットとし、オプショナル拡張パケットヘッダには必ず、拡張ショートパケットのShort Packet Data Fieldを含むデータが伝送される。このShort Packet Data Fieldは、既存のCSI-2の規格で定義されたものと同一である。
 なお、拡張ショートパケットの送信時には、オプショナル拡張パケットヘッダのうち、MC(GLD用MessageCount)とRSID(車載用行番号とSourceID)は送信しても良いが、レガシーペイロードとpCRCは不要であるため、送信禁止である。仮に、それらを誤って送信した場合には、受信側で無視される。
 そして、図4に示すようなパケット構造の拡張ショートパケットは、既存のCSI-2の規格に従った拡張ショートパケットと比較して、データタイプおよび仮想チャネルのビット幅を拡張することができ、オプショナル拡張パケットヘッダで定義される様々な用途に対応することができる。また、これらの機能が必要でない場合は、既存のCSI-2の規格に従った拡張ショートパケットを、拡張ロングパケットと一緒に送信するようにしてもよい。
 図5に示すようなD-PHY用の拡張ロングパケットにおいて、パケットヘッダに格納されているデータタイプの拡張タイプ設定情報は、拡張モードのタイプが拡張モード0であること(DT[5:0]=0x1C(5’b111_0_0))を示している。また、拡張パケットヘッダに格納されているデータタイプのショートパケット設定情報は、ショートパケット以外であること(DT[7:0]は0x00~0x0F以外(=拡張LongPackt))を示している。従って、拡張ロングパケットでは、Short Packet Data Fieldを含むデータは送信されない。
 また、拡張パケットヘッダの設定に従い、オプショナル拡張パケットヘッダ、レガシーペイロード、およびオプショナル拡張パケットフッタが、既存のCSI-2の規格でのペイロードに格納して伝送される。このように、既存のペイロードに格納して伝送されるため、既存のSerDes送信回路34およびSerDes受信回路35(図2)には、既存のペイロードで伝送される画像データと同様に認識され、そのまま後段に伝送される。
 そして、最後段のアプリケーションプロセッサ22は、パケットヘッダのデータタイプDT[5:0]によって、拡張モードと判定することができる。従って、アプリケーションプロセッサ22は、ペイロードの中身を、拡張パケットヘッダから順に解釈し、所望の拡張モードのデータを取り出すことができる。
 図6には、物理層がC-PHYである場合にCSI-2の拡張モードで用いられるパケット(以下、C-PHY用の拡張パケットと称する)の全体的なパケット構造が示されている。なお、図6に示すC-PHY用の拡張パケットにおいて、図3のD-PHY用の拡張パケットと共通する構成については説明を省略し、異なる構成について説明を行う。
 例えば、C-PHY用の拡張パケットでは、図3のD-PHY用の拡張パケットと同様に、データタイプで拡張モードを識別し、アプリケーションプロセッサ22で実行される各アプリケーションに応じたデータは、すべてペイロードに埋め込まれて伝送される。
 図6に示すように、C-PHY用の拡張パケットは、既存のCSI-2規格に従ったC-PHY用のパケットと同様に、パケットヘッダを2回伝送し、C-PHYが16bitを7symbolに変換する都合上、16bit単位でデータを並べる。また、ペイロードの先頭には拡張パケットヘッダが配置されるが、仮想チャネルに関しては、C-PHYの場合、既存のパケットヘッダの先頭がその為にReserveとなっていたため、拡張パケットヘッダには仮想チャネルは格納されない。もちろん、D-PHY用の拡張パケットと同様に、拡張パケットヘッダに仮想チャネルを格納してもよい。
 また、オプショナル拡張パケットヘッダおよびオプショナル拡張パケットフッタはビット数が多いため、OePHFというフラグを準備し、このフラグが1の場合、OePH/OePF情報が次に伝送される。そして、ePH情報およびOePH情報の後、拡張パケットヘッダとしてCRCを伝送し、同様に構成されるパケットヘッダを2回繰り返して伝送する。このように、既存のパケットヘッダが2回伝送される仕組みと構造を同じにすることで、回路再利用性およびエラー耐性を両立することができる。
 このようなC-PHY用の拡張パケットの具体的な適用例として、図7には、物理層がC-PHYである場合にCSI-2の拡張モードで用いられるショートパケット(以下、C-PHY用の拡張ショートパケットと称する)のパケット構造が示されている。同様に、図8には、物理層がC-PHYである場合にCSI-2の拡張モードで用いられるロングパケット(以下、C-PHY用の拡張ロングパケットと称する)のパケット構造が示されている。
 なお、図7に示すC-PHY用の拡張ショートパケットは、図4に示したD-PHY用の拡張ショートパケットとパケット構造に大きな差異はなく、図8に示すC-PHY用の拡張ロングパケットは、図5に示したD-PHY用の拡張ロングパケットとパケット構造に大きな差異はない。
 <イメージセンサおよびアプリケーションプロセッサの構成例>
 (イメージセンサの構成例)
 図9は、拡張モード対応CSI-2送信回路31を備えるイメージセンサ21の構成例を示すブロック図である。
 図9に示すように、イメージセンサ21は、拡張モード対応CSI-2送信回路31の他に、画素41、AD変換器42、画像処理部43、画素CRC演算部44、物理層処理部45、I2C/I3Cスレーブ46、およびレジスタ47を備えて構成される。また、拡張モード対応CSI-2送信回路31は、パッキング部51、パケットヘッダ生成部52、拡張パケットヘッダ生成部53、拡張パケットフッタ生成部54、選択部55および56、CRC演算部57、レーン分配部58、CCIスレーブ59、並びに、コントローラ60を備えて構成される。
 画素41は、受光した光の光量に応じたアナログの画素信号を出力し、AD変換器(ADC:Analog-to-Digital Converter)42は、画素41から出力される画素信号をデジタル変換して画像処理部43に供給する。画像処理部(ISP:Image Signal Processor)43は、画素信号に基づく画像に対する各種の画像処理を施して得られる画像データを画素CRC演算部44およびパッキング部51に供給する。また、画像処理部43は、画像データが有効であるか否かを示すデータイネーブル信号data_enをパッキング部51およびコントローラ60に供給する。
 画素CRC演算部44は、画像処理部43から供給される画像データにおける画素ごとのCRCを演算して求め、そのCRCを拡張パケットフッタ生成部54に供給する。
 物理層処理部45は、C-PHYおよびD-PHYの両方の物理層処理を実行することができる。例えば、物理層処理部45は、コントローラ60から供給されるC層イネーブル信号cphy_enが有効である場合にはC-PHYの物理層処理を実行し、C層イネーブル信号cphy_enが無効である場合にはD-PHYの物理層処理を実行する。そして、物理層処理部45は、レーン分配部58により4レーンに分割されたパケットを、アプリケーションプロセッサ22へ送信する。
 I2C/I3Cスレーブ46は、I2C(Inter-Integrated Circuit)またはI3C(Improved Inter Integrated Circuits)の規格に基づき、アプリケーションプロセッサ22のI2C/I3Cマスタ72(図10)による主導に従って通信を行う。
 レジスタ47には、アプリケーションプロセッサ22から送信されてくる各種の設定が、I2C/I3Cスレーブ46およびCCIスレーブ59を介して書き込まれる。ここで、レジスタ47に書き込まれる設定としては、例えば、CSI-2規格に従った通信設定や、拡張モードの使用の有無を示す拡張モード設定、拡張モードでの通信で必要となる固定の通信設定などがある。
 パッキング部51は、画像処理部43から供給される画像データを、パケットのペイロードに格納するパッキング処理を行い、そのペイロードを選択部55およびレーン分配部58に供給する。
 パケットヘッダ生成部52は、コントローラ60から供給されるパケットヘッダ生成指示信号ph_goに従って、パケットヘッダの生成が指示されると、パケットヘッダを生成して選択部55およびレーン分配部58に供給する。
 即ち、パケットヘッダ生成部52は、パケットで伝送されるデータについて設定された条件を示す設定情報、例えば、データのタイプを示すデータタイプを格納するパケットヘッダを、既存のCSI-2規格に従って生成する。また、パケットヘッダ生成部52は、パケットで伝送されるデータのタイプを示す設定情報であるデータタイプにおいて、既存のCSI-2規格では未使用と定義されている未使用領域に、拡張ヘッダを使用する拡張モードであるか否かを示す拡張モード設定情報を格納する。さらに、パケットヘッダ生成部52は、未使用領域に、拡張モードとして用意される複数のタイプの拡張モードのうちの、いずれのタイプであるかを示す拡張タイプ設定情報を格納する。
 拡張パケットヘッダ生成部53は、コントローラ60から供給される拡張パケットヘッダ生成指示信号eph_goおよび拡張パケットヘッダイネーブル信号ePH_enに従って、拡張パケットヘッダおよびオプショナル拡張パケットヘッダそれぞれを生成し、選択部56およびレーン分配部58に供給する。また、拡張パケットヘッダ生成部53には、イメージセンサ21の用途に応じて、車載用行番号やソースID(identification)などが供給され、必要に応じて、それらが拡張パケットヘッダまたはオプショナル拡張パケットヘッダに格納される。
 即ち、拡張パケットヘッダ生成部53は、パケットヘッダ生成部52により生成されるパケットヘッダとは別に、例えば、図3に示したような設定情報を格納する拡張パケットヘッダを生成する。さらに、拡張パケットヘッダ生成部53は、オプショナル拡張パケットヘッダを送信する場合、オプショナル拡張パケットヘッダを送信するか否かを示すオプショナル拡張パケットヘッダ設定情報(OePH[7:0])として、オプショナル拡張パケットヘッダを送信することを示すオプショナル拡張パケットヘッダ設定情報を拡張パケットヘッダに格納し、拡張パケットヘッダに続けてオプショナル拡張パケットヘッダを生成する。
 拡張パケットフッタ生成部54は、コントローラ60から供給される拡張パケットフッタ生成指示信号epf_goおよび拡張パケットヘッダイネーブル信号ePF_enに従って、オプショナル拡張パケットフッタを生成し、選択部56およびレーン分配部58に供給する。
 即ち、拡張パケットフッタ生成部54は、拡張モードにおいて伝送されるパケットが、既存のCSI-2規格においてペイロードとして伝送されるデータを格納する拡張ロングパケットである場合に、データが格納されるレガシーペイロードに続けて配置されるオプショナル拡張パケットフッタを生成する。
 また、パケットヘッダ生成部52、拡張パケットヘッダ生成部53、および拡張パケットフッタ生成部54には、コントローラ60からC層イネーブル信号cphy_enが供給される。そして、C層イネーブル信号cphy_enが有効を示している場合、パケットヘッダ生成部52はC-PHY用のパケットヘッダを生成し、拡張パケットヘッダ生成部53はC-PHY用の拡張パケットヘッダおよびオプショナル拡張パケットヘッダを生成し、拡張パケットフッタ生成部54はC-PHY用のオプショナル拡張パケットフッタを生成する。一方、C層イネーブル信号cphy_enが無効を示している場合、パケットヘッダ生成部52はD-PHY用のパケットヘッダを生成し、拡張パケットヘッダ生成部53はD-PHY用の拡張パケットヘッダおよびオプショナル拡張パケットヘッダを生成し、拡張パケットフッタ生成部54はD-PHY用のオプショナル拡張パケットフッタを生成する。
 選択部55は、コントローラ60から供給されるC層イネーブル信号cphy_enに従って、C層イネーブル信号cphy_enが有効である場合、パケットヘッダ生成部52から供給されるパケットヘッダを選択し、選択部56へ供給する。一方、選択部55は、C層イネーブル信号cphy_enが無効である場合、パッキング部51から供給されるペイロードを選択し、選択部56へ供給する。
 選択部56は、コントローラ60から供給されるデータ選択信号data_selに従って、選択部55を介して選択的に供給されるパケットヘッダまたはペイロード、拡張パケットヘッダ生成部53から供給される拡張パケットヘッダおよびオプショナル拡張パケットヘッダ、拡張パケットフッタ生成部54から供給されるオプショナル拡張パケットフッタのうち、いずれかを選択してCRC演算部57に供給する。
 CRC演算部57は、選択部56を介して選択的に供給されるパケットヘッダ、ペイロード、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、またはオプショナル拡張パケットフッタのCRCを演算して求め、そのCRCをレーン分配部58に供給する。
 レーン分配部58は、コントローラ60の制御に従って、パッキング部51から供給されるペイロード、パケットヘッダ生成部52から供給されるパケットヘッダ、拡張パケットヘッダ生成部53から供給される拡張パケットヘッダおよびオプショナル拡張パケットヘッダ、拡張パケットフッタ生成部54から供給されるオプショナル拡張パケットフッタ、並びに、CRC演算部57から供給されるCRCを、CSI-2の規格に従った4レーンに分配して、物理層処理部45に供給する。
 CCI(Camera Control Interface)スレーブ59は、CSI-2の規格に基づき、アプリケーションプロセッサ22のCCIマスタ88(図10)による主導に従って通信を行う。
 コントローラ60は、レジスタ47に記憶されている各種の設定を読み出して、それらの設定に従って、拡張モード対応CSI-2送信回路31を構成する各ブロックに対する制御を行う。例えば、コントローラ60は、送信対象のデータの内容に応じて、既存のCSI-2規格に従ったパケット構造のパケットの送信と、拡張モード時におけるパケット構造のパケットの送信との切り替えを制御する。
 このようにイメージセンサ21は構成されており、図3乃至図8を参照して説明したようなパケット構造の拡張パケットを生成して、アプリケーションプロセッサ22へ送信することができる。
 (アプリケーションプロセッサの構成例)
 図10は、拡張モード対応CSI-2受信回路32を備えるアプリケーションプロセッサ22の構成例を示すブロック図である。
 図10に示すように、アプリケーションプロセッサ22は、拡張モード対応CSI-2受信回路32の他に、物理層処理部71、I2C/I3Cマスタ72、レジスタ73、およびコントローラ74を備えて構成される。また、拡張モード対応CSI-2受信回路32は、パケットヘッダ検出部81、レーン併合部82、解釈部83、選択部84および85、CRC演算部86、アンパッキング部87、並びに、CCIマスタ88を備えて構成される。
 物理層処理部71は、C-PHYおよびD-PHYの両方の物理層処理を実行することができる。上述したように、イメージセンサ21の物理層処理部45では、C-PHYおよびD-PHYのうちの、いずれか一方の物理層処理が行われ、物理層処理部71は、物理層処理部45において実行されたのと同一の物理層処理を実行する。
 I2C/I3Cマスタ72は、I2CまたはI3Cの規格に基づき、イメージセンサ21のI2C/I3Cスレーブ46(図9)との通信を主導して行う。
 レジスタ73には、コントローラ74により、イメージセンサ21のレジスタ47に書き込むべき各種の設定が記録される。
 コントローラ74は、アプリケーションプロセッサ22を構成する各ブロックに対する制御を行う。
 パケットヘッダ検出部81は、物理層処理部71から供給されるパケットからパケットヘッダを検出し、パケットヘッダに格納されているデータタイプを確認する。そして、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張モード設定情報が拡張モードであることを示す場合(DataType[5:3]=3’b111)、拡張モードを示す拡張モード検出フラグを、解釈部83、選択部84、および選択部85に供給する。また、パケットヘッダ検出部81は、パケットヘッダに基づいて、分割されている4レーンの併合を有効とするか否かを示す併合イネーブル信号mrg_enをレーン併合部82に供給する。
 即ち、パケットヘッダ検出部81は、既存のCSI-2規格に従って、パケットで伝送されるデータについて設定された条件を示す設定情報(データタイプなど)が格納されるパケットヘッダを検出する。このとき、パケットヘッダ検出部81は、パケットで伝送されるデータのタイプを示す設定情報であるデータタイプにおいて、既存のCSI-2規格では未使用と定義されている未使用領域に格納されている、拡張ヘッダを使用する拡張モードであるか否かを示す拡張モード設定情報に従って、拡張モード検出フラグを出力することで、既存のCSI-2規格に従ったパケット構造のパケットの受信と、拡張モード時におけるパケット構造のパケットの受信との切り替えを行わせる。また、パケットヘッダ検出部81は、既存のCSI-2規格では未使用と定義されているデータタイプの未使用領域に格納されている拡張モードタイプ情報に従って、拡張モードとして用意される複数のタイプの拡張モードのうちの、いずれのタイプの拡張モードであるかを認識する。
 レーン併合部82は、パケットヘッダ検出部81から供給される併合イネーブル信号mrg_enが有効である場合、物理層処理部71から供給される4レーンに分割されたパケットを併合する。そして、レーン併合部82は、1レーンのパケットを解釈部83、選択部84、および選択部85に供給する。
 解釈部83は、パケットヘッダ検出部81から供給される拡張モード検出フラグが、拡張モードであることを示している場合、拡張モードのパケット構造に基づいて、レーン併合部82から供給されるパケットから、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタを読み出す。そして、解釈部83は、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタに格納されている設定情報を解釈する。
 即ち、解釈部83は、拡張ヘッダとして、既存のCSI-2規格に従ったペイロードの先頭に配置される拡張パケットヘッダを受信し、拡張パケットヘッダに格納されている設定情報を解釈する。また、解釈部83は、拡張パケットヘッダに格納されているオプショナル拡張パケットヘッダ設定情報が、用途に応じて選択的に伝送されるオプショナル拡張パケットヘッダを送信することを示している場合、拡張パケットヘッダに続けてオプショナル拡張パケットヘッダを受信し、オプショナル拡張パケットヘッダに格納されている設定情報を解釈する。さらに、解釈部83は、拡張モードにおいて伝送されるパケットが、既存のCSI-2規格においてペイロードとして伝送されるデータを格納する拡張ロングパケットである場合に、データが格納されるレガシーペイロードに続けて配置されるオプショナル拡張パケットフッタを受信し、オプショナル拡張パケットフッタを解釈する。
 そして、解釈部83は、例えば、オプショナル拡張パケットヘッダに格納されている車載用行番号やソースIDなどを読み出して、後段のLSI(図示せず)へ出力する。
 なお、解釈部83は、パケットヘッダ検出部81から供給される拡張モード検出フラグが、拡張モードであることを示していない場合には、即ち、既存のパケット構造のパケットが供給されている場合には、上述したような処理を行わずに停止する。
 選択部84は、パケットヘッダ検出部81から供給される拡張モード検出フラグに従い、既存パケットのパケット構造または拡張パケットのパケット構造に基づいて、選択的に、アンパッキング部87へデータを供給する。
 選択部85は、パケットヘッダ検出部81から供給される拡張モード検出フラグに従い、既存パケットのパケット構造または拡張パケットのパケット構造に基づいて、選択的に、CRC演算部86へデータを供給する。
 CRC演算部86は、選択部85を介して選択的に供給されるパケットヘッダ、ペイロード、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、またはオプショナル拡張パケットフッタのCRCを演算する。そして、CRC演算部86は、CRCエラーが検出された場合、その旨を示すcrcCRCエラー検出信号を後段のLSI(図示せず)へ出力する。
 アンパッキング部87は、選択部84を介して選択的に供給されるペイロードに格納されている画像データを取り出すアンパッキング処理を行い、取得した画像データを後段のLSI(図示せず)へ出力する。
 CCIマスタ88は、CSI-2の規格に基づき、イメージセンサ21のCCIスレーブ59(図9)との通信を主導して行う。
 このようにアプリケーションプロセッサ22は構成されており、イメージセンサ21から送信されてくる拡張パケットを受信して、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタに格納されている設定情報を解釈して、画像データを取得することができる。
 <通信処理>
 図11乃至図14を参照して、イメージセンサ21およびアプリケーションプロセッサ22で行われる通信処理について説明する。
 図11は、イメージセンサ21がパケットを送信する処理を説明するフローチャートである。
 例えば、バス23を介して、イメージセンサ21がアプリケーションプロセッサ22に接続されると処理が開始される。ステップS11において、コントローラ60は、アプリケーションプロセッサ22と通信を開始するにあたって、拡張モードを使用するか否かを判定する。例えば、コントローラ60は、レジスタ47に記憶されている拡張モード設定を確認し、拡張モードを使用することを示す拡張モード設定がアプリケーションプロセッサ22により書き込まれている場合、拡張モードを使用すると判定する。
 ステップS11において、コントローラ60が、拡張モードを使用しないと判定した場合、処理はステップS12に進む。
 ステップS12において、I2C/I3Cスレーブ46は、アプリケーションプロセッサ22から(後述する図13のステップS54で)送信されてくる画像データの送信開始命令を受信する。さらに、I2C/I3Cスレーブ46は、その送信開始命令とともに送信されてくるCSI-2規格に従った通信設定を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
 ステップS13において、イメージセンサ21では、レジスタ47に記憶されている通信設定に基づいて、既存のCSI-2規格に従ったパケット構造のパケットをアプリケーションプロセッサ22へ送信する、従来のパケット送信処理が実行される。
 一方、ステップS11において、コントローラ60が、拡張モードを使用すると判定した場合、処理はステップS14に進む。
 ステップS14において、I2C/I3Cスレーブ46は、拡張モードでの通信で必要となる固定の通信設定(例えば、GLD時のPH/PFのレーンごとのコピーなど)を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
 ステップS15において、I2C/I3Cスレーブ46は、アプリケーションプロセッサ22から(後述する図13のステップS57で)送信されてくる画像データの送信開始命令を受信する。さらに、I2C/I3Cスレーブ46は、その送信開始命令とともに送信されてくるCSI-2規格に従った通信設定を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
 ステップS16において、コントローラ60は、パケットの送信を開始するか否かを判定し、パケットの送信を開始すると判定するまで処理を待機する。
 そして、ステップS16において、パケットの送信を開始すると判定された場合、処理はステップS17に進み、コントローラ60は、拡張モードで送信すべきデータであるか否かを判定する。ここで、コントローラ60は、送信対象のデータの内容に応じて、例えば、後述するような適用例のユースケースで送信されるようなデータである場合、拡張モードで送信すべきデータであると判定する。
 ステップS17において、コントローラ60が、拡張モードで送信すべきデータであると判定した場合、処理はステップS18に進み、拡張モードに対応した拡張パケットを送信する拡張モード送信処理(図12参照)が行われる。
 一方、ステップS17において、コントローラ60が、拡張モードで送信すべきデータでないと判定した場合、処理はステップS19に進む。
 ステップS19において、コントローラ60は、ショートパケットを送信するか否かを判定する。例えば、コントローラ60は、フレーム開始時およびフレーム終了時にショートパケットを送信すると判定する。
 ステップS19において、コントローラ60がショートパケットを送信すると判定した場合、処理はステップS20に進む。ステップS20において、パケットヘッダ生成部52がパケットヘッダを生成して、従来のパケット構造のショートパケットをアプリケーションプロセッサ22へ送信する。
 一方、ステップS19において、コントローラ60がショートパケットを送信しない(即ち、ロングパケットを送信する)と判定した場合、処理はステップS21に進む。ステップS21において、パッキング部51が画像データをペイロードに格納し、CRC演算部57がCRCを求めることにより、従来のパケット構造のロングパケットを生成して、アプリケーションプロセッサ22へ送信する。
 ステップS18、ステップS20、またはステップS21の処理後、処理はステップS22に進み、コントローラ60は、パケット送信処理を終了する。その後、処理はステップS16に戻り、以下、次のパケットを対象として、同様にパケットを送信する処理が繰り返して行われる。
 図12は、図11のステップS18の処理で行われる拡張モード送信処理を説明するフローチャートである。
 ステップS31において、パケットヘッダ生成部52は、VCやデータタイプ、WCなどを格納したパケットヘッダを生成し、アプリケーションプロセッサ22へ送信する。このとき、パケットヘッダ生成部52は、パケットヘッダのデータタイプに、拡張モードであることを示す拡張モード設定情報(DataType[5:3]=3’b111)、および、拡張モードのモード設定が拡張モード0であることを識別する拡張タイプ設定情報(DataType[1:0] =2’b00)を書き込む。
 ステップS32において、アプリケーションプロセッサ22は、拡張ショートパケットを送信するか否かを判定する。例えば、コントローラ60は、フレーム開始時およびフレーム終了時に拡張ショートパケットを送信すると判定する。
 ステップS32において、アプリケーションプロセッサ22が、拡張ショートパケットを送信すると判定した場合、処理はステップS33に進む。
 ステップS33において、拡張パケットヘッダ生成部53は、ペイロードの1バイト目で、データタイプ(DataType[7:0])をショートパケットと設定した拡張パケットヘッダを送信する。このとき、拡張パケットヘッダ生成部53は、拡張パケットヘッダに格納される各種の設定(例えば、OePH[7:0]やOePF[3:0]など)を行う。
 ステップS34において、拡張パケットヘッダ生成部53は、ペイロードの2バイト目に、フレームナンバー(FN:FrameNumber)を格納して送信する。
 ステップS35において、拡張パケットヘッダ生成部53は、ステップS33で行われた設定(OePH[7:0])に従って、図4に示したようなオプショナル拡張パケットヘッダを生成して送信する。
 ステップS36において、CRC演算部57は、CRCを求めて、パケットフッタとして送信する。
 一方、ステップS32において、アプリケーションプロセッサ22が、拡張ショートパケットを送信しない(即ち、ロングパケットを送信する)と判定した場合、処理はステップS37に進む。
 ステップS37において、拡張パケットヘッダ生成部53は、ペイロードの1バイト目で、データタイプ(DataType[7:0])をショートパケット以外と設定した拡張パケットヘッダを送信する。このとき、拡張パケットヘッダ生成部53は、拡張パケットヘッダに格納される各種の設定(例えば、OePH[7:0]やOePF[3:0]など)を行う。
 ステップS38において、拡張パケットヘッダ生成部53は、ステップS37で行われた設定(OePH[7:0])に従って、図5に示したようなオプショナル拡張パケットヘッダを生成して送信する。
 ステップS39において、パッキング部51は、画像処理部43から供給される画像データをパッキングし、レガシーペイロードを生成して送信する。
 ステップS40において、拡張パケットフッタ生成部54は、ステップS37で行われた設定(OePF[3:0])に従って、図4に示したようなオプショナル拡張パケットフッタを生成して送信する。
 ステップS41において、CRC演算部57は、CRCを求めて、パケットフッタとして送信する。
 そして、ステップS36またはS41の処理後、拡張モード送信処理は終了される。
 以上のように、イメージセンサ21は、拡張ショートパケットまたは拡張ロングパケットを生成して送信することができる。
 図13は、アプリケーションプロセッサ22がパケットを受信する処理を説明するフローチャートである。
 例えば、バス23を介して、イメージセンサ21がアプリケーションプロセッサ22に接続されると処理が開始される。ステップS51において、コントローラ74は、イメージセンサ21の初期設定(例えば、物理層としてC-PHYおよびD-PHYのどちらを使用するかなど)をレジスタ73に書き込み、CCIマスタ88を介してI2C/I3Cマスタ72によりイメージセンサ21へ送信する。これにより、その初期設定が、イメージセンサ21のレジスタ47に書き込まれる。
 ステップS52において、コントローラ74は、イメージセンサ21が拡張モードに対応しているか否かを認識する。例えば、コントローラ74は、I2C/I3Cマスタ72によりイメージセンサ21のレジスタ47に記憶されている設定値(例えば、拡張PH/PF対応capability)を取得することで、イメージセンサ21が拡張モードに対応しているか否かを認識することができる。または、コントローラ74は、例えば、マニュアルなどによる入力に基づいて、事前に、イメージセンサ21が拡張モードに対応しているか否かを認識することができる。
 ステップS53において、コントローラ74は、イメージセンサ21が拡張モードに対応しており、かつ、アプリケーションプロセッサ22が実行するアプリケーションによって拡張モードの使用が求められているか否かを判定する。
 ステップS53において、コントローラ74が、イメージセンサ21が拡張モードに対応していない、または、拡張モードの使用が求められていないと判定した場合、処理はステップS54に進む。
 ステップS54において、コントローラ74は、I2C/I3Cマスタ72により画像データの送信開始命令をイメージセンサ21へ送信する。このとき、コントローラ74は、CSI-2規格に従った通信設定も送信させる。
 ステップS55において、アプリケーションプロセッサ22では、ステップS54で送信した通信設定に基づいて、既存のCSI-2規格に従ったパケット構造のパケットを受信する、従来のパケット受信処理が行われる。
 一方、ステップS53において、コントローラ74が、イメージセンサ21が拡張モードに対応しており、かつ、アプリケーションプロセッサ22が実行するアプリケーションによって拡張モードの使用が求められていると判定した場合、処理はステップS56に進む。
 ステップS56において、I2C/I3Cマスタ72は、拡張モードでの通信が開始される前に、拡張モードでの通信に必要となる固定の通信設定を送信する。これにより、その固定の通信設定が、イメージセンサ21のレジスタ47に書き込まれる(図11のステップS14)。
 ステップS57において、コントローラ74は、I2C/I3Cマスタ72により画像データの送信開始命令をイメージセンサ21へ送信する。このとき、コントローラ74は、CSI-2規格に従った通信設定も送信させる。
 ステップS58において、パケットヘッダ検出部81は、物理層処理部71から供給されるデータを確認することによりパケットの受信を開始したか否かを判定し、パケットの受信を開始したと判定するまで処理を待機する。例えば、パケットヘッダ検出部81は、物理層処理部71から供給されるデータからパケットヘッダを検出した場合、パケットの受信を開始したと判定する。
 ステップS58において、パケットヘッダ検出部81が、パケットの受信を開始したと判定した場合、処理はステップS59に進む。
 ステップS59において、パケットヘッダ検出部81は、ステップS58で検出したパケットヘッダのデータタイプを確認して、受信を開始したパケットが拡張モードに対応した拡張パケットであるか否かを判定する。例えば、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張モード設定情報が拡張モードであることを示す場合(DataType[5:3]=3’b111)、受信を開始したパケットが拡張パケットであると判定する。
 ステップS59において、パケットヘッダ検出部81が、受信を開始したパケットが拡張パケットであると判定した場合、処理はステップS60に進み、拡張パケットを受信する拡張モード受信処理(図14参照)が行われる。
 一方、ステップS59において、パケットヘッダ検出部81が、受信を開始したパケットが拡張パケットでないと判定した場合、処理はステップS61に進む。
 ステップS61において、パケットヘッダ検出部81は、ステップS58で検出したパケットヘッダのデータタイプ(DataType[5:0])を確認して、受信を開始したパケットがショートパケットであるか否かを判定する。
 ステップS61において、パケットヘッダ検出部81が、受信を開始したパケットがショートパケットであると判定した場合、処理はステップS62に進む。ステップS62において、パケットヘッダ検出部81は、イメージセンサ21から送信されてくる従来のパケット構造のショートパケットを受信する。
 一方、ステップS61において、パケットヘッダ検出部81が、受信を開始したパケットがショートパケットでない(即ち、ロングパケットの受信を開始している)と判定した場合、処理はステップS63に進む。ステップS63において、アンパッキング部87は、イメージセンサ21から送信されてくる従来のパケット構造のロングパケットのペイロードを受信して画像データを取り出し、CRC演算部86は、パケットヘッダに続けて送信されてくるWC+1バイト目をCRCとして受信する。
 ステップS60、ステップS62、またはステップS63の処理後、処理はステップS64に進み、コントローラ74は、パケット受信処理を終了する。その後、処理はステップS58に戻り、以下、次のパケットを対象として、同様にパケットを受信する処理が繰り返して行われる。
 図14は、図13のステップS60の処理で行われる拡張モード受信処理を説明するフローチャートである。
 ステップS71において、パケットヘッダ検出部81は、拡張モードのモード設定が拡張モード0であるか否かを判定する。例えば、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張タイプ設定情報が拡張モード0であることを示す場合(DataType[1:0] =2’b00)、拡張モードのモード設定が拡張モード0であると判定する。
 ステップS71において、パケットヘッダ検出部81が、拡張モードのモード設定が拡張モード0であると判定した場合、処理はステップS72に進む。ステップS72において、解釈部83は、ペイロードの1バイト目を拡張パケットヘッダとして受信する。
 ステップS73において、解釈部83は、ステップS72で受信した拡張パケットヘッダのデータタイプ(DataType[7:0])を確認して、受信を開始したパケットが拡張ショートパケットであるか否かを判定する。
 ステップS73において、解釈部83が、拡張ショートパケットであると判定した場合、処理はステップS74に進む。ステップS74において、解釈部83は、ステップS72で受信した拡張パケットヘッダに格納されている設定(OePH[7:0])に従って、オプショナル拡張パケットヘッダを受信する。
 ステップS75において、CRC演算部86は、オプショナル拡張パケットヘッダに続けて送信されてくるWC+1バイト目をCRCとして受信する。
 一方、ステップS73において、解釈部83が、拡張ショートパケットでない(即ち、拡張ロングパケットの受信を開始している)と判定した場合、処理はステップS76に進む。ステップS76において、解釈部83は、ステップS72で受信した拡張パケットヘッダに格納されている設定(OePH[7:0])に従って、オプショナル拡張パケットヘッダを受信する。
 ステップS77において、アンパッキング部87は、イメージセンサ21から送信されてくる拡張ロングパケットのレガシーペイロードを受信して画像データを取り出す。
 ステップS78において、解釈部83は、ステップS72で受信した拡張パケットヘッダに格納されている設定(OePF[3:0])に従って、オプショナル拡張パケットフッタを受信する。
 ステップS79において、CRC演算部86は、オプショナル拡張パケットフッタに続けて送信されてくるWC+1バイト目をCRCとして受信する。
 そして、ステップS71で拡張モードのモード設定が拡張モード0でないと判定した場合、ステップS75の処理後、またはステップS79の処理後、拡張モード受信処理は終了される。
 以上のように、アプリケーションプロセッサ22は、拡張ショートパケットまたは拡張ロングパケットを受信して、データを取得することができる。
 <パケット構造の第2の構造例>
 図15乃至図18を参照して、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32の間の通信で用いられるパケットのパケット構造の第2の構造例について説明する。
 上述の図3乃至図8に示した第1の構造例では、既存のCSI-2規格の互換性を維持することを重視して、パケットヘッダおよびパケットフッタが既存のCSI-2規格と同一のパケット構造とし、拡張パケットヘッダ、オプショナル拡張パケットヘッダ、およびオプショナル拡張パケットフッタによりパケット構造の拡張が図られている。これに対し、以下で説明する第2の構造例では、パケットヘッダおよびパケットフッタを既存のCSI-2規格と異なるものとし、拡張パケットヘッダおよび拡張パケットフッタによりパケット構造の拡張が図られる。
 図15には、物理層がD-PHYである場合にCSI-2の拡張モードで用いられるショートパケット(以下、D-PHY用の拡張ショートパケット)のパケット構造が示されている。
 図15に示すD-PHY用の拡張ショートパケットは、図4に示した第1の構造例のD-PHY用の拡張ショートパケットと同様に、既存のCSI-2規格と同一のパケットヘッダに格納されるデータタイプによって拡張モードが識別される。
 一方、図15に示すD-PHY用の拡張ショートパケットでは、パケットヘッダのデータタイプの次の16ビットに、既存のCSI-2規格に従ったショートパケットと同様に、ショートパケットデータフィールドにフレームナンバーが格納される。そして、パケットヘッダに続いて、図4に示した拡張パケットヘッダと同様に構成される拡張パケットヘッダが送信される。
 従って、受信側となるアプリケーションプロセッサ22は、拡張パケットヘッダに格納されているデータタイプを解釈して、拡張ショートパケットである場合に、パケットヘッダのデータフィールドにフレームナンバーが格納されていることを判別することができる。
 なお、図15に示すD-PHY用の拡張ショートパケットにおけるオプショナル拡張パケットヘッダは、図4に示した第1の構造例のD-PHY用の拡張ショートパケットにおけるオプショナル拡張パケットヘッダと同様に構成される。しかしながら、オプショナル拡張パケットヘッダは、ペイロードに埋め込まれないパケット構造となっていることより、最後にCRCを付与する必要はない。
 図16には、物理層がD-PHYである場合にCSI-2の拡張モードで用いられるロングパケット(以下、D-PHY用の拡張ロングパケット)のパケット構造が示されている。
 図16に示すD-PHY用の拡張ロングパケットでは、拡張データはペイロードに埋め込まず、パケットヘッダまたはパケットフッタの一部として伝送される。従って、先頭のパケットヘッダのWCは既存規格と同様に、あくまでペイロードのバイト長を示す。
 図17には、物理層がC-PHYである場合にCSI-2の拡張モードで用いられるショートパケット(以下、C-PHY用の拡張ショートパケット)のパケット構造が示されている。
 図17に示すC-PHY用の拡張ショートパケットにおける拡張部分は、あくまで既存のCSI-2規格に従ったパケットヘッダの拡張として伝送されるため、フレームナンバーの後に拡張パケットヘッダなど拡張部分が挿入される。そして、既存のCSI-2規格と同様に、パケットヘッダはCRCで終了する。さらに、これらを、SYNCを挟んで2回伝送するパケット構造は、既存のCSI-2規格に従ったショートパケットと同様である。
 図18には、物理層がC-PHYである場合にCSI-2の拡張モードで用いられるロングパケット(以下、C-PHY用の拡張ロングパケット)のパケット構造が示されている。
 図18に示すC-PHY用の拡張ロングパケットは、上述したように、先頭のパケットヘッダのWCは既存規格と同様に、あくまでペイロードのバイト長を示す点で、図8に示した第1の構造例のC-PHY用の拡張ロングパケットと差異がある。
 以上のように図15乃至図18に示す第2の構造例の拡張パケットのパケット構造により、第1の構造例の拡張パケットのパケット構造(図3乃至図8)と同様に、従来よりも多様な用途に対応することが可能となる。
 ただし、第2の構造例の拡張パケットは、既存のペイロードに拡張データが埋め込まれずに、既存のパケットヘッダやフッタが拡張されるパケット構造となっている。このため、第2の構造例の拡張パケットのパケット構造を採用する場合には、第1の構造例の拡張パケットのパケット構造を採用する場合と比較して、従来から用いられている通信システムから変更が必要となるような影響を最小限とすることができない。即ち、例えば、既存のSerDes送信回路34がSerDes受信回路35(図2)に対する変更が必要となる。
 以上のように、第1の構造例の拡張パケットを採用することで、車載など多彩な用途への対応することができ、かつ、従来から用いられている通信システムから変更が必要となるような影響を最小限として、車載システムを構築することができる。
 また、第2の構造例の拡張パケットを採用することで、従来から用いられている通信システムから変更が必要となるものの、車載など多彩な用途への対応することができる。
 <イメージセンサおよびアプリケーションプロセッサの変形例>
 (イメージセンサの変形例)
 図19を参照して、イメージセンサおよびアプリケーションプロセッサの変形例について説明する。
 上述した図9のイメージセンサ21および図10のアプリケーションプロセッサ22を構成する各ブロックは、D-PHY用およびC-PHY用のパケットの両方に対応して処理を行えるように構成されていた。これに対し、例えば、D-PHY用のパケットを専用に処理を行うブロックと、C-PHY用のパケットを専用に処理を行うブロックとの両方を備え、それぞれで処理を切り替えるようにしてもよい。
 図19のAに示すイメージセンサ21Aは、D層処理ブロック部101、C層処理ブロック部102、切り替え部103、およびコントローラ60を備えて構成される。
 D層処理ブロック部101は、図9のイメージセンサ21を構成するブロックのうち、D-PHY用のパケットを専用に処理を行うブロックを有している。C層処理ブロック部102は、図9のイメージセンサ21を構成するブロックのうち、C-PHY用のパケットを専用に処理を行うブロックを有している。切り替え部103は、コントローラ60による制御に従って、物理層にD-PHYを用いる場合には、D層処理ブロック部101において生成されるD-PHY用のパケットを出力し、物理層にC-PHYを用いる場合には、C層処理ブロック部102において生成されるC-PHY用のパケットを出力するように切り替えを行う。
 (アプリケーションプロセッサの変形例)
 図19のBに示すアプリケーションプロセッサ22Aは、切り替え部111、D層処理ブロック部112、C層処理ブロック部113、およびコントローラ74を備えて構成される。
 切り替え部111は、コントローラ74による制御に従って、イメージセンサ21Aから送信されてくるパケットを、D層処理ブロック部112およびC層処理ブロック部113の一方に供給するように切り替えを行う。D層処理ブロック部112は、図10のアプリケーションプロセッサ22を構成するブロックのうち、D-PHY用のパケットを専用に処理を行うブロックを有している。C層処理ブロック部113は、図10のアプリケーションプロセッサ22を構成するブロックのうち、C-PHY用のパケットを専用に処理を行うブロックを有している。
 このように構成されるイメージセンサ21Aおよびアプリケーションプロセッサ22Aでは、通信を開始する前に、コントローラ60およびコントローラ74の間で、使用する物理層を設定することができる。そして、例えば、物理層にD-PHYが用いられる場合には、D層処理ブロック部101において生成されるD-PHY用のパケットが切り替え部103を介して送信され、切り替え部111を介してD層処理ブロック部112に供給されて処理される。また、例えば、物理層にC-PHYが用いられる場合には、C層処理ブロック部102において生成されるC-PHY用のパケットが切り替え部103を介して送信され、切り替え部111を介してC層処理ブロック部113に供給されて処理される。
 <拡張パケットの適用例>
 上述した拡張パケットは、例えば、以下のようなユースケースに適用することが検討されている。
 例えば、拡張パケットは、より高精細な画像(RAW24)を伝送するようなユースケースに適用することが検討される。
 例えば、画像データをRAW形式で送信する際に、既存のCSI-2規格に従ってパケットヘッダに格納されるデータタイプとして、RAW6,RAW7,RAW8,RAW10,RAW12,RAW14,RAW16、およびRAW20が定義されている。これに対し、近年、車載カメラを用いた自動運転に対応するため、より高精細な画像の伝送が期待されている。そこで、拡張パケットを適用してデータタイプのビット数を拡張することで、例えば、拡張パケットヘッダのデータタイプに、より高精細なRAW24を定義することが可能となる。
 また、拡張パケットは、画面上の注目画像領域のみを伝送する技術であるSmartROIに適用することが検討される。
 例えば、現在、スタジアムや空港などには多数のカメラが設置されている。これらのカメラで撮像した画像の全体が、カメラからインターネットなどのネットワークを経由してクラウドサーバに伝送される場合、インターネットの帯域不足や、クラウド側の計算量またはデータ量の増大などが発生することが想定される。そのため、エッジ(カメラ側)で注目画像領域のみを切り出し、その注目画像領域を伝送することで、インターネットの帯域不足や、クラウド側の計算量またはデータ量の増大などを抑制することが期待される。
 このようなSROIを伝送する場合、注目画像領域が画面全体のどこに相当するか受信側に伝えるため、矩形領域(ROI)の左上の座標を一緒に伝送する必要がある。また、受信側からの命令で、所定のタイミングで、撮像画面全体のデータを送る必要がある。従って、例えばフレーム単位でSROI画像と、画像全体(既存のパケットヘッダ)のデータが混在することになる。
 そこで、拡張パケットを適用することで、例えば、X座標およびY座標それぞれ16bit以上の座標データを伝送することが可能となる。
 さらに、拡張パケットは、チャネル劣化した場合においても帯域やレーン数を減らして通信を継続するGLDに適用するユースケースが検討される。なお、GLDは、CSI-2 ver3.0で検討されている提案である。
 例えば、自動運転では、衝突時にカメラを繋ぐケーブルの一部が断線したとしても、断線していないケーブルを使用して通信を継続し、自動的に、安全帯に退避した後に車両を停止することが求められる。そのため、車載用カメラインタフェースが断線検出機能を少なくとも備え、画面上の何行目の情報か示す行番号(16bit)や、どのカメラから送られたことかを示すSourceID(8bit)、伝送番号を示すメッセージカウンタ(16bit)などの情報が必要になる。さらに、上述したようなSROIと組み合わせて使用される場合には、フレーム単位で、これらの情報が伝送されることが考えられる。
 そこで、拡張パケットを適用することで、これらの情報を伝送することが可能となる。
 <E2E protectionに適応した第1の構成例>
 図20乃至図26を参照して、伝送経路上におけるパケット改変等を禁止する規定に適応した構成例について説明する。
 例えば、上述の図2を参照して説明したような構成の通信システム11Aにおいて、イメージセンサ21とアプリケーションプロセッサ22とでインタフェースが異なっている場合、伝送経路上においてパケットを変換することが必要となる。つまり、イメージセンサ21の物理層がD-PHYであって、アプリケーションプロセッサ22の物理層がC-PHYである構成の場合、例えば、SerDes装置26においてD-PHY用からC-PHY用にパケットを変換することが必要となる。
 このように、SerDes装置26においてパケット変換が行われてしまう構成では、例えば、ISO26262(Functional Safety)が定める規定、即ち、伝送経路上におけるパケット改変等を禁止する規定(以下、E2E(End-toEnd) protectionと称する)に違反することになる。
 図20は、本技術を適用した通信システムの第3の実施の形態として、E2E protectionに適応した通信システム201の構成例を示すブロック図である。
 図20に示すように、通信システム201は、イメージセンサ211、SerDes装置212、SerDes装置213、およびアプリケーションプロセッサ214が接続されて構成される。なお、図20は、SERDESがA-PHYの場合を例として記載しているが、FPD-LINK3等のような他のSERDES規格を用いて接続される場合も含まれる。その他、SERDES規格においては、CIS-2のフォーマット(少なくともApplication Specific payload)を保ったまま、当該SERDES規格に基づいて通信が行われてもよい。また、SERDESにおいては、物理層処理部237および247はA-PHY以外にも他のSERDES規格の物理層処理部を複数含んでいてもよく、アプリケーションに応じて、物理層処理部を切り替えることができる。
 イメージセンサ211は、拡張モード対応CSI-2送信回路221、C-PHYあるいはD-PHY、またはその両方に対応した物理層処理部(以下、C/D-PHY物理層処理部と称する)222、I2CあるいはI3C、またはその両方に対応したスレーブ(以下、I2C/I3Cスレーブと称する)223、並びに、CCIスレーブ224を少なくとも有している。
 SerDes装置212は、CSI-2受信回路231、C/D-PHY物理層処理部232、I2C/I3Cマスタ233、CCIマスタ234、CSI-2用A-PHYパケット生成部235、CCI用A-PHYパケット送受信部236、並びに、A-PHYに対応した物理層処理部237を少なくとも有している。例えば、SerDes装置212では、C-PHY用またはD-PHY用のパケットがA-PHY用のパケットに変換され、この変換は、レジスタ設定などに基づいて決められる。
 SerDes装置213は、CSI-2送信回路241、C/D-PHY物理層処理部242、I2C/I3Cスレーブ243、CCIスレーブ244、CSI-2用A-PHYパケット受信部245、CCI用A-PHYパケット送受信部246、A-PHYに対応した物理層処理部247を少なくとも有している。例えば、SerDes装置213では、A-PHY用のパケットがC-PHY用またはD-PHY用のパケットに変換され、この変換は、レジスタ設定などに基づいて決められる。
 アプリケーションプロセッサ214は、拡張モード対応CSI-2受信回路251、C/D-PHY物理層処理部252、I2C/I3Cマスタ253、並びに、CCIマスタ254を少なくとも有している。
 このように通信システム201は構成されており、上述したような構造の拡張パケットがイメージセンサ211から送信されて、アプリケーションプロセッサ214で受信される。ここで、イメージセンサ211の物理層処理部222がD-PHYに対応し、アプリケーションプロセッサ22の物理層処理部252がC-PHYに対応するように通信システム201が構成されていても、E2E protectionに違反しないようにすることが必要となる。
 そこで、通信システム201は、E2E protectionに適応することができるように、E2E protectionの保護範囲を、アプリケーションに特有のペイロードであるApplication Specific payload(以下、ASペイロードと称する)に限定する。即ち、ASペイロードは、A-PHY用のパケットからC-PHY用またはD-PHY用のパケットへの変換時や、C-PHY用またはD-PHY用のパケットからA-PHY用のパケットへの変換時に変更を加えることが禁止される。
 図21には、E2E protectionに対応するように拡張されたD-PHY用の拡張パケットの構造例が示されている。
 図示するように、D-PHY用の拡張パケットは、拡張パケットヘッダ(ePH)、パケットデータ、および拡張パケットフッタ(ePF)からなるASペイロードが、E2E protectionの保護範囲として限定される。
 そして、拡張パケットヘッダには、E2E protectionの保護範囲をASペイロードに限定した場合に必要となる所定情報が記載される。例えば、拡張パケットヘッダに記載される所定情報として、パケットデータのデータ長を同定することができるようにするために、ASペイロードに格納されるデータのデータ長を示すパケットカウントPC(Packet Count)が追加される。即ち、パケットデータは、パケットカウントPCで定められたバイト数となる。また、拡張パケットヘッダに記載される所定情報として、仮想チャネルの回線数を示すバーチャルチャネルVC(Virtual Channel)が、既存のパケットヘッダへコピーされる。
 図22には、E2E protectionに対応するように拡張されたC-PHY用の拡張パケットの構造例が示されている。
 図示するように、C-PHY用の拡張パケットは、D-PHY用の拡張パケットと同様に、拡張パケットヘッダ(ePH)、パケットデータ、および拡張パケットフッタ(ePF)からなるASペイロードが、E2E protectionの保護範囲として限定される。そして、拡張パケットヘッダには、D-PHY用の拡張パケットと同様に、E2E protectionの保護範囲をASペイロードに限定した場合に必要となる所定情報として、パケットカウントPCおよびバーチャルチャネルVCが記載される。
 図23には、E2E protectionに対応するように拡張されたA-PHY用の拡張パケットの構造例が示されている。
 図示するように、A-PHY用の拡張パケットにおいても、拡張パケットヘッダ(ePH)、パケットデータ、および拡張パケットフッタ(ePF)からなるASペイロードが、E2E protectionの保護範囲として限定される。
 ここで、通信システム201は、図20を参照して説明したように、イメージセンサ211からSerDes装置212に送信されたD-PHY用またはC-PHY用の拡張パケットからA-PHY用の拡張パケットが生成される。従って、A-PHY用の拡張パケットの拡張パケットヘッダには、パケットカウントPCおよびバーチャルチャネルVCが既に記載されている。
 このようなパケット構造を採用することで、通信システム201は、伝送経路上においてASペイロードが改変されることを回避して、E2E protectionを順守することが可能となる。なお、図21乃至図23に示したパケット構造は、図3乃至図8および図15乃至図18に示したようなパケット構造の該当するパケットと部分的に置き換えて用いることができ、パケット生成の一部が置き換えられる。
 <E2E protectionに適応したパケット送受信処理>
 図24は、E2E protectionに適応したパケット送受信処理を説明するフローチャートである。
 例えば、パケットデータに格納するデータ(例えば、画像データなど)が拡張モード対応CSI-2送信回路221に供給されると処理が開始される。そして、ステップS101において、イメージセンサ211では、拡張モード対応CSI-2送信回路221が、供給されたデータをパケットデータに格納する。さらに、拡張モード対応CSI-2送信回路221は、上述の図21または図22に示したようにバーチャルチャネルVCおよびパケットカウントPCを記載した拡張パケットヘッダを生成する。そして、拡張モード対応CSI-2送信回路221は、パケットデータに対して、拡張パケットヘッダを付加するとともに、拡張パケットフッタを付加することにより、ASペイロードを生成する。
 ステップS102において、拡張モード対応CSI-2送信回路221は、ステップS101で生成したASペイロードに対して、C-PHY用またはD-PHY用のパケットヘッダとC-PHY用またはD-PHY用のパケットフッタとを付加することにより、C-PHY用またはD-PHY用の拡張パケットを生成する。そして、拡張モード対応CSI-2送信回路221は、C/D-PHY物理層処理部222を介して、C-PHY用またはD-PHY用の拡張パケットをSerDes装置212に送信する。
 ステップS103において、SerDes装置212では、CSI-2受信回路231が、C/D-PHY物理層処理部232を介して、ステップS102でイメージセンサ211から送信されてくるC-PHY用またはD-PHY用の拡張パケットを受信する。そして、CSI-2受信回路231は、受信した拡張パケットからパケットヘッダおよびパケットフッタを除いたASペイロードを取得し、ASペイロードをそのままCSI-2用A-PHYパケット生成部235に供給する。
 ステップS104において、SerDes装置212では、CSI-2用A-PHYパケット生成部235が、CSI-2受信回路231から供給されたASペイロードに対して、A-PHY用のパケットヘッダとA-PHY用のパケットフッタを付加することにより、A-PHY用の拡張パケットを生成する。そして、CSI-2用A-PHYパケット生成部235は、A-PHYに対応した物理層処理部237を介して、A-PHY用の拡張パケットをSerDes装置213に送信する。
 ステップS105において、SerDes装置213では、CSI-2用A-PHYパケット受信部245が、A-PHYに対応した物理層処理部247を介して、ステップS104でSerDes装置212から送信されてくるA-PHY用の拡張パケットを受信する。そして、CSI-2用A-PHYパケット受信部245は、受信した拡張パケットからパケットヘッダおよびパケットフッタを除いたASペイロードを取得し、ASペイロードをそのままCSI-2送信回路241に供給する。
 ステップS106において、CSI-2送信回路241は、ステップS105でCSI-2用A-PHYパケット受信部245から供給されたASペイロードに対して、C-PHY用またはD-PHY用のパケットヘッダとC-PHY用またはD-PHY用のパケットフッタとを付加することにより、C-PHY用またはD-PHY用の拡張パケットを生成する。そして、CSI-2送信回路241は、C/D-PHY物理層処理部242を介して、C-PHY用またはD-PHY用の拡張パケットをアプリケーションプロセッサ214に送信する。
 ステップS107において、アプリケーションプロセッサ214では、拡張モード対応CSI-2受信回路251が、C/D-PHY物理層処理部252を介して、ステップS106でSerDes装置213から送信されてくるC-PHY用またはD-PHY用の拡張パケットを受信する。そして、拡張モード対応CSI-2受信回路251は、受信した拡張パケットからパケットヘッダおよびパケットフッタを除いたASペイロードを取得して、ASペイロードのパケットデータに格納されている各種のデータを、後段のLSI(図示せず)へ出力する。その後、E2E protectionに適応したパケット送受信処理は終了され、次の拡張パケットを対象として、同様の処理が繰り返して行われる。
 以上のように、通信システム201は、E2E protectionに適応したパケット送受信処理を実行することによって、伝送経路上でASペイロードを改変することなく、拡張パケットを送受信することができる。このとき、例えば、イメージセンサ211の物理層がD-PHYであって、アプリケーションプロセッサ214の物理層がC-PHYである場合であっても、即ち、それぞれのインタフェースが異なっている場合であっても、E2E protectionを順守することができる。
 <イメージセンサ211の詳細な構成例>
 図25は、イメージセンサ211の詳細な構成例を示すブロック図である。なお、図25に示すイメージセンサ211において、図9のイメージセンサ21と共通する構成には、同一の符号を付し、その詳細な説明は省略する。
 即ち、イメージセンサ211は、図9のイメージセンサ21と同様に、画素41、AD変換器42、画像処理部43、レジスタ47、およびコントローラ60を備えて構成される。また、イメージセンサ211が備えるI2C/I3Cスレーブ223およびCCIスレーブ224は、図9のI2C/I3Cスレーブ46およびCCIスレーブ59にそれぞれ対応する。
 そして、イメージセンサ211は、拡張モード対応CSI-2送信回路221および物理層処理部222を備えており、物理層処理部222は、A-PHY、C-PHY、およびD-PHYに対応している。
 拡張モード対応CSI-2送信回路221は、コントローラ60およびCCIスレーブ224の他、ASペイロード生成部301、セレクタ302、A-PHYパケット生成部303、C-PHYパケット生成部304、D-PHYパケット生成部305、およびセレクタ306を備えて構成される。
 ASペイロード生成部301は、E2E protectionの保護範囲として限定されるASペイロードを生成して、セレクタ302に出力する。例えば、ASペイロード生成部301は、パッキング部311、拡張パケットヘッダ生成部312、および拡張パケットフッタ生成部313を有している。
 パッキング部311は、送信対象のデータとして画像処理部43から供給される画像データをパッキングし、パケットカウントPCで定められたバイト数のパケットデータを生成する。例えば、コントローラ60が、レジスタ47に記憶されている設定値(例えば、画像サイズなど)に従って、パッキング部311が生成するパケットデータのバイト数を制御することができる。
 拡張パケットヘッダ生成部312は、例えば、図21乃至図23を参照して説明したように、パケットカウントPCおよびバーチャルチャネルVCを記載した拡張パケットヘッダを生成して、パケットデータに付加する。拡張パケットフッタ生成部313は、拡張パケットフッタを生成してパケットデータに付加する。
 セレクタ302は、コントローラ60の制御に従って、ASペイロード生成部301から供給されるASペイロードの出力先として、並列に設けられるA-PHYパケット生成部303、C-PHYパケット生成部304、およびD-PHYパケット生成部305のうちの1つを選択する。
 A-PHYパケット生成部303は、セレクタ302を介して供給されるASペイロードからA-PHY用の拡張パケットを生成して、セレクタ306に出力する。例えば、A-PHYパケット生成部303は、AAL生成部321、A-PHY用パケットヘッダ生成部322、およびA-PHY用パケットフッタ生成部323を有している。
 例えば、AAL(A-PHY Adaptation Layer)生成部321は、ASペイロード生成部301で生成されたASペイロードを、Adaptation Layerと称される階層で380byteごとに分割する。そして、分割後のASペイロードに対して、A-PHY用パケットヘッダ生成部322がA-PHY用のパケットヘッダを付加し、A-PHY用パケットフッタ生成部323がA-PHY用のパケットフッタを付加する。
 C-PHYパケット生成部304は、セレクタ302を介して供給されるASペイロードからC-PHY用の拡張パケットを生成して、セレクタ306に出力する。例えば、C-PHYパケット生成部304は、C-PHY用パケットヘッダ生成部331、C-PHY用パケットフッタ生成部332、およびC-PHY用レーン分配部333を有している。
 例えば、ASペイロード生成部301で生成されたASペイロードに対して、C-PHY用パケットヘッダ生成部331がC-PHY用のパケットヘッダを付加し、C-PHY用パケットフッタ生成部332がC-PHY用のパケットフッタを付加する。そして、C-PHY用レーン分配部333は、C-PHY用の拡張パケットを、CSI-2の規格に従った3レーンに分配する。
 D-PHYパケット生成部305は、セレクタ302を介して供給されるASペイロードからD-PHY用の拡張パケットを生成して、セレクタ306に出力する。例えば、D-PHYパケット生成部305は、D-PHY用パケットヘッダ生成部341、D-PHY用パケットフッタ生成部342、およびD-PHY用レーン分配部343を有している。
 例えば、ASペイロード生成部301で生成されたASペイロードに対して、D-PHY用パケットヘッダ生成部341がD-PHY用のパケットヘッダを付加し、D-PHY用パケットフッタ生成部342がD-PHY用のパケットフッタを付加する。そして、D-PHY用レーン分配部343は、D-PHYの拡張パケットを、CSI-2の規格に従った4レーンに分配する。
 セレクタ306は、コントローラ60の制御に従って、物理層処理部222に供給される拡張パケットの出力元として、並列に設けられるA-PHYパケット生成部303、C-PHYパケット生成部304、およびD-PHYパケット生成部305のうちの1つを選択する。
 そして、物理層処理部222は、A-PHYパケット生成部303からA-PHY用の拡張パケットが供給された場合には、1レーンでA-PHY用の拡張パケットを送信する。また、物理層処理部222は、C-PHYパケット生成部304からC-PHY用の拡張パケットが供給された場合には、3レーンでC-PHY用の拡張パケットを送信する。また、物理層処理部222は、D-PHYパケット生成部305からD-PHY用の拡張パケットが供給された場合には、4レーンでD-PHY用の拡張パケットを送信する。
 以上のように構成されるイメージセンサ211は、ASペイロード生成部301が、セレクタ302を介して、A-PHYパケット生成部303、C-PHYパケット生成部304、およびD-PHYパケット生成部305に接続されるように拡張モード対応CSI-2送信回路221が構成される。これにより、イメージセンサ211は、A-PHY用の拡張パケット、C-PHY用の拡張パケット、およびD-PHY用の拡張パケットで共通するASペイロードを、1つのASペイロード生成部301で生成することができる。即ち、A-PHYパケット生成部303、C-PHYパケット生成部304、およびD-PHYパケット生成部305でASペイロード生成部301を共有することができ、これにより回路規模の縮小を図ることができる。従って、イメージセンサ211の小型化を実現することができる。
 <アプリケーションプロセッサ214の詳細な構成例>
 図26は、アプリケーションプロセッサ214の詳細な構成例を示すブロック図である。なお、図26に示すアプリケーションプロセッサ214において、図10のアプリケーションプロセッサ22と共通する構成には、同一の符号を付し、その詳細な説明は省略する。
 即ち、アプリケーションプロセッサ214は、図10のアプリケーションプロセッサ22と同様に、レジスタ73、およびコントローラ74を備えて構成される。なお、コントローラ74は、ソフトウェアにより実現してもよい。また、アプリケーションプロセッサ214が備えるI2C/I3Cマスタ253およびCCIマスタ254は、図10のI2C/I3Cマスタ72およびCCIマスタ88にそれぞれ対応する。
 そして、アプリケーションプロセッサ214は、拡張モード対応CSI-2受信回路251および物理層処理部252を備えており、物理層処理部252は、A-PHY、C-PHY、およびD-PHYに対応している。
 拡張モード対応CSI-2受信回路251は、CCIマスタ254の他、セレクタ401、A-PHYパケット受信部402、C-PHYパケット受信部403、D-PHYパケット受信部404、セレクタ405、およびASペイロード受信部406を備えて構成される。
 セレクタ401は、物理層処理部252から供給される拡張パケットの出力先として、並列に設けられるA-PHYパケット受信部402、C-PHYパケット受信部403、およびD-PHYパケット受信部404のうちの1つを選択する。
 A-PHYパケット受信部402は、セレクタ401を介して供給されるA-PHY用の拡張パケットを受信して、セレクタ405に出力する。例えば、A-PHYパケット受信部402は、A-PHY用パケットヘッダ解釈部411、A-PHY用パケットフッタ検証部412、およびAAL処理部413を有している。
 例えば、A-PHY用パケットヘッダ解釈部411は、A-PHY用のパケットヘッダに記載されている内容を解釈して、A-PHY用の拡張パケットの受信に必要な処理を行い、A-PHY用パケットフッタ検証部412は、A-PHY用のパケットフッタを用いてエラーの有無を検証する。そして、AAL処理部413は、図25のAAL生成部321において分割されたAdaptation Layerを結合する処理を行う。
 C-PHYパケット受信部403は、セレクタ401を介して供給されるC-PHY用の拡張パケットを受信して、セレクタ405に出力する。例えば、C-PHYパケット受信部403は、C-PHY用レーン併合部421、C-PHY用パケットヘッダ解釈部422、およびC-PHY用パケットフッタ検証部423を有している。
 例えば、C-PHY用レーン併合部421は、CSI-2の規格に従って3レーンに分配されて物理層処理部252を介して供給されるC-PHY用の拡張パケットを併合する。そして、C-PHY用パケットヘッダ解釈部422は、C-PHY用のパケットヘッダに記載されている内容を解釈して、C-PHY用の拡張パケットの受信に必要な処理を行い、C-PHY用パケットフッタ検証部423は、C-PHY用のパケットフッタを用いてエラーの有無を検証する。
 D-PHYパケット受信部404は、セレクタ401を介して供給されるD-PHY用の拡張パケットを受信して、セレクタ405に出力する。例えば、D-PHYパケット受信部404は、D-PHY用レーン併合部431、D-PHY用パケットヘッダ解釈部432、およびD-PHY用パケットフッタ検証部433を有している。
 例えば、D-PHY用レーン併合部431は、CSI-2の規格に従って4レーンに分配されて物理層処理部252を介して供給されるD-PHY用の拡張パケットを併合する。そして、D-PHY用パケットヘッダ解釈部432は、D-PHY用のパケットヘッダに記載されている内容を解釈して、D-PHY用の拡張パケットの受信に必要な処理を行い、D-PHY用パケットフッタ検証部433は、D-PHY用のパケットフッタを用いてエラーの有無を検証する。
 セレクタ405は、ASペイロード受信部406に供給される拡張パケットの出力元として、並列に設けられるA-PHYパケット受信部402、C-PHYパケット受信部403、およびD-PHYパケット受信部404のうちの1つを選択する。
 ASペイロード受信部406は、図25のASペイロード生成部301に対応して、アンパッキング部441、拡張パケットヘッダ解釈部442、および拡張パケットフッタ検証部443を有している。アンパッキング部441は、パッキング部311によりパッキングされた画像データをアンパッキングする。拡張パケットヘッダ解釈部442は、拡張パケットヘッダ生成部312において生成された拡張パケットヘッダを解釈し、例えば、パケットカウントPCおよびバーチャルチャネルVCを読み出す。拡張パケットフッタ検証部443は、拡張パケットフッタ生成部313により付加された拡張パケットフッタを用いてエラーの有無を検証する。そして、ASペイロード受信部406は、セレクタ405を介して供給されるパケットデータに格納されている各種のデータ、例えば、画像データ、車載用行番号やSourceIDなど、CRCエラーなどを、後段のLSI(図示せず)へ出力する。
 以上のように構成されるアプリケーションプロセッサ214は、ASペイロード受信部406が、セレクタ405を介して、A-PHYパケット受信部402、C-PHYパケット受信部403、およびD-PHYパケット受信部404に接続されるように拡張モード対応CSI-2受信回路251が構成される。これにより、アプリケーションプロセッサ214は、A-PHY用の拡張パケット、C-PHY用の拡張パケット、およびD-PHY用の拡張パケットで共通するASペイロードを、1つのASペイロード受信部406で受信することができる。即ち、A-PHYパケット受信部402、C-PHYパケット受信部403、およびD-PHYパケット受信部404でASペイロード受信部406を共有することができ、これにより回路規模の縮小を図ることができる。従って、アプリケーションプロセッサ214の小型化を実現することができる。
 <E2E Protectionに適応した第2の構成例>
 図27乃至図74を参照して、E2E Protectionに適応した第2の構成例について説明する。
 <A-PHY直結構成の構成例>
 図27に示す通信システム501は、イメージセンサ511およびアプリケーションプロセッサ512がA-PHYにより直接的に(後述する図40を参照して説明するようなSerDes装置を介さずに)接続される直結構成となっている。
 イメージセンサ511は、A-PHY処理部521、CSIA処理部522、CSI2処理部523、CSI2-FS処理部524、CCI処理部525、CCI-FS処理部526、およびレジスタ527を備えて構成される。
 A-PHY処理部521は、CCI処理部525が上位層として実装され、アプリケーションプロセッサ512のA-PHY処理部531と、MIPI A-PHY接続して拡張パケットヘッダePHおよび拡張パケットフッタePFを含むデータを送受信する。
 CCI-FS処理部526は、例えば、拡張パケットヘッダePHに含まれるDesination IDとイメージセンサ511が有するID(Source ID)とを比較し、イメージセンサ511へのアクセスか否かの判別を行う。
 アプリケーションプロセッサ512は、A-PHY処理部531、CSIA処理部532、CSI2処理部533、CSI2-FS処理部534、CCI処理部535、CCI-FS処理部536、レジスタ537、およびCCI-FSスイッチ538を備えて構成される。
 A-PHY処理部531は、CCI処理部535が上位層として実装され、イメージセンサ511のA-PHY処理部521と、MIPI A-PHY接続して拡張パケットヘッダePHおよび拡張パケットフッタePFを含むデータを送受信する。
 CCI-FS処理部536は、例えば、拡張パケットヘッダePHに含まれるDesination IDとアプリケーションプロセッサ512が有するID(Source ID)とを比較し、アプリケーションプロセッサ512へのアクセスか否かの判別を行う。
 CCI-FSスイッチ538は、CCI-FS処理部536が有効である場合にはCCI-FS処理部536を介してデータが送受信され、CCI-FS処理部536が無効である場合にはCCI-FS処理部536を介さずにデータが送受信されるような切り替えを行う。
 図28乃至図32を参照して、通信システム501におけるリードコマンドおよびリードデータの転送について説明する。
 図28には、リードアクセス時に、アプリケーションプロセッサ512のCCI-FS処理部536において生成されるリードコマンドのパケット構成の一例が示されている。
 図28に示すように、リードコマンドは、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0から構成される。
 拡張パケットヘッダePH*(*=n)は、図示するように、拡張パケットヘッダePH0乃至ePH3からなる。
 拡張パケットヘッダePH0には、拡張VC、拡張DT、拡張PFEN、および拡張PHENが格納される。例えば、拡張DTは、CCIプロトコル(I2C)を示す情報であって、拡張DTを用いてルーティングの処理が行われる。
 拡張パケットヘッダePH1には、Source ID[7:1]、およびPacket Lengthが格納される。例えば、Source IDは、CCIプロトコル(I2C)の送信元を示す情報であって、Source IDに基づいて応答処理が行われる。Packet Lengthは、データ長を示す情報である。
 拡張パケットヘッダePH2には、Security Descriptor、およびMessage Counterが格納される。Security Descriptorは、セキュリティを使用するか否かを示し、セキュリティを使用しない場合には「8'h0」を示す。Message Counterは、バケット順番を示す情報であって、メッセージをカウントしたカウント値を示し、メッセージが5番目のときには「16'h5」を示す。
 拡張パケットヘッダePH3には、Destination ID[7:1]、Read/Write、およびDestination Addressが格納される。Destination ID[7:1]は、イメージセンサ511のCCI処理部525のスレーブアドレスを示し、図示する例では「7'h0D」となっている。例えば、Destination IDは、CCIプロトコル(I2C)の送信先を示す情報であって、Destination IDに基づいてルーティングが行われるとともに、通信経路の参照が行われる。Read/Writeは、データの読み出しまたは書き込みを示し、リードの場合には「1'b1」を示す。Destination Addressは、最終目的地となるイメージセンサ511のレジスタ527のアドレスを示し、図示する例では「0x0200」となっている。
 AP(CCI)ペイロードには、例えば、各種のデータ(Data0[7:0])が格納される。AP(CCI)ペイロードは、セキュリティがオフのときには送信されず、セキュリティがオンのとき、ダミーデータを格納して送信してもよい。
 拡張パケットフッタePF1は、セキュリティがオフのときには送信されない。
 拡張パケットフッタePF0には、CRC計算値が格納される。
 アプリケーションプロセッサ512では、このようなパケット構造のリードコマンドが、CCI-FS処理部536において生成されてA-PHY処理部531に供給される。
 図29には、リードアクセス時に、アプリケーションプロセッサ512のA-PHY処理部531から出力されるリードコマンドのパケット構成の一例が示されている。
 図29に示すように、A-PHY処理部531は、CCI-FS処理部536から供給されたリードコマンドをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加する。
 このようなパケット構造のリードコマンドが、アプリケーションプロセッサ512のA-PHY処理部531によってA-PHY転送される。そして、イメージセンサ511では、A-PHY処理部521が、リードコマンドからA-PHYヘッダおよびA-PHYフッタを除去する。その後、リードコマンドは、Destination IDにより示されるスレーブアドレス「7'h0D」のCCI処理部525を介して、CCI-FS処理部526に供給される。
 図30には、リードアクセス時に、CCI-FS処理部526に供給されるリードコマンドと、CCI-FS処理部526において生成されるリードデータのパケット構造の一例が示されている。
 図30に示すように、図28に示したパケット構造のままのリードコマンド、即ち、A-PHY転送においてE2E Protectionの保護範囲とされたリードコマンドが、CCI-FS処理部526に供給される。
 リードデータは、図示するように、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0から構成される。そして、AP(CCI)ペイロードには、リードコマンドの拡張パケットヘッダePHのソースアドレス情報(Destination Address)で示されるレジスタ527のアドレス「0x0200」から読み出されたリードデータ値が格納される。
 イメージセンサ511では、このようなパケット構造のリードデータが、CCI-FS処理部526において生成されA-PHY処理部521に供給される。
 図31には、リードアクセス時に、イメージセンサ511のA-PHY処理部521から出力されるリードデータのパケット構成の一例が示されている。
 図31に示すように、A-PHY処理部521は、CCI-FS処理部526から供給されたリードデータをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加する。
 このようなパケット構造のリードデータが、イメージセンサ511のA-PHY処理部521によってA-PHY転送される。そして、アプリケーションプロセッサ512では、A-PHY処理部531が、リードデータからA-PHYヘッダおよびA-PHYフッタを除去し、リードデータが、CCI-FS処理部536に供給される。
 図32には、リードアクセス時に、CCI-FS処理部536に供給されるリードデータのパケット構造の一例が示されている。
 図32に示すように、図30に示したパケット構造のままのリードデータ、即ち、A-PHY転送においてE2E Protectionの保護範囲とされたリードデータが、CCI-FS処理部536に供給される。
 図33乃至図35を参照して、通信システム501におけるライトデータの転送について説明する。なお、イメージセンサ511側のCCI-FS処理部526が、イネーブルとされている状態からのアクセスを想定して説明を行う。
 図33には、ライトアクセス時に、アプリケーションプロセッサ512のCCI-FS処理部536において生成されるライトデータのパケット構成の一例が示されている。
 図33に示すように、ライトデータは、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード(ライトデータ)、拡張パケットフッタePF1、および拡張パケットフッタePF0から構成される。
 拡張パケットヘッダePH*(*=n)は、図示するように、拡張パケットヘッダePH0乃至ePH3からなる。
 拡張パケットヘッダePH0には、拡張VC、拡張DT、拡張PFEN、および拡張PHENが格納される。
 拡張パケットヘッダePH1には、Source ID[7:1]、およびPacket Lengthが格納される。
 拡張パケットヘッダePH2には、Security Descriptor、およびMessage Counterが格納される。Security Descriptorは、セキュリティを使用するか否かを示し、セキュリティを使用しない場合には「8'h0」を示す。Message Counterは、メッセージをカウントしたカウント値を示し、メッセージが4番目のときには「16'h4」を示す。
 拡張パケットヘッダePH3には、Destination ID[7:1]、Read/Write、およびDestination Addressが格納される。Destination ID[7:1]は、イメージセンサ511のCCI処理部525のスレーブアドレスを示し、図示する例では「7'h0D」となっている。Read/Writeは、データの読み出しまたは書き込みを示し、ライトの場合には「1'b0」を示す。Destination Addressは、最終目的地となるイメージセンサ511のレジスタ527のアドレスを示し、図示する例では「0x1234」となっている。
 AP(CCI)ペイロードには、イメージセンサ511に書き込むデータ(Data0[7:0])が格納され、0xFF値がライトデータとなる。
 拡張パケットフッタePF1は、セキュリティがオフのときには送信されない。
 拡張パケットフッタePF0には、CRC計算値が格納される。
 アプリケーションプロセッサ512では、このようなパケット構造のライトデータが、CCI-FS処理部536において生成されてA-PHY処理部531に供給される。
 図34には、ライトアクセス時に、アプリケーションプロセッサ512のA-PHY処理部531から出力されるライトデータのパケット構成の一例が示されている。
 図34に示すように、A-PHY処理部531は、CCI-FS処理部536から供給されたライトデータをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加する。
 このようなパケット構造のライトデータが、アプリケーションプロセッサ512のA-PHY処理部531によってA-PHY転送される。そして、イメージセンサ511では、A-PHY処理部521が、ライトデータからA-PHYヘッダおよびA-PHYフッタを除去する。その後、ライトデータは、Destination IDにより示されるスレーブアドレス「7'h0D」のCCI処理部525を介して、CCI-FS処理部526に供給される。
 図35には、ライトアクセス時に、CCI-FS処理部526に供給されるライトデータのパケット構造の一例が示されている。
 図35に示すように、図33に示したパケット構造のままのライトデータ、即ち、A-PHY転送においてE2E Protectionの保護範囲とされたライトデータが、CCI-FS処理部526に供給される。そして、CCI-FS処理部526は、CCIコマンドID情報、即ち、リードコマンドの拡張パケットヘッダePHのソースアドレス情報(Destination Address)で示されるレジスタ527のアドレス「0x1234」より、AP(CCI)ペイロードに格納されているデータの書き込みを行う。
 図36を参照して、拡張パケットヘッダePHおよび拡張パケットフッタePFの概要について説明する。
 図36に示すように、CCI-FS E2Eパケットは、拡張パケットヘッダePH、パケットデータ、および拡張パケットフッタePFにより構成され、そのパケット長は、Length = Byte Count × Data Byte widthとなる。
 拡張パケットヘッダePHは、拡張VC、拡張DT、Message Counterなどのフィールドが用いられる。拡張パケットヘッダePHのフィールド値(epFEN field)で、拡張パケットヘッダePHの長さを変更することができる。
 パケットデータは、例えば、PL個のデータ(Data 0~Data PL-1)により構成され、その長さは、Length = Packet Length(PL) × Data Byte Widthとなる。パケットデータには、リードコマンドの場合に、セキュリティがオフのときにはデータが格納されず、セキュリティがオンのときには1バイトのダミーデータが格納される。パケットデータには、ライトアクセスの場合に、ペイロードデータ分のライトデータが格納される。パケットデータには、リードアクセスの場合は、ペイロードデータ分のリードデータが格納される。パケットデータには、Clock Stretch(ePH0のControl Code Indicator=1)を用いるときは、制御の種類を意味する1バイトのデータペイロードが付けられる。
 拡張パケットフッタePF1は、拡張パケットヘッダePHのフィールド設定値(epFEN field)で、長さを変更することができる。また、セキュリティ関連情報を付加することができる。
 拡張パケットフッタePF0は、拡張パケットヘッダePHのフィールド設定値で、パケットデータから計算されるCRC-32を付加することができる。
 <通信処理の処理例>
 図37乃至図39のフローチャートを参照して、図27に示した通信システム501において行われるCCI-FSを使用した通信処理について説明する。
 図37に示すように、ステップS211乃至S222では、初期設定および確認動作が行われる。
 ステップS211において、アプリケーションプロセッサ512からイメージセンサ511へ、CCI-FS処理部526のCapabilityレジスタに対して2回リードアクセスが行われる。なお、リードアクセスを行う回数は2回に限定されることなく、例えば、機能安全的に任意に設定することができ、1回または3回以上の複数回でもよい。
 ステップS212において、アプリケーションプロセッサ512では、CSI2-FS処理部524が、ステップS211でのリードアクセスの結果について、CCI-FS処理部526のCapabilityレジスタ値が2回とも1’b1であるか否かを判定する。ステップS212において、CCI-FS処理部526のCapabilityレジスタ値が2回とも1’b1でないと判定された場合、処理はステップS213に進む。
 ステップS213において、アプリケーションプロセッサ512では、CSI2-FS処理部524が、再送回数が3回以上であるか否かを判定する。なお、再送回数は3回に限定されることなく、任意の回数に設定することができ、以下で説明する再送回数についても同様である。ステップS213において、再送回数が3回以上でない(1回または2回)と判定された場合、処理はステップS211に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS212において、CCI-FS処理部526のCapabilityレジスタ値が2回とも1’b1であると判定された場合、処理は214に進む。
 ステップS214において、アプリケーションプロセッサ512からイメージセンサ511へ、CCI-FS処理部526のEnableレジスタに対する1ライトアクセスが行われる。
 ステップS215において、イメージセンサ511では、CCI-FS処理部526が、アプリケーションプロセッサ512のCCI-FS処理部536のEnableレジスタに対する1ライトアクセスを行う。
 ステップS216において、アプリケーションプロセッサ512のCCI-FS処理部536のDestination SIDレジスタに、対向のイメージセンサ511のスレーブアドレスを設定する。
 ステップS217において、アプリケーションプロセッサ512のCCI-FS処理部536のePHレジスタの設定を行う。
 ステップS218において、アプリケーションプロセッサ512からイメージセンサ511へ、CCI-FS処理部526のePHレジスタの設定が行われる。
 ステップS219において、アプリケーションプロセッサ512からイメージセンサ511へ、CCI-FS処理部526のEnableレジスタおよびErrorレジスタに対するリードアクセスが行われる。
 ステップS220において、アプリケーションプロセッサ512では、CCI-FS処理部536が、ステップS219でのリードアクセスの結果について、CCI-FS処理部526のEnableレジスタ値が1’b1であり、かつ、Errorレジスタ値が0であるか否かを判定する。
 ステップS220において、CCI-FS処理部526のEnableレジスタ値が1’b1でない、または、Errorレジスタ値が0でないと判定された場合、処理はステップS221に進む。
 ステップS221において、アプリケーションプロセッサ512では、CSI2-FS処理部524が、再送回数が3回以上であるか否かを判定する。ステップS221において、再送回数が3回以上であると判定された場合、処理はステップS211に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS213において、再送回数が3回以上であると判定された場合、または、ステップS221において、再送回数が3回以上でない(1回または2回)と判定された場合、処理はステップS222に進む。
 ステップS222において、CCI-FSを使用せずにCCIでの通信を行い、その後、通信処理が終了される。
 一方、ステップS220において、CCI-FS処理部526のEnableレジスタ値が1’b1であり、かつ、Errorレジスタ値が0であると判定された場合、処理はステップS223に進む。
 図38に示すように、ステップS223乃至S234では、CCI-FSを使用したライト動作が行われる。
 ステップS223において、アプリケーションプロセッサ512のCCI-FS処理部536は、ライト動作を行うようにePHレジスタの設定を行う。
 ステップS224において、アプリケーションプロセッサ512のCCI-FS処理部536は、ライトデータレジスタの設定を行う。
 ステップS225において、アプリケーションプロセッサ512のCCI-FS処理部536は、コマンド実行レジスタを1に設定する。
 ステップS226において、アプリケーションプロセッサ512では、A-PHY処理部531が、上述した図34に示したように、CCI-FS処理部536により生成されたライトデータをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加し、A-PHY転送を行う。
 ステップS227において、イメージセンサ511では、A-PHY処理部521が、ライトデータからA-PHYヘッダおよびA-PHYフッタを除去し、E2E Protectionの保護範囲をCCI-FS処理部526に供給する。
 ステップS228において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットヘッダePHの内容から、イメージセンサ511のSource IDと、拡張パケットヘッダePHのDestination SIDとを確認する。
 ステップS229において、イメージセンサ511では、CCI-FS処理部526が、ステップS228で確認したイメージセンサ511のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したか否かを判定する。
 ステップS229において、イメージセンサ511のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したと判定された場合、処理はステップS230に進む。
 ステップS230において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットヘッダePHの内容から、Message Counterを確認する。
 ステップS231において、イメージセンサ511では、CCI-FS処理部526が、ステップS230で確認したイメージセンサ511のMessage Counter(受信)と、拡張パケットヘッダePHのMessage Counterとが一致したか否かを判定する。
 ステップS231において、イメージセンサ511のMessage Counter(受信)と拡張パケットヘッダePHのMessage Counterとが一致したと判定された場合、処理はステップS232に進む。
 ステップS232において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットフッタePFの内容から、CRCを確認する。
 ステップS233において、イメージセンサ511では、CCI-FS処理部526が、ステップS232で確認した拡張パケットフッタePFの受信値(ePF0)と、CCI-FS処理部526において計算されたCRC計算結果が一致したか否かを判定する。
 ステップS233において、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致したと判定された場合、処理はステップS234に進む。
 ステップS234において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットヘッダePHおよび拡張パケットフッタePFの内容から、レジスタ527のアドレスにライトデータを書き込むライト処理を行う。その後、処理はステップS235に進む。
 図39に示すように、ステップS235乃至S247では、CCI-FSを使用したリード動作が行われる。
 ステップS235において、アプリケーションプロセッサ512では、CCI-FS処理部536が、リード動作が行われるようにePHレジスタの設定を行う。
 ステップS236において、アプリケーションプロセッサ512では、CCI-FS処理部536が、コマンド実行レジスタを1に設定する。
 ステップS237において、アプリケーションプロセッサ512では、A-PHY処理部531が、上述した図29に示したように、CCI-FS処理部536により生成されたライトデータをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加し、A-PHY転送を行う。
 ステップS238において、イメージセンサ511では、A-PHY処理部521が、ライトデータからA-PHYヘッダおよびA-PHYフッタを除去し、E2E Protectionの保護範囲をCCI-FS処理部526に供給する。
 ステップS239において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットヘッダePHの内容から、イメージセンサ511のSource IDと、拡張パケットヘッダePHのDestination SIDとを確認する。
 ステップS240において、イメージセンサ511では、CCI-FS処理部526が、ステップS239で確認したイメージセンサ511のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したか否かを判定する。
 ステップS240において、イメージセンサ511のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したと判定された場合、処理はステップS241に進む。
 ステップS241において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットヘッダePHの内容から、Message Counterを確認する。
 ステップS242において、イメージセンサ511では、CCI-FS処理部526が、ステップS241で確認したイメージセンサ511のMessage Counter(受信)と、拡張パケットヘッダePHのMessage Counterとが一致したか否かを判定する。
 ステップS242において、イメージセンサ511のMessage Counter(受信)と拡張パケットヘッダePHのMessage Counterとが一致したと判定された場合、処理はステップS243に進む。
 ステップS243において、イメージセンサ511では、CCI-FS処理部526が、拡張パケットフッタePFの内容から、CRCを確認する。
 ステップS244において、イメージセンサ511では、CCI-FS処理部526が、ステップS243で確認した拡張パケットフッタePFの受信値(ePF0)と、CCI-FS処理部526において計算されたCRC計算結果が一致したか否かを判定する。
 ステップS244において、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致したと判定された場合、処理は終了される。
 一方、図38のステップS229または図39のステップS240で、イメージセンサ511のSource IDと拡張パケットヘッダePHのDestination SIDとが一致していないと判定された場合、処理はステップS245に進む。
 ステップS245において、イメージセンサ511側のErrorレジスタ(Routing)を1とし、その後、処理は終了される。
 一方、図38のステップS231または図39のステップS242で、イメージセンサ511のMessage Counter(受信)と拡張パケットヘッダePHのMessage Counterとが一致していないと判定された場合、処理はステップS246に進む。
 ステップS246において、イメージセンサ511側のErrorレジスタ(MC)を1とし、その後、処理は終了される。
 一方、図38のステップS233または図39のステップS244で、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致していないと判定された場合、処理はステップS247に進む。
 ステップS247において、イメージセンサ511側のErrorレジスタ(CRC)を1とし、その後、処理は終了される。
 <SerDes接続構成の構成例>
 図40に示す通信システム601は、イメージセンサ611およびアプリケーションプロセッサ614が、スレーブ側となるSerDes装置612とマスタ側となるSerDes装置613とを介して接続されるSerDes接続構成となっている。
 イメージセンサ611は、I2C/I3Cスレーブ621、CCI処理部622、CSI2-FS処理部623、およびレジスタ624を備えて構成される。
 スレーブ側のSerDes装置612は、A-PHY処理部631、CSIA処理部632、CSI2-FS処理部633、I2C/I3Cマスタ634、CCI処理部635、CCI-FS処理部636、およびレジスタ637を備えて構成される。
 マスタ側のSerDes装置613は、A-PHY処理部641、CSIA処理部642、CSI2-FS処理部643、I2C/I3Cスレーブ644、CCI処理部645、CCI-FS処理部646、およびレジスタ647を備えて構成される。
 アプリケーションプロセッサ614は、I2C/I3Cマスタ651、CCI処理部652、CCI-FS処理部653、レジスタ654、およびCCI-FSスイッチ655を備えて構成される。
 なお、図40に示すようなSerDes接続構成では、CCI構成やCCI-FS構成が上位プロトコルとして実装されている場合、他のSerDes規格を使用してもよい。例えば、Application Layer、または、その下のレイヤに相当する上位層からのPayloadに、図41に示すような拡張パケットヘッダePH、拡張パケットフッタePF1、および拡張パケットフッタePF0の構成を実装することにより、PCIE,USB,DisplayPort,HDMI(登録商標),LVDS,FPD-LINKなどの各種のSerDes関連を適用することができる。
 図41乃至図49を参照して、通信システム601におけるリードコマンドおよびリードデータの転送について説明する。
 図41には、リードアクセス時に、アプリケーションプロセッサ614のCCI-FS処理部653において生成されるリードコマンドのパケット構成の一例が示されている。
 図41に示すように、リードコマンドは、拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0から構成される。なお、それらの詳細については、上述の図28を参照して説明したリードコマンドと同様である。
 アプリケーションプロセッサ614では、このようなパケット構造のリードコマンドが、CCI-FS処理部653において生成されてI2C/I3Cマスタ651に供給される。
 図42には、リードアクセス時に、アプリケーションプロセッサ614のI2C/I3Cマスタ651から出力されるリードコマンドのパケット構成の一例が示されている。
 図42に示すように、I2C/I3Cマスタ651は、スタートコンディションSに続けて、接続先のセンサアドレス、即ち、図40に示す構成ではマスタ側のSerDes装置613のCCI処理部645のアドレス(Slave Address+W 8-bit)を送信する。図42に示す例では、CCI処理部645のアドレスは、Slave Address[7:1]=7'h0Fとなっている。そのアドレスに続いて、マスタ側のSerDes装置613のレジスタ647のレジスタアドレス(Register Address [15:8]およびRegister Address [7:0])が送信される。I2C/I3Cマスタ651は、拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0に続けて、最後にストップコンディションPを送信する。
 このようなパケット構造のリードコマンドが、アプリケーションプロセッサ614のI2C/I3Cマスタ651からI2C/I3Cにより転送される。マスタ側のSerDes装置613では、I2C/I3Cスレーブ644が、リードコマンド(拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0)を取得する。そのリードコマンドは、Slave Address[7:1]=7'h0FのCCI処理部645に供給された後、CCI-FS処理部646、CSI2-FS処理部643、およびCSIA処理部642を介して、A-PHY処理部641に供給される。
 図43には、リードアクセス時に、マスタ側のSerDes装置613のA-PHY処理部641から出力されるリードコマンドのパケット構成の一例が示されている。
 図43に示すように、A-PHY処理部641は、I2C/I3Cスレーブ644が取得したリードコマンドをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加する。なお、拡張パケットヘッダePH*(*=n)には、マスタ側のSerDes装置613のCCI処理部635のアドレス、例えば、Slave Address[7:1]=7'h0Eが、CSI2-FS処理部643において付加される。
 このようなパケット構造のリードコマンドが、マスタ側のSerDes装置613のA-PHY処理部641によってA-PHY転送される。スレーブ側のSerDes装置612では、A-PHY処理部631が、リードコマンドからA-PHYヘッダおよびA-PHYフッタを除去する。リードコマンドは、CSIA処理部632、CSI2-FS処理部633、CCI-FS処理部636を介して、Destination IDにより示されるスレーブアドレス「7'h0E」のCCI処理部635に供給された後、I2C/I3Cマスタ634に供給される。
 図44には、リードアクセス時に、I2C/I3Cマスタ634から出力されるリードコマンドのパケット構成の一例が示されている。
 図44に示すように、I2C/I3Cマスタ634は、スタートコンディションSに続けて、接続先のセンサアドレス、即ち、図40に示す構成ではイメージセンサ611のCCI処理部622のアドレス(Slave Address+W 8-bit)を送信する。図44に示す例では、CCI処理部622のアドレスは、Slave Address[7:1]=7'h0Dとなっている。そのアドレスに続いて、イメージセンサ611のレジスタ624のレジスタアドレス(Register Address [15:8]およびRegister Address [7:0])が送信される。I2C/I3Cマスタ634は、拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0に続けて、最後にストップコンディションPを送信する。
 このようなパケット構造のリードコマンドが、スレーブ側のSerDes装置612のI2C/I3Cマスタ634からI2C/I3Cにより転送される。そして、イメージセンサ611では、I2C/I3Cスレーブ621がリードコマンド(拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0)を取得する。そのリードコマンドは、Slave Address[7:1]=7'h0DのCCI処理部622を介して、CSI2-FS処理部623に供給される。
 図45には、リードアクセス時に、CSI2-FS処理部623に供給されるリードコマンドと、CSI2-FS処理部623において生成されるリードデータのパケット構造の一例が示されている。
 図45に示すように、図41に示したパケット構造のままのリードコマンド、即ち、A-PHY転送においてE2E Protectionの保護範囲とされたリードコマンドが、CSI2-FS処理部623に供給される。
 リードデータは、図示するように、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0から構成される。そして、AP(CCI)ペイロードには、リードコマンドの拡張パケットヘッダePHのソースアドレス情報(Destination Address)で示されるレジスタ624のアドレス「0x0200」から読み出されたリードデータ値が格納される。
 イメージセンサ611では、このようなパケット構造のリードデータが、CCI-FS処理部623において生成され、CCI処理部622を介してI2C/I3Cスレーブ621に供給される。
 図46には、リードアクセス時に、イメージセンサ611のI2C/I3Cスレーブ621から出力されるリードデータのパケット構成の一例が示されている。
 図46に示すように、I2C/I3Cスレーブ621は、スタートコンディションSに続けて、接続先のセンサアドレス、即ち、図40に示す構成ではスレーブ側のSerDes装置612のI2C/I3Cマスタ634のアドレス(Slave Address+W 8-bit)を送信する。図46に示す例では、I2C/I3Cマスタ634のアドレスは、Slave Address[7:1]=7'h0Dとなっている。そのアドレスに続いて、リードデータの格納アドレス(イメージセンサ611のレジスタ624のアドレス)が送信され、スレーブ側のSerDes装置612のI2C/I3Cマスタ634のアドレス(Slave Address+R 8-bit)が送信される。I2C/I3Cスレーブ621が、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0を送信した後、最後にストップコンディションPが送信される。
 このようなパケット構造のリードコマンドが、イメージセンサ611のI2C/I3Cスレーブ621からからI2C/I3Cにより転送される。スレーブ側のSerDes装置612では、I2C/I3Cマスタ634が、リードデータ(拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0)を取得する。そのリードデータは、Slave Address[7:1]=7'h0EのCCI処理部635に供給された後、CCI-FS処理部636、CSI2-FS処理部633、およびCSIA処理部632を介して、A-PHY処理部631に供給される。
 図47には、リードアクセス時に、スレーブ側のSerDes装置612のA-PHY処理部631から出力されるリードデータのパケット構成の一例が示されている。
 図47に示すように、A-PHY処理部631は、I2C/I3Cマスタ634が取得したリードデータをE2E Protectionの保護範囲として、A-PHYヘッダおよびA-PHYフッタを付加する。
 このようなパケット構造のリードデータが、スレーブ側のSerDes装置612のA-PHY処理部631によってA-PHY転送される。そして、マスタ側のSerDes装置613では、A-PHY処理部641が、リードデータからA-PHYヘッダおよびA-PHYフッタを除去する。リードデータは、CSIA処理部642、CSI2-FS処理部643、CCI-FS処理部646、およびCCI処理部635を介して、I2C/I3Cスレーブ644に供給される。
 図48には、リードアクセス時に、マスタ側のSerDes装置613のI2C/I3Cスレーブ644から出力されるリードデータのパケット構成の一例が示されている。
 図48に示すように、I2C/I3Cスレーブ644は、スタートコンディションSに続けて、接続先のセンサアドレス、即ち、図40に示す構成では、マスタ側のSerDes装置613のCCI処理部635のアドレス(Slave Address+W 8-bit)を送信する。図48に示す例では、CCI処理部635のアドレスは、Slave Address[7:1]=7'h0Fとなっている。そのアドレスに続いて、マスタ側のSerDes装置613のレジスタ647のレジスタアドレス(Register Address [15:8]およびRegister Address [7:0])が送信され、CCI処理部635のアドレス(Slave Address+R 8-bit)が送信される。続いて、I2C/I3Cスレーブ644が、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0を送信した後、最後にストップコンディションPが送信される。
 このようなパケット構造のリードデータが、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からI2C/I3Cにより転送される。そして、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、リードコマンド(拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0)を取得して、CCI-FS処理部653に供給する。
 図49には、リードアクセス時に、CCI-FS処理部653に供給されるリードデータのパケット構造の一例が示されている。
 図49に示すように、図45に示したパケット構造のままのリードデータ、即ち、A-PHY転送においてE2E Protectionの保護範囲とされたリードデータが、CCI-FS処理部653に供給される。
 <通信処理の処理例>
 図50乃至図57のフローチャートを参照して、図40に示した通信システム601において行われるCCI-FSを使用した通信処理について説明する。
 図50に示すように、ステップS301乃至S317では、初期設定および確認動作が行われる。
 ステップS301において、アプリケーションプロセッサ614のCCI-FS処理部653のDestination SIDレジスタに、対向のイメージセンサ611のスレーブアドレスを設定する。
 ステップS302において、アプリケーションプロセッサ614のCCI-FS処理部653のePHレジスタの設定を行う。
 ステップS303において、アプリケーションプロセッサ614のCCI-FS処理部653のBridge構成のDestination SIDの設定を行い、マスタ側のSerDes装置613を登録する。ここで、Address,attribution,Timeout_no1レジスタも、これと同様に設定を行い、以下、同様に設定が行われるものとする。
 ステップS304において、アプリケーションプロセッサ614からマスタ側のSerDes装置613へ、CCI-FS処理部643のePHレジスタの設定が行われる。
 ステップS305において、アプリケーションプロセッサ614からマスタ側のSerDes装置613へ、CCI-FS処理部643のBridge構成のDestination SIDの設定を行い、スレーブ側のSerDes装置612を登録する。
 ステップS306において、アプリケーションプロセッサ614からマスタ側のSerDes装置613へ、CCI-FS処理部643のErrorレジスタに対するリードアクセスが行われる。
 ステップS307において、アプリケーションプロセッサ614では、CCI-FS処理部653が、ステップS306のリードアクセスの結果、マスタ側のSerDes装置613のCCI-FS処理部643のErrorレジスタのレジスタ値が0であるか否かを判定する。
 ステップS307において、マスタ側のSerDes装置613のCCI-FS処理部643のErrorレジスタのレジスタ値が0でない(0以外である)と判定された場合、処理はステップS308に進む。
 ステップS308において、アプリケーションプロセッサ614では、CCI-FS処理部653が、再送回数が3回以上であるか否かを判定し、再送回数が3回以上でない(1回または2回)と判定した場合、処理はステップS304に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS307において、マスタ側のSerDes装置613のCCI-FS処理部643のErrorレジスタのレジスタ値が0であると判定された場合、処理はステップS309に進む。
 ステップS309において、アプリケーションプロセッサ614からスレーブ側のSerDes装置612へ、CCI-FS処理部636のePHレジスタの設定が行われる。
 ステップS310において、アプリケーションプロセッサ614からスレーブ側のSerDes装置612へ、CCI-FS処理部636のBridge構成のDestination SIDの設定を行い、スレーブ側のSerDes装置612を登録する。
 ステップS311において、アプリケーションプロセッサ614からスレーブ側のSerDes装置612へ、CCI-FS処理部636のErrorレジスタに対するリードアクセスが行われる。
 ステップS312において、アプリケーションプロセッサ614では、CCI-FS処理部653が、ステップS311のリードアクセスの結果、スレーブ側のSerDes装置612のCCI-FS処理部636のErrorレジスタのレジスタ値が0であるか否かを判定する。
 ステップS312において、スレーブ側のSerDes装置612のCCI-FS処理部636のErrorレジスタのレジスタ値が0でない(0以外である)と判定された場合、処理はステップS313に進む。
 ステップS313において、アプリケーションプロセッサ614では、CCI-FS処理部653が、再送回数が3回以上であるか否かを判定し、再送回数が3回以上でない(1回または2回)と判定した場合、処理はステップS309に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS312において、スレーブ側のSerDes装置612のCCI-FS処理部636のErrorレジスタのレジスタ値が0であると判定された場合、処理はステップS314に進む。
 ステップS314において、アプリケーションプロセッサ614からイメージセンサ611へ、CCI-FS処理部623のePHレジスタの設定が行われる。
 ステップS315において、アプリケーションプロセッサ614からイメージセンサ611へ、CCI-FS処理部623のErrorレジスタに対するリードアクセスが行われる。
 ステップS316において、アプリケーションプロセッサ614では、CCI-FS処理部653が、ステップS315のリードアクセスの結果、イメージセンサ611のCCI-FS処理部623のErrorレジスタのレジスタ値が0であるか否かを判定する。
 ステップS316において、イメージセンサ611のCCI-FS処理部623のErrorレジスタのレジスタ値が0でない(0以外である)と判定された場合、処理はステップS317に進む。
 ステップS317において、アプリケーションプロセッサ614では、CCI-FS処理部653が、再送回数が3回以上であるか否かを判定し、再送回数が3回以上でない(1回または2回)と判定した場合、処理はステップS314に戻り、以下、同様の処理が繰り返して行われる。
 ここで、ステップS308、ステップS313、またはステップS317において、再送回数が3回以上であると判定された場合、処理はステップS301に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS316において、イメージセンサ611のCCI-FS処理部623のErrorレジスタのレジスタ値が0であると判定された場合、処理はステップS318に進む。
 図51に示すように、ステップS318乃至S327では、CCI-FSを使用したライト動作が行われる。
 ステップS318において、アプリケーションプロセッサ614のCCI-FS処理部653が、ライト動作を行うようにePHレジスタの設定を行う。
 ステップS319において、アプリケーションプロセッサ614のCCI-FS処理部653は、ライトデータレジスタの設定を行う。
 ステップS320において、アプリケーションプロセッサ614のCCI-FS処理部653は、コマンド実行レジスタを1に設定して、ライトコマンドを発行する。
 ステップS321において、アプリケーションプロセッサ614は、図53を参照して後述するSequence A_Write(AP時)処理を行う。
 ステップS322において、マスタ側のSerDes装置613は、図56を参照して後述するSequence B(SerDes(Master)時)処理を行う。なお、図56では、スレーブ側のSerDes装置612が実行するSequence B(SerDes(Slave)時)処理について説明しているが、マスタ側のSerDes装置613においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS323において、マスタ側のSerDes装置613の拡張パケットヘッダePHの拡張DTから、CSI2-FS処理部643およびCSIA処理部642を経由して、A-PHY処理部641が、A-PHYヘッダおよびA-PHYフッタを付加してA-PHY転送を行う。
 ステップS324において、スレーブ側のSerDes装置612は、図56を参照して後述するSequence B(SerDes(Slave)時)処理を行う。
 ステップS325において、スレーブ側のSerDes装置612は、図53を参照して後述するSequence A_Write(SerDes(Slave)時)処理を行う。なお、図53では、アプリケーションプロセッサ614が実行するSequence A_Write(AP時)処理について説明しているが、スレーブ側のSerDes装置612においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS326において、イメージセンサ611は、図56を参照して後述するSequence B(Image Sensor時)処理を行う。なお、図56では、スレーブ側のSerDes装置612が実行するSequence B(SerDes(Slave)時)処理について説明しているが、イメージセンサ611においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS327において、イメージセンサ611では、CCI-FS処理部623が、拡張パケットヘッダePHおよび拡張パケットフッタePFの内容から、レジスタ624のアドレスにライトデータを書き込むライト処理を行う。その後、処理はステップS328に進む。
 図52に示すように、ステップS328乃至S344では、CCI-FSを使用したリード動作が行われる。
 ステップS328において、アプリケーションプロセッサ614のCCI-FS処理部653は、リード動作を行うようにePHレジスタの設定を行う。
 ステップS329において、アプリケーションプロセッサ614のCCI-FS処理部653は、リードデータレジスタの設定を行う。
 ステップS330において、アプリケーションプロセッサ614のCCI-FS処理部653は、コマンド実行レジスタを1に設定して、リードコマンドを発行する。
 ステップS331において、アプリケーションプロセッサ614は、図54を参照して後述するSequence A_Read_CMD(AP時)処理を行う。ここで、Sequence A_Read_CMD(AP時)処理では、分岐された2つの処理が並列的に行われ、分岐Aに応じてステップS332に処理は進み、分岐Bに応じてステップS339に処理は進む。
 ステップS332において、マスタ側のSerDes装置613は、図56を参照して後述するSequence B(SerDes(Master)時)処理を行う。なお、図56では、スレーブ側のSerDes装置612が実行するSequence B(SerDes(Slave)時)処理について説明しているが、マスタ側のSerDes装置613においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS333において、マスタ側のSerDes装置613の拡張パケットヘッダePHの拡張DTから、CSI2-FS処理部643およびCSIA処理部642を経由して、A-PHY処理部641が、A-PHYヘッダおよびA-PHYフッタを付加してA-PHY転送を行う。
 ステップS334において、スレーブ側のSerDes装置612は、図56を参照して後述するSequence B(SerDes(Slave)時)処理を行う。
 ステップS355において、スレーブ側のSerDes装置612は、図54を参照して後述するSequence A_Read_CMD(SerDes(Slave)時)処理を行う。なお、図54では、アプリケーションプロセッサ614において実行されるSequence A_Read_CMD(AP時)処理について説明しているが、スレーブ側のSerDes装置612においても対応する各ブロックにより同様の処理を実行することができる。ここで、Sequence A_Read_CMD(SerDes(Slave)時)処理では、分岐された2つの処理のうち、分岐Aに処理は進まず、分岐Bに応じてステップS336に処理は進む。
 ステップS336において、スレーブ側のSerDes装置612は、図57を参照して後述するSequence A_Read_Data(SerDes(Slave)時)処理を行う。なお、図57では、アプリケーションプロセッサ614において実行されるSequence A_Read_Data(AP時)処理について説明しているが、スレーブ側のSerDes装置612においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS337において、スレーブ側のSerDes装置612の拡張パケットヘッダePHの拡張DTから、CSI2-FS処理部633およびCSIA処理部632を経由して、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを付加してA-PHY転送を行う。
 ステップS338において、マスタ側のSerDes装置613は、図56を参照して後述するSequence B(SerDes(Master)時)処理を行う。なお、図56では、スレーブ側のSerDes装置612において実行されるSequence B(SerDes(Slave)時)処理について説明しているが、マスタ側のSerDes装置613においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS339において、アプリケーションプロセッサ614は、図57を参照して後述するSequence A_Read_Data(AP時)処理を行う。
 ステップS340において、アプリケーションプロセッサ614は、図56を参照して後述するSequence B(AP時)処理を行う。なお、図56では、スレーブ側のSerDes装置612において実行されるSequence B(SerDes(Slave)時)処理について説明しているが、アプリケーションプロセッサ614においても対応する各ブロックにより同様の処理を実行することができる。
 ステップS341において、アプリケーションプロセッサ614では、CCI-FS処理部653が、拡張パケットヘッダePHおよび拡張パケットフッタePFの内容から、レジスタ654のアドレスにリードデータを格納する。
 ステップS342において、上述したリード処理を、イメージセンサ611、スレーブ側のSerDes装置612、マスタ側のSerDes装置613、およびアプリケーションプロセッサ614で、Errorレジスタ確認を実施する。
 ステップS343において、イメージセンサ611、各デバイス(スレーブ側のSerDes装置612、マスタ側のSerDes装置613、およびアプリケーションプロセッサ614)は、それぞれのCCI-FS処理部のErrorレジスタのレジスタ値が0であるか否かを判定する。
 ステップS343において、全てのCCI-FS処理部のレジスタ値が0でない(いずれかに0以外のレジスタ値がある)と判定された場合、処理はステップS344に進む。
 ステップS344において、レジスタ値が0でないCCI-FS処理部のError関連レジスタ値を確認し、Errorレジスタを1ライトクリアして再送処理を行う。
 一方、ステップS343において、全てのCCI-FS処理部のレジスタ値が0であると判定された場合、または、ステップS344の処理後、処理は終了される。
 図53は、図51のステップS321において行われるSequence A_Write(AP時)処理を説明するフローチャートである。なお、図53では、アプリケーションプロセッサ614が行う処理を例に説明するが、図51のステップS325のSequence A_Write(SerDes(Slave)時)処理も同様に行われる。
 ステップS351において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、スタートコマンドおよびスレーブアドレス(図42に示したSlave Address+W 8-bit)を発行する。
 ステップS352において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。ステップS352において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS353に進む。
 ステップS353において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、レジスタアドレス(図42に示したRegister Address [15:8])を発行する。ここで、ステップS353の処理が繰り返して行われるたびに、図42に示したように、このレジスタアドレス以下のペイロードが送信される。
 ステップS354において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。ステップS354において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS355に進む。
 ステップS355において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、最終データの転送が完了したか否かを判定する。ステップS355において、最終データの転送が完了していないと判定された場合、処理はステップS353に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS355において、最終データの転送が完了したと判定された場合、処理はステップS356に進む。ステップS356において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。これにより、Sequence A_Write(AP時)処理は終了し、図51のステップS322に処理が戻る。
 一方、ステップS352またはS354において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信しなかったと判定された場合、処理はステップS357に進む。ステップS357において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。この場合、Sequence A_Write(AP時)処理が終了するとともに、通信処理自体が終了される。
 図54は、図52のステップS331において行われるSequence A_Read_CMD(AP時)処理を説明するフローチャートである。なお、図54では、アプリケーションプロセッサ614が行う処理を例に説明するが、図52のステップS335のSequence A_Read_CMD(SerDes(Slave)時)処理も同様に行われる。
 ステップS361において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、スタートコマンドおよびスレーブアドレス(図42に示したSlave Address+W 8-bit)を発行し、タイマを起動する。
 ステップS362において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。ステップS362において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS363に進む。
 ステップS363において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、レジスタアドレス(図42に示したRegister Address [15:8])を発行する。ここで、ステップS363の処理が繰り返して行われるたびに、図42に示したように、このレジスタアドレス以下のペイロードの送信が送信される。
 ステップS364において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。
 ステップS364において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS365に進む。
 ステップS365において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、最終データの転送が完了したか否かを判定する。
 ステップS365において、最終データの転送が完了したと判定された場合、処理はステップS366に進む。
 ステップS366において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。その後、処理は2つに分岐し、分岐Aに従って処理は図52のステップS332に進む。一方、分岐Bに従って、ステップS367においてSequence C(AP時)処理(後述する図55参照)が行われた後、処理は図52のステップS339に進む。
 一方、ステップS365において、最終データの転送が完了していないと判定された場合、処理はステップS368に進む。
 ステップS368において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ステップS361でスタートしたタイマがタイムアウトしたか否かを判定する。ステップS368において、タイマがタイムアウトしていないと判定された場合、処理はステップS363に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS368において、タイマがタイムアウトしたと判定された場合、処理はステップS369に進む。
 ステップS369において、アプリケーションプロセッサ614は、Errorレジスタ(Timeout)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS369の処理後、または、ステップS362もしくはS364において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信しなかったと判定された場合、処理はステップS370に進む。
 ステップS370において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。この場合、Sequence A_Read_CMD(AP時)処理が終了するとともに、通信処理自体が終了される。
 図55は、図54のステップS367において行われるSequence C(AP時)処理を説明するフローチャートである。なお、図55では、アプリケーションプロセッサ614が行う処理を例に説明するが、スレーブ側のSerDes装置612においても同様の処理を行うことができる。
 ステップS381において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、図54のステップS361でスタートしたタイマがタイムアウトしたか否かを判定し、タイムアウトしたと判定されるまで処理が待機される。ステップS381において、タイムアウトしたと判定されると、処理はステップS382に進み、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ポーリング動作を行う。
 ステップS383において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、リードコマンドのStatusレジスタ値が1であるか否かを判定する。
 ステップS383において、リードコマンドのStatusレジスタ値が1であると判定された場合、処理はステップS384に進む。ステップS384において、アプリケーションプロセッサ614は、リードアクセスを行った後、処理は図52のステップS339に戻る。
 一方、ステップS383において、リードコマンドのStatusレジスタ値が1でない(1以外である)と判定された場合、処理はステップS385に進む。ステップS385において、アプリケーションプロセッサ614は、Errorレジスタ(Timeout)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS386において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。この場合、Sequence C(AP時)処理が終了するとともに、通信処理自体が終了される。
 図56は、図51のステップS324およびS334において行われるSequence B(SerDes(Slave)時)処理を説明するフローチャートである。なお、図56では、スレーブ側のSerDes装置612が行う処理を例に説明するが、図51のステップS322のSequence B(SerDes(Master)時)、図51のステップS326のSequence B(Image Sensor時)処理、および、図52のステップS332のSequence B(SerDes(Master)時)処理も同様に行われる。
 ステップS391において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDを確認する。
 ステップS392において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが不一致であるか否かを判定する。
 ステップS392において、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが不一致であると判定された場合、処理はステップS393に進む。
 ステップS393において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612のDestination SIDと拡張パケットヘッダePHのDestination SIDを確認する。
 ステップS394において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したか否かを判定する。
 ステップS394において、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが一致したと判定された場合、処理はステップS395に進む。
 ステップS395において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、拡張パケットヘッダePHの内容から、Message Counterを確認する。
 ステップS396において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612でのMessage Counterと、拡張パケットヘッダePHの内容から確認したMessage Counterの受信値とが一致したか否かを判定する。
 ステップS396において、スレーブ側のSerDes装置612でのMessage Counterと、拡張パケットヘッダePHの内容から確認したMessage Counterの受信値とが一致したと判定された場合、処理はステップS397に進む。
 ステップS397において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、スレーブ側のSerDes装置612で拡張パケットヘッダePHから計算されたCRC計算結果と、拡張パケットフッタePFの受信値(ePF0)とを確認する。
 ステップS398において、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致するか否かを判定し、一致すると判定された場合、図51のステップS325に処理は戻る。
 一方、ステップS392において、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが不一致でない(一致している)と判定された場合、処理はステップS399に進む。
 ステップS399乃至S402では、ステップS395乃至S398と同様の処理が行われる。
 ステップS402において、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致したと判定された場合、処理はステップS403に進む。ステップS403において、スレーブ側のSerDes装置612のレジスタ637にライトアクセスする。
 ステップS394において、スレーブ側のSerDes装置612のSource IDと拡張パケットヘッダePHのDestination SIDとが一致していないと判定された場合、処理はステップS404に進む。ステップS404において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、Errorレジスタ[2](Routing)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS398またはS402において、拡張パケットフッタePFの受信値(ePF0)とCRC計算結果とが一致していないと判定された場合、処理はステップS405に進む。ステップS405において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、Errorレジスタ(CRC)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS396またはS400において、スレーブ側のSerDes装置612でのMessage Counterと、拡張パケットヘッダePHの内容から確認したMessage Counterの受信値とが一致していないと判定された場合、処理はステップS406に進む。ステップS406において、スレーブ側のSerDes装置612では、CCI-FS処理部636が、Errorレジスタ(MC)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS403乃至S406の処理後、Sequence B(SerDes(Slave)時)処理が終了するとともに、通信処理自体が終了される。
 なお、CRC計算について、E2E Protectionのみを対象として実施しても構わないこと、各デバイスそれぞれでエラー検出すること、パケット破棄する/しないことについて、これらを組み合わせが想定される。
 図57は、図52のステップS339において行われるSequence A_Read_Data(AP時)処理を説明するフローチャートである。なお、図57では、アプリケーションプロセッサ614が行う処理を例に説明するが、図52のステップS336のSequence A_Read_Data(SerDes(Slave)時)処理も同様に行われる。
 ステップS411において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、スタートコマンドおよびスレーブアドレス(図48に示したSlave Address+W 8-bit)を発行する。
 ステップS412において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。ステップS412において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS413に進む。
 ステップS413において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、スタートコマンドおよびスレーブアドレス(図48に示したSlave Address+R 8-bit)を発行し、タイマを起動する。
 ステップS414において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したか否かを判定する。ステップS414において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信したと判定された場合、処理はステップS415に進む。
 ステップS415において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、アプリケーションプロセッサ614側の対向のI2C/I3Cスレーブ644からリードデータを取得する。
 ステップS416において、アプリケーションプロセッサ614のI2C/I3Cマスタ651がACK送信を行い、かつ、アプリケーションプロセッサ614側の対向のI2C/I3Cスレーブ644においてACK受信が行われたか否かが判定される。
 ステップS416において、アプリケーションプロセッサ614のI2C/I3Cマスタ651がACK送信を行い、かつ、アプリケーションプロセッサ614側の対向のI2C/I3Cスレーブ644においてACK受信が行われたと判定された場合、処理はステップS417に進む。
 ステップS417において、アプリケーションプロセッサ614のI2C/I3Cマスタ651が、最終データの転送が完了したのに伴ってNACK送信を行ったか否かが判定される。
 ステップS417において、NACK送信を行ったと判定された場合、処理はステップS418に進む。ステップS418において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。これにより、Sequence A_Read_Data(AP時)処理は終了し、図52のステップS340に処理が戻る。
 一方、ステップS417において、NACK送信を行っていないと判定された場合、処理はステップS419に進む。
 ステップS419において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ステップS413でスタートしたタイマがタイムアウトしたか否かを判定する。ステップS419において、タイマがタイムアウトしていないと判定された場合、処理はステップS415に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS419において、タイマがタイムアウトしたと判定された場合、処理はステップS420に進む。
 ステップS420において、アプリケーションプロセッサ614は、Errorレジスタ(Timeout)に1を設定し、Error関連レジスタに拡張パケットヘッダePHおよび拡張パケットフッタePFのデータを格納する。
 ステップS420の処理後、または、ステップS414において、マスタ側のSerDes装置613のI2C/I3Cスレーブ644からのACK応答を受信していないと判定された場合、処理はステップS421に進む。同様に、ステップS416において、アプリケーションプロセッサ614のI2C/I3Cマスタ651がACK送信を行っていない、または、アプリケーションプロセッサ614側の対向のI2C/I3Cスレーブ644においてACK受信が行われていないと判定された場合、処理はステップS421に進む。
 ステップS421において、アプリケーションプロセッサ614では、I2C/I3Cマスタ651が、ストップコマンドを発行する。この場合、Sequence A_Read_Data(AP時)処理が終了するとともに、通信処理自体が終了される。
 ここで、I2C/I3Cスレーブ621が出力(図46参照)する際に、I2C/I3Cマスタ634からI2C/I3Cスレーブ621へのアクセスタイミング、および、マスタ側のSerDes装置613のI2C/I3Cスレーブ644が出力(図48参照)する際に、I2C/I3Cマスタ651からI2C/I3Cスレーブ644へのアクセスタイミングには、次に説明する3つの組み合わせがある。
 第1のアクセスタイミングは、リードデータが取得されるまでポーリングして、リードデータの読み出し準備完了後に、I2C/I3Cマスタがリード処理を開始する。
 第2のアクセスタイミングは、一定時間経過後、I2C/I3Cマスタがリード処理を開始する。
 第3のアクセスタイミングは、Clock Stretch方式(後述する図72参照)を用いて、一定時間経過後、I2C/I3Cマスタがリード処理を開始し、その際、リードデータを塊で送る形態と、リードデータをばらばらに送る形態(Clock Stretch Mode信号をアサート)とがある。
 <拡張パケットヘッダePHの構成例>
 図58乃至図60は、拡張パケットヘッダePHの構成例を示す図である。
 図58には、拡張パケットヘッダePH0、拡張パケットヘッダePH1、および拡張パケットヘッダePH2の詳細な構成例が示されている。図示するような拡張パケットヘッダePHの追加は、CCI-FS用に拡張パケットヘッダePHの内容が、C-PHYおよびD-PHYでのePH構造を流用して規定されている。
 図59には、拡張パケットヘッダePH3の詳細な構成例が示されている。図示するような拡張パケットヘッダePHの追加は、CCI-FS用に拡張パケットヘッダePHの内容が規定されている。
 図60には、拡張パケットヘッダePHの拡張DTの詳細な構成例が示されている。例えば、CCI-FSに対応するために、拡張パケットヘッダePHのデータタイプに、「0xC0:For I2C」と「0xC1:For I3C」が追加されている。
 <I2Cの回路構成例>
 図61には、従来のI2Cのハードウェアでの構成例が示されている。例えば、ハードウェア実装時で、上位にバス接続構成の場合におけるI2Cの構成例が示されており、スレーブ側は、上位からAKC/NACKを受信できる構成であってもよい。もちろん、一例が示されているものであり、必ずしも上位バス構成が一致するものではない。
 図62には、I2Cバス上のデータ転送時の波形が示されている。なお、I2Cバス規格とCCI(I2C)は等価なものとする。
 <通信システム701におけるCCI関連の構成例>
 図63は、上述の図27に示した通信システム501と同様ように、A-PHY直結構成の通信システム701におけるCCI関連の構成例を示すブロック図である。
 図63に示すように、通信システム701は、イメージセンサ711およびアプリケーションプロセッサ712がA-PHYにより直接的に接続されている。
 イメージセンサ711は、A-PHY処理部721、CSIA処理部722、CSI2処理部523、CSI2-FS処理部724、CCI処理部725、CCI-FS処理部726、レジスタ727、並びに、セレクタ728-1および728-2を備えて構成される。図示するように、セレクタ728-1および728-2は、CCI-FS処理部726を挟み込むように配置されており、レジスタ727のCCI_FS_Enable信号に従って、CCI-FS処理部726の有効/無効を切り替えることができる。
 アプリケーションプロセッサ712は、A-PHY処理部731、CSIA処理部732、CSI2処理部733、CSI2-FS処理部734、CCI処理部735、CCI-FS処理部736、レジスタ737、並びに、セレクタ738-1および738-2を備えて構成される。図示するように、セレクタ738-1および738-2は、CCI-FS処理部736を挟み込むように配置されており、レジスタ737のCCI_FS_Enable信号に従って、CCI-FS処理部736の有効/無効を切り替えることができる。
 例えば、CCI_FS_Enable信号がCCI-FSを有効にすることを示している場合(CCI_FS_Enable=1)、一点鎖線の矢印に示すように、CCI-FS処理部726およびCCI-FS処理部736を介してデータが送受信される。一方、CCI_FS_Enable信号がCCI-FSを無効にすることを示している場合(CCI_FS_Enable=0)、二点鎖線の矢印に示すように、CCI-FS処理部726およびCCI-FS処理部736を介さずにデータが送受信される。
 <ネットワークの接続形態>
 図64には、A-PHY直結構成およびSerDes接続構成のネットワークの接続形態(トポロジー)の一例が示されている。
 アプリケーションプロセッサ801は、A-PHYを介して直接的にイメージセンサ802に接続されており、イメージセンサ802は、I2C/I3Cを介してセンサ803に接続される接続形態を構成することができる。
 アプリケーションプロセッサ801は、I2C/I3Cを介してマスタ側のSerDes装置804に接続され、マスタ側のSerDes装置804およびスレーブ側のSerDes装置805がA-PHYを介して接続されている。スレーブ側のSerDes装置805は、I2C/I3Cを介して2つのセンサ806-1および806-2に接続される接続形態を構成することができる。
 <CCI-FS処理部の回路構成>
 図65は、CCI-FS処理部の回路構成の一例を示すブロック図である。図65に示すCCI-FS処理部901およびレジスタ902は、上述した各デバイスが備えるCCI-FS処理部およびレジスタで共通の構成となる。
 図65に示すように、CCI-FS処理部901は、上位レイヤにCCI-FSスイッチやレジスタなどが設けられており、下位レイヤにCCI処理部が設けられている。CCI-FS処理部901は、CCI-FS送信部911およびCCI-FS受信部912を備えて構成される。レジスタ902からCCI-FS処理部901には、各種のレジスタ設定値情報が供給され、CCI-FS処理部901からレジスタ902には、Error通知が供給される。
 CCI-FS送信部911は、拡張パケットヘッダePH生成部921、拡張パケットフッタePF生成部922、およびDestination Address確認部923を備えている。
 拡張パケットヘッダePH生成部921は、Message Counterを生成するMC生成部941、および、パケット長を計算するPacket Length計算部942を有している。拡張パケットフッタePF生成部922は、拡張パケットフッタePF1を生成する拡張パケットフッタePF1生成部943、および、拡張パケットフッタePF0に格納されるCRCを計算するCRC計算部944を有している。
 CCI-FS受信部912は、拡張パケットヘッダePH確認部931、拡張パケットフッタePF確認部932、およびDestination Address確認部933を備えている。
 拡張パケットヘッダePH確認部931は、Message Counterを確認するMC確認部951、および、パケット長を計算および確認するPacket Length計算・確認部952を有している。拡張パケットフッタePF確認部932は、拡張パケットフッタePF1を確認する拡張パケットフッタePF1確認部953、および、拡張パケットフッタePF0に格納されるCRCを計算するCRC計算部954を有している。
 CCI-FS処理部901は、CCI-FS送信部911により、上位レイヤからのデータのDestination Addressを確認して、拡張パケットヘッダePHおよび拡張パケットフッタePFを生成してデータに付加し、下位のレイヤに供給することができる。CCI-FS処理部901は、CCI-FS受信部912により、下位レイヤからのデータのDestination Addressを確認して、拡張パケットヘッダePHおよび拡張パケットフッタePFを確認し、上位のレイヤに供給することができる。
 ここで、上述した図40に示したSerDes接続構成の構成例の通信システム601を構成する各デバイスのCCI-FS処理部の動作について説明する。
 アプリケーションプロセッサ614は、アプリケーションプロセッサ614での拡張パケットヘッダePHにおいて、自デバイスを示すSource IDを有する。そして、CCI-FS処理部653は、上記情報と、目的とするアクセスを行うデバイスを示すDestination IDを有する情報とを付加する。
 スレーブ側のSerDes装置612およびマスタ側のSerDes装置613は、自デバイスを示すSource IDを、事前設定されることにより、もしくは固有値として有する。CCI-FS処理部636およびCCI-FS処理部646は、上記情報と、接続デバイスと目的とするデバイスを示すDestination IDを有する情報との事前設定を行う。
 また、CCI-FS処理部636およびCCI-FS処理部646は、受信した拡張パケットヘッダePHのDesination IDと自分のID(Source ID)を比較し、自分へのアクセスか、目的とするデバイスを示す(Desination ID)かの判別を行う。例えば、受信した拡張パケットヘッダePHのDesination IDと自分のID(Source ID)とが一致したときは、中間デバイス(SerDes装置)へのアクセスとして、自身のレジスタアクセスを行う。一方、受信した拡張パケットヘッダePHのDesination IDと自分のID(Source ID)とが一致しないときは、後段デバイスへのアクセスとして、接続されたデバイス(Desination ID)へ向けてデータ転送を行う。
 上記のように、拡張パケットヘッダePHに埋め込まれたSource IDとDestination ID、中間デバイス(SerDes装置)または目的とするデバイスに、事前設定または固有値のSource ID、事前設定された接続先情報を元にデータを転送し、目的とするデバイスへ向けてアクセスを行う。
 イメージセンサ611のCSI2-FS処理部623は、受信した拡張パケットヘッダePHのDestination IDと、自分のID(Source ID)とが一致したときは、イメージセンサ611へのアクセスとして、自身のレジスタアクセスを行う。
 このように、各デバイスが有するSource IDは、それぞれのデバイスに対して固有の値、事前設定された値、もしくはそれらの組み合わせを用いることができる。
 図66乃至図68は、レジスタ902の詳細な構成例を示す図である。
 図66には、レジスタ902のアドレス0x000からアドレス0x109までの詳細が示されている。図67には、レジスタ902のアドレス0x110からアドレス0x125までの詳細として、Bridge構成時の構成例が示されている。
 図68には、レジスタ902のアドレス0x200の詳細として、Error関連レジスタが示されている。図68には、レジスタ902のアドレス0x300およびアドレス0x400の詳細として、Error関連レジスタ(debug)が示されている。図68には、レジスタ902のアドレス0x800の詳細として、Error Injection関連レジスタ(debug)が示されている。
 <拡張パケットヘッダePHの変形例>
 図69および図70を参照して、拡張パケットヘッダePHの変形例について説明する。
 図69には、上述の図33を参照して説明したように、ライトアクセス時に、アプリケーションプロセッサ512のCCI-FS処理部536で生成されるライトデータのパケット構成における拡張パケットヘッダePHの変形例が示されている。図69に示す拡張パケットヘッダePHは、拡張パケットヘッダePH3および拡張パケットヘッダePH4の構成が、上述の図33に示した構成例と異なっている。
 図70には、上述の図28を参照して説明したように、リードアクセス時に、アプリケーションプロセッサ512のCCI-FS処理部536において生成されるライトデータのパケット構成における拡張パケットヘッダePHの変形例が示されている。図70に示す拡張パケットヘッダePHは、拡張パケットヘッダePH3および拡張パケットヘッダePH4の構成が、上述の図28に示した構成例と異なっている。
 例えば、図69および図70に示す拡張パケットヘッダePHでは、実装依存で、以下のような組み合わせが想定される。
 Readアドレス情報を拡張パケットヘッダePHに格納しても、AP(CCI)ペイロードに格納してもよい。Length情報を拡張パケットヘッダePHに格納しても、AP(CCI)ペイロードに格納してもよい。CMDの情報を、拡張パケットヘッダePHのCCI Command IDに格納してもよい。CCI Command IDに基づいて、コマンドの開始、再開、および終了情報が参照される。CCI Header Lengthを用いて、AP(CCI)ペイロードにCCIの情報(例えば、Slave Addressなど)を格納してもよい。CCI Header Lengthは、CCIプロトコル(I2C)のヘッダ長を示す情報である。
 図71は、図27に示したようなA-PHY直結構成におけるイメージセンサ511およびアプリケーションプロセッサ512との間のフローを説明する図である。
 アプリケーションプロセッサ512では、CCI-FSスイッチ538が、リードコマンドおよびライトコマンドを発行する。CCI-FSスイッチ538は、スレーブアドレス(Slave Address+W 8bit)、レジスタアドレス(Register Address[15:8]、Register Address[7:0])、および、データ(Data*(*=N)[7:0])を、CCI処理部535に供給する。CCI処理部535は、それらをAP(CCI)ペイロードに変換して、A-PHY処理部531に供給する。A-PHY処理部531は、AP(CCI)ペイロードにA-PHYヘッダおよびA-PHYフッタを付加し、イメージセンサ511へA-PHY転送を行う。
 イメージセンサ511では、A-PHY処理部521が、A-PHYヘッダおよびA-PHYフッタを除去してAP(CCI)ペイロードをCCI処理部525に供給する。CCI処理部525は、AP(CCI)ペイロードを変換し、その内容に基づいて、ライトコマンドに従ってレジスタ527にデータを書き込み、リードコマンドに従ってレジスタ527からデータを読み出す。
 このとき、CCI-FS Enableの初期設定は、CCI処理部525により行われ、レジスタインタフェースやAHBバスなどのバス変換が行われる。そして、CCI-FS Enable設定の確認は、CCI処理部525またはCCI-FS処理部526を経由して行われる。
 CCI処理部525は、リードコマンドに応じてレジスタ527から読み出されたリードデータ(Data*(*=M)[7:0])をAP(CCI)ペイロードに変換して、A-PHY処理部521に供給する。A-PHY処理部521は、AP(CCI)ペイロードにA-PHYヘッダおよびA-PHYフッタを付加し、アプリケーションプロセッサ512へA-PHY転送を行う。
 アプリケーションプロセッサ512では、A-PHY処理部531が、A-PHYヘッダおよびA-PHYフッタを除去してAP(CCI)ペイロードをCCI処理部535に供給する。CCI処理部535は、AP(CCI)ペイロードを変換し、リードデータ(Data*(*=M)[7:0])をCCI-FSスイッチ538に供給する。
 CCI-FSスイッチ538は、レジスタ537に対してCCI-FS Enable設定およびCCI-FS関連各種レジスタ設定を行う。このとき、レジスタアクセスは、実装に依存する。CCI-FSスイッチ538は、レジスタ537、CCI-FS処理部536、A-PHY処理部531、A-PHY処理部521、CCI-FS処理部526を介して、レジスタ527に対してCCI-FS関連各種レジスタ設定を行う。
 アプリケーションプロセッサ512では、CCI-FSスイッチ538が、リードコマンドを発行する。CCI-FSスイッチ538は、スレーブアドレス(Slave Address+W 8bit)、レジスタアドレス(Register Address[15:8]、Register Address[7:0])、および、データ(Data*(*=N)[7:0])を、レジスタ537に供給する。CCI-FS処理部536は、それらをAP(CCI)ペイロードに変換し、拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0を付加して、A-PHY処理部531に供給する。A-PHY処理部531は、それらにA-PHYヘッダおよびA-PHYフッタを付加し、イメージセンサ511へA-PHY転送を行う。
 イメージセンサ511では、A-PHY処理部521が、A-PHYヘッダおよびA-PHYフッタを除去して、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0を、CCI-FS処理部526に供給する。CCI-FS処理部526は、AP(CCI)ペイロードを変換し、その内容に基づいて、リードコマンドに従ってレジスタ527からデータを読み出す。このとき、レジスタアクセスは、実装に依存し、レジスタインタフェースやAHBバス、CCIインタフェースなどのバス変換が行われる。
 CCI-FS処理部526は、リードコマンドに応じてレジスタ527から読み出されたリードデータ(Data*(*=M)[7:0])をAP(CCI)ペイロードに変換し、拡張パケットヘッダePH*(*=n)、拡張パケットフッタePF1、および拡張パケットフッタePF0を付加して、A-PHY処理部521に供給する。A-PHY処理部521は、それらにA-PHYヘッダおよびA-PHYフッタを付加し、アプリケーションプロセッサ512へA-PHY転送を行う。
 アプリケーションプロセッサ512では、A-PHY処理部531が、A-PHYヘッダおよびA-PHYフッタを除去して、拡張パケットヘッダePH*(*=n)、AP(CCI)ペイロード、拡張パケットフッタePF1、および拡張パケットフッタePF0を、CCI-FS処理部536に供給する。CCI-FS処理部536は、AP(CCI)ペイロードを変換し、リードデータ(Data*(*=M)[7:0])をCCI-FSスイッチ538に供給する。
 なお、上述したフローは、ハードウェアでのI2C/I3Cコマンド生成を例に説明を行ったが、その他、以下のような組み合わせがある。
 ソフトウェアの場合、ソフトウェアでのI2C/I3C生成として、Slave Address、Registerアドレス、Payload、ACK応答受信、送信、各種制御コード(S,Sr,ACK,NACK,P)がソフトウェアで生成(例えば、GPIO制御のイメージ)される。ソフトウェアでのI2C/I3Cコマンド生成として、CPUバス設定でACK受信に応じて、CPUから、Slave Address、Registerアドレス、Payloadを発行する。
 ハードウェアの場合、ハードウェアでのI2C/I3C生成として、I2C/I3CのHW IPに転送設定、データを設定する。各種制御コードはハードウェアで自動応答する。ハードウェアでのI2C/I3Cコマンド生成として、I2C/I3CのHW IPに転送設定でデータを設定し、コマンドで送信を行う。各種制御コードはハードウェアで自動応答する。
 図72は、図40に示したようなSerDes接続構成におけるイメージセンサ611およびアプリケーションプロセッサ614の間のWriteアクセスおよびReadアクセスにおいて、Clock Stretch方式を用いたフローを説明する図である。
 アプリケーションプロセッサ614のCCI-FSスイッチ655は、スタートコマンドおよびライトコマンド(Slave Address+W 8bit)を、マスタ側のSerDes装置613のCCI処理部645に供給し、Scl_enb信号をアサートする。マスタ側のSerDes装置613では、CCI処理部645が、ライトコマンドをA-PHY処理部641に供給し、A-PHY処理部641は、ライトコマンドにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去してライトコマンドを、CCI処理部635(Slave)に供給する。CCI処理部635(Slave)は、Scl_enb信号をネゲートするとともにライトコマンドをCCI処理部635(Master)に供給する。ここで、マスタ側のSerDes装置613側との通信を行ってスレーブとして機能するCCI処理部635をCCI処理部635(Slave)と称し、イメージセンサ611側と通信を行ってマスタとして機能するCCI処理部635をCCI処理部635(Master)と称する。
 CCI処理部635(Master)は、スタートコマンドおよびライトコマンドを、イメージセンサ611に送信する。
 イメージセンサ611では、CCI処理部622が、スタートコマンドおよびライトコマンドを受信してCSI2-FS処理部623に供給する。CSI2-FS処理部623は、その受信に成功したことを示すACK応答をCCI処理部622に供給し、CCI処理部622は、スレーブ側のSerDes装置612にACK応答を送信する。
 スレーブ側のSerDes装置612では、CCI処理部635(Master)がACK応答を受信し、CCI処理部635(Slave)からScl_enb信号がネゲートされると、ACK応答をCCI-FS処理部636に供給する。その後、CCI処理部635(Slave)は、CCI処理部635(Master)にScl_enb信号をアサートする。
 CCI-FS処理部636は、ACK応答をA-PHY処理部631に供給する。A-PHY処理部631は、ACK応答にA-PHYヘッダおよびA-PHYフッタを付加し、マスタ側のSerDes装置613へA-PHY転送を行う。
 マスタ側のSerDes装置613では、A-PHY処理部641が、A-PHYヘッダおよびA-PHYフッタを除去してACK応答をCCI処理部645に供給する。アプリケーションプロセッサ614のCCI-FSスイッチ655が、CCI処理部645に対してScl_enb信号をネゲートすると、CCI処理部645は、アプリケーションプロセッサ614にACK応答を送信する。
 アプリケーションプロセッサ614では、CCI処理部652がACK応答を受信して、CCI-FS処理部653を介してCCI-FSスイッチ655に供給する。
 アプリケーションプロセッサ614のCCI-FSスイッチ655は、レジスタアドレス(Register Address[7:0])を、マスタ側のSerDes装置613のCCI処理部645に供給し、Scl_enb信号をアサートする。マスタ側のSerDes装置613では、CCI処理部645が、レジスタアドレスをA-PHY処理部641に供給し、A-PHY処理部641は、レジスタアドレスにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去してレジスタアドレスを、CCI処理部635(Slave)に供給する。CCI処理部635(Slave)は、Scl_enb信号をネゲートするとともにレジスタアドレスをCCI処理部635(Master)に供給する。CCI処理部635(Master)は、レジスタアドレスを、イメージセンサ611に送信する。その後、CCI処理部635(Slave)は、CCI処理部635(Master)にScl_enb信号をアサートする。
 イメージセンサ611では、CCI処理部622が、レジスタアドレスを受信してCSI2-FS処理部623に供給する。CSI2-FS処理部623は、その受信に成功したことを示すACK応答をCCI処理部622に供給し、CCI処理部622は、スレーブ側のSerDes装置612にACK応答を送信する。
 その後、上述した処理と同様に、ACK応答がCCI-FSスイッチ655まで供給される。
 アプリケーションプロセッサ614では、CCI-FS処理部653が、CCI-FSスイッチ655の制御に従って、マスタ側のSerDes装置613へ拡張パケットヘッダePH*(*=n)を送信する。
 マスタ側のSerDes装置613では、CCI処理部645が、拡張パケットヘッダePH*(*=n)を受信し、CCI-FSスイッチ655からScl_enb信号がアサートされると、拡張パケットヘッダePH*(*=n)をA-PHY処理部641に供給する。その後、CCI-FSスイッチ655は、CCI処理部645にScl_enb信号をネゲートする。A-PHY処理部641は、拡張パケットヘッダePH*(*=n)にA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去して拡張パケットヘッダePH*(*=n)を、CCI-FS処理部636に供給する。CCI-FS処理部636は、Scl_enb信号をネゲートするとともに拡張パケットヘッダePH*(*=n)をCCI処理部635(Master)に供給する。CCI処理部635(Master)は、拡張パケットヘッダePH*(*=n)を、イメージセンサ611に送信する。その後、CCI処理部635(Slave)は、CCI処理部635(Master)にScl_enb信号をアサートする。
 イメージセンサ611では、CSI2-FS処理部623が、拡張パケットヘッダePH*(*=n)を受信する。CSI2-FS処理部623は、その受信に成功したことを示すACK応答をCCI処理部622に供給し、CCI処理部622は、スレーブ側のSerDes装置612にACK応答を送信する。
 その後、上述した処理と同様に、ACK応答がCCI-FSスイッチ655まで供給される。
 アプリケーションプロセッサ614のCCI-FSスイッチ655は、ライトデータ(Dara0[7:0])を、マスタ側のSerDes装置613のCCI処理部645に供給し、Scl_enb信号をアサートする。マスタ側のSerDes装置613では、CCI処理部645が、ライトデータをA-PHY処理部641に供給し、A-PHY処理部641は、ライトデータにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 マスタ側のSerDes装置613では、CCI処理部645が、ライトデータを受信し、CCI-FSスイッチ655からScl_enb信号がアサートされると、ライトデータをA-PHY処理部641に供給する。その後、CSI2-FS処理部653は、CCI-FSスイッチ655の制御に従って、CCI処理部645にScl_enb信号をネゲートする。A-PHY処理部641は、ライトデータにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去してライトデータを、CCI処理部635に供給する。CCI処理部635は、Scl_enb信号をネゲートするとともにライトデータをCCI処理部635(Master)に供給する。CCI処理部635(Master)は、ライトデータをイメージセンサ611に送信する。その後、CCI処理部635(Slave)は、CCI処理部635(Master)にScl_enb信号をアサートする。
 イメージセンサ611では、CCI処理部622がライトデータを受信してCSI2-FS処理部623に供給し、CSI2-FS処理部623がレジスタ624にライトデータを書き込む。CSI2-FS処理部623は、ライトデータの書き込みに成功したことを示すACK応答をCCI処理部622に供給し、CCI処理部622は、スレーブ側のSerDes装置612にACK応答を送信する。
 その後、上述した処理と同様に、ACK応答がCCI-FSスイッチ655まで供給される。
 アプリケーションプロセッサ614では、CCI-FS処理部653が、CCI-FSスイッチ655の制御に従って、マスタ側のSerDes装置613へ拡張パケットフッタePF0を送信する。
 マスタ側のSerDes装置613では、CCI処理部645が、拡張パケットフッタePF0を受信し、CCI-FSスイッチ655からScl_enb信号がアサートされると、拡張パケットフッタePF0をA-PHY処理部641に供給する。その後、CCI-FSスイッチ655は、CCI処理部645にScl_enb信号をネゲートする。A-PHY処理部641は、拡張パケットフッタePF0にA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去して拡張パケットフッタePF0を、CCI-FS処理部636に供給する。CCI-FS処理部636は、Scl_enb信号をネゲートするとともに拡張パケットフッタePF0をCCI処理部635(Master)に供給する。CCI処理部635(Master)は、拡張パケットフッタePF0を、イメージセンサ611に送信する。その後、CCI処理部635(Slave)は、CCI処理部635(Master)にScl_enb信号をアサートする。
 イメージセンサ611では、CSI2-FS処理部623が、拡張パケットフッタePF0を受信する。CSI2-FS処理部623は、その受信に成功したことを示すACK応答をCCI処理部622に供給し、CCI処理部622は、スレーブ側のSerDes装置612にACK応答を送信する。
 その後、上述した処理と同様に、ACK応答がCCI-FSスイッチ655まで供給される。
 アプリケーションプロセッサ614のCCI-FSスイッチ655は、リピートスタートコマンドおよびリードコマンド(Slave Address+R 8bit)を、マスタ側のSerDes装置613のCCI処理部645に供給し、Scl_enb信号をアサートする。マスタ側のSerDes装置613では、CCI処理部645が、リードコマンドをA-PHY処理部641に供給し、A-PHY処理部641は、リードコマンドにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去してリードコマンドを、CCI処理部635(Slave)に供給する。CCI処理部635(Slave)は、Scl_enb信号をネゲートするとともにリードコマンドをCCI処理部635(Master)に供給する。CCI処理部635(Master)は、リピートスタートコマンドおよびリードコマンドを、イメージセンサ611に送信する。
 イメージセンサ611では、CCI処理部622が、リピートスタートコマンドおよびリードコマンドを受信して、レジスタ624に対してアクセスする。CCI処理部622は、その受信に成功したことを示すACK応答を、スレーブ側のSerDes装置612に送信する。
 その後、上述した処理と同様に、ACK応答がCCI-FSスイッチ655まで供給される。
 イメージセンサ611では、CCI処理部622が、レジスタ624からリードデータ(Data0[7:0])を読み出して、スレーブ側のSerDes装置612に送信する。
 スレーブ側のSerDes装置612では、CCI処理部635(Master)が、リードデータを受信してCCI処理部635(Slave)に供給し、CCI処理部635(Slave)は、リードデータをA-PHY処理部631に供給する。A-PHY処理部631は、リードデータにA-PHYヘッダおよびA-PHYフッタを付加し、マスタ側のSerDes装置613へA-PHY転送を行う。
 マスタ側のSerDes装置613では、A-PHY処理部641が、A-PHYヘッダおよびA-PHYフッタを除去してリードデータをCCI処理部645に供給し、CCI処理部645は、アプリケーションプロセッサ614にリードデータを送信する。
 アプリケーションプロセッサ614では、CCI処理部652がリードデータを受信して、CCI-FS処理部653を介してCCI-FSスイッチ655に供給する。
 CCI-FSスイッチ655は、NACK応答およびストップコマンドをCCI処理部645に送信する。CCI処理部645は、NACK応答およびストップコマンドをA-PHY処理部641に供給する。A-PHY処理部641は、NACK応答およびストップコマンドにA-PHYヘッダおよびA-PHYフッタを付加し、スレーブ側のSerDes装置612へA-PHY転送を行う。
 スレーブ側のSerDes装置612では、A-PHY処理部631が、A-PHYヘッダおよびA-PHYフッタを除去してNACK応答およびストップコマンドを、CCI処理部635(Slave)に供給する。CCI処理部635(Slave)は、NACK応答およびストップコマンドをCCI処理部635(Master)に供給し、CCI処理部635(Master)は、NACK応答およびストップコマンドを、イメージセンサ611に送信する。
 イメージセンサ611では、CCI処理部622が、NACK応答およびストップコマンドを受信してCSI2-FS処理部623に供給する。
 なお、図72で説明したフローにおいて、スタート、リピートスタート、ACK応答、NACK応答、ストップなどのI2Cの制御コマンドは、拡張パケットヘッダePH0のControl Code Indicatorを1に設定し、1ByteのPayloadに割り当てられた各コードを示す。
 <イメージセンサおよびアプリケーションプロセッサの詳細な構成例>
 (イメージセンサの詳細な構成例)
 図73は、上述した図25に示したイメージセンサ211がCCI-FS処理部1001を備える構成の構成例を示すブロック図である。なお、図73に示すイメージセンサ211では、図25のイメージセンサ211と共通する構成には同一の符号を付し、その説明は省略する。
 図73に示すように、CCI-FS処理部1001は、CCIスレーブ224およびレジスタ47の間に配置され、CCI-FS処理部1001を挟み込むようにMUX部1002-1および1002-2が配置されている。MUX部1002-1および1002-2は、レジスタ47から供給されるcci_fs_en信号に従って、CCI-FS処理部1001を有効にする場合には、CCI-FS処理部1001を介してデータを送受信する。一方、MUX部1002-1および1002-2は、レジスタ47から供給されるcci_fs_en信号に従って、CCI-FS処理部1001を無効にする場合には、CCI-FS処理部1001を介さずにデータを送受信する。
 (アプリケーションプロセッサの詳細な構成例)
 図74は、上述した図26に示したアプリケーションプロセッサ214がCCI-FS処理部1101を備える構成の構成例を示すブロック図である。なお、図74に示すアプリケーションプロセッサ214では、図26のアプリケーションプロセッサ214と共通する構成には同一の符号を付し、その説明は省略する。
 図74に示すように、CCI-FS処理部1101はCCIマスタ254およびレジスタ73の間に配置され、CCI-FS処理部1101を挟み込むようにMUX部1102-1および1102-2が配置されている。MUX部1102-1および1102-2は、レジスタ73から供給されるcci_fs_en信号に従って、CCI-FS処理部1101を有効にする場合には、CCI-FS処理部1101を介してデータを送受信する。一方、MUX部1102-1および1102-2は、レジスタ73から供給されるcci_fs_en信号に従って、CCI-FS処理部1101を無効にする場合には、CCI-FS処理部1101を介さずにデータを送受信する。
 なお、拡張パケットヘッダePHの構成における各fieldの実装方法に関しては、以下のような構成を採用してもよい。・拡張VCは、Safe CCIでは未使用とする。(MIPIでの拡張ヘッダ関連とHeader fieldを合わせるために同様の構成としている)・拡張DTでは、上位からのバスのコマンド関連の情報に埋め込んでもよいし、レジスタ設定からの信号線の設定の実装構成としてもよい。・Protocolは、I2Cで記載しているが、I3CのSDRモードでも同様のことが実施することができる。
 <通信システムの構成例>
 図75乃至図117を参照して、本技術を適用した通信システムの第4の実施の形態について説明する。
 図75は、第4の実施の形態の通信システムのブロック図である。図75のAには、第1のバリエーションとなる通信システム1201が示されており、図75のBには、第2のバリエーションとなる通信システム1201Aが示されている。
 図75のAに示されている通信システム1201は、イメージセンサ1211およびアプリケーションプロセッサ1212が直接的に接続されて構成される。
 イメージセンサ1211は、A-PHY層1221の上にALL層1222が配置され、その上に、CSI-2送信部1223およびCSI拡張部1224、並びに、CCIスレーブ1225およびCCI拡張部1226が配置された構成となっている。イメージセンサ1211は、CSI-2送信部1223に対してCSI拡張部1224を設けること、および、CCIスレーブ1225に対してCCI拡張部1226を設けることによって、それぞれ拡張された規格に対応することが可能となる。
 アプリケーションプロセッサ1212は、A-PHY層1231の上にALL層1232が配置され、その上に、CSI-2受信部1233およびCSI拡張部1234、並びに、CCIマスタ1235およびCCI拡張部1236が配置された構成となっている。アプリケーションプロセッサ1212は、CSI-2受信部1233に対してCSI拡張部1234を設けること、および、CCIマスタ1235に対してCCI拡張部1236を設けることによって、それぞれ拡張された規格に対応することが可能となる。なお、CSI拡張は、Camera Service Extensions(CSE)と称されてもよい。
 図75のBに示されている通信システム1201Aは、ディスプレイ1213およびアプリケーションプロセッサ1212Aが接続されて構成される。なお、アプリケーションプロセッサ1212Aは、図75のAのアプリケーションプロセッサ1212のCSI-2受信部1233およびCSI拡張部1234に替えて、DSI-2送信部1233AおよびDSI拡張部1234Aを備えて構成されており、その他のブロックはアプリケーションプロセッサ1212と共通の構成となっている。
 ディスプレイ1213は、A-PHY層1241の上にALL層1242が配置され、その上に、DSI-2受信部1243およびDSI拡張部1244、並びに、CCIスレーブ1245およびCCI拡張部1246が配置された構成となっている。ディスプレイ1213は、DSI-2受信部1243に対してDSI拡張部1244を設けること、および、CCIスレーブ1245に対してCCI拡張部1246を設けることによって、それぞれ拡張された規格に対応することが可能となる。なお、DSI拡張は、Display Service Extensions(DSE)と称されてもよい。
 このように構成される通信システム1201および1201Aは、画像データを含むフレームのデータを片方向へ送信する高速データ送信と、高速データ送信に関連するコマンドを逆方向へ送信する低速コマンド送信(ただし、コマンドそのものを送信することをコマンド送信と称してもよいし、コマンドに対する応答を送信することをコマンド送信と称してもよい)とを少なくとも行うことができる。例えば、低速コマンド送信では、高速データ送信の開始を要求する高速データ送信開始命令の送信が少なくとも行われるが、その限りではなくてもよい。また、高速データ送信は、低速コマンド送信と比較して高速であり、高速データ送信開始命令の受信に応じて開始されるが、その限りではなくてもよい。
 ただし、アプリケーションプロセッサ1212の通信相手がイメージセンサ1211である通信システム1201と、アプリケーションプロセッサ1212Aの通信相手がディスプレイ1213である通信システム1201Aとでは、高速データ送信および低速コマンド送信の方向が異なる。つまり、通信システム1201では、イメージセンサ1211からアプリケーションプロセッサ1212へ画像データが送信され、通信システム1201Aでは、アプリケーションプロセッサ1212Aからディスプレイ1213へ画像データが送信される。
 物理層規格のA-PHYにおいて、高速データ送信と低速コマンド送信とは、共通の通信経路を一部または全部に介して送信される。また、A-PHYは、アプリケーションプロセッサ1212からイメージセンサ1211に対する電力供給、および、アプリケーションプロセッサ1212Aからディスプレイ1213に対する電力供給の一部または全部が、共通な通信経路を介して伝送することを可能とするオプションをサポートする。
 ところで、低速コマンド送信は、例えば、CSI-2の規格のCCIに準拠し、I2CまたはI3Cの規格に基づいて通信が行われる。このとき、低速コマンド送信は、I2CまたはI3Cの独立した物理層だけでなく、D-PHY、C-PHY、およびA-PHYの何れかの物理層の一部または全部を共用してコマンドを伝送することが可能である。一方、高速データ送信は、D-PHY、C-PHY、およびA-PHYの何れかの物理層の一部または全部を介してデータを伝送する。
 なお、低速コマンド送信は、例えばCSI-2の規格内のUnified Serial Link(USL)に準拠する場合、D-PHYまたはC-PHYの何れかの物理層の一部または全部に介してコマンドを伝送することが可能である。つまり、高速データ送信と低速コマンド送信とは、D-PHY、C-PHY、A-PHY、I2C、およびI3Cの何れかの物理層を一部または全部に介した伝送が可能である。
 なお、図75では、アプリケーションプロセッサ1212および1201Aを備えた構成例について説明したが、通信システム1201および1201Aは、例えば、電子制御ユニット(ECU:Electronic Control Unit)を備えた構成としてもよい。即ち、イメージセンサ1211やディスプレイ1213などと直接接続または間接接続で通信を行うことができるプロセッサであれば、アプリケーションプロセッサ1212に限定されることはない。また、イメージセンサ1211以外の各種のセンサを備える構成としてもよい。
 このように構成される通信システム1201および1201Aは、以下で説明するようなナンス値の送信方法またはナンス値を含む初期化ベクトル構成を採用する。
 具体的には、特定の共通鍵暗号アルゴリズム(例えば、AES-GCM/GMAC)ではナンス値を含む初期化ベクトルが必要になる。このため、イメージセンサ1211およびアプリケーションプロセッサ1212の間で、または、ディスプレイ1213およびアプリケーションプロセッサ1212Aの間で、初期化ベクトルおよびナンス値の設定ルールが事前に合意されることになる。
 しかしながら、イメージセンサ1211、アプリケーションプロセッサ1212および1201A、並びにディスプレイ1213それぞれの内部で、ナンス値の誤認識または改竄が発生すると、それ以降は暗号化された画像データの復号やメッセージの認証などに失敗してしまう。そのため、画像データの送信が正常に行われなくなってしまう不具合を回避するために、ナンス値の誤認識および改竄に関する対策技術が必要であった。
 一方、MIPI Camera Serial Interface(CSI)規格またはMIPI Display Serial Interface(DSI)規格に対する新たなセキュリティ仕様として、CSI規格またはDSI規格に適した初期化ベクトルを定義する必要があった。そこで、本技術は、イメージセンサ1211を含むCSI規格に準拠する撮像装置、または、ディスプレイ1213を含むDSI規格に準拠する表示装置に好適な、ナンス値の送信方法またはナンス値を含む初期化ベクトル構成を開示する。
 なお、以下では、イメージセンサ1211およびアプリケーションプロセッサ1212の間で行われる処理について説明するが、ディスプレイ1213およびアプリケーションプロセッサ1212Aの間でも、同様の処理を行うことができる。
 <図75のイメージセンサの詳細な構成例>
 図76は、イメージセンサ1211の詳細な構成例を示すブロック図である。
 イメージセンサ1211は、画素1301、AD変換器1302、画像処理部1303、拡張モード対応CSI-2送信回路1304、物理層処理部1305、I2C/I3Cスレーブ1306、記憶部1307、メッセージカウンタ1308、ナンス更新部1309、およびセキュリティ部1310を備えて構成される。なお、画素1301、AD変換器1302、画像処理部1303、拡張モード対応CSI-2送信回路1304、物理層処理部1305、I2C/I3Cスレーブ1306、および記憶部1307は、上述した他の実施の形態において対応する各ブロックと同様に構成され、その詳細な説明は省略する。
 メッセージカウンタ1308は、所定カウント条件を満たす拡張パケットを送信するたびにイメージセンサ1211内のメッセージカウント値を更新する。
 セキュリティ部1310は、イメージセンサ1211内のセッション鍵を導出し、高速データ送信されるデータの第1保護データ(例えば、完全性を保護するために演算された完全性演算値、機密性を保護するために暗号化された暗号データ)を、そのセッション鍵を用いて生成する。
 ナンス更新部1309は、セキュリティ部1310が第1保護データを生成するたびに、イメージセンサ1211内のナンス(nonce;number used once)値を更新する。
 このように構成されるイメージセンサ1211は、ナンス値の一部または全部、および、メッセージカウント値の一部または全部を、アプリケーションプロセッサ1212へ高速データ送信する。例えば、ナンス値の一部または全部は、カウント値または乱数であってもよい。また、ナンス値の一部または全部は、拡張パケットヘッダ外に格納されて送信され、画像データは、パケットデータ内に格納されて送信される。
 イメージセンサ1211では、メッセージカウンタ1308およびナンス更新部1309が、別体で構成されていても、一体で構成されていてもよい。例えば、メッセージカウンタ1308およびナンス更新部1309が別体で構成されている場合、ナンス値およびメッセージカウント値の更新が非同期とすることができる。これにより、ナンス値およびメッセージカウント値の自由度を高めることができる。
 一方、メッセージカウンタ1308およびナンス更新部1309が一体で構成されている場合、ナンス値およびメッセージカウント値の更新を同期することができる。その場合、メッセージカウント値は、ナンス値としてカウント値を用いていれば、ナンス値の一部または全部と共有することで、メッセージカウンタ1308のビット幅を節約することができる。つまり、メッセージカウンタ1308は、ナンス更新部1309の一部または全部としてもよく、ナンス更新部1309と一部または全部が共通化することができる。
 <図75のプリケーションプロセッサの詳細な構成例>
 図77は、アプリケーションプロセッサ1212の詳細な構成例を示すブロック図である。
 アプリケーションプロセッサ1212は、物理層処理部1321、拡張モード対応CSI-2受信回路1322、I2C/I3Cマスタ1323、記憶部1324、データ検証部1325、セキュリティ部1326、およびコントローラ1327を備えて構成される。なお、物理層処理部1321、拡張モード対応CSI-2受信回路1322、I2C/I3Cマスタ1323、および記憶部1324は、上述した他の実施の形態において対応する各ブロックと同様に構成され、その詳細な説明は省略する。
 データ検証部1325は、イメージセンサ1211からアプリケーションプロセッサ1212へ送信されたナンス値またはメッセージカウント値の妥当性を検証する。
 セキュリティ部1326は、イメージセンサ1211内のセッション鍵に対応するアプリケーションプロセッサ1212内のセッション鍵を導出し、アプリケーションプロセッサ1212内のセッション鍵を用いて画像データの第1保護データを検証(完全性の検証)または復号する。
 このように構成されるアプリケーションプロセッサ1212は、被検証データがカウント値である場合、データ検証部1325は、その連続性を検証することができる。また、データ検証部1325がカウンタを備えた構成とし、イメージセンサ1211と同様にカウント値を更新することで比較検証を行うようにしてもよい。なお、被検証データが乱数である場合、データ検証部1325は、その乱数性を検証してもよい。なお、データ検証部1325は、ナンス更新部1309(またはメッセージカウンタ)を備え、これを用いて第1保護データを検証または復号してもよく、これを用いて被検証データを検証してもよい。
 イメージセンサ1211およびアプリケーションプロセッサ1212は、所望の移動体装置に搭載される構成とすることができる。例えば、移動体装置は、持ち運び可能なモバイル装置であってもよく、例えば、携帯電話、スマートフォン、デジタルカメラ、ゲーム機器などの何れかであってもよい。移動体装置は、推進装置であってもよく、例えば、推進(可動、走行、歩行、飛行などの何れか)することが可能な車両、ロボット、ドローンなどの何れかであってもよい。移動体装置は、AI(Artificial Intelligence)機能を搭載して自律推進できる自律車両、自律ロボット、自律ドローンなどの何れかであってもよい。推進装置の推進は、推進装置の使用者によって制御されてもよく、推進装置は、使用者に対して必要に応じて指示または警告を通知してもよい。一方、推進装置は、推進装置の推進を推進装置が自動制御するように構成されてもよい。
 セキュリティ部1310および1326は、例えば、画像データを保護するための演算を実行するセキュリティ演算部をそれぞれ備えてもよい。従って、セキュリティ部1310および1326は、セキュリティ演算部によって、暗号化演算や、復号演算、ハッシュ値演算、メッセージ認証コード演算、デジタル署名演算、ID(identification)認証、ファームウエア測定、暗号化セッション鍵確立、鍵交換、鍵更新などの何れかを処理することができる。
 一方、セキュリティ部1310および1326、ナンス更新部1309、メッセージカウンタ1308、並びにデータ検証部1325の何れかは、メモリと電気的に直接接続された構成とすることができる。このメモリはレジスタと電気的に直接接続されていてもよく、セキュリティ部1310および1326、ナンス更新部1309、メッセージカウンタ1308、並びにデータ検証部1325の何れかは、レジスタと電気的に直接接続されていてもよい。メモリは、メモリ内情報の漏洩または改竄の何れかから保護されたメモリであってもよい。このようなメモリおよびレジスタが、それぞれ記憶部1307および1324として用いられる。
 記憶部1307および1324には、鍵情報(例えば、事前共有鍵、秘密鍵、公開鍵、またはセッション鍵)や、証明書(例えば、ルート証明書、中間証明書、またはリーフ証明書)、暗号アルゴリズム情報などの何れかが格納されてもよい。記憶部1307および1324には、イメージセンサ1211またはアプリケーションプロセッサ1212の機能情報や、イメージセンサ1211またはアプリケーションプロセッサ1212のID情報(例えば、ソースIDや、目的地ID、最終目的地IDなど)、イメージセンサ1211またはアプリケーションプロセッサ1212のファームウエア情報などの何れかが格納されてもよい。記憶部1307および1324には、後述するセッション情報(例えば、セッションID)や、セキュリティ演算部の演算値(例えば、初期値、中間値、または最終値)、初期化ベクトル、ナンス値、メッセージカウント値、フレーム番号(フレームカウント値)などの何れかが格納されてもよい。
 セキュリティ部1310および1326、ナンス更新部1309、メッセージカウンタ1308、並びにデータ検証部1325の何れかは、例えば、イメージセンサ1211またはアプリケーションプロセッサ1212が、複数回のナンス値や、カウント値、完全性演算値、暗号化情報などの何れかを、記憶部1307または1324へ保存することによって、不具合の有無を判断することが可能になり、それに応じた対処(例えば、不具合個所のデータ再送の要求、異常メッセージの送信)も可能になる。また、ナンス値や、カウント値、完全性演算値、暗号化情報などの何れかが、保護された記憶部1307または1324へ定期的に保存される場合、仮に移動体装置の事故が発生した際に、保護された記憶部1307または1324が解析されることによって、事故発生の原因を特定しやすくなる効果もある。
 <セッション>
 リクエスタおよびレスポンダは、つまりアプリケーションプロセッサ1212およびイメージセンサ1211は、セッションによって1つ以上の通信チャネルを持つことができる。以下では、アプリケーションプロセッサ1212がリクエスタであって、イメージセンサ1211がレスポンダである構成を例に用いてセッションについて説明を行う。もちろん、アプリケーションプロセッサ1212がレスポンダであって、イメージセンサ1211がリクエスタであってもよい。
 また、リクエスタおよびレスポンダは、一時的に固定した暗号化情報を用いて安全な通信チャネルを構築できる。具体的には、セッションは、暗号化またはメッセージ認証のいずれか、または両方を提供する。セッションは、例えば、セッションハンドシェイク段階、アプリケーション段階、およびセッションターミネーション段階の3段階を含む。
 セッションハンドシェイク段階は、例えば、リクエスタからの鍵交換要求(PSK_EXCHANGEまたはKEY_EXCHANGEのいずれか)によって始まり、セッション秘密や暗号化鍵などセッション鍵を導出し、セッション鍵を用いて通信を保護する。この段階の目的は、例えば、いずれかの側がアプリケーションデータ(例えば、画像データ)を送信する前に、まずレスポンダとリクエスタとの間で信頼を構築することができる。さらに、ハンドシェイクのある程度の完全性と、導出されたハンドシェイク秘密との同期性とを保証してもよい。
 セッションは、この段階でエラーが発生する場合、直ちに終了してセッション終了へ進んでもよい。ハンドシェイクが成功すると、例えば、レスポンダからのフィニッシュ応答(FINISH_RSPまたはPSK_FINISH_RSP)によって終了し、アプリケーション段階が始まる。セッションは、一度ハンドシェイクが完了し、全ての検証に合格すると、レスポンダとリクエスタとのいずれかがアプリケーションデータを送信してもよいアプリケーション段階へ到達する。
 アプリケーション段階は、例えば、リクエスタからエンド要求(END_SESSION)が発行される場合に、またはエラーが発生する場合に終了する。次の段階は、セッションターミネーション段階となる。
 セッションターミネーション段階は、例えば、単なる内部段階であり、送信または受信される明示的なメッセージはない。リクエスタおよびレスポンダの両方は、セッションが終了するとき、導出した全てのセッション秘密や暗号化鍵などのセッション鍵を破棄またはクリーンアップする。リクエスタおよびレスポンダには、このセッションに関連付けられた他の内部データがあってもよく、それらもクリーンアップを望んでよい。
 セッション秘密は、例えば、AEAD(Authenticated Encryption with Additional Data)関数内で用いられる暗号化鍵およびソルトを導出するために用いられる。暗号化鍵の導出は、RFC5869で説明されるRFC2104およびHKDF-Expandで定義されているようにHMACを頻繁に用いてもよい。セッション秘密は、単一の秘密または複数種類の秘密で構成されてもよい。セッション鍵は、単一の鍵または複数種類の鍵で構成されてもよい。
 <高速データ送信および低速コマンド送信の処理例>
 図78乃至図80を参照して、イメージセンサ1211とアプリケーションプロセッサ1212との間で、高速データ送信および低速コマンド送信が行われる通信処理について説明する。
 図78は、通信処理の第1の処理例を説明するフローチャートである。
 ここで、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322は、CCIホスト(リクエスタ)およびCSI-2ホストとしての機能を備えている。イメージセンサ1211の拡張モード対応CSI-2送信回路1304は、CCIデバイス(レスポンダ)およびCSI-2デバイスとしての機能を備えている。CCIホストは、CCIデバイスへ要求メッセージを送信し、その受信に応じてCCIデバイスはCCIホストへ応答メッセージを送信する。
 ステップS501において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、GET_VERSION要求およびVERSION応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、エンドポイントのSPDM(Security Protocol and Data Model)バージョンを取得する。
 ステップS502において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、GET_CAPABILITIES要求およびCAPABILITIES応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、エンドポイントのSPDM機能を取得する。
 ステップS503において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、NEGOTIATE_ALGORITHMS要求およびALGORITHMS応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、拡張モード対応CSI-2送信回路1304と暗号アルゴリズムを交渉する。
 ステップS504において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、PSK_EXCHANGE要求およびPSK_EXCHANGE_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および拡張モード対応CSI-2送信回路1304は、セッション秘密や暗号化鍵などのCCI向けのセッション鍵を導出する。
 ステップS505において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、PSK_FINISH要求およびPSK_FINISH_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322がPSK(PSK:Pre-shared key)を知っていて、ステップS504で導出されたCCI向けのセッション鍵が正しいことをレスポンダへ証明する。
 ステップS506において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、PSK_EXCHANGE要求およびPSK_EXCHANGE_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および拡張モード対応CSI-2送信回路1304は、セッション秘密や暗号化鍵などのCSI-2向けのセッション鍵を導出する。
 ステップS507において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、PSK_FINISH要求およびPSK_FINISH_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322がPSK(PSK:Pre-shared key)を知っていて、ステップS506で導出されたCSI-2向けのセッション鍵が正しいことをレスポンダへ証明する。
 ここで、ステップS505およびS507におけるセッション鍵の証明は、リクエスタのfinished_keyと、このセッションのメッセージとで計算されたMAC値によって実現される。そして、ステップS504およびS506で導出したセッション鍵を用いて、以降のCCI通信およびCSI-2通信が保護される。
 ステップS508において、拡張モード対応CSI-2受信回路1322では、CCIホストからCSI-2ホストに対して、CSI-2向けセッション秘密やセッション鍵、アルゴリズム、その他のパラメータなどが供給される。
 ステップS509において、拡張モード対応CSI-2送信回路1304では、CCIデバイスからCSI-2デバイスに対して、CSI-2向けセッション秘密やセッション鍵、アルゴリズム、その他のパラメータなどが供給される。
 ステップS510において、拡張モード対応CSI-2送信回路1304のCSI-2デバイスは、拡張モード対応CSI-2受信回路1322のCSI-2ホストへ、高速データ通信による画像データの送信を行う。例えば、高速データ通信は、CSI-2向けセッション鍵を更新するタイミングとなるまで、継続して行われる。
 ステップS511において、拡張モード対応CSI-2受信回路1322では、CSI-2ホストからCCIホストに対して、CSI-2向けセッション鍵を更新するトリガが供給される。ただし、CSI-2デバイスまたはCCIデバイスからCCIホストに対してトリガが供給されたり、CCIホストからCCIホストに対して自己トリガが供給されたりしてもよい。
 ステップS512において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、KEY_UPDATE要求およびKEY_UPDATE_ACK応答が行われる。これにより、セッション鍵が更新され、古いセッション鍵の一部が破棄される。なお、セッション鍵が複数種類の鍵(要求方向鍵や応答方向鍵など)で構成される場合、その一部または全部が更新されてもよい。また、KEY_UPDATE要求は、後述のGET_ENCAPSULATED_REQUESTメカニズムを用いてレスポンダから発行されてもよい。
 ステップS513において、ステップS512と同様の処理が行われ、KEY_UPDATE要求およびKEY_UPDATE_ACK応答が2回行われる。これにより、ステップS512の処理だけでは破棄されなかった古いセッション鍵の残り(全部)が破棄される。
 ステップS514において、拡張モード対応CSI-2受信回路1322では、CCIホストからCSI-2ホストに対して、CSI-2向けセッション秘密やセッション鍵(更新後)、アルゴリズム、その他のパラメータなどが供給される。
 ステップS515において、拡張モード対応CSI-2送信回路1304では、CCIデバイスからCSI-2デバイスに対して、CSI-2向けセッション秘密やセッション鍵(更新後)、アルゴリズム、その他のパラメータなどが供給される。
 ステップS516において、ステップS510と同様に、高速データ通信による画像データの送信が開始され、以下、ステップS510乃至S515と同様の処理が繰り替えして行われる。
 なお、通信処理の第1の処理例では、CCI向けのセッション鍵とCSI-2向けのセッション鍵とが異なるものとなっており、CCI向けとCSI-2向けとでセッションIDが異なり、CCI向けとCSI-2向けとでセッション秘密が異なるものとなっている。これに限られることなく、通信処理の第2の処理例のように、CCI向けのセッション鍵とCSI-2向けのセッション鍵とが同一のものとなっていてもよく、CCI向けとCSI-2向けとでセッションIDを同一とし、CCI向けとCSI-2向けとでセッション秘密が同一としてもよい。
 図79は、通信処理の第2の処理例を説明するフローチャートである。
 ステップS521乃至S523において、図78のステップS501乃至S503と同様の処理が行われる。
 ステップS524において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、PSK_EXCHANGE要求およびPSK_EXCHANGE_RSP応答が行われる。ここで、通信処理の第2の処理例では、CCI向けのセッション秘密とCSI-2向けのセッション秘密とで同一のものが導出される。
 即ち、同一のセッション秘密から、CCI向けセッション鍵とCSI-2向けセッション鍵とを導出することができる。または、同一のセッション秘密から、アップリンク向けセッション鍵とダウンリンク(アップリンクの逆方向)向けセッション鍵とを導出してもよい。または、同一のセッション秘密から、CCI向けおよびCSI-2向けに共通なセッション鍵を導出してもよい。なお、CCI向けとCSI-2向けとでセッションが同一な場合でも、CCI向けとCSI-2向けとでセッション秘密やセッション鍵などが異なってもよい。
 その後、ステップS525乃至S534において、図78のステップS507乃至S516と同様の処理が行われる。
 ここで、事前共有鍵PSK鍵交換スキームは、リクエスタおよびレスポンダが対称鍵暗号で相互認証およびセッション鍵確立を実行するためのオプションを提供する。このオプションは、非対称鍵暗号または証明書処理をサポートしないエンドポイントで特に役立つ。非対称鍵暗号がサポートされている場合でも、セッション鍵確立を迅速化するのに、このオプションも活用できる。このオプションは、リクエスタおよびレスポンダがハンドシェイクの前に共通のPSKを事前に知っている必要がある。
 基本的にPSKは、相互認証の資格情報およびセッション鍵確立のベースとして機能する。そのため、2つのエンドポイントと、2つのエンドポイントにPSKをプロビジョニングする潜在的に信頼されたサードパーティとだけが、PSKの値を知ってもよい。リクエスタは、複数のレスポンダとペアになってもよい。同様にレスポンダは、複数のリクエスタとペアになってもよい。リクエスタおよびレスポンダのペアは、1つ以上のPSKがプロビジョニングされてもよい。
 エンドポイントは、1つのデバイスに対するリクエスタとして動作し、同時に別のデバイスに対するレスポンダとして動作してもよい。トランスポート層は、PSKベースのセッション鍵交換が開始する前に、ピア(Peer)を識別し、2つのエンドポイント間の通信を確立する必要がある。
 PSKは、例えば安全な製造プロセス中など、信頼できる環境内でプロビジョニングされてもよい。PSKは、信頼できない環境では、安全なプロトコルを用いて2つのエンドポイント間で合意されてもよい。プロビジョニングされたPSKのサイズは、アプリケーションのセキュリティ強度の要件によって決まるが、128ビット以上にすべきで、256ビット以上が望ましい。PSKプロビジョニング中は、エンドポイント機能とサポートされているアルゴリズムとをピアへ通信してもよい。従って、PSKオプションを用いるセッション鍵確立中は、SPDMコマンドのGET_CAPABILITIESおよびNEGOTIATE_ALGORITHMSは必要ない。
 このオプションは、PSK_EXCHANGE/PSK_EXCHANGE_RSPおよびPSK_FINISH/PSK_FINISH_RSPの2つのメッセージペアが定義されている。PSK_EXCHANGEメッセージには、レスポンダへ特定のPSKを取得するように促す役割、リクエスタとレスポンダとの間でコンテキストを交換する役割、レスポンダが正しいPSKを知っており、正しいセッション鍵を導出したことをリクエスタへ証明する役割、の3つの役割がある。
 図80は、通信処理の第3の処理例を説明するフローチャートである。
 ステップS541乃至S543において、図78のステップS501乃至S503と同様の処理が行われる。
 ステップS544において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、GET_DIGESTS要求およびDIGESTS応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、拡張モード対応CSI-2送信回路1304から証明書チェインダイジェストを取得する。
 ステップS545おいて、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、GET_CERTIFICATE要求およびCERTIFICATE応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、拡張モード対応CSI-2送信回路1304から証明書チェインを取得する。なお、証明書チェインの取得が複数回実行されてもよい。
 ステップS546おいて、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、CHALLENGE要求およびCHALLENGE_AUTH応答が行われる。これにより、拡張モード対応CSI-2受信回路1322は、チャレンジ-レスポンスプロトコルを通じて拡張モード対応CSI-2送信回路1304を認証することができる。
 ステップS547において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、KEY_EXCHANGE要求(channel=CCI, sessionID=D)およびKEY_EXCHANGE_RSP応答が行われる。これにより、レスポンダ(または任意で両方のパーティ)の認証を目的としたリクエスタとレスポンダとの間のハンドシェイクが開始される。そして、最後のNEGOTIATE_ALGORITHMS / ALGORITHMS交換で交渉された内容に加えて暗号化パラメータが交渉され、共有鍵情報が確立される。
 ステップS548において、拡張モード対応CSI-2受信回路1322のCCIホストは、GET_ENCAPSULATED_REQUESTを拡張モード対応CSI-2送信回路1304のCCIデバイスに送信する。
 ステップS549において、拡張モード対応CSI-2送信回路1304のCCIデバイスは、ENCAPSULATED_REQUEST(GET_DIGESTS要求)を拡張モード対応CSI-2受信回路1322のCCIホストに送信する。
 ステップS550において、拡張モード対応CSI-2受信回路1322のCCIホストは、DELIVER_ENCAPSULATED_RESPONSE(DIGESTS応答)を拡張モード対応CSI-2送信回路1304のCCIデバイスに送信する。これにより、拡張モード対応CSI-2送信回路1304のCCIデバイスは、拡張モード対応CSI-2受信回路1322のCCIホストから証明書チェインダイジェストを取得する。
 ステップS551において、拡張モード対応CSI-2送信回路1304のCCIデバイスは、ENCAPSULATED_RESPONSE_ACK(GET_CERTIFICATE要求)を拡張モード対応CSI-2受信回路1322のCCIホストに送信する。
 ステップS552において、拡張モード対応CSI-2受信回路1322のCCIホストは、DELIVER_ENCAPSULATED_RESPONSE(CERTIFICATE応答)を拡張モード対応CSI-2送信回路1304のCCIデバイスに送信する。これにより、CCIデバイス(レスポンダ)は、CCIホスト(リクエスタ)から証明書チェインを取得してもよい。なお、この処理は、複数回実行されてもよい。
 ステップS553において、拡張モード対応CSI-2送信回路1304のCCIデバイスは、ENCAPSULATED_RESPONSE_ACKを拡張モード対応CSI-2受信回路1322のCCIホストに送信する。
 ステップS554において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、FINISH要求およびFINISH_RSP応答が行われる。これにより、ステップS547のKEY_EXCHANGE要求によって開始された、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間のハンドシェイクが完了される。
 ステップS555において、拡張モード対応CSI-2受信回路1322のCCIホストと拡張モード対応CSI-2送信回路1304のCCIデバイスとの間で、GET_MEASUREMENTS要求およびMEASUREMENTS応答が行われる。これにより、拡張モード対応CSI-2受信回路1322のCCIホストは、拡張モード対応CSI-2送信回路1304のCCIデバイスから測定データを取得する。なお、GET_MEASUREMENTS要求は、上述したGET_ENCAPSULATED_REQUESTメカニズムを用いてレスポンダから発行されてもよい。同様に、他の要求も上述したGET_ENCAPSULATED_REQUESTメカニズムを用いてレスポンダから発行されてもよい。
 その後、ステップS556では、ステップS547と同様にKEY_EXCHANGE要求(channel=CSI-2, sessionID=E)およびKEY_EXCHANGE_RSP応答が行われ、ステップS557では、ステップS554と同様にFINISH要求およびFINISH_RSP応答が行われる。そして、ステップS558乃至S566において、図78のステップS508乃至S516と同様の処理が行われる。
 <データ検証処理>
 図81乃至図83を参照して、検証用パケットおよび被検証パケットを使用したデータ検証処理について説明する。
 図81および図82に示すように、拡張パケットは、パケットヘッダPH、拡張パケットヘッダePH、パケットデータ、拡張パケットフッタePF、およびパケットフッタPFで構成される。このような構成の拡張パケットにより、フレームスタート、埋込データ、画像データ、ユーザ定義データ、フレームエンド、書き込み命令(CCI Write)、読み出し命令(CCI Read)、および読み出し応答(CCI Read戻り値)を構成することができる。なお、パケットヘッダPH、拡張パケットヘッダePH、パケットデータ、拡張パケットフッタePF、およびパケットフッタPFは、その一部または全部を省略してもよい。即ち、拡張パケットヘッダePHおよびパケットデータを少なくとも含むパケット構成を拡張パケットと定義する。
 ところで、拡張パケットヘッダePH、パケットデータ、拡張パケットフッタePFの何れかは、ノイズや干渉や攻撃によって正常に受信されない(メッセージが消失する)可能性がある。そこで、拡張パケットフッタ末尾ePF0内は、拡張パケットヘッダePH、パケットデータ、および拡張パケットフッタ残りePF1の完全性を検証するための検証用パケットが格納されることが望ましい。完全性の検証は、例えば、誤り検出符号の一種である巡回冗長検査のCRC32が用いられる。また、CRC32の生成多項式は、例えばX32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1が用いられる。
 被検証パケットには、パケットデータを用いることができる。または、被検証パケットには、拡張パケットヘッダおよびパケットデータを用いることができる。または、被検証パケットには、パケットデータおよび拡張パケットフッタ残り(ePF1)を用いることができる。または、被検証パケットには、拡張パケットヘッダ、パケットデータおよび拡張パケットフッタ残り(ePF1)を用いることができる。このような被検証パケットにより、少なくともパケットデータが保護される。
 つまり、イメージセンサ1211は、パケットデータの第2保護データ(例えば、CRC演算値)を、セッション鍵を用いずに生成する第2保護部(例えば、CRC演算部)を備える。第2保護データは、例えば、高速データ送信の拡張パケットフッタePF内に格納される。つまり、フレームスタート内、埋込データ内、画像データ内、ユーザ定義データ内、フレームエンド内、書き込み命令(CCI Write)内、読み出し命令(CCI Read)内、読み出し応答(CCI Read戻り値)内などの何れかに格納される。
 拡張パケットフッタePF1やePF0は、セキュリティ機能(security feature)が定義されてもよい。つまり、イメージセンサ1211内にセキュリティ演算部(例えば、暗号演算部、復号演算部、ハッシュ値演算部、メッセージ認証コード演算部、デジタル署名演算部)を備えてもよい。そして、セキュリティ演算の結果(例えば、ハッシュ値、メッセージ認証コード、デジタル署名)が拡張パケットフッタePF内に格納されてもよい。
 セキュリティ演算の結果が格納されるのは、拡張パケットフッタePF0内ではなく拡張パケットフッタePF1内だけであってもよく、拡張パケットフッタ内ではなく拡張パケットフッタ外であってもよい(例えば、埋込データ内または読み出し応答内)。イメージセンサ1211が備えるセキュリティ演算部は、セキュリティ部1310に含まれる。
 メッセージ認証コード(MAC: Message Authentication Code)としては、GMAC(Galois MAC)、CMAC(Cipher-based MAC)、HMAC(Hash-based MAC)などの何れかが用いられてもよい。例えば、AES(Advanced Encryption Standard)またはSHA(Secure Hash Algorithm)が適用された、AES-GMAC、AES-CMAC、SHA2-HMAC、SHA3-HMACなどの何れかが用いられてもよい。なお、AESのブロック長は128ビットであり、AESの鍵長は128ビット、192ビット、256ビットの何れかが選択される。
 拡張パケットフッタ内は、例えば、パケットデータを被検証パケットとして、または、拡張パケットヘッダおよびパケットデータを被検証パケットとして、ハッシュ(特に暗号学的ハッシュ)値、メッセージ認証コード、デジタル署名などの何れかのセキュリティ情報が格納されてもよい。その場合、攻撃者からの悪意ある改竄に対して、さらなる耐性を持たせることができる。なお、拡張パケットフッタ「ePF1」内または「ePF1およびePF0」内は、誤り検出符号の一種である巡回冗長検査のCRCが格納されてもよい。
 つまり、イメージセンサ1211が完全性演算部(例えば、第1保護部=セキュリティ演算部、第2保護部=CRC演算部)を備え、完全性を演算した結果である完全性演算値(例えば、第1保護データ、第2保護データ)が拡張パケットフッタ内に格納されてもよい。なお、CRCは、機能安全のために用いられることが可能で、その完全性はハードウェア障害が検出されないことを防ぐために用いられることが可能である。一方、セキュリティ機能の完全性は、意図的な干渉または攻撃を検出するために用いられることが可能である。つまり、セキュリティ演算部は、暗号に基づく完全性演算値を演算し、CRC演算部は、暗号に基づかない完全性演算値を演算する。
 アプリケーションプロセッサ1212は、例えば、検証用パケットを用いることで、被検証パケットの完全性を検証できる。異常と判断される場合、例えば、被検証パケットおよび検証用パケットを含むパケットの再送を要求する要求メッセージの送信、イメージセンサ1211に異常があるかをイメージセンサ1211へ問い合わせる要求メッセージの送信、イメージセンサ1211の一部または全部の機能の停止をイメージセンサ1211へ要求する要求メッセージの送信、推進装置の推進停止、推進装置の推進制御の変更、推進制御に用いる優先データの変更などの何れかの処理が実行されてもよい。
 なお、完全性演算値は、例えば、埋込データ内や、画像データ(パケットデータ)内、ユーザ定義データ内、書き込み命令内、読み出し命令内、読み出し応答などの内の何れかに格納されるようにしてもよい。その場合、完全性演算値は、拡張パケットフッタ内に格納されないようにしてもよい。例えば、完全性演算値は、画像のライン単位ではなく画像のフレーム単位で格納されるようにしてもよく、その場合は効率的に完全性が演算される。その場合、完全性演算値は、例えば、画像データが送信された後の埋込データ内または読み出し応答内に格納される。
 図81のAに示す拡張パケットは、拡張パケットヘッダePH、パケットデータ、および拡張パケットフッタ残りePF1を被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図81のBに示す拡張パケットは、パケットデータおよび拡張パケットフッタ残りePF1を被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図81のCに示す拡張パケットは、拡張パケットヘッダePHおよびパケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図81のDに示す拡張パケットは、パケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図82のAに示す拡張パケットは、拡張パケットヘッダePHおよびパケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ残りePF1を検証用パケットとした構成例となっている。
 図82のBに示す拡張パケットは、拡張パケットヘッダePHおよびパケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ残りePF1および拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図82のCに示す拡張パケットは、パケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ残りePF1を検証用パケットとした構成例となっている。
 図82のDに示す拡張パケットは、パケットデータを被検証パケットとして、その被検証パケットを用いたセキュリティ演算により求められる計算値が格納された拡張パケットフッタ残りePF1および拡張パケットフッタ末尾ePF0を検証用パケットとした構成例となっている。
 図83は、アプリケーションプロセッサ1212において行われるデータ検証処理を説明するフローチャートである。
 ステップS601において、イメージセンサ1211から送信されてきた拡張パケットが拡張モード対応CSI-2受信回路1322により受信されると、セキュリティ部1326は、その拡張パケットの被検証パケットを受信する。そして、セキュリティ部1326が、被検証パケットの受信を完了すると、処理はステップS602に進む。なお、被検証パケットの全部の受信が完了していなくても、セキュリティ演算の計算を開始可能な少なくとも一部(例えば、128ビット)の受信が完了していれば処理はステップS602に進んでもよい。その場合、被検証パケットの全部の受信が完了するまで、被検証パケットの残りが引き続き受信される。
 ステップS602において、セキュリティ部1326は、ステップS601で受信した被検証パケットの少なくとも一部を用いたセキュリティ演算により求められる計算値の計算を開始する。
 ステップS603において、セキュリティ部1326は、拡張モード対応CSI-2受信回路1322を介して、イメージセンサ1211から送信されてくる検証用パケットを受信する。そして、セキュリティ部1326は、検証用パケットの受信を完了して、その検証用パケットに格納されている受信値(イメージセンサ1211で計算された計算値)を取得すると処理はステップS604に進む。
 ステップS604において、セキュリティ部1326は、ステップS602で開始した被検証パケットを用いたセキュリティ演算により求められる計算値の計算が完了(即ち、被検証パケットの全部を受信して、その全部を用いた計算が完了)すると、処理はステップS605に進む。
 ステップS605において、セキュリティ部1326は、ステップS603で受信した受信値と、ステップS604で求めた計算値とが一致したか否かを判定する。
 ステップS605において、セキュリティ部1326が、受信値と計算値とが一致したと判定した場合、処理はステップS606に進む。この場合、ステップS606において、セキュリティ部1326は、拡張モード対応CSI-2受信回路1322が受信した拡張パケットは正常であると判断し、処理は終了される。
 一方、ステップS605において、セキュリティ部1326が、受信値と計算値とが一致しないと判定した場合、処理はステップS607に進む。この場合、ステップS607において、セキュリティ部1326は、拡張モード対応CSI-2受信回路1322が受信した拡張パケットに異常が発生したと判断し、処理は終了される。
 <メッセージカウント値を利用した機能安全の確保>
 イメージセンサ1211は、機能安全(例えば、メッセージ欠落を検出して適切に処置すること)を確保するために、メッセージカウンタ1308がカウントするメッセージカウント値を、拡張パケットヘッダ内または拡張パケットフッタ内に格納することができる。例えば、イメージセンサ1211が備えるメッセージカウンタ1308は、イメージセンサ1211からメッセージが送信されるたびにインクリメントまたはデクリメントされたメッセージカウント値を格納することができる。なお、イメージセンサ1211は、仮想チャネル(バーチャルチャネル)ごとに独立したメッセージカウンタ1308を設ける構成や、仮想チャネルで共通なメッセージカウンタ1308を設ける構成としてもよい。
 メッセージカウンタ1308は、ある仮想チャネルの拡張パケットヘッダを含む最初のパケットにおいてメッセージカウント値を初期値(例えば、0または最大値)に設定し、ある仮想チャネルの拡張パケットヘッダを含むデータを送信するたびにメッセージカウント値をインクリメントまたはデクリメントする。また、メッセージカウンタ1308は、例えば、拡張パケットヘッダを含まないデータが送信される場合、メッセージカウント値をインクリメントまたはデクリメントせずに、次に拡張パケットヘッダを含むデータが送信されたときに、カウントを再開する。
 メッセージカウンタ1308は、フレームスタートまたはフレームエンドに関わらずカウントを継続してもよい。そして、メッセージカウンタ1308は、メッセージカウント値が規定値(例えば、最大値または0)までカントされた場合、次のメッセージカウント値を初期値(例えば、0または最大値)に戻して、カウントを行う。なお、拡張パケットヘッダの一部は、ナンス値の一部が格納されてもよい。
 なお、メッセージカウント値を受信する受信側(イメージセンサ1211またはアプリケーションプロセッサ1212)は、メッセージが欠落した場合には、その欠落を即座に検知することができる。例えば、膨大な量のメッセージを意図的に混入させることでイメージセンサ1211またはアプリケーションプロセッサ1212の可用性を侵害するDoS(Denial-of-service)攻撃なども、受信側において即座に検知される。このため、メッセージカウント値は、拡張パケットヘッダ内に格納されることが望ましい。このような欠落や攻撃などを、より短時間で検出することができるようにすることで、受信側は、それらに対する対応を短い時間で開始することができ、例えば、高速移動または高速可動が可能な推進装置にとっては特に好適である。
 なお、書き込み命令(CCI Write)、読み出し命令(CCI Read)、または読み出し応答(CCI Read戻り値)についても、メッセージカウント値または完全性演算値が格納されるように構成されてもよく、拡張パケットに関連する要素が適用されてもよい。その場合、書き込み命令、読み出し命令、または読み出し応答についても、機能安全に対応することや完全性を保護することなどが可能になる。
 図84は、イメージセンサ1211がメッセージカウント値を送信するメッセージカウント値送信処理を説明するフローチャートである。
 ステップS611において、メッセージカウンタ1308は、メッセージカウント値を初期化して0に設定する。
 ステップS612において、拡張モード対応CSI-2送信回路1304は、拡張パケットヘッダを送信するか否かを判定し、拡張パケットヘッダを送信すると判定されるまで処理は待機される。そして、ステップS612において、拡張モード対応CSI-2送信回路1304が、拡張パケットヘッダを送信すると判定した場合、処理はステップS613に進む。
 ステップS613において、拡張モード対応CSI-2送信回路1304は、メッセージカウンタ1308からメッセージカウント値を取得し、拡張パケットヘッダに格納する。
 ステップS614において、拡張モード対応CSI-2送信回路1304は、ステップS613でメッセージカウント値を格納した拡張パケットヘッダを送信する。
 ステップS615において、メッセージカウンタ1308は、メッセージカウント値が最大値までカウントされたか否かを判定する。ステップS615において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされていないと判定した場合、処理はステップS616に進む。
 ステップS616において、メッセージカウンタ1308は、メッセージカウント値をインクリメントする。その後、処理はステップS612に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS615において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされたと判定した場合、処理はステップS611に戻ってメッセージカウント値が初期化された後、以下、同様の処理が繰り返して行われる。
 なお、このようにメッセージカウント値をインクリメントする他、例えば、メッセージカウント値を初期化して最大値に設定して、デクリメントを行ってもよい。
 <埋め込みデータについて>
 図85乃至図88を参照して、埋め込みデータについて説明する。
 イメージセンサ1211は、埋込データを用いることで、データストリーム内にデバイス設定情報などの追加情報を含めることができる。埋込データは、1つ以上のライン(行)で構成され、イメージセンサ1211の構成データや、規格に従うレジスタ値、ベンダ固有のレジスタ値、フレーム形式の説明、統計値などの何れかを含むことが可能である。
 図85のAには、1つのラインの埋込データが示されており、埋め込みデータフォーマットコードに続いて、所望のデータ量の埋め込みデータが連続して配置され、その残りにパディングキャラクタが配置された構成となっている。
 埋込データには、画像データまたはユーザ定義データに関連する情報が含まれる。このため、画像データまたはユーザ定義データは圧縮されたデータであってもよいが、埋込データは、圧縮されてないデータ(非圧縮データ)であることが望ましい。従って、データの圧縮が用いられる場合、高速データ送信のフレーム内には、圧縮データ(画像データまたはユーザ定義データ)と非圧縮データ(埋込データ)とが混在することになる。
 埋込データは、埋込データへ追加されるレジスタ値の数に応じて、埋込データのライン(行)を複数設けることが可能である。また、埋込データの行数は、フレーム内で最初の埋込データ行におけるフレーム形式内の説明の一部によって指定されることが可能である。埋込データのライン長は、画像データまたはユーザ定義データのライン長より短くてもよいが、画像データまたはユーザ定義データのライン長を超えることは好ましくなく、画像データまたはユーザ定義データのライン長と同一であることが望ましい。埋込データの最初のピクセル値は、埋込データに用いられる形式を示してもよい。
 ナンス値の一部または全部は、図85のBに示すようなベンダ固有コード(Vendor specific)またはリザーブドコード(Reserved for future use)を示す埋込データの少なくとも一部内へ格納されて送信されてもよい。フレーム内において埋込データは、フレームスタートと最初の画像データまたはユーザ定義データとの間、および、最後の画像データまたはユーザ定義データとフレームエンドとの間の何れかに格納される。ただし、最後の画像データまたはユーザ定義データとフレームエンドとの間の埋込データは省略してもよい。
 図86には、イメージセンサ1211から送信される2フレーム分の画像データのデータ構造の一例が示されている。
 図86に示すように、第1のバーチャルチャネルのフレームスタート(VC1 FS)が送信された後、読み出し命令および読み出し応答に続いて、第2のバーチャルチャネルのフレームスタート(VC2 FS)が送信される。次に、第1のバーチャルチャネルの第1の埋め込みデータ(VC1 Emb Data)および第2のバーチャルチャネルの第1の埋め込みデータ(VC2 Emb Data)が送信される。そして、1フレーム分の第1のバーチャルチャネルの画像データ(VC1 Img Data)および第2のバーチャルチャネルのユーザ定義データ(VC2 UD Data)が送信される。1フレーム分の送信が完了すると、第1のバーチャルチャネルの第2の埋め込みデータ(VC1 Emb Data)および第2のバーチャルチャネルの第2の埋め込みデータ(VC2 Emb Data)が送信される。その後、第1のバーチャルチャネルのフレームエンド(VC1 FE)が送信された後、読み出し命令および読み出し応答に続いて、第2のバーチャルチャネルのフレームエンド(VC2 FE)が送信される。
 図86では、第1のバーチャルチャネルと第2のバーチャルチャネルとでメッセージカウント値が共通化される例が示されている。このとき第1のバーチャルチャネルと第2のバーチャルチャネルとで独立したセージカウンタが設けられる構成としてもよい。また、ユーザ定義データは、画像データなどであってもよい。
 ここで、ナンス値の一部または全部は、例えば、フレームスタートからフレームエンドまでの期間内、またはフレームエンドからフレームスタートまでの期間内(フレームブランキング期間)に格納される。また、フレームスタートからフレームエンドまでの期間内でナンス値を格納できるのは、例えば、埋込データ内、画像データ内、非画像データ内、およびラインブランキング期間内の何れかである。また、第2のバーチャルチャネルに格納されてもよい。
 フレームスタートおよびフレームエンドを定義することによって、例えば、高速データ送信の開始および終了をイメージセンサからプロセッサへ通知することが可能となる。また、イメージセンサは、フレーム送信周期を一定に保つことが可能となる。なお、埋込データは、画像データを表す属性や画像データに関連する情報(メタデータ)などが格納されるデータである。
 本実施の形態では、画像データの高速データ送信を阻害せずに、ナンス値の高速データ送信が実行される例を説明する。つまり、画像データの高速データ送信とナンス値の高速データ送信とが、並列実行ではなく直列実行される例を説明する。ただし、画像データの高速データ送信とナンス値の送信(高速データ送信または低速コマンド送信)とで通信経路が異なる場合、並列実行されてもよい。
 なお、高速データ送信と低速コマンド送信とは、フィルタによる周波数分離が可能なので、消費電力に問題なければ、送信の一部または全部が重複(並列実行)されていても構わない。ナンス値の一部または全部は、複数フレームごとに送信されてもよいが、例えばフレーム欠落などの理由によって、1フレームごとに送信される方が望ましい。例えば、フレームスタート(Frame Start;FS)パケットはFrame Start Code(Data Type = 0x00)を含み、フレームエンド(Frame End;FE)パケットはFrame End Code(Data Type = 0x01)を含む。
 図87は、イメージセンサ1211が画像データを送信する画像データ送信処理を説明するフローチャートである。
 ステップS621において、拡張モード対応CSI-2送信回路1304は、高速データ送信の開始命令を受信したか否かを判定し、高速データ送信の開始命令を受信したと判定されるまで、処理が待機される。そして、ステップS621において、拡張モード対応CSI-2送信回路1304が、高速データ送信の開始命令を受信したと判定した場合、処理はステップS622に進む。
 ステップS622おいて、画素1301が撮像を開始し、画素1301から出力される画像データが、AD変換器1302および画像処理部1303を介して拡張モード対応CSI-2送信回路1304に供給される。
 ステップS623において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルのフレームスタートを送信する。
 ステップS624において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルのフレームスタートを送信する。
 ステップS625において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルの第1の埋め込みデータを送信する。
 ステップS626において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルの第1の埋め込みデータを送信する。
 ステップS627おいて、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルの画像データを送信する。
 ステップS628において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルのユーザ定義データを送信する。
 ステップS629において、拡張モード対応CSI-2送信回路1304は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS629において、拡張モード対応CSI-2送信回路1304が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS627に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS629において、拡張モード対応CSI-2送信回路1304が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS630に進む。
 ステップS630において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルの第2の埋め込みデータを送信する。
 ステップS631において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルの第2の埋め込みデータを送信する。
 ステップS632において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルのフレームエンドを送信する。
 ステップS633において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルのフレームエンドを送信する。
 ステップS634において、拡張モード対応CSI-2送信回路1304は、高速データ送信の終了命令を受信したか否かを判定する。
 ステップS634において、拡張モード対応CSI-2送信回路1304が、高速データ送信の終了命令を受信していないと判定した場合、処理はステップS622に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS634において、拡張モード対応CSI-2送信回路1304が、高速データ送信の終了命令を受信したと判定した場合、処理は終了される。
 撮像開始は、高速データ送信の終了命令を受信するまで継続実行されてもよく、高速データ送信の開始命令を受信するたびに実行されてもよい。
 図88は、イメージセンサ1211が完全性演算値を送信する完全性演算値送信処理を説明するフローチャートである。
 ステップS641において、セキュリティ部1310は、第1のバーチャルチャネルのセッション鍵を導出する。
 ステップS642において、セキュリティ部1310は、第2のバーチャルチャネルのセッション鍵を導出する。
 ステップS643において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値を初期化して0に設定する。
 ステップS644において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値を初期化して0に設定する。
 ステップS645において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS646に進む。
 ステップS646において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルの拡張パケットを送信するか否かを判定する。
 ステップS646において、拡張モード対応CSI-2送信回路1304が、第1のバーチャルチャネルの拡張パケットを送信しないと判定した場合、処理はステップS645に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS646において、拡張モード対応CSI-2送信回路1304が、第1のバーチャルチャネルの拡張パケットを送信すると判定した場合、処理はステップS647に進む。
 ステップS647において、セキュリティ部1310は、ステップS641で導出した第1のバーチャルチャネルのセッション鍵を用いて、第1のバーチャルチャネルの完全性演算値を演算する。
 ステップS648において、拡張モード対応CSI-2送信回路1304は、ステップS647で算出された完全性演算値を第1のバーチャルチャネルの拡張パケットに配置し、その第1のバーチャルチャネルの拡張パケットを送信する。
 ステップS649において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルの拡張パケットを送信するか否かを判定し、第2のバーチャルチャネルの拡張パケットを送信と判定されるまで処理を待機する。そして、ステップS649において、拡張モード対応CSI-2送信回路1304が、第2のバーチャルチャネルの拡張パケットを送信すると判定した場合、処理はステップS650に進む。
 ステップS650において、セキュリティ部1310は、ステップS642で導出した第2のバーチャルチャネルのセッション鍵を用いて、第2のバーチャルチャネルの完全性演算値を演算する。
 ステップS651において、拡張モード対応CSI-2送信回路1304は、ステップS650で算出された完全性演算値を第2のバーチャルチャネルの拡張パケットに配置し、その第2のバーチャルチャネルの拡張パケットを送信する。
 ステップS652において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値が最大値までカウントされたか否かを判定する。
 ステップS652において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされていないと判定した場合、処理はステップS653に進む。ステップS653において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値をインクリメントした後、処理はステップS645に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS652において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされたと判定した場合、処理はステップS654に進む。ステップS654において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値をインクリメントした後、処理はステップS644に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS645において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS655に進む。
 ステップS655において、セキュリティ部1310は、第1のバーチャルチャネルのセッション鍵と第2のバーチャルチャネルのセッション鍵とを破棄またはクリーンアップし、その後、処理は終了される。
 <画像データのデータ構造の変形例>
 図89乃至図91を参照して、画像データのデータ構造について説明する。
 図89には、画像データのデータ構造の第1の変形例が示されている。
 図89に示す画像データのデータ構造では、第1のバーチャルチャネルおよび第2のバーチャルチャネルで共通化されたメッセージカウント値が用いられている。
 ただし、セッション鍵またはメッセージカウンタは、第1のバーチャルチャネルおよび第2のバーチャルチャネルで共通化されてもよい。また、画像データまたは埋込データは、他データへ置き換えられてもよい。例えば、埋込データは、画像データへ置き換えられてもよい。一方、メッセージカウンタは、仮想チャネル(VC)を跨いでカウントすることによって、共通化されてもよい。
 図90には、画像データのデータ構造の第2の変形例が示されている。
 図90に示す画像データのデータ構造では、Write(CCI書き込み命令)、Read1(CCI読み出し命令)、およびRead2(CCI読み出し応答)で、それぞれ独立したメッセージカウント値が用いられている。
 図91には、画像データのデータ構造の第3の変形例が示されている。
 図91に示す画像データのデータ構造では、CCIアップリンク(WriteおよびRead1)およびCCIダウンリンク(Read2)で、それぞれ独立したメッセージカウント値が設けられている。つまり、メッセージカウント値は、Write(CCI書き込み命令)とRead1(CCI読み出し命令)とで共通化されてもよい。
 <ナンス値について>
 ナンス値は、例えば、同じセッション鍵に対してnumber used onceであるため、セッション鍵を用いる暗号化演算または復号演算の初期化ベクトル(initialization vector)の一部または全部として用いられる。そのため、イメージセンサ1211が暗号化演算に用いたナンスが、イメージセンサ1211から送信されてアプリケーションプロセッサ1212で受信されることによって、アプリケーションプロセッサ1212は復号演算に必要なナンス値を入手できる。
 つまり、イメージセンサ1211は、画像データを送信する前にナンス値を送信することが望ましい。具体的には、あるフレーム内の画像データに対応するナンス値の一部または全部は、1つ前にフレーム内の最後の画像データが送信完了された後から、あるフレーム内の最初の画像データが送信開始される前までの、読み出し応答内や、ユーザ定義データ内、埋込データ内(画像データ直後)、フレームエンド内、フレームスタート内、埋込データ内(画像データ直前)などの何れかに格納される。
 例えば、低速コマンド送信のマスタであるアプリケーションプロセッサ1212は、低速コマンド送信のスレーブであるイメージセンサ1211から高速データ送信によって送信されたフレームスタートや、埋込データ、画像データ、ユーザ定義データ、フレームエンドなどの何れかの受信開始または受信完了に応じて、イメージセンサ1211内のナンス値をアプリケーションプロセッサ1212へ読み出すことを要求する読み出し命令を低速コマンド送信によって送信してもよい。
 イメージセンサ1211は、アプリケーションプロセッサ1212から送信された読み出し命令を受信し、それに応じたナンス値を高速データ送信によって送信する。そして、アプリケーションプロセッサ1212が読み出し応答を受信することによって、イメージセンサ1211からアプリケーションプロセッサ1212へナンス値を通知できる。
 イメージセンサ1211から通知されたナンス値はアプリケーションプロセッサ1212内で用いられるので、ナンス値の一部または全部は、フレームエンドと次のフレームスタートとの間の画像データが送信されないフレームブランキングの期間内に送信されることが望ましい。ただし、最初のフレーム(Frame Number = 1)については、イメージセンサ1211とアプリケーションプロセッサ1212とで最初のナンス値(初期値)を事前合意しておくか、最初のナンス値の一部または全部が画像データの送信開始までにアプリケーションプロセッサ1212で受信されてれいればよい。
 この読み出し命令は、例えば、I2CまたはI3Cの規格におけるRead/WriteのReadに相当する。一方、読み出し応答は、Read戻り値に相当する。なお、読み出し応答のタイミングを調整するために、アプリケーションプロセッサ1212が高速データ送信を受信してから、読み出し命令を送信するまでの間に、所定時間を待機するタイマが設けられてもよい。
 <I2CおよびI3Cについて>
 I2CバスまたはI2Cバスと呼ばれる場合もある集積回路間シリアルバスは、低速周辺装置をアプリケーションプロセッサ1212に接続する際に使用することを意図していたシリアルシングルエンドコンピュータバスである。I2Cバスは、I2Cバス上で送信される様々なメッセージに対して、各デバイスがマスタおよびスレーブとして働くことができるマルチマスタバスである。
 I2Cバスは、シリアルデータライン(SDA)およびシリアルクロックライン(SCL)を含む2つの双方向オープンドレインコネクタのみを使用して、データを送信することができる。それらのコネクタは通常、プルアップ抵抗器によって終端される信号線を含む。I2Cバスの動作を管理するプロトコルは、メッセージの基本タイプを規定し、それらのメッセージはそれぞれSTARTで開始し、STOPで終了する。I2Cバスは7ビットアドレス指定を使用し、2つのタイプのノードを規定する。
 マスタノードは、クロックを生成し、スレーブノードとの通信を開始するノードである。スレーブノードは、クロックを受信し、マスタによってアドレス指定されたときに応答するノードである。I2Cバスはマルチマスタバスであり、それは、任意の数のマスタノードが存在できることを意味する。さらに、マスタとスレーブの役割は、メッセージ間で(すなわち、STOPが送られた後)変更される場合がある。カメラ実装である本実施の形態では、センサから画像を取り込み、そのような画像データをベースバンドプロセッサの中のメモリへ送信するために片方向送信が使用されてもよく、一方、ベースバンドプロセッサと、センサならびに他の周辺デバイスとの間で制御データが交換されてもよい。
 一例では、ベースバンドプロセッサとイメージセンサ(または1つもしくは複数のスレーブノード)との間のそのような制御データのために、カメラ制御インタフェース(CCI)プロトコルが使用される場合がある。一例では、CCIプロトコルは、イメージセンサとベースバンドプロセッサとの間のI2Cシリアルバスを介して実施されてもよい。従来のI2Cシステム、すなわちカメラ制御インターフェースベースのカメラシステムは、スレーブノードがバスを使用することを望むことを、スレーブノードがマスタノードへ示すことを可能にするために、スレーブデバイスごとに別個の割込み(IRQ)ラインを使用する。
 一方、I3Cの通信規格は、データを伝送するSDA線と、クロック信号を伝送するSCL線との2本の信号線を介して通信を行う規格である。この規格において、デバイス(プロセッサなど)は、マスタまたはスレーブとして動作するデバイスと、スレーブとしてのみ動作するデバイスとに分類される。例えば、プロセッサは、マスタまたはスレーブとして動作し、センサはスレーブとしてのみ動作する。
 ここで、マスタは、スレーブを制御するデバイスであり、スレーブは、マスタの制御に従って動作するデバイスである。また、I3Cでは1つのマスタに対して複数のスレーブを接続することができる。また、1つのスレーブに対して複数のマスタが信号を送信することができ、この通信を以下、「マルチマスタ通信」と称する。さらに、マスタを介さずにスレーブ同士で通信を行うことができ、この通信は、「ピアツーピア通信」と呼ばれる。また、スレーブは、他のデバイスの通信によりSDA線が通信中(ビジー)である間に、その通信に割り込んで通信を行うことができ、この割込みは、「帯域内割込み(In-Band Interrupt)」と呼ばれる。
 上述のマルチマスタ通信、帯域内割込み、および、ピアツーピア通信においては、複数のデバイスが同時に送信した信号がSDA線において衝突するおそれがある。例えば、マスタが、あるスレーブへ信号を送信している間に、別のスレーブが帯域内割込みを行ってマスタへ信号を送信すると、マスタからの信号とスレーブからの信号とが衝突してしまう。このため、I3Cにおけるデバイスは、衝突を検出してデバイス同士を調停する機能を有する。
 上述した割り込み機能を用いると、アプリケーションプロセッサ1212と簡単に同期をとれるので、イメージセンサ1211が決めるタイミングで割り込み実行することによって、イメージセンサ1211が決めるタイミングに応じてナンス関連情報が送信される。ただし、イメージセンサ1211は、帯域内割込みによって読み出し命令をトリガし、それに応じて読み出し応答を送信してもよいし、帯域内割込みによって読み出し命令を省略して読み出し応答を送信してもよい。
 <完全性演算値処理>
 図92乃至図95を参照して、完全性演算値処理について説明する。
 図92は、イメージセンサ1211が完全性演算値を送信する完全性演算値処理の第1の処理例を説明するフローチャートである。
 ステップS661において、セキュリティ部1310は、セッション鍵を導出する。
 ステップS662において、メッセージカウンタ1308は、メッセージカウント値を初期化して0に設定する。
 ステップS663において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS664に進む。
 ステップS664において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信するか否かを判定する。
 ステップS664において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信しないと判定した場合、処理はステップS663に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS664において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信すると判定した場合、処理はステップS665に進む。
 ステップS665において、セキュリティ部1310は、メッセージカウント値を用いて、完全性演算値を演算する。
 ステップS666において、拡張モード対応CSI-2送信回路1304は、ステップS665で算出された完全性演算値を拡張パケットに配置し、その拡張パケットを送信する。
 ステップS667において、メッセージカウンタ1308は、メッセージカウント値が最大値までカウントされたか否かを判定する。ステップS667において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされていないと判定した場合、処理はステップS668に進む。
 ステップS668において、メッセージカウンタ1308は、メッセージカウント値をインクリメントする。その後、処理はステップS663に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS667において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされたと判定した場合、処理はステップS669に進む。ステップS669において、セキュリティ部1310は、セッション鍵を更新した後、処理はステップS662に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS663において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS670に進む。
 ステップS670において、セキュリティ部1310は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 このように、画像ラインごとのMAC値を演算して拡張パケットフッタ内に格納して送信する場合、メッセージカウント値は、拡張パケットを送信するごとに1ずつインクリメントされるので、216回でメッセージカウント値は一周する。例えば、フレームレートが60fpsで画素数4096×2160(横×縦)の4Kデータを送信する場合、フレームスタートと埋込データとフレームエンドとの3ラインを加算した2163ラインの拡張パケットを1フレーム内で送信することを想定すれば、(216)/(60×2163)≒0.5秒でメッセージカウント値が一周する。
 例えば、イメージセンサ1211が、同じセッション鍵で同じ初期化ベクトル値を用いてメッセージのGalois Message Authentication Code(GMAC)値などのMAC値を演算してメッセージおよびMAC値を送信する場合、攻撃者はメッセージおよびMAC値の連立方程式を計算することによってセッション鍵を簡単に入手できる。その場合、攻撃者は、MAC値を自由に改竄できるようになるため、メッセージの成りすまし、改竄、リプレイなどの攻撃が可能になる。そのため、メッセージカウント値を初期化ベクトルの可変部分、つまりナンス値として用いる場合、メッセージカウント値が一周するまでにセッション鍵を更新する必要がある。例えば、フレームブランキングまたはラインブランキングの期間を活用することによって、ナンス値が一周(ロールオーバー)するまでにセッション鍵が更新されればよい。
 図93は、イメージセンサ1211が完全性演算値を送信する完全性演算値処理の第2の処理例を説明するフローチャートである。
 ステップS681において、セキュリティ部1310は、セッション鍵を導出する。
 ステップS682において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値を初期化して0に設定する。
 ステップS683において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値を初期化して0に設定する。
 ステップS684において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS685に進む。
 ステップS685において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信するか否かを判定する。
 ステップS685において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信しないと判定した場合、処理はステップS684に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS685において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信すると判定した場合、処理はステップS686に進む。
 ステップS686において、セキュリティ部1310は、メッセージカウント値の上位カウント値および下位カウント値を用いて、完全性演算値を演算する。
 ステップS687において、拡張モード対応CSI-2送信回路1304は、ステップS686で算出された完全性演算値を拡張パケットに配置し、その拡張パケットを送信する。
 ステップS688において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値が最大値までカウントされたか否かを判定する。ステップS688において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされていないと判定した場合、処理はステップS689に進む。
 ステップS689において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値をインクリメントする。その後、処理はステップS684に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS688において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされたと判定した場合、処理はステップS690に進む。ステップS690において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値をインクリメントした後、処理はステップS683に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS684において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS691に進む。
 ステップS691において、セキュリティ部1310は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 このように、メッセージカウント値を初期化ベクトルの一部、つまりナンス値の一部(例えば、下位カウント値)として用いる場合、ナンス値の残り(例えば、上位カウント値)も併用することによって、セッション鍵の更新を不要にすること、または、セッション鍵の更新頻度を減らすことができる。
 例えば、フレームレートが60fpsで画素数4096×2160(横×縦)の4Kデータを送信する場合、ナンス値が一周するのは、
 ・16ビット幅の上位カウント値を併用すると232÷60÷2163≒9時間
 ・20ビット幅の上位カウント値を併用すると236÷60÷2163≒6日
 ・24ビット幅の上位カウント値を併用すると240÷60÷2163≒98日
 ・28ビット幅の上位カウント値を併用すると244÷60÷2163≒4年
 ・32ビット幅の上位カウント値を併用すると248÷60÷2163≒69年となる。
 ここで、イメージセンサ1211またアプリケーションプロセッサ1212の電源が再起動(OFFの後にON)される場合、保護された画像データを再び送信する前に鍵交換が必要になるので、それに応じてセッション鍵は更新される。例えば、一般的な車載用途で6日以上も電源を再起動しない可能性は低く、4年以上も電源を再起動しない可能性は極めて低いので、上位カウント値は20~28ビット幅あれば十分である。もちろん、その限りではなく、それ以上のビット幅を用いてもよい。
 例えば、給油式の車両であれば給油の際に電源OFFとすればよく、給油式または充電式の車両であっても車両点検の際に電源OFFとすれば、保護された画像データを再び送信する前に鍵交換が必要になるので、それに応じてセッション鍵は更新される。例えば、IoT(Internet of ThingsまたはIntelligence of Things)向けイメージセンサが想定される場合、電源が再起動されないことも想定されるので、上位カウント値は32ビット幅あれば十分である。もちろん、その限りではなく、それ以上のビット幅を用いてもよい。
 図94は、イメージセンサ1211が完全性演算値を送信する完全性演算値処理の第3の処理例を説明するフローチャートである。
 ステップS701において、セキュリティ部1310は、セッション鍵を導出する。
 ステップS702において、メッセージカウンタ1308は、フレームカウント値を初期化して1に設定する。
 ステップS703において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS704に進む。
 ステップS704において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信するか否かを判定する。
 ステップS704において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信しないと判定した場合、処理はステップS703に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS704において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信すると判定した場合、処理はステップS705に進む。
 ステップS705において、セキュリティ部1310は、フレームカウント値を用いて行われる完全性演算値の演算を準備する。
 ステップS706において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信する。
 ステップS707において、拡張モード対応CSI-2送信回路1304は、フレーム内のフレームエンド以外の送信が完了したか否かを判定する。ステップS707において、拡張モード対応CSI-2送信回路1304が、フレーム内のフレームエンド以外の送信が完了していないと判定した場合、処理はステップS703に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS707において、拡張モード対応CSI-2送信回路1304が、フレーム内のフレームエンド以外の送信が完了したと判定した場合、処理はステップS708に進む。
 ステップS708において、セキュリティ部1310は、フレームカウント値を用いて行われる完全性演算値の演算を完了する。
 ステップS709において、拡張モード対応CSI-2送信回路1304は、フレームエンドとともに完全性演算値を送信する。
 ステップS710において、メッセージカウンタ1308は、フレームカウント値が規定値までカウントされたか否かを判定する。ステップS710において、メッセージカウンタ1308が、フレームカウント値が規定値までカウントされていないと判定した場合、処理はステップS711に進む。
 ステップS711において、メッセージカウンタ1308は、フレームカウント値をインクリメントする。その後、処理はステップS703に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS710において、メッセージカウンタ1308が、フレームカウント値が規定値までカウントされたと判定した場合、処理はステップS712に進む。ステップS712において、セキュリティ部1310は、セッション鍵を更新した後、処理はステップS702に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS703において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS713に進む。
 ステップS713において、セキュリティ部1310は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 このように、イメージセンサ1211は、画像フレームごとの完全性演算値を演算して一括送信してもよい。その場合の完全性演算値は、画像データ以降の埋込データ内またはユーザ定義データ内または読み出し応答内に格納されて送信される。
 フレームスタートまたはフレームエンドは、例えば、16ビットのフレーム番号を含んでもよい。このフレーム番号は、所定のフレームに対応するフレームスタートとフレームエンドとで同一であってもよい。16ビットのフレーム番号を使用する場合、フレーム番号が機能せず、ゼロに設定されたままのユースケースと区別するために、非ゼロであることが望ましいが、その限りではない。
 フレーム番号は、同じ仮想チャネルを持つフレームスタートパケットごとに1または2ずつインクリメントし、定期的に1へリセットされる。例えば、破損のために画像フレームがマスクされている(つまり、送信されてない)場合、フレーム番号は2ずつ増えてもよい。
 このような場合に対応するために、必要に応じて、フレーム番号のシーケンス内で1または2のインクリメントを自由に混在させてもよい。つまり、1ずつインクリメントされる場合、216-1回でフレーム番号は一周する。また、フレームレートが60fpsである場合、(216-1)÷60≒18分でフレーム番号が一周する。
 例えば、イメージセンサ1211が、同じセッション鍵で同じ初期化ベクトル値を用いてメッセージのGalois Message Authentication Code(GMAC)値などのMAC値を演算してメッセージおよびMAC値を送信する場合、攻撃者はメッセージおよびMAC値の連立方程式を計算することによってセッション鍵を簡単に入手できる。その場合、攻撃者は、MAC値を自由に改竄できるようになるため、メッセージの成りすまし、改竄、リプレイなどの攻撃が可能になる。
 そのため、フレーム番号を初期化ベクトル、つまりナンス値として用いる場合、フレーム番号が一周するまでにセッション鍵を更新する必要がある。例えば、フレームブランキングまたはラインブランキングの期間を活用することによって、ナンス値が一周(ロールオーバー)するまでにセッション鍵が更新されればよい。
 図95は、イメージセンサ1211が完全性演算値を送信する完全性演算値処理の第4の処理例を説明するフローチャートである。
 ステップS721において、セキュリティ部1310は、セッション鍵を導出する。
 ステップS722において、メッセージカウンタ1308は、フレームカウント値の上位カウント値を初期化して0に設定する。
 ステップS723において、メッセージカウンタ1308は、フレームカウント値の下位カウント値を初期化して1に設定する。
 ステップS724において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS725に進む。
 ステップS725において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信するか否かを判定する。
 ステップS725において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信しないと判定した場合、処理はステップS724に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS725において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信すると判定した場合、処理はステップS726に進む。
 ステップS726において、セキュリティ部1310は、フレームカウント値の上位カウント値および下位カウント値を用いて行われる完全性演算値の演算を準備する。
 ステップS727において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信する。
 ステップS728において、拡張モード対応CSI-2送信回路1304は、フレーム内のフレームエンド以外の送信が完了したか否かを判定する。ステップS728において、拡張モード対応CSI-2送信回路1304が、フレーム内のフレームエンド以外の送信が完了していないと判定した場合、処理はステップS724に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS728において、拡張モード対応CSI-2送信回路1304が、フレーム内のフレームエンド以外の送信が完了したと判定した場合、処理はステップS729に進む。
 ステップS729において、セキュリティ部1310は、フレームカウント値の上位カウント値および下位カウント値を用いて行われる完全性演算値の演算を完了する。
 ステップS730において、拡張モード対応CSI-2送信回路1304は、フレームエンドとともに完全性演算値を送信する。
 ステップS731において、メッセージカウンタ1308は、フレームカウント値の下位カウント値が規定値までカウントされたか否かを判定する。ステップS731において、メッセージカウンタ1308が、フレームカウント値の下位カウント値が規定値までカウントされていないと判定した場合、処理はステップS732に進む。
 ステップS732において、メッセージカウンタ1308は、フレームカウント値の下位カウント値をインクリメントする。その後、処理はステップS724に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS731において、メッセージカウンタ1308が、フレームカウント値の下位カウント値が規定値までカウントされたと判定した場合、処理はステップS733に進む。ステップS733において、セキュリティ部1310は、フレームカウント値の上位カウント値をインクリメントした後、処理はステップS723に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS724において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS734に進む。
 ステップS734において、セキュリティ部1310は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 このように、フレーム番号を初期化ベクトルの一部、つまりナンス値の一部(例えば、下位カウント値)として用いる場合、ナンス値の残り(例えば、上位カウント値)も併用することによって、セッション鍵の更新を不要にすること、または、セッション鍵の更新頻度を減らすことができる。
 例えば、1ずつインクリメントで60fpsである場合、ナンス値が一周するのは、
 ・4ビット幅の上位カウント値を併用すると24×(216-1)÷60≒5時間
 ・8ビット幅の上位カウント値を併用すると28×(216-1)÷60≒78時間
 ・12ビット幅の上位カウント値を併用すると212×(216-1)÷60≒52日
 ・16ビット幅の上位カウント値を併用すると216×(216-1)÷60≒828日
 ・20ビット幅の上位カウント値を併用すると220×(216-1)÷60≒36年
 ・24ビット幅の上位カウント値を併用すると224×(216-1)÷60≒581年となる。
 ここで、イメージセンサ1211またはアプリケーションプロセッサ1212の電源が再起動(OFFの後にON)される場合、保護された画像データを再び送信する前に鍵交換が必要になるので、それに応じてセッション鍵は更新される。例えば、一般的な車載用途で、3日以上も電源を再起動しない可能性は低く、2年以上も電源を再起動しない可能性は極めて低いので、上位カウント値は8~16ビット幅あれば十分である。もちろん、その限りではなく、それ以上のビット幅を用いてもよい。
 例えば、給油式の車両であれば給油の際に電源OFFとすればよく、給油式または充電式の車両であっても車両点検の際に電源OFFとすれば、保護された画像データを再び送信する前に鍵交換が必要になるので、それに応じてセッション鍵は更新される。例えば、IoT(Internet of ThingsまたはIntelligence of Things)向けイメージセンサが想定される場合、電源が再起動されないことも想定されるので、上位カウント値は20~24ビット幅あれば十分である。もちろん、その限りではなく、それ以上のビット幅を用いてもよい。
 <暗号化および復号>
 図96乃至図100を参照して、暗号化および復号について説明する。
 図96には、初期化ベクトルが格納される初期カウンタブロックの一例が示されている。
 図96に示すように、初期化ベクトルの構造を共通化する一方で、バーチャルチャネル間で異なる値とすることで、より簡単な実装を可能とすることができる。また、CSI-2のバーチャルチャネル間で、共通のセッション鍵またはカウント値が用いられる。
 128ビットの初期カウンタブロックが、AES(Advanced Encryption Standard)-GCM(Galois/Counter Mode)またはAES-GMAC(Galois Message Authentication Code)によって暗号化に用いられたり、メッセージ認証に用いられたりする。
 例えば、初期カウンタブロックの暗号化には、図97に示すようなGHASH関数や、図98に示すようなGCTR関数などを利用することができる。
 初期化ベクトルは、図99に示すような認証付き暗号化機能を有するGCM-AE(Authenticated Encryption)関数を利用した暗号化や、図100に示すような認証付き復号機能を有するGCM-AD(Authenticated Decryption)関数を利用した復号に利用される。ただし、暗号化(復号)またはメッセージ認証の何れか一方の機能に限定利用されてもよい。
 例えば、初期化ベクトルIV、平文P、および追加認証データAをGCM-AE関数に入力すると平文Pの暗号化が行われ、その結果、暗号化テキストCおよび認証タグTが出力される。
 一方、初期化ベクトルIV、暗号化テキストC、追加認証データA、および認証タグTをGCM-AD関数に入力すると、暗号化テキストCの復号が行われて平文Pが出力され、認証タグTと認証タグT’が一致しなかった場合には、認証に失敗したことを示す結果(FAIL)が出力される。
 <完全性演算値の第1の送信方式>
 図101乃至図105を参照して、完全性演算値MACの第1の送信方式について説明する。
 図101には、ラインごとに完全性演算値MACを送信する画像データのデータ構造が示されている。このように、ラインごとに完全性演算値MACを送信する送信方式を、以下適宜、ラインMAC方式と称する。
 図示するように、CSI-2のラインごと、CCIコマンドごと、または、CCIリターンごとに、完全性演算値MACが送信される。このように、これらの間で初期化ベクトルが同一の値である場合、より多くのセッション鍵が必要となる。
 例えば、同一の初期化ベクトルおよび同一のセッション鍵を使用すると、完全性演算値MACが改竄される原因になることが想定される。
 そこで、同一の初期化ベクトルについては、VC0コマンド、VC0リターン、VC1、およびVC2ごとに、それぞれ合計で4つのセッション鍵を使用することが提案される。
 一方、異なる初期化ベクトルについては、3つ以下のセッション鍵を使用することが提案される。
 第1のケースでは、アップリンク向けの第1のセッション鍵をVC0コマンドで使用し、ダウンリンク向けの第2のセッション鍵をVC0リターン、VC1、およびVC2で使用する。第2のケースでは、CCI向けの第1のセッション鍵をVC0で使用し、CSI-2向けの第2のセッション鍵をVC1およびVC2で使用する。第3のケースでは、全て向けの1つのセッション鍵をVC0、VC1、およびVC2で使用する。
 また、合計で2つのメッセージカウント値が使用される。CSI-2で共通のメッセージカウント値はVC1およびVC2の間で使用され、CCIで独立したメッセージカウント値はVC0で使用される。
 なお、CSI-2の仮想チャネル間で共通なメッセージカウンタが用いられる例が示されているが、CSI-2の仮想チャネル間で独立したメッセージカウンタが用いられてもよい。その場合、フローチャートの一部が削除されればよい。また、その場合、CSI-2の仮想チャネル間でメッセージカウンタが同期されていてもよいし、非同期であってもよい。例えば、実装効率の観点でメッセージカウンタは共通化が望ましい場合もあるし、安全性の観点でメッセージカウンタは独立化が望ましい場合もある。
 例えば、図102に示す構造の初期化ベクトルは、全てのバーチャルチャネル(CSI-2およびCCI)において共通とされる。そして、この初期化ベクトルの一部または全部は、図103に示すように、送信側から受信側へ送信される。なお、Reserved(Res)2ビットとして、規定値(例えば、02、12)を用いてもよい。また、Source IDまたはFinal Destination IDとして、事前交換された値を用いてもよい。また、受信側は、送信側から受信側へ送信された値ではなく、受信側で把握している値を初期化ベクトルの一部または全部として用いてもよい。また、初期化ベクトルの一部または全部が送信側から受信側へ送信される場合、初期化ベクトルの一部または全部は暗号化されないで(平文で)送信されることが望ましいが、その限りではない。
 図103では、追加メッセージカウント値が拡張パケットヘッダ外に格納されて送信される例が示されているが、追加メッセージカウント値およびメッセージカウント値が拡張パケットヘッダ外に格納されて送信されてもよい。その場合、メッセージカウント値は拡張パケットヘッダ内にも格納されて送信されてもよい。なお、追加メッセージカウント値は一部のみ用いられてもよい。例えば、初期化ベクトル内の追加メッセージカウント値が40ビットの場合、実際の追加メッセージカウント値は16ビットのカウンタであってもよく、そのカウント値が初期化ベクトル内の追加メッセージカウント値の一部(例えば、LSB側16ビット)内に格納され、初期化ベクトル内の追加メッセージカウント値の残り(例えば、MSB側24ビット)内は規定値(例えば、024、124)が格納されてもよい。また、初期化ベクトル内の追加メッセージカウント値は全て規定値(例えば、040、140)が格納されてもよい。
 また、イメージセンサ1211からアプリケーションプロセッサ1212へ送信されて設定される初期化ベクトルの一部または全部は、イメージセンサ1211からアプリケーションプロセッサ1212へ送信されないように構成され、事前合意またはレジスタ設定などに基づいて設定されてもよい。
 図104には、CSI-2またはCCIの拡張フォーマットの一例が示されている。
 例えば、必須の拡張パケットヘッダePH0の先頭ビット(ReservedおよびeVC)または準先頭ビット(eVC)が、初期化ベクトルとして使用される。そして、アプリケーションプロセッサ1212は、そのビットを受信した直後に、上述の図98に示したGCTR関数の計算を開始することができる。つまり、送信側および受信側は、eVC値を送信または受信する前までにeVC以外の初期化ベクトル構成要素の値を確定できるように構成されてもよい。
 図105に示すフローチャートを参照して、イメージセンサ1211が、ラインごとに完全性演算値MACを送信するラインMAC方式の送信処理について説明する。
 ステップS741において、セキュリティ部1310は、共通セッション鍵を導出する。
 ステップS742において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値を初期化して0に設定する。
 ステップS743において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値を初期化して0に設定する。
 ステップS744において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS745に進む。
 ステップS745において、拡張モード対応CSI-2送信回路1304は、第1のバーチャルチャネルの拡張パケットを送信するか否かを判定する。
 ステップS745において、拡張モード対応CSI-2送信回路1304が、第1のバーチャルチャネルの拡張パケットを送信しないと判定した場合、処理はステップS744に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS745において、拡張モード対応CSI-2送信回路1304が、第1のバーチャルチャネルの拡張パケットを送信すると判定した場合、処理はステップS746に進む。
 ステップS746において、セキュリティ部1310は、ステップS741で導出した共通セッション鍵を用いて、第1のバーチャルチャネルの完全性演算値を演算する。
 ステップS747において、拡張モード対応CSI-2送信回路1304は、ステップS746で算出された完全性演算値を第1のバーチャルチャネルの拡張パケットに配置し、その第1のバーチャルチャネルの拡張パケットを送信する。
 ステップS748において、拡張モード対応CSI-2送信回路1304は、第2のバーチャルチャネルの拡張パケットを送信するか否かを判定し、第2のバーチャルチャネルの拡張パケットを送信と判定されるまで処理を待機する。そして、ステップS748において、拡張モード対応CSI-2送信回路1304が、第2のバーチャルチャネルの拡張パケットを送信すると判定した場合、処理はステップS749に進む。
 ステップS749において、セキュリティ部1310は、ステップS741で導出した共通セッション鍵を用いて、第2のバーチャルチャネルの完全性演算値を演算する。
 ステップS750において、拡張モード対応CSI-2送信回路1304は、ステップS749で算出された完全性演算値を第2のバーチャルチャネルの拡張パケットに配置し、その第2のバーチャルチャネルの拡張パケットを送信する。
 ステップS751において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値が最大値までカウントされたか否かを判定する。
 ステップS751において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされていないと判定した場合、処理はステップS752に進む。ステップS752において、メッセージカウンタ1308は、メッセージカウント値の下位カウント値をインクリメントした後、処理はステップS744に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS751において、メッセージカウンタ1308が、メッセージカウント値の下位カウント値が最大値までカウントされたと判定した場合、処理はステップS753に進む。ステップS753において、メッセージカウンタ1308は、メッセージカウント値の上位カウント値をインクリメントした後、処理はステップS743に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS744において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS754に進む。
 ステップS754において、セキュリティ部1310は、共通セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 このように、初期化ベクトル構成が拡張仮想チャネルeVCまたは仮想チャネルVCを含むことによって、複数種類のCSI-2仮想チャネル間で、セッション鍵やメッセージカウンタが共通化されることが可能になる。また、CSI-2とCCIとの間で、セッション鍵を共通化されることが可能になる。なお、CSI-2仮想チャネル間で実質的なライン数が異なる場合、例えば、ダミーデータによってライン数が統一化されることによって、メッセージカウンタを共通化されることが可能になる。
 図105で説明した処理は、メッセージカウント値を下位カウント値とし、追加メッセージカウント値を上位カウント値とする例であり、CSI-2仮想チャネルが2種類ある場合の一例である。
 一方、初期化ベクトル構成は、拡張データタイプeDTまたはデータタイプDTを含んでもよい。その場合は同様に、複数種類のデータタイプ間で、セッション鍵やメッセージカウンタが共通化されることが可能になる。
 なお、Reserved、拡張仮想チャネルeVC、および拡張データタイプeDTは、CSI-2/CCI extension format exampleの先頭ビットとして格納されるので、プロセッサはこれらの一部または全部が受信されれば直ちにGCTR演算の一部(CIPHK)の演算を開始できる。また、イメージセンサ1211とアプリケーションプロセッサ1212との間でフレーム構成が事前に合意されている場合、アプリケーションプロセッサ1212は、これらの受信を省略してGCTR演算の一部(CIPHK)の演算を開始できる。つまり、これらの初期化ベクトル構成は、演算時間の観点で有利である。
 なお、追加メッセージカウント値をイメージセンサ1211からアプリケーションプロセッサ1212へ送信することによって、アプリケーションプロセッサ1212は、この値を初期化ベクトルに用いることができる。これにより、アプリケーションプロセッサ1212は、実装効率の観点から追加メッセージカウンタを設けないように構成されてもよいし、安全性の観点から追加メッセージカウンタを設けるように構成されてもよい。また、アプリケーションプロセッサ1212が追加メッセージカウンタを設けるように構成される場合、イメージセンサ1211は追加メッセージカウント値を送信しないように構成されてもよい。即ち、初期化ベクトルに拡張仮想チャネルeVCが含まれる場合、追加メッセージカウント値の送信は必須要件でない。
 <完全性演算値の第2の配置例>
 図106乃至図109を参照して、完全性演算値MACの第2の配置例について説明する。
 図106には、フレームごとに完全性演算値MACが配置された画像データのデータ構造が示されている。このように、フレームごとに完全性演算値MACを送信する送信方式を、以下適宜、フレームMAC方式と称する。
 図示するように、フレームエンドの拡張パケットフッタ残りePF1に配置されている完全性演算値MACのみが有効になり、他の完全性演算値MACは無効とされる。また、完全性演算値MACは、フレームの最後の拡張パケットフッタePFを除く各ラインの拡張パケットヘッダePH、パケットデータ、および拡張パケットフッタePFから導出される。
 例えば、図107に示す構造の初期化ベクトルは、ラインMACおよびフレームMAC(CSI-2のみ)において共通とされる。そして、この初期化ベクトルは、図108に示すように、送信側から受信側へ送信される。
 図108では、追加フレーム番号が拡張パケットヘッダ外に格納されて送信される例が示されている。その他、追加フレーム番号およびフレーム番号が拡張パケットヘッダ外に格納されて送信されてもよい。その場合、フレーム番号はフレームスタート内にも格納されて送信されてもよい。なお、追加フレーム番号は一部のみ用いられてもよい。例えば、初期化ベクトル内の追加フレーム番号が24ビットの場合、実際の追加フレーム番号は16ビットのカウンタであってもよく、そのカウント値が初期化ベクトル内の追加フレーム番号の一部(例えば、LSB側16ビット)内に格納され、初期化ベクトル内の追加フレーム番号の残り(例えば、MSB側8ビット)内は規定値(例えば、08、18)が格納されてもよい。また、初期化ベクトル内の追加フレーム番号は全て規定値(例えば、024、124)が格納されてもよい。
 また、イメージセンサ1211からアプリケーションプロセッサ1212へ送信されて設定される初期化ベクトルの一部または全部は、イメージセンサ1211からアプリケーションプロセッサ1212へ送信されないように構成され、事前合意またはレジスタ設定などに基づいて設定されてもよい。
 図109に示すフローチャートを参照して、イメージセンサ1211が、フレームごとに完全性演算値MACを送信するフレームMAC方式の送信処理について説明する。
 ステップS761において、セキュリティ部1310は、セッション鍵を導出する。
 ステップS762において、メッセージカウンタ1308は、追加フレーム番号が用いられる上位カウント値を初期化して0に設定する。
 ステップS763において、メッセージカウンタ1308は、フレーム番号が用いられる下位カウント値を初期化して1に設定する。
 ステップS764において、拡張モード対応CSI-2送信回路1304は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS765に進む。
 ステップS765において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信するか否かを判定する。
 ステップS765において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信しないと判定した場合、処理はステップS764に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS765において、拡張モード対応CSI-2送信回路1304が、拡張パケットを送信すると判定した場合、処理はステップS766に進む。
 ステップS766において、拡張モード対応CSI-2送信回路1304は、拡張パケットを送信する。
 ステップS767において、メッセージカウンタ1308は、メッセージカウント値が最大値までカウントされたか否かを判定する。
 ステップS767において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされたと判定した場合、処理はステップS768に進む。ステップS768において、メッセージカウンタ1308は、メッセージカウント値を初期化して0に設定する。
 一方、ステップS767において、メッセージカウンタ1308が、メッセージカウント値が最大値までカウントされていないと判定した場合、処理はステップS769に進む。ステップS769において、メッセージカウンタ1308は、メッセージカウント値をインクリメントする。
 ステップS768およびステップS769の処理後、処理はステップS770に進み、拡張モード対応CSI-2送信回路1304は、フレーム内の拡張パケットを全て送信完了したか否かを判定する。
 ステップS770において、拡張モード対応CSI-2送信回路1304が、フレーム内の拡張パケットを全て送信完了していないと判定した場合、処理はステップS764に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS770において、拡張モード対応CSI-2送信回路1304が、フレーム内の拡張パケットを全て送信完了したと判定した場合、処理はステップS771に進む。
 ステップS771において、メッセージカウンタ1308は、下位カウント値が規定値までカウントされたか否かを判定する。
 ステップS771において、メッセージカウンタ1308が、下位カウント値が規定値までカウントされていないと判定した場合、処理はステップS772に進む。ステップS772において、メッセージカウンタ1308は、下位カウント値をインクリメントした後、処理はステップS764に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS771において、メッセージカウンタ1308が、下位カウント値が規定値までカウントされたと判定した場合、処理はステップS773に進む。ステップS773において、メッセージカウンタ1308は、上位カウント値をインクリメントした後、処理はステップS763に戻り、以下、同様の処理が繰り返して行われる。
 そして、ステップS764において、拡張モード対応CSI-2送信回路1304が、セッションを終了すると判定した場合、処理はステップS774に進む。
 ステップS774において、セキュリティ部1310は、共通セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 以上のように、図109で説明した処理は、フレーム番号を下位カウント値とし、追加フレーム番号を上位カウント値とする例である。ただし、完全性演算値の演算および送信、仮想チャネル、セッション鍵更新などについては省略されているが、上述したフローチャートの何れかの一部または全部と組み合わせられてもよい。他にフローチャートについても同様である。
 なお、フレーム番号は1または2のインクリメントが混在する可能性あるため、下位カウント値が規定値(例えば、最大値または最大値-1)である場合に上位カウント値をインクリメントすることが望ましい。ただし、フレーム番号のインクリメントが1のみであるならば、下位カウント値が最大値である場合に上位カウント値がインクリメントされればよい。
 なお、フレーム番号をイメージセンサ1211からアプリケーションプロセッサ1212へ送信することによって、アプリケーションプロセッサ1212は、この値を初期化ベクトルに用いることができる。従って、アプリケーションプロセッサ1212は、実装効率の観点からフレームカウンタを設けないように構成されてもよいし、安全性の観点からフレームカウンタを設けるように構成されてもよい。また、アプリケーションプロセッサ1212がフレームカウンタを設けるように構成される場合、イメージセンサ1211はフレーム番号を送信しないように構成されてもよい。即ち、初期化ベクトルに拡張仮想チャネルeVCが含まれる場合、フレーム番号の送信は必須要件でない。
 また、追加フレーム番号をイメージセンサ1211からアプリケーションプロセッサ1212へ送信することによって、アプリケーションプロセッサ1212は、この値を初期化ベクトルに用いることができる。従って、アプリケーションプロセッサ1212は、実装効率の観点から追加フレームカウンタを設けないように構成されてもよいし、安全性の観点から追加フレームカウンタを設けるように構成されてもよい。また、アプリケーションプロセッサ1212が追加フレームカウンタを設けるように構成される場合、イメージセンサ1211は追加フレーム番号を送信しないように構成されてもよい。
 フレームMAC方式の場合、初期化ベクトル内のメッセージカウント値は、規定の値(例えば、016、116)が格納されてもよいし、特定の拡張パケット(例えば、フレームスタートまたはフレームエンド)のメッセージカウント値が格納されてもよい。一方、ラインMAC方式の場合、初期化ベクトル内のメッセージカウント値は、メッセージカウント値が格納される。
 <完全性演算値MACの送信方式の選択>
 図110および図111を参照して、完全性演算値MACの送信方式の選択について説明する。
 図110は、イメージセンサ1211が、完全性演算値MACの送信方式を選択する選択処理を説明するフローチャートである。
 ステップS781において、拡張モード対応CSI-2送信回路1304は、ラインMAC方式で完全性演算値MACを送信するか否かを判定する。
 ステップS781において、拡張モード対応CSI-2送信回路1304が、ラインMAC方式で完全性演算値MACを送信すると判定した場合、処理はステップS782に進む。ステップS782において、拡張モード対応CSI-2送信回路1304は、ラインMAC方式を選択する。
 一方、ステップS781において、拡張モード対応CSI-2送信回路1304が、ラインMAC方式で完全性演算値MACを送信しないと判定した場合、処理はステップS783に進む。
 ステップS783において、拡張モード対応CSI-2送信回路1304は、フレームMAC方式で完全性演算値MACを送信するか否かを判定する。
 ステップS783において、拡張モード対応CSI-2送信回路1304が、フレームMAC方式で完全性演算値MACを送信すると判定した場合、処理はステップS784に進む。ステップS784において、拡張モード対応CSI-2送信回路1304は、フレームMAC方式を選択する。
 一方、ステップS783において、拡張モード対応CSI-2送信回路1304が、フレームMAC方式で完全性演算値MACを送信しないと判定した場合、処理はステップS785に進む。ステップS785において、拡張モード対応CSI-2送信回路1304は、完全性演算値MACを送信しない非MAC方式を選択する。
 ステップS782、ステップS784、またはステップS785の処理後、処理はステップS786に進む。ステップS786において、拡張モード対応CSI-2送信回路1304は、ラインMAC方式、フレームMAC方式、または非MAC方式のいずれかを示すセキュリティMAC情報(図111参照)を送信した後、処理は終了される。ただし、図111には、2ビット割り当てのセキュリティMAC情報が示されているが、異なるビット数の割り当て(例えば、1ビット、8ビット)でもよい。また、リザーブド領域データ(Reserved for future use)には、MAC値を送信しないこと(例えば、No MAC)が割り当てられてもよい。
 以上のように、イメージセンサ1211は、ラインMAC方式でMAC値を送信する(ラインMAC方式を選択)のか、フレームMAC方式でMAC値を送信する(フレームMAC方式を選択)のか、MAC値を送信しない(非MAC方式を選択)のかを自由に選択することができる。または、イメージセンサ1211は、アプリケーションプロセッサ1212と事前合意の上で、いずれかを選択してもよい。例えば、イメージセンサ1211は、最初はラインMAC方式を選択し、所定条件を満たす場合に他方式(例えば、フレームMAC方式)へ切り替えてもよい。例えば、最初はフレームMAC方式を選択し、所定条件を満たす場合に他方式(例えば、ラインMAC方式)へ切り替えてもよい。例えば、最初は非MAC方式を選択し、所定条件を満たす場合に他方式(例えば、フレームMAC方式)へ切り替えてもよい。
 そして、ラインMAC方式を選択するのか、フレームMAC方式を選択するのか、非MAC方式を選択するのかは、例えば、拡張パケットヘッダ(例えば、ePH2)内のSecurity Descriptor内や、埋込データ内、ユーザ定義データ内、読み出し応答内などに格納されてイメージセンサ1211から送信される。アプリケーションプロセッサ1212は、その受信に応じて、完全性演算値MACの送信方式の切り替えに対応することができる。
 なお、初期化ベクトルの混乱を避けるために、完全性演算値MACの送信方式を切り替える際は、フレームエンド送信の開始以後からフレームスタート送信の完了以前までに、切り替え後の送信方式をイメージセンサから送信されることが望ましいが、その限りではない。
 なお、ラインMAC方式なのかフレームMAC方式なのかを識別できるセキュリティMAC情報が初期化ベクトル内に含まれてもよい。その場合は、ラインMAC方式とフレームMAC方式との間で初期化ベクトルが確実に重複しないため、完全性演算値MACの送信方式の切り替えが円滑化される。セキュリティMAC情報が無いと、例えば完全性演算値MACの送信方式の切り替えタイミングによっては、初期化ベクトルの重複を避けるために、メッセージカウンタ1308内に格納される値の指定が必要になる場合もあり得る。
 <メッセージカウント値およびフレームカウント値について>
 図112乃至図115を参照して、メッセージカウント値およびフレームカウント値について説明する。
 図112には、メッセージカウント値およびフレームカウント値がロールオーバーする周期の一例が示されている。
 図112のAに示すように、60fpsかつ画素2160行の場合では、メッセージカウント値は、上位カウント値16bitおよび下位カウント値16bitとすることで、約9時間でロールオーバーする。同様に、上位カウント値20bitおよび下位カウント値16bitでは約6日で、上位カウント値24bitおよび下位カウント値16bitでは約96日で、上位カウント値28bitおよび下位カウント値16bitでは約4年で、上位カウント値32bitおよび下位カウント値16bitでは約69年でロールオーバーする。
 図112のBに示すように、60fpsかつ1毎インクリメントの場合では、フレームカウント値は、上位カウント値4bitおよび下位カウント値16bitとすることで、約5時間でロールオーバーする。同様に、上位カウント値8bitおよび下位カウント値16bitでは約78時間で、上位カウント値12bitおよび下位カウント値16bitでは約52日で、上位カウント値16bitおよび下位カウント値16bitでは約828日で、上位カウント値20bitおよび下位カウント値16bitでは約36年で、上位カウント値24bitおよび下位カウント値16bitでは約581年でロールオーバーする。
 図113のAに示すように、初期化ベクトル構成は、乱数で構成されるソルトを含む構成としてもよい。ただし、例えば乱数が生成されない場合、ソルトは規定値(例えば、032、132)でもよい。
 図113のBに示すように、初期化ベクトル構成は、メッセージカウント値を含まないで(フレームカウント値を含んで)構成されてもよい。また、Source IDまたはFinal destination IDを含んで構成されてもよい。なお、追加フレーム番号、フレーム番号、追加メッセージカウント値、およびメッセージカウント値を含んで構成されてもよい。
 図113のCに示すように、初期化ベクトル構成は、SPDMセッションIDを含んでもよい。一方、ビット幅を節約できる、Source IDとFinal destination IDとのXOR結果を含んでもよい。
 図113のDに示すように、SPDMセッションIDは、後述するReqSessionIDとRspSessionIDとで構成されてもよい。
 図113のEに示すように、初期化ベクトル構成は、セキュリティプロトコル情報(例えば、SPDM/HDCP)、拡張データタイプ、またはデータタイプを含んでもよい。
 なお、図133に示された各要素の並び順は交換されてもよい。MSB側(上位カウント値)とLSB側(下位カウント値)とは交換されてもよい。一部の要素が他要素(例えば、ソルトやePH内パラメータ、上述した初期化ベクトル構成要素などの一部または全部)に置き換えられてもよい。
 図114は、アプリケーションプロセッサ1212が、メッセージカウント値を用いてデータ検証を行うデータ検証処理を説明するフローチャートである。
 ステップS791において、セキュリティ部1326は、セッション鍵を導出する。
 ステップS792において、データ検証部1325は、プロセッサメッセージカウント値を初期化して0に設定する。
 ステップS793において、データ検証部1325は、プロセッサ追加メッセージカウント値を初期化して0に設定する。
 ステップS794において、拡張モード対応CSI-2受信回路1322は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS795に進む。
 ステップS795において、データ検証部1325は、イメージセンサ1211から追加メッセージカウント値を受信したか否かを判定する。ステップS795において、データ検証部1325が、イメージセンサ1211から追加メッセージカウント値を受信したと判定した場合、処理はステップS796に進む。
 ステップS796において、データ検証部1325は、プロセッサ追加メッセージカウント値と、イメージセンサ1211の追加メッセージカウント値との双方が不一致であるか否かを判定する。
 ステップS796において、データ検証部1325が、プロセッサ追加メッセージカウント値と、イメージセンサ1211の追加メッセージカウント値との双方が不一致でない(一致している)と判定した場合、処理はステップS797に進む。一方、ステップS795において、データ検証部1325が、イメージセンサ1211から追加メッセージカウント値を受信していないと判定した場合も、処理はステップS797に進む。
 ステップS797において、データ検証部1325は、イメージセンサ1211からメッセージカウント値を受信したか否かを判定する。ステップS797において、データ検証部1325が、イメージセンサ1211からメッセージカウント値を受信したと判定した場合、処理はステップS798に進む。
 ステップS798において、データ検証部1325は、プロセッサメッセージカウント値と、イメージセンサ1211のメッセージカウント値との双方が不一致であるか否かを判定する。
 ステップS798において、データ検証部1325が、プロセッサメッセージカウント値と、イメージセンサ1211のメッセージカウント値との双方が不一致でない(一致している)と判定した場合、処理はステップS799に進む。
 ステップS799において、データ検証部1325は、プロセッサメッセージカウント値が最大値までカウントされたか否かを判定する。ステップS799において、データ検証部1325が、プロセッサメッセージカウント値が最大値までカウントされたと判定した場合、処理はステップS800に進む。
 ステップS800において、データ検証部1325は、プロセッサメッセージカウント値を初期化して0に設定する。
 ステップS801において、データ検証部1325は、プロセッサ追加メッセージカウント値が最大値までカウントされたか否かを判定する。ステップS801において、データ検証部1325が、プロセッサ追加メッセージカウント値が最大値までカウントされたと判定した場合、処理はステップS802に進む。
 ステップS802において、セキュリティ部1326は、セッション鍵を更新する。
 ステップS803において、データ検証部1325は、プロセッサ追加メッセージカウント値を初期化して0に設定する。その後、処理はステップS794に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS797において、データ検証部1325が、イメージセンサ1211からメッセージカウント値を受信していないと判定した場合、処理はステップS794に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS799において、データ検証部1325が、プロセッサメッセージカウント値が最大値までカウントされていないと判定した場合、処理はステップS804に進む。ステップS804において、データ検証部1325は、プロセッサメッセージカウント値をインクリメントし、その後、処理はステップS794に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS801において、データ検証部1325が、プロセッサ追加メッセージカウント値が最大値までカウントされていないと判定した場合、処理はステップS805に進む。ステップS805において、データ検証部1325は、プロセッサ追加メッセージカウント値をインクリメントし、その後、処理はステップS794に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS796において、データ検証部1325が、プロセッサ追加メッセージカウント値と、イメージセンサ1211の追加メッセージカウント値との双方が不一致であると判定した場合、処理はステップS806に進む。また、ステップS798において、データ検証部1325が、プロセッサメッセージカウント値と、イメージセンサ1211のメッセージカウント値との双方が不一致であると判定した場合も、処理はステップS806に進む。
 ステップS806において、データ検証部1325は、異常が発生したとして異常時処理を行い、処理はステップS807に進む。また、ステップS794において、拡張モード対応CSI-2受信回路1322が、セッションを終了すると判定した場合も、処理はステップS807に進む。
 ステップS807において、セキュリティ部1326は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 図115は、アプリケーションプロセッサ1212が、フレームカウント値および追加フレームカウント値を初期化ベクトルに反映する反映処理を説明する図である。
 ステップS811において、セキュリティ部1326は、セッション鍵を導出する。
 ステップS812において、データ検証部1325は、プロセッサフレームカウント値を初期化して1に設定する。
 ステップS813において、データ検証部1325は、プロセッサ追加フレームカウント値を初期化して0に設定する。
 ステップS814において、データ検証部1325は、イメージセンサ1211からフレームカウント値を受信したか否かを判定し、イメージセンサ1211からフレームカウント値を受信したと判定されるまで処理を待機する。そして、ステップS814において、データ検証部1325が、イメージセンサ1211からフレームカウント値を受信したと判定した場合、処理はステップS815に進む。
 ステップS815において、セキュリティ部1326は、フレームカウント値を初期化ベクトルへ反映する。
 ステップS816において、データ検証部1325は、イメージセンサ1211から追加フレームカウント値を受信したか否かを判定し、イメージセンサ1211から追加フレームカウント値を受信したと判定されるまで、処理を待機する。
 そして、ステップS816において、データ検証部1325が、イメージセンサ1211からフレーム追加カウント値を受信したと判定した場合、処理はステップS817に進む。
 ステップS817において、セキュリティ部1326は、追加フレームカウント値を初期化ベクトルへ反映する。
 ステップS818において、データ検証部1325は、フレームカウント値および追加フレームカウント値が規定値までカウントされたか否かを判定する。ステップS818において、データ検証部1325は、フレームカウント値および追加フレームカウント値が規定値までカウントされたと判定した場合、処理はステップS819に進む。
 ステップS819において、セキュリティ部1326は、セッション鍵を更新する。
 ステップS819の処理後、または、ステップS818において、データ検証部1325は、フレームカウント値および追加フレームカウント値が規定値までカウントされていないと判定した場合、処理はステップS820に進む。
 ステップS820において、拡張モード対応CSI-2受信回路1322は、セッションを終了するか否かを判定し、セッションを終了しないと判定された場合、処理はステップS814に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS820において、拡張モード対応CSI-2受信回路1322が、セッションを終了すると判定した場合、処理はステップS821に進む。
 ステップS821において、セキュリティ部1326は、セッション鍵を破棄またはクリーンアップし、その後、処理は終了される。
 なお、メッセージカウント値は1ずつインクリメントされるが、フレームカウント値(フレーム番号)のインクリメントは、シーケンス内で1または2のインクリメントが自由に混在する可能性がある。そのため、フレームカウント値および追加フレームカウント値は、イメージセンサから送信された値を優先して使用されることが望ましい。
 一方、メッセージカウント値および追加メッセージカウント値は、復号演算が迅速に開始されるために、イメージセンサ1211から送信された値よりもアプリケーションプロセッサ1212がカウントした値が優先して使用されてもよい。なお、図114および図115のフローチャートを参照して説明した処理は、セッション鍵を更新しないように構成されてもよい。
 略語はそれぞれ、eP:extended Packet、eVC:extended Virtual Channel、eDT:extended Data Type、である。AES-GCM/GMAC向けの初期化ベクトル例を示したが、本技術は、AES以外のブロック暗号(例えば、DES:Data Encryption Standard、トリプルDES)向けや、GCM/GMAC以外のアルゴリズム(例えば、CCM:Counter with Cipher block chaining-MAC)向けや、異なる鍵長(例えば、128 bits以外)向けや、異なるIV長(例えば、96 bits以外)向けに、必要に応じて構成要素や並び順や数値などが調整された上で適用されてもよい。
 一般に公開されているDMTF(Distributed Management Task Force)によるSPDM仕様内のKEY_EXCHANGE request message内のRandomDataまたはOpaqueData、Successful KEY_EXCHANGE_RSP response message内のRandomData、PSK_EXCHANGE request message内のRequesterContextまたはOpaquePSKData、PSK_EXCHANGE_RSP message内のResponderContextの一部または全部がソルトとして用いられてもよい。
 一方、セッションIDは、例えば、PSK_EXCHANGE_RSP message内またはKEY_EXCHANGE_RSP response message内のParam2内に1Byteで格納されて、SPDMレスポンダ(例えば、イメージセンサ)からSPDMリクエスタへ送信される。なお、PSK_EXCHANGE_RSP messageとKEY_EXCHANGE_RSP response messageとはSPDMオプションであるが、SPDMセッション鍵を導出するためには共通鍵暗号方式に対応するPSK_EXCHANGE_RSP messageまたは公開鍵暗号方式に対応するKEY_EXCHANGE_RSP response messageが実質的に必須であり、そのセッションIDが初期化ベクトル内に含まれてもよい。ただし、セッションIDは、同じエンドポイントに対する以前の5つのセッションまたはアクティブなセッションとは異なることが望ましい。
 また、PSK_EXCHANGE request messageまたはKEY_EXCHANGE request messageがリクエスタ側セッションIDとしてReqSessionID(例えば、2バイト)を含み、PSK_EXCHANGE_RSP response messageまたはSuccessful KEY_EXCHANGE_RSP response messageがレスポンダ側セッションIDとしてRspSessionID(例えば、2バイト)を含み、これら2つを連結した(例えば、4バイトの)session ID = Concatenate (ReqSessionID, RspSessionID) がリクエスタとレスポンダとの間のユニークなセッションIDとして用いられてもよい。その場合、複数種類のセッション間で、セッション鍵またはメッセージカウンタが共通化されることが可能になる。
 一方、ディスプレイ用途(例えば、DSI-2)では、SPDMでなくHDCP(High-bandwidth Digital Content Protection)がセキュリティプロトコルとして用いられてもよいため、SPDMなのかHDCPなのかを識別できるセキュリティプロトコル情報(図116参照)が初期化ベクトル内に含まれてもよい。ただし、図116には、2ビット割り当てのセキュリティプロトコル情報が示されているが、異なるビット数の割り当て(例えば、1ビット、8ビット)でもよい。また、リザーブド領域データ(Reserved for future use)には、セキュリティプロトコルに対応しないこと(例えば、No security protocol)が割り当てられてもよい。
 例えば、新たなフォーマット内、ePHフォーマット(例えば、Reserved、eVC、eDT、Security Descriptor)内またはセッションID内などの何れかに、SPDM専用またはHDCP専用のビットが割り当てられて定義され、それが初期化ベクトル内に含まれてもよい。その場合、複数種類のセキュリティプロトコル間で、セッション鍵またはメッセージカウンタが共通化されることが可能になる。同様に、拡張パケットヘッダ内の一部が初期化ベクトル内に含まれてもよく、例えば、Security Descriptor(例えば、Service Descriptorと称されてもよい)が初期化ベクトル内に含まれてもよい。その場合、異なるSecurity Descriptor間で、セッション鍵またはメッセージカウンタが共通化されることが可能になる。
 イメージセンサ1211またはアプリケーションプロセッサ1212は、図117に示すようなSource IDまたはFinal Destination IDとして、事前交換ではなく、拡張パケットヘッダ(例えば、ePH4)内に格納されて受信された値を用いてもよい。
 なお、3つ以上の機器(例えば、複数のカメラ、複数のディスプレイ)をケーブルで繋いで通信する接続形態として、前の機器に次の機器を「数珠繋ぎ」に連結するデイジーチェーン方式があり、Source ID(ソースID)およびFinal Destination ID(最終目的地ID)が初期化ベクトル内に含まれることによって、複数の機器間で、セッション鍵またはメッセージカウンタが共通化されることが可能になる。
 ただし、Source IDとFinal Destination IDとは、例えば、イメージセンサへのコマンドなのか、イメージセンサからのデータなのか、によって入れ替わる。これを避けるために、初期化ベクトル内のSource IDおよびFinal Destination IDを、例えば、Host IDおよびDevice IDと定義してもよい。ただし、例えばイメージセンサはホストにもデバイス(非ホスト)にもなり得るので、Source IDおよびFinal Destination IDと定義した方が望ましい場合もある。
 そのため、例えば、Source IDおよびFinal destination IDを論理演算(例えば、XOR)したIDが用いられてもよい。その場合、初期化ベクトル内に定義されるビット幅が節約される効果もある。なお、Source IDまたはFinal Destination IDは、I2CまたはI3Cの場合、上述した図117に示したようにMaster addressまたはSlave addressが格納されてもよい。
 なお、例えば、上述した図86のデータ構造でイメージセンサ1211からアプリケーションプロセッサ1212へ画像データを送信する場合、E2E protectionを実現するために、イメージセンサ1211のデバイスIDがSource IDとして、アプリケーションプロセッサ1212のデバイスIDがFinal Destination IDとして格納される。
 一方、例えば、上述した図86のデータ構造でアプリケーションプロセッサ1212からイメージセンサ1211へコマンド命令を送信する場合、E2E protectionを実現するために、アプリケーションプロセッサ1212のデバイスIDがSource IDとして、イメージセンサ1211のデバイスIDがFinal Destination IDとして格納される。その場合、図2に示したようなSerDes装置25またはSerDes装置26のデバイスIDは、中間的なDestination IDであり、Final Destination IDと区別されることが望ましい場合もある。ただし、場合によっては、IVフォーマットのFinal Destination IDは、Destination IDと置き換えられてもよい。また、eVCをVCと置き換えられてもよく、eDTをDTと置き換えられてもよい。
 また、eVCまたはVCは、Video stream、Audio stream、Camera stream、またはDisplay Streamなどの何れかのID(Stream ID)であってもよい。また、Video streamでなくAudio streamがストリームとして用いられてもよいため、Video streamなのかAudio streamなのかを識別できるストリーム情報が初期化ベクトル内に含まれてもよい。その場合、Video streamとAudio streamとの間で、セッション鍵またはメッセージカウンタが共通化されることが可能になる。
 ナンス値の一部または全部は、異なるバーチャルチャネルのデータ内(例えば、フレームスタート内、埋込データ内、画像データ内、フレームエンド内)へ格納されて送信されてもよい。これは、例えば、特定のバーチャルチャネルのデータ内へナンス値の一部または全部を格納する余地がない場合に有効である。
 一方、ナンス値の一部または全部は、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルの、パケットデータ(Generic Short Packet Data Types、Generic Long Packet Data Types)またはユーザ定義データ(User Defined Byte-based Data)またはリザーブド領域データ(Reserved for future use)の少なくとも一部内へ格納されて送信されてもよい。つまり、それらは非画像データ内に格納されてもよい。
 なお、以上の説明では、撮像開始を明記しているが、撮像終了について明記してない。これは撮像方式がグローバルシャッタ方式なのかローリングシャッタ方式なのか等によって異なるためである。例えば、グローバルシャッタ方式であれば、全画素を一斉に撮像できるので、次処理の前までに撮像終了してもよいし、フレーム内の最初の画像データを送信する前までに撮像終了してもよい。一方、ローリングシャッタ方式であれば、画素の各行で実行される撮像および高速データ送信の少なくとも一部が重複して実行(並列実行)されてもよいため、フレーム内の最後の画像データを送信する前までに撮像終了すればよい。また、撮像開始の位置は一例であり、フレーム内の最初の画像データを送信する前の位置まで遅らせて実行されてもよい。
 <異常の有無を検出し、検出結果に応じたメッセージを、特異メッセージとしてアプリケーションプロセッサに送信するイメージセンサの詳細な構成例>
 車両に搭載され、複数の基板が積層された構造の撮像素子における故障を検出できるようにする撮像装置において、第2の基板に設けられた行駆動部が、第1の基板に設けられた画素アレイの画素信号の蓄積および読み出しを制御する制御信号を出力するタイミングと、行駆動部より出力された制御信号が、画素アレイを通過して、検出されるタイミングとが一致するか否かにより、故障を検出する技術が開示されている(国際公開第2017/209221号参照)。
 しかしながら、運転支援処理中や自動運転処理中の場合、センサの異常は、死傷事故へと直結する状態を引き起こすので、上述した故障検出によりセンサの異常が検出されるときには、一刻も早くセンサから車両へと警告する必要がある。また、上述した故障検出が実行される場合、センサの異常が検出されたときに、センサが突然画像データのストリームを停止すると、タイミングによっては運転中に画像データが途絶えてしまうので、運転支援処理や自動運転処理が中断することになるので、危険を誘発させる恐れがある。
 一方、より精度の良い異常検出用の信号を出力可能な固体撮像装置を提供するために、アナログ信号である画素信号を出力する画素と、画素信号をデジタル信号に変換してデジタル画素信号を生成する読み出し部と、デジタル画素信号を記憶する記憶部と、第1検査信号を記憶部に出力して、記憶部に記憶させる第1検査信号出力部とを有し、記憶部に記憶された第1検査信号は、あるフレームのデジタル画素信号の出力が終了した後、かつ、次のフレームのデジタル画素信号の出力を開始する前の期間に記憶部から出力されることを特徴とする技術が開示されている(特開2018-121325号公報参照)。
 このような技術を適用した場合、撮像装置外の画像処理部が第1検査信号と期待値との一致判定をすることになるが、一致判定に時間を要する。また、画像処理部の判定結果は撮像装置には分からない。加えて、第1検査信号は、ノイズ、干渉、および攻撃者による攻撃の少なくともいずれかによって改竄される可能性があり、正常であるにも拘わらず異常があると判定されたり、異常であるにも拘わらず正常であると判定されたりする可能性があった。
 すなわち、いずれにおいても、走行、歩行、および飛行などの推進が可能な車両、ロボット、ドローンなどの推進を制御する推進装置おいて、センサの異常に対して適切な対応ができず、安全性が低下する恐れがあった。
 そこで、イメージセンサ1211が、異常の有無を検出し、検出結果に応じたメッセージを、特異メッセージとして、画像データを送信する高速データ通信により、アプリケーションプロセッサ1212に送信するようにしてもよい。
 このような構成により、イメージセンサ1211の異常の有無に係るメッセージである特異メッセージをアプリケーションプロセッサ1212に対して迅速に通知させることが可能となる。
 結果として、アプリケーションプロセッサ1212においては、イメージセンサ1211の異常に対して、迅速に、かつ、適切な対応を実現することが可能となり、より安全性を高めることが可能となる。
 ここで、図118を参照して、異常の有無を検出し、検出結果に応じたメッセージを、特異メッセージとしてアプリケーションプロセッサに送信するイメージセンサ1211の詳細な構成例について説明する。図118は、異常の有無を検出し、検出結果に応じたメッセージを、特異メッセージとしてアプリケーションプロセッサに送信するイメージセンサ1211の詳細な構成例を示すブロック図である。
 図118のイメージセンサ1211は、画素1501、AD変換器1502、画像処理部1503、拡張モード対応CSI-2送信回路1504、物理層処理部1505、I2C/I3Cスレーブ1506、記憶部1507、妨害検出部1508、障害検出部1509、セキュリティ部1510、侵害検出部1511、および温度検出部1512を備えて構成される。
 なお、画素1501、AD変換器1502、画像処理部1503、拡張モード対応CSI-2送信回路1504、物理層処理部1505、I2C/I3Cスレーブ1506、および記憶部1507は、他の実施の形態において対応する画素1301、AD変換器1302、画像処理部1303、拡張モード対応CSI-2送信回路1304、物理層処理部1305、I2C/I3Cスレーブ1306、および記憶部1307と同様の機能を備えた構成であるので、その詳細な説明は省略する。
 妨害検出部1508は、画素1501、AD変換器1502、および画像処理部1503の少なくともいずれかと電気的に直接的に、または、間接的に接続されている。尚、図119においては、妨害検出部1508は、画素1501、AD変換器1502、および画像処理部1503の全てと接続される例が示されているが、少なくともそのいずれかと接続されていればよい。
 妨害検出部1508は、画素1501において受光した光量に応じた光電変換により出力されるアナログ信号からなる画素信号、AD変換器1502によりデジタル信号に変換された画素信号、および、画像処理部1503より出力される画像処理された画像データの少なくともいずれかの出力結果に基づいて、イメージセンサ1211の画像を実質的に無効化または改竄する光照射攻撃(妨害)の有無から異常を検出し、検出結果に基づいた特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 このような構成により、アプリケーションプロセッサ1212は、高速データ通信により、妨害の有無に応じた特異メッセージを取得することで、特異メッセージに応じた迅速な対応が可能となる。
 障害検出部1509は、例えば、通信経路または物理層処理部1505に対して電気的に直接接続または間接接続される。
 障害検出部1509は、イメージセンサ1211に対して、例えば、電力注入、電磁照射(注入)、レーザ照射(注入)の何れかによって、イメージセンサ1211内の一部または全部の動作を無効化させる、誤動作させる、偽情報を流入させる、および情報を流出させる等の注入攻撃の有無を検出し、検出結果に基づいた特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 また、障害検出部1509は、イメージセンサ1211に悪影響を与えるハードウエアトロイ(つまり、異物)を挿入することで、イメージセンサ1211内の一部または全部の動作を無効化させる、誤動作させる、偽情報を流入させる、および情報を流出させる等の挿入攻撃の有無を検出し、検出結果に基づいた特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 このような構成により、アプリケーションプロセッサ1212は、高速データ通信により、障害の有無に応じた特異メッセージを取得することで、特異メッセージに応じた迅速な対応が可能となる。
 侵害検出部1511は、例えば、セキュリティ部1510に対して電気的に直接接続または間接接続され、セキュリティ部1510の異常を検出し、検出結果に基づいた特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 セキュリティ部1510は、例えば、イメージセンサ1211内の一部または全部の動作を無効化させたり、誤動作させたり、偽情報を流入させたり、情報を流出させる注入攻撃に加えて、イメージセンサ1211に用いられる電力またはイメージセンサ1211から生じる電磁を解析することでイメージセンサ1211内情報を流出させる解析攻撃(電力解析攻撃、電磁解析攻撃)を受ける可能性がある。
 そこで、侵害検出部1511は、注入攻撃に伴うセキュリティ部1510内の改竄の有無を論理的に検出したり、電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の付近に存在するか否かを物理的に検出し、検出結果に基づいた特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 このような構成により、アプリケーションプロセッサ1212は、高速データ通信により、侵害の有無に応じた特異メッセージを取得することで、特異メッセージに応じた迅速な対応が可能となる。
 温度検出部1512は、イメージセンサ1211の温度を検出し、動作保証温度の上限値(第1閾値)より低く、かつ、下限値(第2閾値)よりも高い状態であるか否かに基づいて、特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 このような構成により、アプリケーションプロセッサ1212は、高速データ通信により、イメージセンサ1211が動作温度に応じた特異メッセージを受信することで、特異メッセージに応じた迅速な対応が可能になる。
 メッセージカウンタ1513は、基本的な機能において、メッセージカウンタ1308(図76)と同様であるが、さらに、メッセージカウント値として、インクリメントまたはデクリメントする第1カウンタと、インクリメントまたはデクリメントする第2カウントとを用いる。メッセージカウンタ1513は、第1カウンタと第2カウンタとを用いることにより、メッセージカウント値に対する不具合や改竄に対する耐性を向上させる。尚、メッセージカウンタ1513の詳細については、図150乃至図152を参照して後述する。もちろん、メッセージカウンタ1513の代わりに、メッセージカウンタ1308(第1カウンタと第2カウントとのうちの何れか一方のみ)が用いられてもよい。
 <妨害検出部による妨害検出(その1)>
 イメージセンサ1211に対して、例えば、所定の強度よりも高い強度の可視光、赤外光、レーザ光などの何れかが照射されると、イメージセンサ1211により撮像される画像を実質的に無効化または改竄されることになる。
 このため、例えば、所定の強度よりも高い強度の可視光、赤外光、レーザ光などの何れかが検出されるような場合、光照射攻撃(妨害)に起因する異常が発生したものとみなすことができる。
 そこで、出力結果に基づいて、所定の強度よりも高い強度の可視光、赤外光、レーザ光などの何れかが検出されるような場合、妨害検出部1508は、異常が発生したことを示すメッセージを特異メッセージとして、画像データを送信する高速データ通信により、アプリケーションプロセッサ1212に通知する。
 これにより、イメージセンサ1211に異常が発生したことを示す特異メッセージが、画像データを送信する高速データ通信により通知されることになるので、アプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 より具体的には、無効化の妨害をイメージセンサ1211が受けた場合、所定範囲(有効画素領域の一部または全部)内の画素群それぞれのR、G、B、IRなどの少なくとも何れかの画素値は、飽和に近づくことになる。
 つまり、所定範囲内の画素群の画素値が第1閾値(上限値)以上になる。そこで、所定範囲内の画素群の画素値が第1閾値(上限値)以上になることが検出される場合、例えば、イメージセンサ1211の画素の画素値が飽和に近づいていることを示す異常メッセージが特異メッセージとしてアプリケーションプロセッサ1212に送信されるようにする。
 なお、光照射攻撃に限らず、広い範囲(所定範囲)の画素の画素値が飽和に近づいているような場合、広い範囲の画素に異常が発生していることを示す異常メッセージが特異メッセージとして送信されるようにしてもよい。このような特異メッセージの通知は、例えば、イメージセンサ1211に対して妨害光が偶発的に照射された場合でも有効である。
 一方、例えば、塗料、暗幕、煙幕、および遮蔽材などの少なくとも何れかによってイメージセンサ1211の表面(受光面)が遮蔽されて、イメージセンサ1211により撮像される画像を実質的に無効化する光遮蔽攻撃(妨害)もある。
 そこで、イメージセンサ1211の表面が遮蔽されたことが検出されるような場合、イメージセンサ1211からアプリケーションプロセッサ1212に対して異常を示すメッセージとして特異メッセージが通知されるようにする。
 これにより、特異メッセージを受信するアプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 より具体的には、遮蔽による無効化の妨害をイメージセンサ1211が受けた場合、所定範囲内の画素群それぞれのR、G、B、IRなどの少なくとも何れかの画素値は、第2閾値(下限値)に近づくことになる。
 すなわち、遮蔽による無効化の妨害をイメージセンサ1211が受けた場合、所定範囲内の画素群の画素値が第2閾値以下になり遮蔽されたことが検出される。そこで、遮蔽されたことが検出された場合、例えば、イメージセンサ1211は画素値が第2閾値に近づいている異常を示す異常メッセージを特異メッセージとして送信する。
 なお、光遮蔽攻撃に限らず、広い範囲(所定範囲)内の画素値が第2閾値(下限値)に近づいている場合、異常メッセージが送信されるようにしてもよい。このような特異メッセージの通知は、例えば、イメージセンサ1211の表面(受光面)が偶発的に遮蔽(妨害)された場合にも有効である。
 尚、妨害検出部1508の検出結果に基づいて、イメージセンサ1211の無効化の妨害を示す異常が検出されない場合、正常であることを示すメッセージが特異メッセージとして送信されるようにしてもよいし、特異メッセージが送信されないようにしてもよい。
 また、妨害検出部1508が用いる第1閾値(上限値)および第2閾値(下限値)は、例えば、記憶部1507に予め記憶させるようにしてもよい。この場合、妨害検出部1508は、記憶部1507に記憶された第1閾値(上限値)および第2閾値(下限値)を読み出して用いるようにしてもよい。また、第1閾値(上限値)および第2閾値(下限値)は、任意に設定できるようにしてもよい。
 (妨害検出部による妨害検出処理(その1))
 次に、図119のフローチャートを参照して、妨害検出部1508による妨害検出処理(その1)について説明する。
 ステップS1001において、画素1501による撮像処理、AD変換器1502によるAD変換処理、および画像処理部1503による画像処理の少なくともいずれかの処理が実行され、処理結果が妨害検出部1508に出力される。
 ステップS1002において、妨害検出部1508は、画素1501による撮像処理、AD変換器1502によるAD変換処理、および画像処理部1503による画像処理の少なくともいずれかの処理結果に基づいて、所定範囲内の画素群の画素値が第1閾値(上限値)以上である(上限値よりも大きい)か否かを判定する。
 ステップS1002において、所定範囲内の画素群の画素値が第1閾値(上限値)以上であると判定された場合、処理は、ステップS1003に進む。
 ステップS1003において、妨害検出部1508は、所定範囲内の画素群の画素値が第1閾値(上限値)以上であり、所定の強度よりも高い強度の可視光、赤外光、レーザ光などの何れかが検出されており、光照射攻撃(妨害)に起因する異常が発生していることを示す第1異常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 また、ステップS1002において、所定範囲内の画素群の画素値が第1閾値(上限値)以上ではないと判定された場合、処理は、ステップS1004に進む。
 ステップS1004において、妨害検出部1508は、画素1501による撮像処理、AD変換器1502によるAD変換処理、および画像処理部1503による画像処理の少なくともいずれかの処理結果に基づいて、所定範囲内の画素群の画素値が第2閾値(下限値)以下である(下限値よりも小さい)か否かを判定する。
 ステップS1004において、所定範囲内の画素群の画素値が第2閾値(下限値)以下であると判定された場合、処理は、ステップS1005に進む。
 ステップS1005において、妨害検出部1508は、所定範囲内の画素群の画素値が第2閾値(下限値)以下であり、例えば、塗料、暗幕、煙幕、および遮蔽材などの少なくとも何れかによってイメージセンサ1211の表面(受光面)が遮蔽されて、イメージセンサ1211により撮像される画像を実質的に無効化する光遮蔽攻撃(妨害)に起因する異常が発生していることを示す第2異常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 さらに、ステップS1004において、所定範囲内の画素群の画素値が第2閾値(下限値)以下ではないと判定された場合、処理は、ステップS1006に進む。
 ステップS1006において、妨害検出部1508は、イメージセンサ1211により撮像される画像を実質的に無効化する攻撃(妨害)に起因する異常が発生していないことを示す正常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 以上の処理により、イメージセンサ1211に対する攻撃(妨害)が発生するような場合、画像データを送信する高速データ通信により通知されることになるので、アプリケーションプロセッサ1212において、迅速、かつ適切な対応を実現することが可能となる。
 <妨害検出部による妨害検出(その2)>
 以上においては、イメージセンサ1211に対する、光の強度の変化による攻撃(妨害)の有無を検出して特異メッセージとして通知する例について説明してきた。
 イメージセンサ1211が、ToF(Time of Flight)法を用いた測距センサとして機能される際、光源より照射されるレーザ光の発光パターンに応じた受光パターンを検出することで自らが照射した光源の反射光として認識し、他の光源からの受光パターンと区別する。この際、測距センサは、自らの光源から照射した光の照射タイミングと受光タイミングとの差分に基づいた往復時間により画素単位で測距を実現し、測距結果から距離画像を生成する。
 ここで、距離画像とは、被写体の測距センサからの奥行き方向の距離を画素ごとに検出し、検出した距離に基づく距離画素信号からなる画像を指す。その場合に測距センサは、例えば、照明部、撮像部、制御部、表示部、記憶部を備えた構成として実現される。
 しかしながら、この発光パターン(受光パターン)が何らかの原因で改竄されると、自らの光源より照射された発光パターンを認識できないので、適切な測距を実現することができない状態となり、異常が発生した状態となる。
 そこで、妨害検出部1508は、記憶部1507に予め発光パターン(受光パターン)を格納パターンとして記憶しておき、実際にイメージセンサ1211により受光された受光パターンとの比較により異常の発生の有無を検出するようにしてもよい。
 照明部は、照明制御部とレーザ光源を備える。照明制御部は、制御部の制御に基づいてレーザ光源が照射光(レーザ光)を照射するパターンを制御する。例えば、照明制御部は制御部から供給される照射信号に含まれる照射コードに従ってレーザ光源が照射光を照射するパターン(発光パターン)を制御する。
 撮像部は、レンズ、撮像素子、および信号処理回路を備える。レンズは入射光を撮像素子の撮像面に結像させる。レンズの構成は任意であり、例えば、複数のレンズ群により構成されていてもよい。撮像素子は、例えば、ToF法を用いたCMOS(Complementary Metal Oxide Semiconductor)イメージセンサから成るイメージセンサ1211により実現される。撮像素子は、制御部の制御に基づいて被写体の撮像を行い、その結果得られた画像信号を信号処理回路に供給する。例えば、撮像素子は、制御部から供給される参照信号と、レーザ光源から照射された照射光が被写体により反射された反射光を含む受信光との相関を示す画素信号を生成し、信号処理回路に供給する。なお、参照信号は、受信光との相関の検出に用いるパターンを示す参照コードを含む。
 ここで、受光波形パターン、受光スポットパターン、受光ドットパターン、受光軌跡パターンなどの何れかの受光パターンについて、受信光からイメージセンサ1211が抽出した結果に異常がある場合、撮像素子(画素および変換器に相当)および信号処理回路(画像処理部に相当)を含んで構成される撮像部(イメージセンサ1211に相当)から制御部(アプリケーションプロセッサ1212に相当)に対して異常メッセージが送信されてもよい。
 一方、イメージセンサ1211内の記憶部内に格納パターンを格納しないで、特異メッセージとして受光パターンが送信されてもよい。その場合、イメージセンサ1211外の記憶部(例えば、アプリケーションプロセッサ1212)内に格納パターンが格納されることによって、受光パターンとの比較がなされて正常か異常かが判断される。
 <受光パターンについて>
 受光パターンそのものが送信される場合、受光してない画素に関連する情報が高速データ送信されないようにしてもよい。例えば、図120で示されるような白丸印で示される画素が受光される画素を示すドットパターンである場合、白丸印で示される受光されたドットパターンに関連する情報のみが高速データ送信されるようにしてもよい。例えば、受光してない画素は、受光スポットパターンや受光ドットパターンが正常か異常かを判断するために用いられる。その場合、イメージセンサ1211は、高速データ送信するデータ量を最小限に抑えつつ、受光パターンが正常か異常かを判断できる。
 また、周期的な受光ドットパターンであれば、記憶部内に格納される格納パターンの種類を減らすことが可能になる。例えば、図121で示されるような白丸印で示される第1の画素値で受光される画素と、斜線の丸印で示される第2の画素値で受光される画素と、が受光される画素を示すドットパターンである場合、奇数行のドットパターンと偶数行のドットパターンとの2行分のドットパターンが記憶部1507内に格納されれば、実際の受光パターンが正常か異常かを判断することが可能となる。このように、周期的な受光ドットパターンなどでは、繰り返し表される行数分のドットパターンだけを記憶部1507に記憶させるようにすることで、格納パターンが記憶されることになるので、記憶容量を削減することが可能となる。
 さらに、受光波形パターンについては、記憶部1507内に格納パターンが格納されることによって正常か異常かが判断されてもよいが、受光波形パターンは画像データや画像パターンとは無関係である。そのため、受光波形パターンで異常の有無を判断させるようにすることで、受光スポットパターン、受光ドットパターン、受光軌跡パターンなどの何れかのパターンが複雑であっても、記憶部1507の容量に対する影響を低減することが可能となる。
 (妨害検出部による妨害検出処理(その2))
 次に、図122のフローチャートを参照して、妨害検出部1508による受光パターンを用いた妨害検出処理(その2)について説明する。
 ステップS1031において、画素1501による撮像処理、AD変換器1502によるAD変換処理、および画像処理部1503による画像処理の少なくともいずれかの処理が実行され、処理結果が妨害検出部1508に出力される。
 ステップS1032において、妨害検出部1508は、画素1501による撮像処理、AD変換器1502によるAD変換処理、および画像処理部1503による画像処理の少なくともいずれかの処理結果に基づいて、受光パターンを抽出する。
 ステップS1033において、妨害検出部1508は、記憶部1507に予め記憶されている正常時の受光パターンである格納パターンを読み出して、受光パターンと比較する。
 ステップS1034において、妨害検出部1508は、受光パターンと格納パターンとの比較結果に基づいて、受光パターンと格納パターンとが一致しているか否かを判定する。
 ステップS1034において、受光パターンと格納パターンとが一致していると判定された場合、処理は、ステップS1035に進む。
 ステップS1035において、妨害検出部1508は、イメージセンサ1211により実現される測距センサには異常が発生していないものとみなし、異常が発生していないことを示す正常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 ステップS1034において、受光パターンと格納パターンとが一致していないと判定された場合、処理は、ステップS1036に進む。
 ステップS1036において、妨害検出部1508は、イメージセンサ1211により実現される測距センサには異常が発生しているものとみなし、異常が発生していることを示す異常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 以上の処理により、イメージセンサ1211により測距センサが実現されるような場合、受光パターンに異常が発生すると、対応する特異メッセージが画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知されることになる。結果として、アプリケーションプロセッサ1212は、イメージセンサ1211において発生した異常に対して、迅速かつ適切な対応を実現することが可能となる。
 <障害検出部による障害検出>
 次に、障害検出部1509による障害検出について説明する。
 イメージセンサ1211は、イメージセンサ1211内の一部または全部の動作を無効化させる、誤動作させる、偽情報を流入させる、および情報を流出させる等の注入攻撃を受けた場合、物理層の電圧状態またはクロック状態に異常な変化が生じる。
 そこで、障害検出部1509は、物理層の電圧状態の変化またはクロック状態の変化を検出する。
 障害検出部1509は、物理層の電圧状態の異常な変化を検出した場合、例えば、イメージセンサ1211において電力異常または電圧異常(例えば、電圧振幅、電圧極性、IRドロップ)などが生じていることを示す第1異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 また、障害検出部1509は、物理層のクロック状態の異常な変化を検出した場合、クロック異常(例えば、クロックの周波数、周期性、回数、ジッタ)が生じていることを示す第2異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 なお、障害検出部1509は、注入攻撃に限らず、偶発的なノイズまたは干渉などによって異常が生じる場合も、異常を示すメッセージを特異メッセージとして送信してもよい。
 さらに、例えば、特定条件を満たす場合に起動してイメージセンサ1211に対して悪影響を与えるハードウエアトロイ(つまり、異物)を挿入することで、イメージセンサ1211内の一部または全部の動作を無効化させたり、誤動作させたり、偽情報を流入させたり、情報を流出させる挿入攻撃がある。
 イメージセンサ1211が挿入攻撃を受ける場合、電気特性(例えば、インピーダンス値のZ値、抵抗値のR値、インダクタンス値のL値、キャパシタンス値のC値、品質係数のQ値)または伝送特性(例えば、データ伝送品質、挿入損失、反射損失)などに異常な変化が生じる。
 そこで、障害検出部1509は、電気特性を検出し、電気特性に異常な変化が検出される場合、例えば、イメージセンサ1211において電気特性の異常が生じていることを示す第3異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 また、障害検出部1509は、伝送特性を検出し、伝送特性に異常な変化が検出される場合、例えば、イメージセンサ1211において伝送特性の異常が生じていることを示す第4異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 なお、障害検出部1509は、通信経路または物理層処理部1505の開放または短絡、つまり断線または圧迫の有無やその可能性を検出するようにして、検出結果に応じて異常が生じている場合、異常が発生していることを示す特異メッセージを送信するようにしてもよい。
 また、障害検出部1509は、挿入攻撃に限らず、偶発的な破損、経年変化、および温度変化などの何れかによって異常が生じる場合も、異常を示すメッセージを特異メッセージとして送信するようにしてもよい。
 尚、障害検出部1509は、異常が検出されなかった場合、正常メッセージからなる特異メッセージを送信するようにしてもよいし、特異メッセージを送信しないようにしてもよい。
 (障害検出部による障害検出処理)
 次に、図123のフローチャートを参照して、障害検出部1509による障害検出処理について説明する。
 ステップS1051において、障害検出部1509は、物理層の電圧状態を検出する。
 ステップS1052において、障害検出部1509は、物理層の電圧状態が閾値範囲外であるか否か、すなわち、異常な変化が発生しているか否かを判定する。
 ステップS1052において、物理層の電圧状態が閾値範囲外であり、異常な変化が発生していると判定された場合、処理は、ステップS1053に進む。
 ステップS1053において、障害検出部1509は、イメージセンサ1211において電力異常または電圧異常(例えば、電圧振幅、電圧極性、IRドロップ)などが生じていることを示す第1異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 また、ステップS1052において、物理層の電圧状態が閾値範囲外ではないと判定された場合、処理は、ステップS1054に進む。
 ステップS1054において、障害検出部1509は、物理層のクロック状態を検出する。
 ステップS1055において、障害検出部1509は、物理層のクロック状態が閾値範囲外であるか否か、すなわち、異常な変化が発生しているか否かを判定する。
 ステップS1055において、物理層のクロック状態が閾値範囲外であり、異常な変化が発生していると判定された場合、処理は、ステップS1056に進む。
 ステップS1056において、障害検出部1509は、クロック異常(例えば、クロックの周波数、周期性、回数、ジッタ)が生じていることを示す第2異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 さらに、ステップS1055において、物理層のクロック状態が閾値範囲外ではないと判定された場合、処理は、ステップS1057に進む。
 ステップS1057において、障害検出部1509は、電気特性を検出する。
 ステップS1058において、障害検出部1509は、電気特性が閾値範囲外であるか否か、すなわち、異常な変化が発生しているか否かを判定する。
 ステップS1058において、電気特性が閾値範囲外であり、異常な変化が発生していると判定された場合、処理は、ステップS1059に進む。
 ステップS1059において、障害検出部1509は、イメージセンサ1211において電気特性の異常が生じていることを示す第3異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 さらに、ステップS1058において、電気特性の異常な変化が発生していないと判定された場合、処理は、ステップS1060に進む。
 ステップS1060において、障害検出部1509は、伝送特性を検出する。
 ステップS1061において、障害検出部1509は、伝送特性が閾値範囲外であるか否か、すなわち、異常な変化が発生しているか否かを判定する。
 ステップS1061において、伝送特性が閾値範囲外であり、異常な変化が発生していると判定された場合、処理は、ステップS1062に進む。
 ステップS1062において、障害検出部1509は、イメージセンサ1211において伝送特性の異常が生じていることを示す第4異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 さらに、ステップS1061において、伝送特性の異常な変化が発生していないと判定された場合、処理は、ステップS1063に進む。
 ステップS1063において、障害検出部1509は、イメージセンサ1211が正常であることを示すメッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 以上の処理により、注入攻撃や挿入攻撃の有無を検出し、注入攻撃や挿入攻撃が検出される場合には、異常が発生していることを示すメッセージからなる特異メッセージをアプリケーションプロセッサ1212に通知することが可能となる。
 結果として、アプリケーションプロセッサ1212は、高速データ通信により、障害の有無に応じた特異メッセージを取得することで、特異メッセージに応じた迅速で、かつ、適切な対応が可能となる。
 <侵害検出部によるセキュリティ部の異常検出>
 次に、侵害検出部1511によるセキュリティ部1510の異常検出について説明する。
 セキュリティ部1510は、例えば、イメージセンサ1211内の一部または全部の動作を無効化させる、誤動作させる、偽情報を流入させる、および情報を流出させる等の注入攻撃に加えて、イメージセンサ1211に用いられる電力またはイメージセンサ1211から生じる電磁を解析することでイメージセンサ1211内情報を流出させる解析攻撃(電力解析攻撃、電磁解析攻撃)を受ける可能性がある。
 そこで、侵害検出部1511は、上述した異常検出に加えて、注入攻撃に伴うセキュリティ部1510内部の改竄の有無を論理的に検出したり、電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の近くに有るか無いかを物理的に検出したりすることによって、侵害に係る異常の有無を検出し、異常が検出された場合に異常メッセージを特異メッセージとして送信する。
 (侵害検出部によるセキュリティ部の異常検出処理)
 次に、図124のフローチャートを参照して、侵害検出部1511によるセキュリティ部1510の異常検出処理について説明する。
 ステップS1081において、侵害検出部1511は、セキュリティ部1510の論理状態を示す情報を検出する。
 ステップS1082において、侵害検出部1511は、検出したセキュリティ部1510の論理状態を示す情報に基づいて、セキュリティ部1510内部において改竄が発生しているか否かを判定する。
 ステップS1082において、セキュリティ部1510内部において改竄が発生していると判定された場合、処理は、ステップS1083に進む。
 ステップS1083において、侵害検出部1511は、注入攻撃に伴うセキュリティ部1510内の改竄が発生していることを示す第1異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 ステップS1082において、セキュリティ部1510内部において改竄が発生していないと判定された場合、処理は、ステップS1084に進む。
 ステップS1084において、侵害検出部1511は、セキュリティ部1510の物理状態を示す情報を検出する。
 ステップS1085において、侵害検出部1511は、検出したセキュリティ部1510の物理状態を示す情報に基づいて、電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の近くに有るか否かを判定する。
 ステップS1085において、解析攻撃に用いられる電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の近くに有ると判定された場合、処理は、ステップS1086に進む。
 ステップS1086において、侵害検出部1511は、電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の近くに有り、電力解析攻撃や電磁解析攻撃を受ける可能性があることを示す第2異常メッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 ステップS1085において、電力解析または電磁解析に必要な攻撃物体(例えば、プローブ)がセキュリティ部1510の近くにないと判定された場合、処理は、ステップS1087に進む。
 ステップS1087において、侵害検出部1511は、イメージセンサ1211が正常であることを示すメッセージを特異メッセージとして、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 以上の処理により、注入攻撃に伴ったセキュリティ部1510の論理的な改竄の有無や解析攻撃の可能性の有無等の侵害が検出され、侵害が検出される場合には、侵害に伴った異常が発生していることを示すメッセージからなる特異メッセージをアプリケーションプロセッサ1212に通知することが可能となる。
 結果として、アプリケーションプロセッサ1212は、高速データ通信により、侵害の有無に応じた特異メッセージを取得することで、特異メッセージに応じた迅速かつ適切な対応が可能となる。
 <温度検出部による異常検出>
 次に、温度検出部1512による異常検出について説明する。
 イメージセンサ1211または通信経路の動作保証温度が範囲外となるように、イメージセンサ1211の内部温度またはイメージセンサ1211の外部温度、通信経路内部温度、または通信経路外部温度が意図的に強制されるように、イメージセンサ1211を誤動作させる温度攻撃がある。
 そこで、温度検出部1512は、イメージセンサ1211や通信経路に対する温度攻撃の有無を検出する。
 すなわち、イメージセンサ1211には、動作保証温度の上限値(第1閾値)および下限値(第2閾値)があるので、イメージセンサ1211の温度が第1閾値(上限値)よりも高い状態、または、第2閾値(下限値)よりも低い状態であれば、温度検出部1512は、異常が発生していることを示すメッセージを特異メッセージとしてアプリケーションプロセッサ1212に通知する。
 尚、温度検出部1512で検出された温度が動作保証範囲内である場合、温度検出部1512は、正常であることを示す特異メッセージを送信するようにしてもよいし、特異メッセージを送信しないようにしてもよい。また、異常メッセージや正常メッセージの代わりに、検出された温度の値そのものが特異メッセージとして送信されるようにしてもよい。
 さらに、温度検出部1512は、機能安全のために複数設けられてもよく、それぞれの検出結果がそれぞれの閾値の範囲外になる場合に異常を示す特異メッセージが送信されてもよい。その場合、一部の温度検出部1512に異常が発生しても対処できる。
 また、特異メッセージを受信するアプリケーションプロセッサ1212においては、複数回取得された特異メッセージ群が解析されることによって、温度検出部1512に異常が発生している範囲や位置を把握することが可能となる。
 (温度検出部による異常検出処理)
 次に、図125のフローチャートを参照して、温度検出部1512による異常検出処理について説明する。
 ステップS1101において、温度検出部1512は、イメージセンサ1211内の温度を検出する。
 ステップS1102において、温度検出部1512は、検出したイメージセンサ1211の温度が第1閾値(上限値)以上であるか(第1閾値よりも高いか)否かを判定する。
 ステップS1102において、検出したイメージセンサ1211の温度が第1閾値(上限値)以上であると判定された場合、処理は、ステップS1103に進む。
 ステップS1103において、温度検出部1512は、イメージセンサ1211が動作保証温度以上であり、異常が発生していることを示す第1異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 また、ステップS1102において、検出したイメージセンサ1211の温度が第1閾値(上限値)以上ではないと判定された場合、処理は、ステップS1104に進む。
 ステップS1104において、温度検出部1512は、検出したイメージセンサ1211の温度が第2閾値(下限値)以下であるか(第2閾値よりも低いか)否かを判定する。
 ステップS1104において、検出したイメージセンサ1211の温度が第2閾値(下限値)以下であると判定された場合、処理は、ステップS1105に進む。
 ステップS1105において、温度検出部1512は、イメージセンサ1211が動作保証温度以下であり、異常が発生していることを示す第2異常メッセージからなる特異メッセージを、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に通知する。
 ステップS1104において、検出したイメージセンサ1211の温度が第2閾値(下限値)以下ではないと判定された場合、処理は、ステップS1106に進む。
 ステップS1106において、温度検出部1512は、イメージセンサ1211の温度が動作保証温度内であり、異常が発生していないことを示す正常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に送信する。
 以上の処理により、イメージセンサ1211に対する温度攻撃が発生するような場合、画像データを送信する高速データ通信により通知されることになるので、アプリケーションプロセッサ1212において、迅速かつ適切な対応を実現することが可能となる。
 <イメージセンサの状態や特性に基づいて、異常の有無を検出するアプリケーションプロセッサの詳細な構成例>
 以上においては、イメージセンサ1211が、自身の異常の有無を検出して、検出結果に応じた特異メッセージをアプリケーションプロセッサ1212に送信する例について説明してきた。
 しかしながら、アプリケーションプロセッサ1212が、イメージセンサ1211の状態や特性を取得して、異常の有無を検出するようにしてもよい。
 図126は、イメージセンサ1211の状態や特性を取得して、異常の有無を検出するようにしたアプリケーションプロセッサ1212の構成例を示している。
 図126のアプリケーションプロセッサ1212は、物理層処理部1551、拡張モード対応CSI-2受信回路1552、I2C/I3Cマスタ1553、記憶部1554、コントローラ1555、妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560を備えて構成される。
 なお、妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560は、いずれもイメージセンサ1211より供給される状態や特性に応じて処理を実行するものである。しかしながら、基本的な機能は、それぞれ図118における妨害検出部1508、障害検出部1509、セキュリティ部1510、侵害検出部1511、および温度検出部1512と同様である。
 また、物理層処理部1551、拡張モード対応CSI-2受信回路1552、I2C/I3Cマスタ1553、記憶部1554、セキュリティ部1558、コントローラ1555は、図77の物理層処理部1321、拡張モード対応CSI-2受信回路1322、I2C/I3Cマスタ1323、記憶部1324、セキュリティ部1326、およびコントローラ1327に対応する各ブロックと同様に構成され、その詳細な説明は省略する。
 妨害検出部1556は、拡張モード対応CSI-2受信回路1552を介して、イメージセンサ1211より供給される画像データに基づき、受光波形パターン、受光スポットパターン、受光ドットパターン、受光軌跡パターン等の何れかを記憶部1554内に予め格納された格納パターンと比較することによって、イメージセンサ1211または画像データについて正常か異常かを判断する。
 妨害検出部1556は、イメージセンサ1211または画像データについて正常か異常かの判定結果を特異メッセージとして後段に出力するようにしてもよい。
 また、イメージセンサ1211内およびアプリケーションプロセッサ1212内のそれぞれに、妨害検出部1508,1577が設けられるようにしてもよい。妨害検出部1508,1577の両方がそれぞれに設けられる場合、例えば、異常の有無を2重判断することが可能となる。このため、イメージセンサ1211内の妨害検出部1508またはアプリケーションプロセッサ1212内の妨害検出部1577の何れか一方が攻撃されても、イメージセンサ1211に対する妨害の有無を検出することが可能になる。
 障害検出部1557は、アプリケーションプロセッサ1212内の通信経路または物理層処理部1551に対して電気的に直接接続または間接接続される。
 また、イメージセンサ1211内およびアプリケーションプロセッサ1212内のそれぞれに障害検出部1509,1557が設けられてもよい。
 例えば、イメージセンサ1211は、自らの電気特性を測定し、画像データを送信する高速データ通信によりアプリケーションプロセッサ1212に対して、特異メッセージとして送信する。
 障害検出部1557は、「イメージセンサ1211+通信経路(物理層)」内の電気特性を測定することで、キャリブレーション処理によって通信経路内の電気特性を認識する。
 ハードウエアトロイは通信経路内(例えば、ワイヤ内)に挿入することが可能なため、通信経路内の電気特性の変化が検出されることによって、ハードウエアトロイの有無を高い精度で検出することが可能になる。
 同様に、セキュリティ部1558、侵害検出部1559、および温度検出部1560は、アプリケーションプロセッサ1212内に設けられるのみならず、イメージセンサ1211内に設けられるようにしてもよい。
 すなわち、セキュリティ部1510,1558、侵害検出部1511,1559、および温度検出部1512,1560が、イメージセンサ1211内およびアプリケーションプロセッサ1212内のそれぞれに設けられてもよい。
 妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、メモリと電気的に直接接続されてもよい。
 このメモリは上述したレジスタと電気的に直接接続されてもよく、妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、レジスタと電気的に直接接続されてもよい。
 メモリは、メモリ内情報の漏洩または改竄の何れかから保護されたメモリであってもよい。ここでメモリおよびレジスタを記憶部1554と総称する。妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、例えば、複数回の検出結果を記憶部1554内へ保存することによって、短時間内で連続妨害、連続障害、および連続侵害のいずれかを受けていると判断することや、長時間にわたって温度負荷があると判断することが可能であり、そのような状況を示す異常メッセージが送信されてもよい。
 なお、格納パターン、閾値、第1閾値、および第2閾値の何れかは、記憶部1554から読み出されてもよい。また、格納パターン、閾値、第1閾値、および第2閾値の何れかは、I2CまたはI3Cを少なくとも介し、アプリケーションプロセッサ1212がイメージセンサ1211内の記憶部1507内に書き込んでもよい。
 このように、検出結果がアプリケーションプロセッサ1212外の、例えば、イメージセンサ1211内の保護された記憶部1507内に定期的に保存されることにより、アプリケーションプロセッサ1212内で事故が生じた際に、外部のイメージセンサ1211内の保護された記憶部1507が解析されることによって、事故発生の原因を特定し易くすることが可能となる。同様に、検出結果がイメージセンサ1211外の、例えば、アプリケーションプロセッサ1212内の保護された記憶部1554内に定期的に保存されることにより、イメージセンサ1211内で事故が生じた際に、外部のアプリケーションプロセッサ1212内の保護された記憶部1554が解析されることによって、事故発生の原因を特定し易くすることが可能となる。
 妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、それぞれ拡張モード対応CSI-2受信回路1552に対して電気的に直接接続され、それぞれの検出結果が直接的に拡張モード対応CSI-2受信回路1552から伝達されるようにしてもよい。
 また、妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、それぞれ拡張モード対応CSI-2受信回路1552に対して記憶部1554などを介して電気的に間接接続され、それぞれの検出結果が間接的に拡張モード対応CSI-2受信回路1552から伝達されるようにしてもよい。
 さらに、特異メッセージは、拡張モード対応CSI-2受信回路1552から直接的に出力されてもよいし、記憶部1554などを介して拡張モード対応CSI-2受信回路1552から間接的に出力されてもよい。
 また、妨害検出部1556、障害検出部1557、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、それぞれ通信経路に対して電気的に直接接続、または記憶部1554などを介して電気的に間接接続されてもよい。
 なお、少なくとも高速データ送信に用いられる通信経路は、低速コマンド送信のみに用いられる通信経路よりも、高周波特性に優れるので攻撃検出に対する感度が高いと考えられる。
 また、高速データ送信に用いられる通信経路の一部または全部を介してイメージセンサ1211に電力供給がなされる場合、この電力供給を少なくとも一時的に無効化するだけでイメージセンサ1211の動作や画像データストリームを無効化できる。
 例えば、高速データ送信に用いられる通信経路の一部または全部が、ハードウエアトロイが挿入された通信経路と置き換えられ、ハードウエアトロイが無線起動またはタイマ起動されるだけで、移動体装置(推進装置)の事故が簡単に誘発される可能性がある。つまり、障害検出部1557は、低速コマンド送信に特化した通信経路よりも少なくとも高速データ送信に用いられる物理層に対して好適であり、さらに電力伝送にも用いられる物理層に対して特に好適である。
 妨害検出部1508,1556、障害検出部1509,1557、セキュリティ部1510,1558、侵害検出部1511,1559、および温度検出部1512,1560の何れかは、それぞれ他ブロック内へ含まれてもよい。
 例えば、妨害検出部1508は、画素1501、AD変換器1502、画像処理部1503、記憶部1507、および拡張モード対応CSI-2送信回路1504の何れかに少なくとも一部が含まれてもよい。
 また、例えば、妨害検出部1556は、拡張モード対応CSI-2受信回路1552、および記憶部1554の何れかに少なくとも一部が含まれてもよい。
 さらに、例えば、障害検出部1509は、物理層処理部1505、記憶部1507、および拡張モード対応CSI-2送信回路1504の何れかに少なくとも一部が含まれてもよい。
 また、例えば、障害検出部1557は、拡張モード対応CSI-2受信回路1552および記憶部1554の何れかに少なくとも一部が含まれてもよい。
 さらに、例えば、セキュリティ部1510、侵害検出部1511、温度検出部1512の何れかは、それぞれ、記憶部1507、および拡張モード対応CSI-2送信回路1504の何れかに少なくとも一部が含まれてもよい。
 また、例えば、セキュリティ部1558、侵害検出部1559、および温度検出部1560の何れかは、それぞれ、記憶部1554、および拡張モード対応CSI-2受信回路1552の何れかに少なくとも一部が含まれてもよい。
 また、画素1501、AD変換器1502、画像処理部1503、物理層処理部1505、拡張モード対応CSI-2送信回路1504、拡張モード対応CSI-2受信回路1552、記憶部1507,1554、I2C/I3Cスレーブ1506、I2C/I3Cマスタ1553、妨害検出部1508,1556、障害検出部1509,1557、セキュリティ部1510,1558、侵害検出部1511,1559、および温度検出部1512,1560の何れかは、それぞれ、移動体装置(推進装置)のコントローラ、若しくは制御部、または図示しない新たな制御部によって直接的または間接的に制御されてもよい。
 <アプリケーションプロセッサによる、イメージセンサの異常の有無を検出する処理>
 次に、図127,図128のフローチャートを参照して、アプリケーションプロセッサによる、イメージセンサの異常の有無を検出する処理について説明する。
 なお、図127のフローチャートがイメージセンサ1211の処理を表しており、図128のフローチャートがアプリケーションプロセッサ1212の処理を表している。
 ステップS1131(図127)において、イメージセンサ1211は、異常の有無を判定するのに必要とされる自らの状態または特性を検出する。
 より詳細には、上述したイメージセンサ1211における妨害検出部1508、障害検出部1509、侵害検出部1511、および温度検出部1512のそれぞれがイメージセンサ1211内における異常の有無を判定する際に必要とされる状態または特性を検出する。
 ただし、この処理においては、各種の状態または特性が検出されるのみであり、異常の有無については判定されない。
 ステップS1132において、イメージセンサ1211は、検出した自らの状態または特性を、特異メッセージとして、画像データを送信する高速データ通信により送信する。
 より詳細には、妨害検出部1508、障害検出部1509、侵害検出部1511、および温度検出部1512のそれぞれがイメージセンサ1211内における異常の有無を判定する際に必要とされる状態または特性を、特異メッセージとして、画像データを送信する高速データ通信により送信する。
 尚、以上のようなイメージセンサ1211の妨害検出部1508、障害検出部1509、侵害検出部1511、および温度検出部1512によりなされる処理は、以降においては、単に、イメージセンサ1211が自らの状態または特性を検出する、および、イメージセンサ1211が、検出した自らの状態または特性を、アプリケーションプロセッサ1212に送信する、といった簡略な表現とする。
 ステップS1151(図128)において、アプリケーションプロセッサ1212は、イメージセンサ1211より送信されてくる特異メッセージを受信したか否かを判定する。
 より詳細には、アプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560は、それぞれイメージセンサ1211の妨害検出部1508、障害検出部1509、侵害検出部1511、および温度検出部1512の少なくともいずれかからの特異メッセージを受信したか否かを判定する。ただし、セキュリティ部1558、コントローラ1555、拡張モード対応CSI-2受信回路1552、および物理層処理部1551などの何れかが、イメージセンサ1211の妨害検出部1508、障害検出部1509、侵害検出部1511、および温度検出部1512の少なくともいずれかからの特異メッセージを受信したか否かを判定してもよい。
 ステップS1151において、特異メッセージが受信されたと判定された場合、処理は、ステップS1152に進む。
 ステップS1152において、アプリケーションプロセッサ1212は、特異メッセージとして送信されてきたイメージセンサ1211の状態または特性を検出する。
 より詳細には、アプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560の少なくとも何れかは、受信した特異メッセージに含まれるそれぞれの異常を検出するための状態または特性を検出する。
 ステップS1153において、アプリケーションプロセッサ1212は、検出したイメージセンサ1211の状態または特性に対してキャリブレーション処理を掛けることにより補正する。
 より詳細には、アプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560の少なくとも何れかは、検出した状態または特性に対してキャリブレーション処理を掛けて補正する。ただし、セキュリティ部1558、コントローラ1555、拡張モード対応CSI-2受信回路1552、および物理層処理部1551などの何れかが、検出した状態または特性に対してキャリブレーション処理を掛けて補正してもよい。
 ステップS1154において、アプリケーションプロセッサ1212は、キャリブレーション処理により補正したイメージセンサ1211の状態または特性が正常とみなされる閾値範囲外であるのか否かを判定する。
 より詳細には、アプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560の少なくとも何れかは、キャリブレーション処理により補正した状態または特性が正常とみなされる閾値範囲外であるのか否かを判定する。ただし、セキュリティ部1558、コントローラ1555、拡張モード対応CSI-2受信回路1552、および物理層処理部1551などの何れかが、キャリブレーション処理により補正した状態または特性が正常とみなされる閾値範囲外であるのか否かを判定してもよい。尚、それぞれの状態または特性が正常とみなされる閾値範囲外であるか否かの判定に係る具体的な処理は、図119,図122乃至図125のフローチャートを参照して説明した処理である。
 ステップS1154において、状態または特性が正常とみなされる閾値範囲外であると判定される場合、処理は、ステップS1155に進む。
 ステップS1155において、アプリケーションプロセッサ1212は、イメージセンサ1211が異常であるものとみなす。
 また、ステップS1154において、状態または特性が正常とみなされる閾値範囲外でないと判定される場合、処理は、ステップS1156に進む。
 ステップS1156において、アプリケーションプロセッサ1212は、イメージセンサ1211が正常であるものとみなす。
 すなわち、アプリケーションプロセッサ1212のセキュリティ部1558、コントローラ1555、拡張モード対応CSI-2受信回路1552、物理層処理部1551、妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560の少なくとも何れかにおいて、キャリブレーション処理により補正した状態または特性が正常とみなされる閾値範囲外であると判定された場合、イメージセンサ1211が異常であるとみなされ、閾値範囲外ではないと判定された場合、イメージセンサ1211が正常であるとみなされる。
 以上の処理により、アプリケーションプロセッサ1212においても、イメージセンサ1211の異常の有無を判定することが可能となり、イメージセンサ1211において異常が発生しても、アプリケーションプロセッサ1212により、迅速かつ適切な対応を可能となる。
 尚、上述したアプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560によるイメージセンサ1211の異常の有無を判定する処理については、単に、アプリケーションプロセッサ1212が、イメージセンサ1211の状態または特性に基づいて、イメージセンサ1211の異常の有無を判定する処理、または異常診断(処理)と称する。ただし、アプリケーションプロセッサ1212が、イメージセンサ1211の状態や特性を取得しないで、異常の有無を検出するようにしてもよい。つまり、アプリケーションプロセッサ1212の妨害検出部1556、障害検出部1557、侵害検出部1559、および温度検出部1560のそれぞれがアプリケーションプロセッサ1212内における異常の有無を判定する際に必要とされる状態または特性を検出し、異常の有無を判定してもよい。
 <画像データの高速データ送信を阻害せずに、特異メッセージの高速データ送信が実行される例>
 以上においては、特異メッセージが、画像データの高速データ送信されることを前提としてきたが、送信タイミングを考慮せずに、高速データ送信がなされると、画像データの高速データ送信が阻害される恐れがある。
 そこで、画像データの高速データ送信を阻害せずに、特異メッセージの高速データ送信を実現する例について説明する。
 画像データの高速データ送信を阻害せずに特異メッセージの高速データ送信を実現するには、画像データの高速データ送信の各種データの送信タイミングに合わせた送信が必要となる。
 このため、特異メッセージは、画像データを送信する際の、フレームスタートからフレームエンドまでの期間内、またはフレームエンドからフレームスタートまでの期間内(フレームブランキング期間)とする必要がある。
 ここで、フレームスタートからフレームエンドまでの期間内で、特異メッセージを送信できるのは、例えば、図129で示されるように、フレームスタート内、埋込データ内、画像データ内、非画像データ(読み出し応答、およびユーザ定義データ)内、フレームエンド内、ラインブランキング期間内の何れかである。なお、例えばCCIチャネルをVC0に割り当てる場合、図129内のVC0をVC1に、図129内のVC1をVC2に、それぞれ置き換えてもよい。
 なお、以降においては、画像データの高速データ送信と特異メッセージの高速データ送信とが、並列実行ではなく直列実行される例を説明する。ただし、画像データの高速データ送信と特異メッセージの送信(高速データ送信または低速コマンド送信)とで通信経路が異なる場合、並列実行されてもよい。
 また、高速データ送信と低速コマンド送信とは、フィルタによる周波数分離が可能なので、消費電力に問題なければ、送信の一部または全部が重複(並列実行)されていても構わない。
 さらに、上述したイメージセンサ1211による自らの異常の有無の検出処理、および、イメージセンサ1211からの状態または特性に基づいたアプリケーションプロセッサ121によるイメージセンサ1211の異常の有無の検出処理については、以降において、それぞれイメージセンサ1211による異常診断(処理)、およびアプリケーションプロセッサ1212による異常診断(処理)と称する。
 ここで、イメージセンサ1211における異常診断(処理)は、イメージセンサ1211が自らの状態または特性にもとづいて異常の有無を判定する場合については、イメージセンサ1211による自らの異常の有無が判定される一連の処理が異常診断(処理)となる。
 一方、イメージセンサ1211の状態または特性に基づいて、アプリケーションプロセッサ1212において、イメージセンサ1211の異常診断(処理)がなされる場合については、イメージセンサ1211における異常診断(処理)は、自らの状態または特性を検出するのみの(異常の有無は判定されない)処理となる。
 また、所定の時間間隔や所定の動作間隔でなされる異常診断については、定期異常診断と称し、処理の最初になされる異常診断については、初期異常診断と称する。
 定期異常診断の結果である特異メッセージは、ベンダ固有コード(Vendor specific)またはリザーブドコード(Reserved for future use)またはリザーブドコードから特異メッセージとして新たに定義されるコードを示す埋込データの少なくとも一部内に格納されて送信されるようにしてもよい。
 また、特異メッセージは、新たに定義されるパケット内に格納されて送信されてもよく、ユーザ定義領域パケット内またはリザーブド領域パケット内に格納されて送信されてもよい。
 例えば、拡張パケットヘッダのうちリザーブド領域の一部または全部が、特異メッセージとして新たに定義されるようにしてもよい。また、例えば、拡張パケットヘッダのうちユーザ定義領域(例えば、User defined metadata)の一部または全部が、特異メッセージとして新たに定義されるようにしてもよい。
 また、例えば、既に定義されている拡張パケットヘッダや拡張パケットフッタのそれぞれの一部または全部が、特異メッセージとして流用されるようにしてもよい。
 ただし、特異メッセージは、拡張パケットフッタ内よりも拡張パケットヘッダ内へ格納される方が、即時性が高い(移動体装置の処理において直ぐに異常を認識できる)。特異メッセージは、拡張パケットフッタePF1やePF0の一部または全部であってもよい。特異メッセージが拡張パケットヘッダ内または拡張パケットフッタ内に格納される場合、後方互換を得られる効果もある。
 <画像データの高速データ送信を阻害せずに、特異メッセージの高速データ送信が実行される場合の処理>
 次に、図130のフローチャートを参照して、画像データの高速データ送信を阻害せずに、特異メッセージの高速データ送信が実行される場合のイメージセンサ1211の処理について説明する。
 ステップS1171において、イメージセンサ1211は、初期異常診断を実行する。
 ステップS1172において、イメージセンサ1211(の拡張モード対応CSI-2送信回路1504)は、高速データ送信の開始命令を受信したか否かを判定し、高速データ送信の開始命令を受信したと判定されるまで、処理が待機される。そして、ステップS1172において、拡張モード対応CSI-2送信回路1504が、高速データ送信の開始命令を受信したと判定した場合、処理はステップS1173に進む。
 ステップS1173において、イメージセンサ1211は、初期異常診断によりイメージセンサ1211において初期異常が発生しているか否かを判定する。
 ステップS1173において、初期異常があると判定された場合、処理は、ステップS1174に進む。
 ステップS1174において、イメージセンサ1211(の拡張モード対応CSI-2送信回路1504)は、初期異常メッセージを送信する。
 すなわち、この場合、以降においては、撮像送信処理がなされない。
 一方、ステップS1173において、初期異常が発生していないと判定された場合、処理は、ステップS1175に進む。
 ステップS1175において、イメージセンサ1211は、撮像送信処理を実行して、画素1501により撮像され、AD変換器1502によりAD変換され、画像処理部1503により画像処理された画像データが拡張モード対応CSI-2送信回路1504に供給され、アプリケーションプロセッサ1212に送信される。
 <撮像送信処理(その1)>
 ここで、図131のフローチャートを参照して、撮像送信処理(その1)について説明する。
 ステップS1191おいて、画素1501が撮像を開始し、画素1501から出力される画像データが、AD変換器1502および画像処理部1503を介して拡張モード対応CSI-2送信回路1504に供給される。
 ステップS1192において、イメージセンサ1211は、定期異常診断を実行する。
 ステップS1193において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルのフレームスタートを送信する。
 ステップS1194において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの埋込データを送信する。このとき、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの埋込データ内に定期異常診断の診断結果となる特異メッセージを含めて送信する。
 ステップS1195において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの画像データを送信する。
 ステップS1196において、拡張モード対応CSI-2送信回路1504は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS1196において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS1195に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1196において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS1197に進む。
 ステップS1197において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルのフレームエンドを送信する。
 ステップS1198において、拡張モード対応CSI-2送信回路1504は、高速データ送信の終了命令を受信したか否かを判定する。
 ステップS1198において、拡張モード対応CSI-2送信回路1504が、高速データ送信の終了命令を受信していないと判定した場合、処理はステップS1191に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1198において、拡張モード対応CSI-2送信回路1504が、高速データ送信の終了命令を受信したと判定した場合、処理は終了される。
 撮像送信処理は、高速データ送信の終了命令を受信するまで継続実行されてもよく、高速データ送信の開始命令を受信するたびに実行されてもよい。
 以上の処理により、画像データの高速データ送信を阻害することなく、特異メッセージを高速データ送信することが可能となる。
 <撮像送信処理の応用例>
 以上においては、撮像送信処理が、高速データ送信の終了命令が受信された場合に処理を終了させる例について説明してきたが、高速データ送信の開始命令が受信されない場合に処理を終了させてもよい。
 図132のフローチャートは、高速データ送信の開始命令が受信されない場合に処理を終了させるようにした撮像送信処理の応用例を示している。
 尚、図132のステップS1211乃至S1217の処理については、図131のステップS1191乃至S1197と同様の処理であるので、その説明は省略する。
 すなわち、ステップS1218において、拡張モード対応CSI-2送信回路1504が、高速データ送信の開始命令を受信していると判定した場合、処理はステップS1211に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1218において、拡張モード対応CSI-2送信回路1504が、高速データ送信の開始命令を受信していないと判定した場合、処理は終了される。
 以上の処理においても、画像データの高速データ送信を阻害することなく、特異メッセージを高速データ送信することが可能となる。
 <撮像送信処理(その2)>
 以上においては、定期異常診断の診断結果となる特異メッセージが、埋込データに含めて送信される例について説明してきたが、2回目の定期異常診断(第2定期異常診断)を実行して、第2埋込データに含められて送信されるようにしてもよい。
 図133は、2回目の定期異常診断(第2定期異常診断)を実行して、第2定期異常診断の診断結果となる特異メッセージが第2埋込データに含められて送信されるようにした撮像送信処理を説明するフローチャートである。
 なお、図133のステップS1231,S1233,S1235,S1236,S1239,S1240の処理は、図131のステップS1191,S1193,S1195乃至S1198の処理と同様であるので、その説明は、省略する。
 すなわち、ステップS1231の処理により拡張モード対応CSI-2送信回路1504に画像データ供給されると、ステップS1232において、イメージセンサ1211は、1回目の定期異常診断(第1定期異常診断)を実行する。
 ステップS1233において、バーチャルチャネルのフレームスタートが送信されると、ステップS1234において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの第1埋込データを送信する。このとき、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの第1埋込データ内に第1定期異常診断の診断結果となる特異メッセージを含めて送信する。
 ステップS1235,S1236において、1フレーム分の画像データの送信が完了すると、ステップS1237において、イメージセンサ1211は、2回目の定期異常診断(第2定期異常診断)を実行する。
 ステップS1238において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの第2埋込データを送信する。このとき、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの第2埋込データ内に第2定期異常診断の診断結果となる特異メッセージを含めて送信する。
 そして、ステップS1239において、バーチャルチャネルのフレームエンドが送信されて、ステップS1240において、高速データ送信の終了命令を受信すると、処理は終了される。
 以上の処理により、画像データの高速データ送信を阻害することなく、特異メッセージを高速データ送信することが可能となる。
 また、以上の処理においては、第2定期異常診断がラインブランキング期間内に実行されるため、消費電力の最大値へ影響を与えない(送信と同時には定期異常診断しない)。さらに、定期異常診断はラインブランキング期間外に実行されるようにしてもよい。
 また、定期異常診断の診断結果に対応する特異メッセージが、フレームスタート直後およびフレームエンド直前の埋込データ内へ格納されため、移動体装置(推進装置)が異常発生タイミングを判断することが可能となる。例えば、異常が、連続的に発生しているのか、画像データ送信前に発生しているのか、画像データ送信後に発生しているのかを判定することが可能となる。なお、最初の埋込データが構成されないようにしてもよい。また、第1定期異常診断が実行されず、第2定期異常診断のみが実行される構成でもよい。
 <撮像送信処理(その3)>
 以上においては、2回目の定期異常診断(第2定期異常診断)を実行して、第2定期異常診断の診断結果に対応する特異メッセージが、第2埋込データに含められて送信されるようにする例について説明してきたが、定期異常診断の診断結果を読み出し応答に含めて送信するようにしてもよい。
 すなわち、低速コマンド送信のマスタであるアプリケーションプロセッサ1212は、低速コマンド送信のスレーブであるイメージセンサ1211から高速データ送信によって送信されたフレームスタート信号が受信される場合、イメージセンサ1211内の特異メッセージをアプリケーションプロセッサ1212に読み出すことを要求する読み出し命令を低速コマンド送信によって送信する。
 イメージセンサ1211は、アプリケーションプロセッサ1212から送信された読み出し命令を受信し、読み出し命令に応じた特異メッセージを含む読み出し応答を高速データ送信によって送信する。
 アプリケーションプロセッサ1212は、特異メッセージを含む読み出し応答を受信することによって、イメージセンサ1211からの特異メッセージの通知を受信することができる。
 つまり、特異メッセージは、フレームスタートとフレームエンドとの間の画像データが送信されないラインブランキングの期間内に送信されてもよく、特にフレームスタートと画像データの間の期間内に送信されることが望ましい。この読み出し命令は、例えば、I2CまたはI3Cの規格におけるRead/WriteのReadに相当する。読み出し応答は、Read戻り値に相当する。これにより、消費電力の最大値へ影響を与えずに、画像データの送信前に異常を迅速に通知することが可能となる。
 ここで、図134,図135のフローチャートを参照して、定期異常診断の診断結果を読み出し応答に含めて送信するようにした撮像送信処理を説明する。
 なお、図134のフローチャートがイメージセンサ1211の処理を表しており、図135のフローチャートがアプリケーションプロセッサ1212の処理を表している。
 また、ステップS1251乃至1253,S1257乃至S1260の処理は、図131のステップS1191乃至S1193,S1195乃至S1198の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1251乃至S1253(図134)において、撮像が開始され、定期異常診断が実行され、フレームスタートが送信される。また、ステップS1271(図135)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてきたフレームスタートを受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1271において、イメージセンサ1211より送信されてきたフレームスタートを受信したと判定された場合、処理は、ステップS1272に進む。
 ステップS1272において、拡張モード対応CSI-2受信回路1552は、低速コマンド送信により、読み出し命令をイメージセンサ1211に送信する。
 これに応じて、ステップS1254(図134)において、イメージセンサ1211の拡張モード対応CSI-2送信回路1504は、アプリケーションプロセッサ1212から送信された読み出し命令を受信したか否かを判定し、受信したと判定するまで、同様の処理を繰り返す。
 そして、ステップS1254において、読み出し命令を受信したと判定した場合、処理は、ステップS1255に進む。
 ステップS1255において、拡張モード対応CSI-2送信回路1504は、定期異常診断の診断結果となる特異メッセージを含む読み出し応答を、画像データを送信する高速データ送信により、アプリケーションプロセッサ1212に対して送信する。
 これに応じて、ステップS1273(図135)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてきた定期異常診断の診断結果となる特異メッセージを含む読み出し応答を受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1273において、イメージセンサ1211より送信されてきた定期異常診断の診断結果となる特異メッセージを含む読み出し応答を受信したと判定された場合、処理は、ステップS1274に進む。
 ステップS1274において、アプリケーションプロセッサ1212は、受信した読み出し応答に含まれる特異メッセージに基づいて、イメージセンサ1211の正常または異常を判定する。
 ステップS1275において、アプリケーションプロセッサ1212は、高速データ送信の終了命令を送信するか否かを判定し、終了しないと判定した場合、処理は、ステップS1271に戻り、それ以降の処理が繰り返される。
 そして、ステップS1275において、高速データ送信の終了命令を送信すると判定した場合、ステップS1276において、拡張モード対応CSI-2受信回路1552が、イメージセンサ1211に対して高速データ送信の終了命令を送信し、処理が終了する。
 なお、この処理においては、ステップS1256においては、埋込データに定期異常診断の診断結果となる特異メッセージは含まれない状態で送信されるようにしてもよい。
 以上の処理により、定期異常診断の診断結果を読み出し応答に含めて送信することが可能となる。
 <撮像送信処理(その4)>
 以上においては、フレームスタートに応じて読み出し命令を送信して、定期異常診断の診断結果となる特異メッセージを読み出し応答に含めて送信する例について説明してきたが、フレームエンドに応じて読み出し命令を送信して、定期異常診断の診断結果を読み出し応答に含めて送信するようにしてもよい。
 低速コマンド送信のマスタであるアプリケーションプロセッサ1212は、低速コマンド送信のスレーブであるイメージセンサ1211から高速データ送信によって送信されたフレームエンド信号が受信される場合、イメージセンサ1211内の特異メッセージをアプリケーションプロセッサ1212に対して読み出すことを要求する読み出し命令を低速コマンド送信によって送信する。
 イメージセンサ1211は、アプリケーションプロセッサ1212から送信された読み出し命令を受信し、それに応じた特異メッセージ(読み出し応答)を高速データ送信によって送信する。
 そして、アプリケーションプロセッサ1212は読み出し応答を受信することによって、イメージセンサ122からの特異メッセージの通知を取得する。
 つまり、特異メッセージは、フレームエンドと次のフレームスタートとの間の画像データが送信されないフレームブランキングの期間内に送信される。
 ここで、図136,図137のフローチャートを参照して、フレームエンドに応じて読み出し命令を送信して、定期異常診断の診断結果を読み出し応答に含めて送信するようにした撮像送信処理について説明する。
 図136のフローチャートは、イメージセンサ1211の処理を表しており、図137のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 また、図136のステップS1291乃至S1297,S1300の処理は、図134のステップS1251乃至S1253,S1256乃至S1260の処理と同様であるので、その説明は省略する。
 さらに、図137のステップS1312乃至S1316の処理は、図135のステップS1272乃至S1276の処理と同様であるので、その説明は省略する。
 すなわち、イメージセンサ1211において、ステップS1291乃至S1297(図136)の処理により、画像が撮像され、定期異常診断が実行され、フレームスタート、埋込データ、画像データ、およびフレームエンドが送信される。
 これに応じて、ステップS1311(図137)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてきたフレームエンドを受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1311において、イメージセンサ1211より送信されてきたフレームエンドを受信したと判定された場合、処理は、ステップS1312に進む。
 ステップS1312において、拡張モード対応CSI-2受信回路1552は、低速コマンド送信により、読み出し命令をイメージセンサ1211に送信する。
 これに応じて、ステップS1298(図136)において、イメージセンサ1211の拡張モード対応CSI-2送信回路1504は、アプリケーションプロセッサ1212から送信された読み出し命令を受信したか否かを判定し、受信したと判定するまで、同様の処理を繰り返す。
 そして、ステップS1298において、読み出し命令を受信したと判定した場合、処理は、ステップS1299に進む。
 ステップS1299において、拡張モード対応CSI-2送信回路1504は、定期異常診断の診断結果となる特異メッセージを含む読み出し応答を、画像データを送信する高速データ送信により、アプリケーションプロセッサ1212に対して送信する。
 これに応じて、ステップS1313乃至S1316(図135)の処理により、アプリケーションプロセッサ1212において、イメージセンサ1211より送信されてきた定期異常診断の診断結果となる特異メッセージを含む読み出し応答が受信され、イメージセンサ1211の正常または異常が判定され、高速データ送信の終了命令が送信されると処理が終了する。
 以上の処理により、フレームエンドに応じて読み出し命令を送信して、定期異常診断の診断結果を読み出し応答に含めて送信することが可能となる。
 結果として、特異メッセージを、フレームエンドと次のフレームスタートとの間の画像データが送信されないフレームブランキングの期間内に送信することが可能となる。
 <撮像送信処理(その5)>
 以上においては、フレームエンドに応じて読み出し命令を送信して、定期異常診断の診断結果を読み出し応答に含めて送信する例について説明してきたが、フレームスタート送信の直前に、特異メッセージを含む読み出し応答が送信できるようにしてもよい。
 すなわち、例えば、イメージセンサ1211においては、フレームエンドが送信されてから、次のフレームスタートが送信されるまでの間に定期異常診断が実行されるようにする。そして、アプリケーションプロセッサ1212においては、フレームエンドが受信されてから、イメージセンサ1211において定期異常診断が完了するまで、所定時間だけ待機してから、読み出し命令を送信する。尚、時間をカウントするタイマが設けられるようにして、タイマにより待機時間がカウントされるようにしてもよい。
 このような処理により、2番目以降のフレームの画像データを送信する前に、イメージセンサ1211の動作に異常が生じる可能性があること、または異常が生じたことを、消費電力の最大値に対して影響することなく、イメージセンサ1211からアプリケーションプロセッサ1212に対して最短時間で通知することが可能となる。
 ここで、図138,図139のフローチャートを参照して、フレームエンドに応じて読み出し命令を送信して、定期異常診断の診断結果を読み出し応答に含めて送信するようにした撮像送信処理について説明する。
 図138のフローチャートは、イメージセンサ1211の処理を表しており、図139のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 また、図138のステップS1331乃至S1336,S1339乃至S1340の処理は、図136のステップS1291,S1293乃至S1299の処理と同様であるので、その説明は省略する。
 さらに、図139のステップS1351,S1353乃至S1357の処理は、図137のステップS1311乃至S1316の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1331乃至S1336(図138)において、画像が撮像され、フレームスタート、埋込データ、画像データ、フレームエンドが送信されると、ステップS1337において、画素1501が撮像を開始し、画素1501から出力される画像データが、AD変換器1502および画像処理部1503を介して拡張モード対応CSI-2送信回路1504に供給される。
 ステップS1338において、イメージセンサ1211は、定期異常診断を実行する。
 一方、アプリケーションプロセッサ1212においては、ステップS1351(図139)において、フレームエンドが受信されると、ステップS1352において、所定時間だけ待機する。この所定時間は、イメージセンサ1211におけるステップS1338の定期異常診断の処理が完了するまでの時間である。
 そして、ステップS1352の処理により処理時間だけ待機すると、処理は、ステップS1353に進み、読み出し命令がイメージセンサ1211に送信される。
 イメージセンサ1211においては、ステップS1339,S1340(図138)の処理により、読み出し命令に応じて、定期異常診断の診断結果に応じた特異メッセージを含む読み出し応答が、画像データを送信する高速データ送信によりアプリケーションプロセッサ1212に送信される。尚、ステップS1341において、高速データ送信の終了命令を受信しない場合、処理は、ステップS1332の処理に戻り、それ以降の処理が繰り返される。そして、ステップS1341において、高速データ送信の終了命令が受信されると、処理が終了する。
 以上の処理により、2番目以降のフレームの画像データを送信する前に、イメージセンサ1211の動作異常の可能性または動作異常を、消費電力の最大値に対して影響することなく、アプリケーションプロセッサ1212に対して迅速に通知することが可能となる。
 <撮像送信処理(その6)>
 以上においては、フレームスタート送信の直前に、特異メッセージを含む読み出し応答が送信できるようにする例について説明してきたが、読み出し命令送信または読み出し応答送信は、埋込データ送信後のラインブランキング期間内に実施されるようにしてもよい。
 このような処理により、画像データを送信する前に、イメージセンサ1211の動作異常の可能性、または動作異常の発生を、消費電力の最大値に対して影響を与えることなく、アプリケーションプロセッサ1212に迅速に通知することが可能となる。
 ここで、図140,図141のフローチャートを参照して、読み出し命令送信または読み出し応答送信は、埋込データ送信後のラインブランキング期間内に実施されるようにした撮像送信処理について説明する。
 図140のフローチャートは、イメージセンサ1211の処理を表しており、図141のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 また、図140のステップS1371乃至S1373,S1375乃至S1380の処理は、図134のステップS1251乃至S1255,S1257乃至S1260の処理と同様であるので、その説明は省略する。
 さらに、図141のステップS1392乃至S1396の処理は、図135のステップS1272乃至S1276の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1371乃至S1373(図140)の処理により、画像が撮像され、定期異常診断が実行され、フレームスタートが送信されると、ステップS1374において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの埋込データを送信する。
 一方、アプリケーションプロセッサ1212においては、ステップS1391(図141)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてきた埋込データのパケットフッタを受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1391において、イメージセンサ1211より送信されてきた埋込データのパケットフッタを受信したと判定された場合、処理は、ステップS1392に進む。
 ステップS1392において、拡張モード対応CSI-2受信回路1552は、低速コマンド送信により、読み出し命令をイメージセンサ1211に送信する。
 イメージセンサ1211においては、ステップS1375,S1376(図140)の処理により、読み出し命令に応じて、定期異常診断の診断結果に応じた特異メッセージを含む読み出し応答が、画像データを送信する高速データ送信によりアプリケーションプロセッサ1212に送信される。
 以上の処理により、消費電力の最大値に対して影響を与えることなく、画像データを送信する前に、イメージセンサ1211の動作異常の可能性または動作異常の発生を、アプリケーションプロセッサ1212に迅速に通知することが可能となり、特異メッセージに応じた迅速な対応が可能になる。
 <撮像送信処理(その7)>
 以上においては、読み出し命令送信および読み出し応答送信は、埋込データ送信後のラインブランキング期間内に実施される例について説明してきたが、画像データ送信後のラインブランキング期間内に実施されてもよい。
 この場合、画像データのライン毎にイメージセンサ1211において定期異常診断が実施されて、特異メッセージが送信されるので、消費電力の最大値へ影響を与えることなく、各行の画像データに対応する特異メッセージを迅速にアプリケーションプロセッサ1212に通知することが可能となる。
 ここで、図142,図143のフローチャートを参照して、読み出し命令送信および読み出し応答送信を、画像データ送信後のラインブランキング期間内に実施されるようにした撮像送信処理について説明する。
 図142のフローチャートは、イメージセンサ1211の処理を表しており、図143のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 また、図142のステップS1411乃至S1413,S1416,S1417,S1419,S1420の処理は、図140のステップS1371,S1373乃至S1376,S1379,S1380の処理と同様であるので、その説明は省略する。
 さらに、図143のステップS1432乃至S1436の処理は、図141のステップ1392乃至S1396の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1411乃至S1413(図142)の処理により、画像が撮像され、フレームスタートが送信され、埋込データが送信されると、ステップS1414において、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの画像データを送信する。
 ステップS1415において、イメージセンサ1211は、定期異常診断を実行する。
 一方、アプリケーションプロセッサ1212においては、ステップS1431(図143)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてきた画像データのパケットフッタを受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1431において、イメージセンサ1211より送信されてきた画像データのパケットフッタを受信したと判定された場合、処理は、ステップS1432に進む。
 ステップS1432において、拡張モード対応CSI-2受信回路1552は、低速コマンド送信により、読み出し命令をイメージセンサ1211に送信する。
 イメージセンサ1211においては、ステップS1416,S1417(図142)の処理により、読み出し命令に応じて、定期異常診断の診断結果に応じた特異メッセージを含む読み出し応答が、画像データを送信する高速データ送信によりアプリケーションプロセッサ1212に送信される。
 さらに、ステップS1418において、拡張モード対応CSI-2送信回路1504は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS1418において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS1414に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1418において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS1419に進む。
 以上の処理により、画像データのライン毎にイメージセンサ1211が定期異常診断を実施して、特異メッセージを送信するので、消費電力の最大値へ影響を与えることなく、各行の画像データに対応する特異メッセージを迅速にアプリケーションプロセッサ1212に通知することが可能となる。
 結果として、アプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能となる。
 <撮像送信処理(その8)>
 以上においては、読み出し命令送信および読み出し応答送信が画像データ送信後のラインブランキング期間内に実施される例について説明してきたが、割り込み機能を用いて特異メッセージが送信されるようにしてもよい。
 割り込み機能を用いる場合、イメージセンサ1211は、アプリケーションプロセッサ1212と容易に同期できるので、イメージセンサ1211が決めるタイミングで割り込み実行することによって、イメージセンサ1211が決めるタイミングで特異メッセージを送信することが可能となる。
 なお、イメージセンサ1211は、帯域内割込みによって読み出し命令をトリガし、それに応じて読み出し応答を送信してもよいし、帯域内割込みによって読み出し命令を省略して読み出し応答を送信してもよい。
 ここで、図144,図145のフローチャートを参照して、割り込み機能を用いて特異メッセージが送信されるようにした撮像送信処理について説明する。
 図144のフローチャートは、イメージセンサ1211の処理を表しており、図145のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 また、図144のステップS1451乃至S1453,S1455,S1456,S1458乃至S1461の処理は、図140のステップS1371乃至S1373,S1375乃至S1380の処理と同様であるので、その説明は省略する。
 さらに、図145のステップS1472乃至S1476の処理は、図141のステップ1392乃至S1396の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1451乃至S1453(図144)の処理により、イメージセンサ1211においては、画像が撮像され、定期異常診断が実行され、フレームスタートが送信される。
 ステップS1454において、拡張モード対応CSI-2送信回路1504は、割り込み実行の開始をアプリケーションプロセッサ1212に通知する。
 一方、アプリケーションプロセッサ1212においては、ステップS1471(図145)において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1552は、イメージセンサ1211より送信されてくる割り込み実行の開始を示す通知を受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1471において、イメージセンサ1211より送信されてくる割り込み実行の開始を示す通知を受信したと判定された場合、処理は、ステップS1472に進む。
 ステップS1432において、拡張モード対応CSI-2受信回路1552は、低速コマンド送信により、読み出し命令をイメージセンサ1211に送信する。
 イメージセンサ1211においては、ステップS1455,S1456(図144)の処理により、読み出し命令に応じて、定期異常診断の診断結果に応じた特異メッセージを含む読み出し応答が、画像データを送信する高速データ送信によりアプリケーションプロセッサ1212に送信される。
 さらに、ステップS1457において、拡張モード対応CSI-2送信回路1504は、埋込データを送信する。
 以上の処理により、割り込み機能を用いることが可能となるので、イメージセンサ1211が決めるタイミングで割り込み実行することによって、イメージセンサ1211が決めるタイミングで特異メッセージをアプリケーションプロセッサ1212に送信することが可能となる。
 なお、イメージセンサ1211は、帯域内割込みによって読み出し命令をトリガし、それに応じて読み出し応答を送信してもよいし、帯域内割込みによって読み出し命令を省略して読み出し応答を送信してもよい。
 <撮像送信処理(その9)>
 以上においては、割り込み機能を用いて特異メッセージが送信される例について説明してきたが、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルのデータ内(例えば、埋込データ内)に特異メッセージを格納して送信されるようにしてもよい。
 画像データ送信とは異なるバーチャルチャネルのデータ内に特異メッセージを格納して送信することにより、画像データ送信のバーチャルチャネルの埋込データ内に特異メッセージを格納する余地がない場合でも特異メッセージを送信することが可能となる。
 なお、定期異常診断がフレームブランキング期間内に実行されることで、送信と同時には定期異常診断がなされないようにできるので、消費電力の最大値に対して影響を与えない。また、定期異常診断は、フレームブランキング期間外に実行されるようにしてもよい。
 これにより、画像データを送信する前に、イメージセンサ1211の動作異常の可能性、また動作異常の発生を、アプリケーションプロセッサ1212に迅速に通知することが可能となる。
 ここで、図146のフローチャートを参照して、イメージセンサ1211による画像データ送信とは異なるバーチャルチャネルのデータ内に特異メッセージを格納して送信するようにした撮像送信処理について説明する。
 なお、ここでは、第1のバーチャルチャネル(VC1)において、画像データが送信され、第2のバーチャルチャネル(VC2)において、特異メッセージを含む埋込データが送信される処理について説明する。
 ステップS1491において、画素1501が撮像を開始し、画素1501から出力される画像データが、AD変換器1502および画像処理部1503を介して拡張モード対応CSI-2送信回路1504に供給される。
 ステップS1492において、イメージセンサ1211は、定期異常診断を実行する。
 ステップS1493において、拡張モード対応CSI-2送信回路1504は、第1のバーチャルチャネルのフレームスタートを送信する。
 ステップS1494において、拡張モード対応CSI-2送信回路1504は、第2のバーチャルチャネルのフレームスタートを送信する。
 ステップS1495において、拡張モード対応CSI-2送信回路1504は、第1のバーチャルチャネルの埋め込みデータを送信する。
 ステップS1496において、拡張モード対応CSI-2送信回路1504は、第2のバーチャルチャネルの埋め込みデータを送信する。このとき、拡張モード対応CSI-2送信回路1504は、定期異常診断の診断結果に対応する特異メッセージを含めた第2のバーチャルチャネルの埋め込みデータを送信する。
 ステップS1497おいて、拡張モード対応CSI-2送信回路1504は、第1のバーチャルチャネルの画像データを送信する。
 ステップS1498において、拡張モード対応CSI-2送信回路1504は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS1498において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS1497に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1498において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS1499に進む。
 ステップS1499において、拡張モード対応CSI-2送信回路1504は、第2のバーチャルチャネルのユーザ定義データを送信する。
 ステップS1500において、拡張モード対応CSI-2送信回路1504は、第1のバーチャルチャネルのフレームエンドを送信する。
 ステップS1501において、拡張モード対応CSI-2送信回路1504は、第2のバーチャルチャネルのフレームエンドを送信する。
 ステップS1502において、拡張モード対応CSI-2送信回路1504は、高速データ送信の終了命令を受信したか否かを判定する。
 ステップS1502において、拡張モード対応CSI-2送信回路1504が、高速データ送信の終了命令を受信していないと判定した場合、処理はステップS1491に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1502において、拡張モード対応CSI-2送信回路1504が、高速データ送信の終了命令を受信したと判定した場合、処理は終了される。
 以上の処理により、画像データ送信のバーチャルチャネルの埋込データ内に特異メッセージを格納する余地がない場合でも特異メッセージを送信することが可能となる。
 <撮像送信処理(その10)>
 以上においては、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルのデータ内(例えば、埋込データ内)に特異メッセージを格納して送信される例について説明してきたが、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルの、非画像データの少なくとも一部内に格納されて送信されてもよい。
 非画像データは、例えば、パケットデータ(例えば、Generic Short Packet Data Types、Generic Long Packet Data Types)、ユーザ定義データ(User Defined Byte-based Data)またはリザーブド領域データ(Reserved for future use)である。
 特異メッセージが、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルの、非画像データの少なくとも一部内に格納される場合、イメージセンサ1211は、画像データのラインごとに特異メッセージを送信するので、各行の画像データに対応する特異メッセージを迅速に送信することが可能となる。
 これにより、特異メッセージを受信するアプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 定期異常診断が画像データ送信の前のラインブランキング期間内に実行されることにより、送信と同時には定期異常診断がなされないため、消費電力の最大値へ影響を与えない。また、定期異常診断は、ラインブランキング期間外に実行されるようにしてもよい。
 ここで、図147のフローチャートを参照して、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルの、非画像データの少なくとも一部内に格納されて送信されるようにした撮像送信処理について説明する。
 なお、ここでは、第1のバーチャルチャネル(VC1)において、画像データが送信され、第2のバーチャルチャネル(VC2)において、特異メッセージを含むユーザ定義データが送信される処理について説明する。
 また、図147のフローチャートのステップS1521乃至S1525,ステップS1530乃至S1532の処理は、図146のフローチャートのステップS1491,S1493乃至S1496,S1500乃至S1502の処理と同様であるので、その説明は省略する。ただし、ステップS1525の処理は、定期異常診断の診断結果を含まない点でステップS1496の処理とは異なる。
 すなわち、ステップS1521乃至S1525の処理により、撮像が開始され、第1のバーチャルチャネルと第2のバーチャルチャネルのそれぞれのフレームスタートと埋込データが送信されると、処理は、ステップS1526に進む。
 ステップS1526において、イメージセンサ1211は、定期異常診断を実行する。
 ステップS1527おいて、拡張モード対応CSI-2送信回路1504は、第1のバーチャルチャネルの画像データを送信する。
 ステップS1528において、拡張モード対応CSI-2送信回路1504は、第2のバーチャルチャネルのユーザ定義データを送信する。このとき、拡張モード対応CSI-2送信回路1504は、定期異常診断の診断結果に対応する特異メッセージを含む第2のバーチャルチャネルのユーザ定義データを送信する。
 ステップS1529において、拡張モード対応CSI-2送信回路1504は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS1529において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS1526に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1529において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS1530に進む。
 そして、ステップS1530,S1531において、第1のバーチャルチャネルと第1のバーチャルチャネルのフレームエンドが送信される。
 以上の処理により、画像データのラインごとに特異メッセージをイメージセンサが送信されるので、各行の画像データに対応する特異メッセージを迅速に送信することが可能となる。
 結果として、特異メッセージを受信するアプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 また、以上においては、特異メッセージを含むユーザ定義データが送信される例について説明してきたが、特異メッセージを含む非画像データであれば、ユーザ定義データでなくてもよく、例えば、特異メッセージを含むパケットデータやリザーブド領域データでもよい。
 <撮像送信処理(その11)>
 以上においては、画像データ送信のバーチャルチャネルとは異なるバーチャルチャネルの、非画像データの少なくとも一部内に特異メッセージが格納されて送信される例について説明してきたが、画像データ内に格納されて送信されてもよい。
 特異メッセージが画像データ内に格納されて送信される場合、画像データのライン毎にイメージセンサ1211が特異メッセージを送信するので、各行の画像データに対応する特異メッセージを迅速に送信することが可能となる。
 これにより、特異メッセージを受信するアプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 また、定期異常診断がラインブランキング期間内に実行されることにより、送信と同時には定期異常診断されないので、消費電力の最大値へ影響を与えない。
 さらに、定期異常診断は、ラインブランキング期間外に実行されるようにしてもよい。
 また、特異メッセージが画像データ内へ格納される場合、可視電子透かしメッセージまたは不可視電子透かしメッセージが重畳して格納されてもよい。
 例えば、可視電子透かしを用い、特異メッセージとして所定メッセージ(例えば、警告表示)が格納されてもよい。また、可視電子透かしを用い、イメージセンサ1211が高速データ送信を終了するまでのカウントダウンやカウントアップを示すカウントメッセージ(所定メッセージ)が格納されてもよい。
 これらは、人が認識できる表現(例えば、固定パターン)であってもよいし、人が認識できない表現(例えば、ランダムパターン)であってもよい。また、画像変化が微小であるために肉眼で視認しにくい、不可視電子透かしを用いて格納されてもよい。
 ここで、図148のフローチャートを参照して、特異メッセージが画像データ内に格納されて送信されるようにした撮像送信処理について説明する。
 なお、図148のフローチャートのステップS1551,S1552,ステップS1557,S1558の処理は、図131のフローチャートのステップS1191,S1193,S1197,S1198の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1551,S1552の処理により、撮像が開始され、フレームスタートが送信され、ステップS1553の処理により、埋込データが送信されると、処理は、ステップS1554に進む。
 ステップS1554において、イメージセンサ1211は、定期異常診断を実行する。
 ステップS1555おいて、拡張モード対応CSI-2送信回路1504は、バーチャルチャネルの画像データを送信する。このとき、拡張モード対応CSI-2送信回路1504は、定期異常診断の診断結果に対応する特異メッセージを含めて、バーチャルチャネルの画像データを送信する。
 ステップS1556において、拡張モード対応CSI-2送信回路1504は、1フレーム分の画像データの送信が完了したか否かを判定する。
 ステップS1556において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了していないと判定した場合、処理はステップS1554に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS1556において、拡張モード対応CSI-2送信回路1504が、1フレーム分の画像データの送信が完了したと判定した場合、処理はステップS1557に進む。
 そして、ステップS1557において、バーチャルチャネルのフレームエンドが送信される。
 以上の処理により、画像データのライン毎にイメージセンサ1211が特異メッセージを送信することが可能となり、各行の画像データに対応する特異メッセージをアプリケーションプロセッサ1212に対して迅速に送信することが可能となる。
 これにより、特異メッセージを受信するアプリケーションプロセッサ1212は、特異メッセージに応じた迅速な対応が可能になる。
 なお、以上の説明では、撮像開始を明記しているが、撮像終了について明記していない。これは撮像方式がグローバルシャッタ方式なのかローリングシャッタ方式なのか等によって異なるためである。
 例えば、グローバルシャッタ方式であれば、全画素を一斉に撮像できるので、次処理の前までに撮像終了してもよいし、フレーム内最初の画像データ送信の前までに撮像終了してもよい。
 一方、ローリングシャッタ方式であれば、画素の各行で実行される撮像および高速データ送信の少なくとも一部が重複して実行(並列実行)されてもよいため、フレーム内最後の画像データ送信の前までに撮像終了すればよい。
 また、撮像開始のタイミングは一例であり、例えば、フレーム内最初の画像データ送信の前のタイミングまで遅らせて実行されてもよい。
 さらに、定期異常診断のタイミングも一例であり、例えば、特異メッセージ送信の前のタイミングまで遅らせて実行されてもよい。
 <メッセージカウント値について>
 メッセージカウンタ1513は、HD(Humming Distance)≧1カウント(バイナリコード)とHD=1カウント(グレイコード)との何れかをインクリメントまたはデクリメントすることでメッセージカウンタ(メッセージカウント値)を生成する。
 なお、図149においては、図中の左側にHD(Humming Distance:ハミング距離)≧1のバイナリコードからなるメッセージカウント値の例が示されており、図中の右側にHD=1のグレイコードからなるメッセージカウント値の例が示されており、いずれも図中の下方向に向かってインクリメントされている。
 特に、メッセージカウンタ(メッセージカウント値)がグレイコードである場合、インクリメントまたはデクリメントに伴うハミング距離が一定になるので、電力観測攻撃や電磁観測攻撃に対する耐性を向上させることができる。
 メッセージカウント値は、カウント方式として、第1コード方式と第2コード方式と(例えば、バイナリコード方式とグレイコード方式と)が切り替えられてもよい。
 また、メッセージカウント値のカウント方式が必要に応じて切り替えられる場合、送信されるデータ量自体を変えることなく、イメージセンサ1211からアプリケーションプロセッサ1212に対して付加情報を伝達させるようにすることができる。
 例えば、イメージセンサ1211内において異常が検出される場合、メッセージカウント値のカウント方式が切り替えられてもよく、カウント方式に応じてイメージセンサ1211からアプリケーションプロセッサ1212に異常情報(例えば、異常の有無)を伝達することが可能となる。
 特に、バイナリコードとグレイコードとが切り替えられる場合、メッセージカウンタのインクリメントまたはデクリメントを維持しながら、付加情報を伝達することが可能となる。
 イメージセンサ1211が、バイナリコードとグレイコードとを切り替える場合、カウント切り替えなのかメッセージ送受信の不具合なのかをアプリケーションプロセッサ1212が判別できるようにするために、コード周期(左記は4ビットでコード周期が16カウントの例)を考慮したタイミングで切り替えることが望ましいが、その限りではない。
 イメージセンサ1211は、互いに関連性ある第1カウンタと第2カウンタとを備える場合、メッセージカウンタの不具合または改竄の有無を検証することが可能になる。
 例えば、インクリメントする第1カウンタとデクリメントする第2カウンタとの演算(例えば、加算)の結果からカウンタの不具合や改竄の有無を検証してもよい。
 すなわち、例えば、バイナリコードをインクリメントする第1カウンタとデクリメントする第2カウンタとが用いられる場合、図150で示されるように、それぞれの加算結果は、不具合や改竄がない限り、常に「1111」になる。このため、それぞれの加算結果が、「1111」となる場合、第1カウンタと第2カウンタとは正常値であるので、加算結果が「1111」からなる正常値であるか否かにより、不具合や改竄の有無を検証することができる。
 また、カウント方向が同じ第1カウンタと第2カウンタとの演算(例えば、減算)の結果からカウンタの不具合や改竄の有無を検証してもよい。
 すなわち、例えば、グレイコードをインクリメントする第1カウンタとデクリメントする第2カウンタとの場合、図151で示されるように、それぞれの減算結果は、不具合や改竄がない限り、常に「0000」になる。このため、それぞれの減算結果が、「0000」となる場合、第1カウンタと第2カウンタとは正常値であるので、減算結果が「0000」からなる正常値であるか否かにより、不具合や改竄の有無を検証することができる。
 <メッセージカウント処理>
 次に、図152のフローチャートを参照して、メッセージカウント処理について説明する。
 ステップS1571において、メッセージカウンタ1513は、第1カウント値および第2カウント値を初期化する。
 ステップS1572において、拡張モード対応CSI-2送信回路1504は、拡張パケットヘッダを送信するか否かを判定し、拡張パケットヘッダを送信すると判定されるまで処理を待機する。
 ステップS1572において、拡張パケットヘッダを送信すると判定された場合、処理は、ステップS1573に進む。
 ステップS1573において、拡張モード対応CSI-2送信回路1504は、メッセージカウンタ1513からメッセージカウント値として第1カウント値を取得し、拡張パケットヘッダに格納する。
 ステップS1574において、拡張モード対応CSI-2送信回路1504は、拡張パケットヘッダをアプリケーションプロセッサ1212に送信する。
 ステップS1575において、メッセージカウンタ1513は、第1カウント値が最大値であるか否かを判定する。
 ステップS1575において、第1カウント値が最大値であると判定された場合、処理は、ステップS1571に戻り、第1カウント値および第2カウント値が初期化される。
 また、ステップS1575において、第1カウント値が最大値ではないと判定された場合、処理は、ステップS1576に進む。
 ステップS1576において、メッセージカウンタ1513は、第1メッセージカウンタの第1カウント値を更新する(インクリメントまたはデクリメントする)。
 ステップS1577において、メッセージカウンタ1513は、第2メッセージカウンタの第2カウント値を更新する(インクリメントまたはデクリメントする)。
 ステップS1578において、メッセージカウンタ1513は、第1カウント値と第2カウント値とを演算する(加算または減算する)。
 ステップS1579において、メッセージカウンタ1513は、演算結果が正常値であるか否かを判定する。
 ステップS1579において、演算結果が正常値であると判定された場合、処理は、ステップS1580に進む。
 ステップS1580において、メッセージカウンタ1513は、第1カウント値と第2カウント値とが正常であると判定する。
 ステップS1579において、演算結果が正常値ではないと判定された場合、処理は、ステップS1581に進む。
 ステップS1581において、メッセージカウンタ1513は、第1カウント値と第2カウント値との少なくともいずれかが異常であると判定する。
 以上の処理により、メッセージカウンタのカウント値に対する不具合や改竄に対する耐性を向上させることが可能となる。
 なお、イメージセンサ1211は、正常と判断される場合は正常メッセージを、異常と判断される場合は異常メッセージを、それぞれ特異メッセージとして送信してもよい。また、メッセージカウント値は、異常メッセージなどの特異メッセージとして流用されてもよい。
 一方、特異メッセージは、フレームエンド外(例えば、フレームスタート内、埋込データ内、画像データ内)の拡張パケットフッタ内に格納されてもよい。また、特異メッセージを含むデータの暗号に基づく完全性演算値は、フレームエンド内の拡張パケットフッタ内に格納されてもよい。さらに、特異メッセージを含むデータの暗号に基づく完全性演算値は、拡張パケットフッタ内ではなく、埋込データ内のパケットデータ内に格納されてもよい。
 以上のように、イメージセンサ1211からアプリケーションプロセッサ1212に対して特異メッセージや付加情報が伝達される例を用いて説明したが、同様な考え方に従いアプリケーションプロセッサ1212からイメージセンサ1211またはディスプレイ1213に対して特異メッセージや付加情報が伝達されてもよい。
 <異常を識別する情報の格納について>
 拡張パケットヘッダ内または拡張パケットフッタ内には、例えば、Fatal warning(重大な異常を検出)、Sensor-internal warning(センサ内部に起因する異常を検出)、Sensor-external warning(センサ外部に起因する異常を検出)、Power-source warning(電源に起因する異常を検出)、Clock-source warning(クロック源に起因する異常を検出)、The others warning(その他に起因する異常を検出)、Physical warning(物理異常を検出)、Logical warning(論理異常を検出)、Power warning(電力異常を検出)、Voltage warning(電圧異常を検出)、Current warning(電流異常を検出)、Electromagnetic warning(電磁異常を検出)、Clock warning(クロック異常を検出)、Thermal warning(温度異常を検出)、Channel warning(伝送路異常を検出)、Message warning(メッセージ異常を検出)、Attack warning(攻撃を検出)、Tamper warning(例えば、侵害を検出)、Blind warning(例えば、妨害を検出)、Saturation warning(例えば、妨害を検出)、Fake warning(例えば、妨害を検出)、Foreign object warning(例えば、障害を検出)、Probe warning(例えば、侵害または障害を検出)、DOS warning(例えば、メッセージカウント異常を検出)、などの何れかを識別できるように定義されるWarning Descriptor(特異メッセージ)が格納されてもよい。
 Warning Descriptor(特異メッセージ)は、ベンダ固有領域(Vendor specific)、ユーザ定義領域(User Defined)またはリザーブド領域(Reserved for future use)の少なくとも一部内に格納されてもよい。
 また、Warning Descriptor(特異メッセージ)内の何れかの項目は、拡張パケットヘッダ(例えば、Security Descriptor)内または拡張パケットフッタ(例えば、ePF1)内、埋込データ内、および読み出し応答内などの何れかに定義されてもよい。
 なお、図153は、図58の拡張パケットヘッダePH2におけるリザーブド領域(Reserved)にWarning Descriptorが設定されるときの拡張パケットヘッダePH2の構成例が示されている。
 また、図154においては、Warning Descriptor(特異メッセージ)の各ビットを用いた識別情報の記述例が示されている。
 <特異メッセージの分離>
 特異メッセージの送信は、第1特異メッセージの送信と第2特異メッセージの送信とに分離されてもよい。
 拡張パケットヘッダは、画像データなどのライン(行)の高速データ送信毎に送信されるため、ビット幅が短いことが望ましいが、即時性が高いので、例えば、第1特異メッセージとして警告速報(例えば、Physical attack detection)や警告情報の一部が割り当てられて格納されてもよい。
 一方、例えば、第2特異メッセージに警告情報の詳細を示す情報(警告詳細)が割り当てられて、拡張パケットヘッダ外に格納されて送信されるようにする。
 図155は、拡張パケットヘッダに、第1特異メッセージとして警告速報(例えば、Physical attack detection)が設定される例を示している。
 <特異メッセージを分離して送信するときの送信処理>
 次に、図156,図157のフローチャートを参照して、特異メッセージを分離して送信するときの送信処理について説明する。
 なお、図156のフローチャートは、イメージセンサ1211の処理を表しており、図157のフローチャートは、アプリケーションプロセッサ1212の処理を表している。
 ステップS1591(図156)において、イメージセンサ1211は、異常診断を実行する。
 ステップS1592において、拡張モード対応CSI-2送信回路1504が、第1特異メッセージである警告速報を含む拡張パケットヘッダを送信する。
 ステップS1593において、拡張モード対応CSI-2送信回路1504が、第2特異メッセージである警告詳細を含む拡張パケットヘッダ外の、例えば、埋込データに含めて送信する。
 一方、ステップS1611において、アプリケーションプロセッサ1212は、警告速報を含む拡張パケットヘッダを受信したか否かを判定し、警告速報を含む拡張パケットヘッダを受信するまで、同様の処理を繰り返す。
 ステップS1611において、警告速報を含む拡張パケットヘッダを受信したと判定された場合、処理は、ステップS1612に進む。
 ステップS1612において、アプリケーションプロセッサ1212は、警告速報に基づいて、異常時処理を開始する。
 ステップS1613において、アプリケーションプロセッサ1212は、警告詳細を含む埋込データなどの拡張パケットヘッダを受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 そして、ステップS1613において、警告詳細を含む埋込データなどの拡張パケットヘッダを受信したと判定された場合、処理は、ステップS1614に進む。
 ステップS1614において、アプリケーションプロセッサ1212は、警告詳細の情報を、異常時処理に反映させる。
 以上の処理により、異常診断により異常が検出される場合に、即時性の高い警告速報(例えば、Physical attack detection)を迅速にアプリケーションプロセッサ1212に送信することが可能となり、異常時処理を迅速に開始することが可能となる。
 <特異メッセージを分離して送信するときの送信処理の変形例>
 以上においては、第1特異メッセージとして警告速報が送信される例について説明してきたが、さらに、警告速報が送信された後、警告詳細の読み出し命令を送信して、イメージセンサ1211から読み出し応答として警告詳細が送信されるようにしてもよい。
 次に、図158のフローチャートを参照して、警告速報が送信された後、警告詳細の読み出し命令を送信する場合の特異メッセージを分離して送信するときの送信処理について説明する。
 なお、図158のフローチャートにおけるステップS1631,S1632,S1634,S1635の処理は、図157のフローチャートにおけるステップS1611乃至S1613の処理と同様であるので、その説明は省略する。
 すなわち、ステップS1631,S1632の処理により、警告速報が受信されて、異常時処理が開始されると、ステップS1633において、アプリケーションプロセッサ1212が読み出し命令を送信する。
 これに応じて、イメージセンサ1211は、読み出し命令に応じて読み出し応答をアプリケーションプロセッサ1212に送信する。
 そして、ステップS1634,S1635の処理により、警告詳細が受信されて、異常時処理に反映させる。
 以上の処理により、異常診断により異常が検出される場合に、即時性の高い警告速報(例えば、Physical attack detection)を迅速にアプリケーションプロセッサ1212に送信することが可能となり、さらに、警告詳細を迅速に異常時処理に反映させることが可能となる。
 <Security Descriptor>
 拡張パケットヘッダ内または拡張パケットフッタ内には、パケットデータ(ペイロード)の暗号化の有無や、拡張パケットフッタ内のハッシュ値、メッセージ認証コードまたはデジタル署名の有無や、拡張パケットフッタ内のハッシュ値、メッセージ認証コードまたはデジタル署名のアルゴリズム種類などの何れかが定義されるSecurity Descriptor(例えば、Service Descriptorと呼称されてもよい)が格納されてもよい。
 また、イメージセンサ1211は、このSecurity Descriptorを用いて、イメージセンサ1211内外の異常の有無、イメージセンサ1211に対する妨害または攻撃の有無、などの何れかの特異メッセージをアプリケーションプロセッサ1212に通知してもよい。
 メッセージ認証コード(MAC: Message Authentication Code)としては、GMAC(Galois MAC)、CMAC(Cipher-based MAC)、HMAC(Hash-based MAC)、などの何れかが用いられてもよい。例えば、AES(Advanced Encryption Standard)またはSHA(Secure Hash Algorithm)が適用された、AES-GMAC、AES-CMAC、SHA2-HMAC、SHA3-HMACなどの何れかが用いられてもよい。
 図159は、図153におけるSecurity Descriptorに、イメージセンサ1211内外の異常の有無、およびイメージセンサ1211に対する妨害または攻撃の有無などの何れかの特異メッセージが設定される例が示されている。
 <推進装置に実装される例>
 イメージセンサ1211およびアプリケーションプロセッサ1212は、所望の推進装置に搭載される構成とすることができる。
 推進装置は、例えば、推進(可動、走行、歩行、飛行などの何れか)することが可能な車両、ロボット、ドローンなどの何れかであってもよく、AI(Artificial Intelligence)機能を搭載して自律推進できる、自律車両、自律ロボット、自律ドローンなどの何れかであってもよい。
 推進装置の推進は、推進装置の使用者によって制御されてもよく、推進装置は使用者に対して必要に応じて指示または警告を通知してもよい。一方、推進装置は、自らの推進を推進装置自身が自動制御するように構成されてもよい。
 図160は、上述したイメージセンサ1211およびアプリケーションプロセッサ1212が搭載される推進装置の制御システムの一例である推進制御システムの概略的な構成例を示すブロック図である。
 推進制御システム1600は、通信ネットワーク1601を介して接続された複数の電子制御ユニットを備える。図160に示した例では、推進制御システム1600は、駆動系制御ユニット1615、ボディ系制御ユニット1616、外部情報検出ユニット1617、内部情報検出ユニット1619、及び統合制御ユニット1611を備える。また、統合制御ユニット1611の機能構成として、マイクロコンピュータ1631、音声画像出力部1632、及び車載ネットワークI/F(interface)1633が図示されている。
 駆動系制御ユニット1615は、各種プログラムにしたがって推進装置の駆動系に関連する装置の動作を制御する。
 ボディ系制御ユニット1616は、各種プログラムにしたがって推進装置に装備された各種装置の動作を制御する。
 外部情報検出ユニット1617は、推進制御システム1600を搭載した推進装置の外部の情報を検出する。例えば、外部情報検出ユニット1617には、撮像部1618が接続される。外部情報検出ユニット1617は、撮像部1618に推進装置の外部の画像を撮像させるとともに、撮像された画像を受信する。外部情報検出ユニット1617は、受信した画像に基づいて、人、車、障害物、標識又は路面上の文字等の物体検出処理又は距離検出処理を行ってもよい。また、外部情報検出ユニット1617は、アプリケーションプロセッサ1212に対応する構成であってもよい。
 撮像部1618は、イメージセンサ1211に対応する構成であり、光を受光し、その光の受光量に応じた電気信号を出力する光センサである。撮像部1618は、電気信号を画像として出力することもできるし、測距の情報として出力することもできる。また、撮像部1618が受光する光は、可視光であっても良いし、赤外線等の非可視光であっても良い。
 内部情報検出ユニット1619は、推進装置の内部の情報を検出する。内部情報検出ユニット1619には、推進装置の内部の情報を検出する検出部1620が接続されるようにしてもよい。ここで、推進装置の内部の情報は、例えば、推進装置の温度や周辺湿度などの情報である。
 マイクロコンピュータ1631は、外部情報検出ユニット1617又は内部情報検出ユニット1619で取得される推進装置の内外の情報に基づいて、各種の制御目標値を演算し、駆動系制御ユニット1615に対して制御指令を出力することができる。また、マイクロコンピュータ1631は、アプリケーションプロセッサ1212に対応する構成であってもよい。
 また、マイクロコンピュータ1631は、外部情報検出ユニット1617又は内部情報検出ユニット1619で取得される推進装置の周囲の情報に基づいて推進を制御することにより、使用者の操作に拠らずに自律的に走行する自動運転等を目的とした協調制御を行うことができる。
 上述したように、撮像部1618はイメージセンサ1211に対応する構成であり、外部情報検出ユニット1617および/またはマイクロコンピュータ1631はアプリケーションプロセッサ1212に対応する構成であるので、撮像部1618と外部情報検出ユニット1617および/またはマイクロコンピュータ1631とは、相互に高速データ通信を実現する。
 さらに、マイクロコンピュータ1631は、外部情報検出ユニット1617で取得される推進装置の外部の情報に基づいて、ボディ系制御ユニット1616に対して制御指令を出力することができる。
 音声画像出力部1632は、推進装置の搭乗者又は推進装置の外部に対して、視覚的又は聴覚的に情報を通知することが可能な出力装置へ音声及び画像のうちの少なくとも一方の出力信号を送信する。図160の例では、出力装置として、オーディオスピーカ1612、表示部1613及びインストルメントパネル1614が例示されている。表示部1613は、例えば、オンボードディスプレイ及びヘッドアップディスプレイの少なくとも一つを含んでいてもよい。
 <推進制御処理(その1)>
 推進装置は、図160の推進制御システム1600により、異常メッセージが受信(例えば、1回受信、複数回受信、連続受信)される場合、推進装置の推進状況(例えば、推進装置の推進速度、推進装置周囲の障害物の有無)を調査し、推進状況が安全条件を満たすときには高速データ送信を終了してもよく、推進状況が安全条件を満たさないときには、推進制御を変更(例えば、減速、障害物が少ない位置へ推進装置を誘導)してもよい。
 ここで、図161のフローチャートを参照して、推進制御システム1600による上述した推進制御処理について説明する。
 ステップS1651において、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に相当する撮像部1618より異常が発生していることを示す異常メッセージ(からなる特異メッセージ)を受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 この処理においては、異常メッセージからなる特異メッセージが、1回受信されたか、複数回受信されたか、または、連続受信されたかのいずれかに基づいて、受信したか否かが判定されるようにしてもよい。
 ステップS1651において、異常メッセージを受信したと判定された場合、処理は、ステップS1652に進む。
 ステップS1652において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況を調査する。より具体的には、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、例えば、推進装置の推進速度や、推進装置周囲の障害物の有無等を推進状況として調査する。
 ステップS1653において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況が安全条件を満たすか否かを判定する。すなわち、推進装置の推進速度が所定の速度よりも高いか否か、および、推進装置周囲の障害物が所定の距離内に存在するか否か等により、推進状況が安全条件を満たすか否かが判定される。
 ステップS1653において、推進状況が安全条件を満たさないと判定された場合、処理は、ステップS1654に進む。
 ステップS1654において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況が安全条件を満たすように、推進の制御を変更し、処理は、ステップS1652に戻る。
 すなわち、例えば、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況が安全条件を満たすまで、駆動系制御ユニット1615やボディ系制御ユニット1616を制御して、例えば、推進装置の推進速度が所定の速度よりも低い速度となるように推進制御を変更したり、推進装置周囲の障害物が所定の距離内に存在しない状態になるように推進制御を変更する処理を繰り返す。
 そして、ステップ1653において、推進状況が安全条件を満たすと判定された場合、処理は、ステップS1655に進む。
 ステップS1655において、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に相当する撮像部1618との高速データ送信を終了する。
 以上の処理により、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に相当する撮像部1618から異常メッセージが供給されても、直ちに高速データ送信を終了するのではなく、推進状況が安全条件を満たすまで推進制御を変更してから、高速データ送信を終了する。
 これにより、イメージセンサ1211に相当する撮像部1618において異常が発生していることが分かっていても、直ちに高速データ送信が終了されて、推進制御に必要とされる画像データが突然送信されない状態になり、推進制御が致命的な状態に陥るのを防止することが可能となる。
 <推進制御処理(その2)>
 推進装置を制御する推進制御システム1600のアプリケーションプロセッサ1212は、画像データを撮像または表示する画像装置(第1情報処理装置または第1プロセッサと通信する第1センサ)と、他データを取得または表示する他データ装置(第2情報処理装置、第1プロセッサまたは第2プロセッサと通信する第2センサ)とを備えてもよい。
 推進制御システム1600は、画像装置(第1センサ)の状況を調査し、画像装置(第1センサ)に異常が発生してない場合、画像装置の画像データ(第1センサにより取得されるデータ)を優先して推進制御に用いるようにしてもよい。
 また、画像装置(第1センサ)に異常が発生している場合、推進制御システム1600は、推進装置の使用者に対して小警告を通知するようにしてもよい。そして、他データ装置(第2センサ)の状況を調査し、他データ装置(第2センサ)に異常が発生してない場合、他データ装置の他データ(第2センサにより取得されるデータ)を優先して推進制御に用いるようにしてもよい。
 さらに、他データ装置(第2センサ)に異常が発生している場合、推進制御システム1600は、推進装置の使用者に対して大警告を通知した上で、推進制御を使用者に移行させるようにして、高速データ送信を終了するようにしてもよい。
 なお、画像装置(第1センサ)と他データ装置(第2センサ)とは同種の構成でも別種の構成でもよい。つまり、画像装置(第1センサ)と他データ装置(第2センサ)とは、可視光センサ、赤外光センサ、紫外光センサ、偏光センサ、測距センサ、ToFセンサ、LiDARセンサなどのイメージセンサや、ミリ波レーダセンサ、超音波レーダセンサ、GPSセンサ、GNSSセンサ、RF測距センサ、RF測位センサなどの何れであってもよい。
 ここで、図162のフローチャートを参照して、推進制御システム1600による上述した推進制御処理について説明する。
 ステップS1671において、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、画像装置(第1センサ)の状況を調査する。より詳細には、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、例えば、画像装置(第1センサ)における異常診断の診断結果を取得することにより状況を調査する。
 ステップS1672において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、画像装置(第1センサ)の状況に基づいて、画像装置(第1センサ)に異常が発生しているか否かを判定する。
 ステップS1672において、画像装置(第1センサ)に異常が発生していないと判定された場合、処理は、ステップS1673に進む。
 ステップS1673において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、画像装置(第1センサ)で取得されるデータを優先して使用し、推進装置の推進を制御し、処理は、ステップS1671に戻り、それ以降の処理が繰り返される。
 すなわち、画像装置(第1センサ)に異常が発生していない限り、画像装置(第1センサ)で取得されるデータを使用して、推進装置の推進が制御される。
 ステップS1672において、画像装置(第1センサ)に異常が発生していると判定された場合、処理は、ステップS1674に進む。
 ステップS1674において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、音声画像出力部1632を制御して、オーディオスピーカ1612、表示部1613、およびインストルメントパネル1614の少なくともいずれかを用いて、音声、および画像の少なくともいずれかを用いて、推進装置の使用者に対して、画像装置(第1センサ)に異常が発生していることを示す小警告の情報を提示する。
 ステップS1675において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、他データ装置(第2センサ)の状況を調査する。より詳細には、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、他データ装置(第2センサ)における異常診断の診断結果を取得することにより、状況を調査する。
 ステップS1676において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、他データ装置(第2センサ)の状況に基づいて、他データ装置(第2センサ)に異常が発生しているか否かを判定する。
 ステップS1676において、他データ装置(第2センサ)に異常が発生していないと判定された場合、処理は、ステップS1677に進む。
 ステップS1677において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、他データ装置(第2センサ)で取得されるデータを優先して使用し、推進装置の推進を制御し、処理は、ステップS1671に戻り、それ以降の処理が繰り返される。
 すなわち、画像装置(第1センサ)に異常が発生しても、他データ装置(第2センサ)に異常が発生していない限り、他データ装置(第2センサ)で取得されるデータを使用して、推進装置の推進が制御される。
 ステップS1676において、他データ装置(第2センサ)に異常が発生していると判定された場合、処理は、ステップS1678に進む。
 ステップS1678において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、音声画像出力部1632を制御して、オーディオスピーカ1612、表示部1613、およびインストルメントパネル1614の少なくともいずれかを用いて、音声、および画像の少なくともいずれかを用いて、推進装置の使用者に対して、画像装置(第1センサ)および他データ装置(第2センサ)の両方で異常が発生していることを示す大警告の情報を提示する。
 このとき、自律推進が困難な状況になっているので、大警告において、推進装置の推進制御については、使用者で実行するように促す情報が提示されるようにしてもよい。
 ステップS1679において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進装置の推進制御は、図示せぬ操作部等が使用者により操作されることで発生する操作信号に応じたものに移行する。ただし、ステップS1679の処理以前に、推進装置の推進制御は、図示せぬ操作部等が使用者により操作されることで発生する操作信号に応じたものに移行されてもよい。
 ステップS1680において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に対応する画像装置(第1センサ)および他データ装置(第2センサ)との高速データ送信を終了して、画像装置(第1センサ)からの画像データや他データ装置(第2センサ)からのデータの入力を受け付けない状態とする。
 以上の処理により、イメージセンサ1211に相当する撮像装置(第1センサ)に異常が発生すると、小警告が提示されて異常が発生していることが提示されると共に、他データ装置(第2センサ)で取得されるデータに基づいて推進制御が実行される。
 また、撮像装置(第1センサ)に加えて、他データ装置(第2センサ)にも異常が発生すると、大警告が提示されて異常が発生して、自律的な推進制御が不能な状態になったことが提示されて、使用者による推進制御に切り替えられると共に、高速データ通信が終了される。
 これにより、推進制御に必要とされるデータを取得する一部のセンサ(画像装置(第1センサ))に異常が発生しても、他のセンサ(他データ装置(第2センサ))が取得するデータに基づいた推進制御ができるので、より安全性の高い推進制御を実現することが可能となる。
 また、いずれのセンサにも異常が発生した場合については、使用者に推進制御が移行されることになるので、異常が発生しているセンサにより取得される不確かなデータで推進制御が継続されることがなくなり、安全な推進制御を実現することが可能となる。
 <推進制御処理(その3)>
 特異メッセージとして異常メッセージが受信(例えば、1回受信、複数回受信、連続受信)される場合、推進装置の推進を制御する推進制御システム1600(のアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、推進状況を調査し、高速データ送信を終了できる状態である場合には、高速データ送信を終了してもよい。
 また、高速データ送信を終了できない状態である場合には、推進装置の推進を制御する推進制御システム1600(のアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、高速データ送信の維持をイメージセンサ1211に要求してもよい。
 これにより、高速データ送信は、推進制御システム1600の撮像部1618(イメージセンサ1211に相当)ではなく推進装置の推進を制御する外部情報検出ユニット1617および/またはマイクロコンピュータ1631(のアプリケーションプロセッサ1212に相当)によって終了されるので、イメージセンサ1211側で一方的に高速データ送信を終了させることで生じる不具合を回避することが可能となる。
 また、イメージセンサ1211に相当する撮像部1618は、高速データ送信の終了が必要な場合、特異メッセージとして異常メッセージを送信し、異常メッセージが所定条件を満たした後(例えば、所定時間が経過した後、所定回数の異常メッセージが送信された後、カウントダウン機能またはカウントアップ機能を備える異常メッセージが所定値になった後)に、高速データ送信維持が推進装置から要求されてない場合、高速データ送信を終了してもよい。
 一方、高速データ送信維持が推進装置(外部情報検出ユニット1617および/またはマイクロコンピュータ1631(のアプリケーションプロセッサ1212に相当))から要求されている場合、イメージセンサ1211に相当する撮像部1618は、高速データ送信の終了予定を延長してもよい。例えば、所定時間や所定回数が延長されてもよく、カウントダウンやカウントアップを示すカウント値が再設定(例えば、初期値へ再設定)されてもよい。
 なお、イメージセンサ1211(に相当する撮像部1618)は、例えば、何かしらの機能を、更新、初期化、再設定、再起動、全遮断するなどの何れかの高速データ送信不可処理を実行するために、高速データ送信を終了したい場合もあり得るが、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631に対して無断で高速データ送信を終了すると、それに起因して推進装置の事故が発生する可能性がある。
 上述の処理により、イメージセンサ1211に相当する撮像部1618がアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631に対して無断で高速データ送信が終了されることがないので、撮像部1618からアプリケーションプロセッサ1212に対して突然の高速データ送信が終了することに起因する不具合が回避される。
 以上のように、画像装置およびプロセッサは、画像データを用いて推進が直接的または間接的に必要に応じて制御される推進部を備えた推進装置の一部であってもよい。
 次に、図163,図164のフローチャートを参照して、上述した推進制御処理について説明する。
 なお、図163のフローチャートは、推進装置を制御する推進制御システム1600においてアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631の処理を表しており、図164のフローチャートは、イメージセンサ1211に相当する撮像部1618の処理を表している。
 ステップS1691(図163)において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に相当する撮像部1618より異常メッセージ(からなる特異メッセージ)を受信したか否かを判定し、受信したと判定されるまで、同様の処理を繰り返す。
 ステップS1691において、異常メッセージを受信したと判定された場合、処理は、ステップS1692に進む。
 ステップS1692において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況を調査する。
 ステップS1693において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、推進状況に基づいて、高速データ送信を終了できる状態であるか否かを判定する。
 ステップS1693において、高速データ送信を終了できる状態であるとき、処理は、ステップS1694に進む。
 ステップS1694において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、高速データ通信を終了し、イメージセンサ1211に相当する撮像部1618からの画像データの供給を受け付けない状態にして、処理を終了する。
 一方、ステップS1963において、高速データ送信を終了できる状態ではないとき、処理は、ステップS1695に進む。
 ステップS1695において、外部情報検出ユニット1617および/またはマイクロコンピュータ1631は、イメージセンサ1211に相当する撮像部1618に対して、高速データ送信の維持を要求する情報を送信する。
 一方、ステップS1711において、イメージセンサ1211に相当する撮像部1618は、異常が発生しており、高速データ送信の終了が必要な状態であるか否かを判定し、必要であると判定されるまで、同様の処理を繰り返す。
 ステップS1711において、高速データ送信の終了が必要な状態であると判定された場合、処理は、ステップS1712に進む。
 ステップS1712において、撮像部1618は、異常メッセージからなる特異メッセージをアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631に送信する。
 ステップS1713において、撮像部1618は、異常メッセージが所定条件を満たしたか否かを判定する。所定条件は、例えば、所定時間が経過したか、所定回数の異常メッセージが送信されたか、カウントダウン機能またはカウントアップ機能を備える異常メッセージが所定値になったか等である。
 ステップS1713において、異常メッセージが所定条件を満たしたと判定された場合、処理は、ステップS1714に進む。
 ステップS1714において、撮像部1618は、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631から高速データ送信維持の要求があったか否かを判定する。
 ステップS1714において、高速データ送信維持の要求があったと判定された場合、処理は、ステップS1715に進む。
 ステップS1715において、撮像部1618は、高速データ送信の終了予定を延長し、処理は、ステップS1711に戻る。
 一方、ステップS1714において、高速データ送信維持の要求がないと判定された場合、処理は、ステップS1716に進む。
 ステップS1716において、撮像部1618は、高速データ送信を終了し、画像データをアプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631に対して送信しない状態となる。
 以上の処理により、高速データ送信は、撮像部1618(イメージセンサ1211に相当)ではなく推進装置の推進を制御する推進制御システム1600の外部情報検出ユニット1617および/またはマイクロコンピュータ1631(アプリケーションプロセッサ1212に相当)によって終了されるので、イメージセンサ1211側で一方的に高速データ送信を終了させることで生じる不具合を回避することが可能となる。
 なお、イメージセンサ1211に相当する撮像部1618に異常(ネガティブな状況)が発生する可能性あること、または発生したことが警告される例を用いて説明したが、その限りではない。
 例えば、イメージセンサ1211に相当する撮像部1618にポジティブな状況が発生する可能性あること、または発生したことが伝達されてもよい。また、イメージセンサ1211に相当する撮像部1618にネガティブでもポジティブでもない状況の変化が発生する可能性があること、または発生したことが伝達されてもよい。
 そこで、上述した異常メッセージは、好転メッセージや変化メッセージなどの、正常時や通常時とは異なるメッセージであってもよい。上述したように、正常時または通常時は、特異メッセージとして正常メッセージまたは通常メッセージが送信されてもよい。また、正常時または通常時とは異なる場合に限り、特異メッセージが送信されてもよい。また、特異メッセージが推進装置内の推進制御システム1600で用いられる例を用いて説明したが、その限りではなく、特異メッセージは例えばスマートフォンやデジタルカメラなどの何れかのモバイル装置内で用いられてもよい。また、画像データストリームを維持したまま特異メッセージが送信される例を用いて説明したが、その限りではなく、例えば画像データ送信が停止してから特異メッセージが送信されるように構成されてもよい。
 ブロック図やフローチャートなどの何れかの図面を構成する要素のタイミングまたは位置は一例であり、異なるように構成されてもよい。上述した各例で説明した実施の形態は、種々の変形例が存在する。即ち、上述した各例の構成要素は、一部が省略されてもよく、一部または全部が変化していてもよく、一部または全部が変更されていてもよい。
 また、一部が他の構成要素で置き換えられていてもよく、一部または全部に他の構成要素が追加されていてもよい。更には、構成要素の一部または全部が複数に分割されていてもよく、一部または全部が複数に分離されていてもよく、分割または分離された複数の構成要素の少なくとも一部で機能や特徴を異ならせていてもよい。
 さらに、各構成要素の少なくとも一部を移動させて異なる実施の形態としてもよい。更にまた、各構成要素の少なくとも一部の組み合わせに結合要素や中継要素を加えて異なる実施の形態としてもよい。
 加えて、各構成要素の少なくとも一部の組み合わせに切り替え機能を加えて異なる実施の形態としてもよい。本実施の形態は、上述した各例で示した構成に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。なお、本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
 本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。
 したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。
 さらに、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。また、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 さらに、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。また、例えば、上述したプログラムは、任意の装置において実行することができる。
 その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。
 さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 また、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 <データストリームの停止方法>
 (HEARTBEAT機能)
 HEARTBEAT機能は、リクエスタとレスポンダとの両方でサポートされている場合、セッションの存続要否の判断に用いることができる。
 ここで、リクエスタおよびレスポンダは、それぞれアプリケーションプロセッサ1212およびイメージセンサ1211に対応する構成であり、セッションによって1つ以上の通信チャネルを持つことができる。
 以降においては、推進装置の推進を制御する推進制御システム1600において、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631がリクエスタであって、イメージセンサ1211に相当する撮像部1618がレスポンダである構成を例に用いてセッションが形成される例について説明を行う。もちろん、外部情報検出ユニット1617および/またはマイクロコンピュータ1631がレスポンダであって、撮像部1618がリクエスタであってもよい。
 リクエスタまたはレスポンダは、セッション内にいる間、HEARTBEAT要求メッセージをHEARTBEAT周期(HeartbeatPeriod)内で送信する。HeartbeatPeriodは、例えば、PSK_EXCHANGE_RSP response message内またはSuccessful KEY_EXCHANGE_RSP response message内のParam1内にResponderが格納して指定する。
 HEARTBEAT要求メッセージ送信側は、HEARTBEAT要求メッセージ受信側からのHEARTBEAT_ACK応答メッセージまたはERROR応答メッセージが、「所定値(例えば、2)×HEARTBEAT周期(=第1時間)」内で受信されない場合、セッションを終了する。
 HEARTBEAT要求メッセージ送信側は、HEARTBEAT要求メッセージ送信を再試行してもよく、再試行する前にHEARTBEAT要求メッセージ受信側からの応答を所定時間待機する。
 HEARTBEAT要求メッセージ受信側は、HEARTBEAT要求メッセージが「所定値(例えば、2)×HEARTBEAT周期」内で受信されない場合、セッションを終了する。
 このような場合、イメージセンサ1211に相当する撮像部1618に対する攻撃や誤動作などによって、撮像部1618の動作に起因するデータストリームの停止が生じる可能性がある。
 例えば、車、ドローン、ロボットなどの推進装置にイメージセンサ1211に相当する撮像部1618が搭載され、撮像部1618からのデータストリームが、推進装置の推進を制御する推進制御システム1600の外部情報検出ユニット1617および/またはマイクロコンピュータ1631で用いられる場合、データストリームが突然停止すると、推進制御に影響が生じて、最悪の場合、死傷事故を誘発する可能性がある。
 そこで、データストリームの停止が生じるような場合には、HEARTBEAT機能が無効化(HBEAT_CAP=0)されるようにして、リクエスタ(アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)に無断でレスポンダ(イメージセンサ1211に相当する撮像部1618)により、データストリームが停止されないようにする。
 リクエスタ(アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)に無断でデータストリームが停止されないようにされることにより、レスポンダ(イメージセンサ1211に相当する撮像部1618)の動作に起因するデータストリームの停止を回避することが可能となる。
 また、リクエスタ(アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、レスポンダ(イメージセンサ1211に相当する撮像部1618)から送信されるカウント値(例えば、メッセージカウンタの値)に基づいて、セッションの存続要否を判断してもよい。
 さらに、データストリームが突然停止するような場合、HEARTBEAT機能が有効化(HBEAT_CAP=1)されるようにして、HEARTBEAT周期に関するセッション終了を必須要件(例えば、”shall”または”must”などで表現される)ではなく必須要件外(例えば、”should”または”may”などで表現される任意要件)としてもよい。具体的には、HEARTBEAT周期に関するセッション終了を、HEARTBEAT要求メッセージ送信側は必須要件とし、HEARTBEAT要求メッセージ受信側は必須要件外としてもよい。また、HEARTBEAT周期に関するセッション終了を、HEARTBEAT要求メッセージ送信側は必須要件外とし、HEARTBEAT要求メッセージ受信側は必須要件としてもよい。また、HEARTBEAT周期に関するセッション終了を、HEARTBEAT要求メッセージ送信側は必須要件外とし、HEARTBEAT要求メッセージ受信側は必須要件外としてもよい。なお、一般に公開されているSPDM規格が、HEARTBEAT周期に関するセッション終了を必須要件ではなく必須要件外と定義してもよいし、SPDM規格の一部または全部を参照するセキュリティ規格がHEARTBEAT周期に関するセッション終了を必須要件ではなく必須要件外と定義してもよいし、SPDM規格を参照しないセキュリティ規格がHEARTBEAT周期に関するセッション終了を必須要件ではなく必須要件外と定義してもよい。
 また、レスポンダ(イメージセンサ1211に相当する撮像部1618)が、自らに対する攻撃や誤動作などの検知回路または予測回路を備え、自らや画像データに特異状況が発生する可能性あること(特異状況が既に発生したことも含む)を検知または予測してもよい。
 例えば、レスポンダ(イメージセンサ1211に相当する撮像部1618)が、HEARTBEAT_NAK応答メッセージを通信ホストである、リクエスタ(アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631)に送信すれば、レスポンダ(撮像部1618)の不具合の発生を通知できるので、リクエスタ(外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、自らのデータストリームの停止の要否を判断できる(例えば、Valueとしては、0x00, 0x05-0x5F, 0x62, 0x6D-0x7DのReserved領域を新たに割り当て可能)。
 リクエスタ(外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、データストリームの停止を判断するとき、レスポンダ(撮像部1618)に対して、END_SESSION要求を送信し、データストリームを送信するための高速データ通信を停止させる。ただし、END_SESSION要求の送信は、データストリームの停止を判断(例えば、HEARTBEAT_NAK応答メッセージを受信、ERROR応答メッセージを受信、第1時間が経過)してから所定時間が経過した後に実行されてもよいし、推進状況が安全条件を満たすまで保留されてもよい。
 これにより、リクエスタ(外部情報検出ユニット1617および/またはマイクロコンピュータ1631)は、例えば、データストリームを停止させても安全な状況下になった後に、データストリームを停止することができるので、推進制御に対する影響に起因する死傷事故の誘発を抑制することが可能となる。
 図165は、HEARTBEAT機能の有効化(HBEAT_CAP=1)または無効化(HBEAT_CAP=0)を設定するResponder flag fields definitionsの構成例を示している。これはレスポンダの構成例であるが、同様にリクエスタは、Requester flag fields definitionsに対応し、Responder flag fields definitions内のValueをResponderからRequesterに置き換えたHBEAT_CAPに対応してもよい。図166は、HEARTBEAT要求メッセージの構成例を示している。図167は、HEARTBEAT_ACK応答メッセージの構成例を示している。図168は、HEARTBEAT_NAK応答メッセージの構成例を示している。図169は、END_SESSION要求メッセージの構成例を示している。なお、SPDMVersionのValueをV1.1またはTBDとする構成例を示しているが、他のValue(例えば、V1.2(=0x12)、V1.3(=0x13)、V2.0(=0x20))であってもよい。また、一般に公開されているSPDM Version 1.1.0からの変更がある場合、例えばHEARTBEAT周期に関するセッション終了を必須要件ではなく必須要件外とする場合、SPDMVersionを他のValueとしてもよい。つまり、SPDMVersionのOffset、Bytes、またはValueの少なくとも何れかの記述は、一般に公開されているSPDM規格の最新仕様に準じてもよい。同様に、この出願に関わる図表または説明に用いられるOffset、Field、Bytes(Size in bytes)、Value、Size、Bit、Description、Name、Error code、Error data、ExtendedErrorData、ID、Vendor ID length、Registry or standards body name、bit assign、Remarks、eDT、eVC、Addr、Initial Value、Setting Data、Attribute、Detail、Embedded Data Format Code、Security MACまたはSecurity protocolなどの少なくとも何れかの記述は、SPDM規格、DMTF内規格、MIPI内規格、または他規格の最新仕様に準じてもよい。
 HEARTBEAT_NAK応答メッセージは、異常メッセージの特異メッセージである。また、HEARTBEAT_NAK応答メッセージは、例えばParam1やParam2などの領域を新たに定義して対応ビットを割り当てることによって、特異状況が通知されるようにしてもよい。すなわち、HEARTBEAT_NAK応答メッセージ内に、上述した何れかの他の特異メッセージが格納されてもよい。
 <HEARTBEAT処理(その1)>
 次に、図170のタイミングチャートを参照して、HEARTBEAT処理(その1)について説明する。
 ここで、図170の左部は、CCIホスト(リクエスタ)である、アプリケーションプロセッサ1212に相当する外部情報検出ユニット1617および/またはマイクロコンピュータ1631の動作タイミングが表されている。
 また、図170の右部は、CCIデバイス(レスポンダ)であるイメージセンサ1211に相当する撮像部1618の動作タイミングが表されている。
 すなわち、ステップS1731,S1751の処理により、CCIホスト(リクエスタ)が、CCIデバイス(レスポンダ)に対してPSK_FINISH要求メッセージを送信する(ステップS507またはS525の一部と同様)。
 ステップS1752,S1732の処理により、CCIデバイス(レスポンダ)が、CCIホスト(リクエスタ)に対してPSK_FINISH_RSP応答メッセージ送信する(ステップS507またはS525の一部と同様)。
 この処理により、HEARTBEAT機能が有効化状態になる。
 ステップS1733,S1753の処理により、CCIホスト(リクエスタ)が、HEARTBEAT要求メッセージをCCIデバイス(レスポンダ)に対して送信する。
 これに応じて、ステップS1754,S1734の処理により、CCIデバイス(レスポンダ)が、HEARTBEAT_ACK応答メッセージをCCIホスト(リクエスタ)に対して送信する。
 以降、CCIホスト(リクエスタ)は、HEARTBEAT周期(HeartbeatPeriod)毎にHEARTBEAT要求メッセージをCCIデバイス(レスポンダ)に対して送信し、これに応じて、CCIデバイス(レスポンダ)が、HEARTBEAT_ACK応答メッセージをCCIホスト(リクエスタ)に対して送信する処理が繰り返される。
 すなわち、ステップS1733乃至S1736およびS1753乃至S1756で示されるように、この処理が継続的に繰り返されている限り、通信状態が正常に確立された状態であることが認識される。
 ここで、CCIデバイス(レスポンダ)において異常が検出される状態になると、すなわち、通信状態が確立できていない状態になることを想定する。すると、ステップS1737,S1757の処理により、CCIホスト(リクエスタ)に送信されたHEARTBEAT要求メッセージに対して、ステップS1758,S1738の処理のように、CCIデバイス(レスポンダ)は、HEARTBEAT_NAK応答メッセージをCCIホスト(リクエスタ)に対して送信する。ただし、通信状態が確立できている状態で、異常メッセージとしてHEARTBEAT_NAK応答メッセージをCCIホスト(リクエスタ)に対して送信してもよい。
 ステップS1738の処理により、CCIホスト(リクエスタ)がHEARTBEAT_NAK応答メッセージを受信すると、ステップS1739の処理によりセッション(および高速データ通信)の終了を宣言するEND_SESSION要求メッセージをCCIデバイス(レスポンダ)に対して送信し、セッション鍵を破棄またはクリーンアップする。ただし、CCIホスト(リクエスタ)は、END_SESSION要求メッセージを送信してから所定時間が経過した後、CCIデバイス(レスポンダ)からの後述するEND_SESSION_ACK応答メッセージ、END_SESSION_NAK応答メッセージ、またはERROR応答メッセージを受信した後、などの場合にセッション鍵を破棄またはクリーンアップしてもよい。
 これに応じて、ステップS1759において、CCIデバイス(レスポンダ)は、END_SESSION要求メッセージを受信すると、ステップS1760において、END_SESSION_ACK応答メッセージをCCIホスト(リクエスタ)に送信し、セッション鍵を破棄またはクリーンアップして、セッション(および高速データ通信)を終了する。
 この処理により、HEARTBEAT機能が無効化状態になる。
 以上のような一連の処理により、CCIデバイスにおいて異常が発生しても、HEARTBEAT_NAK応答メッセージがCCIホストに供給され、一連の処理がなされた後に、セッション(および高速データ通信)が終了されて、データストリームが停止されることになるので、CCIデバイスが、CCIホストに対して無断でデータストリームを停止させるようなことが防止される。
 なお、何らかの原因で、HEARTBEAT要求メッセージが、HEARTBEAT周期(HeartbeatPeriod)毎にCCIデバイス(レスポンダ)において受信できない状態になった場合については、CCIホスト(リクエスタ)がEND_SESSION要求メッセージをCCIデバイス(レスポンダ)に対して送信し、セッション(および高速データ通信)を終了させる。
 すなわち、この場合も、セッション(および高速データ通信)の終了は、CCIホスト(リクエスタ)の判断により、END_SESSION要求メッセージが送信されることで実現されることになるので、やはり、CCIデバイスが、CCIホストに対して無断でデータストリームを停止させるようなことが防止される。
 <HEARTBEAT処理(その2)>
 CCIデバイス(レスポンダ)が異常を検出した場合や、所定時間(=第1時間)内にHEARTBEAT要求メッセージが受信されない場合でも、所定時間(=第2時間)内にCCIデバイス(レスポンダ)において、CCIホスト(リクエスタ)からのEND_SESSION要求メッセージが受信できないことがある。ここで、第1時間は、「所定値(例えば、2)×HEARTBEAT周期(HeartbeatPeriod)」に相当する時間であり、第2時間は、「所定値(例えば、2)×HEARTBEAT周期(HeartbeatPeriod)」に相当する時間が経過してから、END_SESSION要求メッセージが送信されるまでの更なる経過時間である。
 そこで、所定時間(=第2時間)内にEND_SESSION要求メッセージがCCIデバイス(レスポンダ)で受信されない場合には、所定時間(=第2時間)内にEND_SESSION要求メッセージがCCIデバイス(レスポンダ)で受信されないことを示すEND_SESSION_NAK応答メッセージを定義し、CCIデバイス(レスポンダ)からCCIホスト(リクエスタ)に対して通知できるようにしてもよい。
 図171は、所定時間(=第2時間)内にEND_SESSION要求メッセージがCCIデバイス(レスポンダ)で受信されないことを示すEND_SESSION_NAK応答メッセージの構成例を示している。
 また、END_SESSION_NAK応答メッセージは、例えば、図171のParam1やParam2などの領域を新たに定義して対応ビットを割り当てることによって、特異状況が通知されるようにしてもよい。つまり、上述した何れかの特異メッセージまたは異常メッセージまたは付加情報が格納されてもよい。
 次に、図172,図173のフローチャートを参照して、HEARTBEAT処理(その2)について説明する。
 なお、図172のフローチャートは、CCIホスト(リクエスタ)の処理を表しており、図173のフローチャートは、CCIデバイス(レスポンダ)の処理を表している。
 ステップS1771(図172)において、CCIホスト(リクエスタ)は、PSK_FINISH要求メッセージをCCIデバイス(レスポンダ)に送信する。
 これに応じて、ステップS1791(図173)において、CCIデバイス(レスポンダ)は、PSK_FINISH要求メッセージが送信されてきたか否かに基づいて、PSK_FINISH_RSP応答メッセージをCCIホスト(リクエスタ)に送信するか否かを判定し、PSK_FINISH_RSP応答メッセージを送信すると判定するまで、同様の処理を繰り返す。
 そして、ステップS1791において、PSK_FINISH_RSP応答メッセージを送信すると判定された場合、ステップS1792において、CCIデバイス(レスポンダ)は、PSK_FINISH_RSP応答メッセージをCCIホスト(リクエスタ)に送信する。
 ここで、ステップS1772において、CCIホスト(リクエスタ)は、CCIデバイス(レスポンダ)からのPSK_FINISH_RSP応答メッセージを受信したか否かを判定し、PSK_FINISH_RSP応答メッセージを受信したと判定するまで、同様の処理を繰り返す。
 ステップS1772において、PSK_FINISH_RSP応答メッセージを受信したと判定した場合、処理は、ステップS1773に進む。
 ステップS1773において、CCIホスト(リクエスタ)は、HEARTBEAT要求メッセージをCCIデバイス(レスポンダ)に送信する。
 これに対応して、ステップS1793(図173)において、CCIデバイス(レスポンダ)は、HEARTBEAT要求メッセージを受信したか否かを判定する。
 ステップS1793において、HEARTBEAT要求メッセージを受信したと判定された場合、処理は、ステップS1794に進む。
 ステップS1794において、CCIデバイス(レスポンダ)は、HEARTBEAT_ACK応答メッセージをCCIホスト(リクエスタ)に送信し、処理は、ステップS1793に戻る。
 ここで、ステップS1774(図172)において、CCIホスト(リクエスタ)は、HEARTBEAT_ACK応答メッセージを受信したか否かを判定する。
 ステップS1774において、HEARTBEAT_ACK応答メッセージを受信したと判定した場合、処理は、ステップS1773に戻る。
 CCIホスト(リクエスタ)がHEARTBEAT要求をCCIデバイス(レスポンダ)に送信し、これに応じてCCIデバイス(レスポンダ)がHEARTBERAT_ACK応答メッセージをCCIホスト(リクエスタ)に返す処理を繰り返す限り、ステップS1773,S1774(図172)、およびステップS1793,S1794(図173)の処理が繰り返される。
 すなわち、CCIホスト(リクエスタ)とCCIデバイス(レスポンダ)との通信が確立した状態が維持される限り、CCIホスト(リクエスタ)がHEARTBEAT周期(HeartbeatPeriod)でHEARTBEAT要求メッセージをCCIデバイス(レスポンダ)に送信し、これに応じてCCIデバイス(レスポンダ)がHEARTBERAT_ACK応答メッセージをCCIホスト(リクエスタ)に返す処理を繰り返される。
 一方、ステップS1793(図173)において、HEARTBEAT要求メッセージを受信しないと判定された場合、処理は、ステップS1795に進む。
 ステップS1795において、CCIデバイス(レスポンダ)は、異常診断により異常が検出されたか否かを判定する。
 ステップS1795において、異常が検出されたと判定された場合、処理は、ステップS1796に進む。
 ステップS1796において、CCIデバイス(レスポンダ)は、HEARTBERAT_NAK応答メッセージをCCIホスト(リクエスタ)に送信する。
 これに対し、ステップS1774(図172)において、HEARTBERAT_ACK応答メッセージを受信しないと判定された場合、処理は、ステップS1775に進む。
 ステップS1775において、CCIデバイス(レスポンダ)は、HEARTBERAT_NAK応答メッセージを受信したか否かを判定する。
 ステップS1775において、HEARTBERAT_NAK応答メッセージを受信したと判定した場合、処理は、ステップS1777に進む。
 ステップS1777において、CCIホスト(リクエスタ)は、END_SESSION要求メッセージをCCIデバイス(レスポンダ)に送信する。
 ステップS1778において、CCIホスト(リクエスタ)は、セッション鍵を破棄またはクリーンアップして、セッション(および高速データ通信)を終了する。
 これに対して、ステップS1798(図173)において、CCIデバイス(レスポンダ)は、第1時間が経過した後、さらに、第2時間が経過するまでの間にEND_SESSION要求メッセージを受信したか否かを判定する。
 ステップS1798において、END_SESSION要求メッセージを受信したと判定した場合、処理は、ステップS1799に進む。
 ステップS1799において、CCIデバイス(レスポンダ)は、END_SESSION_ACK応答メッセージをCCIホスト(リクエスタ)に送信する。
 ステップS1800において、CCIデバイス(レスポンダ)は、セッション鍵を破棄またはクリーンアップして、セッション(および高速データ通信)を終了する。
 すなわち、CCIデバイス(レスポンダ)において異常が検出されると、HEARTBERAT_NAK応答メッセージがCCIホスト(リクエスタ)に送信され、END_SESSION要求メッセージがCCIデバイス(レスポンダ)に送信され、これに応じてENDSESSION_ACK応答メッセージがCCIホスト(リクエスタ)に送信されて、CCIホスト(リクエスタ)、およびCCIデバイス(レスポンダ)の双方において、セッション鍵が破棄またはクリーンアップされて、セッション(および高速データ通信)が終了する。
 また、ステップS1795(図173)において、異常が検出されない場合、処理は、ステップS1797に進む。
 ステップS1797において、CCIデバイス(レスポンダ)は、直前のHEARTBERAT要求メッセージを受信してから第1時間が経過したか否かを判定する。
 ステップS1797において、直前のHEARTBERAT要求メッセージを受信してから第1時間が経過していないと判定された場合、処理は、ステップS1793に戻る。
 一方、ステップS1775において、HEARTBERAT_NAK応答メッセージを受信しない場合、処理は、ステップS1776に進む。
 ステップS1776において、CCIデバイス(レスポンダ)は、直前のHEARTBERAT要求を送信してから第1時間が経過したか否かを判定する。
 ステップS1776において、直前のHEARTBERAT要求メッセージを送信してから「所定値(例えば、2)×HEARTBEAT周期(HeartbeatPeriod)」に相当する第1時間が経過していないと判定された場合、処理は、ステップS1774に戻る。
 すなわち、CCIデバイス(レスポンダ)において、HEARTBEAT要求メッセージを受信できない状態で、異常が検出されない場合、第1時間が経過するまでは、ステップS1774乃至S1776(図172)の処理、並びに、ステップS1793,S1795,S1797(図173)の処理が繰り返される。
 そして、ステップS1776(図172)において、第1時間が経過すると、処理は、ステップS1777,S1778に進み、CCIホスト(リクエスタ)は、END_SESSION要求メッセージを送信して、セッション鍵を破棄またはクリーンアップして、セッション(および高速データ通信)を終了する。
 また、CCIデバイス(レスポンダ)においては、ステップS1797(図173)において、第1時間が経過すると、処理は、ステップS1798に進む。
 この場合、処理は、ステップS1798乃至S1800の処理がなされる。
 したがって、CCIデバイス(レスポンダ)に異常が検出されない状態であっても、CCIデバイス(レスポンダ)において、HEARTBEAT要求メッセージが第1時間以上受信できない状態が継続されると、CCIホスト(リクエスタ)からのEND_SESSION要求メッセージに基づいて、セッション(および高速データ通信)が終了される。
 さらに、ステップS1798において、前回HEARTBEAT要求メッセージを受信してから、第1時間が経過した後、さらに、第2時間が経過するまでの間にEND_SESSION要求メッセージを受信しないと判定した場合、処理は、ステップS1801に進む。
 ステップS1801において、CCIデバイス(レスポンダ)は、END_SESSION_NAK応答メッセージをCCIホスト(リクエスタ)に送信する。
 これにより、何らかの原因で、CCIデバイス(レスポンダ)において、END_SESSION要求メッセージが受信できない状態が、前回HEARTBEAT要求メッセージを受信してから、第1時間が経過した後、さらに、第2時間以上継続した場合には、CCIホスト(リクエスタ)に対してEND_SESSION_NAK応答メッセージが送信されて、セッション(および高速データ通信)が終了される。
 この場合、CCIデバイス(レスポンダ)が自身の判断で高速データ通信を終了することになるが、CCIホスト(リクエスタ)に対してEND_SESSION_NAK応答メッセージが送信されるので、CCIホスト(リクエスタ)は、CCIデバイス(レスポンダ)において高速データ通信が終了したことを認識することができる。
 また、この処理では、異常が検出された場合、所定時間(=第1時間)を待つ前に、CCIデバイス(レスポンダ)からCCIホスト(リクエスタ)に対して早急に異常が通知される。さらに、HEARTBEAT_NAK応答メッセージは、上述した特異メッセージ、異常メッセージまたは付加情報で置き換えられてもよい。なお、ステップS1797(第1時間が経過したか?)の処理とステップS1798(第2時間内にEND_SESSION要求を受信したか?)の処理との間にステップS1796(HEARTBEAT_NAK応答を送信する)と同様な処理を追加してもよい。つまり、第1時間が経過した場合、HEARTBEAT_NAK応答を送信してもよい。また、異常を検出した場合のHEARTBEAT_NAK応答と第1時間が経過した場合のHEARTBEAT_NAK応答とで、メッセージの一部(例えば、Param1、Param2)または全部が異なってもよい。
 <HEARTBEAT処理(その3)>
 HEARTBEAT_NAK応答、およびEND_SESSION_NAK応答メッセージは、少なくともいずれか一方を省略するようにしてもよい。
 ここで、図174,図175のフローチャートを参照して、HEARTBEAT_NAK応答メッセージ、およびEND_SESSION_NAK応答メッセージの両方を省略するようにしたHEARTBEAT処理(その3)について説明する。
 なお、図174のフローチャートは、CCIホスト(リクエスタ)の処理を表しており、図175のフローチャートは、CCIデバイス(レスポンダ)の処理を表している。
 ここで、図174のステップS1811乃至S1817の処理は、図172のステップS1771乃至S1774、およびステップS1776乃至S1778の処理に対応しているので、その説明は省略する。また、図175のステップS1831乃至S1838の処理は、図173のステップS1791乃至S1794、およびステップS1797乃至S1800の処理に対応しているので、その説明は省略する。
 すなわち、図174のCCIホスト(リクエスタ)の処理においては、異常診断結果に基づいた異常の有無に拘わらず、前回HEARTBEAT要求メッセージを受信してから第1時間が経過した場合については、CCIデバイス(レスポンダ)と通信できない状態になったものとみなし、END_SESSION要求メッセージが送信されて、セッション(および高速データ通信)が終了される。
 また、図175のCCIデバイス(レスポンダ)の処理においては、前回HEARTBEAT_ACK応答メッセージを受信してから第1時間が経過するまでに次のHEARTBEAT_ACK応答メッセージが受信できない場合、CCIホスト(リクエスタ)と通信できない状態になったものとみなされ、さらに、第2時間が経過するまでに、END_SESSION要求メッセージが送信されてきたときについては、END_SESSION_ACK応答メッセージが送信されて、セッション(および高速データ通信)が終了される。
 一方、さらに、第2時間が経過するまでに、END_SESSION要求メッセージが送信されてこないときについては、そのままセッション(および高速データ通信)が終了される。
 以上の処理においても、何らかの原因で、HEARTBEAT要求メッセージが、HEARTBEAT周期(HeartbeatPeriod)毎にCCIデバイス(レスポンダ)において受信できない状態になった場合については、セッション(および高速データ通信)が終了させることが可能となる。
 また、この処理においても、セッション(および高速データ通信)の終了は、基本的には、CCIホスト(リクエスタ)の判断により、END_SESSION要求メッセージが送信されることで実現されることになるので、やはり、CCIデバイスが、CCIホストに対して無断でデータストリームを停止させるようなことが防止される。ただし、この処理では、第2時間以上END_SESSION要求メッセージが受信できない場合については、CCIデバイス(レスポンダ)の判断で、高速データ通信からなるセッションが終了される。
 <HEARTBEAT処理の応用例1>
 CCIデバイス(レスポンダ)は、エラーや不具合などの異常が発生した場合に、CCIホスト(リクエスタ)にERROR応答メッセージを送信するようにしてもよい。
 すなわち、CCIデバイス(レスポンダ)は、CCIホスト(リクエスタ)に対して、HEARTBEAT_NAK応答メッセージ、およびEND_SESSION_NAK応答メッセージの少なくとも何れかの代わりに、HEARTBEAT機能に関連するエラーまたは不具合に対応するERROR応答メッセージを送信してもよい。
 ERROR応答メッセージは、例えば、図176で示されるような構成とされる。図176で示されるように、ERROR応答メッセージには、例えば、Param1(Error code)、Param2(Error data)およびExtendedErrorDataの領域が定義されるようにして、対応ビットを割り当てることにより、特異状況が通知されるようにしてもよい。
 つまり、上述した何れかの特異メッセージ、異常メッセージ、および付加情報の少なくともいずれかが格納されてもよい。また、HEARTBEAT機能またはEND_SESSION要求メッセージなどに関連するエラーまたは不具合に対応するERROR応答メッセージとして、既存のError code(例えば、Unspecified、InvalidSession(Value:0x02、Description:The record layer used an invalid session ID.、Error data:This shall be the invalid session ID.、ExtendedErrorData:No extended error data is provided.))が用いられてもよい。
 図177は、Error codeとError dataの設定例を示している。ただし、Reserved領域またはVendor/Other Standards Defined領域が、HEARTBEAT機能またはEND_SESSION要求メッセージなどに関連するエラーまたは不具合に対応するエラー領域として新たに定義されてもよい。また、一般に公開されているSPDM規格によって定義されるSPDM仕様内のError code and error data表内の設定が用いられてもよい。また、図178は、ExtendedErrorDataの設定例を示している。
 <HEARTBEAT処理の応用例2>
 HEARTBEAT要求メッセージを、VENDOR_DEFINED_REQUEST要求メッセージで疑似的に定義すると共に、HEARTBEAT_ACK応答(およびHEARTBEAT_NAK応答)メッセージを、VENDOR_DEFINED_RESPONSE応答メッセージで疑似的に定義することにより、HEARTBEAT要求およびHEARTBEAT_ACK応答の代わりに用いることで、疑似的にHEARTBEAT機能を実現するようにしてもよい。
 以降においては、VENDOR_DEFINED_REQUEST要求メッセージおよびVENDOR_DEFINED_RESPONSE応答メッセージにより実現される、疑似的なHEARTBEAT機能を、単に、疑似HEARTBEAT機能と称する。
 すなわち、疑似HEARTBEAT機能が用いられる場合、HEARTBEAT機能は無効化(HBEAT_CAP=0)することが可能となる。
 なお、図179は、疑似HEARTBEAT機能が実現される場合のRegistry or standards body IDの設定例を示している。ただし、一般に公開されているSPDM規格によって定義されるSPDM仕様内のRegistry or standards body ID表内の設定が用いられてもよい。つまり、本技術は、DMTF(Distributed Management Task Force)、TCG(Trusted Computing Group)、USB(Universal Serial Bus)、PCI-SIG(Peripheral Component Interconnect Special Interest Group)、IANA(Internet Assigned Numbers Authority)、HDBaseT、MIPI(Mobile Industry Processor Interface)、CXL(Compute Express Link)、JEDEC(Joint Electron Device Engineering Council)などのうちの少なくとも何れかのstandards bodyが定義する規格内に適用されてもよいし、これらのうちの少なくとも何れかのstandards bodyまたは他のstandards bodyが定義する規格内のHEARTBEAT同等機能またはEND_SESSION同等機能に適用されてもよい。また、図180,図181は、それぞれ疑似HEARTBEAT機能が実現される場合のVENDOR_DEFINED_REQUEST要求メッセージおよびVENDOR_DEFINED_RESPONSE応答メッセージの設定例を示している。ただし、疑似HEARTBEAT機能は、SPDM規格に準じる他メッセージまたはCCI規格に準じるメッセージまたは他規格に準じるメッセージなどで定義されてもよい。同様に、END_SESSION要求メッセージを、VENDOR_DEFINED_REQUEST要求メッセージで疑似的に定義すると共に、END_SESSION_ACK応答(およびEND_SESSION_NAK応答)メッセージを、VENDOR_DEFINED_RESPONSE応答メッセージで疑似的に定義することにより、END_SESSION要求およびEND_SESSION_ACK応答の代わりに用いることで、疑似的にEND_SESSION機能を実現するようにしてもよい。以降においては、VENDOR_DEFINED_REQUEST要求メッセージおよびVENDOR_DEFINED_RESPONSE応答メッセージにより実現される、疑似的なEND_SESSION機能を、単に、疑似END_SESSION機能と称する。ただし、疑似END_SESSION機能は、SPDM規格に準じる他メッセージまたはCCI規格に準じるメッセージまたは他規格に準じるメッセージなどで定義されてもよい。
 <画像系通信における鍵更新>
 本技術は、例えばMIPI(Mobile Industry Processor Interface)AllianceのCSI(Camera Serial Interface)規格またはDSI(Display Serial Interface)規格などに適用する際に好適な、セッション鍵(暗号化鍵またはMAC鍵)の鍵更新を開示する。本技術は、CSI-2規格またはDSI-2規格に適用する際に特に好適である。なお、CSI-2規格またはDSI-2規格は、制御系通信(CCI通信と称する)と画像系通信(被制御系通信またはCSI-2通信またはDSI-2通信と称する)とを含む。制御系通信は、書き込み命令(CCI Write)、読み出し命令(CCI Read)、読み出し応答(CCI Read戻り値)などの何れかの送信を含み、双方向通信である。画像系通信は、フレームスタート、埋込データ、画像データ、ユーザ定義データ、フレームエンドなどの何れかの送信を含み、片方向通信である。そして、本技術は、制御系通信を利用して導出したセッション鍵(暗号化鍵またはMAC鍵)を画像系通信に適用する際に好適である。一方、制御系通信および画像系通信にセキュリティ機能を付加するために、DMTF(Distributed Management Task Force)によるSPDM(Security Protocol and Data Model)規格を適用することが可能である。そのため、本技術は、SPDM規格を双方向通信である制御系通信および片方向通信である被制御系通信に適用する際に好適だが、SPDM規格に準じる必要はない。
  <SPDM>
 非特許文献1に記載のDMTFによるSPDM規格では、図182に示されるように、鍵スケジュールから、4つのメジャーシークレット(Major secrets)(S0:Request-direction handshake secret、S1:Response-direction handshake secret、S2:Request-direction data secret、S3:Response-direction data secret)が導出されることが可能であり、少なくとも1つのエクスポートマスターシークレット(Export Master Secret)が導出されることが可能である。そして、これらのシークレット(セッション秘密)からはセッション鍵(暗号化鍵またはMAC鍵)が導出されることが可能である。
 各シークレット(secret)は特定の送信方向に適用され、特定の時間枠内でのみ有効である。これら4つのメジャーシークレットはそれぞれ、ALGORITHMS応答内で選択されたAEAD機能内で使用されるセッション鍵(暗号化鍵またはMAC鍵)を導出するために用いられる。また、 AEAD機能内で使用される初期化ベクトル(IV)を導出するために用いられてもよい。
 S0およびS1はセッションハンドシェイク段階(Session handshake phase)中でのみ使用され、KEY_EXCHANGEまたはPSK_EXCHANGEの後からFINISHまたはPSK_FINISHまでの、全ての要求にS0が、全ての応答にS1が、それぞれ適用されることが可能。また、S0はSPDMメッセージ内のRequesterVerifyData領域を、S1はSPDMメッセージ内のResponderVerifyData領域を、それぞれ計算するために使用されるFinished_keyの導出にそれぞれ用いられる。
 S2およびS3は、セッションのアプリケーション段階(Application phase)中に送信される全てのデータに使用されることが可能であり、S2はリクエスタからレスポンダへ移動する全てのデータにのみ適用され、S3はレスポンダからリクエスタへ移動する全てのデータにのみ適用される。
 これらの4つのMajor secretsを更新する場合、非特許文献1に記載されている12.8 Major secrets updateを適用すればよい。
 SPDM鍵交換が成功した後は、追加のセッション鍵(暗号化鍵またはMAC鍵)をExport Master Secretから導出することができる。Export Master Secretを更新する場合、非特許文献1に記載されている12.8 Major secrets updateを修正または微修正した定義を適用してもよいし、新たな定義を適用してもよい。
  <エクスポートマスターシークレットの更新>
 例えば、図183に示されるように、Export Master Secretを更新し、新たなセッション鍵(暗号化鍵またはMAC鍵)を導出して画像系通信へ適用してもよい。
 非特許文献1に記載のDMTFによるSPDM規格では、Export Master Secretを更新することができないため、図183に示されるように、KEY_UPDATE operationsとしてExport Master Secretを更新するためのOperation(例えば、UpdateExportMaster)を追加する。ValueおよびDescriptionは一例だが、さらに異なるValueを定義し、他のExport Master Secretがあれば他のExport Master Secretを更新するためのOperation(例えば、Export Master Secret 1, Export Master Secret 2,…)を追加してもよい。
  <鍵使用開始タイミングが未定、鍵検証機能に非対応>
 上述のようにExport Master Secretを更新できるようにして非特許文献1に記載のDMTFによるSPDM規格を画像系通信に適用した場合、要求方向データシークレットおよび応答方向データシークレットについては、KEY_UPDATE request messageおよびKEY_UPDATE_ACK response messageによって、新たなシークレットおよびセッション鍵(暗号化鍵またはMAC鍵)の使用開始タイミングが定まる。これに対して、エクスポートマスターシークレットについては、新たなシークレットおよびセッション鍵(暗号化鍵またはMAC鍵)の使用開始タイミングが定まらないおそれがあった。
 また、要求方向データシークレットおよび応答方向データシークレットについては、 新たなセッション鍵(暗号化鍵またはMAC鍵)が正しく導出されたのかをVerifyNewKeyのOperationによって検証できるが、エクスポートマスターシークレットについては新たなセッション鍵(暗号化鍵またはMAC鍵)が正しく導出されたのかをVerifyNewKeyのOperationによって検証できないおそれがあった。
 そこで、新セッション鍵の使用開始タイミングを指定するようにする。また、新セッション鍵を検証するようにする。
  <新セッション鍵の使用開始タイミングの指定>
 図184は、図75のAに示されるイメージセンサ1211とアプリケーションプロセッサ1212との間での、セッション鍵を用いた通信処理の例を示すフローチャートである。イメージセンサ1211は、図76に示されるような構成を有する。アプリケーションプロセッサ1212は、図77に示されるような構成を有する。
 アプリケーションプロセッサ1212において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、CCIホスト(リクエスタ)としての機能を備え、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、CSI-2ホストとしての機能を備えている。イメージセンサ1211において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、CCIデバイス(レスポンダ)としての機能を備え、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、CSI-2デバイスとしての機能を備えている。CCIホストは、CCIデバイスへ要求メッセージを送信し、その受信に応じてCCIデバイスはCCIホストへ応答メッセージを送信する。
 CCIホストとCSI-2ホストとは一体または別体であり、CCIデバイスとCSI-2デバイスとは一体または別体である。また、CCIホストとCCIデバイスとの間は双方向の低速コマンド送信であり、CSI-2ホストとCSI-2デバイスとの間は片方向の高速データ送信である。
 ステップS2001およびステップS2011において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスとの間で、GET_VERSION要求およびVERSION応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、エンドポイントのSPDMバージョンを取得する。
 ステップS2002およびステップS2012において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスとの間で、GET_CAPABILITIES要求およびCAPABILITIES応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、エンドポイントのSPDM機能を取得する。
 ステップS2003およびステップS2013において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスとの間で、NEGOTIATE_ALGORITHMS要求およびALGORITHMS応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310と暗号アルゴリズムを交渉する。
 ステップS2004およびステップS2014において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスとの間で、PSK_EXCHANGE要求およびPSK_EXCHANGE_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326および拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、セッション秘密や暗号化鍵などのCCI向けのセッション鍵を導出する。
 ステップS2005およびステップS2015において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスとの間で、PSK_FINISH要求およびPSK_FINISH_RSP応答が行われる。これにより、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326がPSK(PSK:Pre-shared key)を知っていて、ステップS2004およびステップS2014で導出されたCCI向けのセッション鍵が正しいことをレスポンダへ証明する。
 ステップS2006において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCCIホストは、CSI-2向けセッション鍵、アルゴリズム、他パラメータ等の情報を、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCSI-2ホストに供給する。ステップS2021において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCSI-2ホストは、それらの情報を取得する。
 ステップS2016において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCCIデバイスは、CSI-2向けセッション鍵、アルゴリズム、他パラメータ等の情報を、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCSI-2デバイスに供給する。ステップS2031において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCSI-2デバイスは、それらの情報を取得する。
 これらの情報を得た拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326のCSI-2ホストと拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310のCSI-2デバイスは、それ以降、そのセッション鍵を用いた通信を行う(ステップS2022およびステップS2032以降の矢印群)。
 CCI向けでは、UpdateKeyまたはUpdateAllKeysのOperationが適用されたKEY_UPDATE要求およびKEY_UPDATE_ACK応答と、VerifyNewKeyのOperationとが適用されたKEY_UPDATE要求およびKEY_UPDATE_ACK応答と、によってCCIホストとCCIデバイスとの間でセッション秘密およびセッション鍵が更新される。
 CSI-2向けでは、例えば、CCIホストがCSI-2向けセッション鍵更新のトリガを受けると、UpdateExportMasterのOperationが適用されたKEY_UPDATE要求およびKEY_UPDATE_ACK応答によってCCIホストとCCIデバイスとの間でセッション秘密およびセッション鍵が更新され、その更新されたセッション鍵(新セッション鍵)がCSI-2ホストとCSI-2デバイスとの間に適用される(ステップS2008およびステップS2017)。つまり、CSI-2向け鍵更新では、1組のKEY_UPDATE要求およびKEY_UPDATE_ACK応答を省略可能である。
 ただし、CCIホストとCCIデバイスとの間の低速コマンド送信を利用して更新した新セッション鍵を、CSI-2ホストとCSI-2デバイスとの間の高速データ送信に適用する都合上、新旧のセッション鍵の誤使用を避けるために、新セッション鍵の使用開始タイミングを指定することが望ましい。
 画像系通信(CSI-2)は制御系通信(CCI)の一部または全部よりも、高速であり、送信される総データ量が大きいことが一般的である。そのため、制御系通信で更新した新セッション鍵(暗号化鍵またはMAC鍵)を画像系通信に適用させる場合、新セッション鍵の使用開始タイミングがセンサとプロセッサとの間で不一致になる可能性があった。
 そこで、タイミング不一致を避けるために、パケットを拡張し、新セッション鍵の使用開始タイミングを指定する。例えば、拡張パケットのパケットヘッダにおいて、図185に示されるように、ePH2[TBD] = 1'b1の拡張パケットを送信することにより、新セッション鍵の使用開始タイミングを指定する。
 その場合の処理の流れの例を図186のフローチャートを参照して説明する。CSI-2ホストがステップS2051においてセッション鍵を導出し、CSI-2デバイスがステップS2061においてセッション鍵を導出する。その後、そのセッション鍵(現在のセッション鍵)を用いて通信が行われる。CSI-2デバイスは現在のセッション鍵を用いてePH2[TBD] = 1'b0でVC1拡張パケットを送信し(ステップS2062)、CSI-2ホストはそれを受信する(ステップS2052)。以降の通信は同様に行われる。
 その後、所定のタイミングにおいて、CSI-2ホストおよびCSI-2デバイスは、それぞれ新セッション鍵を導出する(S2053、S2063)。CSI-2デバイスは、現在のセッション鍵を用いてePH2[TBD] = 1'b1でVC1拡張パケットを送信し(ステップS2064)、CSI-2ホストはそれを受信する(ステップS2054)。これにより新セッション鍵の使用開始タイミングが指定される。
 その後、その新セッション鍵を用いて通信が行われる。つまり、上記の使用開始タイミング指定に応じて、セッション鍵が更新され、新セッション鍵の使用が開始される。CSI-2デバイスは新セッション鍵を用いてePH2[TBD] = 1'b0でVC1拡張パケットを送信し(ステップS2066)、CSI-2ホストはそれを受信する(ステップS2055)。以降の通信は同様に行われる。
 なお、所定のタイミングにおいて、CSI-2ホストおよびCSI-2デバイスは、それぞれ、更新前のセッション鍵(古いセッション鍵)を破棄する(S2056、S2065)。
 このようにすることにより、新セッション鍵の使用開始タイミングを指定することができるので、適切なタイミングにおいてセッション鍵を更新することができる。また、このように新セッション鍵の使用開始タイミングを拡張パケットヘッダによって指定することにより、任意のライン(任意のタイミング)で新セッション鍵を使用開始することができる。
 以上において、拡張パケットヘッダにより新セッション鍵の使用開始タイミングを指定する例を説明したが、埋込データまたは読み出し応答(帯域内割込み含む)等によって新セッション鍵の使用開始タイミングを指定するようにしてもよい。
 なお、図186は古いセッション鍵を廃棄できる最速なタイミングを図示しているが、古いセッション鍵を廃棄するタイミングは遅らせてもよい。その場合、新セッション鍵および古いセッション鍵が保持されるので、もし古いセッション鍵が必要になる状況が発生しても対応できる。例えば、次の新セッション鍵を導出する直前まで、古いセッション鍵を廃棄するタイミングを遅らせてもよい。その場合、センサおよびプロセッサは、常時または略常時2種類のセッション鍵を保持する。他の例も同様である。
 なお、拡張パケットの仮想チャネルがVC1である例を用いて説明しているが、別仮想チャネルの場合も同様である。すなわち、VC1をVC2またはVC3などに置き換えてもよいし、VC1を省略してもよい。
 拡張パケットヘッダによって、センサが、新セッション鍵の使用開始タイミングを指定してもよい。その場合のアプリケーションプロセッサ1212の処理であるプロセッサ処理の流れの例を図187のフローチャートを参照して説明する。
 プロセッサ処理が開始されると、ステップS2101において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2102に進む。
 ステップS2102において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2103において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2104において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、ePH2[TBD] = 1'b1のVC1拡張パケットを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2105に進む。
 ステップS2105において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、ePH2[TBD] = 1'b0のVC1拡張パケットを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2106に進む。
 ステップS2106において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、古いセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2107において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の使用を開始する。
 ステップS2107の処理が終了するとプロセッサ処理が終了する。
 図188のフローチャートを参照して、イメージセンサ1211の処理であるセンサ処理の流れの例を説明する。このセンサ処理は、図187のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2141において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、図187のステップS2102においてアプリケーションプロセッサ1212から送信されたVC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2142に進む。
 ステップS2142において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2143において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1拡張パケットを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2144に進む。
 ステップS2144において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ePH2[TBD] = 1'b1でVC1拡張パケットを送信する。このVC1拡張パケットは、ステップS2104においてアプリケーションプロセッサ1212により受信される。
 ステップS2145において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1拡張パケットを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2146に進む。
 ステップS2146において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、古いセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2147において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の使用を開始する。
 ステップS2148において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ePH2[TBD] = 1'b0でVC1拡張パケットを送信する。
 ステップS2148の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、図186のフローチャートのように、新セッション鍵の使用開始タイミングを指定して、セッション鍵を更新することができる。
  <セッション鍵の検証>
 KEY_UPDATE要求メッセージ内のKEY_UPDATE operations内のVerifyNewKeyのOperationは、双方向通信の制御系通信(CCI)に適用されることが可能だが、片方向通信の画像系通信(CSI-2)に適用されることが不可能である。そのため、制御系通信で更新した新セッション鍵(暗号化鍵またはMAC鍵)が正しく導出されたことを、画像系通信において検証する。
 具体的には例えば、センサは、センサが導出した新セッション鍵を用いて埋込データの一部(第2埋込データ)のMAC値を演算し、パケットデータ内に格納された第2埋込データと拡張パケットフッタ内に格納されたMAC値とをプロセッサへ送信する。そして、プロセッサは、第2埋込データおよびMAC値を受信し、プロセッサが導出した新セッション鍵を用いて第2埋込データのMAC値を演算し、MAC値の演算結果と受信結果が一致する場合に新セッション鍵が正しく導出されたと判断する。この新セッション鍵検証は、ラインMAC方式の場合に好適である。
 その場合の処理の流れの例を図189のフローチャートを参照して説明する。CSI-2ホストがステップS2201においてセッション鍵を導出し、CSI-2デバイスがステップS2221においてセッション鍵を導出する。その後、そのセッション鍵(現在のセッション鍵)を用いて通信が行われる。CSI-2デバイスは現在のセッション鍵を用いてePH2[TBD] = 1'b0でVC1拡張パケットを送信し(ステップS2222)、CSI-2ホストはそれを受信する(ステップS2202)。以降の通信は同様に行われる。
 その後、所定のタイミングにおいて、CSI-2ホストおよびCSI-2デバイスは、それぞれ新セッション鍵を導出する(S2203、S2223)。CSI-2デバイスは、現在のセッション鍵を用いてePH2[TBD] = 1'b0でVC1第1埋込データを送信し(ステップS2224)、CSI-2ホストはそれを受信する(ステップS2204)。これにより新セッション鍵の使用開始タイミングが指定される。
 そして、CSI-2デバイスは新セッション鍵を用いてePH2[TBD] = 1'b0でVC1第2埋込データを送信し(ステップS2225)、CSI-2ホストはそれを受信する(ステップS2205)。この第2の埋込データを用いて新セッション鍵の検証が開始される。つまり、ステップS2206において、CSI-2ホストは、新セッション鍵を検証する。
 つまり、上述したように、CSI-2デバイスは、CSI-2デバイスが導出した新セッション鍵を用いて埋込データの一部(第2埋込データ)のMAC値を演算し、パケットデータ内に格納された第2埋込データと拡張パケットフッタ内に格納されたMAC値とをCSI-2ホストへ送信する。そして、CSI-2ホストは、その第2埋込データおよびMAC値を受信し、CSI-2ホストが導出した新セッション鍵を用いて第2埋込データのMAC値を演算し、MAC値の演算結果と受信結果とを比較する。CSI-2ホストは、両者が一致する場合、新セッション鍵が正しく導出されたと判断する。
 新セッション鍵が正しく導出されたと判定された場合、セッション鍵の更新が行われる。つまり、新セッション鍵の使用が開始される。
 そのため、CSI-2デバイスは、現在のセッション鍵を用いてePH2[TBD] = 1'b1でVC1フレームエンドを送信し(ステップS2226)、CSI-2ホストはそれを受信する(ステップS2207)。
 そして、CSI-2デバイスは、新セッション鍵を用いてePH2[TBD] = 1'b0でVC1フレームスタートを送信し(ステップS2228)、CSI-2ホストはそれを受信する(ステップS2208)。その後、CSI-2デバイスは、新セッション鍵を用いてePH2[TBD] = 1'b0でVC1拡張パケットを送信し(ステップS2229)、CSI-2ホストはそれを受信する(ステップS2210)。以降の通信は同様に行われる。
 なお、所定のタイミングにおいて、CSI-2ホストおよびCSI-2デバイスは、それぞれ、更新前のセッション鍵(古いセッション鍵)を破棄する(S2209、S2227)。
 このようにすることにより、新セッション鍵の検証を行うことができるので、正しいセッション鍵に更新することができる。つまり、セッション鍵の更新をより正確に行うことができる。
 なお、セッション鍵の検証手順は、この例に限定されない。例えば、センサは、センサが導出した新セッション鍵を用いて埋込データの一部(第2埋込データ)を暗号化してプロセッサへ送信する。そして、プロセッサは、第2埋込データを受信し、プロセッサが導出した新セッション鍵を用いて第2埋込データを復号し、その結果が想定通りであれば新セッション鍵が正しく導出されたと判断する。このような手順でセッション鍵の検証を行ってもよい。
 ところで、第1埋込データと第2埋込データとの送信順を異ならせてもよい。また、第2埋込データの後に第3埋込データ(セッション鍵、ePH2[TBD]=1’b0)を送信してもよい。また、埋込データの行数は、新セッション鍵検証の有無に応じて可変でも固定でもよい。また、埋込データの一部(第2埋込データ)を用いて新セッション鍵を検証する例を用いて説明したが、同様に、画像データの一部(第2画像データ)またはユーザ定義データの一部(第2ユーザ定義データ)などの画像系通信内データ(特に、拡張パケット内のパケットデータ)の一部または全部を用いて新セッション鍵を検証してもよい。
 この場合のプロセッサ処理の流れの例を図190のフローチャートを参照して説明する。拡張パケットヘッダを用いる場合、SPDMのVerifyNewKeyはCSI-2に適用できないためCSI-2の枠組みの中で埋込データの一部を用いて新セッション鍵を検証する。
 プロセッサ処理が開始されると、ステップS2301において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2302に進む。
 ステップS2302において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2303において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2304において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1第2埋込データを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2305に進む。
 ステップS2305において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を仮使用した第2埋込データを検証する。そして、ステップS2306において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、その検証結果に基づいて、新セッション鍵が正しいか否かを判定する。新セッション鍵が正しくないと判定された場合、処理はステップS2307に進む。
 ステップS2307において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の破棄またはクリーンアップを開始する。ステップS2308において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵の継続命令を送信する。つまり、セッション鍵の更新を中止する。ステップS2308の処理が終了すると、プロセッサ処理が終了する。
 また、ステップS2306において、新セッション鍵が正しいと判定された場合、処理はステップS2309に進む。ステップS2309において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵を用いたePH2[TBD] = 1'b1のVC1フレームエンドを受信したか否かを判定する。受信していないと判定された場合、処理はステップS2306に戻り、それ以降の処理を繰り返す。
 また、ステップS2309において、ePH2[TBD] = 1'b1のVC1フレームエンドを受信したと判定された場合、処理はステップS2310に進む。ステップS2310において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を用いたePH2[TBD] = 1'b0のVC1フレームスタートを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2311に進む。
 ステップS2311において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、古いセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2312において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の本使用を開始する。
 ステップS2312の処理が終了するとプロセッサ処理が終了する。
 図191のフローチャートを参照して、この場合のセンサ処理の流れの例を説明する。このセンサ処理は、図190のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2351において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、図190のステップS2302においてアプリケーションプロセッサ1212から送信されたVC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2352に進む。
 ステップS2352において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2353において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1埋込データを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2354に進む。
 ステップS2354において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1第1埋込データをアプリケーションプロセッサ1212に送信する。
 ステップS2355において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を仮使用したVC1第2埋込データを送信する。このVC1第2埋込データは、ステップS2304においてアプリケーションプロセッサ1212により受信される。
 ステップS2356において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ステップS2308においてアプリケーションプロセッサ1212から送信されたセッション鍵の継続命令を受信したか否かを判定する。受信したと判定された場合、処理はステップS2357に進む。この場合、セッション鍵の更新が中止され、現在のセッション鍵の使用が継続される。そこで、ステップS2357において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の破棄またはクリーンアップを開始する。ステップS2357の処理が終了するとセンサ処理が終了する。
 また、ステップS2356においてセッション鍵の継続命令を受信していないと判定された場合、処理はステップS2358に進む。ステップS2358において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1フレームエンドを送信するか否かを判定する。送信すると判定された場合、処理はステップS2359に進む。ステップS2359において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ePH2[TBD] = 1'b1でVC1フレームエンドを送信する。このVC1フレームエンドは、ステップS2309においてアプリケーションプロセッサ1212により受信される。
 ステップS2359の処理が終了すると、処理はステップS2360に進む。また、ステップS2358においてVC1フレームエンドを送信しないと判定された場合、処理はステップS2360に進む。
 ステップS2360において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1フレームスタートを送信するか否かを判定する。送信しないと判定された場合、処理はステップS2356に戻り、それ以降の処理を繰り返す。
 また、ステップS2360において、VC1フレームスタートを送信すると判定された場合、処理はステップS2361に進む。ステップS2361において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、古いセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2362において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の本使用を開始する。
 ステップS2363において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ePH2[TBD] = 1'b0でVC1フレームスタートを送信する。このVC1フレームスタートは、ステップS2310においてアプリケーションプロセッサ1212により受信される。
 ステップS2363の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、図189のフローチャートのように、新セッション鍵の検証を行うことができる。
  <新セッション鍵使用開始タイミング指定の省略>
 新セッション鍵の使用開始タイミング指定を省略し、新セッション鍵を検証してもよい。新セッション鍵を仮使用して拡張パケットを検証してもよい。例えば、新セッション鍵を仮使用して拡張パケットのMAC値または復号を検証し、その検証結果がFAILの場合には本使用しているセッション鍵によって拡張パケットのMAC値または復号を検証する。そして、その検証結果もFAILな場合、END_SESSION要求を送信し、新セッション鍵およびセッション鍵を破棄またはクリーンアップすることによってセッションを終了させる。新セッション鍵が正しく導出されていると判断できる場合、セッション鍵の破棄またはクリーンアップを開始し、新セッション鍵の本使用を開始する。
 この場合のプロセッサ処理の流れの例を図192のフローチャートを参照して説明する。プロセッサ処理が開始されると、ステップS2401において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2402に進む。
 ステップS2402において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2403において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2404において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1拡張パケットを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2405に進む。
 ステップS2405において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を仮使用してそのVC1拡張パケットを検証する。ステップS2406において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、その検証結果に基づいて、新セッション鍵が正しいか否かを判定する。
 新セッション鍵が正しいと判定された場合、処理はステップS2407に進む。ステップS2407において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、古いセッション鍵の破棄またはクリーンアップを開始する。そして、ステップS2408において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の本使用を開始する。ステップS2408の処理が終了するとプロセッサ処理が終了する。
 また、ステップS2406において新セッション鍵が正しくないと判定された場合、処理はステップS2409に進む。ステップS2409において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵を使用してVC1拡張パケットを検証する。
 ステップS2410において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、その検証結果がFAILか否かを判定する。検証結果がFAILでないと判定された場合、処理はステップS2404に戻り、それ以降の処理を繰り返す。
 ステップS2410において検証結果がFAILであると判定された場合、処理はステップS2411に進む。ステップS2411において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、END_SESSION要求を送信する。そして、ステップS2412において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵とともに現在のセッション鍵を破棄またはクリーンアップする。これにより、セッションが終了する。ステップS2412の処理が終了するとプロセッサ処理が終了する。
 図193のフローチャートを参照して、この場合のセンサ処理の流れの例を説明する。このセンサ処理は、図192のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2451において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、図192のステップS2402においてアプリケーションプロセッサ1212から送信されたVC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2452に進む。
 ステップS2452において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2453において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1拡張パケットを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2454に進む。
 ステップS2454において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2455において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の使用を開始する。
 ステップS2456において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1拡張パケットを送信する。このVC1拡張パケットは、ステップS2404においてアプリケーションプロセッサ1212により受信される。
 ステップS2456の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、新セッション鍵を検証することができる。
 この例は、新セッション鍵が正しく導出されていることをプロセッサが検証する一例である。このようにすることで、プロセッサ処理は重たくなるが、センサ処理は軽くなるので、センサのリソースがプロセッサのリソースよりも限られる場合に好適である。
 なお、ラインMACに好適な構成例を図示しているが、一部(例えば、VC1拡張パケットを受信した)を変更することによってフレームMACに好適な構成例とすることが可能である。また、使用開始タイミング指定を併用してもよい。
  <プロセッサからの指示に応じたセッション鍵の選択>
 センサは、プロセッサからの指示に応じてセッション鍵を選択してもよい。例えば、イメージセンサが新セッション鍵を仮使用して拡張パケット(被検証データ)を送信し、プロセッサによる拡張パケット検証結果に応じてセッション鍵の再使用を開始してもよい。
 また、プロセッサは、拡張パケットの検証結果に応じてセッション鍵不要命令または新セッション鍵不要命令を送信するようにしてもよい。これに対して、イメージセンサは、セッション鍵不要命令または新セッション鍵不要命令に応じて、新セッション鍵の本使用を開始するのか、セッション鍵の再使用を開始するのか、を選択してもよい。イメージセンサがセッション鍵または新セッション鍵を選択できるのであれば、セッション鍵不要命令および新セッション鍵不要命令は、別命令であってもよい。
 その場合のセンサ処理の流れの例を図194のフローチャートを参照して説明する。センサ処理が開始されると、ステップS2501において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2502に進む。
 ステップS2502において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2503において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1拡張パケットを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2504に進む。
 ステップS2504において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を仮使用してVC1拡張パケットを送信する。
 ステップS2505において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵不要命令を受信したか否かを判定する。受信したと判定された場合、処理はステップS2506に進む。この場合、セッション鍵が更新される。
 ステップS2506において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2507において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の本使用を開始する。ステップS2507の処理が終了するとセンサ処理が終了する。
 また、ステップS2505において、現在のセッション鍵不要命令を受信していないと判定された場合、処理はステップS2508に進む。
 ステップS2508において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵不要命令を受信したか否かを判定する。受信していないと判定された場合、処理はステップS2503に戻り、それ以降の処理を繰り返す。
 また、ステップS2508において、新セッション鍵不要命令を受信したと判定された場合、処理はステップS2509に進む。
 ステップS2509において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の破棄またはクリーンアップを開始する。
 ステップS2510において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の再使用を開始する。ステップS2510の処理が終了するとセンサ処理が終了する。
 このようにセンサ処理を行うことにより、イメージセンサ1211は、アプリケーションプロセッサ1212から供給されるセッション鍵不要命令または新セッション鍵不要命令に応じて、新セッション鍵の本使用を開始するのか、セッション鍵の再使用を開始するのか、を選択することができる。
  <KeyUpdateReq、KeySwitchTimingの利用>
 例えば、図195に示されるように、KeyUpdateReqやKeySwitchTimingを利用して新セッション鍵の使用開始タイミングを指定するようにしてもよい。
 KeyUpdateReqまたはKeySwitchTimingは、例えば埋込データ内に格納されて送信される。ただし、KeyUpdateReqまたはKeySwitchTimingは、画像データ内、ユーザ定義データ内、読み出し応答(帯域内割込み含む)内、の何れかに格納されて送信されてもよい。また、KeyUpdateReqまたはKeySwitchTimingのField名、Bits割り当て、Value定義などの何れかが異なってもよい。また、KeyUpdateReqはCCIホストによるKEY_UPDATE要求メッセージをトリガするために送信されるが、KeyUpdateReqの送信を不要にしてもよい。その場合、CSI-2デバイスではなくCSI-2ホストまたはCCIホストが、KEY_UPDATE要求メッセージをトリガする。また、GET_ENCAPSULATED_REQUESTメカニズムを用いる場合、CSI-2デバイスがCCIデバイスによるKEY_UPDATE要求メッセージをトリガしてもよい。また、第2埋込データの送信と新セッション鍵の検証とを不要にしてもよい。
 KeyUpdateReqやKeySwitchTimingを用いる場合の処理の流れの例を図196のフローチャートを参照して説明する。CSI-2ホストがステップS2601においてセッション鍵を導出し、CSI-2デバイスがステップS2621においてセッション鍵を導出する。その後、そのセッション鍵(現在のセッション鍵)を用いて通信が行われる。CSI-2デバイスは現在のセッション鍵を用いてVC1拡張パケットを送信し(ステップS2622)、CSI-2ホストはそれを受信する(ステップS2602)。以降の通信は同様に行われる。
 その後、所定のタイミングにおいて、CSI-2デバイスは、ステップS2623において、現在のセッション鍵を用いてKeyUpdataReqが格納された埋込データを送信する。CSI-2ホストは、ステップS2603において、それを受信する。
 そして、CSI-2ホストおよびCSI-2デバイスは、それぞれ新セッション鍵を導出する(S2604、S2624)。
 ステップS2625において、CSI-2デバイスは、現在のセッション鍵を用いてVC1第1埋込データを送信する。ステップS2605において、CSI-2ホストは、それを受信する。
 そして、ステップS2626において、CSI-2デバイスは、新セッション鍵を仮使用してVC1第2埋込データを送信する。ステップS2606において、CSI-2ホストは、それを受信する。ステップS2607において、CSI-2ホストは、新セッション鍵を検証する。
 新セッション鍵が正しく導出された判定された場合、指定されたタイミングにおいて、セッション鍵の更新が行われる。つまり、新セッション鍵の使用が開始される。
 そのため、ステップS2627において、CSI-2デバイスは、現在のセッション鍵を用いて、KeySwitchiming = 1'b1を送信する。ステップS2608において、CIS-2ホストは、それを受信する。
 ステップS2629において、CSI-2デバイスは、新セッション鍵を本使用してVC1フレームスタートを送信する。ステップS2609において、CSI-2ホストは、それを受信する。
 ステップS2630において、CSI-2デバイスは、新セッション鍵を本使用してVC1拡張パケットを送信する。ステップS2611において、CSI-2ホストは、それを受信する。以降の通信は同様に行われる。
 なお、所定のタイミングにおいて、CSI-2ホストおよびCSI-2デバイスは、それぞれ、更新前のセッション鍵(古いセッション鍵)を破棄する(S2610、S2628)。
 このようにすることにより、KeyUpdateReqやKeySwitchTimingを利用して新セッション鍵の使用開始タイミングを指定することができる。
 この場合のプロセッサ処理の流れの例を図197のフローチャートを参照して説明する。プロセッサ処理が開始されると、ステップS2651において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2652に進む。
 ステップS2652において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2653において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2654において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、KeySwitchTiming = 1'b1のVC1第1埋込データを受信したか否かを判定し、受信したと判定されるまで待機する。受信したと判定された場合、処理はステップS2655に進む。
 ステップS2655において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を仮使用した第2埋込データを検証する。そして、ステップS2656において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、その検証結果に基づいて、新セッション鍵が正しいか否かを判定する。新セッション鍵が正しくないと判定された場合、処理はステップS2657に進む。
 ステップS2657において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の破棄またはクリーンアップを開始する。ステップS2658において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵の継続命令を送信する。ステップS2658の処理が終了すると、プロセッサ処理が終了する。
 また、ステップS2656において、新セッション鍵が正しいと判定された場合、処理はステップS2659に進む。ステップS2659において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1フレームスタートを受信したか否かを判定する。受信していないと判定された場合、処理はステップS2656に戻り、それ以降の処理を繰り返す。
 また、ステップS2659において、VC1フレームスタートを受信したと判定された場合、処理はステップS2660に進む。ステップS2660において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2661において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の本使用を開始する。ステップS2661の処理が終了するとプロセッサ処理が終了する。
 図198のフローチャートを参照して、この場合のセンサ処理の流れの例を説明する。このセンサ処理は、図197のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2681において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、図197のステップS2652においてアプリケーションプロセッサ1212から送信されたVC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2682に進む。
 ステップS2682において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2683において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1埋込データを送信するか否かを判定し、送信すると判定されるまで待機する。送信すると判定された場合、処理はステップS2684に進む。
 ステップS2684において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、KeySwitchTiming=1'b1でVC1第1埋込データを送信する。
 ステップS2685において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を仮使用したVC1第2埋込データを送信する。
 ステップS2686において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、ステップS2658においてアプリケーションプロセッサ1212から送信されたセッション鍵の継続命令を受信したか否かを判定する。受信したと判定された場合、処理はステップS2687に進む。ステップS2687において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の破棄またはクリーンアップを開始する。ステップS2687の処理が終了するとセンサ処理が終了する。
 また、ステップS2686においてセッション鍵の継続命令を受信していないと判定された場合、処理はステップS2688に進む。ステップS2688において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1フレームスタートを送信するか否かを判定する。送信しないと判定された場合、処理はステップS2686に戻り、それ以降の処理を繰り返す。
 また、ステップS2688において、VC1フレームスタートを送信すると判定された場合、処理はステップS2689に進む。ステップS2689において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2690において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の本使用を開始する。ステップS2690の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、図196のフローチャートのように、新セッション鍵の検証を行うことができる。
 なお、センサまたはプロセッサが追加メッセージカウンタを備える場合、新セッション鍵の使用または本使用(仮使用を除く)を開始する際に、追加メッセージカウント値を初期化して0に設定する。ただし、その場合、メッセージカウント値は初期化しないことが望ましい。
 さらに新セッション鍵を仮使用する場合、例えば、追加メッセージカウント値を最大値に設定して新セッション鍵を仮使用してもよい。または例えば、追加メッセージカウント値を0に設定して新セッション鍵を仮使用し、新セッション鍵の本使用を開始する際に、追加メッセージカウント値を1に設定してもよい。
 これに対して、メッセージカウント値が初期値(例えば、0)になるタイミングで新セッション鍵の使用または本使用(仮使用を除く)を開始してもよい。その場合、新セッション鍵を使用できる回数が最大になる。
 また、センサまたはプロセッサが追加フレームカウンタを備える場合、新セッション鍵の使用または本使用(仮使用を除く)を開始する際に、追加フレームカウント値を初期化して0に設定する。
 ただし、その場合、フレームカウント値は初期化しないことが望ましい。さらに新セッション鍵を仮使用する場合、例えば、追加フレームカウント値を最大値に設定して新セッション鍵を仮使用してもよい。または例えば、追加フレームカウント値を0に設定して新セッション鍵を仮使用し、新セッション鍵の本使用を開始する際に、追加フレームカウント値を1に設定してもよい。
 これに対して、フレームカウント値が初期値(例えば、1)になるタイミングで新セッション鍵の使用または本使用(仮使用を除く)を開始してもよい。その場合、新セッション鍵を使用できる回数が最大になる。
  <埋込データや読み出し応答による新セッション鍵の使用開始タイミング指定>
 埋込データや読み出し応答によって新セッション鍵の使用開始タイミングを指定してもよい。使用開始タイミングを指定するメッセージ(使用開始タイミング指定)は、埋込データ内または画像データ内またはユーザ定義データ内または読み出し応答(帯域内割込み含む)内に格納されて送信されてもよい。使用開始タイミング指定は、メッセージカウント値(メッセージカウンタの値)を含んでもよい。その場合、使用開始タイミングとして指定されたメッセージカウント値の拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。また、使用開始タイミング指定は、フレーム番号(フレームカウント値)を含んでもよい。その場合、使用開始タイミングとして指定されたフレーム番号の拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。また、使用開始タイミング指定は、eDT(拡張データタイプ)またはDT(データタイプ)の値を含んでもよい。その場合、次のライン以降に送信される、使用開始タイミングとして指定されたeDTまたはDTの拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。
 この場合のプロセッサ処理の流れの例を、図199のフローチャートを参照して説明する。プロセッサ処理が開始されると、ステップS2701において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2702に進む。
 ステップS2702において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2703において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2704において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、タイミング指定を受信したか否かを判定し、受信したと判定されるまで待機する。タイミング指定を受信したと判定された場合、処理はステップS2705に進む。
 ステップS2705において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、タイミング指定のVC1拡張パケットヘッダを受信したか否かを判定し、受信したと判定されるまで待機する。タイミング指定のVC1拡張パケットヘッダを受信したと判定された場合、処理はステップS2706に進む。
 ステップS2706において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2707において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の使用を開始する。
 ステップS2707の処理が終了するとプロセッサ処理が終了する。
 図200のフローチャートを参照して、イメージセンサ1211の処理であるセンサ処理の流れの例を説明する。このセンサ処理は、図199のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2721において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2722に進む。
 ステップS2722において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2723において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1埋込データを送信するか否かを判定し、送信すると判定されるまで待機する。VC1埋込データを送信すると判定された場合、処理はステップS2724に進む。
 ステップS2724において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、使用開始タイミング指定を含むVC1埋込データを送信する。
 ステップS2725において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、タイミング指定のVC1拡張パケットヘッダを送信するか否かを判定し、送信すると判定されるまで待機する。タイミング指定のVC1拡張パケットヘッダを送信すると判定された場合、処理はステップS2726に進む。
 ステップS2726において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2727において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の使用を開始する。
 ステップS2727の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、埋込データや読み出し応答によって新セッション鍵の使用開始タイミングを指定することができる。
  <書き込み命令による新セッション鍵の使用開始タイミング指定>
 書き込み命令によって、プロセッサが、新セッション鍵の使用開始タイミングを指定してもよい。つまり、使用開始タイミングを指定するメッセージ(使用開始タイミング指定)は、書き込み命令内に格納されて送信されてもよい。使用開始タイミング指定は、メッセージカウント値(メッセージカウンタの値)を含んでもよい。その場合、使用開始タイミングとして指定されたメッセージカウント値の拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。また、使用開始タイミング指定は、フレーム番号(フレームカウント値)を含んでもよい。その場合、使用開始タイミングとして指定されたフレーム番号の拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。また、使用開始タイミング指定は、eDT(拡張データタイプ)またはDT(データタイプ)の値を含んでもよい。その場合、使用開始タイミング指定でOKの読み出し応答以降に送信される、使用開始タイミングとして指定されたeDTまたはDTの拡張パケットの一部または全部から、新セッション鍵の使用が開始されてもよい。
 この場合のプロセッサ処理の流れの例を、図201のフローチャートを参照して説明する。プロセッサ処理が開始されると、ステップS2741において、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新が必要であるか否かを判定し、必要になるまで待機する。VC1鍵更新が必要であると判定された場合、処理はステップS2742に進む。
 ステップS2742において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、VC1鍵更新命令を送信する。また、ステップS2743において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵を導出する。
 ステップS2744において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、使用開始タイミング指定を含む書き込み命令を送信する。
 ステップS2745において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、使用開始タイミング指定の可否の読み出し命令を送信する。
 ステップS2746において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、読み出し応答を受信したか否かを判定し、受信したと判定されるまで待機する。読み出し応答を受信したと判定された場合、処理はステップS2747に進む。
 ステップS2747において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、使用開始タイミング指定でOKの応答か否かを判定する。使用開始タイミングでOKの応答でない場合、処理はステップS2744に戻り、それ以降の処理を繰り返す。
 また、ステップS2747において、使用開始タイミング指定でOKの応答であると判定された場合、処理はステップS2748に進む。
 ステップS2748において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、タイミング指定のVC1拡張パケットヘッダを受信したか否かを判定し、受信したと判定されるまで待機する。タイミング指定のVC1拡張パケットヘッダを受信したと判定された場合、処理はステップS2749に進む。
 ステップS2749において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2750において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、新セッション鍵の使用を開始する。
 ステップS2750の処理が終了するとプロセッサ処理が終了する。
 図202のフローチャートを参照して、イメージセンサ1211の処理であるセンサ処理の流れの例を説明する。このセンサ処理は、図201のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2771において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、VC1鍵更新命令を受信したか否かを判定し、受信したと判定されるまで待機する。VC1鍵更新命令を受信したと判定された場合、処理はステップS2772に進む。
 ステップS2772において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵を導出する。
 ステップS2773において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、書き込み命令を受信したか否かを判定し、受信したと判定されるまで待機する。書き込み命令を受信したと判定された場合、処理はステップS2774に進む。
 ステップS2774において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、読み出し命令を受信したか否かを判定し、受信したと判定されるまで待機する。読み出し命令を受信したと判定された場合、処理はステップS2775に進む。
 ステップS2775において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、使用開始タイミング指定でOKか否かを判定する。使用開始タイミングでOKでないと判定された場合、処理はステップS2776に進む。
 ステップS2776において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、使用開始タイミング指定だとNGの読み出し応答を行う。ステップS2776の処理が終了すると処理はステップS2773に戻り、それ以降の処理を繰り返す。
 ステップS2775において、使用開始タイミングでOKであると判定された場合、処理はステップS2777に進む。
 ステップS2777において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、使用開始タイミング指定でOKの読み出し応答を行う。
 ステップS2778において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、タイミング指定のVC1拡張パケットヘッダを送信するか否かを判定し、送信すると判定されるまで待機する。タイミング指定のVC1拡張パケットヘッダを送信すると判定された場合、処理はステップS2779に進む。
 ステップS2779において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、現在のセッション鍵の破棄またはクリーンアップを開始する。
 ステップS2780において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、新セッション鍵の使用を開始する。
 ステップS2780の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、書き込み命令によって新セッション鍵の使用開始タイミングを指定することができる。
  <鍵ID情報による新セッション鍵の使用開始タイミング指定>
 次セッション鍵(新セッション鍵)の使用開始に応じて更新(例えば、インクリメントまたはデクリメントまたは乱数)される鍵ID情報を送信することによって、次セッション鍵(新セッション鍵)の使用開始タイミングを指定してもよい。
 その場合のプロセッサ処理の流れの例を、図203を参照して説明する。プロセッサ処理が開始されると、アプリケーションプロセッサ1212の拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、ステップS2801において、鍵IDを0に初期化する。
 ステップS2802において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、セッション鍵の使用を開始する。
 ステップS2803において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、セッションを終了するか否かを判定する。終了すると判定された場合、処理はステップS2804に進む。
 ステップS2804において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、END_SESSION要求を送信する。
 ステップS2805において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、イメージセンサ1211から応答を受信したか否かを判定する。応答を受信していないと判定された場合、処理はステップS2804に戻り、それ以降の処理を繰り返す。ステップS2805において、応答を受信したと判定された場合、処理はステップS2806に進む。
 ステップS2806において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、全てのセッション鍵および次セッション鍵(新セッション鍵)を破棄またはクリーンアップする。ステップS2806の処理が終了するとプロセッサ処理が終了する。
 また、ステップS2803においてセッションを終了しないと判定された場合、処理はステップS2807に進む。
 ステップS2807において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、鍵ID情報を受信したか否かを判定する。受信していないと判定された場合、処理はステップS2803に戻り、それ以降の処理を繰り返す。ステップS2807において、鍵ID情報を受信したと判定された場合、処理はステップS2808に進む。
 ステップS2808において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、鍵ID情報が更新されているか否かを判定する。更新されていないと判定された場合、処理はステップS2803に戻り、それ以降の処理を繰り返す。ステップS2808において、鍵ID情報が更新されたと判定された場合、処理はステップS2809に進む。
 ステップS2809において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、次セッション鍵(新セッション鍵)の使用を開始する。
 ステップS2810において、拡張モード対応CSI-2受信回路1322および/またはセキュリティ部1326は、鍵IDを更新する。ステップS2810の処理が終了すると、処理はステップS2803に戻り、それ以降の処理を繰り返す。
 図204のフローチャートを参照して、イメージセンサ1211の処理であるセンサ処理の流れの例を説明する。このセンサ処理は、図203のプロセッサ処理に対応する処理である。
 センサ処理が開始されると、ステップS2831において、イメージセンサ1211の拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、鍵IDを0に初期化する。
 ステップS2832において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、セッション鍵の使用を開始する。
 ステップS2833において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、END_SESSION要求を受信したか否かを判定する。END_SESSION要求を受信していないと判定された場合、処理はステップS2834に進む。
 ステップS2834において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、次セッション鍵(新セッション鍵)の使用を開始するか否かを判定する。開始すると判定された場合、処理はステップS2835に進む。
 ステップS2835において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、次セッション鍵(新セッション鍵)の使用を開始する。
 ステップS2836において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、鍵IDを更新する。ステップS2836の処理が終了すると処理はステップS2837に進む。また、ステップS2834において、次セッション鍵(新セッション鍵)の使用を開始しないと判定された場合、処理はステップS2837に進む。
 ステップS2837において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、鍵ID情報を送信する。ステップS2837の処理が終了すると、処理はステップS2833に戻り、それ以降の処理を繰り返す。
 また、ステップS2833において、END_SESSION要求を受信したと判定された場合、処理はステップS2838に進む。
 ステップS2838において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、アプリケーションプロセッサ1212に対して応答を送信する。
 ステップS2839において、拡張モード対応CSI-2送信回路1304および/またはセキュリティ部1310は、全てのセッション鍵および次セッション鍵(新セッション鍵)を破棄またはクリーンアップする。
 ステップS2839の処理が終了するとセンサ処理が終了する。
 アプリケーションプロセッサ1212が上述のようにプロセッサ処理を行い、イメージセンサ1211が上述のようにセンサ処理を行うことにより、鍵ID情報によって新セッション鍵の使用開始タイミングを指定することができる。
 鍵ID情報は、鍵IDそのものの値であってもよいし、例えば図205に示されるように、今回に使用している鍵IDまたは次回に使用する鍵IDが偶数(Even key)なのか奇数(Odd key)なのかを示す情報であってもよい。また、鍵IDが、偶数(Even key)なのか奇数(Odd key)なのかを示す情報であってもよい。ただし、鍵ID情報は、0(偶数)と1(奇数)とのみで構成されてもよい。
  <複数セッション鍵の導出>
 1つのExport Master Secretから複数のセッション鍵(暗号化鍵またはMAC鍵)を導出してもよい。例えば、仮想チャネル毎または拡張仮想チャネル毎にセッション鍵を異ならせたい場合に有効である。
 また、図206や図207に示される例のように、複数のExport Master Secret(0…N)を導出し、それぞれからセッション鍵(暗号化鍵またはMAC鍵)を導出してもよい。その場合、更新するExport Master Secretを指定することによって、一部のExport Master Secretのみ更新されるようにしてもよい。HKDF-Expand内のExport-Master-Secret、bin_str8_1、…、bin_str8_N、などは一例であり、別の文字が格納されてもよい。
 HKDF-Expand、Hash.Length、bin_str3、bin_str4、bin_str8、BinConcat、Version、TH2、などの定義は非特許文献1に記載されている通りである。bin_str8_0、…、bin_str8_Nとしては、例えば、bin_str8 _0 = BinConcat(Hash.Length, Version, “exp master 0”, TH2); 、…、bin_str8 _N = BinConcat(Hash.Length, Version, “exp master N”, TH2);の定義が適用されるが、別の定義が適用されてもよい。
 ところで、例えばCCIホスト(制御系通信ホスト)とCCIデバイス(制御系通信デバイス)とで構成される制御系通信はControl Plane(Configuration, status, capabilities, not application data. Options include CCI out-of-band (I2C/I3C), USL in-band, and ACMD/ACMP using mailbox registers.)とも称する。例えばCSI-2ホスト(画像系通信ホスト)とCSI-2デバイス(画像系通信デバイス)とで構成される画像系通信はData Plane(Pixels, content, application data.)とも称する。また、制御系通信ホストと画像系通信ホストとは、一体であってもよいし、別体であってもよい。また、制御系通信デバイスと画像系通信デバイスとは、一体であってもよいし、別体であってもよい。また、画像系通信ホストがDSI-2ホストであって画像系通信デバイスがディスプレイ(DSI-2デバイス)である場合、図78、図79、図80、図184、図186、図189、および図196などの画像系通信ホスト(図中ではCSI-2ホスト)と画像系通信デバイス(図中ではCSI-2デバイス)との間の矢印の方向は逆向きとなる。
 ところで、以上においては、画像系通信ホストと画像系通信デバイスとの間のセッション鍵または新セッション鍵が、SPDM鍵スケジュールから導出される例を用いて説明したが、本技術はその限りではない。例えば、制御系通信ホストかつ画像系通信ホストでもあるSSMC(Secure Session Manager Controller)またはアプリケーションプロセッサ(SoCまたはSystem on Chipとも称する)が生成し、制御系通信デバイスかつ画像系通信デバイスでもあるイメージセンサ、ディスプレイ、またはブリッジ(Bridge)一端と制御系通信ホストとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信デバイスで受信された鍵が、画像系通信ホストと画像系通信デバイスとの間のセッション鍵または新セッション鍵として使用されてもよい。また、制御系通信ホストであるSSMCまたはアプリケーションプロセッサが生成し、制御系通信デバイスであるブリッジ一端、イメージセンサ、ディスプレイ、またはブリッジ他端と制御系通信ホストとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信デバイスで受信された鍵が、画像系通信ホストであるアプリケーションプロセッサまたはブリッジ一端と画像系通信デバイスであるブリッジ一端(ただし、ブリッジ一端が画像系通信ホストではない場合)、イメージセンサ、ディスプレイ、またはブリッジ他端との間のセッション鍵または新セッション鍵として使用されてもよい。また、制御系通信ホストであるSSMCが生成し、制御系通信デバイスであるアプリケーションプロセッサ、ブリッジ一端、イメージセンサ、ディスプレイ、またはブリッジ他端と制御系通信ホストとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信デバイスで受信された鍵が、画像系通信ホストであるアプリケーションプロセッサまたはブリッジ一端と画像系通信デバイスであるブリッジ一端(ただし、ブリッジ一端が画像系通信ホストではない場合)、イメージセンサ、ディスプレイ、またはブリッジ他端との間のセッション鍵または新セッション鍵として使用されてもよい。なお、SSMCとアプリケーションプロセッサの一部または全部とは、一体であってもよいし、別体であってもよい。また、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介した画像系通信向けセッション鍵または新セッション鍵の送信は、Vendor defined SPDMメッセージ(例えば、VENDOR_DEFINED_REQUEST要求メッセージまたはVENDOR_DEFINED_RESPONSE応答メッセージ)によって送信されてもよい。つまり、画像系通信ホストと画像系通信デバイスとの間のセッション鍵または新セッション鍵を制御系通信ホストが生成する場合、制御系通信デバイスはExport Master Secretを導出する必要はなく、図184におけるKEY_UPDATE要求およびKEY_UPDATE_ACK応答は省略されることが可能である。また、制御系通信ホストは、画像系通信ホストと画像系通信デバイスとの間のセッション鍵または新セッション鍵を、Export Master Secretからの導出によって生成してもよいし、Export Master Secretとは異なるシークレットからの導出によって生成してもよいし、真性乱数生成器または疑似乱数生成器から生成してもよいし、これらとは異なる手段を用いて生成してもよい。また、画像系通信ホストと画像系通信デバイスとの間のセッション鍵または新セッション鍵は、第1画像系通信ホストと第1画像系通信デバイスと第2画像系通信ホストまたは第2画像系通信デバイスとの間(3つ以上の間)で使用可能なグループ鍵であってもよい。つまり、画像系通信ホストまたは画像系通信デバイスは、unicast(one-to-one)送信または受信だけではなく、multicast(one-to-many)送信または受信に対応してもよい。
 ところで、制御系通信ホストと画像系通信ホストとが別体である場合、画像系通信向けセッション鍵または新セッション鍵の使用開始タイミングに課題がある。例えば、画像系通信ホストがアプリケーションプロセッサまたはブリッジ一端であって画像系通信デバイスがイメージセンサまたはブリッジ他端である場合、画像系通信ホストであるアプリケーションプロセッサまたはブリッジ一端で画像系通信向けセッション鍵または新セッション鍵が受信されているのか(使用開始できるのか)イメージセンサまたはブリッジ他端には分からないという問題がある。これは、制御系通信ホストが、画像系通信向けセッション鍵または新セッション鍵を画像系データ受信側である制御系通信デバイス(例えば、イメージセンサに対応するアプリケーションプロセッサ、ディスプレイ、ブリッジ一端)へ先に送信し、その後に画像系データ送信側である制御系通信デバイス(例えば、イメージセンサ、ディスプレイに対応するアプリケーションプロセッサ、ブリッジ一端(ただし、ブリッジ一端が画像系データ受信側ではない場合)、ブリッジ他端)へ同じセッション鍵または同じ新セッション鍵を送信することによって解決できる。または、画像系通信向けセッション鍵または新セッション鍵の使用開始タイミングを制御系通信ホストが管理し、画像系通信向けセッション鍵または新セッション鍵を使用開始できることを示す情報が、制御系通信ホストから画像系データ送信側である制御系通信デバイスへ送信され、その受信に応じて画像系データ送信側が画像系通信向けセッション鍵または新セッション鍵を使用開始することによって解決できる。
 ところで、第1通信(例えば、制御系通信)と第1通信よりも高速な第2通信(例えば、画像系通信)とを保護する保護部は、第1セキュリティ演算部と第2セキュリティ演算部とを含んで構成されてもよい。また、第1セキュリティ演算部と第2セキュリティ演算部とは、同じ暗号アルゴリズムが適用されてもよいし、それぞれ異なる暗号アルゴリズムが適用されてもよい。例えば、画像系通信向けとして第1セキュリティ演算部にAES-GCM、AES-GMAC、ブロック暗号CCMモード、HMAC、またはCMACの何れかが適用され、制御系通信向けとして第2セキュリティ演算部にブロック暗号CBC(Cipher Block Chaining)モードまたはブロック暗号CTR(Counter)モードの何れかとHMACまたはCMACの何れかとの組み合わせが適用されてもよい。また、画像系通信向けとして第1セキュリティ演算部にブロック暗号CBCモードまたはブロック暗号CTRモードの何れかとHMACまたはCMACの何れかとの組み合わせが適用されてもよく、制御系通信向けとして第2セキュリティ演算部にAES-GCMまたはブロック暗号CCMモードの何れかが適用されてもよい。つまり、画像系通信ホストと画像系通信デバイスとの間の保護されたセッション(例えば、非SPDMセッション)は少なくともメッセージ認証によって保護されていればよいが、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介したセッション鍵または新セッション鍵の送信は、暗号化およびメッセージ認証によって保護される必要がある。ただし、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)内であっても、セッション鍵または新セッション鍵に関わらないメッセージは、暗号化しないでメッセージ認証によって保護されてもよいし、暗号化およびメッセージ認証によって保護されてもよい。例えば、Vendor defined SPDMメッセージ(例えば、VENDOR_DEFINED_REQUEST要求メッセージまたはVENDOR_DEFINED_RESPONSE応答メッセージ)の一部または全部が暗号化およびメッセージ認証によって保護され、HEARTBEAT要求メッセージ、HEARTBEAT_ACK応答メッセージ、HEARTBEAT_NAK応答メッセージ、ERROR応答メッセージ、KEY_UPDATE要求、KEY_UPDATE_ACK応答、またはVendor defined SPDMメッセージの残りなどが暗号化しないでメッセージ認証によって保護されてもよいし、暗号化およびメッセージ認証によって保護されてもよい。また、制御系通信ホストから制御系通信デバイスへ送信されるメッセージが暗号化およびメッセージ認証によって保護され、制御系通信デバイスから制御系通信ホストへ送信されるメッセージが暗号化しないでメッセージ認証によって保護されてもよいし、暗号化およびメッセージ認証によって保護されてもよい。
 ところで、図159は、拡張パケットヘッダ内のService Descriptorがメッセージ認証ON/OFF(Enable/Disable)のbitフラグを含む場合を示しているが、このbitフラグは攻撃者によって改竄される可能性がある。つまり、攻撃者によって画像系通信におけるメッセージ認証が無効化されるリスクがある。また、拡張パケットヘッダ内のService Descriptorが、メッセージ認証ON/OFFのbitフラグではなく、メッセージ認証を含むセキュリティ機能ON/OFFのbitフラグを含む場合にも同様である。また、例えば、ePH2[27:25]=Service Descriptor[3:1]=0b000:メッセージ認証なし・暗号化なし(セキュリティ機能が無効)、ePH2[27:25]=Service Descriptor[3:1]=0b001:メッセージ認証あり・暗号化あり(セキュリティ機能が有効)、ePH2[27:25]=Service Descriptor[3:1]=0b010:メッセージ認証あり・暗号化なし(セキュリティ機能が有効)、と定義してもよい。ただし、これらのビット割り当てや表現は異なってもよい。しかしながら、このリスクを承知した上で実装者が画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の有効化と無効化とを切り替える場合がある。その場合、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を許可するか否かを示す情報(例えば、1'b1:メッセージ認証またはメッセージ認証を含むセキュリティ機能のService Descriptorによる無効化を許可する、1'b0:メッセージ認証またはメッセージ認証を含むセキュリティ機能のService Descriptorによる無効化を許可しない)が、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信ホストから制御系通信デバイスへ送信されることが望ましい。ただし、これらのビット割り当て(1'b1/1'b0)は、逆に割り当てられてもよいし、1ビットの領域ではなく2ビット以上の領域に割り当てられてもよい。攻撃者によって画像系通信におけるメッセージ認証が無効化されるリスクを許容できない他の実装者は、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を許可しないことによって、攻撃者によって画像系通信におけるメッセージ認証が無効化(改竄)されることを対策できる。つまり、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を許可するか否かを示す情報(無効化に関連する情報)は、画像系通信が開始(例えば、画像系通信の拡張パケットが送信または受信)される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の一部または全部の無効化または有効化を示す情報は、画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。また、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を許可するか否かを示す情報(無効化に関連する情報)は、画像系通信向けセッション鍵または新セッション鍵の使用が画像系データ送信側で開始される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の一部または全部の無効化または有効化を示す情報は、画像系通信向けセッション鍵または新セッション鍵の画像系データ送信側における使用開始に応じて(または使用が画像系データ送信側で開始された後に)、画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。ただし、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を許可するか否かを示す情報(無効化に関連する情報)の送信または受信は、画像系通信ホストと画像系通信デバイスとの間の事前合意(Private contract)で代用されてもよい。つまり、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の一部または全部の無効化または有効化を示す情報は、事前合意された情報に従って画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ送信側から送信され、画像系データ受信側で受信され、事前合意された情報と受信された情報とが異なる場合、画像系データ受信側は拡張パケットが改竄されたと判断してもよい。一方、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能を有効化することは、許可されてもよい。つまり、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の一部または全部の有効化を示す情報は、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を示す情報が画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ送信側から送信または画像系データ受信側で受信された後に、画像系通信向けセッション鍵または新セッション鍵の画像系データ送信側における使用開始に応じて(または使用が画像系データ送信側で開始された後に)、画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ送信側から送信または画像系データ受信側で受信されてもよい。また、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を命令または要求する情報(無効化に関連する情報)が、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信ホストから制御系通信デバイスへ送信されてもよい。つまり、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能の無効化を命令または要求する情報(無効化に関連する情報)は、画像系通信が開始(例えば、画像系通信の拡張パケットが送信または受信)される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信されてもよい。また、画像系通信におけるメッセージ認証またはメッセージ認証を含むセキュリティ機能は、画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)を利用して有効化され、制御系通信向けセッション鍵によって保護された制御系通信を利用して無効化されてもよい。この場合にも、画像系通信におけるメッセージ認証の攻撃者による無効化(改竄)を対策できる。
 ところで、画像系通信向けとしてセキュリティ演算部にブロック暗号CBCモードまたはブロック暗号CTRモードの何れかとHMACまたはCMACの何れかとの組み合わせが適用される場合、暗号化鍵とMAC鍵とが必要になる。セッション鍵または新セッション鍵の上述した使用開始タイミング指定は、暗号化鍵向け第1使用開始タイミング指定(例えば、認証付き暗号向け、ブロック暗号CBCモード向け、ブロック暗号CTRモード向け)とMAC鍵向け第2使用開始タイミング指定(例えば、HMAC向け、CMAC向け)とで構成されてもよい。例えば、第1使用開始タイミング指定が第1鍵ID(例えば、認証付き暗号向け、ブロック暗号CBCモード向け、ブロック暗号CTRモード向け)に関連する情報を含み、第2使用開始タイミング指定が第2鍵ID(例えば、HMAC向け、CMAC向け)に関連する情報を含んでもよい。例えば、画像系データ送信側における暗号化鍵(セッション鍵または新セッション鍵)の使用開始に応じて第1使用開始タイミング指定が画像系データ送信側から画像系データ受信側へ送信(つまり、使用開始タイミング指定に応じて暗号化鍵の使用が開始)されるようにしてもよく、画像系データ送信側におけるMAC鍵(セッション鍵または新セッション鍵)の使用開始に応じて第2使用開始タイミング指定が画像系データ送信側から画像系データ受信側へ送信(つまり、使用開始タイミング指定に応じてMAC鍵の使用が開始)されるようにしてもよい。また、画像系データ送信側または画像系データ受信側において、第1使用開始タイミング指定に応じて暗号化鍵(セッション鍵または新セッション鍵)が使用開始されるようにしてもよく、第2使用開始タイミング指定に応じてMAC鍵(セッション鍵または新セッション鍵)が使用開始されるようにしてもよい。ただし、第2使用開始タイミング指定を設けないようにして、画像系データ送信側または画像系データ受信側において、第1使用開始タイミング指定(つまり、使用開始タイミング指定)に応じて暗号化鍵およびMAC鍵(セッション鍵または新セッション鍵)が使用開始されるようにしてもよい。
 ところで、保護された画像系通信(画像系データの送信)が開始される前に画像系通信向けセッション鍵および新セッション鍵が、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信ホストから制御系通信デバイスへ送信されてもよい。ただし、保護された画像系通信(画像系データの送信)が開始される前に画像系通信向けセッション鍵および2つ以上の新セッション鍵が制御系通信ホストから制御系通信デバイスへ送信されると、制御系通信ホスト側または制御系通信デバイス側では鍵を保持するための鍵スロット(例えば、メモリ領域)が3つ以上必要になるので、最新の新セッション鍵が制御系通信ホストから送信されるごとに制御系通信ホスト側における2つの鍵スロットに交互に書き込まれること、または最新の新セッション鍵が制御系通信デバイスで受信されるごとに制御系通信デバイス側における2つの鍵スロットに交互に書き込まれることなどによって、制御系通信ホスト側または制御系通信デバイス側で保持される鍵が最大2つとなるようにセッション鍵および新セッション鍵は送信(または受信)および破棄されることが望ましいが、その限りではない。
 ところで、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介して、画像系通信向けセッション鍵(新セッション鍵も含む)、アルゴリズム、または他パラメータなどの情報が制御系通信ホストから制御系通信デバイスへ送信されるが、アルゴリズム情報は暗号アルゴリズムの情報を含んでもよく、他パラメータ情報は画像系通信向けセッション鍵または新セッション鍵に対応する鍵ID情報を含んでもよい。鍵ID情報は、例えば、第1セッション鍵(セッション鍵)=0、第2セッション鍵(第1新セッション鍵)=1、第3セッション鍵(第2新セッション鍵)=2、第4セッション鍵(第3新セッション鍵)=3、…であってもよいし、第1セッション鍵(セッション鍵)=1'b0、第2セッション鍵(第1新セッション鍵)=1'b1、第3セッション鍵(第2新セッション鍵)=1'b0、第4セッション鍵(第3新セッション鍵)=1'b1、…であってもよいし、第1セッション鍵(セッション鍵)=1、第2セッション鍵(第1新セッション鍵)=2、第3セッション鍵(第2新セッション鍵)=3、第4セッション鍵(第3新セッション鍵)=4、…であってもよいし、第1セッション鍵(セッション鍵)=1'b1、第2セッション鍵(第1新セッション鍵)=1'b0、第3セッション鍵(第2新セッション鍵)=1'b1、第4セッション鍵(第3新セッション鍵)=1'b0、…であってもよく、鍵ID情報の値はロールオーバーしてもよい。また、鍵ID情報は、例えば、セッション鍵または新セッション鍵が書き込まれる鍵スロットの番号であってもよい。そして、制御系通信デバイスである画像系通信ホストまたは画像系通信デバイスは、拡張パケットヘッダ、パケットデータ、またはService Descriptorなどの何れかを介して画像系データ送信側から画像系データ受信側へ送信された鍵IDに関連する情報(例えば、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDが偶数(Even key)なのか奇数(Odd key)なのかを示す情報)に応じて、画像系通信向けセッション鍵または新セッション鍵を使用開始できる。ただし、拡張パケットヘッダまたはService Descriptorは、拡張パケットが対応するラインごとに膨大な回数が送信される(総データ量が大きい)ので、画像系通信向けセッション鍵または新セッション鍵を送信する場合に用いられる少ない回数の(総データ量が小さい)Vendor defined SPDMメッセージよりも格納できる情報量の制約が厳しい。そのため、拡張パケットヘッダまたはService Descriptorに格納される鍵ID情報の情報量は、Vendor defined SPDMメッセージに格納される鍵ID情報の情報量以下であることが望ましいが、その限りではない。つまり、鍵IDに関連する情報(例えば、鍵ID情報の一部または全部、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDが偶数(Even key)なのか奇数(Odd key)なのかを示す情報)は、画像系通信向けセッション鍵または新セッション鍵の使用が画像系データ送信側で開始される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、画像系通信向けセッション鍵または新セッション鍵の画像系データ送信側における使用開始に応じて(または使用が画像系データ送信側で開始された後に)、画像系通信の拡張パケット内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。また、鍵IDに関連する情報(例えば、鍵ID情報の一部または全部)は、画像系通信向けセッション鍵または新セッション鍵の使用が画像系データ送信側で開始される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、鍵IDに関連する情報の情報量を圧縮した情報(例えば、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDが偶数(Even key)なのか奇数(Odd key)なのかを示す情報)は、画像系通信向けセッション鍵または新セッション鍵の画像系データ送信側における使用開始に応じて(または使用が画像系データ送信側で開始された後に)、画像系通信の拡張パケット内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。また、制御系通信向けセッション鍵によって保護された制御系通信(例えば、VENDOR_DEFINED_REQUEST要求メッセージ)を利用して、最新の画像系通信向け新セッション鍵とこれに対応する鍵IDに関連する情報(例えば、鍵ID情報の一部または全部)とが制御系通信ホストから送信されて制御系通信デバイスで受信された場合、その応答として、制御系通信デバイスが保持している2つの画像系通信向けセッション鍵または新セッション鍵に対応する2つの鍵IDに関連する情報(例えば、鍵ID情報の一部または全部)を、制御系通信(例えば、VENDOR_DEFINED_RESPONSE応答メッセージ)を利用して制御系通信デバイスから制御系通信ホストへ送信してもよい。また、制御系通信向けセッション鍵によって保護された制御系通信(例えば、VENDOR_DEFINED_REQUEST要求メッセージ)を利用して、最新の画像系通信向け新セッション鍵とこれに対応する鍵IDに関連する情報(例えば、鍵ID情報の一部または全部)とが制御系通信ホストから送信されて制御系通信デバイスで受信された場合、その応答として、2つの鍵IDに関する不具合の有無(例えば、2つの鍵IDが不連続か否か、2つの鍵IDが両方とも偶数か否か、2つの鍵IDが両方とも奇数か否か、想定外の鍵スロット番号か否か)を示す情報が、制御系通信(例えば、VENDOR_DEFINED_RESPONSE応答メッセージ)を利用して制御系通信デバイスから制御系通信ホストへ送信されてもよい。これらの場合、制御系通信デバイスが保持している画像系通信向け鍵IDに関連する情報の情報量を圧縮した情報(例えば、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDが偶数(Even key)なのか奇数(Odd key)なのかを示す情報)に間違いがないことを、制御系通信ホストが事前確認できるので、制御系通信デバイスである画像系通信ホストまたは画像系通信デバイスによる誤った暗号化(復号)またはメッセージ認証を回避できる。例えば、制御系通信(例えば、VENDOR_DEFINED_RESPONSE応答メッセージ)を利用して制御系通信デバイスから送信されて制御系通信ホストで受信された情報に基づき、制御系通信デバイスが保持している2つの画像系通信向けセッション鍵または新セッション鍵に不具合があると制御系通信ホストが判断する場合、制御系通信ホストはさらに新たな新セッション鍵(最新セッション鍵)を導出または生成し、最新セッション鍵と最新セッション鍵に対応する鍵IDに関連する情報とを、制御系通信向けセッション鍵によって保護された制御系通信(例えば、VENDOR_DEFINED_REQUEST要求メッセージ)を利用して制御系通信ホストから制御系通信デバイスへ送信してもよい。また、例えば、制御系通信(例えば、VENDOR_DEFINED_RESPONSE応答メッセージ)を利用して制御系通信デバイスから送信されて制御系通信ホストで受信された情報に基づき、制御系通信デバイスが保持している2つの画像系通信向け新セッション鍵に不具合がないと制御系通信ホストが判断する場合、最新の画像系通信向け新セッション鍵を使用開始してよいことを示す情報を、制御系通信向けセッション鍵によって保護された制御系通信(例えば、VENDOR_DEFINED_REQUEST要求メッセージ)を利用して制御系通信ホストから制御系通信デバイス(特に、画像系データ送信側)へ送信してもよい。ただし、例えば、ePH2[27:25]=Service Descriptor[3:1]=0b001:メッセージ認証あり・暗号化あり・Key1(Even key)、ePH2[27:25]=Service Descriptor[3:1]=0b010:メッセージ認証あり・暗号化なし・Key2(Even key)、ePH2[27:25]=Service Descriptor[3:1]=0b100:メッセージ認証あり・暗号化あり・Key3(Odd key)、ePH2[27:25]=Service Descriptor[3:1]=0b101:メッセージ認証あり・暗号化なし・Key4(Odd key)、と定義してもよい。また、例えば、ePH2[27:25]=Service Descriptor[3:1]=0b001:メッセージ認証あり・暗号化あり・Key1(Odd key)、ePH2[27:25]=Service Descriptor[3:1]=0b010:メッセージ認証あり・暗号化なし・Key2(Odd key)、ePH2[27:25]=Service Descriptor[3:1]=0b100:メッセージ認証あり・暗号化あり・Key3(Even key)、ePH2[27:25]=Service Descriptor[3:1]=0b101:メッセージ認証あり・暗号化なし・Key4(Even key)、と定義してもよい。これらの場合は暗号化の有効化と無効化との切り替え(ON/OFF)によってセッション鍵を変える必要があるので、例えば、ePH2[27:25]=Service Descriptor[3:1]=0b011:メッセージ認証あり・暗号化なし・Key1、ePH2[27:25]=Service Descriptor[3:1]=0b110:メッセージ認証あり・暗号化なし・Key3、と定義することによって、同じセッション鍵で暗号化の有効化と無効化とを切り替え(ON/OFF)してもよい。具体的には、「0b001/0b011」の切り替えまたは「0b100/0b110」の切り替えによって、同じセッション鍵で暗号化の「有効化/無効化(ON/OFF)」を切り替え可能だが、これらのビット割り当てや表現は異なってもよい。例えば、ePH2[27:25]=Service Descriptor[3:1]=0b010:メッセージ認証あり・暗号化なし・Key1、ePH2[27:25]=Service Descriptor[3:1]=0b101:メッセージ認証あり・暗号化なし・Key3、としてもよいし、Key1またはKey3をKey0と置き換えてもよいし、Key2またはKey4をKey1と置き換えてもよい。同様に、例えば、ePH2[27:25]=Service Descriptor[3:1]=0b011:メッセージ認証あり・暗号化あり・Key2、ePH2[27:25]=Service Descriptor[3:1]=0b110:メッセージ認証あり・暗号化あり・Key4、と定義することによって、同じセッション鍵で暗号化の有効化と無効化とを切り替え(ON/OFF)してもよい。具体的には、「0b011/0b010」の切り替えまたは「0b110/0b101」の切り替えによって、同じセッション鍵で暗号化の「有効化/無効化(ON/OFF)」を切り替え可能だが、これらのビット割り当てや表現は異なってもよい。また、Key1とKey2とが同一か否かを示す情報(例えば、1'b1:Key1とKey2とは異なる、1'b0:Key1とKey2とは同一)またはKey3とKey4とが同一か否かを示す情報(例えば、1'b1:Key3とKey4とは異なる、1'b0:Key3とKey4とは同一)が、制御系通信ホストと制御系通信デバイスとの間の保護されたセッション(例えば、SPDMセッション)を介して制御系通信ホストから制御系通信デバイスへ送信されることによって、同じセッション鍵で暗号化の有効化と無効化とを切り替え(ON/OFF)してもよい。ただし、これらのビット割り当て(1'b1/1'b0)は、逆に割り当てられてもよいし、1ビットの領域ではなく2ビット以上の領域に割り当てられてもよい。つまり、Key1とKey2とが同一か否かを示す情報またはKey3とKey4とが同一か否かを示す情報は、画像系通信が開始(例えば、画像系通信の拡張パケットが送信または受信)される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報(例えば、Key1、Key2、Key3、またはKey4の何れかの指定)は、画像系通信の拡張パケッ
ト(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。また、Key1とKey2とが同一か否かを示す情報またはKey3とKey4とが同一か否かを示す情報は、画像系通信向けセッション鍵または新セッション鍵の使用が画像系データ送信側で開始される前に、制御系通信向けセッション鍵によって保護された制御系通信を利用して(例えば、他パラメータ情報の一部または全部として)制御系通信ホストから送信または制御系通信デバイスで受信され、画像系通信向けセッション鍵または新セッション鍵のうち使用開始する鍵または使用開始した鍵の鍵IDに対応する情報(例えば、Key1、Key2、Key3、またはKey4の何れかの指定)は、画像系通信向けセッション鍵または新セッション鍵の画像系データ送信側における使用開始に応じて(または使用が画像系データ送信側で開始された後に)、画像系通信の拡張パケット(例えば、拡張パケットヘッダ、Service Descriptor、パケットデータ)内に格納されて画像系データ受信側で受信または画像系データ送信側から送信されてもよい。また、Key1とKey2とが同一か否かを示す情報またはKey3とKey4とが同一か否かを示す情報の送信または受信は、画像系通信ホストと画像系通信デバイスとの間の事前合意(Private contract)で代用されてもよい。つまり、画像系通信ホストと画像系通信デバイスとは、ぞれぞれ、事前合意された情報に従ってKey1とKey2とが同一か否かまたはKey3とKey4とが同一か否かを判断してもよく、事前合意された情報に従って同じセッション鍵で暗号化の有効化と無効化とを切り替え(ON/OFF)してもよい。具体的には、Key1とKey2とが同一またはKey3とKey4とが同一であることが事前合意された場合、「0b001/0b010」の切り替えまたは「0b100/0b101」の切り替えによって、同じセッション鍵で暗号化の「有効化/無効化(ON/OFF)」を切り替え可能だが、これらのビット割り当てや表現は異なってもよい。
 <コンピュータの構成例>
 図208は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)2201,ROM(Read Only Memory)2202,RAM(Random Access Memory)2203、およびEEPROM(Electronically Erasable and Programmable Read Only Memory)2204は、バス2205により相互に接続されている。バス2205には、さらに、入出力インタフェース2206が接続されており、入出力インタフェース2206が外部に接続される。
 以上のように構成されるコンピュータでは、CPU2201が、例えば、ROM2202およびEEPROM2204に記憶されているプログラムを、バス2205を介してRAM2203にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU2201)が実行するプログラムは、ROM2202に予め書き込んでおく他、入出力インタフェース2206を介して外部からEEPROM2204にインストールしたり、更新したりすることができる。
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 <構成の組み合わせ例>
 なお、本技術は以下のような構成も取ることができる。
 (1) 第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
  前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
  前記保護部は、
   前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
   前記第1シークレットに関連する第1セッション鍵を導出し、
   前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
   または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
   前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
   または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
   前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
 ことを特徴とする情報処理装置。
 (2) 前記第3セッション鍵は、使用開始タイミング指定に応じて使用が開始される
 (1)に記載の情報処理装置。
 (3) 前記使用開始タイミング指定は、前記第2通信によって送信または受信される
 (2)に記載の情報処理装置。
 (4) 前記使用開始タイミング指定は、拡張パケット内に格納されて送信または受信される
 (3)に記載の情報処理装置。
 (5) 前記使用開始タイミング指定は、前記拡張パケット内のパケットヘッダ内に格納されて送信または受信される
 (4)に記載の情報処理装置。
 (6) 前記使用開始タイミング指定は、前記拡張パケット内のパケットデータ内に格納されて送信または受信される
 (4)または(5)に記載の情報処理装置。
 (7) 前記使用開始タイミング指定は、前記第1通信によって送信または受信される
 (2)乃至(6)のいずれかに記載の情報処理装置。
 (8) 前記使用開始タイミング指定は、読み出し応答内に格納されて送信または受信される
 (7)に記載の情報処理装置。
 (9) 前記使用開始タイミング指定は、書き込み命令内に格納されて送信または受信される
 (7)または(8)に記載の情報処理装置。
 (10) 前記使用開始タイミング指定は、メッセージカウント値、フレーム番号、またはデータタイプに関連する情報を含む
 (2)乃至(9)のいずれかに記載の情報処理装置。
 (11) 前記使用開始タイミング指定は、前記第2セッション鍵または前記第3セッション鍵に対応する鍵IDに関連する情報を含む
 (2)乃至(10)のいずれかに記載の情報処理装置。
 (12) 前記鍵IDに関連する情報は、
  前記第2セッション鍵または前記第3セッション鍵の使用が開始される前に、前記第1セッション鍵によって保護された前記第1通信を利用して送信または受信され、
  前記第2セッション鍵または前記第3セッション鍵の使用開始に応じて、前記第2通信の拡張パケット内に格納されて受信または送信される
 (11)に記載の情報処理装置。
 (13) 前記鍵IDに関連する情報は、前記第2セッション鍵または前記第3セッション鍵の使用が開始される前に、前記第1セッション鍵によって保護された前記第1通信を利用して送信または受信され、
 前記鍵IDに関連する情報の情報量を圧縮した情報は、前記第2セッション鍵または前記第3セッション鍵の使用開始に応じて、前記第2通信の拡張パケット内に格納されて受信または送信される
 (11)または(12)に記載の情報処理装置。
 (14) 前記第3セッション鍵は、正しく導出されたか鍵検証される
 (1)乃至(13)のいずれかに記載の情報処理装置。
 (15) 前記鍵検証は、前記第2通信で送信または受信された被検証データを用いて検証される
 (14)に記載の情報処理装置。
 (16) 前記被検証データは、拡張パケット内に格納されて送信または受信される
 (15)に記載の情報処理装置。
 (17) 前記第1セッション鍵は、正しく導出されたか前記第1通信で送信または受信されたデータを用いて検証される
 (15)または(16)に記載の情報処理装置。
 (18) 前記第2セッション鍵は、前記第2シークレットから導出され、
 前記第3セッション鍵は、前記第2シークレットから導出された第3シークレットから導出される
 (1)乃至(17)のいずれかに記載の情報処理装置。
 (19) 第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
  前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
  前記保護部は、
   前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
   前記第1シークレットに関連する第1セッション鍵を導出し、
   前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
   または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
   前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
   または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
   前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
 ことを特徴とする移動体装置。
 (20) 第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
  前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
  前記保護部は、
   前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
   前記第1シークレットに関連する第1セッション鍵を導出し、
   前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
   または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
   前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
  前記保護部は、
   前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
   または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
   または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
   前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
 ことを特徴とする通信システム。
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 1201 通信システム, 1211 イメージセンサ, 1212 アプリケーションプロセッサ, 1213 ディスプレイ, 1301 画素, 1302 AD変換器, 1303 画像処理部, 1304 拡張モード対応CSI-2送信回路, 1305 物理層処理部, 1306 I2C/I3Cスレーブ, 1307 記憶部, 1308 メッセージカウンタ, 1309 ナンス更新部, 1310 セキュリティ部, 1321 物理層処理部, 1322 拡張モード対応CSI-2受信回路, 1323 I2C/I3Cマスタ, 1324 記憶部, 1325 データ検証部, 1326 セキュリティ部, 1327 コントローラ, 1501 画素, 1502 AD変換器, 1503 画像処理部, 1504 拡張モード対応CSI-2送信回路, 1505 物理層処理部, 1506 I2C/I3Cスレーブ, 1507 記憶部, 1508 妨害検出部, 1509 障害検出部, 1510 セキュリティ部, 1511 侵害検出部, 1512 温度検出部, 1513 メッセージカウンタ, 1551 物理層処理部, 1552 拡張モード対応CSI-2受信回路, 1553 I2C/I3Cマスタ, 1554 記憶部, 1555 コントローラ, 1556 妨害検出部, 1557 障害検出部, 1558 セキュリティ部, 1559 侵害検出部, 1560 温度検出部

Claims (20)

  1.  第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
      前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
      前記保護部は、
       前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
       前記第1シークレットに関連する第1セッション鍵を導出し、
       前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
       または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
       前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
       または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
       前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
     ことを特徴とする情報処理装置。
  2.  前記第3セッション鍵は、使用開始タイミング指定に応じて使用が開始される
     請求項1に記載の情報処理装置。
  3.  前記使用開始タイミング指定は、前記第2通信によって送信または受信される
     請求項2に記載の情報処理装置。
  4.  前記使用開始タイミング指定は、拡張パケット内に格納されて送信または受信される
     請求項3に記載の情報処理装置。
  5.  前記使用開始タイミング指定は、前記拡張パケット内のパケットヘッダ内に格納されて送信または受信される
     請求項4に記載の情報処理装置。
  6.  前記使用開始タイミング指定は、前記拡張パケット内のパケットデータ内に格納されて送信または受信される
     請求項4に記載の情報処理装置。
  7.  前記使用開始タイミング指定は、前記第1通信によって送信または受信される
     請求項2に記載の情報処理装置。
  8.  前記使用開始タイミング指定は、読み出し応答内に格納されて送信または受信される
     請求項7に記載の情報処理装置。
  9.  前記使用開始タイミング指定は、書き込み命令内に格納されて送信または受信される
     請求項7に記載の情報処理装置。
  10.  前記使用開始タイミング指定は、メッセージカウント値、フレーム番号、またはデータタイプに関連する情報を含む
     請求項2に記載の情報処理装置。
  11.  前記使用開始タイミング指定は、前記第2セッション鍵または前記第3セッション鍵に対応する鍵IDに関連する情報を含む
     請求項2に記載の情報処理装置。
  12.  前記鍵IDに関連する情報は、
      前記第2セッション鍵または前記第3セッション鍵の使用が開始される前に、前記第1セッション鍵によって保護された前記第1通信を利用して送信または受信され、
      前記第2セッション鍵または前記第3セッション鍵の使用開始に応じて、前記第2通信の拡張パケット内に格納されて受信または送信される
     請求項11に記載の情報処理装置。
  13.  前記鍵IDに関連する情報は、前記第2セッション鍵または前記第3セッション鍵の使用が開始される前に、前記第1セッション鍵によって保護された前記第1通信を利用して送信または受信され、
     前記鍵IDに関連する情報の情報量を圧縮した情報は、前記第2セッション鍵または前記第3セッション鍵の使用開始に応じて、前記第2通信の拡張パケット内に格納されて受信または送信される
     請求項11に記載の情報処理装置。
  14.  前記第3セッション鍵は、正しく導出されたか鍵検証される
     請求項1に記載の情報処理装置。
  15.  前記鍵検証は、前記第2通信で送信または受信された被検証データを用いて検証される
     請求項14に記載の情報処理装置。
  16.  前記被検証データは、拡張パケット内に格納されて送信または受信される
     請求項15に記載の情報処理装置。
  17.  前記第1セッション鍵は、正しく導出されたか前記第1通信で送信または受信されたデータを用いて検証される
     請求項15に記載の情報処理装置。
  18.  前記第2セッション鍵は、前記第2シークレットから導出され、
     前記第3セッション鍵は、前記第2シークレットから導出された第3シークレットから導出される
     請求項1に記載の情報処理装置。
  19.  第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
      前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
      前記保護部は、
       前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
       前記第1シークレットに関連する第1セッション鍵を導出し、
       前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
       または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
       前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
       または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
       前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
     ことを特徴とする移動体装置。
  20.  第1通信と前記第1通信よりも高速な第2通信とを保護する保護部を備え、
      前記第1通信は、前記第2通信を制御する命令または前記命令に対する応答の送信または受信を含み、
      前記保護部は、
       前記第1通信を利用して鍵スケジュールから第1シークレットを導出し、
       前記第1シークレットに関連する第1セッション鍵を導出し、
       前記第1セッション鍵を前記第1通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第2セッション鍵を受信、
       または第2セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記鍵スケジュールから第2シークレットを導出して前記第2シークレットに関連する第2セッション鍵を導出し、
       前記第2セッション鍵を前記第2通信の暗号化またはメッセージ認証に使用し、
      前記保護部は、
       前記第1セッション鍵によって保護された前記第1通信を利用して第3セッション鍵を受信、
       または第3セッション鍵を導出または生成して前記第1セッション鍵によって保護された前記第1通信を利用して送信、
       または前記第2セッション鍵に加えて前記第2シークレットに関連する第3セッション鍵を導出し、
       前記第3セッション鍵は、前記第2セッション鍵に替えて使用が開始される
     ことを特徴とする通信システム。
PCT/JP2021/042005 2020-11-30 2021-11-16 情報処理装置、移動体装置、および通信システム WO2022113812A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/253,917 US20240007286A1 (en) 2020-11-30 2021-11-16 Information processing device, mobile device, and communication system
JP2022565244A JPWO2022113812A1 (ja) 2020-11-30 2021-11-16

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-198251 2020-11-30
JP2020198251 2020-11-30

Publications (1)

Publication Number Publication Date
WO2022113812A1 true WO2022113812A1 (ja) 2022-06-02

Family

ID=81755976

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/042005 WO2022113812A1 (ja) 2020-11-30 2021-11-16 情報処理装置、移動体装置、および通信システム

Country Status (4)

Country Link
US (1) US20240007286A1 (ja)
JP (1) JPWO2022113812A1 (ja)
TW (1) TW202228414A (ja)
WO (1) WO2022113812A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023243433A1 (ja) * 2022-06-16 2023-12-21 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、プログラム、および通信システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000078555A (ja) * 1998-08-28 2000-03-14 Sony Corp データ伝送システムの課金方法及び装置
JP2003092596A (ja) * 2001-09-18 2003-03-28 Toshiba Corp 移動端末、ルータ装置、ノード装置、移動エージェント、パケット転送方法及び移動エージェント処理方法
JP2009218845A (ja) * 2008-03-10 2009-09-24 Sony Corp 通信装置、及び通信方法
US20200092113A1 (en) * 2018-09-19 2020-03-19 Synaptics Incorporated Method and System For Securing In-Vehicle Ethernet Links
CN112448935A (zh) * 2019-09-03 2021-03-05 华为技术有限公司 建立网络连接的方法及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000078555A (ja) * 1998-08-28 2000-03-14 Sony Corp データ伝送システムの課金方法及び装置
JP2003092596A (ja) * 2001-09-18 2003-03-28 Toshiba Corp 移動端末、ルータ装置、ノード装置、移動エージェント、パケット転送方法及び移動エージェント処理方法
JP2009218845A (ja) * 2008-03-10 2009-09-24 Sony Corp 通信装置、及び通信方法
US20200092113A1 (en) * 2018-09-19 2020-03-19 Synaptics Incorporated Method and System For Securing In-Vehicle Ethernet Links
CN112448935A (zh) * 2019-09-03 2021-03-05 华为技术有限公司 建立网络连接的方法及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023243433A1 (ja) * 2022-06-16 2023-12-21 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、プログラム、および通信システム

Also Published As

Publication number Publication date
JPWO2022113812A1 (ja) 2022-06-02
US20240007286A1 (en) 2024-01-04
TW202228414A (zh) 2022-07-16

Similar Documents

Publication Publication Date Title
WO2022075081A1 (ja) 情報処理装置、移動体装置、および通信システム
EP3706005B1 (en) Secure stream protocol for serial interconnect
ES2691258T3 (es) Sistema y método para una comunicación anfitrión-esclavo segura
JP6126980B2 (ja) ネットワーク装置およびネットワークシステム
US11086810B2 (en) Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture
US20210034039A1 (en) Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
WO2022050057A1 (ja) 情報処理装置、移動体装置、および通信システム
US10050983B2 (en) Communication system, receiving apparatus, receiving method, and computer program product
WO2022113812A1 (ja) 情報処理装置、移動体装置、および通信システム
EP3751781B1 (en) Overhead reduction for link protection
US11570350B2 (en) Device, control method, and storage medium
JP2014236248A (ja) 電子制御装置、電子制御システム
WO2021146174A1 (en) Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture
WO2022172698A1 (ja) 情報処理装置、移動体装置、および通信システム
US11809163B2 (en) Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
CN116803050A (zh) 信息处理设备、移动设备及通信系统
US12008379B2 (en) Automotive image sensor, image processing system including the same and operating method thereof
US11888645B2 (en) Information processing device and management device
WO2021222641A1 (en) Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US20210406387A1 (en) Method and Apparatus for Managing Transmission of Secure Data Packets
WO2023243433A1 (ja) 情報処理装置、情報処理方法、プログラム、および通信システム
WO2023119893A1 (ja) データ処理装置
JP5940013B2 (ja) 車載通信システム及び通信装置
US20210303485A1 (en) Electronic device, control method thereof, and non-transitory computer-readable storage medium
JP6869203B2 (ja) 監視システム

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: 21897786

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022565244

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18253917

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21897786

Country of ref document: EP

Kind code of ref document: A1