WO2023223823A1 - データ処理装置、データ処理方法、およびプログラム - Google Patents

データ処理装置、データ処理方法、およびプログラム Download PDF

Info

Publication number
WO2023223823A1
WO2023223823A1 PCT/JP2023/017008 JP2023017008W WO2023223823A1 WO 2023223823 A1 WO2023223823 A1 WO 2023223823A1 JP 2023017008 W JP2023017008 W JP 2023017008W WO 2023223823 A1 WO2023223823 A1 WO 2023223823A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
register
data
host
information
Prior art date
Application number
PCT/JP2023/017008
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 ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023223823A1 publication Critical patent/WO2023223823A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Definitions

  • the present technology relates to a data processing device, a data processing method, and a program, and for example, to a data processing device, a data processing method, and a program that can improve the security of communication between an image sensor and a host.
  • the present technology was developed in view of this situation, and is intended to efficiently use register space and support multiple functions.
  • a data processing device includes, as an address area, a setting area for storing setting information transmitted from a host, a security data area for storing security data for the setting information, and a data processing area for storing setting information transmitted from a host.
  • a register having a communication information area for storing communication information between the host and the register; and a communication unit that performs register communication between the host and the register, and receives communication mode information indicating a communication mode of the register communication from the host.
  • the data processing device When received, the data processing device writes in the communication information area and sets register definitions for the same space of the registers for each communication mode based on the communication mode information written in the communication information area.
  • a data processing method includes, as an address area, a setting area for storing setting information transmitted from a host, a security data area for storing security data for the setting information, and an address area for storing setting information transmitted from a host.
  • a data processing device includes a register having a communication information area for storing communication information between the host and the register, and a communication unit that performs register communication between the host and the register, communication mode information indicating a communication mode of the register communication. is received from the host, it is written in the communication information area, and a register definition for the same space of the register is set for each communication mode based on the communication mode information written in the communication information area. It is.
  • a program includes a setting area for storing setting information transmitted from a host as an address area, a security data area for storing security data for the setting information, and a communication area between the host and the host.
  • communication indicating a communication mode of the register communication to a computer controlling a data processing device comprising a register having a communication information area for storing communication information and a communication unit performing register communication between the host and the register;
  • mode information is received from the host, writing it in the communication information area, and setting register definitions for the same space of the registers for each communication mode based on the communication mode information written in the communication information area.
  • the address area includes a setting area for storing setting information sent from a host, and security data for storing security data for the setting information. and a communication information area for storing communication information between the host and the host, and a communication section that performs register communication between the host and the register, and includes communication mode information indicating a communication mode of the register communication. is received from the host, it is written in the communication information area, and register definitions for the same register space are set for each communication mode based on the communication mode information written in the communication information area.
  • the data processing device may be an independent device or may be an internal block forming one device.
  • program can be provided by being transmitted via a transmission medium or by being recorded on a recording medium.
  • FIG. 1 is a diagram illustrating a configuration example of a data transmission system according to an embodiment of the present disclosure. It is a figure showing an example of composition of CIS.
  • FIG. 3 is a diagram illustrating a configuration example of a write determination section.
  • FIG. 3 is a diagram for explaining the concept of adding a CRC code.
  • FIG. 3 is a diagram for explaining the concept of MAC addition.
  • FIG. 3 is a diagram for explaining the concept of encrypted data addition.
  • FIG. 3 is a diagram showing an example of a register map.
  • FIG. 3 is a diagram for explaining data writing in MAC mode.
  • FIG. 3 is a diagram for explaining data writing in CRC mode.
  • FIG. 3 is a diagram for explaining writing of data in encryption mode.
  • FIG. 3 is a diagram for explaining reading of data in CRC mode.
  • FIG. 3 is a diagram for explaining reading of data in encryption mode.
  • FIG. 3 is a diagram for explaining processing states.
  • FIG. 3 is a diagram for explaining a register space in which data is managed.
  • FIG. 3 is a diagram for explaining a register space in which data is managed.
  • FIG. 3 is a diagram for explaining a register space in which data is managed.
  • FIG. 3 is a diagram for explaining the structure of encrypted data.
  • FIG. 3 is a diagram for explaining a format field.
  • FIG. 3 is a diagram for explaining a register space in which data is managed.
  • FIG. 3 is a diagram for explaining data exchanged during authentication.
  • FIG. 3 is a diagram for explaining processing at the time of authentication.
  • FIG. 3 is a diagram for explaining processing at the time of authentication.
  • FIG. 3 is a diagram for explaining writing of data in MAC/CRC mode.
  • FIG. 3 is a diagram for explaining writing of data in encryption mode.
  • FIG. 3 is a diagram for explaining reading of data in MAC/CRC mode.
  • FIG. 3 is a diagram for explaining reading of data in encryption mode.
  • FIG. 3 is a diagram for explaining writing of data in authentication mode.
  • FIG. 3 is a diagram for explaining reading of data in authentication mode.
  • FIG. 3 is a diagram showing another configuration example of the data transmission system.
  • FIG. 3 is a diagram for explaining processing including switching processing using Fuse. It is a figure for explaining a fuse value.
  • FIG. 2 is a diagram for explaining a configuration example of a PC.
  • FIG. 1 schematically shows an example of the overall configuration of a data transmission system according to an embodiment of the present disclosure.
  • the data transmission system includes, for example, a technology that improves the security of register communication between an image sensor (CIS (Complementary Metal-Oxide Semiconductor) Image Sensor) 1 inside a camera and a host 2. Regarding.
  • CIS Complementary Metal-Oxide Semiconductor
  • the data transmission system shown in FIG. 1 includes a CIS 1 as a data processing device, a host 2, a transmission path 3, and a transmission path 4.
  • the CIS 1 includes a communication section 110, an upper layer 113, a communication section 120, a data processing section 123, and a sensor section 124.
  • the communication unit 110 includes a physical layer (PHY) 111 and a link layer (LINK) 112.
  • the communication unit 120 includes a physical layer (PHY) 121 and a link layer (LINK) 122.
  • the upper layer 113 includes a register 130, a CPU (Central Processing Unit) 131, and hardware (HW) 132. Note that the upper layer 113 may have a configuration in which the CPU 131 is omitted.
  • CPU Central Processing Unit
  • HW hardware
  • the host 2 includes a communication section 210, an upper layer 213, a communication section 220, and a data processing section 223.
  • the communication unit 210 has a physical layer (PHY) 211 and a link layer (LINK) 212.
  • the communication unit 220 includes a physical layer (PHY) 221 and a link layer (LINK) 222.
  • the upper layer 213 includes a register 230, a CPU 231, and hardware (HW) 232.
  • the CIS 1 has a communication IF (register IF) that communicates with the CIS 1 as a slave and the host 2 as a master, and a high-speed IF (data output IF) that outputs large data such as image data acquired by the sensor unit 124.
  • IF registered IF
  • data output IF data output IF
  • the communication unit 110 of the CIS 1 and the communication unit 210 of the host 2 each constitute a communication IF (register IF) that allows mutual communication (register communication) between the registers 130 and 230 of each other via the transmission path 3.
  • the register IF may be configured to include multiple types of IFs with different protocols and to be able to switch between the multiple types of IFs.
  • two types of IFs SPI (Serial Peripheral Interface) and I2C (Inter Integrated Circuit), may be installed and configured to be switchable.
  • the communication unit 120 of the CIS 1 constitutes a high-speed IF (data output IF) that outputs large data such as image data acquired from the sensor unit 124 to the communication unit 220 of the host 2 via the transmission path 4.
  • IF data output IF
  • Examples of the high-speed IF include MIPI (Mobile Industry Processor Interface), SLVS-EC (Scalable Low Voltage Signaling with Embedded Clock), and SLVS (Scalable Low Voltage Signaling).
  • the register 130 of the CIS 1 stores setting information sent from the host 2 via the register IF.
  • the processing operation of each part inside the CIS 1 is determined by what value is set as setting information in the register 130.
  • the setting information includes, for example, exposure time, gain, resolution (pixel addition, thinning number), frame rate, ROI (Region of Interest), and other operating modes.
  • the register 130 of the CIS 1 also stores information on various states within the CIS 1, environmental information, and the like. Various status information, environment information, etc. stored in the register 130 can be read from the host 2 via the register IF. Examples of various status information and environmental information include temperature information inside the CIS 1, metadata when image information from the sensor unit 124 is processed by the data processing unit 123, and error and warning detection information.
  • the upper layer 213 determines how the CIS 1 should behave, and transmits the value that determines the behavior of the CIS 1 as setting information via the register IF.
  • the host 2 changes the value of the setting information according to various status information, environment information, etc. read from the register 130 of the CIS 1. Since the behavior of the CIS 1 differs depending on the use case, the SW (software) of the CPU 231 of the host 2 is often configured to be relatively easily rewritten.
  • the upper layer 213 is composed of an FPGA (Field Programmable Gate Array), both the CPU 231 and the hardware 232 have a variable configuration.
  • the product-specific parts may be determined only by the upper layers 113 and 213, for example, based on the specifications (address and value definitions) of the registers 130 and 230.
  • the register IF rules for how to transmit configuration information are defined as specifications for the physical layers 111 and 211 and the link layers 112 and 212.
  • the upper layer 113, 213 can control between the CIS 1 and the host 2 via the register IF by simply defining the address of the register 130, 230 and the operation when a value is set in the register 130. Able to exchange information and other information.
  • FIG. 2 schematically shows a configuration example of the CIS 1 as a data processing device.
  • the CIS 1 includes a communication unit 110, a communication unit 120, a data processing unit 123, a sensor unit 124, a register 130, a write determination unit 410, a processing state output terminal 501, and an error output terminal 502.
  • the processing state output terminal 501 outputs a processing status (processing state FS_S_ACT) indicating the processing state in the register 130 to the host 2 as notification information.
  • the error output terminal 502 outputs error information (error state FS_S_ERR) occurring in the processing in the register 130 to the host 2 as notification information.
  • the data processing unit 123 performs various data processing on the sensor data output from the sensor unit 124.
  • the communication unit 120 adds notification information such as error information to the sensor data subjected to various data processing in the data processing unit 123 and outputs the sensor data to the host 2 .
  • FIG. 2 shows a case where, after writing a setting value to the sensor register 311, whether or not the written value is correct is determined by, for example, CRC (Cyclic Redundancy Code) or MAC (Message Authentication Code).
  • CRC Cyclic Redundancy Code
  • MAC Message Authentication Code
  • Setting values from the host 2 are sequentially reflected in the sensor register 311 via the communication unit 110.
  • the setting values in each part of the CIS 1 may be reflected, for example, after being latched at the timing of a frame synchronization signal (Frame Sync) of sensor data.
  • Frame Sync frame synchronization signal
  • FIG. 3 shows a specific example of the write determination unit 410 in the CIS 1 shown in FIG. 2.
  • the write determination unit 410 includes a register communication detection unit 411, a data calculation unit 412, an error detection unit 413, and a write counter control unit 414.
  • the register communication detection unit 411 detects that there is register communication.
  • the data calculation unit 412 performs calculations related to CRC, MAC, encryption, and the like.
  • the error detection unit 413 performs error detection based on the calculation result of the data calculation unit 412.
  • the write counter control unit 414 counts the number of write requests to the register 130 based on the detection result of the register communication detection unit 411, and updates the counter value of the write counter of the register 130.
  • the write determination unit 410 determines whether the setting information reflected in the sensor register 311 is correct or incorrect based on the security data. As described above, the setting information reflected in the sensor register 311 may be determined to be correct or incorrect based on the security data, and after it is determined to be correct, the setting information may be reflected in the sensor register 311. can.
  • the communication information register 312 notifies the write determination unit 410 of the calculation start timing and calculation completion timing in the data calculation unit 412. Further, the communication information register 312 issues notifications such as completion of writing of security data such as CRC data and MAC data to the functional safety/security data area 313 (judgment timing).
  • FIG. 4 schematically shows an example of communication by adding a CRC code (error detection code) as a general safety and security technique.
  • CRC error determination
  • ECC error correction
  • FIG. 5 schematically shows an example of communication by adding a message authentication code (MAC) as a general safety and security technology.
  • MAC message authentication code
  • MAC is generally used in communications that require real-time performance, such as communication IF (signatures may also be used).
  • the data output side and the data input side have a common encryption secret key K (KB).
  • K common encryption secret key
  • a MAC is generated using the common encryption secret key K (KB), and the generated MAC is added to the data to be communicated and output.
  • IV initial vector
  • IV information is not required because the calculation is performed using IV0, but when GMAC (Galois Message Authentication Code) is used, IV information is also added and output.
  • GMAC Galois Message Authentication Code
  • a MAC is generated using a common encryption secret key K (KB), and the data is authenticated by comparing it with the MAC added to the data.
  • FIG. 6 schematically shows an example of communication using encryption as a general safety and security technology.
  • Encryption technology may be used to prevent the data itself from being intercepted.
  • the data output side and the data input side have a common encryption secret key K (KB).
  • K common encryption secret key
  • data to be communicated is encrypted using a common encryption secret key K (KB) and IV (initial vector) to generate encrypted data and output.
  • the encrypted data is decrypted using the common encryption secret key K (KB) and IV.
  • MAC mode a communication mode using MAC
  • CRC mode a communication mode using CRC
  • encryption mode a communication mode using encryption
  • FIG. 7 shows an example of the configuration (register map) of the register 130. Note that the addresses in the register map shown in FIG. 7 are merely examples, and can be changed as necessary.
  • the register 130 in the CIS 1 has a setting area (sensor register 311) that stores setting information sent from the host 2 as an address area.
  • a security data area functional safety/security data area 313 that stores security data for setting information as a safety/security address area, and communication information between the host 2 and the host 2. It has a communication information area (communication information register 312) to be stored.
  • Safety and security information is exchanged between the CIS 1 and the host 2 in the upper layers 113 and 213 using the safety and security address area in the register 130.
  • safety can be determined by the upper layers 113 and 213, rather than being determined by the protocol rules of the register IF.
  • - Enables security checks It may have a function of determining whether or not the address area is for safety and security, and a function of selecting whether or not to access the address area for safety and security.
  • the functional safety/security data area 313 stores, as security data, for example, an error detection code (CRC code) related to setting information and a message authentication code (MAC) related to setting information. Further, the functional safety/security data area 313 stores, for example, encrypted data including setting information as security data, as will be described later.
  • the functional safety/security data area 313 is, for example, an address area of 256 bytes ⁇ n.
  • the functional safety/security data area 313 may include a Write register for writing security data and a Read register for reading.
  • the communication information register 312 is a mode setting register for safety and security.
  • the communication information register 312 stores, as communication information, for example, communication mode information indicating the communication mode of register communication, status information indicating the start of register communication, and status information indicating the end of register communication.
  • the CPU code or Fuse in the CIS 1 may be configured to switch whether or not to use the functional safety/security data area 313 and the communication information register 312 of the register 130. Further, the CPU code or Fuse may be configured to switch which of a plurality of safety/security technology functions to use.
  • the communication information register 312 and the functional safety/security data area 313 in common for multiple functions, the size of the register area can be reduced. You can later select which of the multiple functions to use by changing the settings when starting the product, changing the software part, or switching with Fuse.
  • the address areas of the communication information register 312 and the functional safety/security data area 313 need only be prepared for the areas necessary for the functions of the compatible operation modes among the multiple safety/security technology functions.
  • the address areas of the communication information register 312 and the functional safety/security data area 313 may be small in size if a large area is not required, such as when only CRC is supported. If the CIS1 can support CRC and MAC, it is sufficient to prepare only the larger address area required for CRC or MAC. Even if the configuration is compatible with both CRC and MAC, it is not necessary to prepare both an address area for CRC and an address area for MAC.
  • FIG. 8 is a sequence diagram showing an example of register communication.
  • FIG. 8 shows an example of register communication when writing setting information to the sensor register 311 in the MAC mode.
  • the operation mode value (MAC_REGW) is single-shot written to the FS_S_STETE register of the communication information register 312.
  • setting information is transmitted from the host 2 to the sensor register 311 via the register IF.
  • the setting information for example, an address and a group of setting values (multiple combinations are possible) at which the setting values in the sensor register 311 are to be changed are transmitted.
  • the CIS 1 setting information is written to the sensor register 311.
  • various register settings are made in the sensor register 311.
  • writing may be performed in a register group that requires writing by a combination of a single write and a continuous write.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • a status FS_S_STATE MAC_DATAW indicating a request to start writing security data in MAC mode is transmitted from the host 2 via the register IF as communication information.
  • the operation mode value (MAC_DATAW) is single-shot written to the FS_S_STETE register of the communication information register 312.
  • security data (MAC data) in MAC mode is transmitted from the host 2 via the register IF.
  • MAC data is written in the functional safety/security data area 313.
  • the MAC data may be transmitted by burst transfer with a high transfer rate.
  • Information necessary for processing other than MAC may also be transmitted as security data. For example, information such as MAC mode information when there are multiple algorithms and IV when using GMAC may also be transmitted. If multiple algorithms can be supported, the operation mode may be fixed in advance when starting the product or by using Fuse.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • the CIS 1 can support multiple transfer modes by notifying the communication mode as communication information from the host 2. As described above, by storing the status information indicating the start of communication and the status information indicating the end of communication as communication information in the communication information register 312, data can be transferred from the host 2 regardless of the address area of the register 130 to be set. It is possible to transmit chunks, and it is possible to perform communication that is not affected by the unit of transfer, such as burst transfer. Furthermore, the start of data transmission can be clearly defined between the host 2 and the CIS 1. Multiple addresses and data can be subject to CRC, MAC, or encryption. Data can be transmitted more efficiently than transmitting CRC data or MAC data for each transfer unit.
  • FIG. 9 is a sequence diagram showing an example of register communication.
  • FIG. 9 shows an example of register communication when writing setting information to the sensor register 311 in the CRC mode.
  • the setting information for example, an address and a group of setting values (multiple combinations are possible) at which the setting values in the sensor register 311 are to be changed are transmitted.
  • the operation mode value (CRC_REGW) is single-shot written to the FS_S_STETE register of the communication information register 312.
  • setting information is transmitted from the host 2 to the sensor register 311 via the register IF.
  • setting information is written to the sensor register 311.
  • various register settings are made in the sensor register 311.
  • writing may be performed in a register group that requires writing by a combination of a single write and a continuous write.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • the CIS 1 single-shot writes an operation mode value (CRC_DATAW) to the FS_S_STETE register of the communication information register 312.
  • security data (CRC data) in CRC mode is transmitted from the host 2 via the register IF.
  • CRC data is written in the functional safety/security data area 313.
  • the CRC data may be transmitted by burst transfer with a high transfer rate.
  • Information necessary for processing other than CRC may also be transmitted as security data.
  • CRC mode information when there are multiple algorithms may also be transmitted. If multiple algorithms can be supported, the operation mode may be fixed in advance when starting the product or by using Fuse.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • FIG. 10 is a sequence diagram showing an example of register communication in encryption mode.
  • FIG. 10 shows an example of register communication when setting information to be written to the sensor register 311 is encrypted using the encryption mode.
  • the lower right part of FIG. 10 shows an image of processing within the CIS1.
  • CIS1 includes a decryption unit 430 that decrypts encrypted data.
  • the CIS 1 single-shot writes an operation mode value (USERDEF_DATAW) to the FS_S_STETE register of the communication information register 312.
  • the encrypted setting information is transmitted as encrypted data from the host 2 via the register IF.
  • encrypted data is written in the functional safety/security data area 313.
  • the decryption unit 430 decrypts the encrypted data, and writes the setting information (register address and setting value) obtained by the decryption to the sensor register 311. Note that authentication (confirming that the data has not been tampered with) is generally performed at the time of decryption. Further, in the CIS 1, a processing completion notification indicating that decoding is completed is performed using the processing state FS_S_ACT. Furthermore, if there is an error, error information is notified using the error state FS_S_ERR.
  • FIG. 11 is a sequence diagram showing an example of register communication when reading data.
  • FIG. 11 shows an example of register communication when the host 2 requests to read the setting information stored in the sensor register 311 in the CRC mode.
  • the CIS 1 When there is a request to read configuration information from the host 2, the CIS 1 reads the configuration information stored in the sensor register 311 and the security data related to the configuration information stored in the functional safety/security data area 313. The read data is read and transmitted to the host 2 via the register IF. Note that the operation when reading in the MAC mode is basically the same.
  • the operation mode value (CRC_REGR) is single-shot written to the FS_S_STETE register of the communication information register 312.
  • the CIS 1 reads the setting information stored in the sensor register 311 and transmits the read data to the host 2 via the register IF.
  • the setting information includes, for example, the register address and setting value of the sensor register 311 to be read.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • the CIS 1 issues a completion notification indicating that the read process has been completed, for example, using the processing state FS_S_ACT. The notification may be performed using the processing state output terminal 501 or the register IF.
  • the CIS 1 single-shot writes an operation mode value (CRC_DATAR) to the FS_S_STETE register of the communication information register 312.
  • the CIS 1 generates CRC data and writes the CRC data into the functional safety/security data area 313.
  • the CIS 1 reads the CRC data from the functional safety/security data area 313 and transmits the CRC data as security data to the host 2 via the register IF.
  • the CRC data may include the register address and CRC value of the sensor register 311 to be read.
  • Information necessary for processing other than CRC may also be transmitted as security data. For example, CRC mode information when there are multiple algorithms may also be transmitted.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • FIG. 12 is a sequence diagram showing an example of register communication when reading in encrypted mode.
  • FIG. 12 shows an example of register communication when the host 2 requests to read the setting information stored in the sensor register 311 in the encryption mode.
  • the CIS 1 When there is a request from the host 2 to read configuration information in encryption mode, the CIS 1 encrypts the configuration information stored in the sensor register 311 and writes it as encrypted data to the functional safety/security data area 313, and then Encrypted data is read from the safety/security data area 313.
  • the CIS 1 single-shot writes the operation mode value (USERDEF_DATAW) to the FS_S_STETE register of the communication information register 312.
  • the CIS 1 reads out the setting information stored in the sensor register 311, encrypts the setting information, and writes it as encrypted data in the functional safety/security data area 313.
  • the encrypted data may include an encrypted read request command, and the address and data size of the sensor register 311 that is the target of the encrypted read request. In some cases, it is better not to have an address. Whether the address is included or not depends on the product.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • the CIS 1 issues a completion notification indicating that the write process has been completed, for example, using the processing state FS_S_ACT.
  • the notification may be performed using the processing state output terminal 501 or the register IF.
  • the CIS 1 single-shot writes the operation mode value (USERDEF_DATAR) to the FS_S_STETE register of the communication information register 312.
  • the CIS 1 reads encrypted data from the functional safety/security data area 313 and transmits the encrypted data to the host 2 via the register IF.
  • the operation mode value of the FS_S_STETE register of the communication information register 312 is set to 0.
  • FIG. 13 is a sequence diagram showing an example of register communication.
  • FIG. 13 shows an example of state notification within the CIS 1 when writing configuration information in the CRC mode.
  • the processing state FS_S_ACT is High, it indicates that it is Active. By noting that the processing state FS_S_ACT has become Low, it can be determined that writing of the set value to the sensor register 311 has been completed. If the error state FS_S_ERR remains Low and no error is detected, the reflection of the set value to the sensor register 311 is finished when the processing state FS_S_ACT becomes Low. For example, if the error state FS_S_ERR is Low, it indicates that it is Active.
  • the safety functions of CIS1 include CRC inspection of write data and CRC addition to read data, and security functions include authentication at startup and encryption of write and read data during normal operation. and MAC.
  • Various authentication and key exchange methods are defined, such as ISO9798 and ISO11770. In order to support these functions and communication methods on the CIS 1 side, it is necessary to prepare a register area for each function in the register space of the register 130 of the CIS 1.
  • the register space of the register 130 of the CIS 1 is limited, and in order to be configured to support many functions and communication methods, it is necessary to have a larger register space. Also, as mentioned above, depending on the type of data, you may want to set it as single data (in the example above, it was written as single write), or you want to set it as continuous data (in the example above, it was written as continuous write). ), and there are cases where you want to write a chunk of data to consecutive addresses.
  • single-shot data includes information on scene changes such as exposure time and analog gain.
  • Continuous data includes mode transitions, condition settings at startup, and reading of metadata within the sensor (within CIS1).
  • dictionary data and the like are also set as continuous data.
  • the plurality of modes include the MAC mode, which is a communication mode using the above-mentioned MAC, the CRC mode, which is a communication mode using CRC, and the encryption mode, which is a communication mode using encryption.
  • MAC mode which is a communication mode using the above-mentioned MAC
  • CRC mode which is a communication mode using CRC
  • encryption mode which is a communication mode using encryption.
  • a communication mode for performing conventional communication is prepared, and this mode is referred to as the conventional mode.
  • there is also a communication mode using authentication data and this mode is referred to as an authentication mode.
  • the register 130 operates based on the set mode among these modes. For example, when data A is written in register space A, the register 130 is in CRC mode, and data A is treated as data in CRC mode. This is a case where data A is written in this register space A, and when the mode is MAC mode, data A is treated as data in the MAC mode.
  • the register 130 is configured to have a space area of a predetermined size by allowing the register space to be switched and used in a plurality of modes, in other words, by allowing the register space to be shared and used in a plurality of modes. can be used effectively. Let me explain this further.
  • FIG. 14 is a diagram for explaining data that is written or is being written to the register 130 during communication when the conventional mode is set.
  • the conventional mode in other words, when the mode is not specified by a command, the target data (any number of bytes) to be written or read from the host 2 is stored in the sensor register 311 of the register 130. managed.
  • the command is not managed in the communication information register. works.
  • the target data requested to be written to the register 130 from the host 2 is written to the sensor register 311 of the register 130.
  • target data requested to be read from the register 130 from the host 2 is read from the sensor register 311 of the register 130.
  • FIG. 15 is a diagram for explaining data written to or being written to the register 130 in communication when the functional safety command (CRC) is set.
  • CRC functional safety command
  • the functional safety command is set when a command to set the CRC mode is received from the host 2. Specifically, when a command (CRC) is written in the communication information register 312, the register 130 operates as managing data in the CRC mode.
  • the target data (any number of bytes) requested to be written to the register 130 from the host 2 is written to the sensor register 311 of the register 130, and the command (CRC) is written to the communication information register 312.
  • the CRC data (for example, 4 bytes) is written to the functional safety/security data area 313.
  • CRC data is data generated using target data and a command (CRC) as objects of CRC calculation.
  • Data such as CRC data, which is temporarily referenced to verify the safety of the target data when it is received, and the address itself, including the area in the register 130 where it is managed, are kept secret. Data that is better is managed in the functional safety/security data area 313.
  • the target data is managed by the sensor register 311 in both cases. Even if the target data is managed in the same register space as the sensor register 311, if it is set to the conventional mode, it will be treated as the target data in the conventional mode, and if it is set to the CRC mode, it will be treated as the target data in the conventional mode. is treated as target data in CRC mode. In other words, even data managed in the same register space is handled differently depending on the set mode.
  • the CIS 1 including such a register 130 can support multiple functions with enhanced functional safety and security functions.
  • FIG. 16 is a diagram for explaining data that is written or is being written to the register 130 during communication when the security command (MAC) is set.
  • the security command (MAC) is set when a command to set the MAC mode is received from the host 2 and the command (MAC) is managed by the communication information register 312.
  • a command (MAC) from the register 130 from the host 2 is written to the communication information register 312.
  • the target data any number of bytes
  • the MAC data for example, 16 bytes
  • the initial vector for example, 16 bytes
  • MAC data is data that is generated using target data and a command (MAC) as objects of MAC data calculation.
  • FIG. 17 is a diagram for explaining data that is or is being written to the register 130 during communication when the security command (encryption) is set.
  • the security command (encryption) is set when a command to set the encryption mode is received from the host 2 and the command (encryption) is managed by the communication information register 312.
  • the command (encrypted) from the host 2 from the register 130 is written to the communication information register 312.
  • the target data requested to be written to the register 130 from the host 2 is written to the functional safety/security data area 313 as encrypted data (any number of bytes).
  • the total data size (for example, 4 bytes), IV (for example, 16 bytes), and MAC data (for example, 16 bytes) are also written in the functional safety/security data area 313.
  • the target data to be written is encrypted and supplied from the host 2, and written to the functional safety/security data area 313 while being encrypted.
  • the encrypted data is stored in the functional safety/security data area in order to keep the address information itself (in which space of the register 130) secret from attackers. 313.
  • the MAC data is data that is generated using the command (encryption), total data size, and encrypted data as objects of the MAC data calculation.
  • the encrypted data managed in the functional safety/security data area 313 has a format as shown in FIG. Define a format that allows burst transfer and single transfer within encrypted data when issuing an encrypted command.
  • the format shown in A of FIG. 18 is single address data, and shows the format of encrypted data at the time of writing.
  • the format shown in A of FIG. 18 is, in order from the top in the figure, a format field (e.g. 1 byte), a set number field (e.g. 1 byte), an address 1 field (e.g. 2 bytes), a data 1 field (data at address 1). , for example, 1 byte), two address fields (for example, 2 bytes), two data fields (data at address 2, for example, 1 byte), etc. are arranged.
  • An address field and a data field for example, an address field and a data field, constitute one set, and the number of such sets consisting of an address field and data field is written in the number of sets field.
  • FIG. 19 An example of the values written in the format field is shown in FIG. 19. In the case of a single address WRITE, the value "0000_0000" is written in the format field.
  • the format shown in B in FIG. 18 is continuous address data, and shows the format of encrypted data at the time of writing.
  • the format shown in B of FIG. 18 is, from top to bottom, a format field (for example, 1 byte), a set number field (for example, 1 byte), an address field (for example, 2 bytes), and a size field (for example, 2 bytes).
  • a format field for example, 1 byte
  • a set number field for example, 1 byte
  • an address field for example, 2 bytes
  • a size field for example, 2 bytes.
  • An address field and a data field for example, a data 1-1 field, a data 1-2 field, etc. arranged from the address 1 field to before the address 2 field, are one set.
  • the number of sets consisting of a plurality of data fields is written in the number of sets field.
  • the size field describes the total number of bytes of data fields included in the set.
  • the size 1 field describes the total number of bytes of data fields included in one set consisting of the data 1-1 field, the data 1-2 field, and so on.
  • the format shown in C in FIG. 18 is single address data and shows the format of encrypted data at the time of a read request.
  • the format shown in FIG. 18C is, in order from the top in the figure, a format field (for example, 1 byte), a set number field (for example, 1 byte), an address 1 field (for example, 2 byte), and an address 2 field (for example, 2 byte). , three address fields (for example, 2 bytes), etc. are arranged.
  • One address field is considered as one set, and the number of such sets is written in the number of sets field.
  • the format shown in D in FIG. 18 is continuous address data and shows the format of encrypted data at the time of a read request.
  • the format shown in D of FIG. 18 is, in order from the top in the figure, a format field (e.g. 1 byte), a set number field (e.g. 1 byte), an address 1 field (e.g. 2 bytes), a size 1 field (e.g. 2 bytes). , two address fields (for example, 2 bytes), two size fields (for example, 2 bytes), etc. are arranged.
  • An address field and a size field for example an address 1 field and a size 1 field, constitute one set, and the number of such sets consisting of an address field and size field is written in the number of sets field.
  • the size field describes the number of bytes of addresses included in the set.
  • the size 1 field describes the number of bytes in the address 1 field.
  • the format shown in E of FIG. 18 is single address data, and shows the format of encrypted data at the time of reading (READ).
  • the format shown in FIG. 18E is, in order from the top in the figure, a format field (e.g. 1 byte), a set number field (e.g. 1 byte), an address 1 field (e.g. 2 bytes), a data 1 field (data at address 1). , for example, 1 byte), two address fields (for example, 2 bytes), two data fields (data at address 2, for example, 1 byte), etc. are arranged.
  • An address field and a data field for example, an address field and a data field, constitute one set, and the number of such sets consisting of an address field and data field is written in the number of sets field.
  • the format shown in F in FIG. 18 is continuous address data, and shows the format of encrypted data at the time of reading (READ).
  • the format shown in F in FIG. 18 is, in order from the top in the figure, a format field (e.g. 1 byte), a set number field (e.g. 1 byte), an address 1 field (e.g. 2 bytes), a size 1 field (e.g. 2 bytes).
  • a format field e.g. 1 byte
  • a set number field e.g. 1 byte
  • an address 1 field e.g. 2 bytes
  • a size 1 field e.g. 2 bytes
  • Data 1-1 field data at address 1, e.g. 1 byte
  • Data 1-2 field data at address 1+1, e.g. 1 byte
  • ... Address 2 field (e.g. 2 bytes)
  • Size 2 field For example, 2 bytes), a data 2-1 field (data at address 2, for example 2 bytes), and so on are arranged.
  • An address field and a data field for example, a data 1-1 field, a data 1-2 field, etc. arranged from the address 1 field to before the address 2 field, are one set.
  • the number of sets consisting of a plurality of data fields is written in the number of sets field.
  • the size field describes the total number of bytes of data fields included in the set.
  • the size 1 field describes the total number of bytes of data fields included in one set consisting of the data 1-1 field, the data 1-2 field, and so on.
  • the format shown in G in FIG. 18 shows the format of read data without an address.
  • the format shown in G in FIG. 18 is, in order from the top in the figure, a format field (for example, 1 byte), a size field (for example, 4 byte), a data 1 field (for example, 1 byte), a data 2 field (for example, 1 byte), Three data fields (for example, 1 byte) are arranged.
  • Single-shot address data is used, for example, when it is desired to transmit scene change information such as exposure time and analog gain.
  • Continuous address data is used for mode transition, setting conditions at startup, reading metadata in the CIS 1, and the like.
  • Continuous address data is also used when the CIS 1 is equipped with an AI or when it is desired to transmit dictionary data or the like.
  • FIG. 20 is a diagram for explaining data that is or is being written to the register 130 in communication when the authentication command is set.
  • the authentication command is set when a command to set the authentication mode is received from the host 2 and the command (authentication) is managed by the communication information register 312.
  • the authentication data (xxbyte) requested to be written to the register 130 from the host 2 is written to the functional safety/security data area 313.
  • the host 2 generates an authentication request and sends it to the CIS 1 in step S11.
  • the CIS 1 receives the authentication request from the host 2 and processes the data in step S21.
  • the format of the authentication request generated and transmitted by the host 2 is shown in FIG.
  • the format of the authentication request consists of a command (authentication) and an authentication request.
  • the CIS 1 Upon receiving such an authentication request, the CIS 1 writes command (authentication) data to the communication information register 312, as described with reference to FIG. (corresponding data) is written to the functional safety/security data area 313.
  • step S22 the CIS 1 generates an authentication response A and writes it into the functional safety/security data area 313.
  • the CIS 1 reads the authentication response A from the functional safety/security data area 313 and outputs it to the host 2.
  • the host 2 receives and processes the authentication response A from the CIS 1 in step S12, and authenticates the CIS 1.
  • the format of the authentication response A generated in the CIS 1 and read by the host 2 is shown in FIG.
  • the format of the authentication response A is composed of a command (authentication), IVA , CIS authentication response, and MAC A.
  • the CIS authentication response is encrypted data.
  • MAC A is MAC data generated using the command (authentication), IV A , and CIS authentication response as calculation targets.
  • the CIS 1 writes command (authentication) data to the communication information register 312, and writes IV A , CIS authentication response, and MAC A data (in FIG. 20, to the authentication data).
  • Applicable data is written in the functional safety/security data area 313, and in response to a request from the host 2, the written data is read and output to the host 2.
  • step S13 the host 2 generates an authentication response B and sends it to the CIS 1.
  • the CIS 1 receives the authentication response B sent from the host 2 in step S23, executes processing such as writing it into the functional safety/security data area 313, and authenticates the host 2.
  • the format of the authentication response B generated and transmitted by the host 2 is shown in FIG.
  • the format of the authentication response B is composed of a command (authentication), IV B , a host authentication response, and MAC B.
  • the Host authentication response is encrypted data.
  • MAC B is MAC data generated using the command (authentication), IV B , and host authentication response as calculation targets.
  • the CIS 1 writes command (authentication) data to the communication information register 312, and writes IV B , Host authentication response, and MAC B data (in FIG. 20, authentication data). (corresponding data) is written to the functional safety/security data area 313.
  • the CIS 1 and the host 2 each perform authentication.
  • step S101 the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the processing state FS_S_ACT is, for example, data that indicates that it is Active (processing in progress) if it is High, and data that indicates that it is not Active if it is Low.
  • the host 2 confirms that the processing state FS_S_ACT is Low and is not Active (not in a state in which other processing is being performed) and is in a state where processing can be accepted, the host 2 advances the processing to step S102.
  • step S102 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in CRC mode or MAC mode, and transmits it to the CIS 1.
  • step S121 when the CIS 1 receives a [command] from the host 2 notifying the start of communication in CRC mode or MAC mode, it sets FS_S_ACT to processing.
  • the CIS 1 writes the received command to the communication information register 312, as described with reference to FIGS. 15 and 16.
  • the mode represented by the command is set; for example, if a command (CRC) is written, the CRC mode is set, and if a command (MAC) is written, the MAC mode is set. be done.
  • CRC command
  • MAC command
  • step S103 the host 2 generates arbitrary data, for example, the target data described with reference to FIGS. 15 and 16, and transmits it to the CIS 1.
  • step S122 upon receiving the target data from the host 2, the CIS 1 starts various processes. For example, the CIS 1 writes the received target data to the sensor register 311, as described with reference to FIGS. 15 and 16. Further, the CIS 1 generates CRC data or MAC data using the command written in the register 130 and the target data as a calculation target. The generated CRC data or MAC data is written to the functional safety/security data area 313.
  • step S123 when the CIS 1 receives the command to finish writing the configuration information from the host 2, it carries out the various processes started in step S122 until they are finished. After the processing is completed, the CIS 1 sets the operation mode value of the FS_S_STETE register of the communication information register 312 to 0.
  • step S105 the host 2 generates a [command] informing the FS_S_STATE of the start of communication in the CRC mode or the MAC mode, and transmits it to the CIS 1.
  • step S106 the host 2 generates and transmits MAC data or CRC data.
  • step S125 the CIS 1 writes the received MAC data or CRC data into the functional safety/security data area 313.
  • step S126 when the CIS 1 receives a command indicating the end of communication from the host 2, it compares the MAC data or CRC data generated in step S122 with the MAC data or CRC data supplied from the host 2, and calculates the processing result. Set to output. When the comparison of MAC data or CRC data is completed and the comparison result is output to the host 2, the process proceeds to step S127.
  • step S127 FS_S_ACT is set to process completion.
  • step S141 Processing for writing encrypted data is executed in the CIS 1 and the host 2.
  • the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S142.
  • step S142 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in the encryption mode, and sends it to the CIS 1.
  • step S143 the host 2 generates encrypted data and transmits it to the CIS 1.
  • step S162 upon receiving the encrypted data from the host 2, the CIS 1 starts various processes. For example, the CIS 1 writes the received encrypted data into the functional safety/security data area 313, as described with reference to FIG. Furthermore, as explained with reference to FIG. 17, the CIS 1 also receives data such as the total data size, IV, and MAC together with the encrypted data, and these data are also stored in the functional safety/security data area 313. Write.
  • the CIS 1 uses the MAC to verify the data written in the functional safety/security data area 313 as various processes. If a CRC is received, the CRC is used to verify the data. Further, the CIS 1 decrypts the encrypted data, and if the decrypted data is, for example, setting information, performs setting based on the setting information (processing of step S163).
  • step S163 when the CIS 1 receives a command indicating the end of communication from the host 2, the CIS 1 writes the command to the communication information register 312, and if the process started in step S162 has not ended, it continues the process until it ends. continue.
  • the CIS 1 and the host 2 execute processing for reading MAC/CRC target data.
  • the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S182.
  • step S182 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in CRC mode or MAC mode, and transmits it to the CIS 1.
  • the CIS 1 writes the received command into the communication information register 312, as described with reference to FIGS. 15 and 16.
  • step S183 the host 2 transmits an instruction to read the data to be read to the CIS 1.
  • various processes are started in step S202.
  • the CIS 1 reads setting information written in the sensor register 311 in response to a read request from the host 2 and outputs it to the host 2.
  • the CIS 1 generates MAC data using the target data to be read and a command (MAC) as the calculation target, or CRC data using the target data to be read and the command (CRC) as the calculation target.
  • the generated MAC data or CRC data is written to the functional safety/security data area 313.
  • processing related to reading the MAC/CRC target data is performed between the CIS 1 and the host 2.
  • step S185 the processing state FS_S_ACT is referred to and the state is confirmed.
  • the host 2 confirms that the processing state FS_S_ACT is Low and the processing can be accepted, the host 2 advances the processing to step S186.
  • step S186 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in CRC mode or MAC mode, and sends it to the CIS 1.
  • step S187 the host 2 instructs the CIS 1 to read the MAC data or CRC data.
  • step S207 the CIS 1 reads the MAC data or CRC data written in the functional safety/security data area 313 and outputs it to the host 2.
  • step S188 the host 2 generates communication information indicating [end of communication] in FS_S_STATE, and transmits it to the CIS 1.
  • processing related to reading MAC/CRC data is performed between the CIS 1 and the host 2.
  • step S221 the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S222.
  • step S222 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in the encryption mode, and sends it to the CIS 1.
  • step S223 the host 2 transmits a request to read the data to be read (target data) to the CIS 1.
  • various processes are started in step S242. For example, the MAC data and CRC data of the request are verified, and encrypted data is decrypted.
  • the CIS 1 reads target data, for example, setting information, which is instructed to be read by the host 2, from the sensor register 311, encrypts it, and writes it to the functional safety/security data area 313 as encrypted data.
  • MAC data or CRC data for the written encrypted data is generated and written to the functional safety/security data area 313.
  • step S225 Processing for reading the encrypted data is executed in the CIS 1 and the host 2.
  • step S225 the processing state FS_S_ACT is referred to and the state is confirmed.
  • the host 2 confirms that the processing state FS_S_ACT is Low and the processing can be accepted, the host 2 advances the processing to step S226.
  • step S226 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in the encryption mode, and sends it to the CIS 1.
  • step S227 the host 2 instructs to read the encrypted data.
  • step S247 the CIS 1 reads the encrypted data written in the functional safety/security data area 313 and outputs it to the host 2.
  • step S228, the host 2 generates communication information indicating [end of communication] in FS_S_STATE, and transmits it to the CIS 1.
  • step S248, when the CIS 1 receives a command indicating the end of communication from the host 2, it sets FS_S_ACT processing complete.
  • Steps to send authentication command> The procedure for transmitting authentication data from the host 2 to the CIS 1 will be described with reference to the flowchart in FIG.
  • the flowchart shown in FIG. 27 is for an authentication command, and shows the procedure when writing authentication data.
  • step S261 Processing for writing authentication data is executed in the CIS 1 and the host 2.
  • the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S262.
  • step S262 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in authentication mode, and sends it to the CIS 1.
  • step S263 the host 2 generates data instructing to write an authentication request and sends it to the CIS 1.
  • step S282 upon receiving the authentication request from the host 2, the CIS 1 starts various processes. For example, the CIS 1 decrypts authentication requests and processes (verifies) MAC data.
  • step S264 the host 2 generates communication information indicating [end of communication] in FS_S_STATE, and transmits it to the CIS 1.
  • step S301 the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S302.
  • step S302 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in authentication mode, and sends it to the CIS 1.
  • step S303 the host 2 transmits a request to read the authentication data to be read to the CIS 1.
  • various processes are started in step S322. For example, verify the MAC data of the request and decrypt the request. Further, the CIS 1 encrypts the data to be read, generates MAC data, and writes it into the functional safety/security data area 313.
  • step S304 the host 2 generates communication information indicating [end of communication] in FS_S_STATE, and transmits it to the CIS 1.
  • step S305 the host 2 refers to the processing state FS_S_ACT and confirms the state.
  • the host 2 advances the processing to step S306.
  • step S306 the host 2 generates a [command] that notifies the FS_S_STATE of the start of communication in authentication mode, and sends it to the CIS 1.
  • step S307 the host 2 instructs to read the authentication data.
  • step S327 the CIS 1 reads the authentication data written in the functional safety/security data area 313 and outputs it to the host 2.
  • step S308 the host 2 generates communication information indicating [end of communication] in FS_S_STATE, and transmits it to the CIS 1.
  • the host 2 determines whether the CIS 1 is in a state to accept processing or not, for example, whether it operates in a predetermined mode such as a CRC mode or an encryption mode, or in a mode other than that mode. After determining whether it is not in a state where it cannot accept processing, it outputs a write or read command. When the CIS 1 is operating in a predetermined mode, writing to and reading from the register 130 is performed in that mode.
  • a predetermined mode such as a CRC mode or an encryption mode
  • the register 130 can be operated in the specified mode even in a configuration where the register 130 is shared and used in multiple modes. This allows for effective use of limited register space in multiple modes.
  • the CIS1 When the CIS1 is operating in a predetermined mode, it is not instructed to operate in another mode, so the data in the operating mode is stored in the predetermined area of the register 130 with the data in the other mode. This can prevent overwriting.
  • the register 130 can be made compatible with a plurality of modes, in other words, a plurality of functions.
  • the CIS 1 including such a register 130, the CIS 1 can be made compatible with a plurality of functions. can. Since functions related to communication security can be handled as multiple functions, the security of communication between the CIS 1 and the host 2 can be improved.
  • FIG. 29 schematically shows another overall configuration example of the data transmission system.
  • the data transmission system shown in FIG. 29 is different from the data transmission system shown in FIG. 1 in that a fuse 133 is added to the CIS 1, and the other points are the same.
  • the CIS 1 can be a CIS 1 that supports multiple functions.
  • the Fuse 133 even if the CIS 1 supports multiple functions, it is possible to customize the CIS 1 to one that can selectively support required functions.
  • the CIS 1 can be customized to correspond to functions desired by the user and not to correspond to functions not desired by the user.
  • the CPU 131 and the HW 132 switch the field of the register space of the register 130 based on the internal operating state, the fuse value, and an external command.
  • the Fuse 133 has a function selection field (described later with reference to FIG. 31), and changes the definition of the register space depending on the value of the field.
  • step S401 When the CIS 1 is in a stopped state, it is determined in step S401 whether security is supported. This determination is performed by the Fuse 133 and is switched by the Fuse value set in the Fuse 133. The Fuse value will be explained with reference to FIG. 31.
  • FIG. 31 is a diagram showing an example of the fuse value. It is shown in a table in which field names and setting values are associated. If the field name is Functional Safety Settings and the setting value is "1'b01", it means that functional safety is supported, and if it is "1'b1", it means that functional safety is not supported. represent. Supporting functional safety means that communication can be performed in the above-mentioned CRC mode.
  • Supporting security means that at least one or both of the above-mentioned MAC mode and encryption mode is supported.
  • the field name is the authentication method and the setting value is "4'b1001"
  • the field name is the authentication method and the setting value is "4'b1101”
  • the Fuse 133 has a Fuse value as information regarding supported communication modes.
  • the Fuse 133 functions as a setting unit in which it is set whether or not to support a communication mode, and when a command in a communication mode other than the set communication mode is received, as described later, the register definition is Processing that changes is not executed.
  • step S401 the Fuse value is referenced, and if the setting value is "1'b0", it is determined that security is supported, and if the setting value is "1'b1", security is not supported. It is determined that the In step S401, if it is determined that security is supported, the process proceeds to step S402; if it is determined that security is not supported, the processes of steps S402 and S403 are skipped, and the process proceeds to step S402. The process advances to step S405.
  • step S402 an authentication method is selected.
  • the authentication method to be selected is also switched by the Fuse value, and is selected based on the set value of the Fuse value.
  • step S403 the authentication command and register definition are used.
  • step S403 the authentication processing described with reference to FIG. 21 is executed, so that the CIS 1 authenticates the host 2, and the host 2 authenticates the CIS 1.
  • step S404 the system enters a state of waiting for a command from the outside.
  • the processing up to this point only needs to be performed once when the CIS 1 and the host 2 start communication.
  • the state of waiting for an external command is a state in which internal operating states (authentication state and post-authentication state) are appropriately switched.
  • step S405 processes that are performed every time a command is received.
  • step S405 it is determined whether what has been received is a security command. If it is determined in step S405 that what has been received is a security command, the process proceeds to step S406.
  • step S406 it is determined whether security is supported. This determination is made with reference to the Fuse value, as in step S401. Since it has been determined in step S401 whether or not security is supported, the process in step S406 may be executed using this determination result.
  • step S406 If it is determined in step S406 that security is supported, the process advances to step S407, and the register definition is used according to the received security command. For example, if the security command specifies MAC mode, the register definition is set to MAC mode and register 130 is used.
  • step S406 determines whether security is not supported. If it is determined in step S406 that security is not supported, the process proceeds to step S408. In step S408, no processing is performed on the received security command, and the reception is ignored.
  • the received command is written to the communication information register 312, and the definition of the register space of the register 130 is set in the communication mode corresponding to the command.
  • the process advances to step S408, No such processing is performed. Therefore, when a command for a function that is set as an unsupported function is received by the Fuse 133, the communication mode indicated by the command is not set, and the definition of the register space is not changed. In other words, the function has been selected by the Fuse 133.
  • step S405 determines whether the received command is a security command. If it is determined in step S405 that the received command is not a security command, the process proceeds to step S409.
  • step S409 it is determined whether the received command is a functional safety command. If it is determined in step S409 that the received command is a functional safety command, the process proceeds to step S410.
  • step S410 it is determined whether functional safety is supported. If it is determined in step S410 that functional safety is supported, the process proceeds to step S411.
  • step S411 register definitions are used according to the received functional safety command. For example, if the functional safety command specifies CRC mode, the register definition is set to CRC mode and register 130 is used.
  • step S409 determines whether the received command is a functional safety command, or if it is determined in step S410 that functional safety is not supported.
  • step S408 no processing is performed on the received command, and the reception is ignored.
  • the definition of the register space at the same address of the register 130 can be changed by a command from the host 2, and by switching by the Fuse value of the Fuse 133, the definition of the register space at the same address of the register 130 can be changed. It is possible to have a configuration in which the definition of can be changed.
  • the series of processes described above can be executed by hardware or software.
  • the programs that make up the software are installed on the computer.
  • the computer includes a computer built into dedicated hardware and, for example, a general-purpose personal computer that can execute various functions by installing various programs.
  • FIG. 32 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 2005 is further connected to the bus 2004.
  • An input section 2006, an output section 2007, a storage section 2008, a communication section 2009, and a drive 2010 are connected to the input/output interface 2005.
  • the input unit 2006 consists of a keyboard, mouse, microphone, etc.
  • the output unit 2007 includes a display, a speaker, and the like.
  • the storage unit 2008 includes a hard disk, nonvolatile memory, and the like.
  • the communication unit 2009 includes a network interface and the like.
  • the drive 2010 drives a removable medium 2011 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 2001 for example, loads the program stored in the storage unit 2008 into the RAM 2003 via the input/output interface 2005 and the bus 2004 and executes the program, thereby executing the above-mentioned series. processing is performed.
  • a program executed by the computer can be provided by being recorded on a removable medium 2011 such as a package medium, for example. Additionally, programs may be provided via wired or wireless transmission media, such as local area networks, the Internet, and digital satellite broadcasts.
  • the program can be installed in the storage unit 2008 via the input/output interface 2005 by attaching the removable medium 2011 to the drive 2010. Further, the program can be received by the communication unit 2009 via a wired or wireless transmission medium and installed in the storage unit 2008. Other programs can be installed in the ROM 2002 or the storage unit 2008 in advance.
  • the program executed by the computer may be a program in which processing is performed chronologically in accordance with the order described in this specification, in parallel, or at necessary timing such as when a call is made. It may also be a program that performs processing.
  • system refers to the entire device configured by a plurality of devices.
  • the address area includes a setting area for storing setting information sent from the host, a security data area for storing security data for the setting information, and a communication information area for storing communication information with the host.
  • a register having a communication unit that performs register communication between the host and the register, When communication mode information indicating the communication mode of the register communication is received from the host, writing it in the communication information area;
  • a data processing device that sets register definitions for the same space of the registers for each of the communication modes based on the communication mode information written in the communication information area.
  • the communication modes include a mode for sending and receiving encrypted data including the setting information, a mode for sending and receiving an error detection code regarding the setting information, a mode for sending and receiving a message authentication code regarding the setting information, and a mode for sending and receiving authentication data.
  • the data processing device according to (1) above.
  • (3) The data processing device wherein if a mode for transmitting and receiving encrypted data including the setting information is written in the communication information area, the encrypted data is stored in the security data area.
  • the data processing device according to (2) or (3). (5) If a mode for sending and receiving a message authentication code related to the setting information is written in the communication information area, the message authentication code is stored in the security data area and the setting that is the object of the message authentication code is stored in the security data area. The data processing device according to any one of (2) to (4), wherein the information is stored in the setting area. (6) If a mode for sending and receiving authentication data is written in the communication information area, the authentication data is stored in the security data area. Data processing according to any one of (2) to (5) above. Device. (7) The data processing device according to any one of (1) to (6), wherein the set register definition is not changed until a command indicating termination of the communication mode is received from the host.
  • the address area includes a setting area for storing setting information sent from the host, a security data area for storing security data for the setting information, and a communication information area for storing communication information with the host.
  • the address area includes a setting area for storing setting information sent from the host, a security data area for storing security data for the setting information, and a communication information area for storing communication information with the host.
  • a program for executing processing including the step of setting register definitions for the same space of the registers for each of the communication modes based on the communication mode information written in the communication information area.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)

