WO2022176358A1 - ホスト装置、スレーブ装置およびデータ転送システム - Google Patents

ホスト装置、スレーブ装置およびデータ転送システム Download PDF

Info

Publication number
WO2022176358A1
WO2022176358A1 PCT/JP2021/046255 JP2021046255W WO2022176358A1 WO 2022176358 A1 WO2022176358 A1 WO 2022176358A1 JP 2021046255 W JP2021046255 W JP 2021046255W WO 2022176358 A1 WO2022176358 A1 WO 2022176358A1
Authority
WO
WIPO (PCT)
Prior art keywords
line
clock
data
slave device
host device
Prior art date
Application number
PCT/JP2021/046255
Other languages
English (en)
French (fr)
Inventor
正 小野
勇雄 加藤
卓治 前田
Original Assignee
パナソニックIpマネジメント株式会社
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 パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to EP21899295.6A priority Critical patent/EP4296863A4/en
Priority to JP2022534377A priority patent/JP7320707B2/ja
Priority to CN202180010208.XA priority patent/CN115226405A/zh
Priority to US17/841,054 priority patent/US11880225B2/en
Publication of WO2022176358A1 publication Critical patent/WO2022176358A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals

Definitions

  • the present disclosure relates to host devices, slave devices, and data transfer systems formed by these devices.
  • a data transfer system is formed by connecting a slave device to a host device such as a personal computer or a camera, and data is transmitted and received within the data transfer system.
  • Patent Literature 1 discloses a technique that allows a user to use a slave device as a bootable medium.
  • the host device when the frequency of the clock signal increases as the access speed between the host device and the slave device increases, it becomes necessary for the host device to adjust the punching timing of the data transmitted from the slave device.
  • the punching timing depends on the surrounding environment such as temperature, the host device and There are infinite variations due to individual differences in SD cards, and there are infinite combinations of host devices and SD cards. Therefore, unless the punching timing is adjusted between the SD card and the host device that are combined each time the device is activated, there is a possibility that data cannot be obtained correctly.
  • the adjustment of the punching timing is also called "tuning".
  • Patent Document 2 discloses a technique related to tuning between a slave device and a host device.
  • the present disclosure provides a data transfer system capable of acquiring tuning blocks while driving signal lines for sending and receiving commands to a low level.
  • a data transfer system of the present disclosure is a data transfer system having a slave device and a host device connected to the slave device by at least a power supply line, a clock line, a command line and a data line.
  • the host device After being connected to the slave device, the host device supplies power to the slave device through the power supply line.
  • the host device provides the slave device with a first clock having a first frequency and a first voltage value on the clock line.
  • the host device drives the command line, which is at a high level, to a low level.
  • the host device stops supplying the first clock.
  • the host device supplies a second clock having a second frequency and a second voltage value on the clock line to the slave device with the data line driven low.
  • the slave device drives the data line to a high level within a first predetermined period after the second clock is supplied, and drives the data line to a high level within a second predetermined period from the slave device for at least a third predetermined period. , a plurality of tuning blocks are sent to the host device on the data line.
  • the host device performs tuning for adjusting punching timing using the tuning block received on the data line.
  • the host device receives boot data on the data line from the slave device, and starts up using the received boot data.
  • a data transfer system capable of acquiring tuning blocks while driving a signal line for transmitting and receiving commands to a low level.
  • Block diagram explaining the configuration of a data transfer system in which a slave device is connected to a host device Schematic diagram showing the timing after power-on in the host device and slave device Schematic diagram of the sequence in the host device and slave device Diagram explaining the tuning block Schematic diagram showing the timing of transmission and reception of tuning blocks when conventional technology is applied
  • Schematic diagram showing the timing of transmission and reception of tuning blocks in this embodiment Schematic diagram showing another tuning block transmission/reception timing in the present embodiment
  • FIG. 1 is a block diagram illustrating the configuration of a data transfer system in which a slave device 120 is connected to a host device 100.
  • the host device 100 has at least a power supply 101 and an SoC 102 .
  • the SoC 102 includes at least a regulator 103 , an SW 104 that is an electrical switch that selects one of two power inputs, a host device I/F 105 , and a controller 106 .
  • the regulator 103 can also be arranged outside the SoC 102 .
  • the host device 100 and the slave device 120 are mechanically connected. Also, the host device 100 is electrically connected to the slave device 120 via the VDD line 110, which is a 3.3V power supply line.
  • the slave device 120 comprises at least an SoC 121 and a backend module 126.
  • the backend module 126 refers to a device such as a recording medium such as flash memory or a wireless communication module.
  • SoC 121 includes at least regulator 122 , SW 123 , slave device I/F 124 and controller 125 .
  • the regulator 122 can also be arranged outside the SoC 121 .
  • an SD card is used as an example of the slave device 120 for explanation.
  • the slave device 120 is not limited to the SD card.
  • Compact Flash (registered trademark) and Memory Stick (registered trademark) are also examples of the slave device 120 .
  • the host device I/F 105 and the slave device I/F 124 perform signal communication via lines including a CLK (clock) line 111, a CMD (command) line 112, and a DAT (data) line 113.
  • the DAT line 113 includes four signal lines, a DAT0 line 113a, a DAT1 line 113b, a DAT2 line 113c, and a DAT3 line 113d.
  • a signal being at a low level means that the voltage of the signal is at or near 0V.
  • a high-level signal means that the voltage of the signal is higher than the low-level signal and can be distinguished from the low-level signal. Note that the voltage value representing the high level can be determined according to the application of the data transfer system. In this embodiment, a high voltage signal of 3.3V and a low voltage signal of 1.8V are used as examples of voltage values representing a high level.
  • FIG. 2 is a schematic diagram of a timing chart after power-on in the host device 100 and the slave device 120.
  • FIG. 2 is a schematic diagram of a timing chart after power-on in the host device 100 and the slave device 120.
  • FIG. 3 is a schematic diagram of the sequence in the host device 100 and the slave device 120.
  • FIG. 3 is a schematic diagram of the sequence in the host device 100 and the slave device 120.
  • the host device 100 starts activation processing of the slave device 120 at timing t1 when the slave device 120 is connected (S300, S350).
  • the host device 100 supplies 3.3V power from the power supply 101 at timing t2.
  • 3.3V power is supplied to slave device 120 via SoC 102 , regulator 103 , SW 104 and VDD line 110 .
  • the host device 100 pulls up the DAT line 113 to 3.3 V (described as 3.3 V pull-up in FIG. 2) at timing t2 (S302).
  • the host device 100 sends the first clock to the CLK line 111 after the voltage applied to the VDD line 110 reaches 2.7 V at timing t3 (S304).
  • the frequency of the first clock is 400 KHz or less (first frequency).
  • the voltage value of the first clock is 3.3V (first voltage value).
  • the host device 100 After sending the first clock for a predetermined number of clocks (74 clocks or more as an example), the host device 100 drives the CMD line 112 to a high level at timing t4 (S306), and after timing t4, at timing t5. CMD line 112 is driven low (S308).
  • the host device 100 stops sending the first clock to the CLK line 111 (S310). This is an operation for sending a second clock to the CLK line 111 in subsequent processing.
  • the slave device 120 If the slave device 120 does not detect that the CMD line 112 has been driven to low level (N in S352), it waits for the next instruction from the host device 100 (S354).
  • the slave device 120 When the slave device 120 detects that the CMD line 112 has been driven low (Y in S352), it drives the DAT line 113 low after a predetermined period of time (S356).
  • the host device 100 does not supply a clock to the CLK line 111 and changes its own transfer mode from the previous mode during the period during which the CMD line 112 and the DAT line 113 are at low level (the shaded period in FIG. 2). to a high-speed transfer mode (S312).
  • a high-speed transfer mode is the SDR104 mode defined by the UHS-I standard.
  • the bus width used for data transfer is expanded from 1 bit to 4 bits.
  • the voltage values of the clock and data signals used for data transfer are 1.8V.
  • the controller 106 supplies power to the host device I/F 105 via the regulator 103 instead of the 3.3 V power directly supplied from the power supply 101.
  • the SW 104 is controlled to change to the 1.8V power supply that is used.
  • the maximum clock frequency used for data transfer is 208 MHz.
  • the slave device 120 also changes its own transfer mode to a higher speed than the previous modes during the period when the clock is not supplied to the CLK line 111 and the CMD line 112 and the DAT line 113 are at low level (shaded period in FIG. 2). high-speed transfer mode (SDR104 mode in this embodiment) (S358).
  • the controller 125 changes the power supply to the slave device I/F 124 from the 3.3V power directly supplied from the VDD line 110 to the 1.8V power supplied via the regulator 122 . to control.
  • the host device 100 sends out the second clock to the CLK line 111 at timing t7 after a predetermined period (eg, 5 ms) has elapsed from timing t6 (S314).
  • the frequency of the second clock is 208 MHz or higher (second frequency).
  • the voltage value of the second clock is 1.8V (second voltage value).
  • the period from timing t2 to t7 is called a boot initialization mode.
  • the slave device 120 drives the DAT line 113 to high level (1.8 V) at timing t8 within a predetermined period (for example, 1 ms) from timing t7 (described as 1.8 V driven by slave in FIG. 2) (S360). ).
  • the slave device 120 repeatedly transmits tuning blocks a predetermined number of times (40 times in one example) to the host device 100 via the DAT line 113 at timing t9 within a predetermined period (100 ms in one example) from timing t7 (S362).
  • the host device 100 receives the tuning block and performs tuning (S316). Specifically, the host device 100 reads the received tuning block and confirms whether the predefined tuning block can be obtained correctly. If the data is not received correctly, it means that the timing (sampling point) of the data with respect to the reference point of each clock is not set appropriately. Tuning is performed using blocks.
  • the slave device 120 After transmitting tuning blocks a predetermined number of times, the slave device 120 transmits boot data (S364).
  • the host device 100 receives the boot data (S318). If tuning is performed correctly in the host device 100, boot data can be received correctly.
  • the host device 100 When the host device 100 completes receiving the boot data (Y in S318), it drives the CMD line 112 to high level (1.8 V) at timing t10 (S322). This ends the transmission and reception of tuning blocks and boot data (S324). The host device 100 then initializes the backend module 126 and starts up the host device 100 and the like using the boot data. After completion of startup, data reading and writing are performed between the host device 100 and the slave device 120 in data blocks.
  • the host device 100 attempts initialization in normal mode (S320).
  • the slave device 120 When the slave device 120 confirms that the CMD line 112 has been driven to a high level (Y of S366), it ends transmission and reception of boot data (S370).
  • the period from timing t7 to t10 is called boot mode.
  • tuning block transmission and reception details [3.1. Transmitting and Receiving Tuning Blocks According to the Prior Art] 4 and 5, the prior art transmission and reception of tuning blocks without commands (hereafter referred to as tuning block transfers) will be described.
  • FIG. 4 is a diagram explaining the detailed configuration of the tuning block.
  • the tuning block provides signal transmission from slave device 120 to host device 100 using four signal lines (collectively DAT lines 113): DAT0 line 113a, DAT1 line 113b, DAT2 line 113c, and DAT3 line 113d.
  • a type of data sent to The tuning block consists of a 1-bit length start bit, a 128-bit length tuning pattern, a 16-bit length CRC (Cyclic Redundancy Check), and a 1-bit end bit for a total of 146 bits for each of the DAT0 line 113a to the DAT3 line 113d.
  • the start bit and end bit are indicated as S and E, respectively, but the numerical values are "0" and "1", respectively.
  • the slave device 120 drives the DAT line 113 high during the period before and after the slave device 120 transmits the tuning block. Therefore, during this period, the host device 100 detects "1" in all DAT lines.
  • the host device 100 determines that the host device 100 has received the tuning block when all the signal lines of the DAT lines 113 are "1" for a certain period of time and then "0" is detected on all the DAT lines by the start bit. After counting 146 clocks corresponding to the tuning block length, when "1" is detected as the end bit in all DAT lines, the host device 100 determines that the tuning block has been received.
  • the 128-bit length tuning pattern in this embodiment is as follows, and is arranged in ascending order of bit number from the upper left to the lower right (hexadecimal notation).
  • FIG. 5 is a schematic diagram showing timing details when tuning blocks are transmitted multiple times after timing t7 in FIG.
  • the slave device 120 drives the DAT line to a high level at timing t8 within a predetermined time (1 ms) after the host device 100 starts sending the second clock at timing t7,
  • the slave device 120 transmits the first tuning block (denoted as tuning block [1] in FIG. 5).
  • the timing will be explained using the clock numbers assigned to the respective clocks after timing t9.
  • the slave device 120 waits at least a predetermined clock period N1 (eight clocks in this embodiment) from the next clock (clock number 146) after completing the transmission of the end bit of tuning block [1], and starts the next tuning block.
  • N1 is defined as an interval to be provided between the previous data block and the next data block when the slave device 120 continuously transmits data blocks after completion of activation, and is called the number of clocks between data blocks.
  • the slave device 120 After repeating the above operation a predetermined number of times (40 times in this embodiment), the slave device 120 continues to transmit boot data.
  • the expected operation of the host device 100 is that, at the timing of the clock number 0, the start bit, that is, "0" is detected on all four signal lines of the DAT line 113, and tuning block [1] is received.
  • the end bit, ie, "1" is detected at the timing of clock number 145, and the completion of reception of tuning block [1] is detected. Then, it correctly detects the start bit and end bit of the tuning blocks repeatedly transmitted from the slave device 120, and recognizes the reception of a total of 40 tuning blocks.
  • the host device 100 cannot correctly recognize tuning blocks after tuning block [2], it will receive boot data without performing tuning, and the original purpose of correctly acquiring boot data cannot be achieved. .
  • the result of reading the tuning pattern in tuning block [1] does not always match the predetermined tuning pattern held in host device 100 in advance. do not have. This means that the sampling point when reading tuning block [1] is not correct and the sampling point needs to be adjusted using subsequent tuning blocks received.
  • the host device 100 cannot receive the 40 tuning blocks correctly, and erroneously recognizes part of the boot data following the 40 tuning blocks as a tuning block, and thus cannot receive the boot data itself correctly.
  • bit numbers 7 and 8 are consecutive “0" for all DAT lines. Therefore, no matter how much the data is delayed, it is possible to detect the start bit when bit number 8 is received at the latest by dropping consecutive "00" of bit numbers 7 and 8 regardless of the sampling point.
  • FIG. 6 is a timing chart when the host device detects the start bit of tuning block [1] at the timing of clock number 8.
  • FIG. 6 is a timing chart when the host device detects the start bit of tuning block [1] at the timing of clock number 8.
  • the host device 100 detects the start bit by consecutive "0"s in bit numbers 7 and 8 at a timing up to clock number 8 at the latest. At this time, the host device 100 receives tuning block [1] with a maximum delay of 8 clocks from the true timing transmitted by the slave device 120 . In this way, when the host device 100 receives the start bit, the maximum number of clocks delayed with respect to the true timing is defined as the maximum reception delay clock number and denoted by N2.
  • the maximum reception delay clock number N2 depends on the tuning pattern, and is eight in this embodiment.
  • the host device 100 After receiving the start bit, the host device 100 counts the number of clocks during reception of tuning block [1], and finishes receiving tuning block [1] at the timing of clock number 153.
  • the host device 100 expects an interval of clock number N1 or more from the end of reception of the previous block to the start of reception of the next block.
  • the slave device 120 uses the number of clocks obtained by adding the number of clocks between data blocks N1 and the maximum reception delay clock number N2 (in this embodiment, from the end of transmission of the previous tuning block to the start of transmission of the next tuning block). In terms of form, it is sufficient to leave an interval of 16) or more.
  • the host device 100 When the host device 100 receives the tuning block with a delay of 8 clocks from the true start bit, the clock number 153 corresponds to the end bit. At this time, since the slave device 120 drives all the DAT lines to a high level, the host device 100 can correctly detect the data of the clock number 153 as the end bit ("1").
  • FIG. 7 is a timing chart when the host device detects tuning block [1] at the timing of clock number 0.
  • FIG. 7 is a timing chart when the host device detects tuning block [1] at the timing of clock number 0.
  • the host device 100 can detect the true start bit of tuning block [1] transmitted by the slave device 120 . Therefore, it can also be detected that tuning block [1] ends at clock number 145.
  • FIG. 1
  • the slave device 120 transmits the next tuning block [2] after an interval of 16 clocks or more from the end of the transmission of tuning block [1]. Since the next tuning block will be received 8 or more clocks after the bit, no problem occurs.
  • the host device 100 when the host device 100 recognizes that the tuning block has been received with a delay of 8 clocks from the true start bit, the received tuning pattern is not preliminarily held in the host device 100. do not match. In this case, the host device 100 determines that the sampling points are not appropriate, and corrects the sampling points before the next tuning block is received, and performs tuning.
  • the numerical values (time, number of clocks, etc.) related to timing in the present embodiment are examples, and other numerical values may be used.
  • the maximum reception delay clock number N2 depends on the data configuration of the tuning pattern used.
  • the host device 100 it is necessary to hold the received tuning block until the host device 100 has finished reading the tuning block and determining whether it is an appropriate sampling point.
  • the host device 100 may receive the next tuning pattern and overwrite the previously received tuning block. In that case, the host device 100 suspends the clock supply after the number of clocks shorter than the number of clocks defined by N1 has elapsed since the end bit was received, thereby suppressing the transmission of the next tuning block from the slave device 120. (This applies to both Figures 6 and 7).
  • the high-speed bus used is SDR104 mode, but the same applies to other modes.
  • modes such as DDR50 mode
  • the slave device 120 transmits tuning blocks multiple times, but the host device 100 does not need to discard the received tuning blocks and perform tuning.
  • the slave device 120 may not transmit tuning blocks and only transmit boot data.
  • the number of tuning blocks transmitted from the slave device 120 is 40, but other fixed values may be used.
  • the host device 100 can record the number of tuning blocks to be transmitted in a predetermined non-volatile memory area in the slave device 120, and the slave device 120 can transmit the set number of tuning blocks at the next activation.
  • the CMD line 112 is driven high to cause the slave device 120 to stop transmitting subsequent tuning blocks. good too.
  • the host device 100 can drive the CMD line 112 to low level again to instruct the slave device 120 to transmit boot data.
  • the present disclosure instructs transmission of tuning blocks and boot data by issuing an initialization instruction command that the host device 100 transmits to the slave device 120 between timings t4 and t5, for example. It is equally applicable even if
  • the host device and slave device of the present disclosure are interconnected by at least power supply lines, clock lines, command lines and data lines.
  • the data transfer system of the present disclosure is configured by the host device and the slave device that are interconnected.
  • the host device after being connected to the slave device, supplies power to the slave device through the power supply line, and transmits a first clock having a first frequency and a first voltage value to the slave device through the clock line. to drive the command line, which is at a high level, to a low level, stop the supply of the first clock, and with the data line driven to a low level, send a second signal to the slave device.
  • a second clock having a frequency and a second voltage value is provided on the clock line, and the data line is driven high within a first predetermined period of time after the application of the second clock; performing tuning for adjusting punching timing using a plurality of tuning blocks transmitted on the data line from the slave device within a second predetermined period at intervals of at least a third predetermined period; Boot data is received on the data line, and booting is performed using the received boot data. This makes it possible to acquire the tuning block while driving the signal line for sending and receiving commands to a low level. .
  • the third predetermined period includes a clock period between the data blocks when the slave device continuously transmits data blocks after the slave device is activated, and the A clock period determined by the data structure of the block pattern included in the tuning block.
  • the block pattern includes at least a continuous bit string "00" or "11”, and a bit string "0" or a bit string "1" is detected. to determine the start bit of the tuning block.
  • This enables the host device 100 to receive a predetermined number of tuning blocks by reliably capturing the start bit of the tuning block. Therefore, the host device 100 can correctly receive the data following the predetermined number of tuning blocks as boot data.
  • the present disclosure can be applied to a slave device such as an SD card, a corresponding host device, and a data transfer system having the host device and slave device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

