Submit News

Peripheral Data transmission method for the dreamcast game system constructed using the maple bus

Abstract

To provide a new data transmission system between a game device and related peripheral devices, and a device using same. Serial transmission data is divided into an odd-numbered bit sequence and an even-numbered bit sequence. Each bit of the odd-numbered bit sequence data is distributed respectively between pulses of a first pulse sequence signal having a constant interval, thereby forming a first pulse sequence signal (SDCKA). Each bit of the even-numbered bit sequence data is distributed respectively between pulses of a second pulse sequence signal having a constant interval, thereby forming a second pulse sequence signal (SDCKB). The respective time axes are adjusted such that the clock component of the first pulse sequence signal is located in the data section of the second pulse sequence signal, and the clock component of the second pulse sequence signal is located in the data section of the first pulse sequence signal. Data is transmitted using these adjusted first and second pulse sequence signals (SDCKA, SDCKB).


Inventors:

Niizuma; Naoki (Tokyo, JP); Himoto; Atunori (Tokyo, JP)

Assignee:

Kabushiki Kaisha Enterprises (JP)

Appl. No.:

125382

Filed:

August 17, 1998

PCT Filed:

May 14, 1998

PCT NO:

PCT/JP98/02134

371 Date:

January 29, 1999

102(e) Date:

January 29, 1999

PCT PUB.NO.:

WO98/52331

PCT PUB. Date:

November 19, 1998

Foreign Application Priority Data


 

May 16, 1997[JP]

9-127654

 

Current U.S. Class:

710/72; 331/100; 331/101; 710/16; 710/65

Intern'l Class:

G06F 003/00; G06F 013/00

Field of Search:

710/72,16,65 332/101,100


References Cited [Referenced By]


U.S. Patent Documents

3909541

Sep., 1975

Bobilin.

 

3952296

Apr., 1976

Bates

345/197.

4539533

Sep., 1985

French

332/101.

5872999

Feb., 1999

Koizumi et al.

710/72.

Foreign Patent Documents

0 378 401

Jul., 1990

EP.

 

0 684 954

Nov., 1995

EP.

 

56-88342

Jul., 1981

JP.

 

62-232233

Oct., 1987

JP.

 

1-144752

Jun., 1989

JP.

 

1-152843

Jun., 1989

JP.

 

4-167896

Jun., 1992

JP.

 

9-46378

Feb., 1997

JP.

 

 

 

Other References


"Nikkei Electronics", Nov. 4, 1996, No. 675, pp. 170-171 in Japanese; English Translation attached.
Philips Semiconductors, "The I.sup.2 -bus and how to use it (including specifications)", Apr. 1995, pp. 1-24.
Philips Semiconductors/I.sup.2 -bus Internet Webpages, "I.sup.2 -bus: the worldwide standard for IC communication" and "About I.sup.2 -bus".


Primary Examiner: Lee; Thomas
Assistant Examiner: Peyton; Tammara
Attorney, Agent or Firm: Keating & Bennett, LLP


Claims




What is claimed is:

1. A data transmission system comprising:

a data transmitting device which is arranged to transmit data serially via a first data signal and a second data signal, said first data signal containing a first clock signal including a sequence of first pulses and odd-numbered bits of said data, the odd-numbered bits of data being arranged in the first data signal in order between the sequence of first pulses of said first clock signal;

said second data signal containing a second clock signal including a sequence of second pulses having the same frequency as said sequence of first pulses of said first clock signal and including even-numbered bits of said data, the even-numbered bits of data being arranged in order between the sequence of second pulses of said second clock signal;

the data bits in said first and second data signals being allocated such that a data bit in one of the first and second data signals is located at a timing corresponding to a clock signal component of the clock signal in the other of the first and second data signals.

2. The data transmission system according to claim 1, further comprising a data receiving device which is arranged to receive the first and second data signals and retrieve the data out of the received first and second data signals by alternately latching a potential level of one of said first and second data signals at the timing of the clock signal component of the other of said first and second data signals.

3. A data transmission system comprising:

a data transmitter which is arranged to transmit serially data bits of data by allocating the data bits of the data into a first data signal and a second data signal;

said first and second data signals being arranged to have a format including a data frame defined according to a transmission format and including a start pattern, a data pattern and an end pattern;

said start pattern having a data format wherein, while said first data signal is maintained at a predetermined value of a constant potential level, said second data signal including a first sequence of pulses is transmitted;

said data pattern having a data format that includes a sequence of clock pulses in each of said first and second data signals so that said data bits of the data alternately a successively allocated among said clock pulses being shifted relative to one another by a prescribed amount along a time axis; and

said end pattern having a data format wherein, while said second data signal is maintained at a predetermined value of a constant potential level, said first data signal including a second sequence of pulses is transmitted.

4. An information storage medium for use with a computer system which is installed in said data transmission system according to claim 3 for collecting control signals from a peripheral device, said information storage medium storing computer game software programs for causing said computer system to operate as a game device in response to control signals from a peripheral device.

5. The data transmission system according to claim 1, wherein said clock signal component is detected based on an edge of one of the pulses in said first and second clock signals.

6. A data transmission system comprising:

a data transmitter arranged to serially transmit data composed of plural data bits by allocating the data bits of the data into a first data signal and a second data signal;

said first data signal containing a first clock signal having a sequence of pulses and a first set of data bits including every other data bit of said data and arranged such that said every other data bit of said data included in said first set of data bits is allocated in order between said pulses of said first clock signal;

said second data signal containing a second clock signal having a sequence of pulses and a second set of data bits including every other data bit of said data not included in said first set of data bits and arranged such that said every other data bit of said data included in said second set of data bits is allocated in order between said pulses of said second clock signal; and

the data bits in said first and second data signals being allocated such that a data bit in one of said first and second data signals is located at a timing corresponding to a clock signal component of the clock signal in the other of said first and second data signals.

7. The data transmission system according to claim 6, further comprising a data receiver arranged to receive said first and second data signals and adapted to retrieve the data out of the received first and second data signals by alternately latching a potential level of one of said first and second data signals at the timing of the clock signal component of the other of said first and second data signals.

8. The data transmission system according to claim 6, wherein said clock signal component is detected based upon one of a rising edge and a falling edge of each pulse in said first and second clock signals.

9. A data transmission system:

a game device having a plurality of peripheral ports each arranged to send data to, and collect data from, a peripheral device, said game device executing a software program in response to data received from one of said plurality of peripheral ports;

at least one peripheral device connectable to one of said peripheral ports via a transmission path and arranged to receive data from, and send data to, said game device;

said game device and said peripheral device each including data control means for interactively transmitting data via said transmission path by converting data bits of the data to be sent into a pair of data signals each including a data frame;

one data frame of said pair of data signals including a start pattern carrying data start information, a data pattern and an end pattern carrying data end information;

said data pattern having a data format including a sequence of clock pulses in each of said pair of data signals and bits of the data being alternately allocated in order between said clock pulses in said pair of data signals, a timing of clock pulses being shifted between said sequences of clock pulses of said pair of data signals relative to each other by a period such that a data bit in one of said pair of data signals is located at a timing corresponding to a clock signal component of a clock pulse in the other of said pair of data signals;

said game device and said peripheral device each including data retrieving means for retrieving the data out of the received pair of data signals by alternately latching a potential level of one of said pair of data signals at the timing of the clock signal component of the other of said pair of data signals.

10. The data transmission system according to claim 9, wherein said start pattern has a data format such that a first of said pair of data signals transmits a first train of pulses while a second of said pair of data signals maintains a constant potential level; and

said end pattern has a data format such that a first of said pair of data signals transmits a second train of pulses while a second of said pair of data signals maintains a constant potential level.

11. A data communication system comprising:

a data generator for converting data into serial data on a time axis in a form of first and second serial data signals, the data generator converting data bits of said data by inserting the data bits between each pulse of a transmission clock pulse sequence and shifting the first and second serial data signals relative to each other by an appropriate amount on the time axis so that each pulse edge of one of the first and second serial data signals is located in a data section of the other of the first and second serial data signals.

12. The data communication system according to claim 11, further comprising a serial bus operatively connected to the data generator and receiving the first and second serial data signals from the data generator; and

a data receiver operatively connected to the serial bus and arranged to receive the first and second serial data signals from the data generator via the serial bus.

13. The data communication system according to claim 12, wherein the data receiver receives the first and second serial data signals and retrieves data out of the first and second serial data signals by alternately latching a potential level of one of the first and second serial data signals at a timing of a clock signal component of the other of the first and second serial data signals.

14. The data communication system according to claim 11, wherein said data generator includes a circuit for converting data to the first and second serial data signals, the circuit including at least one shift register, a shift clock and at least one selector.

15. The data communication system according to claim 14, wherein a plurality of even numbered bits of the data are supplied to input terminals of the at least one shift register and data is shifted by the shift clock and the shifted data is supplied from an output terminal of the at least one selector as serial data.

16. The data communication system according to claim 15, wherein a clock signal is input to the at least one selector and the at least one selector selects serial data from an output terminal of the at least one selector in accordance with a High level of the shift clock signal and selects a clock signal in accordance with a Low level of the shift clock signal.

17. The data communication system according to claim 14, wherein a plurality of odd numbered bits of the data are supplied to input terminals of the at least one shift register and data is shifted by the shift clock and the shifted data is supplied from an output terminal of the at least one selector as serial data.

18. The data communication system according to claim 17, wherein a clock signal is input to the at least one selector and the at least one selector selects serial data from an output terminal of the at least one selector in accordance with a High level of the shift clock signal and selects a clock signal in accordance with a Low level of the shift clock signal.

19. The data communication system according to claim 11, wherein serial clock data in the first and second serial data signals alternately form negative edges.

20. The data communication system according to claim 11, wherein the data receiver receives the first and second serial data signals and the data receiver latches a data section of one of the first and second serial data signals in accordance with a negative edge timing of a waveform of the other of the first and second serial data signals so that the data section is read out to produce reproduction data.

21. The data communication system according to claim 11, wherein the data receiver receives the first and second serial data signals and the data receiver latches a data section of one of the first and second serial data signals in accordance with a positive edge timing of a waveform of the other of the first and second serial data signals so that the data section is read out to produce reproduction data.

22. The data communication system according to claim 11, wherein the first and second serial data signals are generated such that falling edges of each of the first and second serial data signals always occur alternately when data is being transmitted in the other of the first and second serial data signals.