Abstract

本技術は、セキュリティを向上させた通信を行えるようにするデータ処理装置、データ処理方法、およびプログラムに関する。 アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、ホストとレジスタとの間でレジスタ通信を行う通信部とを備え、レジスタ通信の通信モードを示す通信モード情報をホストから受信した場合、通信情報領域に書き込み、通信情報領域に書き込まれている通信モード情報に基づく通信モード毎に、レジスタの同一空間に対するレジスタ定義を設定する。本技術は、イメージセンサと、イメージセンサを制御するホストに対して適用できる。

Description

データ処理装置、データ処理方法、およびプログラム
 本技術はデータ処理装置、データ処理方法、およびプログラムに関し、例えば、イメージセンサとホストとの間の通信のセキュリティを向上させることができるようにしたデータ処理装置、データ処理方法、およびプログラムに関する。
 ネットワークに繋がれたカメラからの画像データの伝送に関し、セキュリティを向上させる技術がある(例えば特許文献1,2参照)。一方、カメラには、イメージセンサによる撮像条件等に関する各種設定情報や、カメラ内部におけるイメージセンサからホストへの画像データの伝送に関する各種設定情報等を記憶するレジスタが設けられているものがある。
特開2019-33368号公報 特表2018-525866号公報
 イメージセンサとホストとの間の通信を複数の方式に対応させた場合など、複数の機能毎にレジスタ空間を設ける必要がある。レジスタ空間は有限であるため、多くの機能を適用できない、または大きなレジスタ空間を用意する必要がある。
 本技術は、このような状況に鑑みてなされたものであり、レジスタ空間を効率良く用い、複数の機能に対応できるようにするものである。
 本技術の一側面のデータ処理装置は、アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、前記ホストと前記レジスタとの間でレジスタ通信を行う通信部とを備え、前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定するデータ処理装置である。
 本技術の一側面のデータ処理方法は、アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、前記ホストと前記レジスタとの間でレジスタ通信を行う通信部とを備えるデータ処理装置が、前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定するデータ処理方法である。
 本技術の一側面のプログラムは、アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、前記ホストと前記レジスタとの間でレジスタ通信を行う通信部とを備えるデータ処理装置を制御するコンピュータに、前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定するステップを含む処理を実行させるためのプログラムである。
 本技術の一側面のデータ処理装置、データ処理方法、並びにプログラムにおいては、アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、ホストとレジスタとの間でレジスタ通信を行う通信部とが備えられ、レジスタ通信の通信モードを示す通信モード情報がホストから受信された場合、通信情報領域に書き込まれ、通信情報領域に書き込まれている通信モード情報に基づく通信モード毎に、レジスタの同一空間に対するレジスタ定義が設定される。
 なお、データ処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
 なお、プログラムは、伝送媒体を介して伝送することにより、または、記録媒体に記録して、提供することができる。