スレーブ装置は、データブロックを複数個送信するときのデータブロック間のクロック期間および前記チューニングブロックのデータ構成により決定されるクロック期間とで定められる間隔を空けて、ホスト装置に対して複数個のチューニングブロックを連続送信する。

Description

ホスト装置、スレーブ装置およびデータ転送システム
 本開示は、ホスト装置、スレーブ装置、およびこれらの装置が形成するデータ転送システムに関する。
 近年、記憶媒体(スレーブ装置)として、SDカード(登録商標)、コンパクトフラッシュ(登録商標)等が普及している。スレーブ装置がパソコンやカメラのようなホスト装置に接続されることでデータ転送システムを形成し、データ転送システム内においてデータの送受信が行われる。
 特許文献1は、ユーザがスレーブ装置をブート可能媒体として用いることができるようにする技術を開示している。
 また、ホスト装置とスレーブ装置間のアクセス速度向上に伴ってクロック信号の周波数が高くなると、ホスト装置がスレーブ装置から送信されるデータの打ち抜きタイミングの調整が必要である。特にホスト装置が、抜き差し可能なスレーブ装置であるSDカードと高速バス規格であるUHS-I(Ultra High Speed-1)で接続されている場合、打ち抜きタイミングは温度などの周辺環境、およびホスト装置ならびにSDカードの個体差により変動すること、そしてホスト装置とSDカードの組み合わせは無限に存在する。従って、起動の都度組み合わされたSDカードとホスト装置との間で打ち抜きタイミングを調整しないと、正しくデータを取得できなくなる可能性がある。なお、打ち抜きタイミングの調整は「チューニング」とも呼ばれる。
 特許文献2は、スレーブ装置とホスト装置との間のチューニングに関する技術を開示している。