23. The data communication system according to claim 11, wherein said first and second serial data signals have a format including a data frame defined according to a transmission format and including a start pattern, a data pattern and an end pattern;

said start pattern having a data format wherein, while said first serial data signal is maintained at a constant potential level, said second serial data signal including a first sequence of pulses is transmitted;

said data pattern having a data format that includes a sequence of clock pulses in each of said first and second serial data signals including bits of data alternately and successively allocated among said clock pulses of said first and second serial data signals, said sequences of clock pulses being shifted relative to one another by a prescribed amount along a time axis; and

said end pattern having a data format wherein, while said second serial data signal is maintained at a constant potential level, said first serial data signal including a second sequence of pulses is transmitted.

24. The data communication system according to claim 23, wherein the data communication system is provided in a game device having a plurality of peripheral ports, said data pattern comprises a command and a parameter, said parameter comprises an address of one of a plurality of peripheral devices connected to the game device via the plurality of peripheral ports, an address of the peripheral port with which said one of said plurality of peripheral devices is connected and data to be transmitted from the game device to said one of said plurality of peripheral devices.

25. The data communication system according to claim 11, wherein said first serial data signal includes odd-numbered bits of said data and said second serial data signal includes even-numbered bits of said data to be transmitted to said at least one peripheral device.


Description




TECHNICAL FIELD

The present invention relates to interface technology for providing mutual connection between data processing devices, which conduct data processing, and peripheral devices, which conduct input/output of information, and the like, and more particularly, it relates to a new interface technology standard relating to connections between game devices and related peripheral devices.

BACKGROUND ART

Data transmission methods for use in data communications between the main unit of an image processing device and peripheral devices related thereto include the following. Philips, I.sup.2 C bus system

In this system, serial data and a serial clock are transmitted by two wires. The data and clock are physically separated, and data transmission/reception and reproduction are possible by the simplest method. The I.sup.2 C bus is described, or example, in Philips' I.sup.2 C bus instruction manual (January 1992). SGS--Thomson DS link system.

In this system, a data signal and strobe signals are transmitted by two wires. A clock signal is reproduced by means of the data signal and strobe signal. When the transmitted data changes to a different value, only the data signal changes. When the transmitted data is the same value, only the strobe signal changes. For example, if the transmitted data in the data signal changes from "0".fwdarw."1", or "1".fwdarw."0", then the strobe signal does not change. If the transmitted data in the data signal does not change, e.g., "0" .fwdarw."0", or "1".fwdarw."1", then the strobe signal only changes. Therefore, by adopting an exclusive-OR operation for the data signal and strobe signal, it is possible to reproduce a clock signal. The DS link system is introduced in Nikkei Electronics, Vol. 675, (Nov. 4.sup.th 1996, pp. 167-171). In consumer-oriented devices, such as game devices, it is necessary to use a data transmission system and interface connection standard which can be implemented at low cost. However, in the aforementioned I.sup.2 BUS system, since the transition edge of the data signal has the same timing as the transition edge of the clock, it is not possible to use the clock signal directly on the data reproducing (demodulating) side. Furthermore, in the latter DS link system, exclusive-OR logic is applied to the data signal and strobe signal, to reproduce a synchronizing clock. The data signal must be sampled using this clock. Therefore, the level of simplicity of the interface circuit structure does not adequately satisfy the conditions for domestic game devices, where low cost is a very important requirement.

Consequently, it is an object of the present invention to provide a data transmission system for an interface having an inexpensive circuit composition, which can be applied to an image processing device, such as a domestic game system. It is a further object of the present invention to provide a data transmission system for an interface, whereby data can be separated from a signal carrying data by means of a simple circuit composition.

It is a further object of the present invention to provide a game device and a related peripheral device comprising interfaces, whereby data can be separated from a signal carrying data by means of a simple circuit composition.

It is a further object of the present invention to provide basic technology for developing various types of peripheral devices, by proposing novel interface technology between a game device and peripheral device.

DISCLOSURE OF THE INVENTION

In order to achieve the aforementioned objects, the data transmission system according to the present invention is a data transmission system for transmitting data by distributing one item of serial data into first and second data signals, wherein the first data signal contains each of the odd-numbered bits of the serial data, respectively distributed between pulses of a first clock formed by means of a pulse sequence having a uniform interval; the second data signal contains each of the even-numbered bits of the serial data, respectively distributed between pulses of a second clock formed by means of a pulse sequence having the same frequency as the first clock signal; the first data signal is transmitted such that the pulse edge of its clock signal component is located in the data section of the second data signal on the time axis; and the second data signal is transmitted such that the pulse edge of its clock signal component is located in the data section of the first data signal on the time axis (FIG. 10, FIG. 11, FIG. 50, FIG. 54). Furthermore, in a data transmission system wherein a data frame defined according to a transmission format comprising, at the least, a start pattern carrying data start information, a data pattern carrying serial data, and an end pattern carrying data end information, are transmitted by distributing the data frame between a first and a second data signal, the data transmission system according to the present invention is a data transmission system, wherein the start pattern is created by setting the first data signal to a constant value and setting the second data signal as a first pulse sequence signal; the data pattern is created by forming the first data signal by distributing each of the odd-numbered bits of the serial data respectively between pulses of a second pulse sequence signal having a constant interval, and forming the second data signal by distributing each of the even-numbered bits of the serial data respectively between pulses of a third pulse sequence signal, which is shifted by a prescribed amount from the position on the time axis of the second pulse sequence signal; and the end pattern is created by setting the second data signal to a constant value, and setting the first data signal as a fourth pulse sequence signal. (FIG. 11, FIG. 12, FIG. 50, FIG. 54)

By means of this composition, it is possible to create a communications interface wherein the modulation and demodulation circuits can be composed relatively simply by means of a small number of data lines (namely, two data lines).

Preferably, the superimposed data is isolated by latching the level of one data signal of the first and second data signals at the pulse edge of the clock signal component of the other data signal. Thereby, it is possible to isolate the superimposed data by means of a simple circuit composition (FIG. 10, FIG. 28, FIG. 29, FIG. 50).

In a game device which requests transmission or reply of information required for a game by transmitting two data signals (SDCKA, SDCKB) simultaneously to a single or plurality of peripheral devices by means of a signal transmission path, the game device according to the present invention comprises: start pattern creating means for creating a start pattern represented by two data signals, wherein a first data signal is set to a constant value (or fixed value) state during a first time period, and a second data signal is set to a clock signal state during the first time period (FIG. 13(a), FIGS. 14, 58, 103b); data pattern creating means for creating a data pattern represented by two data signals, wherein data to be transmitted to the peripheral device is divided into two data sequences, and a first data signal is created by inserting each bit of the first data sequence respectively between pulses of a first clock signal, and a second data signal is created by inserting each bit of the second data sequence respectively between pulses of a second clock signal having the same frequency as, and a prescribed phase difference from, the first clock signal (FIGS. 10, 103b); end pattern creating means for creating an end pattern represented by two data signals, wherein the second signal is set to a constant value (or fixed value) state during a second time period, and the first signal is set to a clock signal state during the second time period (FIGS. 13, 58, 103b); and frame creating means for creating a frame represented by two data signals, containing the start pattern, the data pattern and the end pattern, and transmitting the frame as a transmission unit to the peripheral device (FIGS. 58, 103b).

Preferably, the data is serial data, the first data sequence is a data sequence comprising the odd-numbered bits of the serial data, and the second data sequence is a data sequence comprising the even-numbered bits of the serial data.

Furthermore, the prescribed phase difference is determined such that the pulse edge of the clock signal contained in one data signal of the two data signals representing the data pattern is located in the data section of the other data signal on the time axis, and the pulse edge of the clock signal contained in the other data signal is located in the data section of the aforementioned data signal on the time axis (FIGS. 10, 50).

The game device for implementing the foregoing data transmission method can readily separate out the data since either one or both of the two data signals comprises a transmission clock component. The modulation and demodulation circuit can be constructed relatively simply.

Preferably, the data pattern comprises a command and a parameter, and the parameter comprises, at the least, the address of the peripheral device connected to the signal transmission path which is to receive the frame (FIG. 7, FIG. 48). Since the signal format for data communications between the game device and peripheral device is standardized by a frame format, compatibility between the game device and a plurality of types of peripheral device can be readily guaranteed.

For the signal transmission path, wired data signal lines, or wireless radio communications channels (FIG. 95), or optical communications channels (FIG. 96), or a combination of these, can be used.

In a peripheral device for a game device which sends information required for a game to a game device having one input/output port or a plurality of input/output ports by transmitting two data signals simultaneously, the game device according to the present invention comprises:

start pattern creating means for creating a start pattern represented by two data signals, wherein a first signal is set to a constant value (or fixed value) state during a first time period, and a second signal is set to a clock signal state during the first time period; data pattern creating means for creating a data pattern represented by two data signals, wherein data to be transmitted to the game device is divided into two data sequences and each bit of the first data sequence is inserted respectively between pulses of a first clock signal, and each bit of the second data sequence is inserted respectively between pulses of a second clock signal having the same frequency as, and a prescribed phase difference from, the first clock signal; end pattern creating means for creating an end pattern represented by two data signals, wherein the second signal is set to a constant value (or fixed value) state during a second time period, and the first signal is set to a clock signal state during the second time period; and frame creating means for creating a frame represented by two data signals, containing the start pattern, the data pattern and the end pattern, and transmitting the frame as a transmission unit to the game device.

Preferably, the data is serial data which is readily divided into two data sequences, the first data sequence is a data sequence comprising the odd-numbered bits of the serial data, and the second data sequence is a data sequence comprising the even-numbered bits of the serial data. As well as serial data, block data can also be handled by means of a buffer for gathering data.

Preferably, the prescribed phase difference is determined such that the pulse edge of the clock signal contained in one data signal of the two data signals representing the data pattern is located in the data section of the other data signal on the time axis, and the pulse edge of the clock signal contained in the other data signal is located in the data section of the one data signal on the time axis (FIG. 10, FIG. 50). Thereby, it is possible readily to isolate the data superimposed on one data signal by means of the other clock.

Preferably, the data pattern comprises a command and a parameter, and the parameter comprises, at the least, the address of the input/output port of the game device which is to receive the frame (FIG. 48, FIG. 57).