本開示の一実施の形態に係るデータ伝送システムの構成例を示す図である。 CISの構成例を示す図である。 書き込み判定部の構成例を示す図である。 CRCコード付加の概念について説明するための図である。 MAC付加の概念について説明するための図である。 暗号化データ付加の概念について説明するための図である。 レジスタマップの一例を示す図である。 MACモード時のデータの書き込みについて説明するための図である。 CRCモード時のデータの書き込みについて説明するための図である。 暗号化モード時のデータの書き込みについて説明するための図である。 CRCモード時のデータの読み出しについて説明するための図である。 暗号化モード時のデータの読み出しについて説明するための図である。 処理ステートについて説明するための図である。 データが管理されるレジスタ空間について説明するための図である。 データが管理されるレジスタ空間について説明するための図である。 データが管理されるレジスタ空間について説明するための図である。 データが管理されるレジスタ空間について説明するための図である。 暗号化データの構成について説明するための図である。 フォーマットフィールドについて説明するための図である。 データが管理されるレジスタ空間について説明するための図である。 認証時にやり取りされるデータについて説明するための図である。 認証時の処理について説明するための図である。 MAC/CRCモード時のデータの書き込みついて説明するための図である。 暗号化モード時のデータの書き込みついて説明するための図である。 MAC/CRCモード時のデータの読み出しついて説明するための図である。 暗号化モード時のデータの読み出しについて説明するための図である。 認証モード時のデータの書き込みついて説明するための図である。 認証モード時のデータの読み出しについて説明するための図である。 データ伝送システムの他の構成例を示す図である。 Fuseによる切替処理を含む処理について説明するための図である。 Fuse値について説明するための図である。 PCの構成例について説明するための図である。
 以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。
 <データ伝送システムの全体構成例>
 図1は、本開示の一実施の形態に係るデータ伝送システムの全体構成例を概略的に示している。
 一実施の形態に係るデータ伝送システムは、例えば、カメラ内部におけるイメージセンサ(CIS(CMOS(Complementary Metal-Oxide Semiconductor) Image Sensor)1)と、ホスト2との間のレジスタ通信のセキュリティを向上させる技術に関する。
 図1に示したデータ伝送システムは、データ処理装置としてのCIS1と、ホスト2と、伝送路3と、伝送路4とを備えている。
 CIS1は、通信部110と、上位層113と、通信部120と、データ処理部123と、センサ部124とを備えている。
 通信部110は、物理層(PHY)111と、リンク層(LINK)112とを有している。通信部120は、物理層(PHY)121と、リンク層(LINK)122とを有している。
 上位層113は、レジスタ130と、CPU(Central Processing Unit)131と、ハードウエア(HW)132とを有している。なお、上位層113として、CPU131を省略した構成とすることも可能である。
 ホスト2は、通信部210と、上位層213と、通信部220と、データ処理部223とを備えている。
 通信部210は、物理層(PHY)211と、リンク層(LINK)212とを有している。通信部220は、物理層(PHY)221と、リンク層(LINK)222とを有している。
 上位層213は、レジスタ230と、CPU231と、ハードウエア(HW)232とを有している。
 CIS1は、CIS1をスレーブ、ホスト2をマスタとして通信する通信IF(レジスタIF)と、センサ部124で取得した画像データなどの大きなデータを出力する高速IF(データ出力IF)とを持つ。
 CIS1の通信部110とホスト2の通信部210はそれぞれ、伝送路3を介して互いのレジスタ130,230間で相互通信(レジスタ通信)可能な通信IF(レジスタIF)を構成している。レジスタIFは、プロトコルの異なる複数種類のIFを搭載して複数種類のIFを切り替え可能に構成されていてもよい。例えばSPI(Serial Peripheral Interface)とI2C(Inter Integrated Circuit)との2種類のIFを搭載して切り替え可能に構成されていてもよい。
 CIS1の通信部120は、伝送路4を介してホスト2の通信部220に対してセンサ部124から取得された画像データなどの大きなデータを出力する高速IF(データ出力IF)を構成している。高速IFとしては、例えば、MIPI(Mobile Industry Processor Interface)、SLVS-EC(Scalable Low Voltage Signaling with Embedded Clock)、SLVS(Scalable Low Voltage Signaling)などがある。
 CIS1のレジスタ130は、レジスタIFを介してホスト2から送信された設定情報を記憶する。レジスタ130に設定情報としてどのような値を設定するかでCIS1内部の各部の処理動作が決定される。設定情報としては例えば、露光時間、Gain、解像度(画素加算、間引き数)、フレームレート、ROI(Region of Interest)、およびその他動作モード等の情報がある。
 CIS1のレジスタ130には、CIS1内の各種状態の情報や環境情報等も記憶される。レジスタ130に記憶された各種状態の情報や環境情報等はレジスタIFを介してホスト2から読み出し可能となっている。各種状態の情報や環境情報等としては、例えばCIS1の内部の温度情報や、センサ部124からの画像情報をデータ処理部123で処理した際のメタデータ、エラーやワーニングの検出情報などがある。
 ホスト2では、CIS1にどのような振る舞いをさせるかを上位層213で決定し、レジスタIFを介してCIS1の振る舞いを決める値を設定情報として送信する。ホスト2は、CIS1のレジスタ130から読み出した各種状態の情報や環境情報等に応じて、設定情報の値を変更する。ユースケースによって、CIS1にどのような振る舞いをさせるかは異なるため、ホスト2のCPU231のSW(ソフトウエア)は比較的簡単に書き換え可能な構成になっていることが多い。上位層213がFPGA(Field Programmable Gate Array)で構成される場合、CPU231およびハードウエア232ともに可変な構成となっている。
 レジスタIFを構成する物理層111,211やリンク層112,212の規格などをルール化して決めることで、製品によらずCIS1とホスト2との間の通信が可能となる。製品に特化した部分は、例えばレジスタ130,230の仕様(アドレスと値の定義)等によって上位層113,213のみで決めればよい。
 例えば、レジスタIFにおいて、設定情報の送信の仕方をどのように行うかを物理層111,211やリンク層112,212の仕様としてルール化しておく。これにより、上位層113,213はレジスタ130,230のアドレスとそのレジスタ130に値が設定された場合の動作などの定義をするだけで、レジスタIFを介してCIS1とホスト2との間で制御情報やその他の情報をやり取りできる。
 <回路構成>
 図2は、データ処理装置としてのCIS1の構成例を概略的に示している。図2に示した構成例では、CIS1は、通信部110と、通信部120と、データ処理部123と、センサ部124と、レジスタ130と、書き込み判定部410と、処理ステート出力端子501と、エラー出力端子502とを備えている。
 処理ステート出力端子501は、通知情報として、レジスタ130における処理状態を示す処理ステータス(処理ステートFS_S_ACT)をホスト2に出力する。エラー出力端子502は、通知情報としてレジスタ130における処理に生じたエラー情報(エラーステートFS_S_ERR)をホスト2に出力する。
 データ処理部123は、センサ部124から出力されたセンサデータに各種のデータ処理を行う。通信部120は、データ処理部123において各種データ処理がなされたセンサデータにエラー情報等の通知情報を付加して、ホスト2にセンサデータを出力する。
 図2には、センサレジスタ311に設定値を書き込んだ後、書き込まれた値が正しい値か否かを、例えばCRC(Cyclic Redundancy Code)やMAC(Message Authentication Code:メッセージ認証コード)によって判断する場合の構成例を示す。
 以下の説明においては、センサレジスタ311に対して設定値(設定情報)の書き込みが反映された後、セキュリティ用データに基づいて、センサレジスタ311に反映された設定情報の正誤判定を行う場合を例に挙げて説明する。センサレジスタ311に対して設定情報の書き込みが反映される前に、セキュリティ用データ(MACデータなど)に基づいて、センサレジスタ311に反映される設定情報の正誤判定が行われ、正しいと判断された場合のみセンサレジスタ311に設定情報が反映される構成とすることもできる。
 センサレジスタ311には、通信部110を介してホスト2からの設定値が順次、反映される。なお、CIS1の各部における設定値の反映は、例えばセンサデータのフレーム同期信号(Frame Sync)のタイミングでラッチされた後になされてもよい。
 図3には、図2に示したCIS1における書き込み判定部410の具体例を示す。
 書き込み判定部410は、レジスタ通信検出部411と、データ演算部412と、エラー検出部413と、Writeカウンタ制御部414とを有する。
 レジスタ通信検出部411は、レジスタ通信があったことを検出する。データ演算部412は、CRC、MAC、および暗号化等に関する演算を行う。エラー検出部413は、データ演算部412の演算結果に基づくエラー検出を行う。Writeカウンタ制御部414は、レジスタ通信検出部411の検出結果に基づいて、レジスタ130への書き込み要求があったことをカウントし、レジスタ130のWriteカウンタのカウンタ値を更新する。
 書き込み判定部410は、センサレジスタ311に対して設定情報の書き込みが反映された後、セキュリティ用データに基づいて、センサレジスタ311に反映された設定情報の正誤判定を行う。上述したように、セキュリティ用データに基づいて、センサレジスタ311に反映される設定情報の正誤判定が行われ、正しいと判定された後に、センサレジスタ311に設定情報が反映されるようにすることもできる。
 通信情報レジスタ312からは、書き込み判定部410に対して、データ演算部412における演算開始タイミングおよび演算完了タイミングの通知が行われる。また、通信情報レジスタ312からは、CRCデータやMACデータ等のセキュリティ用データの機能安全・セキュリティ用データ領域313への書き込み完了(判定タイミング)などの通知が行われる。
 <一般的なセーフティ・セキュリティ技術>
 図4には、一般的なセーフティ・セキュリティ技術として、CRCコード(誤り検出符号)付加による通信の一例を概略的に示す。
 データの電磁ノイズ等による反転を検出する機能にCRC(誤り判定)やECC(誤り補正)がある。例えばCRCでは、通信対象のデータの他にデータが反転などしてないことを判定するためのCRCコードを付加する。データ出力側では、データに基づいてCRCコードを生成し、データに生成したCRCコードを付加して出力する。データ入力側では、入力されたデータに基づいてCRCコードを生成し、データに付加されたCRCコードとの比較を行うことでデータの誤り判定を行う。
 図5には、一般的なセーフティ・セキュリティ技術として、メッセージ認証コード(MAC)付加による通信の一例を概略的に示す。
 データの改ざんやなりすましによるデータ送信を検出する機能にMACや署名を付加する技術がある。通信IFなどのリアルタイム性を要求される通信には一般的にMACが使われることが多い(署名を使ってもよい)。
 MACを付加する技術の場合、データ出力側とデータ入力側とで共通暗号秘密鍵K(KB)を持つ。データ出力側では、共通暗号秘密鍵K(KB)を用いてMACを生成し、通信対象のデータに、生成したMACを付加して出力する。MACのアルゴリズムによっては、IV(イニシャルベクタ)の情報も付加して出力する。
 例えばCMAC(Cipher-based Message Authentication Code)の場合はIV0で計算するためIV情報は不要だが、GMAC(Galois Message Authentication Code)を使用する場合はIVの情報も付加して出力する。データ入力側では、共通暗号秘密鍵K(KB)を用いてMACを生成し、データに付加されたMACとの比較を行うことでデータの認証を行う。
 図6には、一般的なセーフティ・セキュリティ技術として、暗号化による通信の一例を概略的に示す。
 データ自体を盗み見されないようにするために、暗号化技術を使う場合がある。暗号化技術を用いる場合、例えば、データ出力側とデータ入力側とで共通暗号秘密鍵K(KB)を持つ。データ出力側では、共通暗号秘密鍵K(KB)とIV(イニシャルベクタ)とを用いて通信対象のデータを暗号化して暗号データを生成して出力する。データ入力側では、共通暗号秘密鍵K(KB)とIVとを用いて暗号データを復号化する。
 以下では、MACを用いた通信モードをMACモード、CRCを用いた通信モードをCRCモード、暗号化を用いた通信モードを暗号化モードという。
 <レジスタの構成>
 図7は、レジスタ130の構成(レジスタマップ)の一例を示している。なお、図7に示したレジスタマップにおけるアドレスは一例であり、必要に応じて変更可能である。
 CIS1におけるレジスタ130は、アドレス領域として、ホスト2から送信された設定情報を記憶する設定用領域(センサレジスタ311)を有する。センサレジスタ311に加えさらに、セーフティ・セキュリティ用のアドレス領域として、設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域(機能安全・セキュリティ用データ領域313)と、ホスト2との間の通信情報を記憶する通信情報領域(通信情報レジスタ312)とを有する。
 CIS1とホスト2との間で、レジスタ130におけるセーフティ・セキュリティ用のアドレス領域を用いて、上位層113,213においてセーフティ・セキュリティ情報をやり取りする。既存のレジスタIFによって接続可能な対象が対応している機能を選択、あるいは後から変更可能な構成にすることで、レジスタIFのプロトコル上のルールで決めるのではなく、上位層113,213でセーフティ・セキュリティのチェックを行うことを可能にする。セーフティ・セキュリティ用のアドレス領域か否かを判定する機能や、セーフティ・セキュリティ用のアドレス領域にアクセスさせるか否かを選択可能な機能を持ってもよい。
 機能安全・セキュリティ用データ領域313は、後述するように、セキュリティ用データとして例えば、設定情報に関する誤り検出符号(CRCコード)や設定情報に関するメッセージ認証コード(MAC)を記憶する。また、機能安全・セキュリティ用データ領域313は、後述するように、セキュリティ用データとして例えば、設定情報を含む暗号データを記憶する。機能安全・セキュリティ用データ領域313は、例えば、256byte×nのアドレス領域である。機能安全・セキュリティ用データ領域313には、セキュリティ用データの書き込み用のWriteレジスタと、読み出し用のReadレジスタとが含まれてもよい。
 通信情報レジスタ312は、セーフティ・セキュリティ用のモード設定レジスタである。通信情報レジスタ312は、通信情報として例えば、レジスタ通信の通信モードを示す通信モード情報と、レジスタ通信の通信開始を示すステータス情報と、レジスタ通信の通信終了を示すステータス情報とを記憶する。通信情報は例えば後述するように、FS_S_STATEによって示される。例えば、FS_S_STATE=0で通信終了を示し、FS_S_STATE≠0で通信開始を示す。
 なお、例えば、CIS1におけるCPUコードあるいはFuseによって、レジスタ130の機能安全・セキュリティ用データ領域313および通信情報レジスタ312を使用するか否かを切り替え可能に構成されていてもよい。また、CPUコードあるいはFuseによって、セーフティ・セキュリティ技術による複数の機能のいずれを使用するかを切り替えられるように構成してもよい。通信情報レジスタ312および機能安全・セキュリティ用データ領域313を複数の機能で共通で使用することでレジスタ領域のサイズを小さくできる。製品起動時の設定、あるいはソフトウエア部分の変更あるいはFuseでの切り替えによって、複数の機能のいずれを使用するかを後から選択できる。
 通信情報レジスタ312および機能安全・セキュリティ用データ領域313のアドレス領域は、複数のセーフティ・セキュリティ技術の機能のうち、対応可能な動作モードの機能に必要な領域のみ用意すればよい。例えば、CRCのみに対応する場合など、大きな領域を必要としなければ通信情報レジスタ312および機能安全・セキュリティ用データ領域313のアドレス領域は小さいサイズでもよい。CIS1がCRCとMACに対応可能なら、CRCあるいはMACに必要なアドレス領域の大きい方のサイズのみ用意すればよい。CRCとMACとの両方に対応可能な構成する場合であっても、CRC用のアドレス領域とMAC用のアドレス領域との両方を用意する必要はない。
 <MACモードによる設定情報の書き込みの例>
 図8は、レジスタ通信の一例を示すシーケンス図である。図8には、MACモードによってセンサレジスタ311に設定情報の書き込みを行う場合のレジスタ通信の一例を示す。
 まず、レジスタIFを介してホスト2から、通信情報として、MACモードによるセンサレジスタ311への設定情報の書き込みの開始要求を示すステータスFS_S_STATE=MAC_REGWが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(MAC_REGW)を単発Write(書き込み)する。
 次に、レジスタIFを介してホスト2から、センサレジスタ311への設定情報が送信される。設定情報としては、例えば、センサレジスタ311における設定値を変えたいアドレスと設定値群(複数組み合わせ可能)とを送信する。CIS1では、センサレジスタ311に設定情報の書き込みを行う。これにより、センサレジスタ311において各種レジスタ設定がなされる。センサレジスタ311では、書き込みが必要なレジスタ群に単発Write(書き込み)と連続Write(書き込み)とを組み合わせて書き込みするようにしてもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、MACモードによるセンサレジスタ311への設定情報の書き込みの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 次に、レジスタIFを介してホスト2から、通信情報として、MACモードによるセキュリティ用データの書き込みの開始要求を示すステータスFS_S_STATE=MAC_DATAWが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(MAC_DATAW)を単発Write(書き込み)する。
 次に、レジスタIFを介してホスト2から、MACモードによるセキュリティ用データ(MACデータ)が送信される。CIS1では、機能安全・セキュリティ用データ領域313にMACデータの書き込みを行う。MACデータは、転送速度の速いバースト転送により送信されてもよい。セキュリティ用データとしては、MAC以外の処理に必要な情報も送信されてもよい。例えば、複数アルゴリズムがある場合のMACのモード情報やGMAC使用時のIVなどの情報も送信されてもよい。複数アルゴリズムに対応可能な場合、あらかじめ、製品の起動時やFuseなどで動作モードを固定してもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、MACモードによるセキュリティ用データの書き込みの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 以上のように、ホスト2から通信情報として通信モードを通知することで、CIS1では複数の転送モードに対応できる。以上のように、通信情報レジスタ312に通信情報として、通信開始を示すステータス情報と通信終了を示すステータス情報とを記憶することで、設定したいレジスタ130のアドレス領域によらず、ホスト2からデータのかたまりを送信することができ、バースト転送などの転送単位に影響されない通信を行うことができる。また、データの送信開始をホスト2とCIS1との間で明確にできる。複数のアドレスとデータとをまとめてCRC、MAC、または暗号化の対象にできる。転送単位ごとなどにCRCデータやMACデータを送信するより、効率よくデータを送信できる。
 <CRCモードによる設定情報の書き込みの例>
 図9は、レジスタ通信の一例を示すシーケンス図である。図9には、CRCモードによってセンサレジスタ311に設定情報の書き込みを行う場合のレジスタ通信の一例を示す。
 まず、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセンサレジスタ311への設定情報の書き込みの開始要求を示すステータスFS_S_STATE=CRC_REGWが送信される。設定情報としては、例えば、センサレジスタ311における設定値を変えたいアドレスと設定値群(複数組み合わせ可能)とを送信する。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(CRC_REGW)を単発Write(書き込み)する。
 次に、レジスタIFを介してホスト2から、センサレジスタ311への設定情報が送信される。CIS1では、センサレジスタ311に設定情報の書き込みを行う。これにより、センサレジスタ311において各種レジスタ設定がなされる。センサレジスタ311では、書き込みが必要なレジスタ群に単発Write(書き込み)と連続Write(書き込み)とを組み合わせて書き込みするようにしてもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセンサレジスタ311への設定情報の書き込みの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセキュリティ用データの書き込みの開始要求を示すステータスFS_S_STATE=CRC_DATAWが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(CRC_DATAW)を単発Write(書き込み)する。
 次に、レジスタIFを介してホスト2から、CRCモードによるセキュリティ用データ(CRCデータ)が送信される。CIS1では、機能安全・セキュリティ用データ領域313にCRCデータの書き込みを行う。CRCデータは、転送速度の速いバースト転送により送信されてもよい。セキュリティ用データとしては、CRC以外の処理に必要な情報も送信されてもよい。例えば、複数アルゴリズムがある場合のCRCのモード情報も送信されてもよい。複数アルゴリズムに対応可能な場合、あらかじめ、製品の起動時やFuseなどで動作モードを固定してもよい。また、CIS1では、ステータスFS_S_STATE=CRC_REGWの送信から各種レジスタ設定のための設定情報の送信が完了するまでの間にCRCデータを生成する。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセキュリティ用データの書き込みの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 <暗号化モードによる設定情報の書き込みの例>
 図10は、暗号化モードによるレジスタ通信の一例を示すシーケンス図である。
 図10には、暗号化モードによってセンサレジスタ311への書き込み対象の設定情報を暗号化する場合のレジスタ通信の一例を示す。図10の右下段には、CIS1内の処理イメージを示す。CIS1は、暗号データを復号化する復号化部430を備える。
 まず、レジスタIFを介してホスト2から、通信情報として、暗号化モードによるセンサレジスタ311への設定情報の書き込みの開始要求を示すステータスFS_S_STATE=USERDEF_DATAWが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(USERDEF_DATAW)を単発Write(書き込み)する。
 次に、レジスタIFを介してホスト2から、暗号化された設定情報が暗号データとして送信される。なお、ステータスFS_S_STATE=USERDEF_DATAWの設定値も含めてMACデータやIVなども暗号化して一緒に送ってもよい。CIS1では、機能安全・セキュリティ用データ領域313に暗号データの書き込みを行う。
 次に、CIS1では、復号化部430によって暗号データを復号化し、その復号化によって得られた設定情報(レジスタアドレスと設定値)をセンサレジスタ311に対して書き込む。なお、一般的に、復号化時には認証(データが改ざんされていないことの確認)も行う。また、CIS1では、処理ステートFS_S_ACTによって、復号が完了したことを示す処理完了通知を行う。また、エラーがある場合には、エラーステートFS_S_ERRによるエラー情報の通知を行う。
 <CRCモードによる設定情報の読み出しの例>
 図11は、読み出しを行う場合のレジスタ通信の一例を示すシーケンス図である。図11には、CRCモードによってホスト2からセンサレジスタ311に記憶された設定情報の読み出しリクエストが行われた場合のレジスタ通信の一例を示す。
 ホスト2からの設定情報の読み出しリクエストがあった場合に、CIS1では、センサレジスタ311に記憶された設定情報と、機能安全・セキュリティ用データ領域313に記憶された、設定情報に関するセキュリティ用データとの読み出しを行い、レジスタIFを介してホスト2に読み出しデータの送信を行う。なお、MACモードによる読み出しを行う場合の動作についても、基本的には同様である。
 まず、レジスタIFを介してホスト2から、通信情報として、CRCモードによる設定情報の読み出しの開始要求を示すステータスFS_S_STATE=CRC_REGRが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(CRC_REGR)を単発Write(書き込み)する。CIS1では、センサレジスタ311に記憶された設定情報の読み出しを行い、レジスタIFを介してホスト2に読み出しデータの送信を行う。設定情報には、例えば、読み出しの対象となるセンサレジスタ311のレジスタアドレスと設定値とが含まれる。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによる設定情報の読み出しの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。次に、CIS1では、例えば、処理ステートFS_S_ACTによって、読み出し処理が完了したことを示す完了通知を行う。通知は、処理ステート出力端子501またはレジスタIFを用いて行ってもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセキュリティ用データの読み出しの開始要求を示すステータスFS_S_STATE=CRC_DATARが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(CRC_DATAR)を単発Write(書き込み)する。
 次に、CIS1では、CRCデータを生成し、機能安全・セキュリティ用データ領域313にCRCデータの書き込みを行う。次に、CIS1では、機能安全・セキュリティ用データ領域313からCRCデータを読み出し、レジスタIFを介してホスト2にセキュリティ用データとしてCRCデータの送信を行う。CRCデータには、読み出しの対象となるセンサレジスタ311のレジスタアドレスとCRC値とが含まれていてもよい。セキュリティ用データとしては、CRC以外の処理に必要な情報も送信されてもよい。例えば、複数アルゴリズムがある場合のCRCのモード情報も送信されてもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、CRCモードによるセキュリティ用データの読み出しの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 <暗号化モードによる設定情報の読み出しの例>
 図12は、暗号化モードによる読み出しを行う場合のレジスタ通信の一例を示すシーケンス図である。図12には、暗号化モードによってホスト2からセンサレジスタ311に記憶された設定情報の読み出しリクエストが行われた場合のレジスタ通信の一例を示す。
 ホスト2から暗号化モードによる設定情報の読み出しリクエストがあった場合、CIS1では、センサレジスタ311に記憶された設定情報を暗号化して機能安全・セキュリティ用データ領域313に暗号データとして書き込みした後、機能安全・セキュリティ用データ領域313から暗号データの読み出しを行う。
 まず、レジスタIFを介してホスト2から、通信情報として、暗号化モードによる機能安全・セキュリティ用データ領域313への設定情報の書き込みの開始要求を示すステータスFS_S_STATE=USERDEF_DATAWが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(USERDEF_DATAW)を単発Write(書き込み)する。
 CIS1では、センサレジスタ311に記憶された設定情報の読み出しを行い、設定情報を暗号化して機能安全・セキュリティ用データ領域313に暗号データとして書き込む。暗号データには、暗号化読み出しリクエストコマンドや、暗号化読み出しリクエストの対象となるセンサレジスタ311のアドレスとデータサイズとが含まれていてもよい。アドレスはない方がよい場合もある。アドレスを含むか否かは製品による。
 次に、レジスタIFを介してホスト2から、通信情報として、書き込みの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 次に、CIS1では、例えば、処理ステートFS_S_ACTによって、書き込み処理が完了したことを示す完了通知を行う。通知は、処理ステート出力端子501またはレジスタIFを用いて行ってもよい。
 次に、レジスタIFを介してホスト2から、通信情報として、暗号化モードによる設定情報の読み出しの開始要求(暗号化Readリクエストコマンド)を示すステータスFS_S_STATE=USERDEF_DATARが送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタに動作モード値(USERDEF_DATAR)を単発Write(書き込み)する。CIS1では、機能安全・セキュリティ用データ領域313から暗号データを読み出し、レジスタIFを介してホスト2に暗号データの送信を行う。
 次に、レジスタIFを介してホスト2から、通信情報として、読み出しの終了要求を示すステータスFS_S_STATE=0が送信される。CIS1では、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 <ステート通知>
 図13は、レジスタ通信の一例を示すシーケンス図である。図13には、CRCモードによる設定情報の書き込みを行う場合のCIS1内でのステート通知の一例を示す。
 処理ステートFS_S_ACTは、例えばHighであればActiveであることを示す。処理ステートFS_S_ACTがLowになったことを見ることで、センサレジスタ311への設定値の書き込みが終わったことが分かる。エラーステートFS_S_ERRがLowのままでエラーが検出されていなければ、処理ステートFS_S_ACTがLowになった時点でセンサレジスタ311への設定値の反映が終わっている。エラーステートFS_S_ERRは、例えばLowであればActiveであることを示す。
 このように、CIS1での安全機能としては、書き込みデータのCRC検査、読み出しデータへのCRC付加があり、セキュリティ機能としては、起動時の認証や、定常動作時の書き込みや読み出しのデータの暗号化やMACがある。認証、鍵交換方式には、ISO9798やISO11770等、様々な方式が定義されている。CIS1側で、これらの機能や通信方式に対応するためには、CIS1のレジスタ130のレジスタ空間に、それぞれの機能に対するレジスタ領域を準備しておく必要がある。
 しかしながら、CIS1のレジスタ130のレジスタ空間には限りがあり、多くの機能や通信方式に対応するように構成するためには、より大きなレジスタ空間を有する必要がある。また、上記したように、データの種類によっては、単発データで設定したい場合(上記した例では、単発Writeと記述した)や、連続データで設定したい場合(上記した例では、連続Writeと記述した)であり、連続アドレスに固まりのデータを書き込みたい場合等がある。
 例えば、単発データとしては、露光時間やアナログゲインなどシーン変化の情報がある。連続データとしては、モード遷移や起動時の条件設定、センサ内(CIS1内)のメタデータの読み出しなどがある。CIS1がAIを搭載しているような場合、辞書データなども連続データで設定される。このような単発データや連続データを送付する際、機能安全、セキュリティのデータとして、効率的なフォーマットも必要となる。
 レジスタ130のレジスタの領域を大きくすることなく、多くの機能に対応できるようにすることについて、以下に説明を加える。
 <レジスタ領域の共有化について>
 レジスタ130の領域を、複数のモードで共有する構成とした場合について説明を加える。複数のモードとしては、上記したMACを用いた通信モードであるMACモード、CRCを用いた通信モードであるCRCモード、暗号化を用いた通信モードである暗号化モードなどがある。またここでは、これらのモードではなく、従来通りの通信を行う通信モードを用意し、そのモードを従来モードとする。またここでは、認証データを用いた通信モードもあり、そのモードを認証モードとする。
 レジスタ130は、これらのモードのうち、設定されているモードに基づく動作を行う。レジスタ130は、例えばレジスタ空間AにデータAが書き込まれている場合であり、CRCモードである場合、データAは、CRCモードにおけるデータとして扱う。このレジスタ空間AにデータAが書き込まれている場合であり、MACモードである場合には、データAは、MACモードにおけるデータとして扱われる。
 すなわち同一のレジスタ空間Aであっても、そのレジスタ空間Aに書き込まれている(書き込まれる)データは、設定されているモードに対応するデータとして扱われる。レジスタ130は、複数のモードにより切り替えられて用いられるようにする、換言すれば、レジスタ空間を複数のモードで共有して用いられるようにすることで、所定の大きさの空間領域を有するレジスタ130を有効利用することができる。このことについてさらに説明を加える。
 図14は、従来モードに設定されているときの通信において、レジスタ130に書き込まれるまたは書き込まれているデータについて説明するための図である。従来モードに設定されている場合、換言すれば、コマンドによるモードの指定がない場合、ホスト2から書き込みまたは読み出しの対象とされた対象データ(任意のbyte数)は、レジスタ130のセンサレジスタ311で管理される。
 例えば、後述する機能安全コマンドやセキュリティコマンドなどのコマンドでの指定がない場合、通信情報レジスタには、コマンドが管理されていない状態であり、このような状態の場合、従来モードであるとしてレジスタ130は動作する。ホスト2からレジスタ130に書き込みの要求があった対象データは、レジスタ130のセンサレジスタ311に書き込まれる。従来モードに設定されている場合に、ホスト2からレジスタ130から読み出しの要求があった対象データは、レジスタ130のセンサレジスタ311から読み出される。
 レジスタ130への書き込みの要求があった場合と、レジスタ130からの読み出しの要求があった場合とで、その管理されている領域については同じ領域であるため、以下の説明においては、レジスタ130への書き込みの要求があった場合を主に説明する。
 図15は、機能安全コマンド(CRC)に設定されているときの通信において、レジスタ130に書き込まれるまたは書き込まれているデータについて説明するための図である。
 機能安全コマンド(CRC)の設定は、ホスト2からCRCモードに設定するというコマンドを受信したときに設定される。具体的には、通信情報レジスタ312に、コマンド(CRC)が書き込まれている場合、レジスタ130は、CRCモードでのデータを管理するとして動作する。
 CRCモードに設定された場合、ホスト2からレジスタ130に書き込みの要求があった対象データ(任意のbyte数)は、レジスタ130のセンサレジスタ311に書き込まれ、コマンド(CRC)は、通信情報レジスタ312に書き込まれ、CRCデータ(例えば、4byte)は、機能安全・セキュリティ用データ領域313に書き込まれる。
 CRCデータは、図15に示したように、対象データとコマンド(CRC)をCRCの演算対象として生成されたデータである。CRCデータのように、対象データを受信したときに、その安全性を検証するなど一時的に参照されるようなデータや、レジスタ130内のどの領域で管理されているか、そのアドレス自体も秘匿した方が良いようなデータは、機能安全・セキュリティ用データ領域313で管理される。
 図14に示した従来モードの場合と、図15に示したCRCモードの場合とを参照するに、どちらの場合も、対象データは、センサレジスタ311で管理されている。センサレジスタ311という同一のレジスタ空間で管理されている対象データであっても、従来モードに設定されている場合には、従来モードのときの対象データとして扱われ、CRCモードに設定されている場合には、CRCモードのときの対象データとして扱われる。すなわち、同一のレジスタ空間に管理されるデータであっても、設定されているモードにより、扱い方が異なる。
 コマンドの定義毎に、同一のレジスタ空間に複数のレジスタを定義することで、同一のレジスタ空間を複数のモードで共有して用いることが可能となり、有限なレジスタ空間を用いて、複数の機能に対応させた処理を実行させることが可能となる。そのようなレジスタ130を備えるCIS1は、機能安全やセキュリティ機能を高めた複数の機能に対応することができる。
 図16は、セキュリティコマンド(MAC)に設定されているときの通信において、レジスタ130に書き込まれるまたは書き込まれているデータについて説明するための図である。セキュリティコマンド(MAC)の設定は、ホスト2からMACモードに設定するというコマンドを受信し、そのコマンド(MAC)が、通信情報レジスタ312で管理されているときに設定される。
 ホスト2からレジスタ130からのコマンド(MAC)は、通信情報レジスタ312に書き込まれる。MACモードに設定された場合、ホスト2からレジスタ130に書き込みの要求があった対象データ(任意のbyte数)は、レジスタ130のセンサレジスタ311に書き込まれ、MACデータ(例えば、16byte)とIV(イニシャルベクタ)(例えば、16byte)は、機能安全・セキュリティ用データ領域313に書き込まれる。
 MACデータは、図16に示したように、対象データとコマンド(MAC)をMACデータの演算対象として生成されたデータである。
 図17は、セキュリティコマンド(暗号化)に設定されているときの通信において、レジスタ130に書き込まれるまたは書き込まれているデータについて説明するための図である。セキュリティコマンド(暗号化)の設定は、ホスト2から暗号化モードに設定するというコマンドを受信し、そのコマンド(暗号化)が通信情報レジスタ312で管理されているときに設定される。
 ホスト2からレジスタ130からのコマンド(暗号化)は、通信情報レジスタ312に書き込まれる。ホスト2からレジスタ130に書き込みの要求があった対象データは、暗号化された暗号化データ(任意のbyte数)として、機能安全・セキュリティ用データ領域313に書き込まれる。機能安全・セキュリティ用データ領域313には、総データサイズ(例えば、4byte)、IV(例えば、16byte)、MACデータ(例えば、16byte)も書き込まれる。
 書き込み対象とされた対象データは、暗号化され、ホスト2から供給され、暗号化されたまま、機能安全・セキュリティ用データ領域313に書き込まれる。暗号化データは、レジスタ130のどの空間に書き込まれるか(書き込まれているか)というアドレス情報自体も攻撃者などから秘匿するために、暗号化されたままのデータが、機能安全・セキュリティ用データ領域313に書き込まれる。
 MACデータは、図17に示したように、コマンド(暗号化)、総データサイズ、および暗号化データを、MACデータの演算対象として生成されたデータである。
 機能安全・セキュリティ用データ領域313で管理される暗号化データは、図18に示すようなフォーマットを有する。暗号コマンド時に、暗号データ内でバースト転送とシングル転送が可能なフォーマットを定義する。
 図18のAに示したフォーマットは、単独アドレスデータであり、書き込み(Write)時の暗号化データのフォーマットを示している。図18のAに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、データ1フィールド(アドレス1のデータ、例えば、1byte)、アドレス2フィールド(例えば、2byte)、データ2フィールド(アドレス2のデータ、例えば、1byte)・・・が配置されている。
 アドレスフィールドとデータフィールド、例えば、アドレス1フィールドとデータ1フィールドが1セットであり、このようなアドレスフィールドとデータフィールドからなる1セットが、何セットあるかが、セット数フィールドに記載されている。
 フォーマットフィールドに記載されている値の一例を、図19に示す。単独アドレスWRITEの場合、フォーマットフィールドには、“0000_0000”という値(Value)が記載される。
 図18のBに示したフォーマットは、連続アドレスデータであり、書き込み(Write)時の暗号化データのフォーマットを示している。図18のBに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、サイズ1フィールド(例えば、2byte)、データ1-1フィールド(アドレス1のデータ、例えば、1byte)、データ1-2フィールド(アドレス1+1のデータ、例えば、1byte)、・・・、アドレス2フィールド(例えば、2byte)、サイズ2フィールド(例えば、2byte)、データ2-1フィールド(アドレス2のデータ、例えば、1byte)・・・が配置されている。
 アドレスフィールドとデータフィールド、例えば、アドレス1フィールドから、アドレス2フィールドの前までに配置されているデータ1-1フィールド、データ1-2フィールド・・・が1セットであり、このようなアドレスフィールドと複数のデータフィールドからなる1セットが、何セットあるかが、セット数フィールドに記載されている。
 サイズフィールドには、そのセット内に含まれるデータフィールドの総byte数が記載されている。例えば、サイズ1フィールドには、データ1-1フィールド、データ1-2フィールド、・・・から構成される1セット内に含まれるデータフィールドの総byte数が記載されている。
 図19を参照するに、連続アドレスWRITEの場合、フォーマットフィールドには、“0000_0001”という値(Value)が記載される。
 図18のCに示したフォーマットは、単独アドレスデータであり、読み出し(Read)リクエスト時の暗号化データのフォーマットを示している。図18のCに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、アドレス2フィールド(例えば、2byte)、アドレス3フィールド(例えば、2byte)・・・が配置されている。
 1つのアドレスフィールドが1セットとされ、そのようなセットが、何セットあるかが、セット数フィールドに記載されている。
 図19を参照するに、単独アドレスREADリクエストの場合、フォーマットフィールドには、“0001_0000”という値(Value)が記載される。
 図18のDに示したフォーマットは、連続アドレスデータであり、読み出し(READ)リクエスト時の暗号化データのフォーマットを示している。図18のDに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、サイズ1フィールド(例えば、2byte)、アドレス2フィールド(例えば、2byte)、サイズ2フィールド(例えば、2byte)・・・が配置されている。
 アドレスフィールドとサイズフィールド、例えば、アドレス1フィールドとサイズ1フィールドが1セットであり、このようなアドレスフィールドとサイズフィールドからなる1セットが、何セットあるかが、セット数フィールドに記載されている。
 サイズフィールドには、そのセット内に含まれるアドレスのbyte数が記載されている。例えば、サイズ1フィールドには、アドレス1フィールドのbyte数が記載されている。
 図19を参照するに、連続アドレスREADリクエストの場合、フォーマットフィールドには、“0001_0001”という値(Value)が記載される。
 図18のEに示したフォーマットは、単独アドレスデータであり、読み出し(READ)時の暗号化データのフォーマットを示している。図18のEに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、データ1フィールド(アドレス1のデータ、例えば、1byte))、アドレス2フィールド(例えば、2byte)、データ2フィールド(アドレス2のデータ、例えば、1byte)・・・が配置されている。
 アドレスフィールドとデータフィールド、例えば、アドレス1フィールドとデータ1フィールドが1セットであり、このようなアドレスフィールドとデータフィールドからなる1セットが、何セットあるかが、セット数フィールドに記載されている。
 図19を参照するに、単独アドレスREADデータの場合、フォーマットフィールドには、“0010_0000”という値(Value)が記載される。
 図18のFに示したフォーマットは、連続アドレスデータであり、読み出し(READ)時の暗号化データのフォーマットを示している。図18のFに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、セット数フィールド(例えば、1byte)、アドレス1フィールド(例えば、2byte)、サイズ1フィールド(例えば、2byte)、データ1-1フィールド(アドレス1のデータ,例えば、1byte)、データ1-2フィールド(アドレス1+1のデータ、例えば、1byte)、・・・、アドレス2フィールド(例えば、2byte)、サイズ2フィールド(例えば、2byte)、データ2-1フィールド(アドレス2のデータ、例えば、2byte)・・・が配置されている。
 アドレスフィールドとデータフィールド、例えば、アドレス1フィールドから、アドレス2フィールドの前までに配置されているデータ1-1フィールド、データ1-2フィールド・・・が1セットであり、このようなアドレスフィールドと複数のデータフィールドからなる1セットが、何セットあるかが、セット数フィールドに記載されている。
 サイズフィールドには、そのセット内に含まれるデータフィールドの総byte数が記載されている。例えば、サイズ1フィールドには、データ1-1フィールド、データ1-2フィールド、・・・から構成される1セット内に含まれるデータフィールドの総byte数が記載されている。
 図19を参照するに、連続アドレスREADの場合、フォーマットフィールドには、“0010_0001”という値(Value)が記載される。
 図18のGに示したフォーマットは、アドレスが無い読み出し(Read)データのフォーマットを示している。図18のGに示したフォーマットは、図中上から順に、フォーマットフィールド(例えば、1byte)、サイズフィールド(例えば、4byte)、データ1フィールド(例えば、1byte)、データ2フィールド(例えば、1byte)、データ3フィールド(例えば、1byte)・・・が配置されている。
 図19を参照するに、READデータ(アドレスなし)の場合、フォーマットフィールドには、“0010_0010”という値(Value)が記載される。
 単発アドレスデータは、例えば、露光時間やアナログゲインなどのシーン変化の情報を送信したい場合に用いられる。連続アドレスデータは、モード遷移、起動時の条件設定、CIS1内のメタデータの読み出しなどの場合に用いられる。CIS1にAIを搭載しているような場合、辞書データ等を送信したい場合にも、連続アドレスデータが用いられる。
 本実施の形態においては、図18に示したような複数のフォーマットに対応した暗号化データを、レジスタ130で管理することが可能である。このような暗号化データを扱う場合でも、効率的なデータ通信を行うことが可能となる。
 図20は、認証コマンドに設定されているときの通信において、レジスタ130に書き込まれるまたは書き込まれているデータについて説明するための図である。認証コマンドの設定は、ホスト2から認証モードに設定するというコマンドを受信し、コマンド(認証)が、通信情報レジスタ312で管理されているときに設定される。
 ホスト2からレジスタ130に書き込みの要求があった認証データ(xxbyte)は、機能安全・セキュリティ用データ領域313に書き込まれる。
 図21に示したタイミングチャートを参照し、CIS1とホスト2との間で認証データのやり取りを行うときの処理について説明する。
 ホスト2は、ステップS11において、認証リクエストを生成し、CIS1に対して送信する。CIS1は、ステップS21におぃて、ホスト2からの認証リクエストを受信し、そのデータを処理する。
 ホスト2において生成され、送信される認証リクエストのフォーマットを、図22に示す。認証リクエストのフォーマットは、コマンド(認証)と認証リクエストから構成される。このような認証リクエストを受信したCIS1は、図20を参照して説明したように、コマンド(認証)のデータを、通信情報レジスタ312に書き込み、認証リクエストのデータ(図20においては、認証データに該当するデータ)を、機能安全・セキュリティ用データ領域313に書き込む。
 CIS1は、ステップS22(図21)において、認証レスポンスAを生成し、機能安全・セキュリティ用データ領域313に書き込む。CIS1は、ホスト2からの読み出し要求に応じて、機能安全・セキュリティ用データ領域313から認証レスポンスAを読み出し、ホスト2に対して出力する。ホスト2は、CIS1からの認証レスポンスAを、ステップS12において受信、処理し、CIS1を認証する。
 CIS1において生成され、ホスト2により読み出される認証レスポンスAのフォーマットを、図22に示す。認証レスポンスAのフォーマットは、コマンド(認証)、IV、CIS認証レスポンス、およびMACから構成される。CIS認証レスポンスは、暗号化されたデータである。MACは、コマンド(認証)、IV、およびCIS認証レスポンスを演算対象として生成されたMACデータである。
 CIS1は、図20を参照して説明したように、コマンド(認証)のデータは、通信情報レジスタ312に書き込み、IV、CIS認証レスポンス、およびMACのデータ(図20においては、認証データに該当するデータ)を、機能安全・セキュリティ用データ領域313に書き込み、ホスト2からの要求に応じて、書き込んだデータを読み出して、ホスト2に対して出力する。
 ステップS13(図21)において、ホスト2は、認証レスポンスBを生成し、CIS1に対して送信する。CIS1は、ホスト2から送信されてきた認証レスポンスBを、ステップS23において受信し、機能安全・セキュリティ用データ領域313に書き込むなどの処理を実行し、ホスト2を認証する。
 ホスト2において生成され、送信される認証レスポンスBのフォーマットを、図22に示す。認証レスポンスBのフォーマットは、コマンド(認証)、IV、Host認証レスポンス、およびMACから構成される。Host認証レスポンスは、暗号化されたデータである。MACは、コマンド(認証)、IV、およびHost認証レスポンスを演算対象として生成されたMACデータである。
 CIS1は、図20を参照して説明したように、コマンド(認証)のデータは、通信情報レジスタ312に書き込み、IV、Host認証レスポンス、およびMACのデータ(図20においては、認証データに該当するデータ)を、機能安全・セキュリティ用データ領域313に書き込む。
 このように、CIS1とホスト2は、それぞれ認証を行う。
 <セキュリティデータの送信手順(MACモード、CRCモード)>
 図23のフローチャートを参照し、ホスト2からCIS1に、機能安全・セキュリティデータを送信する際の手順について説明する。図23に示したフローチャートは、MACコマンドまたはCRCコマンドが送信される場合であり、MACモードまたはCRCモードにおいて対象データをレジスタ130に書き込むときの手順を示す。
 まずCIS1とホスト2において、MAC/CRCの対象データ、例えば、設定情報の書き込みのための処理が実行される。ステップS101において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。
 処理ステートFS_S_ACTは、図13を参照して説明したように、例えばHighであればActive(処理中)であることを示すデータであり、Lowであれば、Activeではないことを示すデータである。ホスト2は、処理ステートFS_S_ACTがLowであり、Activeではなく(他の処理を行っている状態ではなく)、処理を受け付けられる状態であることを確認した場合、処理をステップS102に進める。
 ステップS102において、ホスト2は、FS_S_STATEに、CRCモードまたはMACモードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、CRCモードによるセンサレジスタ311への設定情報の書き込みの開始要求を示すステータスFS_S_STATE=CRC_REGWが生成され、送信される。
 ステップS121において、CIS1は、ホスト2からのCRCモードまたはMACモードによる通信開始を知らせる[コマンド]を受信した場合、FS_S_ACTを処理中に設定する。
 CIS1は、図15、図16を参照して説明したように、受信されたコマンドを、通信情報レジスタ312に書き込む。通信情報レジスタ312に、コマンドが書き込まれることにより、そのコマンドが表すモード、例えば、コマンド(CRC)が書き込まれた場合、CRCモードであり、コマンド(MAC)が書き込まれた場合、MACモードが設定される。
 ステップS103において、ホスト2は、任意のデータ、例えば、図15、図16を参照して説明した対象データを生成し、CIS1に対して送信する。ステップS122において、CIS1は、ホスト2からの対象データを受信すると、各種処理を開始する。例えば、CIS1は、図15、図16を参照して説明したように、センサレジスタ311に、受信された対象データを書き込む。またCIS1は、レジスタ130に書き込んだコマンドと対象データを演算対象としたCRCデータまたはMACデータを生成する。生成されたCRCデータまたはMACデータは、機能安全・セキュリティ用データ領域313に書き込まれる。
 ステップS104において、ホスト2は、FS_S_STATEに、[終了]を示す通信情報を生成し、CIS1に対して送信する。例えば、CRCモードによるセンサレジスタ311への設定情報の書き込みの終了要求を示すステータスFS_S_STATE=0が生成され、送信される。
 ステップS123において、CIS1は、ホスト2からの、設定情報の書き込み終了のコマンドを受信すると、ステップS122で開始した各種処理が終了するまで、その処理を実施する。そして、処理終了後、CIS1は、通信情報レジスタ312のFS_S_STETEレジスタの動作モード値を0にする。
 このようにしてMAC/CRC対象データの書き込みに関する処理が、CIS1とホスト2との間で行われる。
 対象データの書き込みが終了されると、CIS1とホスト2において、MAC/CRCの書き込みのための処理が実行される。ステップS105において、ホスト2は、FS_S_STATEに、CRCモードまたはMACモードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、通信情報として、CRCモードによるセキュリティ用データの書き込みの開始要求を示すステータスFS_S_STATE=CRC_DATAWが生成され、送信される。
 ステップS124において、CIS1は、ホスト2からの通信開始の要求を受信すると、FS_S_ACT=処理中の状態に設定する。
 ステップS106において、ホスト2は、MACデータまたはCRCデータを生成し、送信する。ステップS125において、CIS1は、受信されMACデータまたはCRCデータを、機能安全・セキュリティ用データ領域313に書き込む。
 ステップS107において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。例えば、機能安全・セキュリティ用データ領域313へのMACデータまたはCRCデータの書き込みの終了要求を示すステータスFS_S_STATE=0が生成され、送信される。
 ステップS126において、CIS1は、ホスト2から、通信終了を表すコマンドを受信すると、ステップS122において生成したMACデータまたはCRCデータと、ホスト2から供給されたMACデータまたはCRCデータを比較し、処理結果を出力に設定する。MACデータの比較、またはCRCデータの比較が終了され、その比較結果がホスト2に対して出力されると、ステップS127に処理は進められる。
 ステップS127において、FS_S_ACTを処理完了に設定する。
 <セキュリティデータの送信手順(暗号化モード)>
 図24のフローチャートを参照し、ホスト2からCIS1に、機能安全・セキュリティデータを送信する際の手順について説明する。図24に示したフローチャートは、暗号化コマンドが送信される場合であり、暗号化モードにおいて、暗号化データをレジスタ130に書き込むときの手順を示す。
 CIS1とホスト2において、暗号化データの書き込みのための処理が実行される。ステップS141において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS142に進める。
 ステップS142において、ホスト2は、FS_S_STATEに、暗号化モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、暗号化モードによる機能安全・セキュリティ用データ領域313への暗号化データの書き込みの開始要求を示すステータスFS_S_STATE=USERDEF_DATAWが生成され、送信される。
 ステップS161において、CIS1は、ホスト2からの暗号化モードによる通信開始を知らせる[コマンド]を受信した場合、FS_S_ACT=処理中に設定する。CIS1は、図17を参照して説明したように、受信されたコマンド(図17では、コマンド(暗号化)に該当)を、通信情報レジスタ312に書き込む。
 ステップS143において、ホスト2は、暗号化データを生成し、CIS1に対して送信する。ステップS162において、CIS1は、ホスト2からの暗号化データを受信すると、各種処理を開始する。例えば、CIS1は、図17を参照して説明したように、機能安全・セキュリティ用データ領域313に、受信された暗号化データを書き込む。またCIS1は、図17を参照して説明したように、総データサイズ、IV、MACといったデータも、暗号化データと合わせて受信しており、これらのデータも機能安全・セキュリティ用データ領域313に書き込む。
 CIS1は、各種処理として、機能安全・セキュリティ用データ領域313に書き込んだデータの検証を、MACを用いて行う。CRCが受信される場合、CRCが用いられて、データの検証が行われる。またCIS1は、暗号化データの復号し、復号したデータが、例えば設定情報であった場合、その設定情報に基づく設定を行う(ステップS163の処理)。
 ステップS144において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。例えば、機能安全・セキュリティ用データ領域313への暗号化データの書き込みの終了要求を示すステータスFS_S_STATE=0が生成され、送信される。
 ステップS163において、CIS1は、ホスト2から、通信終了を表すコマンドを受信すると、そのコマンドを通信情報レジスタ312に書き込むとともに、ステップS162において開始した処理が終了していない場合、終了するまでその処理を継続する。CIS1は、暗号化データの復号結果を設定(反映)する。このような処理が終了後、CIS1は、ステップS164において、FS_S_ACT=処理完了に設定する。
 <セキュリティデータの受信手順(MACモード、CRCモード)>
 図25のフローチャートを参照し、ホスト2がCIS1から機能安全・セキュリティデータを受信する際の手順について説明する。図25に示したフローチャートは、MACまたはCRCコマンドの場合であり、MACまたはCRCの対象データを読み出すときの手順を示す。
 まずCIS1とホスト2において、MAC/CRC対象データの読み出しのための処理が実行される。ステップS181において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS182に進める。
 ステップS182において、ホスト2は、FS_S_STATEに、CRCモードまたはMACモードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、CRCモードによるセンサレジスタ311への設定情報の読み出しの開始要求を示すステータスFS_S_STATE=CRC_REGRが生成され、送信される。
 ステップS201において、CIS1は、ホスト2からのCRCモードまたはMACモードによる通信開始を知らせる[コマンド]を受信すると、FS_S_ACT=処理中に設定する。CIS1は、図15、図16を参照して説明したように、受信されたコマンドを、通信情報レジスタ312に書き込む。
 ステップS183において、ホスト2は、読み出したいデータの読み出し指示を、CIS1に対して送信する。CIS1では、ステップS202において、各種処理を開始する。例えば、CIS1は、ホスト2からの読み出し要求に応じて、センサレジスタ311に書き込まれている設定情報を読み出し、ホスト2に出力する。
 CIS1は、読み出し対象とされた対象データとコマンド(MAC)を演算対象としたMACデータ、または読み出し対象とされた対象データとコマンド(CRC)を演算対象としたCRCデータを生成する。生成されたMACデータまたはCRCデータは、機能安全・セキュリティ用データ領域313に書き込まれる。
 ステップS184において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。例えば、CRCモードによるセンサレジスタ311への設定情報の書き込みの終了要求を示すステータスFS_S_STATE=0が生成され、送信される。
 ステップS203において、CIS1は、ホスト2からの、設定情報の読み出し終了のコマンドを受信すると、ステップS202で開始した各種処理が終了していない場合には、その処理が終了するまで、その処理を継続する。そして、処理終了後、CIS1は、ステップS204において、処理結果を、出力領域に設定し、ステップS205において、処理ステートFS_S_ACT=処理完了に設定する。
 このようにしてMAC/CRC対象データの読み出しに関する処理が、CIS1とホスト2との間で行われる。
 対象データの読み出しが終了されると、CIS1とホスト2において、MAC/CRCの読み出しのための処理が実行される。ステップS185において、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS186に進める。
 ステップS186において、ホスト2は、FS_S_STATEに、CRCモードまたはMACモードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、CRCモードによる機能安全・セキュリティ用データ領域313へのCRCデータの読み出しの開始要求を示すステータスFS_S_STATE=CRC_DATARが生成され、送信される。CIS1は、ステップS206において、FS_S_ACT=処理中に設定する。
 ステップS187において、ホスト2は、MACデータまたはCRCデータの読み出しをCIS1に対して指示する。CIS1は、ステップS207において、機能安全・セキュリティ用データ領域313に書き込まれているMACデータまたはCRCデータを読み出し、ホスト2に出力する。
 ステップS188において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。CIS1は、ステップS208において、ホスト2から、通信終了を表すコマンドを受信すると、FS_S_ACT=処理完了に設定する。
 このようにしてMAC/CRCデータの読み出しに関する処理が、CIS1とホスト2との間で行われる。
 <セキュリティデータの受信手順(暗号化モード)>
 図26のフローチャートを参照し、ホスト2がCIS1から機能安全・セキュリティデータを受信する際の手順について説明する。図26に示したフローチャートは、暗号化コマンドの場合であり、暗号化データを読み出すときの手順を示す。
 CIS1とホスト2において、暗号化データの読み出しのリクエストに係わる処理が実行される。ステップS221において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS222に進める。
 ステップS222において、ホスト2は、FS_S_STATEに、暗号化モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。例えば、暗号化モードによる機能安全・セキュリティ用データ領域313への暗号化データの読み出しの開始要求を示すステータスFS_S_STATE=USERDEF_DATAWが生成され、送信される。
 ステップS241において、CIS1は、ホスト2からの暗号化モードによる通信開始を知らせる[コマンド]を受信すると、FS_S_ACT=処理中に設定する。CIS1は、図17を参照して説明したように、受信されたコマンドを、通信情報レジスタ312に書き込む。
 ステップS223において、ホスト2は、読み出したいデータ(対象データ)の読み出しのリクエストを、CIS1に対して送信する。CIS1では、ステップS242において、各種処理を開始する。例えば、リクエストのMACデータやCRCデータを検証し、暗号化されているデータを復号する。
 CIS1は、ホスト2から読み出しが指示された対象データ、例えば設定情報を、センサレジスタ311から読み出し、暗号化して機能安全・セキュリティ用データ領域313に暗号データとして書き込む。その書き込んだ暗号データに対するMACデータまたはCRCデータが生成され、機能安全・セキュリティ用データ領域313に書き込まれる。
 ステップS224において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。例えば、暗号化モードによるセンサレジスタ311からの設定情報の読み出し終了を示すステータスFS_S_STATE=0が生成され、送信される。
 ステップS243において、CIS1は、ホスト2からの、設定情報の読み出し終了のコマンドを受信すると、ステップS242で開始した各種処理が終了するまで、その処理を継続して実行する。そして処理終了後、CIS1は、ステップS244において、処理結果を、出力領域に設定し、ステップS245において、処理ステートFS_S_ACT=処理完了に設定する。
 このようにして暗号化データの読み出しリクエストに関する処理が、CIS1とホスト2との間で行われる。
 CIS1とホスト2において、暗号化データの読み出しのための処理が実行される。ステップS225において、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS226に進める。
 ステップS226において、ホスト2は、FS_S_STATEに、暗号化モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。CIS1は、ステップS246において、FS_S_ACT=処理中に設定する。
 ステップS227において、ホスト2は、暗号化データの読み出しを指示する。CIS1は、ステップS247において、機能安全・セキュリティ用データ領域313に書き込まれている暗号化データを読み出し、ホスト2に出力する。
 ステップS228において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。CIS1は、ステップS248において、ホスト2から、通信終了を表すコマンドを受信すると、FS_S_ACT=処理完了に設定する。
 このようにして暗号化データの読み出しに関する処理が、CIS1とホスト2との間で行われる。
 <認証コマンドの送信手順>
 図27のフローチャートを参照し、ホスト2からCIS1に、認証データの送信する場合の手順について説明する。図27に示したフローチャートは、認証コマンドの場合であり、認証データを書き込むときの手順を示す。
 CIS1とホスト2において、認証データの書き込みのための処理が実行される。ステップS261において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS262に進める。
 ステップS262において、ホスト2は、FS_S_STATEに、認証モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。ステップS281において、CIS1は、ホスト2からの認証モードによる通信開始を知らせる[コマンド]を受信した場合、FS_S_ACT=処理中に設定する。CIS1は、図20を参照して説明したように、受信されたコマンド(図20では、コマンド(認証)に該当)を、通信情報レジスタ312に書き込む。
 ステップS263において、ホスト2は、認証リクエストの書き込みを指示するデータを生成し、CIS1に対して送信する。ステップS282において、CIS1は、ホスト2からの認証リクエストを受信すると、各種処理を開始する。例えば、CIS1は、認証リクエストの復号や、MACデータの処理(検証)を行う。
 ステップS264において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。ステップS283において、CIS1は、ホスト2から、通信終了を表すコマンドを受信すると、ステップS282において開始した処理を、終了するまで継続する。このような処理が終了後、CIS1は、ステップS284において、FS_S_ACT=処理完了に設定する。
 <認証データの受信手順>
 図28のフローチャートを参照し、ホスト2がCIS1から認証データを受信する際の手順について説明する。図28に示したフローチャートは、認証コマンドの場合であり、認証データを読み出すときの手順を示す。
 CIS1とホスト2において、認証データの読み出しのリクエストに係わる処理が実行される。ステップS301において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS302に進める。
 ステップS302において、ホスト2は、FS_S_STATEに、認証モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。ステップS321において、CIS1は、ホスト2からの認証モードによる通信開始を知らせる[コマンド]を受信すると、FS_S_ACT=処理中に設定する。CIS1は、図20を参照して説明したように、受信されたコマンドを、通信情報レジスタ312に書き込む。
 ステップS303において、ホスト2は、読み出したい認証データの読み出しのリクエストを、CIS1に対して送信する。CIS1では、ステップS322において、各種処理を開始する。例えば、リクエストのMACデータを検証し、リクエストを復号する。またCIS1は、読み出し対象とされたデータの暗号化を行い、MACデータを生成し、機能安全・セキュリティ用データ領域313に書き込む。
 ステップS304において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。ステップS323において、CIS1は、ホスト2からの通信終了の要求を受信すると、ステップS322で開始した各種処理が終了するまで、その処理を継続して実施する。そして、処理終了後、CIS1は、ステップS324において、処理結果を、出力領域に設定し、ステップS325において、処理ステートFS_S_ACT=処理完了に設定する。
 このようにして認証データの読み出しリクエストに関する処理が、CIS1とホスト2との間で行われる。
 CIS1とホスト2において、認証データの読み出しのための処理が実行される。ステップS305において、ホスト2は、処理ステートFS_S_ACTを参照し、状態を確認する。ホスト2は、処理ステートFS_S_ACTがLowであり、処理を受け付けられる状態であることを確認した場合、処理をステップS306に進める。
 ステップS306において、ホスト2は、FS_S_STATEに、認証モードによる通信開始を知らせる[コマンド]を生成し、CIS1に対して送信する。CIS1は、ステップS326において、FS_S_ACT=処理中に設定する。
 ステップS307において、ホスト2は、認証データの読み出しを指示する。CIS1は、ステップS327において、機能安全・セキュリティ用データ領域313に書き込まれている認証データを読み出し、ホスト2に出力する。
 ステップS308において、ホスト2は、FS_S_STATEに、[通信終了]を示す通信情報を生成し、CIS1に対して送信する。CIS1は、ステップS328において、ホスト2から、通信終了を表すコマンドを受信すると、FS_S_ACT=処理完了に設定する。
 このようにして認証データの読み出しに関する処理が、CIS1とホスト2との間で行われる。
