The present disclosure relates to moving light displays.
Moving light displays (or animated light displays) can be used to convey textual as well as not-textual (i.e., graphic information) in many situations. Moving light displays are used, for example, in decorative lighting (e.g., Christmas or holiday lights, etc.), and in more formal settings in electronic signage. For electronic signage, digital electronic displays use technologies such as LCD, LED, projection screens and e-paper to display information (e.g., digital images, video, web pages, weather data, restaurant menus, or text) to a public audience.
In a general aspect, a system includes a set of slave devices connected in series and a master device connected over an output bus to the slave device from the set of slave devices. The set of slave devices and the master device collectively define a master-slave communication ring. At least one slave device from the set of slave devices is coupled to at least one light source. The master device is configured to send a plurality of digital signal frames at a constant rate over the output bus to the at least one slave device from the set of slave devices to control the at least one light source.
In a general aspect, a system includes a plurality of light emitting diodes (LEDs) disposed in a display on a surface of a vehicle, and a plurality of controller devices including a master device and a plurality of slave devices serially wired together through serial communication interfaces in a master-slave communication ring. The plurality of slave devices are drivers for the plurality of LEDs. The master device is configured to transmit a plurality of digital signal frames over the master-slave communication ring through the plurality of slave devices to populate a register in each of the plurality of slave devices in the master-slave communication ring with at least one of the plurality of digital signal frames. Each of the plurality of slave devices retransmits at least a subset of the plurality of digital signal frames to an adjacent one of the plurality of slave devices in the master-slave communication ring while the master device is transmitting digital signal frames at a constant rate.
In a further aspect, each of the plurality of slave devices configured to detect an end of transmission of the plurality of digital signal frames by the master device, and each of the plurality of slave devices is configured to, in response to the detecting of the end of the transmission, latch contents of the register in the slave device for driving the LEDs.
In a general aspect, a method includes transmitting a plurality of signal frames from a master device over a serial communication bus at a constant rate to a first slave device from a set of slave devices. The set of slave devices and the master device are connected in series within a master-slave communication ring. The first slave device is coupled to at least one light source. The method further includes transmitting the plurality of signal frames from the first slave device to a second slave device from the set of slave devices.
The foregoing illustrative summary, as well as other exemplary objectives and/or advantages of the disclosure, and the manner in which the same are accomplished, are further explained in the following detailed description and accompanying drawings.
The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate like parts throughout the several views and drawings.
This disclosure describes electronic display systems and methods for lighting applications (e.g., automotive lighting applications). An electronic display system (e.g., a light system for a vehicle) may include multiple light points or light sources in a display area (e.g., in a light emitting diode (LED) display) (also can be referred to as a display). In some implementations, the display area can be inside or outside of an object. For example, if included on a vehicle, the display area can be, or can include a dashboard, a taillight area at a rear of the vehicle, a side door of the vehicle, the grille at the front of the vehicle, and/or so forth.
The LED display in the electronic display system may include an array of LEDs coupled to a controller. The controller can be configured to synchronize or time the LEDs (e.g., time the turning on or off of the LEDs) to present information, for example, in a moving light display on the display area. In some automotive implementations, the information presented may, for example, relate to an instruction or state of the vehicle (e.g., braking, slowing down, speeding up, making a turn, etc.).
In example implementations, the array of LEDs may include colored LEDs (e.g., red, blue, green, white, etc.), or may include white LEDs housed behind color filters or covers (e.g., red, blue, green, white, filters or covers, etc.) in the display area. The filters of covers may be made of polycarbonate (PC) and/or one or more other plastic materials. In some implementations, the information presented on the display area may utilize an animated color scheme to indicate, for example, a particular instruction or state of an object. For example, in some implementations, the information presented on the display area may utilize an animated color scheme to indicate, for example, the state of the vehicle.
In some example implementations, system 200 may not be limited to driving light sources (e.g., LEDs) for moving light displays, but could be used to drive other devices (e.g., motors, dimmers, speakers, fog machines, pressure sensors, etc.) in both lighting and non-lighting contexts, and other devices in other industrial application contexts.
In example implementations, system 200 may include a master-slave communication ring 200D configured to drive LEDs to put on the moving light displays. The master-slave communication ring 200D may be configured as a modular system. In example implementations, master-slave communication ring 200D, may include a master device (e.g., master device 20, master controller) connected to several slave devices (e.g., slave devices such as slave 1, slave 2, slave 3, . . . slave n−3, slave n−2, slave n−1, etc.) in series. The slave devices can be referred to as a set of slave devices. Accordingly, the master device 20 and the slave devices collectively define the master-slave communication ring 200D. The slave devices may be configured to control or drive (e.g., be drivers of) individual LEDs or groups of LEDs. Each slave device may control or drive one or more LED branches (e.g., 4 to 16).
In example implementations, master device 20 and the slave devices, due to processing variations, may have internal clocks that are not comparably tuned or well synchronized device-to-device. The systems (e.g., system 200) and methods (e.g., method 400,
In example implementations, master device 20 and the slave devices (e.g., slave 1, slave 2, slave 3, etc.) may be serially wired together (or connected) in a sequence or a ring in a master-slave communication ring (e.g., as a master-slave communication ring 200D). The devices may be connected in series by wired busses (e.g., Universal Asynchronous Receiver Transmitter (UART), Local Interconnect Network (LIN), Controller Area Network (CAN), or Serial Peripheral Interface (SPI) busses). The wired busses can include, for example, a bus B0 between master device 20 and slave 1, a bus B1 between slave 1 and slave 2, a bus B3 between slave 2 and slave 3, etc., that have serial communication interfaces (e.g., serial peripheral interfaces (SPIs) for communicating signals (e.g., digital logic signals) between the devices (e.g., master device and slave devices) in the master-slave communication ring 200D. One or more of the slave devices (e.g., each slave device) may include a shift register (e.g., first in-first out (FiFo) shift register (e.g., FiFo shift register 21)) and can receive, store, and transmit signal frames utilizing the (FiFo) shift register. Each digital signal frame may include a set of bits. A size of a signal frame may be characterized by the number of bits in the set of bits in the frame. Thus, a frame with N bits may be characterized having a length of N bits. In a time dimension, a length of signal frame can be characterized as a “frame duration,” i.e., the time it takes for a transmitting device to transmit a frame of N bits. The transmitting device may take a time (=T-bit) to transmit a single bit. In such case, a frame duration of the signal frame is given by the number of bits (N) in the frame multiplied by the time (e.g., T-bit) it takes to transmit a single bit (i.e., frame duration=N*T-bit).
The communication direction within the master-slave communication ring 200D can be in a direction of the arrows as shown in
For a moving light display (e.g., on display 100,
One or more of the frames may have a fixed number of bits including a start bit and an end bit. An n-bit frame may, for example, be n bits wide (e.g., with n=3 to 100 bits). The example frames discussed herein may be 10 bits wide (including e.g., 8 data bits, a start bit and a stop bit).
A frame transmission rate of the frames can be defined by a time interval (T-frame) between two frame transmissions (in other words, a rate=T-frame here corresponds to one frame transmission per T_frame seconds).
In example implementations, one or more of the frames may be transmitted by master device 20 at a constant rate (e.g., a constant frame rate=T-frame, which does not vary over time) defined by master device 20. Each of the frames sent by master device 20 every T-frame seconds may have a time length or duration (e.g., T_frame). In some implementations, one or more of the frames input to and/or received by a slave device are output by the slave device to the next slave device (e.g., adjacent slave device) in communication order within the master-slave communication ring 200D.
In some implementations, the frames propagated through the master-slave communication ring 200D can be synchronized (e.g., the duration times of frames propagations on the master-slave communication ring 200D can be aligned with the start of a new frame). In some implementations, the frames propagated through the master-slave communication ring 200D can be aligned for a proper or collision-free presentation of the moving light display by the various LEDs controlled by the different slave devices.
However, due to semiconductor processing variations, internal clocks in the different slave devices may have different time intervals corresponding to a bit duration (time it takes to transmit a bit). In other words, a transmission time duration (T_bit) of a bit transmitted by a slave device can vary from slave device to slave device. This can result in the frames output or transmitted by the slave devices to the next slave devices (e.g., downstream slave devices, adjacent slave devices) in the master-slave communication ring 200D to have varying frame durations and can complicate the synchronization needed for collision-free presentation of the moving light display.
In example implementations, the master device and the slave devices may be functionally interchangeable programmable devices for sending and receiving the plurality of digital signal frames at a constant rate over the master-slave communication ring.
A method for synchronizing frames (e.g., synchronizing the start times of frame propagations and frame durations) in the master-slave communication ring 200D that does not depend on internal clocks of the slave devices is disclosed herein. In the method, a T_frame sent over the master-slave communication ring 200D at a constant rate (i.e., rate=T_frame) by master device 20 may be used as a reference to set or reset a time value (T-bit) for a single bit transmission in a slave device. Based on a T_frame rate measurement at a slave device in the master-slave communication ring 200D, the T_bit of the slave device can be regulated to maximize available time for transmission (retransmission) of frames by the slave device, to avoid collision, and/or to maintain a clock oversampling ratio (OSR) for robust decoding of the signal frames. A time out on the detection of incoming frames can be used to latch the signal frames content in one or more of the slave devices.
Signal frame 51 may have a frame duration of frame duration B1, and a time value (T_bit B) for a single bit transmission equal to the frame duration B1 divided by the total number of bits (i.e., 10) in signal frame 51. The slave device may have a typical internal clock rate that may be faster than the internal clock rate of master device 20 (in other words, the time value (T_bit B) for a single bit transmission in signal frame 51 is less than the time value (T_bit A) for a single bit transmission in signal frame 50. Further, while frame duration B1 is less than frame duration A1 (
In example implementations, each slave device, to maintain a clock oversampling ratio (OSR) for robust decoding of the signal frames on the master-slave communication ring, can adjust a transmission time duration of a bit upward (slowing the transmission speed of the frames) when retransmitting the received digital signal frames (which can be a subset of the digital signal frames) to an adjacent slave device within the order of the master-slave communication ring (e.g., the next slave device).
In example implementations, each slave device, to avoid a risk of digital signal frame collisions on the master-slave communication ring, can adjust a transmission time duration of a bit downward when transmitting the received digital signal frame from the FiFo register to the next device.
In some example implementations, the time value (e.g., T_bit C,
Method 400 includes transmitting signal frames from the master device over the busses to the slave devices in the ring, the slave devices coupled to light sources (410). The busses may be serial communication interfaces. The busses may, for example, be UART, LIN, CAN. or SPI busses. The signal frames may be transmitted at a constant time interval or rate (e.g., rate=T_frame, corresponding to one transmitted frame per T_frame seconds) (in other words the rate, T-frame, is the time interval between two signal frame transmissions).
Method 400 can further include transmitting signal frames from each slave device to the next slave device in series in the master-slave communication ring (block 420). Each slave device may transmit the signal frames at the same rate (e.g., rate=T_frame) at which the master device is transmitting signal frames.
Transmitting signal frames from each slave device to the next slave device in series in the master-slave communication ring (block 420), includes: At each slave device in the master-slave communication ring, storing a received signal frame in a FiFo shift register (430), detecting (also can be referred to as identifying) a start of a received signal frame (440) (received from an upstream device in the master-slave communication ring), and in response, start sending a signal frame stored in the FiFo shift register to the next slave device in the master-slave communication ring (450).
Transmitting signal frames from each slave device to the next slave device in series in the master-slave communication ring (block 420), further includes: at the slave device, detecting an end of transmission of signal frames from the master device (460), and in response, latching the content of the FiFo shift register in the slave device (470).
Detecting the start of the received signal frame (block 420) may include storing the received signal frame locally in a FiFo shift register (e.g., FiFo shift register 21) in the slave device. A time out on the frame detection (at block 420) latches the content of the FiFo shift register in the slave device. This latching may be based on a latching protocol depending solely on a time out on the frame detection. There may be no need for a separate signal to latch register content. In example implementations, a protocol without a separate LATCH signal can run over different systems (e.g., UART, LIN, CAN, or SPI etc.).
Using method 400, the last slave device in the master-slave communication ring receives the same information for local clock tuning as the first slave device. Each slave device may tune or adjust the local clock (e.g., T_bit) for high clock OSR and high resolution. In method 400, each slave device can regulate the outgoing T_bit to a target value based on the received signal frame (i.e., the received T_frame reference).
In example implementations, the slave devices may not include non-volatile memory or other internal clock references that could be used for trimming internal time bases to synchronize input and output frames from a slave device. Instead, the input and output frames from the slave device may be synchronized using the constant frame transmit rate (e.g., rate=T_frame) of the master device (e.g., master 20).
In some implementations, a method can include transmitting a plurality of signal frames from a master device over an input bus at a constant rate to a first slave device from a set of slave devices where the first slave device is coupled at least one light source. The method can include transmitting the plurality of signal frames from the first slave device to a second slave device from the set of slave devices where the set of slave devices is connected in series within a master-slave communication ring. The method can include any of the following, in any combination.
In some implementations, the input bus is a serial communication bus (e.g., UART, LIN, CAN, or SPI bus). In some implementations, transmitting the plurality of signal frames from the first slave device to the second slave device includes transmitting the plurality of signal frames to the second slave device at the constant rate at which the master device is transmitting the plurality of signal frames. In some implementations, transmitting the plurality of signal frames from the first slave device to the second slave device includes transmitting the plurality of signal frames to the second slave device at the constant rate at which the master device is transmitting the plurality of signal frames. In some implementations, transmitting the plurality of signal frames from the first slave device to the second slave device includes storing the plurality of signal frames in the second slave device in a FiFo shift register.
In some implementations, the method can include detecting a start of a first signal frame from the plurality of signal frames at the first slave device in the master-slave communication ring. The method can include, in response to the detecting the start of the first signal frame, sending a second signal frame from the plurality of signal frames stored in the FiFo shift register to the second slave device in the master-slave communication ring.
In some implementations, the method can include detecting an end of transmission of the plurality of signal frames from the master device at the first slave device. The method can include, in response to the detecting the end of transmission, latching content of the FiFo shift register in the first slave device.
Slave device 19 may include an input terminal 22 and an output terminal 23 (e.g., on bus B0 and bus B1,
Decoder 25 may process the signals (including for example, signal frame 50, or signal frame 51,
First sub-register SR-0 may be used as a staging area for received signal frames. Decoder 25 may decode and unpack (e.g., remove the start bit and the stop bit), and populate (i.e., store in) the first sub-register SR-0 with the unpacked received signal frame (e.g., 8 data bits of the received signal frame). As more signal frames are received, the contents of each of the sub registers may be shifted to the next sub-register in the chain of sub-registers (e.g., SR-0, SR-1, SR-2, . . . , SR-n, etc.) each time a start of a new signal frame being received is recognized. When all the registers including the last sub-register (SR-n) in the chain are filled, on receipt of a new signal frame at terminal 22, the contents of the last sub-register SR-n may be shifted (as indicated by the arrows labelled “t_message”) and transmitted to the next slave device in the master-slave communication ring through terminal 23. The contents of the last sub-register (SR-n) may be transmitted to the next slave device after encoding in encoder 26 and amplification by amplifier 27.
Encoder 26 may prepare the contents of the last register SR-n for transmission to the next slave device as a signal frame by padding (e.g., adding a start bit and a stop bit) to the 8-bit contents, and resetting a time bit value (e.g., t-bit 28) so that the frame duration of the transmitted signal frame is about the target frame duration (Target duration,
When no further signal frames are being transmitted over the master-slave communication ring by the master device, encoder may detect an end of transmission by, for example, a time out procedure (since the master device transmits at a constant rate T-frame). In response to the end of signal frame transmission by the master device, LATCH timer 31 may initiate a procedure (e.g., Latch 32) to latch FiFo shift register 21.
In the latch procedure, contents of all sub-registers (e.g., SR-0, SR-1, SR-2, . . . , SR-n) are transferred to corresponding memory logic registers (e.g., memory registers M1, M2, M3, . . . , Mn) that control operation of the LEDs (e.g., LED 10) driven by the slave device 19.
During the latch procedure, slave device diagnostics data that may have been detected and stored, for example, in diagnostics registers (e.g., DIAG1, DIAG2, DIAG3, . . . , DIAGn) are transferred to corresponding sub-registers (e.g., SR-1, SR-2, . . . , SR-n) replacing the sub-register signal frame content transferred to the memory registers. In example implementations, the next several times a signal frame transmission from the master device is received at slave device 19 (e.g., at SR-0), the diagnostics data now stored in the sub-registers (e.g., SR-1, SR-2, . . . , SR-n) is pushed or transmitted (one sub-register at a time through the last sub-register SR-n)) to the next slave device in the master-slave communication ring. In the master-slave communication ring, the diagnostics data transferred from one slave device to the next slave device will eventually make its way to the master device, for example, for analysis or remediation.
A path (of the diagnostics data through slave device 19 is schematically shown as a dashed line path 34 in
In the specification and/or figures, typical embodiments have been disclosed. The present disclosure is not limited to such exemplary embodiments. The use of the term “and/or” includes any and all combinations of one or more of the associated listed items. The figures are schematic representations and so are not necessarily drawn to scale. Unless otherwise noted, specific terms have been used in a generic and descriptive sense and not for purposes of limitation.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art. Methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present disclosure. As used in the specification, and in the appended claims, the singular forms “a,” “an,” “the” include plural referents unless the context clearly dictates otherwise. The term “comprising”, and variations thereof as used herein is used synonymously with the term “including” and variations thereof and are open, non-limiting terms. The terms “optional” or “optionally” used herein mean that the subsequently described feature, event or circumstance may or may not occur, and that the description includes instances where said feature, event or circumstance occurs and instances where it does not. Ranges may be expressed herein as from “about” one particular value, and/or to “about” another particular value. When such a range is expressed, an aspect includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent “about,” it will be understood that the particular value forms another aspect. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint.
Some implementations may be implemented using various semiconductor processing and/or packaging techniques. Some implementations may be implemented using various types of semiconductor processing techniques associated with semiconductor substrates including, but not limited to, for example, Silicon (Si), Gallium Arsenide (GaAs), Gallium Nitride (GaN), Silicon Carbide (SiC) and/or so forth.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled 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 scope of the implementations. It should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The implementations described herein can include various combinations and/or sub-combinations of the functions, components and/or features of the different implementations described.