Preferably, the data pattern comprises a command and a parameter, the parameter comprises, at the least, a source address indicating the address on the transmission path of the peripheral device transmitting the frame, and this source address is created on the basis of peripheral device identification information representing the type of the peripheral device already recorded by the peripheral device, and information relating to the input/output port to which the peripheral device is connected as indicated by the game device (FIG. 58).

In a peripheral device for conducting data communications with a game device comprising one input/output port or a plurality of input/output ports by means of a data transmission path connecting to one of the input/output ports of the game device, the peripheral device according to the present invention comprises: first storage means for previously storing identification information for the peripheral device representing the type of the peripheral device; second storage means for storing input/output port information representing the input/output port to which the data transmission path is connected, as indicated by the game device; and source address creating means for creating a source address for the peripheral device which is appended to the data to be transmitted to the game device, on the basis of the peripheral device identification information and the input/output port information (FIG. 58).

By means of this composition, the game device is able to identify from the received transmission data the address of the peripheral device on the data transmission path and the type of that peripheral device.

In a peripheral device for conducting data communications with a game device by means of a data transmission path connecting to any one of a single input/output port or plurality of input/output ports provided in the game device, the peripheral device according to the present invention comprises: a single base connector which connects to the data transmission path; a single expansion connector or plurality of expansion connectors which connect to the data transmission path via the base connector, in order to connect other peripheral devices to the data transmission path; and an input/output controller for conducting data communications with the game device via the base connector; wherein the input/output controller comprises: first storage means for previously storing peripheral device identification information representing the fact that the device is a peripheral device which is to be connected directly to the game device; second storage means for storing input/output port information representing the input/output port to which the data transmission path is connected, as indicated by the game device; connection identifying means for creating connection information representing the connection status of other peripheral devices by identifying whether or not a further peripheral device is connected to any of the expansion connectors; and source address creating means for creating a source address containing the peripheral device identification information, the input/output port information and the connection information, which is to be appended to the transmission data (FIG. 58).

Preferably, the identifying means determines whether or not there is a connection at the expansion sockets by identifying the voltage level of a particular terminal of the expansion connectors, which is connected to a level shift circuit composed such that a bias voltage is supplied by the further peripheral device.

In an expansion peripheral device which connects to an expansion connector of the aforementioned peripheral device, the expansion peripheral device according to the present invention comprises: first storage means for storing connector identification information representing the number of an expansion connector as indicated by the input/output controller via the expansion connector, after connecting to the expansion connector; second storage means for previously storing expansion peripheral device information representing the fact that the device is a peripheral device which is to be connected to the expansion connector; third storage means for storing input/output port information representing the input/output port to which the data transmission path is connected, as indicated by the game device by means of the data transmission path, the base connector and the expansion connector; and source address creating means for creating a source address containing the expansion peripheral device information, the input/output port information, and the connection information, which is to be appended to is transmission data (FIG. 59).

In a game device comprising a single input/output port or a plurality of input/output ports for connecting via a main data transmission path (M bus) a base peripheral device composed such that a single expansion peripheral device or a plurality of expansion peripheral devices can be connected thereto via auxiliary data transmission paths (LM bus), the game device according to the present invention comprises: an input/output controller for conducting intermittent data communications with any of the peripheral devices by means of frame signals; wherein data communications are conducted according to a format whereby a relevant peripheral device responds to instructions from the input/output controller; the frame signals comprise: a start pattern representing the start of a data pattern, a data pattern carrying transmission data, and an end pattern representing the end of a data pattern; the data pattern comprises a command and a parameter; the parameter comprises a destination address and a source address; and both the destination address and the source address are created by including information relating to the main data transmission path used in communications, the base device/expansion device classification of the peripheral device involved in communications, and the auxiliary data transmission path used in communications (FIG. 58, FIG. 59).

Preferably, the auxiliary data transmission paths are connected respectively in parallel to the main data transmission path, and direct data communications are conducted between the game device and expansion peripheral devices.

Preferably, the base peripheral devices and the expansion peripheral devices each respectively hold inherent information containing information on the type of peripheral device and information inherent to the device, and the game device reads out this inherent information by means of the data transmission. The game device can identify compatibility between the game application and the peripheral device by referring to the inherent information.

Thereby, it is possible to avoid the use of game devices which are incompatible with so-called "plug and play" systems or applications.

Preferably, the main data transmission path is constituted by two data lines, and two data signals formed by dividing the frame signal are used to transmit the two data lines, respectively. Thereby, it is possible to apply the data transmission method according to the present invention to a game device.

In a base peripheral device for a game device, to which a single expansion peripheral device or a plurality of expansion peripheral devices can be connected by means of respectively provided auxiliary data transmission paths, and which is connected to a game device comprising a single input/output port or a plurality of input/output ports by means of a main data transmission path, the base peripheral device according to the present invention comprises an input/output controller for conducting intermittent data communications with the game device by means of frame signals; and the data communications are conducted according to a format whereby the input/output controller responds to instructions from the game device; the frame signals comprise: a start pattern representing the start of a data pattern, a data pattern carrying transmission data, and an end pattern representing the end of a data pattern; the data pattern comprises a command and a parameter; the parameter comprises a destination address and a source address; and both the destination address and the source address are created by including information relating to the main data transmission path used in communications, the master/slave classification of the peripheral device involved in communications, and the auxiliary data transmission path used in communications (FIG. 58 and FIG. 59).

The base peripheral for a game device according to the present invention further comprises a connector for connecting to the main data transmission path, and a plurality of expansion connectors for connecting the main data transmission path to the auxiliary data transmission paths in parallel by means of the connector.

Preferably, the base peripheral device comprises storage means for storing inherent information including the type of peripheral device and information inherent to the device, and this inherent information is transmitted by means of the data communications in response to a request from the game device.

Preferably, the base peripheral device uses the data transmission method according to the present invention by means of a composition wherein the main data transmission path is constituted by two data lines, and two data signals formed by dividing the frame signal are used to transmit the two data lines, respectively.

By connection to a game device having a plurality of input/output ports, the peripheral device of the foregoing composition conducts data communications with the game device, and creates a source address for itself on the data transmission path by means of information relating to the input/output port as indicated by the game device, and information representing the type of peripheral device held by the device itself.

In an expansion peripheral device for a game device which connects to a game device by means of an auxiliary data transmission path, a base peripheral device to which expansion peripheral devices can be connected, and a main data transmission path, the expansion peripheral device according to the present invention comprises an input/output controller for conducting intermittent data communications with the game device by means of frame signals; and data communications are conducted according to a format whereby the input/output controller responds to instructions from the game device; the frame signals comprise: a start pattern representing the start of a data pattern, a data pattern carrying transmission data, and an end pattern representing the end of a data pattern; the data pattern comprises a command and a parameter; the parameter comprises a destination address and a source address; and both the destination address and the source address are created by including information relating to the main data transmission path used in communications, the base device/expansion device classification of the peripheral device involved in communications, and the auxiliary data transmission path used in communications (FIG. 59).

Preferably, the main data transmission path is constituted by two data lines, the auxiliary data transmission path is constituted by two data lines in the upstream direction and two data lines in the downstream direction, and two data signals formed by dividing the frame signal are used to transmit the two data lines, respectively.

The expansion peripheral device of the foregoing composition conducts data communications with a game device comprising a plurality of input/output ports by means of a peripheral device (base peripheral device) having a plurality of expansion connectors connected in parallel to any one of the input/output ports. It creates a source address used in data communications by means of information relating to the input/output port, as indicated by the game device, and information relating to the expansion connector used, as indicated by the peripheral device. The source address is not simply an address, but also contains certain information. This type of function of the peripheral device is suitable for plug and play systems, and the like.

The information storage medium according to the present invention stores programs for causing a computer system to operate as the aforementioned game device (host) or peripheral device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustrative diagram showing examples of a host (game device) 1, peripheral device 2 and expansion peripheral device 3;

FIG. 2 is a block diagram showing a host control system;

FIG. 3 is a block diagram illustrating connection relationships between a host and devices;

FIG. 4 is a block diagram illustrating relationships between a host, upper devices and lower devices;

FIG. 5 is a block diagram illustrating the allocation of absolute positions;

FIG. 6 is a block diagram illustrating that the devices have positional permeability when viewed from the host;

FIG. 7 is a diagram illustrating the composition of one frame of transfer data;

FIG. 8 is a block diagram illustrating the composition of an interface from the software side;

FIG. 9 is a block diagram illustrating transmission protocol levels between a host and device;

FIG. 10 is a diagram illustrating a data transmission system;

FIG. 11 is a diagram illustrating a standard format of a transmission frame;

FIG. 12 is a diagram illustrating a transmission frame format comprising a CRC option;

FIG. 13 is a diagram illustrating (a) a start pattern and (b) an end pattern of a synchronizing pattern;

FIG. 14 is a diagram illustrating a CRC option start pattern;

FIG. 15 is a diagram illustrating an SDCKB occupancy permission pattern;

FIG. 16 is a diagram illustrating a reset pattern;

FIG. 17 is a diagram illustrating a communications mode between a host and device function;

FIG. 18(a) is a diagram illustrating an aspect of the M bus where data communications are conducted intermittently according to a format whereby the device functions respond to commands from a host; FIG. 18(b) is a diagram illustrating an example where the data to be transmitted is long, and the data is transmitted intermittently using a plurality of transmission frames;

FIG. 19 is a diagram giving an approximate illustration of the operation of a device;

FIG. 20 is a diagram illustrating an absolute position (AP) setting procedure;

FIG. 21 is a block circuit diagram illustrating a host MIE;

FIG. 22 is a block circuit diagram illustrating the operational principles of a frame encoder;

FIG. 23 is a timing chart illustrating the operation of a frame encoder;

FIG. 24 is a block circuit diagram illustrating the operational principles of an alternate shift register;

FIG. 25 is a timing chart illustrating the operation of an alternate shift register (parallel-to-serial conversion);

FIG. 26 is a block circuit diagram illustrating the operational principles of a frame decoder;

FIG. 27 is a timing chart illustrating the operation of a frame decoder;

FIG. 28 is a block circuit diagram illustrating the operational principles of an alternate shift register (serial-to-parallel conversion);

FIG. 29 is a timing chart illustrating the operation of an alternate shift register;