図23乃至28を参照して説明したように、ホスト2は、CIS1が処理を受け付ける状態であるか否か、例えば、CRCモードや暗号化モードといった所定のモードで動作し、そのモード以外のモードでは処理を受け付けない状態ではないか否かを判定後、書き込みまたは読み出しのコマンドを出力する。CIS1が、所定のモードで動作しているときには、そのモードでのレジスタ130への書き込みや、レジスタ130からの読み出しが行われる。
 モードを指定することで、換言すれば、通信情報レジスタ312でモード指定のコマンドを管理することで、レジスタ130を複数のモードで共有して用いるような構成としても、指定されたモードで動作させることができ、複数のモードで限られたレジスタ空間を有効利用することができる。
 CIS1が所定のモードで動作しているときには、他のモードでの動作が指示されることがないため、レジスタ130の所定の領域に、動作しているモードのデータが、他のモードのデータで上書きされるようなことを防ぐことができる。
 本技術によれば、複数のモード、換言すれば複数の機能に対応したレジスタ130とすることができ、そのようなレジスタ130を備えるCIS1によれば、複数の機能に対応したCIS1とすることができる。複数の機能として、通信のセキュリティに関する機能を扱うことができるため、CIS1とホスト2との通信のセキュリティを高めることができる。
 <Fuseを備える場合のCISの構成、処理について>
 図29は、データ伝送システムの他の全体構成例を概略的に示している。図29に示したデータ伝送システムのCIS1に、Fuse133が追加された構成とされている点が、図1に示したデータ伝送システムと異なり、他の点は同様である。
 上記したように、CIS1は、複数の機能に対応したCIS1とすることができる。Fuse133を設けることで、複数の機能に対応しているCIS1であっても、そのうちの必要とされる機能を選択的に対応できるCIS1にカスタマイズすることができる。例えば、CIS1を使用するユーザ毎に、ユーザが所望する機能に対応し、ユーザが所望しない機能には対応しないといったカスタマイズを、CIS1に対して行うことができる。
 レジスタ130は、上記した場合と同じく、複数の機能に対応可能な領域が同一アドレスで定義されている。CPU131やHW132は、内部の動作状態やFuse値、外部からのコマンドに基づき判断し、レジスタ130のレジスタ空間のフィールドを切り替える。Fuse133は、機能選択のフィールドを有し(図31を参照して後述する)、そのフィールドの値により、レジスタ空間の定義を切り替える。
 Fuse133を備えるCIS1の動作について、図30のフローチャートを参照して説明する。
 CIS1が停止状態である場合に、ステップS401において、セキュリティがサポートされているか否かが判定される。この判定は、Fuse133で行われ、Fuse133に設定されているFuse値で切り替えられる。Fuse値について、図31を参照して説明する。
 図31は、Fuse値の一例を示す図である。フィールド名と設定値が関連付けられた表で示している。フィールド名が機能安全設定であり、設定値が“1’b01”である場合、機能安全をサポートしていることを表し、“1’b1”である場合、機能安全をサポートしていないことを表す。機能安全をサポートしているとは、上記したCRCモードでの通信を行えることを意味する。
 フィールド名がセキュリティ設定であり、設定値が“1’b0”である場合、セキュリティをサポートしていることを表し、“1’b1”である場合、セキュリティをサポートしていないことを表す。セキュリティをサポートしているとは、上記したMACモード、暗号化モードの両方またはどちらか一方は少なくともサポートしていることを意味する。
 フィールド名が認証方式であり、設定値が“4’b1001”である場合、デバイス認証有、ホスト認証無、共通鍵方式であることを表し、“4’b1010”である場合、デバイス認証有、ホスト認証無、公開鍵方式であることを表す。またフィールド名が認証方式であり、設定値が“4’b1101”である場合、デバイス認証有、ホスト認証有、共通鍵方式であることを表し、“4’b1110”である場合、デバイス認証有、ホスト認証有、公開鍵方式であることを表す。
 Fuse133には、サポートしている通信モードに関する情報としてFuse値を有している。Fuse133は、通信モードをサポートしているか否かが設定されている設定部として機能し、設定されている通信モード以外の通信モードでのコマンドが受信された場合、後述するように、前記レジスタ定義を変更する処理は実行しない。
 ステップS401においては、Fuse値が参照され、その設定値が“1’b0”である場合、セキュリティはサポートされていると判定され、設定値が“1’b1”である場合、セキュリティはサポートされていないと判定される。ステップS401において、セキュリティはサポートされていると判定された場合、処理は、ステップS402に進められ、セキュリティはサポートされていないと判定された場合、ステップS402,S403の処理はスキップされ、処理は、ステップS405に進められる。
 ステップS402において、認証方式が選択される。選択される認証方式も、Fuse値で切り替えられ、Fuse値の設定値に基づき選択される。ステップS403において、認証コマンド、レジスタ定義が使用される。ステップS403においては、図21を参照して説明した認証処理が実行されることで、CIS1がホスト2を認証し、ホスト2がCIS1を認証する処理が行われる。
 認証が完了されると、ステップS404に処理は進められ、外部からのコマンド待ちの状態となる。ここまでの処理は、CIS1とホスト2が通信を開始した時点で1回行われれば良い。外部からのコマンド待ちの状態は、内部の動作状態(認証状態と認証完了後の状態)で適宜切替が実行される状態である。
 外部からのコマンド待ちの状態のときに、コマンドが受信されると、処理はステップS405に進められる。ステップS405以降の処理は、コマンドが受信される毎に行われる処理である。
 ステップS405において、受信されたのは、セキュリティコマンドであるか否かが判定される。ステップS405において、受信されたのは、セキュリティコマンドであると判定された場合、処理は、ステップS406に進められる。
 ステップS406において、セキュリティはサポートされているか否かが判定される。この判定は、ステップS401と同じく、Fuse値が参照されて判定される。ステップS401においてセキュリティはサポートされているか否かの判定は行われているため、この判定結果を用いて、ステップS406の処理が実行されるようにしても良い。
 ステップS406において、セキュリティはサポートされていると判定された場合、ステップS407に処理が進められ、受信されたセキュリティコマンドにより、レジスタ定義を使用する。例えば、セキュリティコマンドが、MACモードを指定している場合、レジスタ定義はMACモードに設定され、レジスタ130が使用される。
 一方、ステップS406において、セキュリティはサポートしていないと判定された場合、処理はステップS408に進められる。ステップS408においては、受信されたセキュリティコマンドに対する処理は何もされず、受信したことを無視した状態とされる。
 例えば、受信されたコマンドは、通信情報レジスタ312に書き込まれ、そのコマンドに対応する通信モードで、レジスタ130のレジスタ空間の定義が設定されるが、ステップS408に処理が進められた場合には、そのような処理は実行されない。よって、Fuse133により対応してない機能として設定されている機能のコマンドが受信された場合、そのコマンドが示す通信モードには設定されず、レジスタ空間の定義が変更されることもない。すなわち、Fuse133により、機能の選択がなされたことになる。
 一方、ステップS405において、受信されたコマンドは、セキュリティコマンドではないと判定された場合、処理は、ステップS409に進められる。ステップS409において、受信されたコマンドは、機能安全コマンドであるか否かが判定される。ステップS409において、受信されたコマンドは、機能安全コマンドであると判定された場合、処理は、ステップS410に進められる。
 ステップS410において、機能安全はサポートされているか否かが判定される。ステップS410において、機能安全はサポートされていると判定された場合、処理は、ステップS411に進められる。ステップS411において、受信された機能安全コマンドにより、レジスタ定義を使用する。例えば、機能安全コマンドが、CRCモードを指定している場合、レジスタ定義はCRCモードに設定され、レジスタ130が使用される。
 一方、ステップS409において、受信されたコマンドは、機能安全コマンドではないと判定された場合、または、ステップS410において、機能安全はサポートしていないと判定された場合、処理は、ステップS408に進められる。ステップS408においては、受信されたコマンドに対する処理は何もされず、受信したことを無視した状態とされる。
 このように、Fuse133を設けることで、ホスト2からのコマンドによりレジスタ130の同一アドレスにおけるレジスタ空間の定義を変更することができるとともに、Fuse133のFuse値による切替により、レジスタ130の同一アドレスにおけるレジスタ空間の定義を変更することができる構成とすることができる。
 このように、Fuse133を設けることで、Fuse133で対応できる機能を選択できる構成とすることができる。多くの機能に対応しているCIS1であっても、Fuse値を設定することで、CIS1を使用する顧客のニーズに合わせて、対応する機能を取捨選択することができ、CIS1をカスタマイズすることができる。
 本技術によれば、製品で必要となる機能安全の機能やセキュリティの機能に対して、センサ(CIS1)の設計や既存インタフェース(IF)を変更することなく対応することが可能となる。またレジスタを複数のモード(機能)で共有し、切り替えることで、複数のモード(機能)に対応させることができる。よって限られたレジスタ空間を有効利用し、かつ複数の機能に対応したセンサを提供することができる。
 <記録媒体について>
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図32は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)2001、ROM(Read Only Memory)2002、RAM(Random Access Memory)2003は、バス2004により相互に接続されている。バス2004には、さらに、入出力インタフェース2005が接続されている。入出力インタフェース2005には、入力部2006、出力部2007、記憶部2008、通信部2009、及びドライブ2010が接続されている。
 入力部2006は、キーボード、マウス、マイクロフォンなどよりなる。出力部2007は、ディスプレイ、スピーカなどよりなる。記憶部2008は、ハードディスクや不揮発性のメモリなどよりなる。通信部2009は、ネットワークインタフェースなどよりなる。ドライブ2010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア2011を駆動する。
 以上のように構成されるコンピュータでは、CPU2001が、例えば、記憶部2008に記憶されているプログラムを、入出力インタフェース2005及びバス2004を介して、RAM2003にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU2001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア2011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブルメディア2011をドライブ2010に装着することにより、入出力インタフェース2005を介して、記憶部2008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部2009で受信し、記憶部2008にインストールすることができる。その他、プログラムは、ROM2002や記憶部2008に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
 なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 なお、本技術は以下のような構成も取ることができる。