特開2015-62131号公報 特開2016-46781号公報
 特許文献1に記載の技術に基づいて、ホスト装置がブート可能媒体としてのSDカードからUHS-Iを用いてブートデータを正しく受信できるようにするためには、ブートデータ受信前にチューニングを実施することが必要である。
 一方特許文献2に記載の技術では、ホスト装置がチューニングを行うために、所定のチューニングコマンドを発行して、SDカードから固定データで構成されるチューニングブロックを受信する。
 しかしながら、特許文献1に記載の技術に基づくブートデータ取得において、ホスト装置はブート開始指示からブートデータの転送完了までコマンドを送受信するための信号線をローレベルにドライブする必要がある。従って、特許文献2に記載されているようにチューニングコマンドを発行してチューニングブロックを取得するという方法が取れない。
 本開示はコマンドを送受信するための信号線をローレベルにドライブしつつチューニングブロックを取得することが可能なデータ転送システムを提供する。
 本開示のデータ転送システムは、スレーブ装置と、少なくとも電源ライン、クロックライン、コマンドラインおよびデータラインとで前記スレーブ装置と接続されるホスト装置を有するデータ転送システムである。
 前記ホスト装置は、前記スレーブ装置と接続された後に、前記スレーブ装置に前記電源ラインで電源を供給する。前記ホスト装置は、前記スレーブ装置に第1の周波数および第1電圧値を有する第1のクロックを前記クロックラインで供給する。前記ホスト装置は、ハイレベルとなっている前記コマンドラインをローレベルにドライブする。前記ホスト装置は、前記第1のクロックの供給を停止する。前記ホスト装置は、前記データラインがローレベルにドライブされた状態で前記スレーブ装置に第2の周波数および第2電圧値を有する第2のクロックを前記クロックラインで供給する。
 前記スレーブ装置は、前記第2のクロックの供給後から第1の所定期間内に前記データラインをハイレベルにドライブし、第2の所定期間内に前記スレーブ装置から少なくとも第3の所定期間の間隔を空けて前記ホスト装置に複数個のチューニングブロックを前記データラインで送信する。
 前記ホスト装置は、前記データラインで受信した前記チューニングブロックを用いて打ち抜きタイミングを調整するチューニングを行う。
 前記ホスト装置は、前記スレーブ装置からブートデータを前記データラインで受信し、当該受信したブートデータを用いて起動を行う。
 本開示によれば、コマンドを送受信するための信号線をローレベルにドライブしつつチューニングブロックを取得することが可能なデータ転送システムを提供することができる。
