System and methods for accessing remote endpoints in electrical machines
A bus system with multiplexers and serial transmission addresses the complexity and cost issues of connecting multiple endpoints by minimizing wiring and eliminating endpoint microcontrollers, achieving reduced complexity and cost in large machines.
Patent Information
- Application Number
- PCT/IL2025/050437
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-22
- Filing Date
- 2025-05-22
- Publication Date
- 2025-11-27
AI Technical Summary
Existing systems for connecting multiple endpoints in large machines require numerous wires and microcontrollers, increasing complexity, cost, and weight, and are costly to maintain due to software version control challenges.
A bus system connects endpoints via a master device and slave devices, using multiplexers to minimize wiring and eliminate endpoint microcontrollers, with serial transmission and redundant signaling for error checking.
Reduces the number of connections, minimizes wiring, and simplifies implementation while reducing cost and weight, and avoids the need for endpoint microcontrollers.
Smart Images

Figure IL2025050437_27112025_PF_FP_ABST
Abstract
Description
SYSTEM AND METHODS FOR ACCESSING REMOTE ENDPOINTS IN ELECTRICAL MACHINESFIELD OF THE INVENTION
[0001] The present invention relates to electrical communication bus topologies and control protocols. In particular, to communicate with many device endpoints in a physically large system or machine in order to receive and / or manage information flow through the system.BACKGROUND OF THE INVENTION
[0002] Machines, especially large machines such as vehicles, can include many systems that have information related to their operation and / or operational state. The systems can include for example: fuses, relays, sensors, lights, motors, air condition systems, and / or actuators. It can be desirable to collect information / signals from the systems, e.g., in analog and / or digital form, in a single location (e.g., a controller). The systems can be spread across the machine, which can require many wired connections throughout the machine in order to connect from a central controller to each of the remote systems (e.g., also called endpoints). The many wired connections can add to complexity in design, cost, and / or weight of the machine. As the distance from each device to the central controller increases, the complexity of the design, cost, and / or weight of the machine can increase. Therefore, it can be desirable to connect to the systems in a manner that minimizes the amount of additional wires, weight, cost and / or complexity added to the machine.
[0003] Typical systems with a large number of endpoints to be sensed and / or configured are typically implemented by either a “star topology” that uses a large number of wires going across the system into a central controller or a traditional communication bus system of multiple microcontrollers spread in proximity to the endpoints being sensed and in communication with a central controller. Both solutions can require a large number of wires and / or microcontrollers, both adding to the cost, weight and / or complexity of the system. In addition, traditional systems that include multiple microcontrollers with specific software package for each endpoint device can be more expensive to maintain due to, for example, the complexity of software version control tasks.SUMMARY OF THE INVENTION
[0004] Advantages of the invention can include a reduction in a number of connections to devices within the vehicle from a central location.
[0005] Advantages of the invention can also include reduction of cost and / or weight.
[0006] Advantages of the invention can include minimal wiring requirements, implementation simplicity, and / or avoiding microcontrollers at the endpoints.
[0007] In one aspect, the invention includes a bus system for connecting in parallel a variety of endpoints to a master device via multiple slave devices. The master device can transmit control signals, clock signals, and data signals to the slave devices. The master device can transmit control signals to the endpoints. A control signal can include an address of a particular endpoint. The master device can transmit clock signals to the slave devices to dictate the sampling rate of the control signals by the slave devices. The master device can communicate (e.g. send and / or receive) data signals to or from the slave devices. A slave device can include a multiplexer and endpoints connected to the multiplexer. The multiplexer, upon receipt of a control signal from the master device, can select a particular endpoint based on the address in the control signal. The corresponding slave device can transmit the data signal of the endpoint to or from the master device.
[0008] In some embodiments, transmission of the control signal is a serail transmission. In some embodiments, the serial transmission includes redundant signaling for the purpose of error checking and / or data corruption prevention.
[0009] According to some embodiments, the control signals have a plurality of bits that indicate a slave device identifier one of the plurality of slave devices, and a plurality of bits that indicate an address of one of the plurality of endpoints of the slave device identified in the slave device identifier. In some embodiments, the control signal is a fixed-length word that includes the slave device identification. In some embodiments, the control signal is a fixed- length command / operational (OP-code) that includes the slave device identification within the bus system and the endpoint identification within the slave device it is connected to.
[0010] In some embodiments, the control signal also includes a R / W request bit. When the R / W request bit is “0”, the master device reads data from the targeted endpoint. When the R / W request bit is “1”, the master device writes data to the targeted endpoint. The R / W bit polarity can be negated and / or more than one bit can be used to determine a read or write operation.
[0011] In some embodiments, the endpoints are active, passive, analog, digital or any combination thereof.
[0012] In some embodiments, each slave device is connected to a variety of endpoints. In some embodiments, each endpoint serves a different purpose like temperature or pressure sensing and reporting.
[0013] In some embodiments, the control signal also includes a particular protocol identification within the multiple protocols supported by the endpoints. The protocol identification directs the way in which the master device can read and / or write to a particular endpoint.
[0014] In some embodiments, the size of the fixed-length word is based on the number of the plurality of endpoints the master device receives the data from for the unique slave device identified.
[0015] In some embodiments, the clock signal synchronizes between the reading of the clock line by the slave devices and the reading and writing of the data line. The master device writes to the data line, which is then being read by the slave devices and from there the data flows to the endpoints. Data from the endpoints flows to the slave devices which write to the data line from where the data is read by the master device.
[0016] In some embodiments, the master device transmits a request to all slave devices with a unique bit sequence to synchronize the incoming bit-order and bit-position upon receiving the message by the slave devices. The unique bit sequence ensures that all slave devices correctly assemble the request frames sent by the master device on the control line, each request frame can start with the targeted slave device identification.
[0017] In some embodiments, each request from the master includes a fixed-length data frame, where a data frame is a fixed length string of bits, assembled and disassembled according to the corresponding protocol used for the read or write request.
[0018] In some embodiments, each slave device includes a multiplexer to which the slave device’s endpoints are electrically connected. Upon receipt of a data read request from the master device, the multiplexer selects a particular endpoint out of the multiple connected endpoints, based on the endpoint address, and the respective slave device transmits the data of the endpoint to the master device such that the master device’s controller receives the data. Similar sequence occurs when the master device writes to an endpoint. Upon receipt of a data write request from the master device, the multiplexer selects a particular endpoint out of the multiple connected endpoints, based on the endpoint address, and the multiplexer device transmits the data from the master device to the endpoint such that the endpoint receives the data.
[0019] In some embodiments, each slave device includes a transmit unit connected to the master device’s controller and configured to transmit data signals from the master device to the endpoints and from the endpoints to the master device. The transmit unit is also connected tothe slave device’s multiplexer, via which data is transmitted by the transmit unit to and from the connected endpoints.
[0020] In one aspect, the invention includes a machine which further includes a bus system based on a master device and multiple electrically connected slave devices. The machine can be, e.g., a vehicle, and the slave devices can be, e.g., headlights, fuses, batteries, motors, inverters, and HVAC system.
[0021] In some embodiments, a system of multiple electrically connected machines is controlled by a master device which is electrically connected to slave devices of at least two machines via a bus system which is similar to the bus system of the vehicle. The system includes at least two machines, each machine includes at least one slave device, and each slave device includes at least one endpoint. One of the machines is a vehicle.
[0022] In one aspect, the invention involves a method for connecting multiple endpoints to a master device where the endpoints are distributed among multiple slave devices. The slave devices are connected in parallel to the master device via a bus which transmits control signals, clock signals, and data signals. The master device transmits control signals to the slave devices. Each control signal includes an identification of a particular slave device among the multiple slave devices and an identification of an endpoint out of the multiple endpoints connected to the targeted slave device. The master device transmits clock signals which synchronize the reading and writing operations on the control line and on the data line. The master device transmits control signals on the control lines. The master device also transmits data signals to and from a particular endpoint via a particular slave device that the endpoint is connected to. The selection is being done based on the identification of the slave device and the identification of the endpoint which are included in the control signal received from the master device by the targeted slave device via the control line.
[0023] In some embodiments, the method also involves a multiplexer in the targeted slave device and multiple endpoints connected to the multiplexer. The control signal includes the identification of the endpoint by which the multiplexer selects the targeted endpoint to or from data is transmitted.BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order for the present invention to be better understood and for its practical applications to be appreciated, the following Figures are provided and referenced hereafter. It should be noted that the Figures are given as examples only and in no way limit the scope of the invention. Like components are denoted by like reference numerals.
[0025] Non-limiting examples of embodiments of the disclosure are described below with reference to figures attached hereto that are listed following this paragraph. Dimensions of features shown in the figures are chosen for convenience and clarity of presentation and are not necessarily shown to scale.
[0026] The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features and advantages thereof, can be understood by reference to the following detailed description when read with the accompanied drawings. Embodiments of the invention are illustrated by way of example and not limited in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous, or similar elements, and in which:
[0027] FIG. 1 is a schematic illustration of a bus system for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, according to some embodiments of the invention.
[0028] FIG. 2 is a diagram of request frames, according to some embodiments of the invention.
[0029] FIG. 3 is a plurality of bits diagram of a request sent from a master to a control line, according to some embodiments of the invention.
[0030] FIG. 4 is a flow diagram for a method for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master, according to some embodiments of the invention.
[0031] FIG. 5 is an example timing diagram of a clock signal, according to some embodiments of the invention.
[0032] FIG. 6 is a side view and a top view of a vehicle comprising a bus system for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, according to some embodiments of the invention.
[0033] FIG. 7 is an example of a bus system, according to some embodiments of the invention.
[0034] FIG. 8A is a detailed schematic view of a slave device, according to some embodiments of the invention.
[0035] FIG. 8B is a detailed schematic view of endpoints in a slave device, according to some embodiments of the invention.
[0036] FIG. 9 A is a detailed schematic view of a slave device, according to some embodiments of the invention.
[0037] FIG. 9B is a detailed schematic view of elements in a slave, according to some embodiments of the invention.
[0038] FIG. 10 is a block diagram of a computing device which can be used with embodiments of the invention.DETAILED DESCRIPTION OF THE INVENTION
[0039] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, modules, units and / or circuits have not been described in detail so as not to obscure the invention.
[0040] Although embodiments of the invention are not limited in this regard, discussions utilizing terms such as, for example, “processing,” “computing,” “calculating,” “determining,” “establishing”, “analyzing”, “checking”, or the like, may refer to operation(s) and / or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulates and / or transforms data represented as physical (e.g., electronic) quantities within the computer’ s registers and / or memories into other data similarly represented as physical quantities within the computer’s registers and / or memories or other information non-transitory storage medium (e.g., a memory) that may store instructions to perform operations and / or processes. Although embodiments of the invention are not limited in this regard, the terms “plurality” and “a plurality” as used herein may include, for example, “multiple” or “two or more”. The terms “plurality” or “a plurality” may be used throughout the specification to describe two or more components, devices, elements, units, parameters, or the like. Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or sequence. Additionally, some of the described method embodiments or elements thereof can occur or be performed simultaneously, at the same point in time, or concurrently. Unless otherwise indicated, the conjunction “or” as used herein is to be understood as inclusive (any or all of the stated options).
[0041] In general, the invention includes a master device that includes a controller and a plurality of slave devices that multiplex multiple endpoints. The slave devices multiplexing multiple endpoints can reduce the number of connections between a master and the endpoints compared to a system where the central controller is directly connected to the endpoints. Additionally, the amount of electrical wiring that can be required for a system where the controller is directly connected to the endpoints can depend on the distance the endpoints arefrom the controller. The further the endpoints are from the controller, the longer the connections can be. Thus, connecting the endpoints through the slave devices for endpoints at a larger distance (e.g., 30 cm, 1 meter, 2 meters, or greater) from the central controller can cause a more significant reduction in the amount of wiring and / or eliminate a need for multiple controllers located at the endpoint. In the scope of the present invention, the terms Multiplexer, Demultiplexer and MUX / DEMUX may be interchangeable and may have the same practical meaning. Embodiments of the present invention may implement data flowing from a master device to slave devices and / or data flowing from slave devices to a master device.
[0042] For a machine that is vehicle, a master device including a controller can be positioned at a central portion of the vehicle and a slave device including one or more endpoints can be positioned at a corner of the vehicle.
[0043] For a machine that is a vehicle, a master device including a controller can be positioned at a vehicle cabin and a plurality of slave devices, each including one or more endpoints can be positioned at a front portion of the vehicle, a rear portion of the vehicle, and / or a corner of the vehicle.
[0044] Although the description refers to road vehicles as example embodiments, the present invention can be applicable to other machines or devices, such as appliances, industrial machines, air / land / water vehicles.
[0045] FIG. 1 is a schematic illustration of a bus system 200 for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, according to some embodiments of the invention. Bus system 200 can include a master device 210, a plurality of slave devices 22Oo, 220i...., 220m, generally, a plurality of slave devices 220, and a bus 240 consisting of a control line 236, a clock line 234, and / or a data line 232. Bus system 200 can be used in a vehicle (e.g., a vehicle as described below in FIG. 6).
[0046] Master device 210 can include a controller 212, input interfaces 214, and output interfaces 216 and 218. Master device 210 can be electrically connected to control line 236, clock line 234, and data line 232 via output interfaces 216, output interfaces 218 and data line 232, respectively.
[0047] Controller 212 can be electrically connected to input interfaces 214, and output interfaces 216 and 218. Controller 212 can be a computer, processor, and / or similar electronic device that can receive, process, store and / or transmit analog and / or digital data signals from a plurality of endpoints. The signals can be stored in local memory (not shown), or transmitted to another system (not shown).
[0048] Input device 214 can be electrically connected to controller 212 and data line 232. Input device 214 can be either an analog or a digital input stage (can be integrated into the controller or an external device) adapted to receive data signals from data line 232 and transmit them to controller 212. According to some embodiments as described elsewhere herein, device 214 is an output device and / or a combination of input / output (Analog or Digital I / O). Will be referred to as I / O for the rest of the document.
[0049] Output device 216 is a digital output stage of the controller (can be either integrated inside the controller or an external device) can be electrically connected to controller 212 and clock line 234. Output device 216 can be an electronic device adapted to receive clock signals from controller 212 and transmit them to clock line 234.
[0050] Output device 218 is a digital output stage of the controller (can be either integrated inside the controller or an external device) can be electrically connected to controller 212 and control line 236. Output device 218 can be an electronic device adapted to receive control signals from controller 212 and transmit them to control line 236.
[0051] Each of the plurality of slave devices 220, can be electrically connected to control line 236, clock line 234, and data line 232. Each of the plurality of slave devices 220 can include a single endpoint 228 or a plurality of endpoints 228o, 228i, ...228n, generally, a plurality of endpoints 228. Each of the plurality of slave devices 220 can include a transmit unit 222, control unit 224, and muxing unit 226. Muxing unit 226 may be used when slave device 220 has more than a single endpoint 228. Each of slave devices 220 can have a unique identifier.
[0052] Each slave device of the plurality of slave devices 220i, 2202...220m, can include its own transmit unit, control unit, muxing unit and plurality of endpoints (not shown). The transmit unit, control unit and / or muxing unit can be equivalent to transmit unit 222, control unit 224, and / or muxing unit 226, respectively, and / or be different in any combination. The plurality of endpoints can be any of endpoints 228 as desired to be connected to, for example, in different parts of the vehicle.
[0053] Transmit unit 222 can be electrically connected to data line 232 and muxing unit 226. Transmit unit 222 can be an electronic device, either an analog or digital signal interface (can be a chip or part of a chip) adapted to receive and transmit data signals and control signals. Transmit unit 222 can receive data signals from muxing unit 226 and control signals from control unit 224, and / or transmit the data signals to data line 232.
[0054] Control unit 224 can be electrically connected to control line 236, clock line 234, and muxing unit 226. The control unit can be a chip or digital circuit implemented by severaldiscrete components of an electronic device that can be configured to receive data signals from control line 236 and transmit the data signals to muxing unit 226 or / and to transmit unit 222.
[0055] Muxing unit 226 can be electrically connected to control unit 224, transmit unit 222, and a plurality of endpoints 228. Muxing unit 226 can be an analog or digital signal multiplexer controlled by control signals read from control unit 224, and / or transmits data signals of one or more of endpoints 228 to transmit unit 222.
[0056] Each of plurality of endpoints 228 of one of plurality of slave devices 220 can be electrically connected to muxing unit 226. Each of plurality of endpoints 228 can be a sensor, e.g., for sensing particular metrics of the vehicle, such as engine temperature, tire pressure, or battery charge level. Each slave device of the plurality of slave devices 220 can include different or similar sensors with respect to the other slave devices. Each slave device can include sensors of the same type or of different types.
[0057] Data signals communication of master 210 with salve 220 may be from slave to master, from master to slave, and both. According to some embodiments, in the bus systems described elsewhere herein, for example the embodiments of bus systems 200 and 900, each of the plurality of endpoints 228 can be an actuator such as light source or an electromechanical device. In some embodiments, one or more of plurality of slave devices 220i, 2202...220mmay include a receiving unit, and / or transmit unit 222 may be substituted by a receiving unit 222 or a transceiver 222. Thereby, transmitter 222 is interchangeable with transceiver 222 elsewhere herein. In some embodiment, input 214 may be substituted by an output 214 (e.g. I / O) for communicating with receiving unit 222 or alternatively, master 210 may include an additional output 214’ for communicating with receiving unit 222 of one or more of plurality of slave devices 220i, 2202...220m. In various embodiments, muxing unit 226 is either multiplexer or demultiplexer 226, which support communication direction required for transmitting and / or receiving signals to / from endpoints 228i, 2282...228m.
[0058] In some embodiments, a vehicle can have a bus system 200 having one or more fuse boxes located at one or more locations in the vehicle. In these embodiments, one or more of the fuse boxes can have a plurality of fuses (e.g., dozens of fuses). Controller 212 of master device 210 can read the status of the fuses by utilizing a slave device 220 in each of the one or more of the fuse box. Slave devices 220 may multiplex each fuse (e.g., endpoint) electrical signal (such as potential, current, resistance) towards central controller 212.
[0059] During the operation of the vehicle, master device 210 can continuously and / or periodically receive or transmit (i.e. communicate) data signals and / or read or write data signals from / to each of the plurality of endpoints (e.g., 228 of slave device 22Oo) (e.g., activelyor passively by reading the endpoints) of the vehicle. In various embodiments, master device 210 stores a most recent version and / or prior version of received and / or read endpoint data signals.
[0060] Master device 210 can generate a clock signal and transmit the clock signal to clock line 234. The clock signal can be generated at a predetermined frequency (e.g., lOOKHz). Master device 210 transmits requests to control line 236. The requests can be transmitted at a predetermined frequency. The frequency of transmitting the requests can be e.g., 1,000 requests per second.
[0061] Master device 210 can include in each request a slave device identifier (e.g., unique slave device identifier) and an endpoint address for the request (e.g., the endpoint that is to transmit data to master device 210). Each of the plurality of slave devices 220 samples control line 236 periodically according to clock line 234’ s frequency. Slave devices 220 can detect requests on the control lines.
[0062] An example protocol can be as follows. Master device 210 can transmit a sequence of all-zeros to clear the input shift register (e.g., shift registers 1020 as described below in FIG. 8A) of each of the plurality of slave devices 220. Next master device 210 can transmit a respective request. At each of the plurality of slave devices, once its respective input shift register is cleared, the first incoming logic T' can indicate a start-of-frame for each of the plurality of slave devices. The plurality of slave devices then collect all arriving bits to form the request frame-structure. Once a complete request frame is constructed, the respective slave device determines the requested operation, slave ID and endpoint address by parsing the predefined data fields of the incoming request.
[0063] The term “frame” may be interchangeable with the term “packet” in the context of this invention. Both “frame” and “packet” may refer to a collection of bits that may hold binary values in a structured manner such that the transmitting party encapsulates the values in a way that the receiving party is able to parse and extract all the stored values within the structure.
[0064] FIG. 2 is a diagram of request frames, according to some embodiments of the invention. The request frame structures of FIG. 2 are example request frame structures of a control protocol generated by a master device and capable of being interpreted by a corresponding slave device according to some embodiments of the invention. The control protocol can determine the request frame structure and the sequence of actions to take place for a successful read and / or write transaction between the master device and plurality of slave devices.
[0065] Example Frame structure 400i includes Frame Synch Sequence field 410i, a start-of- frame (SOF) field 420i, a slave ID field 450i and an endpoint address field 460i.Frame Synch Sequence field 410i is a unique sequence of bits that directs the plurality of slave devices to prepare for an incoming request from the master device. The unique sequence may be represented by values like all-ones or all-zeros or any other predetermined bit sequences. SOF 420i is representing a Start-Of-Frame indication. This indication can ensure that the respective slave device is properly aligned on the bit locations of the incoming request.
[0066] Slave ID field 450i can be a unique identifier of a slave device (e.g., bits 308 as shown in FIG. 3). Endpoint Address 460i is equivalent to FIG. 3 bits 310.
[0067] Example frame structure 4002 shows a protocol in which a master device is able to read and / or write to a particular endpoint of a slave device. R / W field 4302 determines the data flow direction to be selected for every request.
[0068] Example frame structure 4003 shows a protocol in which the master device can read and / or write to a particular endpoint of a slave device using a particular protocol ID 4403. R / W field 4303 can indicate a data flow direction to be selected for every request.
[0069] Protocol ID 4403 is an identifier of a particular protocol of plurality of possible protocols in which the master device can read and / or write to a particular endpoint of a slave device.
[0070] Example frame structure 4004 shows a protocol in which the master device can read and / or write to a particular endpoint of a slave device by utilizing an operation code (OP-Code) 4704 for each type of endpoint. OP-Code 4704 can encapsulate a read / write command as described in previous examples and also specific operations required by the accessed end point.
[0071] A request frame sent from the master device towards the slave devices can contain a Frame Check Sequence (FCS) such as Checksum and / or CRC (Cyclic Redundancy Check) and / or parity calculation and / or any other redundant data that would let the slave devices verify the integrity of the incoming request frames and / or prevent incoming data corruption.
[0072] A request frame would be any bit sequence that is sent by the master device that can be detected by the slave devices and parse the frame content to extract data from predefined bit fields. These mentioned fields of data would can contain a slave address and / or an endpoint address and an optional OP-Code field. If no OP-Code field is defined in the request frame then all requests sent by the master would result in a fixed operation type (for example read and / or write) as was hardwired into the design of the slave device.
[0073] The following is an example of a sequence of actions for the master device to get data and / or voltage from an endpoint by utilizing the frame structure 4002. The master device transmits an all-zeros bit sequence that clears all the bits in all slave devices inputs.1. The master device transmits a "1" bit in a SOF 4202 to indicate start-of-frame for all the slaves.2. The master device transmits a "1" bit for R / W 4302 to indicate a read operation for a particular slave device.3. The master device transmits a slave ID 4502 bit sequence to select the particular slave device.4. The master device transmits an endpoint address bit sequence 4602 to select the specific endpoint at the particular slave device.5. Every slave device checks the sequence and decides if it is the target of the request.6. The target slave device (e.g., the particular slave device) selects the appropriate multiplexer port to propagate the voltage of the select endpoint according to the endpoint address.
[0074] The voltage of the selected endpoint propagates through the transmit unit (see FIG. 1, e.g. transmitter, transceiver) onto the data signal and into the input unit (e.g. I / O) of the controller at the master device.7. The master device may halt the clock signal to hold the multiplexing interconnect until the next request is required at the master device.
[0075] Once a control unit 224 of any of plurality of slave devices 220 detects a match between the slave ID in the request and its own slave device identifier (see more details in Figs. 8A to 9B), it causes control unit 224 to transmit the address of the requested endpoint to muxing unit 226.
[0076] Muxing unit 226 routes the data of the requested endpoint to transmit unit 222. Transmit unit 222 can transmit the data, to data line 232 from which input device 214 receives the data and transmits it to controller 212. Controller 212 can store, process, display, and / or transmit the data elsewhere if needed.
[0077] FIG. 3 is an example of possible plurality of bits diagram 300 of a request sent from a master device (e.g., master device 210 as shown above in FIG. 1) to a control line (e.g., control line 236 as shown above in FIG. 1), according to some embodiments of the invention. The plurality of bits 300 includes a plurality of bits (0, 1, ...n) 308 that indicate a unique identifier for a slave device (e.g., slave device identifier), followed by a plurality of bits (0, 1, ...m) 310 that indicate an address of a particular endpoint which the master device requests to read thedata from. Plurality of bits 300 includes an optional plurality of bits (0, 1, ...k) 312 that indicate the opcode of the request. The opcode of request 312 can be used by the slave device of the endpoint to manage writing to and / or reading from the endpoint, as described in a following example in further detail with respect to FIG. 8A and FIG. 9A.
[0078] The bits 308, 310, 312 ordering can be defined by their respective positions in a request frame. Various frame structures can use different bits ordering according to the specific implementation. The example bits 300 in Fig. 3 does not imply a strict ordering of the bit fields for all implementations. in addition, it is not mandatory to use the field of bits 312. The bit orders of bit fields 308, 310, 312 shown as (0,1, ... [m,n,k]) are also implementation dependent and may be equally implemented in a reversed order such as ([m,n,k] ... , 1, 0).
[0079] A plurality of bits 308 (0,1, ... n) can be the slave device identifier in request bits 300. In various embodiments, the length of plurality of bits 308 can be one or more.
[0080] A plurality of bits 310 can be the endpoint address set in the request plurality of bits 300. Plurality of bits 310 can be an endpoint address (0, 1, ...m). The length of plurality of bits 310 can be one or more.
[0081] A plurality of optional bits 312 can be the OP-Code set in the request plurality of bits 300. Plurality of bits 312 can be (0, 1, ...k). The length of plurality of bits 312 can be one or more.
[0082] During the operation, the master device (e.g., master device 210 as described above in FIG. 1) can use the plurality of bits 300 to request to read one of the endpoints associated with a particular slave device having the slave device identifier indicated by plurality of bits 308. The endpoint address within the slave device can be indicated by plurality of bits 310. The OP- Code by which the slave device can set or read data to / from the endpoint can be indicated by plurality of bits 312.
[0083] FIG. 4 is a flow diagram for a method 500 for multiplexing a plurality of endpoints (e.g., endpoints 228 of slave device 0 as described above in FIG. 1) distributed between a plurality of slave devices (e.g., slave devices 220 as described above in FIG. 1) to a master device (e.g., master device 210 as described above in FIG. 1), according to some embodiments of the invention.
[0084] Method 500 for multiplexing a plurality of endpoints comprises step 510 of connecting, via a bus (e.g., bus 240 as described above in FIG. 1) a plurality of slave devices in parallel to the master device to transmit control signals, clock signals, and data signals. The master device can send control signals to a plurality of slave devices (e.g., plurality of slave devices 220 as described above in FIG. 1) via a control line (e.g., control line 236 as describedabove in FIG. 1). Each control signal can be addressed to a single slave device of a plurality of slave devices. An address can be a plurality of bits (e.g., a plurality of bits 308 as described above in FIG. 3).
[0085] Each slave device can have a unique address. In some embodiments, the slave device unique address is identical to the slave device identifier. Slave device identifiers can be set by the system and / or can be transparent to the user. Slave device identifiers can start at 0 and differ by 1 from one another. Slave device identifiers can be any combination of unique values. Slave device identifiers can be set manually before starting the system. A slave device identifier can be hardwired in the slave device internal design. A slave device identifier can get into the slave device by other device and can change during system lifetime or can change while system is operating or can change while system is inactive. Several slave devices can share the same slave identifier value if the system designer wishes to access more than 1 slave device simultaneously.
[0086] Each of the plurality of slave devices can read the control line continuously and / or periodically at the frequency of the clock signal, or some other predefined frequency, and / or can act upon a control signal addressed to it. The master device can receive data signals from each of the plurality of slave devices via a data line (e.g., data line 232 as described above in FIG. 1). A clock line (e.g., clock line 234 as described above in FIG. 1) can transmit a clock signal generated by the master device to the plurality of slave devices. Turning to FIG. 5, FIG. 5 is an example timing diagram of a clock signal 600, according to some embodiments of the invention.
[0087] As shown in FIG. 5, a clock signal 600 can have a maximum voltage value 610, a minimum voltage value 620, and a time period 630 which is inversely proportional to the clock frequency, T=l / (f), where T is the clock cycle width in seconds and f is the clock cycle frequency in cycles per seconds. The values of low voltage 620, high voltage 610, and clock signal width 630 can be determined based on each particular system. For example, number of slave devices, number of endpoints, length of electrical connections (e.g., in total), signal frequencies at the endpoints, capabilities of the controller or any combination thereof can affect the value of low voltage 620, high voltage 610, and clock signal width 630.
[0088] Turning back to FIG. 4, Method 500 also comprises step 520 of transmitting a serial transmission of control signals, via the master device to a plurality of endpoints at the plurality of slave devices (e.g., endpoints 228 of a slave device 22Oo as described above in FIG. 1). The serial transmission can be at the clock frequency. Each request frame transmission in the control signals can include an identifier of the slave device (e.g., plurality of bits 308 asdescribed in FIG. 3 above), an endpoint address within the identified slave device (e.g., a plurality of bits 310 as described above in FIG. 3), and an optional OP-Code associated with the identified endpoint.
[0089] The control signals can be transmitted on the control line (e.g., control line 236 as described above in FIG. 1). Each of the plurality of slave devices can read the control line continuously and / or periodically and / or can act upon the control signal addressed to it. Each control signal can be sent to a particular slave device of the plurality of slave devices. The endpoint addresses can be of the devices (e.g., sensors) electrically connected to the identified slave device (e.g., voltage on a power wire passing a fuse). Each master’s request can include one endpoint address (e.g., plurality of bits 310 as described in FIG. 3 above) which can identify a specific source of data from the identified endpoint of the identified slave device.
[0090] Turning back to FIG. 4, Method 500 also comprises step 530 of transmitting, via the master device clock signals (e.g., clock signal 600 as described above in FIG. 5) that can set a sampling rate of control signals by the plurality of slave devices. The clock signals can be for example one signal changing its value from a high voltage to a low voltage and from the low voltage back to the high voltage with a period based on system complexity and requirements, as shown in FIG. 5. The clock signal can change periodically or be paused for holding the system state unchanged. The clock signal can be stopped and resumed for controlling the signaling and data transaction rate of the system.
[0091] In some embodiments, the clock signal can be generated by any system element and not necessarily the master device.
[0092] In some embodiments, the clock and control signals can be electrically combined into a single electrical signal that represents both. The receiver side will then utilize a clock and data recovery circuitry to reconstruct the individual clock and control signals. Clock and data recovery systems are common in the electronics communication industry with serial transmission lines.
[0093] The plurality of slave devices can sample the control line at the rate of the clock signals transmitted to the plurality of slave devices via the clock line. The plurality of slave devices can sample every control signal being transmitted by the master device. Each slave device of the plurality of slave devices can act upon a respective control signal bit sequence which includes its slave device identifier (e.g., plurality of bits 308 as described above in FIG. 3).
[0094] Method also comprises step 540 of communicating via the master device data signals with the plurality of slave devices. The data signals can be transmitted or received by theplurality of slave devices on the data line. The data signals can follow the control signal request frame transmitted from the master device on the control line. Each data signal can include data of a corresponding device of the endpoint address sent in a previous request (e.g., plurality of bits 310 as described above in FIG. 3). Data signals coming from a slave device towards the master can be for example electrical signals such as fused lines voltages and / or current sensing signals. Data signals coming from the master towards a slave device can be for example a voltage representing light-intensity and / or fan-speed.
[0095] In this manner, a controller can communicate with multiple endpoints via a slave device such that the wiring complexity can be minimized.
[0096] FIG. 6 shows a side view and a top view of a vehicle 810 comprising a bus system for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, according to some embodiments of the invention. Master device (e.g., VCU) 910 can be installed within a chassis 820 of vehicle 810 behind a cabin 812 of vehicle 810, within cabin 812, within the body of vehicle 810, or within any part of vehicle 810, and can be connected to bus 240. Slave devices 9204 (e.g., cabin fuse box) and 920s (e.g., cabin driver box) can be installed inside driver cabin 812 of vehicle 810 and can be connected to bus 240. The example four fuse boxes’ slave devices (e.g. 12v_A fuse box 92Oo, 12v_B fuse box 920i, 48v_A fuse box 9202, and 12v_B fuse box 920s) can be installed under chassis 820 between a front wheels shaft 830 and a rear wheels shaft 840 of the vehicle, two slave devices on the right side of vehicle 810 and two slave devices on the left side of vehicle 810, and four slave devices 920 (92Oo, to 9203) can all be connected to bus 240. Other configurations are possible. For example, slave devices 920 within or above chassis 820, between front axles 830 and rear axle 840, behind rear axle 840, and in front of front axle 830. In addition, slave devices 920 may be locate in both or one side of chassis 820.
[0097] FIG. 7 is an example of a bus system 900, according to some embodiments of the invention. A master device 910 (e.g., Vehicle Control Unit (VCU)) can be connected via a bus 240 to a plurality of slave devices , generally slave devices 920, in this example six slave devices 92Oo, 920i, ...9205. It should be clear that the number of devices, endpoints, etc. described below are mere examples, it can be more or less, one or more, according to the specific implementation.
[0098] Slave device 92Oo (e.g., 12V_A fuse box) can be connected to master device 910 via bus 240 and includes forty-one endpoints.
[0099] Thirty endpoints (930G1, 93OO2, ...93OO30) can be used for sensing voltages of the thirty endpoints which are fuses, Fuse 1, Fuse 2, ...Fuse 30, respectively. The voltage for each fuse respectively is the data signal that is transmitted to master device 910.
[0100] Four endpoints (940G1, 94OO2, 94OO3, 94OO4) can be used for switching on and off and for sensing an on or off status of the four endpoints which are relays, Relay 1, Relay 2, Relay 3, and Relay 4, respectively. The on or off status for each relay respectively can be the data signal that is transmitted to master device 910.
[0101] Six endpoints (950G1, 95OO2, ...95OO6) can be used for switching on and off and / or for sensing an on or off status of the six endpoints which are switches, Switch 1, Switch 2, ...Switch 6, respectively. The on or off status for each switch respectively can be the data signal that is transmitted to / from master device 910. In various embodiments, signals flow from any of the six endpoints (950G1, 95OO2, ...95OO6) to master device 910. In various embodiments, signals flow from master device 910 to any of the six endpoints (950G1, 95OO2, ...95Oo6). According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0102] Endpoint 97Oo can be used for sensing a current consumed by any device in the vicinity of 92Oo’s endpoints. The value of the total current (e.g., measured in amps and represented by voltage) is the data signal that is transmitted to master device 910.
[0103] Slave device 920i (12V_B fuse box can be connected to master device 910 via bus 240 and includes forty-one endpoints.
[0104] Thirty endpoints (930?, 930i2, ...930i30) can be used for sensing an open or close status of the thirty endpoints which are fuses, Fuse 31, Fuse 32, ...Fuse 60, respectively. The voltage status for each fuse respectively is the data signal that is transmitted to master device 910.
[0105] Four endpoints (940?, 940?, 940?, 940?) can be used for switching on and off and for sensing an on or off status of the four endpoints which are relays, Relay 5, Relay 6, Relay 7, and Relay 8, respectively. The on or off status for each relay respectively is the data signal that is transmitted to master device 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0106] Six endpoints (950?, 950?, ...950?) can be used for switching on and off and for sensing an on or off status of the six endpoints which are switches, Switch 7, Switch 8, ...Switch 12, respectively. The on or off status for each switch respectively can be the data signal that is transmitted to master device 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0107] Endpoint 970i can be used for sensing current consumed by any device in the vicinity of 920i ’s endpoints. The value of the total current (e.g., measured in amps and represented by voltage) is the data signal that is transmitted to master device 910.
[0108] Slave device 9202 (e.g., 48V_A fuse box) can be connected to master device 910 via bus 240 and includes nine endpoints.
[0109] Eight endpoints (93021, 93022, ...93028) can be used for sensing voltage status of the eight endpoints which are fuses, Fuse 61, Fuse 62, ..., Fuse 68, respectively. The voltage status for each fuse respectively is the data signal that is transmitted to master device 910.
[0110] Endpoint 9702 can be used for sensing current consumed by any device in the vicinity of 9202’s endpoints. The value of the total current (e.g., measured in amps and represented by voltage) can be the data signal that is transmitted to master 910.
[0111] Slave device 920s (e.g., 48V_B fuse box) can be connected to master device 910 via bus 240 and includes nine endpoints.
[0112] Eight endpoints (930s1, 930s2, ...93038) can be used for sensing voltage status of the eight endpoints which are fuses, Fuse 69, Fuse 70, ..., Fuse 76, respectively. The voltage status for each fuse respectively is the data signal that can be transmitted to master device 910.
[0113] Endpoint 970s can be used for sensing current consumed by any device in the vicinity of 9203’s endpoints. The value of the total current (e.g., measured in amps and represented by voltage) is the data signal that can be transmitted to master 910.
[0114] Slave device 9204 (cabin slave device) can be connected to master device 910 via bus 240 and includes twenty-five endpoints.
[0115] Fourteen endpoints (93041, 93042, ...930414) can be used for sensing voltage status of the fourteen endpoints which are fuses, Fuse 77, Fuse 78, ..., Fuse 90, respectively. The voltage status for each fuse respectively can be the data signal that can be transmitted to master device 910.
[0116] Four endpoints (94041, 94042, 94043, 94044) can be used for switching on and off and for sensing an on or off status of the four endpoints which are relays, Relay 9, Relay 10, Relay 11, and Relay 12, respectively. The on or off status for each relay respectively can be the data signal that can be transmitted to master device 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0117] Six endpoints (95041, 95041, ...95046) can be used for switching on and off and for sensing an on or off status of the six endpoints which are switches, Switch 13, Switch 14, ..., Switch 18, respectively. The on or off status for each switch respectively can be the data signalthat can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0118] Endpoint 9704 can be used for sensing current consumed by any device in the vicinity of 9204’s endpoints. The value of the total current (e.g., measured in amps) can be the data signal that can be transmitted to master 910.
[0119] Slave device 920s (e.g., cabin driver slave device) can be connected to master device 910 via bus 240 and includes fifteen endpoints.
[0120] Endpoint 972 can be used for switching the head lights on and off, for switching the head lights between high and low, and for sensing an on or off status of the head lights. The on or off status of the head lights can be the data signal that can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0121] Endpoint 974 can be used for switching the head fog lights on and off and for sensing an on or off status of the head fog lights. The on or off status of the head fog lights can be the data signal that can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0122] Endpoint 976 can be used for switching the tail fog lights on or off and for sensing an on or off status of the tail fog lights. The on or off status of the tail fog lights can be the data signal that can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0123] Eight endpoints (990s1, 990s2, ...99059) can be used for switching on and off and for sensing an on or off status of eight endpoints which are cabin lights, Cabin light 1, Cabin light 2, ... Cabin light 9, respectively. The on or off status of the cabin lights can be the data signal that can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0124] Endpoint 990 can be used for controlling the cabin fan controller by selecting one of four possible modes and one of four possible fan levels. Endpoint 990 can also be used for sensing the cabin temperature. The value of the temperature (e.g., measured in degrees Celsius and represented by voltage) can be the data signal that can be transmitted to master 910. According to some embodiments, the master can control each of the switches state to be ON or OFF.
[0125] FIG. 8A shows a detailed schematic view of a slave device (e.g., cabin driver slave device 920s), according to the embodiment in FIG. 6 and FIG. 7. Slave device 920s can include a shift register 1020, a latch 1030, logic 1040, a mux 1050, a driver 1060, head lights controller972, head fog lights 974, tail fog lights 976, eight cabin light endpoints (980s1, 980s2, ... 980s8), and cabin fans controller 990.
[0126] Slave device 920s can be connected to a control line 236, clock line 234, and a data line that has two physical lines, data_P 232a, and data_N 232b. The two physical lines data_P 232a, and data_N 232b can be redundant to, for example, cause the data line to be less susceptible to electrical interference, (e.g., noise and / or failure). Data_P and data_N lines represent a single data signal. This dual line arrangement is commonly used in the industry and called a “differential signal” and / or “balanced signal”. Any electrical signal in the suggested system can be transferred by utilizing a differential signal arrangement according to the designer implementation preferences.
[0127] Control line 236 and clock line 234 are connected to shift register 1020. Shift register 1020 can be connected to clock line 234 and to a latch 1030 via 13-bit lines. Control latching 1030 can also be connected to Logic 1040 via 13-bit lines. Logic 1040 can also be connected to slave address 1010 via 3-bit lines, to driver 1060 via a single bit line, and to mux 1050 via 10- bit lines.
[0128] Endpoint 972 (e.g., head lights controller) can be connected to mux 1050 via three- signal lines. Endpoints 974 (e.g., head fog lights) and endpoint 976 (e.g., Tail Fog lights) can be connected to mux 1050 via two-signal lines each. Each of endpoints 980s1, 980s2, ... 980s8can be connected to mux 1050 via two-signal lines. Endpoint 990 (e.g., Cabin fans controller) can be connected to Mux 1050 via five-signal lines. Mux 1050 can be connected to driver 1060 via a single line. Please note that driver 1050 can be bidirectional and act as a transceiver to support both read and write directions of data flow between the master and the slave.
[0129] Slave address 1010 (used interchangeably with slave identifier) can be set by connecting the slave device to another device that can program the slave address into the slave device where the device can be kept connected to the slave device or removed or by moving physical switches on the slave device itself into a particular configuration that sets the address or by hardwiring the value in the design. The address of slave device 92Oo may be set to 0, the address of slave device 920i can be set to 1 and continue in increments of one until the end of the slave devices is met. In the embodiment of FIG. 7, for a slave address starting with 0, the highest address of the slave devices can be 5 if slave devices identifiers are sequential.
[0130] In various embodiments, the address of slave devices 820 may be set to any values as input by a user or random values as assigned by a computing device.
[0131] While operating the vehicle, shift register 1020 can be assembled with 13 bits (but can also use techniques to implement the logic with other shift register sizes as well), read fromcontrol line 236 by shifting one bit at every clock cycle of clock line 234. Once all 13 bits are assembled in shift register 1020, they can be latched by a latch 1030 on the next clock cycle. Logic 1040 can keep comparing continuously and periodically the three most significant bits of the 13 bits in latch 1030 with the three slave address bits 1010. Once a match can be detected, logic 1040 can send an enable signal to driver 1060 via line 1062.
[0132] Mux 1050 can use a plurality of bits, e.g., from the fourth highest significant bit to the ninth highest significant bit of the 13 bits in latch 1030 (e.g., positions 3, 4, 5, 6, 7, and 8 while the highest most significant bit is position 0), for addressing any one of the endpoints connected to mux 1050. The largest number of endpoints in any one slave device in the example embodiments in FIGs. 7, 8 A, 8B, 9A, and 9B is 41. Hence, the highest endpoint address in the example embodiment in FIGs. 7, 8A / 8B, 9A / 9B is 41. The plurality of six bits above (e.g., positions 3, 4, 5, 6, 7, and 8) can be used to address up to 64 endpoints and hence is sufficient for the example embodiment in FIGs. 7, 8A / 8B, 9A / 9B.
[0133] The four lowest significant bits of the 13 bits in latch 1030 can be the OP-Code which is used to select the operation for the targeted endpoint. Head lights controller 972 can be controlled by two-signal lines (e.g., “ON / OFF” and “HIGH / LOW”) and can send on / off signal on the third signal line to mux 1050. Each of head fog lights controller 974 and tail fog lights controller 976 can be controlled by a single signal line (e.g., “ON / OFF”) and each can send an on / off signal on a second signal line to mux 1050. Each of the eight cabin light endpoints (980s1, 980s2,... 980s8) can be controlled by a single signal line (e.g., “ON / OFF”) and each can send an on / off signal on a second signal line to mux 1050. All data signals can be transmitted through line 1064, driver 1060, and data line 232 to master 810 when the enable signal is turned on by logic 1040 through line 1062. Data signal can be converted by driver 1060 and sent to data_N line, when data line 232 can be split to data_P line 1032a and data_N line 1032b for less susceptibility to electrical interferences (e.g. as a “differential signal”).
[0134] FIG. 8B shows a detailed schematic view of two endpoints in slave device 920s: cabin light 1 980s1and tail fog light 976, according to the embodiment in FIG. 6, 8, and 9A. FIG. 8B also shows head light controller 972, cabin fans controller 890, and mux 1050, according to the embodiment in FIGs. 6, 7, and 8A.
[0135] Head lights controller 972 can be connected to mux 1050 via three-signal lines: HIGH / LOW 1070, ON / OFF 1072, and sense 1074.
[0136] Cabin light 1 980s1can be connected to mux 1050 via two-signal lines: ON / OFF 1078 and sense 1076
[0137] Tail fog lights 976 can be connected to mux 1050 via two-signal lines: ON / OFF 1082 and sense 1080.
[0138] Cabin fans controller 990 can be connected to mux 1050 via five lines: two-signal lines for mode 1084, two-signal lines for fan level 1086, and one line for temperature sense 1088.
[0139] While operating the vehicle, mux 1050 can set or clear the signal lines connecting mux 1050 and all slave device’s 920s endpoints, via the four-bit opcode that can be latched in the four lowest significant bits in latch 1030 (e.g., see FIG. 8A).
[0140] Mux 1050 can set the ON / OFF signal line 1072 connecting mux 1050 and head lights controller 972 to high or low voltage for example for turning on or off the vehicle’s headlights.
[0141] Mux 1050 can set the HIGH / LOW bit line 1070 connecting mux 1050 and head lights controller 972 to high or low voltage for example, for switching the cabin fans speed from high to low or from low to high (depending on the current fans speed).
[0142] Sense line 1074 connecting mux 1050 and head lights controller 972 can sense an off or on status of the fans. The on or off status of the fans, represented by a voltage level, is the data signal that is transmitted to master 910 through mux 1050, line 1064 and data line 232 (see FIG. 8A).
[0143] Mux 1050 can set the ON / OFF bit line 1078 connecting mux 1050 and cabin light 1 980s1to high or low voltage for example, for turning on or off one of the eight cabin lights (see FIG. 8A for all eight cabin lights). Sense line 1076 connecting mux 1050 and cabin light 1 980s1can sense an on or off status of a cabin light. The on or off status of a cabin light, represented by a voltage level, is the data signal that is transmitted to master 910 through mux 1050, line 1064, and data line 232 (see FIG. 8A).
[0144] Mux 1050 can set the ON / OFF bit line 1082 connecting mux 1050 and tail fog light 976 to high or low voltage for example, for turning on or off the tail fog light. Sense line 1080 connecting mux 1050 and tail fog light 976 can sense an on and off status of tail fog light 976. The on or off status of tail fog light 976, represented by a voltage level, is the data signal transferred to master 910 through mux 1050, line 1064, and data line 232 (see FIG. 8A).
[0145] Mux 1050 can control the operation of cabin fan controller 990 via four-signal lines connecting mux 1050 and cabin fan controller 990. Mux 1050 can set or clear two-signal lines mode 1084 to any one of four possible values (0, 1, 2, 3) for example, for setting the fans mode (e.g., Heating, Cooling, Ventilating, Humidifying). Mux 1050 can set the two-signal line fan level 1086 to either one of four possible values (0, 1, 2, 3) for example, for setting the fans speed (e.g., Slow, Regular, High, Fast). Temperature sense line 1088 connecting mux 1050 andcabin fans controller 990 can sense the temperature of the cabin fans. The value of the temperature (e.g., measured in degrees Celsius and represented by voltage level) can be the data signal that can be transmitted to master 910 through mux 1050, line 1064, and data line 232 (see FIG. 8A).
[0146] FIG. 9A shows a detailed schematic view of a slave device 92Oo (e.g., 12V_A slave device), according to the embodiment in FIG. 6 and FIG. 7.
[0147] Slave device 92Oo can include a shift register 1120, a latch 1130, logic 1140, a mux 1150, a driver 1160, Fuse l ...Fuse 30 (930G1...93Oo30, respectively), Relay 1... Relay 4 (94Oo1...94Oo4, respectively), Switch 1... Switch 6 (950G1...95OO6, respectively), and current sense 97Oo.
[0148] Slave device 92Oo can be connected to control line 236, clock line 234, and a data line that has two physical lines, data_P 232a, and data_N 232b.
[0149] Control line 236 and clock line 234 are connected to shift register 1120. Shift register 1120 can be connected to clock line 234 and to a latch 1130 via 13-bit lines. Control latching 1130 can also be connected to logic 1140 via 13-bit lines. Logic 1140 can also be connected to slave address 1110 via 3-bit lines, to driver 1160 via a single bit line, and to mux 1150 via 10- bit lines. Driver 1160 can be connected to data line data_P 232a, and data_N 232b.
[0150] Each of endpoints 930G1...93Oo30(e.g., Fuse l ...Fuse 30, respectively) can be connected to mux 1150 via a single signal line. Each of endpoints 940G1...94Oo4(e.g., Relay 1... Relay 4, respectively) and each of endpoints 950G1...95Oo6(e.g., Relay 1... Relay 6, respectively) can be connected to mux 1150 via two-signal lines. Endpoint 970g (e.g., current sense) can be connected to Mux 1150 via one line. Mux 1150 can be connected to driver 1160 via a single line.
[0151] Slave address 1110 can be set by connecting the slave device to another device that can program the slave address into the slave device where the device can be kept connected to the slave device or removed or by moving physical switches or hardwired by design on the slave device itself into a particular configuration that sets the address.
[0152] While operating the vehicle, shift register 1120 can be assembled with 13 bits, read from control line 236 by shifting one bit at every clock cycle of clock line 234. Once all 13 bits are assembled in shift register 1120, they can be latched by a latch 1130 on the next clock cycle. Logic 1140 can keep comparing continuously and periodically the three most significant bits of the 13 bits in latch 1030 with the three slave address bits 1110. Once a match can be detected, logic 1140 can send an enable signal on line 1162 to driver 1160.
[0153] Mux 1150 can use a plurality of bits, from the fourth highest significant bit to the ninth highest significant bit of the 13 bits in latch 1030 (e.g., positions 3, 4, 5, 6, 7, and 8 while the highest most significant bit is position 0), for addressing any one of the endpoints connected to mux 1150. The largest number of endpoints in any one slave device in the example embodiment in FIGs. 6, 7, 8A, and 9A is 41. Hence, the highest endpoint address in the example embodiment in FIGs. 6, 7, 8A, and 9A is 41. The plurality of six bits above (e.g., positions 3, 4, 5, 6, 7, and 8) can be used to address up to 64 endpoints and hence is sufficient for the example embodiment in FIGs. 6, 7, 8A, and 9A.
[0154] The four lowest significant bits of the 13 bits in latch 1030 can be the opcode which is used to select the operation for the targeted endpoint.
[0155] Each of Fuse l ...Fuse 30 (e.g., 930G1...93OO30, respectively) can transmit its open or close (represented by voltage level) status to mux 1150 via a single signal line. The open or close status of a fuse, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232.
[0156] Each of Relay 1... Relay 4 (e.g., 940G1...94Oo4, respectively) can transmit an on or off status (represented by voltage level) to mux 1150 via a single signal line. The on or off status of a relay, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232. Mux 1150 can set on or off each of Relay 1...Relay 4 (e.g., 940G1...94Oo4, respectively) via a single signal line.
[0157] Each of Switch 1... Switch 6 (e.g., 950G1...95Oo6, respectively) can transmit an on or off status (represented by voltage level) to mux 1150 via a single signal line. The on or off status of a switch, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232. Mux 1150 can set on or off each of Switch 1...Switch 6 (e.g., 950G1...95Oo6, respectively) via a single signal line.
[0158] Current sense 97Oo can transmit its current value to mux 1150 via a single line. The value of the current (e.g., measure in amps and represented by a voltage level) can be the data signal transmitted to master 910 through mux 1150, line 1164, and data line 232.
[0159] FIG. 9B shows a detailed schematic view of four elements in slave device 92Oo: fuse 1 930G1, relay 1 940G1, switch 6 95Oo6, and current sense 1 97Oo, according to the embodiment in FIGs. 6, 7, and 9A. FIG. 9B also shows mux 1150, according to the embodiment in FIGs. 6, 7, and 9A.
[0160] Fuse 1 930G1can be connected to mux 1150 via a single signal sense line 1170.
[0161] Relay 1 940G1can be connected to mux 1150 via two-signal lines, sense line 1172 and ON / OFF line 1174.
[0162] Switch 6 95Oo6can be connected to mux 1150 via two-signal lines, sense line 1176 and ON / OFF line 1178.
[0163] Current sense 1 97Oo can be connected to mux 1150 via a single sense line 1180.
[0164] While operating the vehicle, mux 1150 can set appropriate voltage levels over the signal lines connecting mux 1150 and all slave device 92Oo ‘s endpoints, via the four-bit opcode that can be latched as the four lowest significant bits in logic 1130 (see FIG. 9A).
[0165] Sense line 1170 connecting mux 1150 and fuse 1 930G1can transfer the open or close status, represented by a voltage level, of a fuse to mux 1150. The open or close status of a fuse, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232 (see FIG. 9A).
[0166] Mux 1150 can set the ON / OFF signal line 1174 connecting mux 1150 and relay 1 940G1to high or low voltage for example, for switching on or off the relay. Sense line 1172 connecting mux 1150 and Relay 1 940G1can transfer the on or off status, represented by a voltage level, of relay 1 to mux 1150. The on or off status of a relay, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232 (see FIG. 9A).
[0167] Mux 1150 can set the ON / OFF signal line 1178 connecting mux 1150 and switch 6 95Oo6to high or low voltage for example, for turning on or off the switch. Sense line 1176 connecting mux 1150 and Switch 6 95Oo6can transfer the on or off status, represented by a voltage level, of Switch 6 to mux 1150.
[0168] The on or off status of a switch, represented by a voltage level, is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232 (see FIG. 9A).
[0169] Sense line 1180 connecting mux 1150 and current sense 1 97Oo can transfer the value of the total current consumed by any slave device 92Oo’s endpoint to mux 1150. The value of the current (e.g., measured in amps and represented by a voltage level) is the data signal transmitted to master 910 via mux 1150, line 1164, and data line 232 (see FIG. 9A).
[0170] Reference is now made to Fig. 10, which is a block diagram of an exemplary computing device 1200 which may be used with embodiments of the present invention.
[0171] Computing device 1200 may include a controller or processor 1205 that may be, for example, a central processing unit processor (CPU), a chip or any suitable computing or computational device, possibly but not mandatory an operating system 1215, a memory 1220, a storage 1230, input devices 1235 and output devices 1240. Each of modules and equipment such as the master device may be or include a computing device such as included in Fig. 10, although various units among these entities may be combined into one computing device.
[0172] Optional operating system 1215 may be or may include any code segment designed and / or configured to perform tasks involving coordination, scheduling, arbitration, supervising, controlling or otherwise managing operation of computing device 1200, for example, scheduling execution of programs. Memory 1220 may be or may include, for example, a Random Access Memory (RAM), a read only memory (ROM), a Dynamic RAM (DRAM), a Synchronous DRAM (SD-RAM), a double data rate (DDR) memory chip, a Flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short term memory unit, a long term memory unit, or other suitable memory units or storage units. Memory 1220 may be or may include a plurality of, possibly different, memory units. Memory 1220 may store for example, instructions to carry out a method (e.g., code 1225), and / or data such as user responses, interruptions, etc.
[0173] Executable code 1225 may be any executable code, e.g., an application, a program, a process, task or script. Executable code 1225 may be executed by controller 1205 possibly under control of operating system 1215. For example, executable code 1225 may be the master device controller code according to embodiments of the present invention. In some embodiments, more than one computing device 1200 or components of device 1200 may be used for multiple functions described herein. For the various modules and functions described herein, one or more computing devices 1200 or components of computing device 1200 may be used. Devices that include components similar or different to those included in computing device 1200 may be used, and may be connected to a network and used as a system. One or more processor(s) 1205 may be configured to carry out embodiments of the present invention by for example executing software or code. Storage 1230 may be or may include, for example, a hard disk drive, a floppy disk drive, a Compact Disk (CD) drive, a CD-Recordable (CD-R) drive, a universal serial bus (USB) device or other suitable removable and / or fixed storage unit. Data such as the endpoints data may be stored in a storage 1230 and may be loaded from storage 1230 into a memory 1220 where it may be processed by controller 1205. In some embodiments, some of the components shown in Fig. 10 may be omitted.
[0174] Input devices 1235 may be or may include a mouse, a keyboard, a touch screen or pad or any suitable input device. It will be recognized that any suitable number of input devices may be operatively connected to computing device 1200 as shown by block 1235. Output devices 1240 may include one or more displays, speakers and / or any other suitable output devices. It will be recognized that any suitable number of output devices may be operatively connected to computing device 1200 as shown by block 1240. Any applicable input / output (I / O) devices may be connected to computing device 1200, for example, a wired or wirelessnetwork interface card (NIC), a modem, printer or facsimile machine, a universal serial bus (USB) device or external hard drive may be included in input devices 1235 and / or output devices 1240.
[0175] Embodiments of the invention may include one or more article(s) (e.g., memory 1220 or storage 1230) such as a computer or processor non-transitory readable medium, or a computer or processor non-transitory storage medium, such as for example a memory, a disk drive, or a USB flash memory, encoding, including or storing instructions, e.g., computerexecutable instructions, which, when executed by a processor or controller, carry out methods disclosed herein.
[0176] Different embodiments are disclosed herein. Features of certain embodiments may be combined with features of other embodiments. Thus, certain embodiments may be combinations of features of multiple embodiments. The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. It should be appreciated by persons skilled in the art that many modifications, variations, substitutions, changes, and equivalents are possible in light of the above teaching. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
[0177] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
Claims
CLAIMS1. A bus system for multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, the bus system comprising: a bus connecting in parallel the plurality of slave devices to the master device for transmitting control signals, clock signals, and data signals; wherein the master device is configured to: transmit a serial transmission of the control signals to the plurality of endpoints at the plurality of slave devices, wherein each control signal of the control signals comprises an address of a particular endpoint of the plurality of endpoints, transmit the clock signals to dictate a sampling rate of the control signals by the plurality of slave devices, and communicate the data signals with the plurality of slave devices; and wherein at least one of the plurality of slave devices comprises: a multiplexer, and a plurality of endpoints electrically connected to the multiplexer, wherein upon receipt of a control signal of the plurality of control signals from the master device, the multiplexer selects a particular endpoint of the plurality of endpoints based on the address, and the respective slave device communicates the data signal at the endpoint with the master device.
2. The bus system according to claim 1, wherein the serial transmission of the control signal comprises redundant signaling for the purpose of at least one of error checking and data corruption prevention.
3. The bus system according to any one of claims 1-2, wherein the plurality of endpoints are active, passive, analog, digital endpoints or any combination thereof.
4. The bus system according to any one of claims 1-3, wherein each slave device of the plurality of slave devices comprises one or more endpoints.
5. The bus system according to any one of claims 1-4, wherein the control signal comprises: a plurality of bits that indicate a slave device identifier of one of the plurality of slave devices; anda plurality of bits that indicate an address of one of the plurality of endpoints of the slave device identified in the slave device identifier.
6. The bus system according to claim 5, wherein the plurality of bits comprises a read request bit, a write request bit, or any combination thereof for determining a direction of data flow between the master and the slave devices7. The bus system according to any one of claims 1-6, wherein the control signal comprises an operational code (OP-code) having one or more bits that provide instructions for at least one of a slave device and one or more of the plurality of endpoints of the slave device.
8. The bus system according to any one of claims 5-7, wherein the control signal comprises a plurality of bits that indicate a particular protocol of a plurality of protocols of the slave device.
9. The bus system according to any one of claims 5-8, wherein a size of the endpoint address is based on a number of the plurality of endpoints the master device receives data from for a unique slave device identified.
10. The bus system according to any one of claims 5-9, wherein a size of the slave identifier is based on a number of the plurality of slave devices in the system.
11. The bus system according to any one of claims 1-10, wherein the clock signals: synchronize reading of the control signal by the plurality of the slave devices with at least one of writing and reading of the data signal by the master device; and set a sampling event time for each of the plurality of endpoints.
12. The bus system according to any one of claims 1-11, wherein the data signals are communicated between each of the plurality of slave devices and the master device serially.
13. The bus system according to any one of claims 1-12, wherein the control signals comprise a request to all slave devices of the plurality of slave devices transmitted in parallel byincluding a unique bit sequence to synchronize an incoming bit-order and bit-position upon receiving the message.
14. The bus system according to claim 13, wherein each request from the master device and each data transmitted from the plurality of slave devices comprises a control frame, wherein the control frame comprising a fixed length string of bits, assembled and disassembled according to the plurality of protocols.
15. The bus system according to any one of claims 1-14, wherein one or more slave devices of the plurality of slave devices comprises one or more of: a transmit unit connected to a controller and configured to transmit the data signals, and a receiving unit connected to the controller and configured to receive the data signals.
16. The bus system according to claim 15, wherein the one or more of the transmit unit and the receiving unit is connected to the multiplexer and configured to transmit or receive the data signals.
17. The bus system according to any one of claims 1-16, comprising one or more of a control line, clock line, and data line, for communicating one or more of the control signals, the clock signals, the data signals, respectively between the master device and the slave devices.
18. A machine comprising: a master device connected electrically to a plurality of slave devices using a bus system according to any one of claims 1-17.
19. The machine according to claim 18, wherein the machine is a vehicle.
20. The machine according to claim 19, wherein the slave devices comprising at least one electrically operated devices of the vehicle selected from: lights, fuses, batteries, motors, inverters, and HVAC system.
21. A plurality of electrically connected machines according to any one of claims 19 to 20, comprising:at least two machines, each machine comprising one or more slave devices, each slave device comprising one or more endpoints; and a control system comprising a master device electrically connected to the slave devices of the at least two machines via a bus system according to any of claims 1-17.
22. The plurality of electrically connected machines according to claim 21, wherein the electrically connected one machine is a vehicle.
23. A method of multiplexing a plurality of endpoints distributed between a plurality of slave devices to a master device, the method comprising: connecting, via a bus, the plurality of slave devices in parallel to the master device to transmit control signals, clock signals, and data signals; transmitting, via the master device, a serial transmission of the control signals to the plurality of endpoints at the plurality of slave devices, wherein each control signal of the plurality of control signals comprises an address of a particular slave device and a particular endpoint, transmitting, via the master device, the clock signals to dictate a sampling rate of the control signals by the plurality of slave devices, and communicating, via the master device, the data signals with the plurality of slave devices; selecting, via at least one of the plurality of slave devices, a particular endpoint of the plurality of endpoints based on the address upon receipt of a control signal of the plurality of control signals from the master device; and communicating, via the respective slave device, the data signal of the endpoint with the master device.
24. The method of claim 23, wherein the at least one of the plurality of slave devices comprises a multiplexer and a plurality of endpoints electrically connected to the multiplexer.
Citation Information
Patent Citations
Serial peripheral interface having a reduced number of connecting lines
US20110122978A1
Bus interface with bi-directional, one-wire communication and individual select lines
US20180123823A1