FIG. 30 is a block diagram giving an approximate illustration of the general composition of a standard controller;

FIG. 31 is a block diagram illustrating a standard controller MIE;

FIG. 32 is a block diagram illustrating a bus switching section which is data-permeable (position-permeable);

FIG. 33 is a block circuit diagram illustrating a U-device MIE;

FIG. 34 is a block circuit diagram illustrating an L-device MIE;

FIG. 35 is a flowchart illustrating identification of a transmission pattern in an MIE;

FIG. 36 is a flowchart illustrating the formation of a standard format frame signal;

FIG. 37 is a flowchart illustrating formation of a frame signal of a format with CRC option;

FIG. 38 is a flowchart illustrating operation by means of an SDCKB occupancy pattern;

FIG. 39 is a flowchart illustrating transmission of a reset pattern;

FIG. 40 is a flowchart illustrating a reception operation in an MIE;

FIG. 41 is a flowchart illustrating processing in a case where a start pattern is detected;

FIG. 42 is a flowchart illustrating processing in a case where a start pattern comprising CRC is detected;

FIG. 43 is a flowchart illustrating an example where inherent information held by the device is read out by the host;

FIG. 44 is a diagram illustrating a plurality of modes for connecting a host, base devices and expansion devices;

FIG. 45 is a diagram giving a conceptual illustration of the relationship between a host and functions (base devices and expansion devices).

FIG. 46 is a diagram illustrating data communications between a host, base device and expansion device, by means of a layered model;

FIG. 47 is a diagram illustrating connection relationships between a base device and expansion devices;

FIG. 48 is a diagram illustrating the composition of frame data;

FIG. 49 is a diagram illustrating a Time Out;

FIG. 50 is a diagram illustrating data transmission by means of an SDCKA signal and SDCKB signal;

FIG. 51 is a diagram illustrating a start pattern and an end pattern;

FIG. 52 is a diagram illustrating an SDCKB occupancy permission pattern;

FIG. 53 is a diagram illustrating a reset pattern;

FIG. 54 is a diagram illustrating a frame format;

FIG. 55 is a diagram giving an approximate illustration of data transmission between a host and peripheral device (base device or expansion device);

FIG. 56(a) is a diagram illustrating how data communications are conducted intermittently by means of a format whereby devices respond to commands transmitted to the devices by the host; FIG. 56(b) is a diagram illustrating an example where data to be transmitted is divided into a plurality of data and transmitted intermittently by means of a plurality of transmission frames, when the data to be transmitted is larger than the volume that can be transmitted by a single transmission frame;

FIG. 57 is a diagram illustrating all AP values for a host, base devices and expansion devices;

FIG. 58 is a diagram illustrating an AP setting procedure (absolute address) for a base device;

FIG. 59 is a diagram illustrating an AP setting procedure (absolute address) for an expansion device;

FIG. 60 is a diagram illustrating frame data transfer between a host, base device and expansion device;

FIG. 61 is a diagram illustrating a normal communications procedure between a host and base device (or expansion device);

FIG. 62 is a diagram illustrating an SDCKB occupancy procedure between a host and base device;

FIG. 63 is a block diagram illustrating a host MIE;

FIG. 64 is a block diagram illustrating the composition of a base device;

FIG. 65 is a block diagram illustrating the composition of a base device MIE;

FIG. 66 is a block diagram illustrating a connection between a base device and an expansion device;

FIG. 67 is a diagram illustrating a procedure in a case where a base device receives data from a host;

FIG. 68 is a diagram illustrating a procedure in a case where a base device receives data of a volume larger than the transmission and reception buffer from the host;

FIG. 69 is a diagram illustrating a procedure in a case where data is transmitted from a base device to a host;

FIG. 70 is a diagram illustrating a procedure in a case where data of a volume larger than the capacity of the MIE transmission and reception buffer is transmitted from a base device to a host;

FIG. 71 is a diagram illustrating a "Device Request" command;

FIG. 72 is a diagram illustrating an "All Status Request" command;

FIG. 73 is a diagram illustrating a "Device Reset" command;

FIG. 74 is a diagram illustrating a "Device Kill" command;

FIG. 75 is a diagram illustrating a "Data Transfer" command;

FIG. 76 is a diagram illustrating a "Get Condition" command;

FIG. 77 is a diagram illustrating a "Get Media Info" command;

FIG. 78 is a diagram illustrating a "Block Read" command;

FIG. 79 is a diagram illustrating a "Block Write" command;

FIG. 80 is a diagram illustrating a "Get Last Error" command;

FIG. 81 is a block diagram showing an example of a base device (game controller) having a relative address;

FIG. 82 is a block diagram showing an example of a base device (game controller) having an absolute address;

FIG. 83 is a block diagram showing an example of an expansion device (LCD cartridge) having a relative address;

FIG. 84 is a block diagram showing an example of an expansion device (LCD cartridge) having an absolute address;

FIG. 85 is a block diagram showing an example of an expansion device (memory cartridge) having a relative address;

FIG. 86 is a block diagram showing an example of an expansion device (memory cartridge) having an absolute address;

FIG. 87 is a block diagram showing an example of an expansion device (vibrating cartridge) having a relative address;

FIG. 88 is a block diagram showing an example of an expansion device (vibrating cartridge) having an absolute address;

FIG. 89 is a block diagram showing an example of an expansion device (light gun cartridge) having a relative address;

FIG. 90 is a block diagram showing an example of an expansion device (light gun cartridge) having an absolute address;

FIG. 91 is a block diagram showing an example of an expansion device (sound input cartridge) having a relative address;

FIG. 92 is a block diagram showing an example of an expansion device (sound input cartridge) having an absolute address;

FIG. 93 is a block diagram showing an example of an expansion device (sound output cartridge) having a relative address;

FIG. 94 is a block diagram showing an example of an expansion device (sound output cartridge) having an absolute address;

FIG. 95 is a diagram illustrating an example where an M bus is constituted by a wireless system (radio);

FIG. 96 is a diagram illustrating a further example where an M bus is constituted by a wireless system (optical transmission);

FIG. 97(a) is a diagram illustrating an M bus connector of a game controller; FIG. 97(b) is a diagram illustrating an LM bus connector of a game controller;

FIGS. 98(a) and 98(b) are diagram illustrating a further example of a game controller;

FIG. 99 is a side view illustrating an example of a socket of an M bus connector;

FIG. 100(a) is a side view illustrating an M bus connector plug; FIG. 100(b) is a top view of this plug; FIG. 100(c) is a front view of this plug;

FIG. 101 is a diagram of a connector provided on the peripheral device (base device) side of an M bus cable;

FIG. 102(a) is a top view of an LM bus connector socket; FIG. 102(b) is front view of this plug;

FIG. 103(a) is a top view of an LM bus connector plug; and FIG. 103(b) is a front view of this plug.

BEST MODE FOR CARRYING OUT THE INVENTION

Summary of Composition

Firstly, an outline of the system composition is described with reference to FIG. 1 and FIG. 2. FIG. 1 is an illustrative diagram for describing a game device comprising a computer system. FIG. 2 is a block diagram for describing a control system for this game device.

The game device (host) 1 comprises: a CPU 1a for executing game programs, and the like; a ROM 1b for storing control programs, data, OS, and the like, for the game device; a CD-ROM device 1c for storing game application programs and data; a bus controller id for controlling data transfer between the CPU 1a and other sections; a RAM 1e for storing programs and data for the CPU 1a, which is used in data processing; a drawing processor 1f for generating image signals from drawing data; a sound processor 1g for forming sound signals from sound data; a peripheral interface 1h for relaying data transfer between the CPU 1a and external peripheral devices; and the like. A portion of the RAM 1e is used as a working RAM for peripheral data processing, thereby enabling a so-called DMA operation. An image signal and sound signal are supplied to a monitor 4 (e.g. TV monitor), and video images and sounds are output. The peripheral devices comprise basic peripheral devices 2 and expansion peripheral devices 3. The basic peripheral devices 2 are connected to the peripheral interface 1h via a connector 1i, and the expansion peripheral devices 3 are connected to the basic peripheral devices 2. The basic peripheral devices 2 and expansion peripheral devices 3 are connected electrically (or by logic structure) to the host in parallel. The basic peripheral devices 2 are, for example, game controllers, and the expansion peripheral devices 3 are, for example, sound input devices, sound output devices, light ray gun modules, vibrating devices, memory devices, or the like.

Here, in the first mode of implementation (first interface standard) described below, the peripheral devices are investigated in terms of the function that they perform, and they are divided into U device function and L device function. This classification takes into account the fact that, in addition to cases where a single peripheral device forms a single function, there are also cases where a plurality of functions are formed by a single peripheral device, and cases where a single function is realized by a plurality of peripheral devices.

On the other hand, in the second mode of implementation (second interface standard) described below, the peripheral devices are divided into basic peripheral devices and expansion peripheral devices according to the connection relationships between the devices.

The modes for implementing the present invention are broadly classified into a first mode of implementation and second mode of implementation.

First Mode of Implementation

Initially, the meaning of terminology used in the first interface standard according to the present invention is described with reference to the drawings.

Firstly, data obtained by expanding data on a time series is called "serial data". A signal line which exchanges data in the form of serial data is called a "serial bus". A serial bus which connects a game device and peripheral devices by means of the interface standard according to the present invention is called an M bus (M-Bus).

The registration system identification number allocated initially to the device function of each peripheral device is called the "device ID". A plurality types, for example, 256 types of device ID can be prepared. It is also possible to have a plurality of the same device numbers at a single port.

The section whereby a peripheral device can be connected to the peripheral controller of the game device via the M bus is called a "port". The M bus enables the active connection of a plurality of ports. It is, for example, possible to support 16 ports, but this mode of implementation relates to an example where four ports (port A, port B, port C, port D) are supported.

As shown in FIG. 3, the game device is called the "host", and one function of a peripheral device connected thereto is called a "device function". Since "device function" indicates a function of a device, rather than the device (product) itself, in addition to cases where a single function is realized by a single device, it is also possible to divide the function of a single device into a plurality of functions, each of which is taken as a device function. On the M bus, there is one host device, which is connected to device functions in a tree configuration. Each device function appears as though it is present on the same M bus. A plurality of device functions, for example, 14 device functions, can be connected to a single port. The device functions allow the peripheral devices of the game device to function as, for example, a game controller, game pad, joystick, keyboard, imitation control device, imitation gun, recording device, sound device, and the like.