ホスト装置にスレーブ装置が接続されたデータ転送システムの構成について説明したブロック図 ホスト装置及びスレーブ装置における、電源起動後のタイミングを示した模式図 ホスト装置及びスレーブ装置における、シーケンスの模式図 チューニングブロックについて説明した図 従来技術を適用した場合のチューニングブロック送受信のタイミングを示した模式図 本実施の形態におけるチューニングブロック送受信のタイミングを示した模式図 本実施の形態における別のチューニングブロック送受信のタイミングを示した模式図 ホスト装置及びスレーブ装置における、別の電源起動後のタイミングを示した模式図
 以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
 なお、発明者は、当業者が本開示を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
 [1.データ転送システムの構成]
 図1は、ホスト装置100にスレーブ装置120が接続されたデータ転送システムの構成について説明したブロック図である。図1に示すように、ホスト装置100は、少なくとも電源101、SoC102を備えている。そして、SoC102は、少なくともレギュレータ103、2つの電源入力のうち一方を選択する電気的スイッチであるSW104、ホスト装置I/F105、コントローラ106を備える。なおレギュレータ103は、SoC102の外部に配置することも可能である。
 ホスト装置100と、スレーブ装置120とは、機械的に接続される。また、ホスト装置100は、3.3V電源ラインであるVDDライン110を介して、スレーブ装置120と電気的に接続される。
 スレーブ装置120は、少なくともSoC121、バックエンドモジュール126を備えている。バックエンドモジュール126は、フラッシュメモリのような記録媒体や無線通信モジュールのようなデバイスを指す。そして、SoC121は、少なくともレギュレータ122、SW123、スレーブ装置I/F124、コントローラ125を備える。なおレギュレータ122は、SoC121の外部に配置することも可能である。本実施の形態ではスレーブ装置120の一例としてSDカードを用いた説明を行う。ただしスレーブ装置120はSDカードに限られない。コンパクトフラッシュ(登録商標)やメモリースティック(登録商標)もスレーブ装置120の一例である。
 ホスト装置I/F105と、スレーブ装置I/F124とは、CLK(クロック)ライン111、CMD(コマンド)ライン112、DAT(データ)ライン113を含むライン介して、信号通信を行う。なおDATライン113は、DAT0ライン113a、DAT1ライン113b、DAT2ライン113c、DAT3ライン113dの4本の信号線を含む。
 [2.データ転送システムの動作]
 以下図1から図3を用いて、ホスト装置100にスレーブ装置120が接続されたときに実行されるチューニングブロックとブートデータの転送動作について説明する。
 なお本説明において、信号がローレベルであるとは、信号の電圧が0V及びその近傍にある状態であることをいう。信号がハイレベルであるとは、信号の電圧がローレベルより高く、かつローレベルの信号と識別が可能な状態であることをいう。なおハイレベルを表す電圧値はデータ転送システムの用途に応じて定めることが可能である。本実施の形態では3.3Vの高電圧信号および1.8Vの低電圧信号がハイレベルを表す電圧値の例として使用される。
 図2は、ホスト装置100及びスレーブ装置120における、電源起動後のタイミングチャートの模式図である。
 図3は、ホスト装置100及びスレーブ装置120における、シーケンスの模式図である。
 ホスト装置100は、スレーブ装置120が接続されたタイミングt1でスレーブ装置120の起動処理を開始する(S300、S350)。ホスト装置100は、タイミングt2において、電源101から3.3V電源を供給する。3.3V電源はSoC102、レギュレータ103、SW104、さらにVDDライン110を介してスレーブ装置120に供給される。さらにホスト装置100は、タイミングt2において、DATライン113を3.3Vにプルアップ(図2中では3.3V pull-upと記載)する(S302)。
 ホスト装置100はVDDライン110に印可される電圧がタイミングt3において2.7Vに達した後に、CLKライン111に第1のクロックを送出する(S304)。第1のクロックの周波数は400KHz以下(第1の周波数)である。第1のクロックの電圧値は3.3V(第1の電圧値)である。
 ホスト装置100は、第1のクロックを所定クロック数(一例としては74クロック以上)送出した後、タイミングt4でCMDライン112をハイレベルにドライブ(S306)し、さらにタイミングt4の後、タイミングt5でCMDライン112をローレベルにドライブ(S308)する。
 ホスト装置100はタイミングt5に引き続くタイミングt6において、CLKライン111への第1のクロックの送出を停止する(S310)。これは今後の処理においてCLKライン111に第2のクロックを送出する為の動作である。
 スレーブ装置120はCMDライン112がローレベルにドライブされたことを検知しない場合は(S352でN)、ホスト装置100から次の指示があるまで待機する(S354)。
 スレーブ装置120は、CMDライン112がローレベルにドライブされたことを検知した場合(S352でY)、所定の期間経過後にDATライン113をローレベルにドライブする(S356)。
 ホスト装置100はCLKライン111にクロックを供給せず、かつ、CMDライン112、DATライン113がローレベルである期間内(図2における網掛け期間内)において自身の転送モードをそれまでのモードよりも高速な高速転送モードに遷移させる(S312)。ホスト装置がスレーブ装置としてのSDカードに対応したホスト装置である場合、高速転送モードの一例としてUHS-I規格で規定されているSDR104モードというモードがある。SDR104モードにおいてはデータ転送に用いるバス幅が1bitから4bitに拡張される。また、SDR104モードにおいてはデータ転送に用いるクロックおよびデータ信号の電圧値が1.8Vとなる。クロックおよびデータ信号の電圧値を1.8Vにするために、コントローラ106はホスト装置I/F105への電源供給を、電源101から直接供給される3.3V電源に代わり、レギュレータ103を介して供給される1.8V電源に変更するよう、SW104を制御する。
 また、SDR104モードにおいてはデータ転送に用いるクロックの周波数が最大208MHzとなる。
 スレーブ装置120もCLKライン111にクロックが供給されず、かつ、CMDライン112、DATライン113がローレベルである期間(図2における網掛け期間)において自身の転送モードをそれまでのモードよりも高速な高速転送モード(本実施の形態ではSDR104モード)に遷移させる(S358)。このとき、コントローラ125はスレーブ装置I/F124への電源供給を、VDDライン110から直接供給される3.3V電源に代わり、レギュレータ122を介して供給される1.8V電源に変更するよう、SW123を制御する。
 ホスト装置100はタイミングt6から所定期間(一例としては5ms)経過後のタイミングt7においてCLKライン111に第2のクロックを送出する(S314)。第2クロックの周波数は208MHz以上(第2の周波数)である。第2クロックの電圧値は1.8V(第2の電圧値)である。
 図2において、タイミングt2からt7までの期間をブート初期化モード(Boot initialization mode)と呼ぶ。
 スレーブ装置120はタイミングt7から所定期間(一例としては1ms)以内のタイミングt8においてDATライン113をハイレベル(1.8V)にドライブ(図2中では1.8V driven by slaveと記載)する(S360)。
 スレーブ装置120はタイミングt7から所定期間(一例としては100ms)以内のタイミングt9においてDATライン113を介してホスト装置100に所定回数(一例では40回)のチューニングブロックを繰り返し送信する(S362)。
 ホスト装置100はチューニングブロックを受信し、チューニングを実施する(S316)。具体的にはホスト装置100は、受信したチューニングブロックを読み取り、予め定義されたチューニングブロックが正しく取得できるかを確認する。データが正しく受信されていない場合は、各クロックの基準点に対するデータの打ち抜きタイミング(サンプリングポイント)が適切に設定されていないことを意味するため、サンプリングポイントを適宜ずらしながら、次回以降に受信するチューニングブロックを用いてチューニングを行う。
 スレーブ装置120は、所定回数のチューニングブロックを送信後、ブートデータを送信する(S364)。
 ホスト装置100はブートデータを受信する(S318)。ホスト装置100においてチューニングが正しく実行されていれば、ブートデータを正しく受信することができる。
 ホスト装置100がブートデータの受信を完了すると(S318でY)、タイミングt10においてCMDライン112をハイレベル(1.8V)にドライブする(S322)。これによりチューニングブロックおよびブートデータの送信および受信が終了する(S324)。ホスト装置100は、その後にバックエンドモジュール126の初期化およびブートデータを用いたホスト装置100等の起動を行う。起動完了後、ホスト装置100とスレーブ装置120との間ではデータブロックによるデータの読み書きが実施される。
 ホスト装置100がブートデータを正しく受信できなければ(S318でN)、ホスト装置100は通常モードでの初期化を試みる(S320)。
 スレーブ装置120はCMDライン112がハイレベルにドライブされたことを確認(S366のY)したとき、ブートデータの送信および受信を終了する(S370)。
 さもなければ(S366でN)、スレーブ装置120は特に何も動作しない(S368)。
 図2において、タイミングt7からt10の期間をブートモード(Boot mode)と呼ぶ。
 [3.チューニングブロックの送信および受信の詳細]
 [3.1.従来技術によるチューニングブロックの送信および受信]
 以下図4および図5を用いて、従来技術に基づいたコマンドを使用しないチューニングブロックの送信および受信(以下チューニングブロック転送と呼ぶ)について説明する。
 図4はチューニングブロックの詳細な構成について説明した図である。
 図4に示すように、チューニングブロックは、DAT0ライン113a、DAT1ライン113b、DAT2ライン113c、DAT3ライン113dの4本の信号線(総称してDATライン113)を用いてスレーブ装置120からホスト装置100に送信されるデータの一種である。チューニングブロックは、DAT0ライン113aからDAT3ライン113dそれぞれに対し、1ビット長の開始ビット、128ビット長のチューニングパターン、16ビット長のCRC(Cyclic Redundancy Check)、および1ビットの終了ビットの計146ビットで構成される。図4において開始ビット、終了ビットをそれぞれS、Eと記載しているが、数値はそれぞれ「0」、「1」である。
 スレーブ装置120がチューニングブロックを送信している前後の期間、スレーブ装置120はDATライン113をハイレベルにドライブしている。よって当該期間、ホスト装置100ではすべてのDATラインにおいて「1」が検出される。
 ホスト装置100は、DATライン113すべての信号線が一定期間「1」のあと、開始ビットによりすべてのDATラインで「0」を検出した時、ホスト装置100はチューニングブロックを受信したと判定する。そして、チューニングブロック長に相当する146クロックをカウント後、終了ビットとして、全DATラインで「1」を検知した時、ホスト装置100はチューニングブロックを受信完了したと判定する。
 なお、本実施の形態における128ビット長のチューニングパターンは以下の通りであり、上段左から下段右にかけてビット番号の若い順に並んでいる(16進数表記)。
  FF0FFF00 FFCCC3CC C33CCCFF FEFFFEEF
  FFDFFFDD FFFBFFFB BFFF7FFF 77F7BDEF
  FFF0FFF0 0FFCCC3C CC33CCCF FFEFFFEE
  FFFDFFFD DFFFBFFF BBFFF7FF F77F7BDE
 なお上記チューニングパターンは一例であり、他のパターンを使用してもよい。
 図5は、図2におけるタイミングt7以降にチューニングブロックが複数回送信されるときのタイミング詳細を示した模式図である。これまでに説明したように、ホスト装置100がタイミングt7で第2のクロックの送出を開始してから所定の時間(1ms)以内のタイミングt8でスレーブ装置120はDATラインをハイレベルにドライブし、t7から所定の時間(100ms)以内のタイミングt9でスレーブ装置120は1回目のチューニングブロック(図5中ではチューニングブロック[1]と記載)を送信する。なお図5においては便宜上、タイミングt9以降の各クロックに対して付されたクロック番号を用いてタイミングの説明を行う。
 スレーブ装置120は、チューニングブロック[1]の終了ビットの送信を完了した次のクロック(クロック番号146)から少なくとも所定のクロック期間N1(本実施の形態では8クロック)を空けて、次のチューニングブロック[2]を送信する。上記N1は、スレーブ装置120が起動完了後にデータブロックを連続送信するときに、前のデータブロックと次のデータブロックとの間に空けるべき間隔として規定されており、データブロック間クロック数と呼ぶ。
 上記操作を所定の回数(本実施の形態では40回)繰り返した後、スレーブ装置120は引き続きブートデータを送信する。
 このとき、ホスト装置100に期待される動作は、クロック番号0のタイミングで、DATライン113の4本の信号線上すべてにおいて開始ビット、すなわち「0」が検出され、チューニングブロック[1]を受信したことを検知し、クロック番号145のタイミングで終了ビット、すなわち「1」が検出され、チューニングブロック[1]の受信完了を検知することである。そして以降スレーブ装置120から繰り返し送信されるチューニングブロックの開始ビットおよび終了ビットを正しく検知し、計40個のチューニングブロックの受信を認識することである。
 しかしながら、本実施の形態のデータ転送システム起動直後のタイミングt9ではチューニングは未完了であるため、適切なサンプリングポイントが定まっていない。加えてDATラインごとにデータ転送の遅延が発生しうることから、例えばクロック番号0においてすべてのDATラインのデータを「0」と検知できるとは限らない。この場合、ホスト装置100はスレーブ装置120から送信されたチューニングブロック[1]をチューニングブロックと正しく認識できない。
 同様にホスト装置100がチューニングブロック[2]以降のチューニングブロックについても正しく認識できなければ、チューニングを実施できないままブートデータを受信することになり、正しくブートデータを取得するという本来の目的を達成できない。
 また、偶然チューニングブロック[1]の受信を正しく検知できたとしても、チューニングブロック[1]内のチューニングパターン読み取り結果と、予めホスト装置100に保持されている所定のチューニングパターンとが合致するとは限らない。これはチューニングブロック[1]を読み取る際のサンプリングポイントが適切ではなく、以降に受信するチューニングブロックを用いてサンプリングポイントの調整が必要であることを意味する。
 しかしサンプリングポイントを調整しても、以降のチューニングブロックの開始ビットを正しく検知できるとは限らず、またこの場合終了ビットも正しく検知できない。
 結果としてホスト装置100は40個のチューニングブロックを正しく受信できず、40個のチューニングブロックに続くブートデータの一部をチューニングブロックと誤認識することにより、ブートデータそのものを正しく受信することができなくなる。
 [3.2.本開示におけるチューニングブロック転送]
 以下図4、図6および図7を用いて、本開示におけるチューニングブロック転送について説明する。
 図4のチューニングパターンにおいて、ビット番号7および8は、全DATラインとも「0」が連続している。従ってデータがいくら遅延しても、サンプリングポイントによらずビット番号7および8の連続する「00」を打ち抜くことで、遅くともビット番号8を受信した時に開始ビットを検知することが可能である。
 図6は、ホスト装置がクロック番号8のタイミングにおいて、チューニングブロック[1]の開始ビットを検知した場合のタイミング図である。
 ホスト装置100は、遅くともクロック番号8までのタイミングでビット番号7および8における連続した「0」により開始ビットを検知する。このとき、ホスト装置100は、スレーブ装置120が送信した真のタイミングより最大8クロックずつ遅延してチューニングブロック[1]を受信する。このようにホスト装置100が開始ビットを受信する際、真のタイミングに対して遅延するクロック数の最大値を最大受信遅延クロック数と定義し、N2で表す。最大受信遅延クロック数N2はチューニングパターンに依存し、本実施の形態では8となる。
 ホスト装置100は開始ビットを受信してからチューニングブロック[1]の受信中クロック数をカウントし、クロック番号153のタイミングでチューニングブロック[1]の受信を終了する。
 ホスト装置100は、前のブロックの受信終了から次のブロックの受信開始まで、クロック数N1以上の間隔が空いていることを期待する。上記を満たすために、スレーブ装置120は、前のチューニングブロックの送信終了から次のチューニングブロックの送信開始まで、データブロック間クロック数N1に最大受信遅延クロック数N2を加えたクロック数(本実施の形態では16)以上の間隔を空ければよい。
 ホスト装置100が真の開始ビットより8クロック遅延してチューニングブロックを受信しているとき、クロック番号153が終了ビットに相当する。このとき、スレーブ装置120はすべてのDATラインをハイレベルにドライブしているため、ホスト装置100はクロック番号153のデータを終了ビット(「1」)と正しく検知できる。
 図7は、ホスト装置がクロック番号0のタイミングにおいて、チューニングブロック[1]を検知した場合のタイミング図である。
 この場合、ホスト装置100はスレーブ装置120が送信したチューニングブロック[1]の真の開始ビットを検知できている。従ってクロック番号145でチューニングブロック[1]が終了していることも検知可能である。
 さらに上記の場合、スレーブ装置120から送信されたチューニングパターンと予めホスト装置100に保持されているものとが合致する確率が高くなり、サンプリングポイントが適切であると判定される可能性が高い。
 なお、スレーブ装置120はチューニングブロック[1]送信終了から16クロック以上の間隔を空けて次のチューニングブロック[2]の送信を行うが、ホスト装置100から見たとき、チューニングブロック[1]の終了ビットから8クロック以上経過してから次のチューニングブロックを受信することになるので、問題は発生しない。
 なお、図6に示すように、ホスト装置100が真の開始ビットより8クロック遅延してチューニングブロックを受信したと認識した場合、受信したチューニングパターンは予めホスト装置100に保持されているものとは合致しない。その場合、ホスト装置100はサンプリングポイントが適切ではなかったと判定し、次回のチューニングブロック受信までに、サンプリングポイントを修正した上で、チューニングを実施すればよい。
 さらに本実施の形態におけるタイミングに関する数値(時間、クロック数など)は一例であり、他の数値でも構わない。なお、最大受信遅延クロック数N2は、使用するチューニングパターンのデータ構成に依存する。
 また本実施の形態においては、タイミングt8でDATラインをハイレベルにドライブして以降連続して(第2の)クロックを供給するという前提で説明した。しかし、ホスト装置100がチューニングブロックを読み取り、適切なサンプリングポイントであるかどうかの判定を完了するまで受信したチューニングブロックを保持する必要がある。しかしホスト装置100が何も制御をおこなわないと、次のチューニングパターンを受信してしまい、前に受信済のチューニングブロックが上書きされる恐れがある。その場合、ホスト装置100は終了ビット受信からN1で定義されるクロック数より短いクロック数経過後、クロック供給を一時停止することで、スレーブ装置120からの次のチューニングブロック送信を抑止することができる(これは図6、図7いずれの場合にも当てはまる)。
 また本実施の形態における説明では、使用する高速バスをSDR104モードとしたが、他のモードでも同様に成り立つ。なお、高速バスのモードによってはチューニングを必要としないモード(DDR50モードなど)がある。その場合、スレーブ装置120はチューニングブロックを複数回送信するが、ホスト装置100は受信したチューニングブロックを破棄しチューニングを実施しなくてよい。あるいは、チューニングを必要としないバスモードが設定されているとき、スレーブ装置120はチューニングブロックの送信を行わず、ブートデータのみ送信する、としてもよい。
 また本実施の形態において、スレーブ装置120より送信されるチューニングブロックの個数を40個としたが、他の固定値でも構わない。あるいは、ホスト装置100がスレーブ装置120内の所定の不揮発メモリ領域にチューニングブロック送信個数を記録し、次回の起動時にスレーブ装置120が上記設定された個数のチューニングブロックを送信させることも可能である。
 あるいは、ホスト装置100が40個のチューニングブロックの受信を完了するまでにチューニングが完了した時、例えばCMDライン112をハイレベルにドライブして、スレーブ装置120に対し以降のチューニングブロック送信を中止させてもよい。この場合、例えばホスト装置100が再びCMDライン112をローレベルにドライブすることにより、スレーブ装置120にブートデータの送信を指示することができる。
 また本開示は、図8に示すように、例えばタイミングt4およびt5の間にホスト装置100がスレーブ装置120に対して送信する初期化指示コマンドを発行することでチューニングブロックおよびブートデータの送信を指示する場合でも、同様に適用可能である。
 [4.まとめ]
 以上のように、本出願において開示する技術の例示として実施の形態を説明した。本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施の形態にも適用できる。
 本開示のホスト装置、スレーブ装置は、少なくとも電源ライン、クロックライン、コマンドラインおよびデータラインとで相互に接続される。また本開示のデータ転送システムは、相互に接続された前記ホスト装置および前記スレーブ装置により構成される。前記ホスト装置は、前記スレーブ装置と接続された後に、前記スレーブ装置に前記電源ラインで電源を供給し、前記スレーブ装置に第1の周波数および第1電圧値を有する第1のクロックを前記クロックラインで供給し、ハイレベルになっている前記コマンドラインをローレベルにドライブし、前記第1のクロックの供給を停止し、前記データラインがローレベルにドライブされた状態で前記スレーブ装置に第2の周波数および第2電圧値を有する第2のクロックを前記クロックラインで供給し、前記第2のクロックの供給後から第1の所定期間内に前記データラインがハイレベルにドライブされた場合であって、第2の所定期間内に前記スレーブ装置から少なくとも第3の所定期間の間隔を空けて前記データラインで複数個送信されるチューニングブロックを用いて打ち抜きタイミングを調整するチューニングを行い、前記スレーブ装置からブートデータを前記データラインで受信し、当該受信したブートデータを用いて起動を行う、これにより、コマンドを送受信するための信号線をローレベルにドライブしつつチューニングブロックを取得することが可能となる。
 また、本開示のホスト装置、スレーブ装置、データ転送システムにおいて、前記第3の所定期間は、前記スレーブ装置が起動した後のデータブロックを連続送信するときの前記データブロック間のクロック期間と、前記チューニングブロックに含まれるブロックパターンのデータ構成により決定されるクロック期間とで定められる。これにより、ホスト装置100はチューニングブロックの開始ビットを確実に捕捉することで所定個数のチューニングブロックを受信可能になる。よって、ホスト装置100は所定個数のチューニングブロックに続くデータをブートデータとして正しく受信することができる。
 また、本開示のホスト装置、スレーブ装置、データ転送システムにおいて、前記ブロックパターンには、少なくとも連続ビット列「00」もしくは「11」が含まれており、ビット列「0」もしくはビット列「1」を検出することにより、前記チューニングブロックの開始ビットを判定する。これにより、ホスト装置100はチューニングブロックの開始ビットを確実に捕捉することで所定個数のチューニングブロックを受信可能になる。よって、ホスト装置100は所定個数のチューニングブロックに続くデータをブートデータとして正しく受信することができる。
 本開示は、SDカードをはじめとするスレーブ装置と対応ホスト装置、及び前記ホスト装置及びスレーブ装置を有するデータ転送システムに適用することができる。