(1)
 アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
 前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
 を備え、
 前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
 前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
 データ処理装置。
(2)
 前記通信モードは、前記設定情報を含む暗号データを授受するモード、前記設定情報に関する誤り検出符号を授受するモード、および前記設定情報に関するメッセージ認証コードを授受するモード、認証データの授受を行うモードのうちのいずれかである
 前記(1)に記載のデータ処理装置。
(3)
 前記通信情報領域に、前記設定情報を含む暗号データを授受するモードが書き込まれている場合、前記暗号データは、前記セキュリティ用データ領域に記憶される
 前記(2)に記載のデータ処理装置。
(4)
 前記通信情報領域に、前記設定情報に関する誤り検出符号を授受するモードが書き込まれている場合、前記誤り検出符号は、前記セキュリティ用データに記憶され、前記誤り検出符号の対象となった前記設定情報は、前記設定用領域に記憶される
 前記(2)または(3)に記載のデータ処理装置。
(5)
 前記通信情報領域に、前記設定情報に関するメッセージ認証コードを授受するモードが書き込まれている場合、前記メッセージ認証コードは、前記セキュリティ用データ領域に記憶され、前記メッセージ認証コードの対象となった前記設定情報は、前記設定用領域に記憶される
 前記(2)乃至(4)のいずれかに記載のデータ処理装置。