As shown in FIG. 4, the device functions are divided into two types: "upper (U) device function" and "lower (L) device function". The U-device functions can be connected to the host. The U-device functions have the capacity to control L-device functions. The L-device functions are based on the premise that they are connected, (or can connect) with a U-device function. An M bus which links an L-device function to a U-device function is called an "LM bus".

Unless at least one U-device function is provided at a port, that port cannot be used. Principally, game device controllers form U-device functions, and expansion (peripheral connected) devices form L-device functions. The M bus can be connected, for example, to a maximum of 14 L-device functions.

Furthermore, it is possible to connect a U-device function to a U-device function. In this case, the connected U-device function becomes an L-device function. It is unnecessary for the U-device functions and L-device functions to be separated physically, and it is possible for a further device function separated logically within a U-device function to form an L-device function.

For example, within the device function-controlling IC (e.g., microcomputer or micro-controller) of the peripheral device, the digital control sections and the analogue control sections can be set by function as U-device functions and L-device functions, respectively, and when an analogue control section, namely, an L-device function, is not in use, it is possible to disable that section.

As FIG. 5 shows, numbers are allocated to each device function in order from port A, such that any one of plurality of device functions can be accessed directly by the host at each port of the host. The identification number (or symbol) for access allocated to each device function is called the "absolute position (AP)".

On the M bus, a plurality of device functions are allocated to a single port of the host. The relationship between the number of ports on the M bus and the number of APs is expressed by the following equation:

(Maximum number of ports).times.(Maximum number of APs allocated to one port)=constant

In the M bus according to the mode of implementation, the "constant" is taken to represent one byte. In this case, (4 ports (max. 16 ports)).times.(APs for max. number of ports)=1 byte.

Of the 16 APs, one AP is reserved for the host port, so there is a maximum of 15 APs allocated to any single port. Therefore, a maximum of 15 device functions can be used at a port. Moreover, since one U-device function is connected to a port, the maximum number of L-device functions at any port will be 14. The number range that can be used at a port is determined for each port by the APs allocated to the device functions. For example, the AP will be composed as follows:

Bit 76543210

AP pppp - - - -

Here, "pppp" is the port number (port A="0000", port B="0001", port C="0010", port D="0011"), and "- - - -" is the serial number ("0000" (denary of "0")-"1111" (denary of "15")). Accordingly, the APs for a maximum of device functions is fifteen, and fifteen device functions can be set at one port.

Indicated in binary values, the AP value of the device function is "00000001"-"00001111" at port A, "00010001"-"00011111" at port B, "00100001"-"00101111" at port C, and "00110001"-"001111111" at port D.

Indicated in denary values, the above values are 1-15, 17-31, 33-47, 49-63, and in hexadecimal values, #01-#0F, #11-#1F, #21-#2F, and #31-#3F.

The AP of each port of the host viewed from the device function is always the smallest AP value usable at that port, and at port A, it is #00, at port B, it is #10 (16), at port C, it is #20 (32), and at port D, it is #30 (48). The device function and host can identify the port to which it is connected by the leading four bits of the AP. Access to a device function specifies a device function which is accessed by this AP.

As designating an AP allocated to each device function is at the same time the designation of a device function, the host can access each device function of the peripheral device directly. Therefore, as shown in FIG. 6, viewed from the host, the host appears to be connected to each device function directly. In other words, each device appears to be connected to the same bus.

The data exchange between host and device function is not conducted by conventional one-way communications, but rather by using certain specific instructions, such that data appropriate to that time and place can be transmitted and received. These instructions are called "commands". The command data is called a "parameter".

One cycle of transmission data is constituted by one frame (e.g., 256 bytes) comprising a command+parameter, as shown in FIG. 7. The parameter may include AP data, data size, and data, or data may be omitted.

In principle, the host accesses a device function by issuing a command. When the device function has prepared the corresponding data, it issues a command to the host and sends the data. On the M bus, a maximum of 254 commands, for example, can be prepared, and a maximum of 253 bytes of data can be transmitted.

A location for connecting an expansion device for expanding the functions of the peripheral device, such as a game controller functioning as a game operating input device, is called an "expansion socket." In principle, L-devices are connected to expansion sockets. A standard game controller may comprise two expansion sockets, for example. The M bus may be provided with an equal number of expansion sockets to the number of L-device functions, for instance, 14 in the case of this mode of implementation.

A circuit which converts certain data to serial data for the M bus, such that it can be communicated via the M bus, is called an "M bus I/F engine" (MIE)". M bus standard devices all comprise MIEs of this kind. The host incorporates a host MIE, the U-device functions, a U-device function MIE, and the L-device functions, an L-device function MIE.

As shown in FIG. 8, in order for the host to access a device function, it is always necessary to operate via software (M bus driver) which exercises general control over the device functions. The device functions are controlled and managed by the M bus driver. This M bus driver manages the device ID (function identification number), AP (absolute position), and port, etc., and it controls and manages the reception and transmission of commands, the data format, and the like. Commands can be increased by improving (upgrading) and augmenting the M bus driver.

On the M bus, all device functions are obliged to have information particular to themselves (inherent information) recorded according to a prescribed format. This device function information is called "device status".

The device status records the product name, device ID, licence, model number, destination, LM bus number, and the like, as management data, and the standby current consumption and maximum current consumption, etc., as electrical data (hardware information). The device status is managed and utilized by the M bus driver and application program interface (API); for example, it enables the product name and connection capacity of a peripheral device to be identified, and allows the current for all ports to be controlled, on the basis of the maximum current consumption, and the like.

FIG. 9 gives an approximate illustration of the proposed scope of the present interface standard. The application software performed in the host conducts the data communication with the device functions in the peripheral devices via the software called API, or directly by giving instructions to the M bus driver. Commands formed by the M bus driver in accordance with the instructions are supplied via the host MIE, cable, peripheral device MIE, and MIE controller to control software, which forms the nucleus of the device functions of the peripheral device. This control software sends a reply corresponding to the command in question to the application software performed in the host, via the MIE controller, peripheral device MIE, cable, host MIE, and M bus driver. It is possible to provide a plurality of device functions in a peripheral device, and in this case, it is possible for each device function to share use of an MIE. Here, the MIEs and connecting cables, etc. represent physical levels, and the M bus driver and MIE controller represent logic levels.

Next, data transmission on the M bus will be described. On the M bus, data transmission is carried out by a synchronized serial system. The connecting cables comprise a total of four lines: a power line pair (Vcc, GND), and a data line pair (SDCKA, SDCKB: two-way). If necessary, a shield wire for shielding the connecting cable in order to prevent noise is added. Data transmission and reception uses a two-way communications half-duplex system, which is set to an appropriate data transfer speed, for example, 2 Mbps.

The principles of data transmission are now described with reference to FIG. 10. Data is transmitted by means of a serial data clock (SDCK)A and serial data clock (SDCK)B, which propagate a data line. When transmitting data, the serial data clocks A and B comprise a clock component, and they alternately form a negative edge (falling edge), as shown in FIG. 10. In other words, as shown in the data pattern section shown in FIG. 11, data bits are inserted between each pulse of the transmission clock pulse sequence, and the serial data clocks A and B are shifted relatively to each other by an appropriate amount on the time axis (a time shift whereby the pulse edge of one signal is positioned in the data section of the other signal). On the receiving side, the data section of one signal is latched in accordance with the negative edge timing of the waveform of the other signal, and this data section is read out to produce data (reproduction data). The data is transferred starting from the most significant bit (MSB), for example. A circuit for carrying out data transmission in this way can be constructed relatively simply. Moreover, the data latch timing may also be based on the positive edge (rising edge) of the signal.

According to this system, it is possible to lower the transmission frequency in a data transmission path, compared to an I.sup.2 BUS or DS-link system. For example, in order to transmit at a data transfer speed of 10 Mbit/s using an I.sup.2 BUS or DS-link system, it is necessary to operate the data transfer medium at 10 MHz. However, using the present system, since 10 Mbit of data is transmitted by dividing it between two data lines which carry 5 Mbit each, theoretically, it is possible to obtain a data transfer rate of 10 Mbit/s using a 5 MHz data transfer clock on the data lines. Furthermore, since the pulse width is lengthened by the insertion of data between the clock pulses, in the corresponding sections, the transmission frequency falls by an equivalent amount. Since a lower transmission speed is satisfactory, circuit design is simplified.

FIG. 11 and FIG. 12 show examples of signal transmission formats. A transmission format comprises: a start pattern, data pattern, and end pattern, and if necessary, CRC (Cyclic Redundancy Check) bits are added.

FIG. 11 shows a standard transmission format. Data transmission is conducted in frame units (smallest unit). The composition of one frame in the standard format begins with a start pattern (START), which indicates the start of data transmission, and then comprises a 256-byte-long data pattern (DATA), and an end pattern (END). The "D" symbols shown in the data pattern represent sections carrying the "0" and "1" bit information of the data.

FIG. 12 shows an example of a format which incorporates the CRC option, wherein an error correction function is added to the standard data format. A cyclic redundancy check (CRC), for example, may be used as an error correction method. In data transmission using a CRC option, a CRC code pattern is added after the data which is the object of the CRC, as illustrated in the data pattern in FIG. 12.

The portions outside the data pattern in the transmission format described above form information patterns which carry specific information. The information patterns are defined by the number of signal pulses (transmission clocks) for which either of the data lines SDCKA or SDCKB propagate the other signal line whilst in an "L" level state. Information patterns may include, for example, synchronizing patterns, data line occupancy permission patterns, reset patterns, and the like. Synchronizing patterns include: start patterns as illustrated in FIG. 13(a), end patterns as illustrated in FIG. 13(b), and start patterns with CRC option as illustrated in FIG. 14.

A start pattern is a synchronizing pattern transmitted prior to the aforementioned data pattern. If the MIE on the receiver side detects four negative edges of data line SDCKB whilst the data line SDCKA is at level "L", the subsequent pattern is read as a data pattern and buffered using a memory. The end pattern indicates the end of the data pattern. If the MIE on the receiver side detects two negative edges of data line SDCKA whilst the data line SDCKB is at level "L", then this confirms that the data pattern has ended and indicates proper completion of the process.