100 ホスト装置
101 電源
102 SoC
103 レギュレータ
104 SW
105 ホスト装置I/F
106 コントローラ
110 VDDライン
111 CLKライン
112 CMDライン
113 DATライン
113a DAT0ライン
113b DAT1ライン
113c DAT2ライン
113d DAT3ライン
120 スレーブ装置
121 SoC
122 レギュレータ
123 SW
124 スレーブ装置I/F
125 コントローラ
126 バックエンドモジュール

Claims (9)

  1.  スレーブ装置と、少なくとも電源ライン、クロックライン、コマンドラインおよびデータラインで接続されるホスト装置であって、
     前記スレーブ装置と接続された後に、前記スレーブ装置に前記電源ラインで電源を供給し、
     前記スレーブ装置に第1の周波数および第1電圧値を有する第1のクロックを前記クロックラインで供給し、
     ハイレベルになっている前記コマンドラインをローレベルにドライブし、
     前記第1のクロックの供給を停止し、
     前記データラインがローレベルにドライブされた状態で前記スレーブ装置に第2の周波数および第2電圧値を有する第2のクロックを前記クロックラインで供給し、
     前記第2のクロックの供給後から第1の所定期間内に前記データラインがハイレベルにドライブされた場合に、第2の所定期間内に前記スレーブ装置から少なくとも第3の所定期間の間隔を空けて前記データラインで送信される複数個のチューニングブロックを用いて打ち抜きタイミングを調整するチューニングを行い、
     前記スレーブ装置からブートデータを前記データラインで受信し、当該受信したブートデータを用いて起動を行う、
    ホスト装置。
  2.  前記第3の所定期間は、前記スレーブ装置が起動した後のデータブロックを連続送信するときの前記データブロック間のクロック期間と、前記チューニングブロックに含まれるブロックパターンのデータ構成により決定されるクロック期間とで定められることを特徴とする、
     請求項1に記載のホスト装置。
  3.  前記ブロックパターンには、少なくとも連続ビット列「00」もしくは「11」が含まれており、
     ビット列「0」もしくはビット列「1」を検出することにより、前記チューニングブロックの開始ビットを判定することを特徴とする、
     請求項2に記載のホスト装置。
  4.  ホスト装置と、少なくとも電源ライン、クロックライン、コマンドラインおよびデータラインで接続されるスレーブ装置であって、
     前記ホスト装置と接続された後に、前記ホスト装置から前記電源ラインで電源を供給され、
     前記ホスト装置から第1の周波数および第1電圧値を有する第1のクロックを前記クロックラインで供給され、
     ハイレベルになっている前記コマンドラインをローレベルにドライブされ、
     前記第1のクロックの供給を停止され、
     前記データラインがローレベルにドライブされた状態で前記ホスト装置から第2の周波数および第2電圧値を有する第2のクロックを前記クロックラインで供給され、
     前記第2のクロックの供給後から第1の所定期間内に前記データラインをハイレベルにドライブし、第2の所定期間内に少なくとも第3の所定期間の間隔を空けて前記ホスト装置に複数個のチューニングブロックを前記データラインで送信する、
    スレーブ装置。
  5.  前記第3の所定期間は、前記スレーブ装置が起動した後のデータブロックを連続送信するときの前記データブロック間のクロック期間と、前記チューニングブロックに含まれるブロックパターンのデータ構成により決定されるクロック期間とで定められることを特徴とする、
     請求項4に記載のスレーブ装置。
  6.  前記ブロックパターンには、少なくとも連続ビット列「00」もしくは「11」が含まれていることを特徴とする、
     請求項5に記載のスレーブ装置。
  7.  スレーブ装置と、少なくとも電源ライン、クロックライン、コマンドラインおよびデータラインで前記スレーブ装置と接続されるホスト装置を有するデータ転送システムであって、
     前記ホスト装置は、前記スレーブ装置と接続された後に、前記スレーブ装置に前記電源ラインで電源を供給し、
     前記ホスト装置は、前記スレーブ装置に第1の周波数および第1電圧値を有する第1のクロックを前記クロックラインで供給し、
     前記ホスト装置は、ハイレベルになっている前記コマンドラインをローレベルにドライブし、
     前記ホスト装置は、前記第1のクロックの供給を停止し、
     前記ホスト装置は、前記データラインがローレベルにドライブされた状態で前記スレーブ装置に第2の周波数および第2電圧値を有する第2のクロックを前記クロックラインで供給し、
     前記スレーブ装置は、前記第2のクロックの供給後から第1の所定期間内に前記データラインをハイレベルにドライブし、第2の所定期間内に前記スレーブ装置から少なくとも第3の所定期間の間隔を空けて前記ホスト装置に複数個のチューニングブロックを前記データラインで送信し、
     前記ホスト装置は、前記データラインで受信した前記複数個のチューニングブロックを用いて打ち抜きタイミングを調整するチューニングを行い、
     前記ホスト装置は、前記スレーブ装置からブートデータを前記データラインで受信し、当該受信したブートデータを用いて起動を行う、
    データ転送システム。
  8.  前記第3の所定期間は、前記スレーブ装置が起動した後のデータブロックを連続送信するときの前記データブロック間のクロック期間と、前記チューニングブロックに含まれるブロックパターンのデータ構成により決定されるクロック期間とで定められることを特徴とする、
     請求項7に記載のデータ転送システム。
  9.  前記ブロックパターンには、少なくとも連続ビット列「00」もしくは「11」が含まれており、
     前記ホスト装置がビット列「0」もしくはビット列「1」を検出することにより、前記チューニングブロックの開始ビットを判定することを特徴とする、
     請求項8に記載のデータ転送システム。
