Time-division multiplexed data bus interface
10146732 ยท 2018-12-04
Assignee
Inventors
- Girault W. Jones (Los Gatos, CA, US)
- Nathan A. Johanningsmeier (San Jose, CA, US)
- Casey L. Hardy (San Francisco, CA, US)
Cpc classification
Y02D10/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
G06F5/00
PHYSICS
Abstract
An audio system bus has a bus data line and a bus clock line. Audio producers are coupled to the bus to form a time-division multiplexed multi drop bus interface arrangement having protocol slots 0, 1, . . . N where N is an integer greater than two. A bus device is coupled to the bus that produces a) a frame marker on the bus data line in slot 0, and b) a data bit on the bus data line in slot 1. The audio producers are to produce their respective audio data bits in their assigned slots other than slots 0 and 1. Other embodiments are also described and claimed.
Claims
1. A method for performing a time-division multiplexed data bus protocol having successive time slots 0, 1, 2, . . . N in each frame interval, where N is an integer greater than two, the method comprising the following operations performed over a plurality of frame intervals, by a first bus device and a second bus device that are coupled to a bus data line: driving a frame marker on the bus data line by the first bus device in slot 0, wherein the frame marker has a plurality of framer marker bits each being driven by the first bus device in a respective instance of slot 0 in the frame intervals; driving the bus data line with a single bit of first device data in slot 1, by the first bus device, wherein the first device data is sensor data produced by the first bus device; and driving the bus data line with a single bit of second device data in an assigned slot other than slots 0 and 1, by the second bus device, wherein the second device data is sensor data produced by the second bus device and wherein the frame marker bits are i) detected by the second bus device and by one or more other bus devices that are coupled to the bus data line, and ii) used for synchronization of driving of the bus data line with sensor data by the second bus device and by the one or more other bus devices in the successive slots 1, 2, . . . N, wherein each slot is coextensive with a half-cycle of a clock signal and each frame interval has a fixed length of (N+1)/2 cycles of the clock signal.
2. The method of claim 1 wherein driving the bus data line by the first bus device comprises: driving each one of a plurality of data bits in a respective instance of slot 1 in a plurality of frame intervals, respectively, wherein the first bus device presents essentially an open circuit to the bus data line between slot 1 until the next instance of slot 0.
3. The method of claim 1 wherein driving the bus data line by the second bus device comprises: the second bus device driving each one of a plurality of data bits in a respective instance of its assigned slot in a plurality of frame intervals, respectively, wherein the second bus device presents essentially an open circuit to the bus data line between its assigned slot until the next instance of its assigned slot.
4. The method of claim 1 wherein the bus data line remains essentially floating while no bus devices are driving the bus data line.
5. The method of claim 3 wherein each bit consists of a single binary logic bit.
6. The method of claim 5 wherein driving the bus data line by the second bus device comprises: driving the plurality of data bits in accordance with pulse density modulation, one binary logic bit per instance of the assigned slot.
7. The method of claim 2 wherein the plurality of data bits driven by the first bus device are one of a) an audio stream, b) a command or control word and c) dummy data.
8. A system for performing a time-division multiplexed data bus protocol having successive time slots 0, 1, 2, . . . N in each frame interval, where N is an integer greater than two, the system comprising: a bus having a bus data line and a bus clock line; a first bus device coupled to the bus data line, wherein the first bus device is to drive, on the bus data line, a frame marker in slot 0 and a single bit of first device data in slot 1, in each frame interval, wherein the first device data is sensor data produced by the first bus device; and a second bus device coupled to the bus data line, wherein the second bus device is to drive, on the bus data line, a single bit of second device data in an assigned slot other than slots 0 and 1, wherein the second device data is sensor data produced by the second bus device, and wherein the frame marker is i) detected by the second bus device and by one or more other bus devices that are coupled to the bus data line, and ii) used for synchronization of driving of the bus data line with sensor data by the second bus device and by the one or more other bus devices in the successive slots 1, 2, . . . N, wherein each slot is coextensive with a half-cycle of a clock signal and each frame interval has a fixed length of (N+1)/2 cycles of the clock signal.
9. The system of claim 8, wherein the first bus device is to drive each one of a plurality of data bits in a respective instance of slot 1 in a plurality of frame intervals, respectively, wherein the first bus device is to present essentially an open circuit to the bus data line between slot 1 until the next instance of slot 0.
10. The system of claim 8, wherein the second bus device is to drive each one of a plurality of data bits in a respective instance of its assigned slot in a plurality of frame intervals, respectively, wherein the second bus device is to present essentially an open circuit to the bus data line between its assigned slot until the next instance of its assigned slot.
11. The system of claim 8, wherein the bus data line remains essentially floating while no bus devices are driving the bus data line.
12. The system of claim 10, wherein each bit consists of a single binary logic bit.
13. The system of claim 12, wherein the second bus device is to drive the plurality of data bits in accordance with pulse density modulation, one binary logic bit per instance of the assigned slot.
14. The system of claim 9, wherein the plurality of data bits driven by the first bus device are one of a) an audio stream, b) a command or control word and c) dummy data.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to an or one embodiment of the invention in this disclosure are not necessarily to the same embodiment, and they mean at least one.
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7) Several embodiments of the invention with reference to the appended drawings are now explained. While numerous details are set forth, it is understood that some embodiments of the invention may be practiced without these details. In other instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the understanding of this description.
(8)
(9) Each producer device 4 includes a bus interface circuit (BIC) that serves to translate between signals on the bus (bus data line and bus clock line) and signals from a modulator circuit. The signaling on the bus data and clock lines may be, for example, non-return to zero (NRZ) signaling. Other suitable data encoding approaches may be used. Also, a bus clock is available that in this case is driven by a BIC of a host device 5 onto a separate bus clock line. The clock is used by the BIC in each of the producer devices 4 for purposes of detecting a frame marker on the data line, and in response driving the producer devices respective content on the bus data line.
(10) In the host device 5, a bus clock is generated and a BIC drives the bus clock onto the bus clock line of the bus 2. In addition, the BIC in the host device 5 also serves to detect the frame marker on the bus data line, and then uses the detected frame marker to extract the data of each of the producers 4_a, 4_b, . . . from the bus data line.
(11) In one embodiment, the modulator in each audio producer 4 is responsible for converting an analog signal into digital form, from a microphonic or audio sensor, e.g. an acoustic pickup transducer or sound pickup microphone, a non-acoustic audio transducer. The digitally formatted or encoded signal can then be driven by the BIC onto the bus data line. Examples of such conversion formats include pulse density modulation (PDM), pulse code modulation (PCM), and pulse with modulation (PWM). To obtain a PDM bit stream, a delta signal modulation technique may be used, which may present a particularly efficient solution in terms of circuit complexity.
(12) In one embodiment, there is no pull-up or pull-down on the bus data line, other than when a bus device is driving the data line. In other words, the bus data line is in a high impedance state (high-Z) so that its voltage can essentially float, while no bus device is driving the data line, i.e. all of the bus devices are presenting essentially open circuits to the bus data line, by neither pulling the line down to a logic 0 nor up to a logic 1 in the case of binary signaling. In other words, no bus device is sourcing a substantial current into, or sinking a substantial current from, the bus data line. This helps reduce power consumption, although it does present a challenge for detecting the frame marker, as will be described below. This arrangement is suitable for a very lightweight data bus interface that requires a relatively small amount of simple logic circuitry within each BIC.
(13) Still referring to
(14) A method for performing a time-division multiplexed bus protocol is now described in connection with the timing diagram in
(15) Operation of the bus interface over several frames, as depicted in the example timing diagram of
(16) A pre-designated one of the producer bus devices 4 (a first bus device that is assigned to slot 1, namely mic A or device 4_a in
(17) Note that in one embodiment, the frame marker is driven by mic A in the slot that immediately precedes the one assigned to its content. In other words, after driving a frame marker bit in slot 0, mic A drives a bit of its audio data signal in slot 1. Since the bus data line voltage can float up or down within a sequence of two or three high-Z slots in a frame, it may not be reliable to allow the bus data line to float following a frame marker bit in slot 0, hence the desire here to configure mic A to then drive its audio data in slot 1. At slots 2-15, however, i.e. in the rest of the given frame interval, the bus data line remains high-Z while none of the devices 4 are driving the bus data line. In other words, mic A essentially presents an open circuit to the bus data line between the current instance of slot 1 until the next instance of slot 0. In the next consecutive frame, mic A drives the next bit of the frame marker in slot 0, followed by the next bit of its audio signal in slot 1. This driving of slots 0 and 1 repeats frame after frame, until all of the frame marker bits have been driven, at which point the driving of the frame marker in slot 0 repeats. Meanwhile, mic A can continue to drive its device data in consecutive instances of slot 1.
(18) Next, some time later and by chance, a second device here mic H (device 4_h) becomes the first of the other audio producers, other than mic A (device 4_a) to detect the frame marker and in response drive its content (H) in its assigned data slot. Thus, as shown in the timing diagram, slots 0, 1 and 8 are driven in this frame, while all of the other slots in that frame are high-Z.
(19) Later, more audio producers detect the frame marker and in response drive their assigned data slots. In the example timing diagram shown, the third snap shot shows a frame interval in which there are only six high-Z slots, while nine assigned data slots are driven.
(20) Finally, as time passes, it is possible that eventually all of the audio producers 4 (in this case, N=15) detect the frame marker, and in response drive their respective assigned data slots. This is depicted in the last frame interval snap shot in
(21) It should be noted that the frame interval (or simply frame) need not start at slot 0 and end at slot N. For example, the frame could instead be defined to start at any one of the N+1 slots (e.g., start at slot k and end at slot k1 where k can be 1, 2, . . . N+1). Thus, the references here to the frame marker being driven in slot 0 is actually a generic description, since slot 0 could be defined to occur essentially anywhere in the frame.
(22) Also, the slots are depicted in
(23) It should also be noted that in the case of the double pumped approach for driving the data bus line depicted in
(24) With respect to a BIC driving its assigned data slot (or in the case of the first producer 4a also driving the frame marker) on the bus data line, it was mentioned above that each slot may be driven with a single bit of the frame marker and the audio bitstream. In one embodiment, each bit consists of a single, binary logic bit (having a value of either logic 0 or logic 1). In the case of using PDM for driving an audio bitstream, an audio producer 4 drives the bus data line with a sequence of binary logic bits (being a PDM version of an analog signal picked by its sensor), one binary logic bit per instance of the assigned data slot.
(25) The time-division multiplexed data bus interface described above relies upon a BIC in just the first producer 4_a for generating a predetermined frame marker.
(26) A frame marker pattern generator has an output that is coupled to the 1 input of the mux, while the 0 input of the mux is coupled to an output of the modulator. The frame marker pattern generator may be implemented using a linear feedback shift register (LFSR) running at Fclk/[(N+1)/2], whose single bit output is XORed with the data bit that will be transmitted in slot 1 (through the 0 input of the mux), before being fed to the 1 input of the mux. In this particular example, the 0 input of the mux receives PDM audio data representing PDM conversion of an analog microphonic signal. The LFSR in this case is a 4-bit register whose output bit pattern repeats every 15 frames. As will be explained below in connection with
(27) A switch circuit has an input coupled to an output of the mux, while its output is to be coupled to the bus data line of the bus (see
(28)
(29) Still referring to
(30) The BIC in
(31) The following additional points should be noted. First, although
(32) Also, still referring to the BIC depicted in
(33) Another aspect of the invention is that although the example in
(34) In another embodiment of the invention, a bus interface that uses a similar time-division multiplexed protocol as described above for
(35) In yet another aspect of the invention, the bus interface described above can be adapted so that one or more of its slots can carry command or control words (rather than microphone streams, sensed data streams, or DAC input streams), from one bus device to several other bus devices.
(36) While certain embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that the invention is not limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those of ordinary skill in the art. For example, although