The start pattern with CRC option represents the START pattern when a CRC option is added. If the MIE on the receiver side detects six negative edges of the SDCKB line whilst the data line SDCKA is at level "L", then it is identified as data transmission comprising a CRC option. Error inspection is conducted with respect to the data section, using the 16 bits prior to the END pattern as CRC data.

FIG. 15 shows an example of a data line occupancy permission pattern whereby the host permits the receiver side to occupy one of the data lines. In an occupancy permission pattern relating to occupancy of data line SDCKB, the SDCKB line has 8 negative edges whilst SDCKA is at level "L". When the MIE on the receiver side detects the SDCKB occupancy permission pattern, then it is possible to occupy SDCKB whilst SDCKA is at "L", starting from the subsequent negative edge of SDCKA. The occupancy of SDCKB is cancelled by the following positive edge of SDCKA.

For example, it is possible to send output data from a light gun used in a shooting game device to the game device by occupying the data line SDCKB. Data is transferred by using only the data line SDCKB, and data line SDCKA indicates the occupancy time (period).

FIG. 16 shows a reset pattern. The reset pattern comprises 14 negative edges of data line SDCKB whilst data line SDCKA is at level "L". When the MIE on the receiver side detects the reset pattern, it identifies this as a reset request from the host. The device then initializes the MIE and erases the AP. No data apart from this is initialized.

Next, the transmission protocol in data communications between host and device is described with reference to FIG. 17.

Firstly, in principle, the host has the right of priority to transmit commands. Communications are conducted in a form whereby a corresponding device function responds to a command from the host. Therefore, all transmission protocols start with transmission of a command from the host. FIG. 18(a) gives an illustration of this. Data is transmitted from the host to the device function when the need arises. Therefore, on the M bus and LM bus, intermittent data communication is carried out between the host and a plurality of device functions. If the data to be transmitted exceeds the prescribed length for one transmission frame, then the data is divided into a plurality of sections as shown in FIG. 18(b), and each of the divided data sections is transmitted by a plurality of transmission frames (see FIG. 70 described below).

The host application program accesses the bus driver in order to obtain data from the device function of a particular peripheral device. The driver creates an AP, forming an address, and a command, and the MIE sends frame data carrying the AP and command to the M bus. In a normal state, the device functions connected to the bus are at standby awaiting a command from the host. The MIE at the peripheral device receives the frame data, and transfers the command to the control program of the device function via the MIE controller.

If the control program detects its own AP, it sends back a response to the relevant command via the MIE controller. The MIE creates frame data containing the return command and the host AP, and outputs this to the bus. The host receives this frame data, thereby obtaining a response to the transmitted command. The device function returns to a command standby state.

In this way, the host can obtain required information from a device function.

Next, an overview of the processing implemented in the device functions is described with reference to FIG. 19. When a power line is connected to the peripheral device and power is supplied, the device function executes an initialization process for setting initial hardware values, and the like. Thereupon, an AP setting process is implemented to set the AP value of the device function. In the AP setting process, the connected device functions are identified, and APs are allocated to the device functions, etc. By giving the device function an AP, it is possible to conduct communications between the host and device function using the AP, thus realizing a normal operational state.

In a normal operational state, when a device function receives a reset command from the host, the AP is reset (software reset). When a bus reset command is received, all the device functions connected to the bus at the corresponding port are initialized, and the APs are reset (hardware reset). The host can also order an operation to be prohibited or suspended, by transmitting a command to each device function.

The process of AP setting in the device functions is now described with reference to FIG. 20.

(1) After completing initialization, the host transmits a Device Request in sequence starting from port A, to confirm whether any device functions are connected to the ports. The Device Request is a command which requires any device function which has not been allocated an AP to send back its Device Status, which gives the information inherent to the device. It is transmitted in sequence starting from port A and ending at port D.

(2) After completing initialization, a U-device function disconnects the LM bus from the M bus and waits for a Device Request from the host. If it receives a Device Request from the host, it sends back a Device Status to the host in response. At this stage, there is only one device function at a port receiving a device request at any one time. There is no response from device functions which have not been allocated an AP.

(3) When the host receives a Device Status from a device function, it determines the connection relationship and device attributes on the basis of this data, and it allocates an AP to the device function and transmits an AP Assign carrying the allocated AP value to the device function. APs are allocated consecutively within a set range for each port, and the host detects the relationship between the AP and device function. If the device function attributes are not those expected by the applicational software (outside range of use), then the operation of that device function can be terminated by sending a Device Kill command. If the device function is a U-device function, then the L-device functions connected thereto are also terminated, thereby allowing the whole port to be disabled.

(4) The device function reads in the AP Assign from the host, stores its allocated AP, and then transmits a Device Reply to the host as a response from the device function. Thereafter, the host accesses the device function using the device ID and AP. (5) Since the host detects the number of device function LM buses currently set from the device status, if there is an LM bus, the host will transmit LM-Bus Connect such that one of the LM buses connects to a device function. If there is no LM-Bus Connect, then the processing in (10) below is implemented.

(6) When a U-device function receives LM-Bus Connect, it connects one LM bus to the M bus. It then sends a Device Reply to the host.

(7) When the host receives a Device Reply, it transmits a Device Request. In this case, since the U-device function has already been allocated an AP, it does not respond.

(8) When an L-device function receives a Device Request from the host, it sends a Device Status to the host in response.

(9) The processing from (3) to (8) is repeated until all LM buses are connected (APs are allocated to all device functions).

(10) The host sends a Function Start in order to start the operation of each device function.

(11) When the device function receives Function Start, it transfers from the AP setting operation to normal operation. After transferring, the device function sends a Device Reply to the host.

(12) Upon receiving the Device Reply, the host sends a Function Start to the next AP.

(13) Each device function is activated in sequence by repeating the processing in (11) and (12), until the device function at the final AP transmits a Device Reply, whereupon the AP setting process is completed.

(14) The device functions having transferred to normal operation, the host proceeds with AP setting for the next port.

In this way, an AP is set for each device function connected to a particular port.

Next, the processing involved when a cable is connected or disconnected whilst the host is operating (active line connection/disconnection) is described.

(1) The host transmits a Device Request to each port at prescribed intervals. Ports not in use can be excluded from the access operation.

(2) If a Device Status is transmitted from a port which was not previously connected, the host recognizes that a device function has been connected. Upon recognizing this, it outputs a reset pattern to that port, and erases the APs for all device functions. It then carries out an AP setting process to renew the APs and rebuild the connection relationships.

(3) If the host transmits a command to a device function and there is no response from the device function, the host recognizes that that device function has been disconnected. If a device function is disconnected, the host erases the APs and rebuilds the connection relationships.

Next, data transmission and reception processing during normal operation is described.

(1) Right of priority of command transmission

A command is always transmitted initially by the host, and the device functions respond to this command. If a device function initially transmits a command to the host, this is not recognized. The host does not retransmit commands unless there is a request from the device function side.

(2) Data format

The transmission and reception data is constituted by commands and parameters (AP data, data size, data). When a signal is actually transmitted along a data line, the MIE adds a start pattern and an end pattern to it, before the command and at the end of the parameters, respectively. Thereby, a single frame is constructed and transmitted in the order: "start pattern"+"command pattern"+"AP data"+"data size" +"data"+"end pattern".

The frame is analysed by the MIE of the receiving side, thereby confirming the start pattern and end pattern. The details of the commands and parameters are described later.

(3) Host

The MIE used by the host is governed by the M bus driver. Read-out of device function data is not carried out automatically by the MIE, but rather is implemented by the respective software via the M bus driver. Respective software shall herein mean software of an upper level compared to the M bus driver, for example, library software or game software. In a single access operation, it is possible to communicate with one device function having the specified AP. In order to read in data from a plurality of device functions in 1 INT, the corresponding number of device functions are accessed. 1 INT (interrupt) is a timing unit of the TV screen rewriting, namely approximately 1/60 seconds. The port connection check transmits a Device Request to unconnected ports, and if there is a reply, that port is set to "connected". When not transmitting, a port is always set to input (reception) mode. The type of command to be used differs according to the device function and the time and circumstances, so it is set according to the device function specification.

(4) Device functions

The MIEs for peripheral devices are controlled via an MIE controller by the CPU, or the like, which executes the device function programs. The device functions maintain a reception state until a command is transmitted by the host. The device functions then generate their own data necessary for communications. Furthermore, asynchronously to the access from the host, the device functions create data to be output as the function of that particular device (e.g., operation input device such as a control pad or joystick). If there is a request from the host, the data is transmitted within a prescribed period of time. The host transmits the same command to all device functions connected to the same port. The device functions analyze the received command and parameters, and send back a command only if this matches their own AP. If it does not match their own AP, they must not respond to the host. The type of command used differs according to the device function, and the time and circumstances, so the details thereof are determined according to the device function specification.

(5) Prohibited operations

Direct access from one device function to another device function connected to the same port is prohibited. Communication between device functions must be conducted via the host. Furthermore, commands which can only be issued by the host must not be used.

Exceptional processing will now be described. Exceptional processing is special processing prepared for devices wherein data transmission and reception cannot be controlled by commands. An example of such a device is a light gun used in a shooting game.

(1) If the host recognizes that the device function has a light gun device ID, then it switches the M bus from normal mode to SDCKB occupancy mode. Mode switching is not possible from the device function side. Prior to switching, the host transmits a mode change, and after confirming that a light gun is connected, it switches the M bus mode to SDCKB occupancy pattern.

Upon entering SDCKB occupancy mode, all devices at that port assume SDCKB occupancy mode, and device functions other that those operating in SDCKB occupancy mode do not receive commands. For example, if a light gun, memory card and vibrating unit are connected to port A, the device function operating in the SDCKB occupancy mode is only the light gun. During the occupancy mode, only the light gun is controlled by the host, and the other device functions, namely the memory card and vibrating unit, do not operate (cannot be controlled by the host).

(2) To return from SDCKB occupancy mode, the host carries out cancellation processing. When the SDCKB occupancy mode is terminated, the system immediately returns to normal mode.

(3) In the case of a light gun, the time period for screen rewriting in 1 INT omitting the vertical blanking period, in other words, the time period for drawing the TV screen, forms the SDCKB occupancy mode.

When the period of drawing the screen is finished and the blanking period has started, the system switches directly to normal mode, and data transmission and data reception is conducted for the device functions at other ports.