(6)
 前記通信情報領域に、認証データの授受を行うモードが書き込まれている場合、前記認証データは、前記セキュリティ用データ領域に記憶される
 前記(2)乃至(5)のいずれかに記載のデータ処理装置。
(7)
 前記ホストから、前記通信モードの終了を示すコマンドを受信するまでは、設定されている前記レジスタ定義を変更しない
 前記(1)乃至(6)のいずれかに記載のデータ処理装置。
(8)
 前記通信モードをサポートしているか否かが設定されている設定部をさらに備え、
 前記設定部で設定されている前記通信モード以外の通信モードでのコマンドが受信された場合、前記レジスタ定義は変更しない
 前記(1)乃至(7)のいずれかに記載のデータ処理装置。
(9)
 アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
 前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
 を備えるデータ処理装置が、
 前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
 前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
 データ処理方法。
(10)
 アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
 前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
 を備えるデータ処理装置を制御するコンピュータに、
 前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
 前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
 ステップを含む処理を実行させるためのプログラム。
 1 CIS, 2 ホスト, 3 伝送路, 4 伝送路, 110 通信部, 111 物理層, 112 リンク層, 113 上位層, 120 通信部, 123 データ処理部, 124 センサ部, 130 レジスタ, 131 CPU, 210 通信部, 211 物理層, 212 リンク層, 213 上位層, 220 通信部, 223 データ処理部, 230 レジスタ, 231 CPU, 232 ハードウエア, 311 センサレジスタ, 312 通信情報レジスタ, 313 セキュリティ用データ領域, 410 書き込み判定部, 411 レジスタ通信検出部, 412 データ演算部, 413 エラー検出部, 414 Writeカウンタ制御部, 430 復号化部, 501 処理ステート出力端子, 502 エラー出力端子