PCT/JP2021/046255 2021-02-16 2021-12-15 ホスト装置、スレーブ装置およびデータ転送システム WO2022176358A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP21899295.6A EP4296863A4 (en) 2021-02-16 2021-12-15 HOST DEVICE, SLAVE DEVICE AND DATA TRANSFER SYSTEM
JP2022534377A JP7320707B2 (ja) 2021-02-16 2021-12-15 ホスト装置、スレーブ装置およびデータ転送システム
CN202180010208.XA CN115226405A (zh) 2021-02-16 2021-12-15 主机装置、从机装置以及数据传送系统
US17/841,054 US11880225B2 (en) 2021-02-16 2022-06-15 Host device, slave device, and data transfer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-022560 2021-02-16
JP2021022560 2021-02-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/841,054 Continuation US11880225B2 (en) 2021-02-16 2022-06-15 Host device, slave device, and data transfer system

Publications (1)

Publication Number Publication Date
WO2022176358A1 true WO2022176358A1 (ja) 2022-08-25

Family

ID=82930572

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/046255 WO2022176358A1 (ja) 2021-02-16 2021-12-15 ホスト装置、スレーブ装置およびデータ転送システム

Country Status (5)

Country Link
US (1) US11880225B2 (ja)
EP (1) EP4296863A4 (ja)
JP (1) JP7320707B2 (ja)
CN (1) CN115226405A (ja)
WO (1) WO2022176358A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140266A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 電子デバイスシステムと電子デバイス
JP2013101636A (ja) * 2008-02-29 2013-05-23 Panasonic Corp ホスト装置用インタフェース装置、スレーブ装置用インタフェース装置、ホスト装置、スレーブ装置、通信システム、及びインタフェース電圧切り替え方法
JP2015062131A (ja) 2006-01-17 2015-04-02 メモリー テクノロジーズ リミティド ライアビリティ カンパニー Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス
JP2016046781A (ja) 2014-08-26 2016-04-04 キヤノン株式会社 記録再生装置、記録再生装置の制御方法及びプログラム
JP2018085662A (ja) * 2016-11-25 2018-05-31 キヤノン株式会社 電子機器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2004334486A (ja) * 2003-05-07 2004-11-25 Internatl Business Mach Corp <Ibm> ブートコードを用いた起動システム、及び起動方法
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
KR102320399B1 (ko) * 2014-08-26 2021-11-03 삼성전자주식회사 전원 관리 칩, 그것을 포함하는 모바일 장치 및 그것의 클록 조절 방법
US9886080B2 (en) * 2014-12-30 2018-02-06 Sandisk Technologies Llc Low voltage detection and initialization for non-volatile memory systems
JP2017097825A (ja) * 2015-11-16 2017-06-01 株式会社東芝 ホスト機器および拡張デバイス
US10129012B2 (en) * 2016-09-19 2018-11-13 Sandisk Technologies Llc Tuning circuitry and operations for non-source-synchronous systems
US11487341B2 (en) * 2018-08-09 2022-11-01 Nvidia Corporation Techniques for configuring a processor to execute instructions efficiently
KR20210069514A (ko) * 2019-12-03 2021-06-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 트레이닝 방법
WO2022113601A1 (ja) * 2020-11-24 2022-06-02 パナソニックIpマネジメント株式会社 ホスト装置、スレーブ装置およびデータ転送システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015062131A (ja) 2006-01-17 2015-04-02 メモリー テクノロジーズ リミティド ライアビリティ カンパニー Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス
JP2013101636A (ja) * 2008-02-29 2013-05-23 Panasonic Corp ホスト装置用インタフェース装置、スレーブ装置用インタフェース装置、ホスト装置、スレーブ装置、通信システム、及びインタフェース電圧切り替え方法
JP2010140266A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 電子デバイスシステムと電子デバイス
JP2016046781A (ja) 2014-08-26 2016-04-04 キヤノン株式会社 記録再生装置、記録再生装置の制御方法及びプログラム
JP2018085662A (ja) * 2016-11-25 2018-05-31 キヤノン株式会社 電子機器

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP4296863A4 (en) 2024-08-07
US20220308893A1 (en) 2022-09-29
CN115226405A (zh) 2022-10-21
US11880225B2 (en) 2024-01-23
JP7320707B2 (ja) 2023-08-04
JPWO2022176358A1 (ja) 2022-08-25
EP4296863A1 (en) 2023-12-27

