Various features of the embodiments can be more fully appreciated, as the same become better understood with reference to the following detailed description of the embodiments when considered in connection with the accompanying figures, in which:
For simplicity and illustrative purposes, the principles of the present invention are described by referring mainly to exemplary embodiments thereof. However, one of ordinary skill in the art would readily recognize that the same principles are equally applicable to, and can be implemented in, all types of systems that utilize serial communication, and that any such variations do not depart from the true spirit and scope of the present invention. Moreover, in the following detailed description, references are made to the accompanying figures, which illustrate specific embodiments. Electrical, mechanical, logical and structural changes may be made to the embodiments without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents.
Embodiments generally relate to systems and methods for communicating with dumb display driver integrated circuits (“ICs”) using existing hardware. More particularly, red, green and blue (RGB) data lines are used as a communication channel for the overscan regions. In current driver IC designs, the RGB signals are ignored when not scanning in the active area. This communication scheme can be initiated when both HSync and VSync signals are asserted as this will guarantee non-interference with the active area signals.
Another embodiment relates generally to communicating with registers in a dumb display driver IC using the active area scan. More particularly, data may be placed within a region of the active scan area of an LCD. The small number of registers in the driver IC and the relatively infrequent updates that are required for putting this information in the active scan area for one frame should not be noticeable to the user. This embodiment has the added advantage that no changes are needed to existing processors.
As shown in
Processor 110 may be configured to interface with the shared bus 130. The processor 110 may be configured to implement the software that embodies the functionality of the mobile terminal 100, which may be stored in processor memory 135 (labeled as memory in
Memory 125 may be configured to store information for a user of the mobile terminal 100. For example, a contact list, downloaded music, digital images may be stored in memory 125. The memory 125 may be implemented using a persistent storage such as flash memory. In some embodiments, the storage function of the processor memory 135 may be provided by memory 125.
User interface 115 may be configured to interface with the shared bus 130. The user interface 115 may also be configured to facilitate interaction with a user. As such, the user interface 115 may include media input and output mechanisms. For example, to facilitate voice communications, these mechanisms may include a microphone (not shown) for receiving analog speech signals from a user and a speaker (not shown) for playing out analog speech signals to a user. Further, the mobile terminal 100 may include digital/analog media signals and digital representations of those signals.
The user interface 115 may also include a keypad (not shown). The keypad may be a Bell keypad, a QWERTY keyboard or similar mechanisms. In some embodiments, the keypad may be emulated on the display 120.
The display 120 may be configured to provide a visual interface for a user to interact with the mobile terminal. The display 120 may be implemented with a small form factor LCD.
As shown in
The dumb display driver IC 220 may be configured to generate receive signals over the LCD interface 225 to display data such as an image, video, and/or text on the LCD array 215. The dumb display driver IC 220 may be configured to this data identically. Since the dumb display driver IC 220 has no memory, each frame of data can be different.
The GPU 210 may interface with the LCD interface 225 may include multiple signals which drive the dumb display driver IC 220. The GPU 210 may be configured to render two-dimensional images for the mobile terminal 100. As known to those skilled in the art, GPUs may be purchased from a variety of manufacturers such as Nvidia, Texas Instruments, ATI Technologies, Epson, Freescale, etc.
The LCD interface 225 may include synch signals 245, 250 and at least the red, green, blue lines (230, 235, and 240, respectively). In some embodiments, each color may comprise several lines. For a 16-bit color depth, there may be 5 lines for red, six lines for green and 5 lines for blue. Accordingly, there are 65,536 colors for the 16-bits (i.e., 216=65,536). For an 18-bit color depth, there are six lines for each color yielding 262,144 possible different colors (i.e., 218=262,144). The synch signals 245, 250 may include the vertical and a horizontal, respectively, synch signal as well as a clock signal 250 and a reset line 265. The RGB signal lines 230, 235, 240, respectively (or the color select lines) may be used by the GPU 210 to-set the appropriate color pixel level in the LCD array 215.
The dumb display driver IC 220 may include a bank of registers 265. These registers 265 may be associated with functions of the dumb display driver IC 220. For example, one register may indicate a color mode and another register may indicate color resolution for the LCD array 215. Thus, by placing appropriate values into the respective registers 265, parameters or characteristics, for example, gamma, scan direction, line/frame inversion mode, partial mode, or similar parameters of the LCD array 215 may be changed. The dumb display driver IC 220 may be referred to as a “dumb” display driver since it does not have any memory to temporarily store data.
Returning to
In other embodiments, the GPU 210 may be configured to communicate with the registers 265 of the dumb display driver IC 220 during the active scan region 305 (see
As shown in
In step 410, the GPU 210 may be configured to determine whether the dumb display driver IC 220 is in the overscan region. If the dumb display driver IC 220 is not in the overscan region, the GPU 210 may enter a wait state, in step 415 and proceed to step 405. In other embodiments, the GPU 210 may determine from the current row and column addresses if the dumb display driver IC 220 is in the overscan region.[is this possible]
Otherwise, if the dumb display driver IC 220 is in the overscan region of the LCD array 215, the GPU 210 may be configured to format a data packet for the dumb display driver IC 220, in step 420. More specifically, a data message or payload of memory words may be formed. The memory words are intended for a respective register of the registers 265.
In step 425, the GPU 210 may be configured to concatenate or append a precursor string. The precursor string may be used to indicate to the dumb display driver IC 220 that a data message for the registers 265 is pending.
In step 430, the GPU 210 may be configured to transmit the data packet to the dumb display driver IC 220 over the RGB lines 230, 235, 240. Unlike conventional dumb display drivers and LCD arrays where the RGB lines 230, 235, 240 are left unused during the overscan region, embodiments use the RGB lines 230, 235, 240 as a communication channel to the registers of the dumb display driver IC. Thus, communication may be effectuated without the addition of signal lines.
As shown in
If the dumb display driver IC 220 has not detected the precursor string, the incoming data stream may be processed for display on the LCD array 215. Otherwise, if the dumb display driver IC 220 detects the precursor string while in the overscan region, the dumb display driver IC 220 may be configured to extract the data message from the data stream, in step 520.
In step 525, the dumb display driver IC 220 may be configured to write the appropriate data from the data message into the respective registers 265 of the dumb display driver IC 220.
As shown in
In step 610, the GPU 210 may be configured to embed the data into a digital image. The image may also be retrieved from memory 125 or may be received from another mobile terminal. The formats of the embedded data in various embodiments are depicted in
Format 715 depicts an exemplary format to embed a command/programming data in an image to program the 16-bit registers of the dumb display driver IC 220. Bit position six and bit position eighteen may be configured to be parity bits 717, and the rest of the positions (16-bits) are available for programming as a register command field 719. Accordingly, for example, data formatted according to format 715 may be transmitted to the dumb display driver IC 220 embedded in an image. For format 715, all the registers are written in order starting from the first register and any unlisted registers are skipped.
Format 720 may be configured for pixels that are transmitted to the dumb display IC driver 210 for a 24 bit RGB display in accordance with various embodiments. Format 720 depicts the normal data word for the 24-bit RGB array (e.g., LCD array 215). Format 720 may assign the most significant 8 bits to red 721, the second most significant 8 bits for green 723 and the least significant 8 bits for blue 725. Accordingly, pixels of an image may be formatted specifying the color, which are then driven on an LCD array by the dumb display driver IC 220.
Format 730 may depict a format to program the 16-bit registers of the dumb display driver IC 220 for a 24-bit RGB display. Bit position one may be configured to be a parity bit 732. Bit positions two through eight may be configured to specify an index field 734. The rest of the bit positions 9-24 (16-bits) may be available for programming as a register command field 736. Accordingly, for example, command/programming data may be formatted according to format 730 are then embedded in an image transmitted to the dumb display IC 220.
As shown in
Format 750 depicts a format for embedding a command/programming data in an image to program the 16-bit registers of the dumb display driver IC 220 for either 18-bit LCD array interfacing with a 16-bit GPU or an 18-bit output GPU accessing 16-bit data. Bit position six and bit position eighteen may be configured to be parity bits 752, and the rest of the positions (16-bits) are available for programming as a register command field 754. The parity bits may not be required but are desirable for error checking. Accordingly, for example, pixels may be encoded according to format 750 to be transmitted to the dumb display IC 220 during an active scan. For format 750, all the registers are written in order starting from the first register and any unlisted registers may be skipped.
As an alternative to format 750, format 760 may be utilize to format command/programming data. Format 750 includes chameleon bits 752 at bit positions one, two, six, seven, eight, thirteen, fourteen and eighteen. These chameleon bits 752 may be used to program to match the surrounding pixels on order to better hide the appearance of the embedded command/programming data. Format 760 also includes parity bits 754 at bit positions five and twelve but they are not required. However, the parity bits are desirable for error checking. The rest of the bit may be used as an 8-bit register command field 754. However, sending only eight bits of command/programming data may require sending twice as many pixels to fill the registers.
Returning to
In step 620, the GPU 210 may drive the embedded image onto the active scan area of the LCD array 215.
Certain embodiments may be performed as a computer program. The computer program may exist in a variety of forms both active and inactive. For example, the computer program can exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats; firmware program(s); or hardware description language (HDL) files. Any of the above can be embodied on a computer readable medium, which include storage devices and signals, in compressed or uncompressed form. Exemplary computer readable storage devices include conventional computer system RAM (random access memory), ROM (read-only memory), EPROM (erasable, programmable ROM), EEPROM (electrically erasable, programmable ROM), and magnetic or optical disks or tapes. Exemplary computer readable signals, whether modulated using a carrier or not, are signals that a computer system hosting or running the present invention can be configured to access, including signals downloaded through the Internet or other networks. Concrete examples of the foregoing include distribution of executable software program(s) of the computer program on a CD-ROM or via Internet download. In a sense, the Internet itself, as an abstract entity, is a computer readable medium. The same is true of computer networks in general.
While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments without departing from the true spirit and scope. The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. In particular, although the method has been described by examples, the steps of the method may be performed in a different order than illustrated or simultaneously. Those skilled in the art will recognize that these and other variations are possible within the spirit and scope as defined in the following claims and their equivalents.