Claims (10)

  1.  アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
     前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
     を備え、
     前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
     前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
     データ処理装置。
  2.  前記通信モードは、前記設定情報を含む暗号データを授受するモード、前記設定情報に関する誤り検出符号を授受するモード、および前記設定情報に関するメッセージ認証コードを授受するモード、認証データの授受を行うモードのうちのいずれかである
     請求項1に記載のデータ処理装置。
  3.  前記通信情報領域に、前記設定情報を含む暗号データを授受するモードが書き込まれている場合、前記暗号データは、前記セキュリティ用データ領域に記憶される
     請求項2に記載のデータ処理装置。
  4.  前記通信情報領域に、前記設定情報に関する誤り検出符号を授受するモードが書き込まれている場合、前記誤り検出符号は、前記セキュリティ用データに記憶され、前記誤り検出符号の対象となった前記設定情報は、前記設定用領域に記憶される
     請求項2に記載のデータ処理装置。
  5.  前記通信情報領域に、前記設定情報に関するメッセージ認証コードを授受するモードが書き込まれている場合、前記メッセージ認証コードは、前記セキュリティ用データ領域に記憶され、前記メッセージ認証コードの対象となった前記設定情報は、前記設定用領域に記憶される
     請求項2に記載のデータ処理装置。
  6.  前記通信情報領域に、認証データの授受を行うモードが書き込まれている場合、前記認証データは、前記セキュリティ用データ領域に記憶される
     請求項2に記載のデータ処理装置。
  7.  前記ホストから、前記通信モードの終了を示すコマンドを受信するまでは、設定されている前記レジスタ定義を変更しない
     請求項1に記載のデータ処理装置。
  8.  前記通信モードをサポートしているか否かが設定されている設定部をさらに備え、
     前記設定部で設定されている前記通信モード以外の通信モードでのコマンドが受信された場合、前記レジスタ定義は変更しない
     請求項1に記載のデータ処理装置。
  9.  アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
     前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
     を備えるデータ処理装置が、
     前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
     前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
     データ処理方法。
  10.  アドレス領域として、ホストから送信された設定情報を記憶する設定用領域と、前記設定情報に対するセキュリティ用データを記憶するセキュリティ用データ領域と、前記ホストとの間の通信情報を記憶する通信情報領域とを有するレジスタと、
     前記ホストと前記レジスタとの間でレジスタ通信を行う通信部と
     を備えるデータ処理装置を制御するコンピュータに、
     前記レジスタ通信の通信モードを示す通信モード情報を前記ホストから受信した場合、前記通信情報領域に書き込み、
     前記通信情報領域に書き込まれている前記通信モード情報に基づく前記通信モード毎に、前記レジスタの同一空間に対するレジスタ定義を設定する
     ステップを含む処理を実行させるためのプログラム。