Similar Documents

Publication Publication Date Title
JP4896450B2 (ja) 記憶装置
US8055808B2 (en) Semiconductor memory device and control method for semiconductor memory device
JP5341503B2 (ja) メモリデバイス、ホストデバイスおよびサンプリングクロックの調整方法
WO2011070747A1 (ja) 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム
JP2001256174A (ja) カードインタフェースを備えた情報処理装置、同装置に装着可能なカード型電子機器、及び同装置におけ動作モード設定方法
WO2018186456A1 (ja) ホスト装置及びリムーバブルシステム
JP6861348B2 (ja) スレーブ装置およびホスト装置
US20220137848A1 (en) Storage device and operating method of storage device
JP4588427B2 (ja) メモリシステムおよびホストとメモリカードとの間のデータ伝送速度設定方法
JP2019057229A (ja) 通信形式判定方法
JP7243923B2 (ja) ホスト装置、スレーブ装置およびデータ転送システム
JP6620313B2 (ja) ホスト装置、スレーブ装置及びリムーバブルシステム
JP7320707B2 (ja) ホスト装置、スレーブ装置およびデータ転送システム
WO2002048854A1 (fr) Carte à circuit imprimé, système de carte à circuit imprimé, et processeur de données
JP2018156506A (ja) ホスト装置、スレーブ装置及びリムーバブルシステム
KR100423017B1 (ko) 마이크로컴퓨터
US6917994B2 (en) Device and method for automatically generating an appropriate number of wait cycles while reading a nonvolatile memory
JP2017049873A (ja) ホスト装置、スレーブ装置及びリムーバブルシステム
JP7450143B2 (ja) スレーブ装置、ホスト装置
US20130019055A1 (en) Memory control device and method
WO2016132733A1 (ja) ホスト装置、スレーブ装置、インターフェイス半導体装置及びリムーバブルシステム
JPH09223203A (ja) 非接触icカード
JP6413077B2 (ja) ホスト装置、スレーブ装置、インターフェイス半導体装置及びリムーバブルシステム
CN118672486A (zh) 存储器系统
JPH1125241A (ja) Icカードリーダライタ

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2022534377

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 21899295

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2021899295

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021899295

Country of ref document: EP

Effective date: 20230918