(4) In order to achieve a light gun function, a section containing a photoreceptor element is taken as one device function, and sections containing a trigger and direction keys, analogue keys, and the like, are taken as a further device function. In this way, it is possible to eliminate conventional problems, such as disabling of the direction keys when the light gun is used. Furthermore, since the light gun forms a single device function unit, it can be connected to other expansion devices. By this means, it is possible to provide game applications having new functions.

Next, examples of commands are described. Commands can be divided broadly into control commands and error commands. Control commands comprise the basic commands of: Device Request, Status Request, All Status Request, AP Assign, LM-Bus Connect, Function Start, Host Data Transmit, Data Request, All Data Request, Mode Change, Device Sleep, Device Request, Device Kill, Device Status, Device Reply, Device Data Transmit, and the like. In addition, there are expansion commands which do not belong to these basic commands. Expansion commands differ according to the device function and M bus driver.

Device Request is a command from the host requesting a device function which does not have an AP allocated to send back a Device Status.

Status Request is a command from the host requesting a device function specified by an AP to send back a Device Status (this data is inherent device information (Fixed Device Status)).

All Status Request is a command from the host requesting all device status (namely, both Fixed Device Status and Free Device Status) from a device function specified by an AP. The device function sends back the Fixed Device Status followed by the Free Device Status by means of Device Data Transmit.

AP Assign is a command whereby the host allocates an AP to a device function. It can only be executed during the AP setting process. If the device function is in normal operation, it does not process the command but sends back a Command Refusal.

LM-Bus Connect is a command from the host requesting a device function to connect one LM-Bus to the M Bus. Upon receiving LM-Bus Connect, the device functions connect the LM-Bus pertaining to them, one bus for each function. If a device function is in normal operation, it does not process the command, but sends back a Command Refusal.

Function Start is a command from the host causing a device function specified by its AP to start normal operation. If the device function receives this command and starts normal operation, it sends back a Device Reply. No initialization takes place. If the device function is in normal operation, it does not process the command, but sends back a Command Refusal.

Host Data Transmit is a command whereby the host transmits data to a device function. The data contents differ depending on the device function. The details of this data are determined by the device function specification. If the data size is 0, then the device function does not receive and it sends back a Command Refusal. During AP setting also, the device function does not receive and sends back a Command Refusal.

Data Request is a command from the host requesting a device function to transmit specified data. A plurality of request data numbers can be specified in the data region. If the data size is 00h, then the device function does not process the command and sends back a Command Refusal. During AP setting also, the device function does not process the command and sends back a Command Refusal.

All Data Request is a command from the host requesting a device function to transmit all its data. During the AP setting process, the device function does not receive the command and sends back a Command Refusal.

Mode Change is a command whereby the host switches the mode of the port M bus. When switching to SDCKB occupancy mode, after a Mode Change command has been issued, the Device Reply is confirmed and the specified port is switched to SDCKB occupancy mode. If the device function does not correspond to the operations in SDCKB occupancy mode, then it does not process the mode change and sends back a Command Refusal. During the AP setting process also, the device function does not process Mode Change, but sends back a Command Refusal.

Device Sleep is a command whereby the host temporarily suspends a specified device. When a device function has been suspended, it sends back a Device Reply and thereafter can only receive Function Start. During the AP setting process, the device function does not process Device Sleep, but sends back a Command Refusal.

Device Reset is a command whereby the host applies a software reset to a specified device function to initialize it. Software reset is not a resetting (initializing) which uses hardware functions such as IC reset terminals, but is for example the initializing of internal RAMs or registers on programs (software). As software reset enables the selection of portions to be reset in the program, it is possible to retain portions, such as the set state of the IC terminal, for which initialization is not desired. AP values which have already been allocated are not initialized. After initialization, the device function sends back a Device Reply and starts normal operation. During AP setting, the device function does not process Device Reset, but sends back a Command Refusal.

Device Kill is a command whereby the host forbids the operation of a device function. The device function can only process this command before AP Assign in the AP setting sequence. The device function waits at standby current consumption, and cannot receive any commands. In order to activate the device function, the hardware must be reset or the power turned off. Hard reset is conducted by resetting (initializing) using hardware functions such as IC reset terminals. It is also possible to conduct an equal initialization processing in the program. This processing is equal to the power on reset at the start of power supply which performs IC initialization at the same time. In contrast to the soft reset, no selection of the portion to be initialized is possible. If the device function is in normal operation, it will not process this command, but send back a Command Refusal. To suspend a device function temporarily during normal operation, the Device Sleep command is used.

Device Status is a command whereby a device function sends a Fixed Device Status to the host. This Fixed Device Status is described later.

Device Reply has a wide range of use as a device function reply transmitted by a device function. The AP in the data contents indicates the device function's own AP, thereby specifying the source of the Device Reply.

Device Data Transmit is a command whereby a device function transmits data in accordance with a request from the host. The data contents differ depending on the device function. If th e data size is 00h (h indicates hexadecimal notation), the host will not process the command, but will send back a Command Refusal. Depending on circumstances, a command such as a retransmission, Device Status, or the like, may be issued.

Next, the error commands will be described. Error commands comprise basic commands, such as Command Refusal, Command Unknown, Transmit Again, LM-Bus Error, Device Error, and the like. In addition to this, there are also expansion commands, which are intrinsic to the device function and M bus driver. Intrinsic commands herein do not mean standard commands held by the driver but commands prepared for specific device functions.

Command Refusal is a command whereby the host or device function refuses to receive data corresponding to an incoming command. This command is also transmitted if a command which is incompatible with the host or function's operation is received. This command prohibits improper access.

Command Unknown is a command transmitted from a device function to the host when the device function receives a command from the host which it does not recognize.

Transmit Again is a command sent by the host or a device function requesting the same data to be transmitted once again, when there has been an error of some kind in the data received.

LM-Bus Error is a command from a device function to the host giving notification that an error has occurred in the LM bus. This command is sent to the host in cases where, for instance, LM-Bus Connect is received from the host, but there is no LM bus to connect.

Device Error is a command from a device function notifying the host that an error of some kind has occurred in the device function and that the device function is in the process of resetting.

The Device Status information mentioned above will now be described. The Device Status stores data directly such that it cannot be rewritten or erased. For example, it is not permitted to calculate a certain value to give a status value or text.

The Device Status comprises: Fixed Device Status and Free Device Status.

Fixed Device Status relates to a permanent device status which is an essential description of the device, e.g., total 108-byte format. Unless all items are described, operation and connection of the device cannot be guaranteed.

The Free Device Status relates to a device status which can be used freely depending on the individual device function. For example, the capacity must be 148 bytes or less.

Fixed Device Status comprises the following items:

(1) Device ID

This describes the ID and attributes of the device function. By previously registering and assigning an ID to each device function, the host is able to identify what type of device function is connected by reading its ID. Therefore, those used by the M bus are registered by product in advance for those having an M bus license.

(2) Maximum data size

This describes the maximum size of data output by the device function.

(3) Number of LM buses

This describes the number of LM buses held by the device function.

(4) Product name

The product name is described in English or romaji using ASCII code. This may be different from the actual commercial name. The product name is also subject to prior registration.

(5) Destination code

This describes the region of sale of the product. For example, North America, Europe, Japan, etc. This code makes it possible to determine compatibility between peripheral devices and game applications for particular target regions.

(6) Licence

This shows the product licence in English or romaji using ASCII code.

(7) Standby current consumption

This describes the current consumed during temporary suspension, in units of 0.1 mA.

(8) Maximum current consumption

This describes the maximum current consumed, in units of 0.1 mA.

On the other hand, Free Device Status relates to areas of information which can be set freely by the product planners, developers, designers, programmers, or the like. The host can obtain this information from a device function by means of the All Device Request command. When this information region is used in application software, and the like, it is necessary to ensure compatibility of data sequences, etc. in advance.

The MIE of the host shall be specifically called a peripheral controller. FIG. 21 shows an example of a block circuit diagram for a peripheral controller (MIE) provided at the host.

In this diagram, a clock divider 51 creates a clock for supplying to each processing block of the controller from a system clock, and by varying the frequency ratio of the supplied clock, it is possible to alter the transmission (transfer) rate, and the like.

Instruction register 52 is a 32-bit register into which instructions sent from the application etc. to the peripheral devices are written via the main bus. The contents written to this register are transferred to a port controller 57 and frame controller 58.

Write buffer 53 is a 256-byte RAM into which data for transfer is written. Interrupt controller 54 is a controller for controlling interrupts due to transmission, reception, or errors of different kinds.

Status register 55 is a 32-bit register indicating the status of the main controller. Read buffer 56 is a 256-byte RAM for holding received data.

Port controller 57 is a controller for controlling ports involved in data transmission and reception. By controlling a three-state buffer 68 of a transmission port selected by a command, outputs SDCKA and SDCKB of a first and a second selector 64 and 65 are directed to the selected port. A reception port is selected by controlling a third and a fourth selector 66 and 67.

Frame controller 58 is a controller for controlling frame composition in terms of output pattern, data length, and the like.

Frame encoder 59 is controlled by the frame controller 58 and it generates and outputs information patterns.

Alternate shift register 60 is controlled by the frame controller, and it is a register for (P/S) converting parallel data in the write buffer to serial data, and alternately outputting data and a clock to SDCKA and SDCKB. A CRC calculating section is provided within the alternate shift register, and CRC processing is applied to the data in accordance with commands from the frame controller.

The first selector 64 is controlled by the frame controller 58, and it outputs SDCKA by selecting the outputs of the frame encoder 59 or the output of the alternate shift register 60.

The second selector 65 is controlled by the frame controller 58, and it outputs SDCKB by selecting the output of the alternate shift register 60 or the output of the frame encoder 59.

The third selector 66 selects a reception port in accordance with commands from the port controller 57, and it supplies SDCKA received via a buffer amp 69 to a frame decoder 61 and alternate shift register 62.

The fourth selector 67 selects a reception port in accordance with commands from the port controller 57, and it supplies SDCKB received via a buffer amp 69 to a frame decoder 61 and alternate shift register 62.

Frame decoder 61 analyzes the composition of received frames, reflects this in the Status Register 55, and controls alternate shift register 62.

Alternate shift register 62 is controlled by the frame decoder 61, and is an (S/P) register for converting received serial data to parallel data. The alternate shift register 62 also comprises a CRC calculating circuit for carrying out error inspection of the received signal.