PCT/JP2023/017008 2022-05-18 2023-05-01 データ処理装置、データ処理方法、およびプログラム WO2023223823A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022081283 2022-05-18
JP2022-081283 2022-05-18

Publications (1)

Publication Number Publication Date
WO2023223823A1 true WO2023223823A1 (ja) 2023-11-23

Family

ID=88835126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/017008 WO2023223823A1 (ja) 2022-05-18 2023-05-01 データ処理装置、データ処理方法、およびプログラム

Country Status (1)

Country Link
WO (1) WO2023223823A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155434A (ja) * 2004-12-01 2006-06-15 Nec Engineering Ltd Pciバスコントローラ及びその動作制御方法並びにプログラム
US20090276561A1 (en) * 2008-04-30 2009-11-05 Micron Technology, Inc. Spi nand protected mode entry methodology
JP2010122787A (ja) * 2008-11-18 2010-06-03 Panasonic Corp 半導体集積回路及びレジスタアドレス制御装置
US20200401549A1 (en) * 2019-06-20 2020-12-24 Analog Devices International Unlimited Company Multi-i/o serial peripheral interface for precision converters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155434A (ja) * 2004-12-01 2006-06-15 Nec Engineering Ltd Pciバスコントローラ及びその動作制御方法並びにプログラム
US20090276561A1 (en) * 2008-04-30 2009-11-05 Micron Technology, Inc. Spi nand protected mode entry methodology
JP2010122787A (ja) * 2008-11-18 2010-06-03 Panasonic Corp 半導体集積回路及びレジスタアドレス制御装置
US20200401549A1 (en) * 2019-06-20 2020-12-24 Analog Devices International Unlimited Company Multi-i/o serial peripheral interface for precision converters

Similar Documents

Publication Publication Date Title
US20140164725A1 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US20130311781A1 (en) Apparatus and method for content encryption and decryption based on storage device id
JP4843531B2 (ja) 暗号変換装置、暗号変換方法および暗号変換プログラム
CN111786820B (zh) 固件更新方法、装置及网络设备
WO2015131446A1 (zh) 一种基于片内总线协议的安全访问控制方法和装置
US20230071782A1 (en) Electronic chip and a method for provisioning such an electronic chip
JPH08179941A (ja) マルチコンピュータシステムにおけるプログラムパッケージの変更方法、およびそのためのコンピュータ
JP2004272770A (ja) ネットワーク機器の中継装置の管理システム,ネットワーク機器の中継装置,認証サーバ,更新サーバ,およびネットワーク機器の中継装置の管理方法
CN115145492A (zh) 一种raid控制器下物理盘管理的方法和系统
EP4080818A1 (en) Communication method and device, ecu, vehicle and storage medium
WO2022075081A1 (ja) 情報処理装置、移動体装置、および通信システム
WO2023223823A1 (ja) データ処理装置、データ処理方法、およびプログラム
EP4134845A1 (en) Memory access method, system-on-chip, and electronic device
JP5395797B2 (ja) 通信装置、及び通信制御方法
US20110185162A1 (en) Method and system to transmit code to a system on a chip (soc)
US6457072B1 (en) System and method for effectively performing physical direct memory access operations
JP2008226167A (ja) データ配布システム及びデータ配布プログラム
TWI731287B (zh) 網路應用程式產品及處理應用層協定的方法
CN114244434A (zh) 配网方法、装置、系统、电子设备及存储介质
WO2023119893A1 (ja) データ処理装置
WO2009125664A1 (ja) 通信プロトコル処理回路及び通信プロトコル処理方法ならびに通信端末
JP6203532B2 (ja) 半導体記憶装置及びデータ処理システム
CN114186245A (zh) 来自存储系统的加密密钥
WO2023243432A1 (ja) データ処理装置、データ処理方法、およびプログラム
EP3361696A1 (en) A method for securely exchanging link discovery information

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

Country of ref document: EP

Kind code of ref document: A1