The HV latch signal controller is activated by the frame controller 58. For example, when the frame controller 58 has transmitted an SDCKB occupancy permission pattern, the frame decoder is deactivated and the HV latch signal controller is activated. When the HV latch signal controller receives SDCKB after an SDCKB occupancy permission pattern has been transmitted, a latch signal is supplied to an HV counter (omitted from drawing). The HV counter comprises a horizontal position counter and vertical position counter, which output values corresponding to a position on a screen. For example, in a shooting game, when the trigger of a gun aimed at a TV screen is pulled, SDCKB is output by the gun. This SDCKB is used to identify the aim (shooting) position of the gun on the screen by means of the HV counter.

FIG. 22 is a circuit diagram illustrating the operational principles of the frame encoder 59. In this diagram, 591 is a flip-flop, 592 is a counter, 593 is a comparator and 594 is a logic gate.

FIG. 23 is a timing chart for describing the operation of the frame encoder 59.

When a write pulse is supplied to the frame encoder 59, this circuit assumes an active state. The SDCKA at output Q of the flip-flop 591 is set to level "L" by the rising edge of the write pulse. SDCKA forms an enable input to the counter 592, which starts a count of the clock CLK supplied thereto. The counter 592 advances a count value CNT OUT through "0", "1", "2", . . . "7", "8". This count value is supplied to comparison input A of the comparator 593. An output pattern set value n is supplied to the comparison reference input B of the comparator 593. For example, if a "start pattern" is generated, then the frame encoder 59 decodes this command and supplies "9" as a set value n. If the two inputs match, the comparator 593 outputs CMP OUT from output terminal EQ, which is supplied to preset terminal IPR of the flip-flop 591. Thereby, the SDCKA at output Q of the flip-flop 591 is set to level "H". SDCKB is obtained by synthesizing SDCKA and a CLKB signal having half the frequency of clock signal CLK at the OR gate 594.

In this way, output pattern set values corresponding to a start pattern, reset pattern and end pattern, etc. are supplied, and when a write pulse is input, the SDCKA is set to level "L", and for SDCKB a pattern signal having a prescribed umber of falling edges can be obtained.

FIG. 24 is a circuit diagram illustrating the operational principles of the alternate shift register 60. In this diagram, 601 is a shift register for converting parallel data to serial data; 602 is a dual-input selector; 603 is a shift register for converting parallel data to serial data; and 604 is a dual-input selector.

FIG. 25 is a timing chart describing the operation of the alternate shift register 60. A plurality of even-numbered bits D6, D4, D2, D0 for data transmission are supplied respectively to a plurality of D input terminals of the shift register 601, and the data is shifted by means of a shift clock SHIFT CLKA having the timing illustrated in the diagram, and it is supplied from output terminal Q to the A input terminal of the selector 602 as serial data. A clock CLKA as shown in the diagram is input to the B input terminal of the selector 602. The selector 602 selects the serial data from output terminal Q in accordance with level "H" of the shift clock SHIFT CLKA, and it selects clock CLKA in accordance with level "L" of SHIFT CLKA.

Therefore, an SDCKA signal, wherein data D6, D4, D2, D0 are superimposed on clock CLKA at prescribed intervals, is obtained at output terminal Y of the selector 602. Similarly, a plurality of odd-numbered bits D7, D5, D3, D1 for transmission are supplied respectively to a plurality of D input terminals of the shift register 603, and the data is shifted by means of a shift clock SHIFT CLKB having the timing illustrated in the diagram and supplied from output terminal Q to the A input terminal of the selector 604 as serial data. A clock CLKB as shown in the diagram is input to the B input terminal of the selector 604. The selector 604 selects the serial data from output terminal Q in accordance with level "H" of the shift clock SHIFT CLKB, and it selects clock CLKB in accordance with level "L" of SHIFT CLKA. Therefore, an SDCKB signal, wherein data D7, D5, D3, D1 are superimposed on clock CLKB at prescribed intervals, is obtained at output terminal Y of the selector 604. The sections "D0"-"D7" shown in signals SDCKA and SDCKB have a level "H" or a level "L" depending on their data value.

FIG. 26 is a circuit diagram showing a compositional example of a frame decoder 61. In this diagram, 611 is a counter, 612 is a composite flip-flop consisting of a plurality of flip-flops, 613 is a counter, and 614 is a composite flip-flop consisting of a plurality of flip-flops. FIG. 27 is a timing chart describing the operation of the frame decoder 61.

Of the elements in the diagram, the counter 611 and flip-flop 612 operate in the detection of a start pattern. When the SDCKA is at level "H", the counter operation is disabled. When SDCKA takes level "L", the counter operation is enabled, and the falling edges of SDCKB are counted. By counting the number of falling edges of SDCKB whilst SDCKA is at level "L", a count output is supplied to the flip-flop. The counter output is supplied to the flip-flop 612 at the rising edge of SDCKA.

As shown in FIG. 27, if the number of falling edges of the SDCKB is four during the period in which SDCKA is at "L" level (start pattern, cf. FIG. 13), flip-flop 612 outputs the start pattern detection.

For detecting the end pattern, the number of falling edges of the SDCKA whilst SDCKB is at "L" level is counted via the counter 613 and flip-flop 614. Through this rising edge of the SDCKB, the count output 613 is incorporated in the counter 613. As shown in FIG. 27, when two falling edges of the SDCKA are counted whilst SDCKB is at "L" level, the flip-flop 612 outputs the end pattern detection. When the number of falling edges of the SDCKA during the period in which the SDCKB is at "L" level is unspecified, the flip-flop 614 outputs a frame error detection. In the normal operation mode, the data pattern and the end with two falling edges of the SDCKA follow the start pattern with four falling edges of the SDCKB (cf. FIG. 11).

Furthermore, although not illustrated in FIG. 27, after commencement of the reception, when the counter 611 detects six falling edges of the SDCKB whilst SDCKA is at "L" level, the flip-flop 612 outputs the detection of a start pattern with CRC (FIG. 14). In the operation mode using the CRC, the data pattern, CRC data, and the end pattern follow the CRC start pattern with six falling edges of the SDCKB (cf. FIG. 12).

Furthermore, if the counter 611 detects the falling edges of the SDCKB eight times whilst SDCKA is at "L" level, then the flip-flop 612 outputs the detection of SDCKB occupancy permission pattern (cf. FIG. 15). When the pattern is detected, the operation mode shifts to the SDCKB occupancy permission operation mode. In the SDCKB occupancy permission operation mode, light-gun is useable. The SDCKB occupancy permission mode is reset by the SDCKB occupancy permission operation mode reset pattern (rising edge of the SDCKA).

If counter 611 detects the falling edges of the SDCKB fourteen times whilst SDCKA is at "L" level, the flip-flop 612 outputs the detection of reset pattern (cf. FIG. 16). The detection allows the reset operation.

If the number of falling edges of the SDCKB is unspecified, the flip-flop 612 outputs the detection of frame error. The pattern detection outputs from flip-flops 612 and 614 are held in status register 55.

FIG. 28 shows a compositional example of the alternate shift register 62. In this diagram, serial data SDCKB is supplied to the data input terminal D of a shift register 621, and SDCKA is supplied to the shift clock input thereof. The shift register 621 reads in the data sections of SDCKB successively at the falling edges of SDCKA, as illustrated in FIG. 29. Serial-to-parallel converted data is arranged at the parallel output terminals D7, D5, D3, D1 of the shift register 621 by four clock edges of SDCKA.

Similarly, serial data SDCKA shown in FIG. 29 is supplied to the data input terminal D of the shift register 622 shown in FIG. 28, and SDCKB is supplied to the shift clock input thereof. The shift register 622 reads in the data sections of SDCKA successively at the falling edges of SDCKB. Serial-to-parallel converted data is arranged at the parallel output terminals D6, D4, D2, D0 of the shift register 622 by four clock edges of SDCKB.

FIG. 30 is an approximate general block diagram of a peripheral device to be connected to a game device, generally called a game controller, an input operation controller, or an operation input device, etc. A game controller will be described below. It is possible to add (couple) further peripheral devices (L-device functions) by providing two expansion sockets on the game controller. The game controller contains a one-chip micro-controller. It also comprises 11 switches for generating digital output, and analogue keys for generating a four-axis output. The output of these switches, etc. is processed by the micro-controller, and output to the host via an MIE section and an M bus.

FIG. 31 is a block diagram giving an approximate illustration of the composition of an MIE on the device function side, where the functions of a peripheral device are taken as the device functions.

In this diagram, the game controller is connected to a host (omitted from drawing) via an M bus. The game controller comprises a U-device function connected to the host via the M bus, and two L-device functions connected to the U-device function via LM buses.

FIG. 32 is a block circuit diagram showing a bus switching section (selector) from FIG. 31. There are two M buses branching from the U-device function, and these are called LM bus 1 and LM bus 2, respectively. The switching operation to connect and disconnect the LM buses and M bus is performed by an MIE selector in the U-device function.

FIG. 33 is an approximate block diagram of a hardware section of the U-device function. The transmission processing section, socket control section, CPU section, and I/O section are constituted by a one-chip micro-controller. The transmission processing block forms an interface with the host. The CPU section controls the signal processing in the peripheral device, such as a game controller, or the like. The I/O section is an external input interface for digital buttons, analogue keys, or the like. The socket control section is used for controlling expansion sockets. In this example, hardware expansion sockets (two-slot) for two L-device functions are prepared.

FIG. 34 is an approximate block diagram of an L-device function. A transmission processing section, CPU section, and support function section are constituted by a single-chip microcomputer. The transmission processing section forms an interface with the U-device function (MIE for L-device function). The CPU section carries out processing relating to he L-device function. The support function block realizes the unction of the L-device function, for example, a circuit for performing the trigger function of a light gun, memory function, or vibrating function, etc.

Next, the operation of the MIE on the device function side is described with reference to FIGS. 33 and 34. In the initial state where APs are not allocated, a three-state buffer is controlled by the socket controller shown in FIG. 33, and SDCKA OUT and SDCKB OUT transmitted to expansion socket 1 and expansion socket 2 are disabled. Here, the socket controller performs the functions of an LM bus 1 controller and LM bus 2 controller.

With SDCKA OUT in a disabled state, when no L-device function is connected to the expansion socket,