Modular device, system, and method for reconfigurable data distribution
Claim Score by NHIP
Abstract
Systems, methods, and computer program product embodiments for a reconfigurable system are described herein. An embodiment includes a power supply an integrated controller configured to host a plurality of sensors and a display. The embodiment also includes a video decoder configured to receive a plurality of inputs and route a selected input based on an interaction with the display. Further, the embodiment includes memory devices configured to store the selected input.

Term
7 yearsto projected expiry
Projected expiry 4 October 2033, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
18 claims: 3 independent, 15 dependent
- 1A reconfigurable data distribution system, comprising:an integrated information distribution apparatus, wherein the integrated information distribution apparatus comprises: a power supply;an integrated controller configured to host a plurality of sensors and a display;a video decoder configured to receive a plurality of inputs and route a selected input based on an interaction with the display;and memory devices configured to store the selected input.
- 8Broadest claimClaim Score 84, broad(NHIP)A method for reconfigurable data distribution, comprising:hosting a plurality of sensors and a display;attaching and managing the plurality of sensors;receiving a location signal from the display based on an interaction with the display;converting the location signal to a control signal;and routing one or more inputs from the plurality of sensors to the display based on the control signal.
- 12A tangible computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes at least one computing device to perform operations comprising:hosting a plurality of sensors and a display;attaching and managing the plurality of sensors;receiving a location signal from the display based on an interaction with the display;converting the location signal to a control signal;and routing one or more inputs from the plurality of sensors to the display based on the control signal.
Independent claims3
146 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATION
0001This patent application is a continuation in-part of U.S. application Ser. No. 14/046,030 filed Oct. 4, 2013, which is herein incorporated by reference in its entirety.
BACKGROUND
00021. Technical Field
0003The present disclosure relates generally to the integration of various networking functions into a single circuit board for a networked system to enable rapid integration and dynamically modifiable output to display devices.
00042. Background
0005Specialized vehicles, such as armored vehicles, use comprehensive networked systems to enable the rapid “plug and play” of disparate subsystems within the vehicle. These networked systems seek to provide an “any data, any station” environment in which the data from any sensor associated with the vehicle may be output to any display associated with the vehicle—regardless of whether the different sensors or other inputs use standardized operating platforms or proprietary ones. To implement this functionality, these comprehensive networked systems have cobbled together commercial, off-the-shelf components with a few custom components using custom cabling harnesses.
0006The cobbling together of commercial components as well as custom components impedes production flow, complicates testing during development, and ultimately hinders the speed in which these comprehensive networked systems can reach the market. The design of the different components, as well as their interconnections, hinders efforts to reduce the physical footprint of the comprehensive networked systems within the vehicles. In addition, these systems have typically used active cooling components that have a lower mean-time-before-failure (MTBF) than solid state components. Accordingly, devices, methods, and systems are needed that overcome limitations with respect to the size, functionality, and speed to market for comprehensive networked systems, as well as other disadvantages.
BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
0007<figref idref="DRAWINGS">FIG. 1</figref> is a diagram illustrating a modular device in a reconfigurable data distribution system, according to an embodiment.
0008<figref idref="DRAWINGS">FIG. 2A</figref> is a diagram illustrating a modular device, according to an embodiment.
0009<figref idref="DRAWINGS">FIG. 2B</figref> is a diagram illustrating a modular device, according to another embodiment.
0010<figref idref="DRAWINGS">FIG. 3</figref> is a diagram illustrating a power supply of an exemplary modular device, according to an exemplary embodiment.
0011<figref idref="DRAWINGS">FIG. 4</figref> is a diagram illustrating multiple modular devices in a reconfigurable data distribution system, according to an exemplary embodiment.
0012<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart illustrating an operation of a video switch matrix, according to an embodiment.
0013<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart illustrating an operation of a modular device, according to an embodiment.
0014<figref idref="DRAWINGS">FIG. 7</figref> is a diagram illustrating a reconfigurable data distribution system in a particular vehicle, according to an embodiment.
0015<figref idref="DRAWINGS">FIGS. 8A-8C</figref> are exemplary screenshots illustrating example outputs from a modular device on a singular display device, according to embodiments.
0016<figref idref="DRAWINGS">FIG. 9</figref> is a diagram illustrating a modular device in a reconfigurable data distribution system, according to an embodiment.
0017<figref idref="DRAWINGS">FIG. 10</figref> illustrates an application of a modular device in a reconfigurable data distribution system, according to an embodiment.
0018<figref idref="DRAWINGS">FIG. 11</figref> is a flowchart illustrating a distribution of data flow of a modular device, according to an embodiment.
0019<figref idref="DRAWINGS">FIG. 12</figref> is a flowchart illustrating a distribution of control flow of a modular device, according to an embodiment.
0020<figref idref="DRAWINGS">FIG. 13</figref> is an example computer system useful for implementing various embodiments.
0021The features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. Generally, the drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
DETAILED DESCRIPTION
0022While the present disclosure is described herein with reference to illustrative embodiments for particular applications, it should be understood that the disclosure is not so limited. Those skilled in the relevant art(s) will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the disclosure would be of significant utility.
System Overview
0023<figref idref="DRAWINGS">FIG. 1</figref> illustrates an exemplary reconfigurable data distribution system <b>100</b>, according to an embodiment. Exemplary reconfigurable data distribution system <b>100</b> is provided for the purpose of illustration and is not limiting of embodiments of the present disclosure. In an embodiment, the system <b>100</b> may be a version of an Electronic Keel (EKeel)® system. As shown in <figref idref="DRAWINGS">FIG. 1</figref>, system <b>100</b> includes a plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>, integrated system <b>104</b>, and a plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. The plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may include temperature sensors, pressure sensors, velocity sensors, data loggers, image sensors, and/or cameras, just to name a few examples.
0024The inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may be mounted on motors or actuators that allow the system to position the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>based on prior feedback from data generated by the system or input by a user. The user may be a human. Alternatively, the user may be a computer or software application. In an embodiment, the request may be based on the user's browsing of a particular website, use of a cloud computing service, or some other remote application as will be understood by a person skilled in the relevant art(s). As just one example, inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may be mounted externally on an armored vehicle, such as a Mine Resistant Armor Protected (MRAP) vehicle. Other vehicle types relating to land, sea, or air are also within the scope of the present disclosure, as a person skilled in the relevant art(s) would appreciate. The disclosure is also applicable to any environment or application having multiple heterogeneous inputs and outputs. The inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>provide data wirelessly or via wired connections to the integrated system <b>104</b>.
0025The inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>provide their collected data to the integrated system <b>104</b>. For example, the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may provide collected data in analog format for processing or routing by the integrated system <b>104</b>. Alternatively, the collected data may be provided in digital form to the integrated system <b>104</b>, as will be appreciated by those skilled in the relevant art(s). The integrated system <b>104</b> may receive the collected data from any one or more of the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>as streams of data, regardless of the operational platform of a particular input. As the data is received, if the data is in analog format, the integrated system <b>104</b> may convert it into data packets. In an embodiment, the data packets may be created according to the internet protocol, although other protocols may be used instead as will be recognized by those skilled in the relevant art(s).
0026In an embodiment, the integrated system <b>104</b> may be an integrated computer built on a single circuit board, such as a computer-on-module. In one example, the integrated system <b>104</b> may be designed based on the COM Express® specification hosted by the PCI Industrial Computer Manufacturers Group, for example the Type 6 specification. The Type 6 specification includes a pin out definition in the COM Express® specification, which may include up to 24 peripheral component interconnect (PCI) express lanes, 1 PCI Express Graphics (PEG) interface, 4 serial advanced technology attachment (SATA) ports, 1 local area network (LAN) port, 8 universal serial bus (USB) 2.0 ports, 4 USB 3.0 ports, and multiple display interfaces including video graphics adapter (VGA), low-voltage differential signaling (LVDS), PEG, and device driver interface (DDI). As will be recognized by those skilled in the relevant art(s), the Type 6 specification is just one example. Embodiments of the present disclosure may be implemented in other ways that incorporate the features onto a single circuit board with a similar form factor and range of capabilities.
0027The integrated system <b>104</b> may include one or more dedicated peripherals integrated on the same single circuit board to ensure computational reliability and enable additional monitoring and control of the overall system <b>100</b>. The integrated system <b>104</b> may also include a dedicated microprocessor built on the same circuit board as the rest of the system. The dedicated microprocessor, such as dedicated microprocessor <b>210</b> that will be discussed in more detail below with respect to <figref idref="DRAWINGS">FIG. 2A</figref>, may be responsible for attaching and managing various peripherals to the system <b>100</b>.
0028In an embodiment, the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>may be a plurality of touch screen monitors, or a mixture of touch screen and non-touch capable monitors, just to name a few examples. After receiving the data from the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>and performing any necessary or requested processing on the data, the integrated system <b>104</b> may route the data, some subset of the data, and/or additional data derived from the received data, to one or more of the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. In operation, the system <b>100</b> may enable the viewing of any data source, for example any of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>, at any display <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. The viewable data may be processed first by the integrated system <b>104</b>, and/or be displayed as the original data (e.g., analog data) from the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n. </i>
0029The integration of the different computational and peripheral elements onto a single circuit board may significantly reduce the size of the overall system <b>100</b>. Additionally, in an embodiment the system <b>100</b>'s enclosure may be a conformal heat sink design that enables a passively cooled system. In such an embodiment, the use of solid state parts instead of moving parts for cooling may advantageously increase the mean time before failure. Further, the integration of the computational and peripheral elements onto a single circuit board may enhance the production flow, simplify the testing process, and expedite the speed of these devices to market.
Integrated System
104
0030<figref idref="DRAWINGS">FIG. 2A</figref> illustrates a modular device, such as integrated system <b>104</b>, according to a first embodiment. The integrated system <b>104</b> may include a power supply <b>208</b>, a dedicated microprocessor <b>210</b>, a central processing unit (CPU) host <b>212</b>, a dedicated interface <b>214</b>, a plurality of interfaces <b>216</b> through <b>218</b>, a video encoder <b>222</b>, a switch matrix <b>224</b> and a communication hub <b>226</b>, and a multiplexer <b>228</b>. As will be recognized by those skilled in the relevant art(s), embodiments here are described with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships are appropriately performed.
0031In <figref idref="DRAWINGS">FIG. 2A</figref>, inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may send and receive data via interfaces <b>214</b>, <b>216</b>, and <b>218</b>. The dedicated interface <b>214</b> may be a USB device dedicated to serial communication. In an embodiment, the dedicated interface <b>214</b> may specifically be a FT4232 USB hi-speed integrated circuit, produced by Future Technology Devices International, Ltd. of Glasgow, United Kingdom. Other dedicated circuits may instead be used, as will be understood by those skilled in the relevant art(s). In such an embodiment, the dedicated interface <b>214</b> may include a controller area network (CAN) bus-based device, two RS232 serial devices, and at least one COM port to enable communication to the dedicated microprocessor <b>210</b>. This enables a dedicated, uninterrupted command and control scheme for the integrated system <b>104</b>. As will be recognized by those skilled in the relevant art(s), the dedicated interface <b>214</b> may include more or different interfacing devices as those indicated above.
0032The CAN bus-based device of dedicated interface <b>214</b> may be a dedicated CAN controller that operates at or around 500 Kbits/second, although other speeds may be possible as will be recognized by those skilled in the relevant art(s). The CAN controller may communicate via a CAN data bus, for example a CAN 2.0B specification-compliant data bus. Dedicated software for the CAN data bus, as well as for the dedicated COM port, may allow a full J1939 configurable interface for vehicle applications. In an embodiment, the CAN data bus may be used primarily for vehicle data diagnostics and health monitoring.
0033The two RS232 serial devices of dedicated interface <b>214</b> may enable the attachment of additional serial peripheral devices to the integrated system <b>104</b>. In an embodiment, the two RS232 serial devices are dedicated to the CPU host <b>212</b> via the dedicated interface <b>214</b>. As will be recognized by those skilled in the relevant art(s), fewer or more than two RS232 serial devices may be implemented.
0034Interfaces <b>216</b> and <b>218</b> may represent one or more interfaces to one or more corresponding peripheral devices. Although only two interfaces are shown, a person skilled in the relevant art(s) will recognize that additional or fewer interfaces may be implemented for communication with additional or fewer peripheral devices. Interface <b>216</b> may be, for example, an Ethernet switch interface. For simplicity of discussion, reference to interface <b>216</b> will be with respect to an Ethernet switch interface <b>216</b>, although other components may be used instead. The Ethernet switch interface <b>216</b> may be integrated on the same circuit board as the other circuits within integrated system <b>104</b>, such as with the backplane, thereby reducing design costs and constraints. Integration of an Ethernet switch removes the necessity of an external Ethernet switch for networking IP-based devices together to the system <b>100</b>. The Ethernet switch may support various Ethernet speeds, for example a gigabit speed. Other speeds, both faster and slower, are envisioned as will be recognized by those skilled in the relevant art(s).
0035Interface <b>218</b> may be an interface for any other peripheral device input <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>that provides a data stream to the integrated system <b>104</b>, for example temperature sensors, pressure sensors, velocity sensors, data loggers, image sensors, and/or cameras. Interfaces <b>214</b>, <b>216</b>, and <b>218</b> may communicate with the CPU host <b>212</b> via signal paths <b>264</b>, <b>262</b>, and <b>260</b>, respectively. Signal paths <b>264</b>, <b>262</b>, and <b>260</b> may be single traces or buses.
0036CPU host <b>212</b> is the central component of the integrated system <b>104</b> and serves as the primary host for all attached peripherals, whether integrated or external to the integrated system <b>104</b>. As indicated above, the CPU host <b>212</b> may be, for example, implemented according to the motherboard standards in the COM Express specification. In one embodiment, the CPU host <b>212</b> may be implemented as a Type 6 COM Express board.
0037The dedicated microprocessor <b>210</b> may be responsible for attaching and managing various peripherals to the system <b>100</b>. In an embodiment, the dedicated microprocessor <b>210</b> may manage the programming of the low-level circuitry of the integrated system <b>104</b>. The dedicated microprocessor <b>210</b> may serve as the gateway for enabling two or more integrated systems <b>104</b> to connect and share information, for example across a Xlink interface as will be discussed in more detail below with respect to <figref idref="DRAWINGS">FIGS. 2B and 3</figref>. The dedicated microprocessor <b>210</b> may send and receive messages with the CPU host <b>212</b> via data bus <b>254</b>.
0038In an embodiment, the dedicated microprocessor <b>210</b> may be based on a Microprocessor without Interlocked Pipeline Stages (MIPS) architecture and programmable using the C programming language. Additionally or alternatively, the dedicated microprocessor <b>210</b> may be a specific, non-time-dependent state machine that is deterministic. The code which the dedicated microprocessor <b>210</b> executes may, for example, run and execute from a boot loader. This enables expandability when deployed in the field without requiring physical programming.
0039The CPU host <b>212</b> may output data for display at one or more of the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>via one or more of communication hub <b>226</b> and switch matrix <b>224</b>. For sake of simplicity, this discussion will refer to communication hub <b>226</b> as USB hub <b>226</b> and switch matrix <b>224</b> as video switch matrix <b>224</b>. As will be understood by those skilled in the relevant art(s), other types of hubs and matrixes are possible. The USB hub <b>226</b> may communicate with the CPU host <b>212</b> via USB bus <b>256</b>. The USB bus <b>256</b> may enable the dedicated microprocessor <b>210</b> to attach additional USB input devices or output devices to the CPU host <b>212</b>, depending on how user or situational requirements change over time. In an embodiment, the USB hub <b>226</b> may output data to one or more of the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>via a multiplexer <b>228</b>, which receives data signal <b>266</b> from the USB hub <b>226</b> and outputs USB output signals over the data bus <b>270</b>.<b>1</b> through <b>270</b>.<i>m </i>to one or more of the displays.
0040Any USB input may be output to any display <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. In an example, the data input from any input from among inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may be routed to any display <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. The data input is not necessarily only video data. According to embodiments of the present disclosure, any data input may be routed to any data output. In one example, that input may be video data. The input may additionally or alternatively be radar data, LIDAR data, radio data, etc.
0041The video switch matrix <b>224</b> may communicate with the CPU host <b>212</b> via video bus <b>258</b>. The video switch matrix <b>224</b> may be a bus matrix that enables the implementation and display of video sources and routing of analog video sources. In an embodiment, the video switch matrix <b>224</b> may enable the implementation and display of VGA sources, for example 3 sources. More or fewer sources are possible, as will be recognized by those skilled in the relevant art(s). These sources may be the CPU processor of the CPU host <b>212</b>, another integrated system <b>104</b> discussed with respect to <figref idref="DRAWINGS">FIG. 2B</figref> below, and another that has been ported out to a MIL-Circ header used for displaying of an external source. Using the video switch matrix <b>224</b>, any video input may be output to any of the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. The video switch matrix <b>224</b> determines what to output to each display <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. In an embodiment, the video switch matrix <b>224</b> is fully digital and integrated, cycling millions of times a second to enable each display to be reconfigurable on-the-fly.
0042The video bus <b>258</b> may be programmable and adjustable. In an embodiment, the video bus <b>258</b> may be a keyboard-video-mouse (KVM) style bus. The keyboard and mouse devices may be additional peripherals that may be controlled by the CPU host <b>212</b> and/or the dedicated microprocessor <b>210</b>, as discussed above.
0043The video switch matrix <b>224</b> may also enable the routing of data from a plurality of analog video sources to a plurality of analog outputs, such as one or more of the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. In one embodiment, the integrated system <b>104</b> may receive up to four analog video inputs, for example as a subset of the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>. As will be recognized by those skilled in the relevant art(s), the integrated system <b>104</b> may be capable of receiving more video inputs. As will be discussed with respect to <figref idref="DRAWINGS">FIG. 2B</figref> below, two or more integrated systems <b>104</b> may be attached together via one or more data paths, enabling the attachment of additional video sources, such as analog video inputs, for routing to the plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m. </i>
0044In an embodiment, the video bus <b>258</b> may also route the plurality of analog video inputs to the video encoder <b>222</b>. The video encoder <b>222</b> may be any type of video server that is capable of capturing analog video data and converting the analog signal(s) into digital video streams. The video encoder <b>222</b> may be attached to the CPU host <b>212</b> and be PCI or PCIe-based. Once analog video data is captured by the video encoder <b>222</b>, it may be shared digitally throughout the system <b>100</b>, for example using IP, and displayed on computer monitors instead of only analog monitors via the video switch matrix <b>224</b>. The video encoder <b>222</b> may include one or more analog video inputs, for example received from the video bus <b>258</b>. In an embodiment, the video encoder <b>222</b> may be able to receive up to 4 analog video signals for conversion into digital video streams, although more signals may be converted as will be recognized by those skilled in the relevant art(s).
0045The video encoder <b>222</b> may also include a dedicated processor for encoding analog video data based on a compression format, and for performing video analysis. Alternatively or in addition, some or all of the processing may occur at the CPU host <b>212</b> and/or the dedicated microprocessor <b>210</b>. The video encoder <b>222</b> may detect and process various analog formats, including the national television system committee (NTSC) and phase alternating line (PAL) formats. As will be recognized by those skilled in the relevant art(s), other video signal formats may also be used.
0046The video encoder <b>222</b> may also include a dedicated memory for storing the device's operating instructions and for buffering purposes. The video encoder <b>222</b> may also include its own dedicated input and output interfaces, for example a dedicated Ethernet port for sending and receiving digital data and/or an RS232 port to assist in controlling the functionality of one or more analog video sources. Additionally or alternatively, the video encoder <b>222</b> may use the interfaces <b>214</b>, <b>216</b>, and <b>218</b> to communicate with one or more of the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n. </i>
0047In an embodiment, the video bus <b>258</b> includes both the VGA and analog video data. In an alternative embodiment, the video bus <b>258</b> may be composed of two distinct busses for each of the VGA and analog data respectively.
0048The power supply <b>208</b> may supply the different power needs of all of the devices integrated with integrated system <b>104</b>. The power supply <b>208</b> may receive power input <b>250</b>, for example from a MIL-STD power interface provided in military vehicles. As will be recognized those skilled in the relevant art(s), the power supply <b>208</b> may receive power input <b>250</b> from other sources in addition to, or instead of, a MIL-STD power interface in a military vehicle. The power supply <b>208</b> will be addressed in more detail below with respect to <figref idref="DRAWINGS">FIG. 3</figref>.
0049The different components integrated on the same circuit board in integrated system <b>104</b> have very short signal paths to each other and particularly to the CPU host <b>212</b>, which results in a reduction of information loss. The integrated system <b>104</b> overall has a small form factor. For example, the integrated system <b>104</b> may have a width (x-dimension) of less than 10 inches, such as 9.25 inches, as well as a length (y-dimension) of around 6 inches, and depth (z-dimension) of less than 1 inch, such as 0.093 inches. In one embodiment, the integrated system may have 12 total layers. These are examples only, and one skilled in the relevant art(s) would recognize that other dimensions and combinations are possible without departing from the scope of the present disclosure.
0050<figref idref="DRAWINGS">FIG. 2B</figref> illustrates a modular device, such as integrated system <b>104</b>, according to a second embodiment. For sake of simplicity, only those elements that are different from the elements discussed above with respect to <figref idref="DRAWINGS">FIG. 2A</figref> will be addressed. The integrated system <b>104</b> of <figref idref="DRAWINGS">FIG. 2B</figref> additionally includes a linking module <b>220</b> and a daughter card connector <b>230</b>.
0051The linking module <b>220</b> may be, for example, an XLink that enables the connecting of two or more integrated systems <b>104</b>. In an embodiment, the dedicated microprocessors <b>210</b> of two integrated systems <b>104</b> may share information via the linking module <b>220</b>. The data from inputs to one integrated system <b>104</b> may be routed as connection signal <b>272</b> via the linking module <b>220</b> to the second integrated system <b>104</b> for output at a display connected to the second integrated system, and vice versa. In one example, that data may be analog video data, VGA video data, or data from other video or non-video inputs from among the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n. </i>
0052In further support of the linking module <b>220</b>'s interface, an Ethernet cable may be attached to the Ethernet switch interface <b>216</b> for added bandwidth data sharing between the first integrated system <b>104</b> and the second integrated system <b>104</b>. In embodiments where there are multiple integrated systems <b>104</b> connected, for example via linking module <b>220</b>, the second integrated system <b>104</b> may operate to attach one or more peripherals to the first integrated system <b>104</b>, and vice versa.
0053Daughter card connector <b>230</b> may provide an interface for the integrated system <b>104</b> to enable attachment of a daughter card to the integrated system <b>104</b> to further improve upon the system <b>100</b>'s dimensions and form factor. In an embodiment, the daughter card connector <b>230</b> may enable additional peripheral device(s) to connect via a daughter card so that the additional peripheral device(s) are parallel to the integrated system <b>104</b>'s circuit board, rather than perpendicular.
Power Supply
0054<figref idref="DRAWINGS">FIG. 3</figref> provides a diagram illustrating the power supply <b>208</b> of an exemplary integrated system <b>104</b> according to an exemplary embodiment. The power supply <b>208</b> may be a power system customized from the Advanced Technology eXtended (ATX) specification. The power supply <b>208</b> may be able to continuously operate off of a range of voltage input values, for example ranging from a 6.5V to a 42V power input <b>250</b> and output the standard voltages of 12V, 5V, 3.3V, −5V, and standby 5V and 3.3V. Power input <b>250</b>, for example from a MIL-STD power interface, may first be filtered by input power filter <b>302</b>. In an embodiment, input power filter <b>302</b> may include a common mode filter that provides noise reduction as well as immunity to the changing power-noise environments in which the integrated system <b>104</b> may be found. A first input voltage <b>352</b> may be routed to multiple voltage supply circuits, for example a standby power supply <b>306</b>, CPU host power supply <b>312</b>, a second supply <b>314</b>, and a third supply <b>316</b>.
0055The standby power supply <b>306</b> may receive the first input voltage <b>352</b> and output, in response, a first standby voltage <b>356</b>, a second standby voltage <b>358</b>, and a standby-good signal <b>354</b>. In an embodiment, the standby power supply <b>306</b> may also be connected to a switch circuit (not shown) that may control a run signal in the standby power supply <b>306</b>. When the switch circuit is short circuited, or “on,” it may pull the run signal above a minimum voltage, for example 1.2V. When the switch circuit is “off,” the run signal may be at ground. This is reflected in the standby voltages <b>356</b> and <b>358</b>, as will be addressed below. In an embodiment, the first standby voltage may be 3.3V and the second standby voltage <b>358</b> may be 5V. Although other voltage values are possible, as will be recognized by one skilled in the relevant art(s), these particular voltage values will be used for sake of simplicity in this discussion. The 5V standby voltage <b>358</b> may be output to the rest of the integrated system <b>104</b>, as well as input into each of the other power supplies <b>312</b>, <b>314</b>, and <b>316</b>, and the power check circuit <b>320</b>. The 3.3V standby voltage <b>356</b> may be output to the rest of the integrated system <b>104</b> and input into the power check circuit <b>320</b> and the multi-frequency clock <b>310</b>.
0056The multi-frequency clock <b>310</b> may receive as inputs the 3.3V standby voltage <b>356</b> and the standby-good signal <b>354</b>. The multi-frequency clock <b>310</b> is designed to provide multiple clock signals, at the same or different frequencies, to the other circuits within the power supply <b>208</b>. As will be recognized by those skilled in the relevant art(s), there are many ways to implement the multi-frequency clock <b>310</b> which fall within the scope of this disclosure. In an embodiment, the multi-frequency clock <b>310</b> outputs clock signals <b>360</b>.<b>1</b> through <b>360</b>.<b>4</b>, although any other number may be output as is understood. The clock signal <b>360</b>.<b>1</b> may be output to the CPU host power supply <b>312</b>. The clock signal <b>360</b>.<b>2</b> may be output to the second supply <b>314</b>, and the clock signal <b>360</b>.<b>3</b> may be output to the third supply <b>316</b>. The clock signal <b>360</b>.<b>4</b> may be output to the standby power supply <b>306</b>. The multi-frequency clock <b>310</b> may also provide synchronization, for example to reduce jitter in the clock signals <b>360</b>.<b>1</b> through <b>360</b>.<b>4</b>.
0057The CPU host power supply <b>312</b> may receive as inputs the first voltage input <b>352</b>, the 5V standby voltage <b>358</b>, and the clock signal <b>360</b>.<b>1</b>. The 5V standby voltage <b>358</b> may operate as an on/off signal for the CPU host power supply <b>312</b>, for example corresponding to when the run signal is “on” and “off.” The CPU host power supply <b>312</b> may provide a first output power voltage <b>362</b>. The first output power voltage <b>362</b> is output to the integrated system <b>104</b> for use by other circuits, components, and peripherals, as well as fed to the second supply <b>314</b> and the third supply <b>316</b>. In an embodiment, the first output power voltage <b>362</b> may be a 12V power signal, in accordance with the ATX specification. The CPU host power supply <b>312</b> may also output a CPU host power supply good signal <b>372</b>.<b>1</b> to the power check circuit <b>320</b>.
0058The second supply <b>314</b> may receive as inputs the first voltage <b>352</b>, the 5V standby voltage <b>358</b>, the clock signal <b>360</b>.<b>2</b>, and the first output power voltage <b>362</b>. The 5V standby voltage <b>358</b> may also operate as an on/off signal for the second supply <b>314</b>. The second supply <b>314</b> may provide a second output power voltage <b>364</b>, which is output to the integrated system <b>104</b> for use by other circuits, components, and peripherals. In an embodiment, the second output power voltage <b>364</b> may be a 5V power signal, in accordance with the ATX specification. The second supply <b>314</b> may also output a second supply good signal <b>372</b>.<b>2</b> to the power check circuit <b>320</b>.
0059The third supply <b>316</b> may receive as inputs the first voltage <b>352</b>, the 5V standby voltage <b>358</b>, the clock signal <b>360</b>.<b>3</b>, and the first output power voltage <b>362</b>. The 5V standby voltage <b>358</b> may also operate as an on/off signal for the third supply <b>316</b>. The third supply <b>316</b> may provide a third output power voltage <b>366</b>, which is output to the integrated system <b>104</b> for use by other circuits, components, and peripherals, as well as by the low voltage supply <b>318</b>. In an embodiment, the third output power voltage <b>366</b> may be a 3.3V power signal, in accordance with the ATX specification. The third supply <b>316</b> may also output a third supply good signal <b>372</b>.<b>3</b> to the power check circuit <b>320</b>.
0060The low voltage supply <b>318</b> may receive as input the third output power voltage <b>366</b>. The low voltage supply <b>318</b> may provide the power system support required by different dedicated peripherals in the integrated system <b>104</b>, for example Ethernet switch interface <b>216</b> of <figref idref="DRAWINGS">FIGS. 2A and 2B</figref>. The low voltage supply <b>318</b> may output first low voltage <b>368</b> and second low voltage <b>370</b> to the integrated system <b>104</b> for use by the circuits, components, and/or peripherals that require low voltage support. The low voltage supply <b>318</b> may also output a fourth supply good signal <b>372</b>.<b>4</b> and a fifth supply good signal <b>372</b>.<b>5</b> to the power check circuit <b>320</b>.
0061The power check circuit <b>320</b> may receive as inputs the 3.3V standby voltage <b>356</b>, the standby-good signal <b>354</b>, the CPU host power supply good signal <b>372</b>.<b>1</b>, the second supply good signal <b>372</b>.<b>2</b>, third supply good signal <b>372</b>.<b>3</b>, and fourth and fifth supply good signals <b>372</b>.<b>4</b> and <b>372</b>.<b>5</b>. The power check circuit <b>320</b> determines whether the outputs of the different supplies within power supply <b>208</b> are stable and adequate for use outside of the power supply <b>208</b>.
0062In operation, the power supply <b>208</b> may continuously operate off of a range of voltage input values, for example ranging from a 6.5V to a 42V power input <b>250</b> and output the standard voltages of 12V, 5V, 3.3V, −5V, and standby 5V and 3.3V according to the ATX specification.
Scaled System
400
0063In <figref idref="DRAWINGS">FIG. 4</figref>, multiple integrated system environment <b>400</b> is illustrated, according to an exemplary embodiment. For purposes of discussion, only those elements that differ, or are in addition to, the elements discussed above with respect to <figref idref="DRAWINGS">FIGS. 2A and 2B</figref> will be addressed. Multiple integrated systems <b>104</b>.<b>1</b> and <b>104</b>.<b>2</b> are shown in <figref idref="DRAWINGS">FIG. 4</figref>, connected together using connection signal <b>272</b> which may be a cable or wireless connection, for example. Although two integrated systems <b>104</b>.<b>1</b> through <b>104</b>.<b>2</b> are shown in <figref idref="DRAWINGS">FIG. 4</figref>, those skilled in the relevant art(s) will recognize more than two may be combined to increase the functionality of the overall multiple integrated system environment <b>400</b>. The environment <b>400</b> may still include the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>, and plurality of displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m. </i>
0064In an embodiment, the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>are a first plurality of inputs attached to the first integrated system <b>104</b>.<b>1</b>. A second plurality of inputs <b>102</b>.<i>o </i>through <b>102</b>.<i>p </i>may be attached to the second integrated system <b>104</b>.<b>2</b>. This situation may arise, for example, where there are more inputs than a single integrated system <b>104</b> may receive, or where additional processing power is desired. Any from the first plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>and the second plurality of inputs <b>102</b>.<i>o </i>through <b>102</b>.<i>p </i>may be output to any of the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. Although shown in <figref idref="DRAWINGS">FIG. 4</figref> as being attached to only integrated system <b>104</b>.<b>1</b>, there may be additional displays attached to integrated system <b>104</b>.<b>2</b>, and any input may still be output to any display attached to either integrated system.
0065The combination of multiple integrated systems <b>104</b> may significantly improve processing performance while still maintaining a small form factor. Additionally, in an embodiment the integrated systems <b>104</b>.<b>1</b> and <b>104</b>.<b>2</b> in environment <b>400</b> may be enclosed in a conformal heat sink design that enables passive cooling. The integration of the computational and peripheral elements onto a single circuit board in each integrated system <b>104</b>.<b>1</b> and <b>104</b>.<b>2</b> may enhance the production flow, simplify the testing process, and expedite the speed of these devices to market, as well as add scalability and bandwidth by the combination of multiple integrated systems.
Exemplary Methods
0066<figref idref="DRAWINGS">FIG. 5</figref> illustrates a flowchart of method <b>500</b>, an operation of a video switch matrix, according to an embodiment. For example, the video switch matrix may be video switch matrix <b>224</b> of <figref idref="DRAWINGS">FIGS. 2A and 2B</figref> above.
0067At step <b>502</b>, the video switch matrix <b>224</b> receives a plurality of inputs, for example from inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>. The plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>may be routed to the video switch matrix <b>224</b> via the video bus <b>258</b>, as discussed above.
0068At step <b>504</b>, the video switch matrix <b>224</b> determines which input from among the plurality of inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>to route to which of the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. The video switch matrix <b>224</b> may be reprogrammed many times in a short period of time, for example millions of times in a given second, to enable on-the-fly reconfigurable capabilities to the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. As a result, each display <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>may, from the point of view of a user, immediately change what is displayed based on the constant reprogramming within the video switch matrix <b>224</b>.
0069At step <b>506</b>, the inputs are output to one or more of the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>via video output signals <b>268</b>.<b>1</b> through <b>268</b>.<i>m</i>. As a result, any input to the integrated system <b>104</b> may be output to any display.
0070<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart illustrating an operational flow <b>600</b> of a modular device, such as integrated system <b>104</b>, according to a first embodiment.
0071At step <b>602</b>, the integrated system <b>104</b> receives a plurality of inputs, for example from inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>that have been attached to the integrated system <b>104</b>.
0072When the integrated system <b>104</b> receives data inputs, the integrated system <b>104</b> routes the data internally either in its native format or in a digitized format, for example after conversion by the video encoder <b>222</b>. This is depicted in steps <b>604</b> and <b>606</b>. At step <b>604</b>, after the microprocessor <b>210</b> has managed the attachment of the peripheral providing the data input, the data may be routed internally in its native format, for example when the data input is an analog video source. If instead the data is to be converted, it is routed to the video encoder <b>222</b> and digitized at step <b>606</b>.
0073At step <b>608</b>, whether the integrated system <b>104</b> is routing analog or digital data corresponding to the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>, the video switch matrix <b>224</b> determines which input to route to which display <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>when the data is video data, as discussed above with respect to <figref idref="DRAWINGS">FIG. 5</figref>. The USB hub <b>226</b> determines which USB input to route to which display <b>106</b>.<b>1</b> through <b>106</b>.<i>m </i>as well.
0074At step <b>610</b>, the inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n </i>are output to one or more of the displays <b>106</b>.<b>1</b> through <b>106</b>.<i>m</i>. In this manner, any input may be output to any display and be reconfigurable on-the-fly.
Exemplary Vehicular Embodiments
0075<figref idref="DRAWINGS">FIG. 7</figref> illustrates an exemplary embodiment of a reconfigurable data distribution system in a particular vehicle, according to an embodiment. <figref idref="DRAWINGS">FIG. 7</figref> shows an example of the particular vehicle being a motorcycle. However, the motorcycle is provided for the purpose of illustration and is not limiting of embodiments of the present disclosure. In embodiments, the particular vehicle may be a car, a bus, a bicycle, a boat, an airplane, or any other vehicle configured with a display to show the output of multiple sensors connected to the vehicle.
0076As shown in <figref idref="DRAWINGS">FIG. 7</figref>, system <b>700</b> includes a motorcycle <b>702</b>, a plurality of inputs <b>704</b>.<b>1</b> through <b>704</b>.<i>n</i>, and a display <b>706</b>. The plurality of inputs may include engine sensors, tire pressure sensors, transmission sensors, electrical system sensors, front facing camera, rear facing camera, Bluetooth sensors, and/or Wi-Fi sensors, just to name a few examples. According to example embodiments, the display <b>706</b> may include a Liquid Crystal Display (LCD) screen, a retina display screen, a Light Emitting Diode (LED) screen, a plasma display, or any other type of display. The screen of display <b>706</b> may include a resistive display, a capacitive display, a tactile display, or any other type of touch screen to allow the user to interact with the displayed data and receive visual and/or haptic feedback, according to an embodiment.
0077The sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>may be mounted externally or internally on a vehicle such as the motorcycle <b>702</b>, according to an embodiment. Specifically, sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>may be mounted on the frame of the motorcycle <b>702</b>, within the motorcycle <b>702</b>'s engine and transmission, and/or within the motorcycle <b>702</b>'s tires, according to example embodiments. These external and internal sensors may directly connect to a processing system of the motorcycle <b>702</b>, according to an embodiment. The processing system may intelligently route the external and/or internal sensors data to a display <b>706</b> of the motorcycle <b>702</b>, according to an embodiment. For example, the processing system may route engine specific data to the display gauge of the motorcycle <b>702</b>. This routing is further explained below.
0078<figref idref="DRAWINGS">FIG. 8A</figref> is an exemplary screenshot illustrating data from a plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>on a display <b>706</b>, according to an embodiment. <figref idref="DRAWINGS">FIG. 8A</figref> may be used in a single display in a vehicle such as but not limited to a car, motorcycle, train, and or airplane, according to example embodiments. The plurality of outputs shown in <figref idref="DRAWINGS">FIG. 8A</figref> include outputs from the brake manifold components, speed sensors, battery voltage sensor and a gas sensor, to name a few. In an embodiment, <figref idref="DRAWINGS">FIG. 8A</figref> displays the data outputs from the plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>adjacent to each other, in a manner that allows a user to view multiple (or all) sensor outputs simultaneously. In an alternative embodiment, the display <b>706</b> may place data outputs from the plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>on top of one another in a transparent manner.
0079<figref idref="DRAWINGS">FIGS. 8B and 8C</figref> are also exemplary screenshots illustrating outputs from a plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>on a display <b>706</b>, according to an embodiment. In <figref idref="DRAWINGS">FIGS. 8B and 8C</figref>, a user can select different settings to display from the output of the plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>by pressing on the touch screen display <b>706</b>, according to an embodiment. In an alternative embodiment, the user can select different settings to display from the output of the plurality of sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>by pressing on external buttons configured to communicate with display <b>706</b>. For example, a user may use a keyboard, select external buttons on a steering wheel, or select buttons on handle bars to select the different settings. The outputs selected in <figref idref="DRAWINGS">FIGS. 8B and 8C</figref> will appear on <figref idref="DRAWINGS">FIG. 8A</figref> in a real-time fashion, according to an embodiment. In a further embodiment, the display <b>706</b> may allow the user to resize the outputs and reconfigure the outputs in real time. For example, the user may resize the speedometer by touching on the display <b>706</b> and expanding or shrinking the speedometer to a desired size. Any changes made to the selected outputs will automatically update in real time and display in <figref idref="DRAWINGS">FIG. 8A</figref>.
0080<figref idref="DRAWINGS">FIG. 9</figref> illustrates a modular device, such as an integrated system <b>900</b>, according to another embodiment. The integrated system <b>900</b> may include a central processing unit (CPU) host <b>902</b>, a power supply <b>904</b>, removable non-volatile memory <b>906</b>, embedded non-volatile memory <b>908</b>, volatile memory <b>910</b>, a display <b>912</b>, a backlight driver <b>914</b>, a touch controller <b>916</b>, a plurality of interfaces <b>918</b>-<b>1</b> through <b>918</b>-<b>8</b>, dedicated interfaces <b>920</b>-<b>1</b> through <b>920</b>-<b>3</b>, an n video decoder <b>922</b>, another n video decoder <b>924</b>, and external buttons <b>926</b>, according to an embodiment. Further, the integrated system <b>900</b> includes inputs <b>919</b>.<b>1</b> through <b>919</b>.<i>n</i>, inputs <b>921</b>.<b>1</b> through <b>921</b>.<i>n</i>, inputs <b>923</b>.<b>1</b> through <b>923</b>.<i>n</i>, and inputs <b>925</b>.<b>1</b> through <b>925</b>.<i>n</i>, according to an embodiment. Sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>in <figref idref="DRAWINGS">FIG. 7</figref> may connect to the different inputs of the integrated system <b>900</b>, according to an embodiment. As will be recognized by those skilled in the relevant art(s), embodiments here are described with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships are appropriately performed.
0081The CPU host <b>902</b> may be responsible for attaching, managing, receiving, processing, and routing the various peripheral data in integrated system <b>900</b>, according to an embodiment. The CPU host <b>902</b> may perform similar functions to the dedicated microprocessor <b>210</b>, according to an embodiment. Further, CPU host <b>902</b> may perform similar functions to the CPU host <b>212</b>, according to an embodiment. In an alternative embodiment, integrated system <b>900</b> may include a separate microprocessor, not shown in <figref idref="DRAWINGS">FIG. 9</figref>, to perform functions similar to functions performed by CPU host <b>902</b> and dedicated microprocessor <b>210</b> and separate functions. The separate functions include but are not limited to graphics processing, networking processing, and audio processing, according to an embodiment.
0082The CPU host <b>902</b> may be based on a Reduced Instruction Set Computing (RISC) processor architecture. An example of a RISC processor architecture is an Acorn RISC Machine (ARM) processor architecture. An ARM-based processor may be implemented according to the motherboard standards in the COM Express specification, according to an embodiment.
0083Generally, an ARM-based processor requires fewer transistors compared to an x86 or a MIPS-based processor. Therefore, an ARM-based processor may produce less heat and use less power compared to an x86 or a MIPS-based processor.
0084These advantages may enable an ARM-based processor to be used in environments that have relatively stringent power requirements, according to an embodiment. In another embodiment, an ARM-based processor may be used in low-power applications to maintain a low thermal footprint. For example, integrated system <b>900</b> may be included in a vehicle such as motorcycle <b>702</b>, or any other surface, air, or water vehicle, according to example embodiments. In an embodiment, an ARM processor used in such applications may require 5 watts of power or less, whereas an x86 processor may require at least 40 watts of power. Since a motorcycle is typically unable to provide 40 watts of power to a processor without draining its battery's voltage and current, an ARM-based processor provides a suitable advantage over an x86-based processor.
0085The power supply <b>904</b> may supply the power requirements to the different components of integrated system <b>900</b>, according to an embodiment. Like power supply <b>208</b>, power supply <b>904</b> may receive power input <b>950</b>, for example from a vehicle battery provided in all vehicles. Further, power supply <b>904</b> may be able to continuously operate over a range of voltage input values, similar to power supply <b>208</b>.
0086Integrated system <b>900</b> may include multiple dedicated memory components, according to an embodiment. The dedicated memory components may include removable non-volatile memory <b>906</b>, embedded non-volatile memory <b>908</b>, and volatile memory <b>910</b>. Examples of removable non-volatile memory <b>906</b> may include security digital (SD) cards and Universal Serial Bus (USB) flash drives. An example of embedded non-volatile memory <b>908</b> may include an embedded Multi-Media Controller (eMMC) device. An example of volatile memory may include a random access memory (RAM) device.
0087The communication bus between the CPU host <b>902</b> and removable non-volatile memory <b>906</b> may communicate using different protocols, according to an embodiment. In an example embodiment, the removable non-volatile memory <b>906</b> may communicate with CPU host <b>902</b> using a secure digital (SD) protocol such as SD3.0 or SD4.0. In another embodiment, the removable non-volatile memory <b>906</b> may communicate with CPU host <b>902</b> using serial peripheral interface (SPI) protocols. As will be appreciated by persons skilled in the relevant art(s), the non-volatile memory <b>906</b> may alternate between the SD and the SPI communication protocols.
0088The communication bus between the CPU host <b>902</b> and embedded non-volatile memory <b>908</b> may communicate over a bidirectional bus, according to an embodiment. In an example embodiment, the embedded non-volatile memory <b>908</b> may communicate using SD3.0, SD4.0, or SPI communication protocols.
0089The communication bus between the CPU host <b>902</b> and the RAM <b>910</b> may communicate over high bandwidth interfaces. As will be appreciated by persons skilled in the relevant art(s), the CPU host <b>902</b> and the RAM <b>910</b> may communicate over double data rate type three synchronous dynamic random-access memory (DDR3 SDRAM) or DDR2 SDRAM, according to example embodiments.
0090Display <b>912</b> encompasses similar aspects to display <b>706</b>. In addition, the display <b>912</b> may be used to display the data in any of a plurality of formats, according to an embodiment. For example, display <b>912</b> may receive at least high-definition multimedia interface (HDMI) inputs, one video graphics array (VGA) input, and two low-voltage differential signaling (LVDS) inputs to display, according to example embodiments. Further, display <b>912</b> may include an interface to connect to an external camera utilizing a particular communication protocol, according to an embodiment. In an example embodiment, display <b>912</b> may provide a Mobile Industry Interface (MIPI) Alliance connection such as a display serial interface (DSI). The DSI may define a serial bus and a communication protocol to allow for displaying the data from the external camera on display <b>912</b> in real time. Further, <figref idref="DRAWINGS">FIGS. 8A-8C</figref> depict examples of screenshots displayed by display <b>912</b>.
0091Backlight driver <b>914</b> may be used to adjust the brightness of display <b>912</b>, according to an embodiment. The backlight driver <b>914</b> may include the ability to alter brightness and alter the contrast/saturation of display <b>912</b>, according to example embodiments. The backlight driver <b>914</b> may include an ability to switch from daytime compatibility mode to night time compatibility mode, based on sensing the amount of light received by the display, according to an embodiment. Daytime compatibility mode dims the amount of light displayed by display <b>912</b>, according to an embodiment. Alternatively, night time compatibility mode increases the amount of light displayed by display <b>912</b>, according to an embodiment.
0092Accordingly, a user may alter the brightness and contrast of display <b>912</b> by interacting with external buttons <b>926</b>, according to an example embodiment. The communications from external buttons <b>926</b> may pass through CPU host <b>902</b> and to the backlight driver <b>914</b> by way of an SPI bus, according to an example embodiment. In an example embodiment, as a person skilled in the art would recognize, the CPU host <b>902</b> may vary the amount of current transmitted to the backlight driver <b>914</b> based on a user's interaction with external buttons <b>926</b>. The amount of current transmitted to the various LEDs in the backlight driver <b>914</b> may vary the LEDs' brightness from 0 nit to 1000 nit, according to an example embodiment.
0093Touch controller <b>916</b> may be used to interact with the touch screen of display <b>912</b>, according to an embodiment. As mentioned above, display <b>912</b> may be any combination of capacitive, resistive, tactile touch screens, or other touch screen technology, according to an embodiment. The touch controller <b>916</b> creates an electrical charge in response to a user pressing on a particular point or region on display <b>912</b>, according to an embodiment. The electrical charge is then transmitted to CPU host <b>902</b> for processing, according to an embodiment. The touch controller <b>916</b> may communicate with the CPU host <b>902</b> over a universal asynchronous receiver/transmitter (UART) bus or a general-purpose input/output (GPIO) bus, according to example embodiments. Communications between the touch controller <b>916</b> and the CPU host <b>902</b> may be simplex, half duplex, or full duplex, according to example embodiments.
0094Interfaces <b>918</b>-<b>1</b> through interface <b>918</b>-<b>8</b> are similar to interfaces <b>216</b> through <b>218</b> as described above. Similarly, inputs <b>919</b>.<b>1</b> through <b>919</b>.<i>n </i>into interface <b>918</b>-<b>1</b> through interface <b>918</b>-<b>8</b> are similar to inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>. Further, these inputs connect to external sensors, such as sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n</i>, according to an embodiment.
0095Dedicated interfaces <b>920</b>-<b>1</b> through <b>920</b>-<b>3</b> are similar to dedicated interface <b>214</b>. Inputs <b>921</b>.<b>1</b> through <b>921</b>.<i>n </i>are similar to inputs <b>102</b>.<b>1</b> through <b>102</b>.<i>n</i>. Specifically, dedicated interfaces <b>920</b>-<b>1</b> through <b>920</b>-<b>3</b> may include a controller area network (CAN) bus-based device, as mentioned above. Further, dedicated interfaces <b>920</b>-<b>1</b> through <b>920</b>-<b>3</b> may also include an Ethernet interface, an audio interface, or a MIPI Camera Serial Interface (CSI) with an external camera device, according to example embodiments. The Ethernet interface may support various speeds ranging from 10 MB/s to 1000 MB/s. Specifically, the Ethernet interface may communicate with the CPU host <b>902</b> over a reduced gigabit media-independent interface (RGMII) which communicates an interface between the mac and physical layer, according to an embodiment. The audio interface may include an auxiliary input, an HDMI input, or an RCA input, to name a few examples. The MIPI CSI may support various external camera devices connected to a dedicated interface port to stream real time video, according to an example embodiment.
0096The n video decoder <b>922</b> may be any type of video processor capable of receiving up to n analog video inputs and converting the analog video inputs to digital video components through digitization, according to an embodiment. Further, the n video decoder <b>922</b> may be able to simultaneously receive up to n digital video inputs, according to an embodiment. In an embodiment, the n video decoder <b>922</b> may act as a multiplexer and pass a selected video input to an output based on a selection signal. N video decoder <b>924</b> is another n video decoder similar to n video decoder <b>922</b>, according to an embodiment. The inputs <b>925</b>.<b>1</b> through <b>925</b>.<i>n </i>are similar to <b>923</b>.<b>1</b> through <b>923</b>.<i>n </i>but are not limited to a particular amount.
0097In an embodiment, the n video encoder <b>922</b> may be able to receive 4 HDMI inputs, 2 NTSC inputs, and 1 VGA input (<b>923</b>.<b>1</b> through <b>923</b>.<i>n</i>) for processing. Further, the n video decoder <b>922</b> may be able to detect and process the various analog formats including but not limited to HDMI, NTSC, VGA, and PAL. Examples of n video decoders may be an ADV7604 chip or a TVP5146 chip. The video decoder <b>922</b> may communicate with the CPU host <b>902</b> over PCI or PCIe-based communication, according to an embodiment.
0098The n video decoder <b>922</b> may also receive a control signal from CPU host <b>902</b> to select one of the video inputs, according to an embodiment. In an embodiment, the selection of one of the video inputs by the control signal signifies to the n video decoder <b>922</b> which one of the video inputs to route to the CPU host <b>902</b>.
0099In an embodiment, n video decoder <b>922</b> may pass the frame resolution information of the video input based on the signal selection. The frame resolution information may include a frame height, a frame width, and a refresh rate, according to an embodiment. For example, the frame resolution information may be passed in a data structure such as an extended display identification data (EDID) structure. Further, the n video decoder <b>922</b> may pass the type of the video input to the CPU host <b>902</b> for further processing specific to that type of detected input, according to an embodiment. The type of video input may also be passed in the EDID structure, according to an embodiment.
0100External buttons <b>926</b> may be any type of button used to communicate with the display <b>912</b>, according to an embodiment. The external buttons <b>926</b> may be used to select different functions displayed by display <b>912</b>, according to an embodiment. The functions of external buttons <b>926</b> may result similarly to a user pressing on the display <b>912</b> for similar functions, according to an example embodiment. The external buttons <b>926</b> may communicate with CPU host <b>902</b> over a bi-directional serial bus such as an I2C (Inter-IC) bus, according to an example.
0101The external buttons <b>926</b> may be any button located on the display <b>912</b>, according to an embodiment. In addition, the external buttons <b>926</b> may also be located external to display <b>912</b>, such as located on the handle bars of motorcycle <b>702</b>, or located on a steering wheel of a vehicle, according to example embodiments.
0102<figref idref="DRAWINGS">FIG. 10</figref> illustrates an application of integrated system <b>900</b>, according to an embodiment. Specifically, <figref idref="DRAWINGS">FIG. 10</figref> illustrates software and hardware components required to route a video source <b>1002</b>-<b>1</b> through <b>1002</b>-N to display <b>912</b>. <figref idref="DRAWINGS">FIG. 10</figref> includes video source <b>1002</b>-<b>1</b> through <b>1002</b>-N connected to an n video decoder <b>922</b>. The n video decoder <b>922</b> is connected to the integrated system <b>900</b>, according to an embodiment. In one embodiment, the n video decoder <b>922</b> may be connected directly to the integrated system <b>900</b>. In an alternative embodiment, the n video decoder <b>922</b> may be placed on a daughter board which is connected to the integrated system <b>900</b>.
0103In an embodiment, software driver <b>1004</b> illustrates an open systems interconnection (OSI) model for integrated system <b>900</b>. According to an embodiment, a software driver <b>1004</b> may be defined for each individual input on the integrated system <b>900</b>. Explained below is an example of a software driver <b>1004</b> with a video source <b>1002</b>-N as an input.
0104Starting at the lowest level, software driver <b>1004</b> includes an operating system (OS) kernel <b>1006</b> required to communicate with the specific hardware and software components internal and external to the integrated system <b>900</b>, according to an embodiment. The OS kernel <b>1006</b> may be linux or windows based, according to example embodiments. The software driver <b>1004</b> includes a bus driver <b>1008</b> used to communicate with an internal or external device to the integrated system <b>900</b>. In an example embodiment, bus driver <b>1008</b> may by an Inter IC (<b>12</b>C) bus driver, in which one or more master/slave relationships exist between integrated system <b>900</b> and any number of internal or external devices. The software driver <b>1004</b> also includes an n video decoder driver <b>1010</b>, according to an embodiment. The n video decoder driver <b>1010</b> is used as the primary driver to configure and monitor the status of the n video decoder <b>922</b>, according to an embodiment. Further features of the n video decoder driver <b>1010</b> will be explained below.
0105The software driver <b>1004</b> includes an integrated system driver <b>1012</b>, according to an embodiment. The integrated system driver <b>1012</b> may include drivers specifically provided by the CPU host <b>902</b>. For example, the ARM processor of CPU host <b>902</b> may provide specific drivers and functions related to the inputs such as audio, video capture, CAN bus-based, Ethernet, storage, and video display, to name a few. In an embodiment, the integrated system driver <b>1012</b> may be called based on the function required to process that input. In one example, if the input to the CPU host <b>902</b> is a video source, then an integrated system capture driver may be called from the ARM processor to read in and capture the video data in a buffer for displaying.
0106The software driver <b>1004</b> further includes two output drivers: integrated system VGA out driver <b>1014</b> and integrated system HDMI out driver <b>1016</b>, according to embodiments. The integrated system VGA out driver <b>1014</b> outputs the video data based on the VGA input into the n video decoder <b>922</b>, according to an embodiment. Similarly, the integrated system HDMI out driver <b>1016</b> outputs the video data based on the HDMI input into the n video decoder <b>922</b>, according to an embodiment. Based on the required frame resolution, e.g.—frame width and frame height, these two out drivers allocate in memory a size for a desired resolution to display to display <b>912</b>, according to an embodiment. The allocated memory reserves a buffer for transmitting the video frame with a desired video resolution to display <b>912</b>, according to an embodiment. Further, the two out drivers may be used to ensure the captured video input has the desired video resolution, according to an embodiment. If the captured video input does not have the desired video resolution, then the integrated system VGA out driver <b>1014</b> or the integrated system HDMI out driver <b>1016</b> may reprocesses the captured video input to have the desired video resolution based on the video input type, according to an embodiment.
0107The software driver <b>1004</b> also includes an internal driver <b>1018</b>, according to embodiment. The internal driver <b>1018</b> may be used as a gateway to communicate with the n video decoder driver <b>1010</b> and the n video decoder <b>922</b>, according to an embodiment. Specifically, the internal driver <b>1018</b> may receive input/output control (ioctl) callback function commands to the n video decoder driver <b>1010</b>, according to an embodiment. The internal driver <b>1018</b> may be used to invoke the ioctl callback function commands with the n video decoder <b>922</b>, according to an embodiment. For example, the internal driver <b>1018</b> may use the ioctl callback functions to determine and process the status and configuration of n video decoder <b>922</b>. In another example, the internal driver <b>1018</b> may set parameters associated with the n video decoder <b>922</b>.
0108The core driver <b>1020</b> is further included in the software driver <b>1004</b>, according to an embodiment. The core driver <b>1020</b> may be used as a gateway to communicate with the internal driver <b>1018</b> and video application <b>1022</b>, according to an embodiment. The core driver <b>1020</b> may be used to convert video application <b>1022</b>'s response to touch screen presses and/or button presses of display <b>912</b> into functional commands understood by the internal driver <b>1018</b>, according to an embodiment. According to an example embodiment, a user may interact with the touch screen display <b>912</b> or external buttons <b>926</b> to select a particular function on the display <b>912</b>. The selection of a particular function may generate a particular response in the video application <b>1022</b> layer denoting a location on the display <b>912</b>'s screen in which a user selected the function, according to an embodiment. The core driver <b>1020</b> may be used to convert the selected location to a function understood by the internal driver <b>1018</b> to perform the function based on the selected location, according to an embodiment. For example, routing a different video source <b>1002</b>-N to display <b>912</b>. The core driver <b>1020</b> and internal driver <b>1018</b> may use an application language such as G-streamer or ffmpeg to support the handling of audio/video streaming and the processing of complex audio and video segments, according to example embodiments.
0109<figref idref="DRAWINGS">FIG. 11</figref> illustrates a distribution of data flow of integrated system <b>900</b>, according to an embodiment.
0110At step <b>1102</b>, the integrated system <b>900</b> may receive a plurality of inputs at the n video decoder <b>922</b>. For example, the plurality of inputs may be inputs <b>923</b>.<b>1</b> through <b>923</b>.<i>n </i>that are connected to the n video decoder <b>922</b>. The sensors <b>704</b>.<b>1</b> through <b>704</b>.<i>n </i>may connect to inputs <b>923</b>.<b>1</b> through <b>923</b>.<i>n. </i>
0111At step <b>1104</b>, the n video decoder driver <b>1010</b> may retrieve hardware and data format information from the n video decoder <b>922</b>, according to an embodiment. Specifically, the n video decoder driver <b>1010</b> retrieves hardware information relating to the n video decoder <b>922</b>'s interface-such as the device's address and a number of parameters needed to communicate with the n video decoder <b>922</b>. In an embodiment, the n video decoder driver <b>1010</b> retrieves data format information relating to the clock speed required to communicate with the n video decoder <b>922</b> and the different input types. The different input types are used to create different buffers for reading in specific inputs, such as video types VGA or HDMI, according to an example embodiment. The n video decoder driver <b>1010</b> may pass the hardware and data format information to the internal driver <b>1018</b> via ioctl callback functions, according to an embodiment.
0112At step <b>1106</b>, the integrated system <b>900</b> may set input parameters of n video decoder <b>922</b> for a desired input and a desired input resolution, according to an embodiment. The internal driver <b>1018</b> may use the ioctl callback function to set the desired input and the desired input resolution, according to an embodiment. Specifically, the internal driver <b>1018</b> configures the n video decoder <b>922</b> to select a desired input by passing an input parameter in the ioctl callback function to the n video decoder <b>922</b>, according to an embodiment. For example, the parameter in the ioctl callback function commands the n video decoder <b>922</b> to select a VGA channel and/or one of the HDMI channel. Similarly, a separate parameter is used in the ioctl callback function to select the n video decoder <b>922</b>'s input resolution. For example, the input resolution ranges from 640 to 1920 pixels by 480 to 1200 pixels. Further, the frame rate may range from 60 Hertz (Hz) to 85 Hz.
0113At step <b>1108</b>, the integrated system <b>900</b> may route the desired input with the desired input resolution to CPU host <b>902</b>'s specified function for processing the input, according to an embodiment. Specifically, the desired input and desired input resolution are routed to the integrated system driver <b>1012</b>, according to an embodiment. For example, the desired input and desired input resolution may be routed in an EDID structure. At the integrated system driver <b>1012</b>, a buffer is created in memory based on the input type—where the input type may be a video of type, HDMI or VGA, to capture the input data, according to an embodiment.
0114At step <b>1110</b>, the integrated system <b>900</b> may route the captured input data from the integrated system driver <b>1012</b> to the internal driver <b>1018</b>, according to an embodiment. The internal driver <b>1018</b> receives the captured input data from the integrated system driver <b>1012</b> and at step <b>1112</b>, the internal driver <b>1018</b> determines if the captured input data is of type VGA or HDMI. Specifically, the internal driver <b>1018</b> determines if the captured input data is VGA or HDMI based on the parameter passed by the internal driver <b>1018</b> using the ioctl callback function, according to an embodiment. In an alternative embodiment, the internal driver <b>1018</b> may read the EDID to determine the type of captured input data.
0115If the internal driver <b>1018</b> decides the input to be VGA at step <b>1112</b>, then at step <b>1114</b>, the captured input data is processed based on the desired input resolution using the core driver <b>1020</b> and the video application <b>1022</b>, according to an embodiment. The core driver <b>1020</b> scans removable non-volatile memory <b>906</b>, embedded non-volatile memory <b>908</b>, and volatile memory <b>910</b> and retrieves any captured input capable of processing, according to an embodiment. The video application <b>1022</b> receives the retrieved captured input data from the core driver <b>1020</b> and processes the captured input data to have the desired input resolution, according to an embodiment. For example, the video application <b>1022</b> may use specific function calls of the G-streamer or ffmpeg application to process the captured input with the desired input resolution.
0116At step <b>1116</b>, the newly processed captured input data with the desired input resolution is sent to the integrated VGA out driver <b>1014</b>, according to an embodiment. The integrated system VGA out driver <b>1014</b> prepares the captured input data to be transmitted to display <b>912</b> via a VGA link and ensures the captured input data's processed resolution meets the desired input resolution for VGA, according to an embodiment. If the resolution condition is met, the captured input data is sent to display <b>912</b> via the VGA link. If the resolution condition is not met, the integrated VGA out driver <b>1014</b> reprocesses the captured input data to have the desired input resolution. In an embodiment, the integrated VGA out driver <b>1014</b> may call the g-streamer or ffmpeg application to reprocess the captured input data with the desired input resolution. Afterwards, the integrated VGA out driver <b>1014</b> sends the captured input data to display <b>912</b> via the VGA link.
0117If the internal driver <b>1018</b> decides the input to be HDMI at step <b>1112</b>, then at step <b>1118</b>, the captured input data is processed based on the desired input resolution using the core driver <b>1020</b> and the video application <b>1022</b>, according to an embodiment. Similar to step <b>1114</b>, at step <b>1118</b>, the core driver <b>1020</b> scans and retrieves any captured input data from removable non-volatile memory <b>906</b>, embedded non-volatile memory <b>908</b>, and volatile memory <b>910</b> and video application <b>1022</b> processes the captured input data to have the desired input resolution, according to an embodiment.
0118Step <b>1120</b> is similar to step <b>1116</b>. The difference at step <b>1120</b> is integrated system HDMI out driver <b>1016</b> is used to prepare the captured input data to be transmitted to display <b>912</b> via an HDMI link and ensures the captured input data's processed resolution meets the HDMI input, according to an embodiment. If the HDMI resolution condition is met, the captured input data is sent to display <b>912</b> via an HDMI link. Otherwise, the integrated system HDMI out driver <b>1016</b> reprocesses the captured input data to have the desired input resolution. In a similar embodiment, the integrated system HDMI out driver <b>1016</b> may call the g-streamer or ffmpeg application to reprocess the captured input data with the desired input resolution. Then, the integrated HDMI out driver <b>1016</b> transmits the captured input data to display <b>912</b> via HDML.
0119<figref idref="DRAWINGS">FIG. 12</figref> illustrates a distribution of control flow of integrated system <b>900</b>, according to an embodiment.
0120At step <b>1202</b>, the integrated system <b>900</b> receives an input selection at video application <b>1022</b> via display <b>922</b>, according to an embodiment. In an example embodiment, a user may interact with touch screen of display <b>912</b> or external buttons <b>926</b> to select a particular function on the display <b>912</b>.
0121At step <b>1204</b>, the input selection of a particular function may generate a particular response in the video application <b>1022</b> layer denoting a location in which a user selected the function, according to an embodiment. The core driver <b>1020</b> may be used to convert the location denoting a function into a particular control command, according to an embodiment. Any language as pertains to one skilled in the art, such as g-streamer, python, or C++ to name a few, may be used to convert the location command to a particular control command, according to embodiments. For example, the particular control command may be an I2C (Inter IC) command or a message string with components describing the functional aspect of the command.
0122At step <b>1206</b>, the control command is routed from the internal driver <b>1018</b> to the n video decoder <b>922</b>, according to an embodiment. The core driver <b>1020</b> passes the control command through the internal driver <b>1018</b> and to the n video decoder driver <b>1010</b>, according to an embodiment. The n video decoder driver <b>1010</b> formats the control command based on the address format of the n video decoder <b>922</b>, according to an embodiment. Once the control command is formatted, the n video decoder driver <b>1010</b> transmits the control command over the bus driver <b>1008</b> to the n video decoder <b>922</b>, according to an embodiment.
0123At step <b>1208</b>, the control command is used to select the desired input at the n video decoder <b>922</b> to route, according to an embodiment. The control command instructs the n video decoder <b>922</b> to route the desired input based on a parameter in the control command, according to an embodiment.
0124At step <b>1210</b>, the integrated system <b>900</b> checks to see if a user selected a new function at display <b>912</b> that has yet to be processed, according to an embodiment. If the user has not selected a new function at display <b>912</b>, then the process ends. Alternatively, if the user has selected a new function at display <b>912</b>, the process starts over at <b>1202</b>.
Exemplary Computer System
0125Embodiments of the present disclosure can be implemented in hardware, software or as a combination of software and hardware. Consequently, embodiments of the disclosure may be implemented in the environment of a computer system or other processing system. An example of such a computer system <b>900</b> is shown in <figref idref="DRAWINGS">FIG. 9</figref>. Embodiments described in the previous figures, for example the integrated system <b>104</b> in <figref idref="DRAWINGS">FIGS. 1-4</figref>, may execute on one or more computer systems <b>900</b>. Furthermore, each of the steps of the processes depicted in <figref idref="DRAWINGS">FIGS. 5 and 6</figref> can be implemented on one or more computer systems <b>900</b>.
0126Computer system <b>900</b> includes one or more processors, such as processor <b>904</b>. Processor <b>904</b> can be a special purpose or a general purpose digital signal processor. Processor <b>904</b> is connected to a communication infrastructure <b>902</b> (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the disclosure using other computer systems and/or computer architectures.
0127Computer system <b>900</b> also includes a main memory <b>906</b>, preferably random access memory (RAM), and may also include a secondary memory <b>908</b>. Secondary memory <b>908</b> may include, for example, a hard disk drive <b>910</b> and/or a removable storage drive <b>912</b>, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, flash memory, or the like. Removable storage drive <b>912</b> reads from and/or writes to a removable storage unit <b>916</b> in a well-known manner. Removable storage unit <b>916</b> represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive <b>912</b>. As will be appreciated by persons skilled in the relevant art(s), removable storage unit <b>916</b> includes a computer usable storage medium having stored therein computer software and/or data.
0128In alternative implementations, secondary memory <b>908</b> may include other similar means for allowing computer programs or other instructions to be loaded into computer system <b>900</b>. Such means may include, for example, a removable storage unit <b>918</b> and an interface <b>914</b>. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units <b>918</b> and interfaces <b>914</b> which allow software and data to be transferred from removable storage unit <b>918</b> to computer system <b>900</b>.
0129Computer system <b>900</b> may also include a communications interface <b>920</b>. Communications interface <b>920</b> allows software and data to be transferred between computer system <b>900</b> and external devices. Examples of communications interface <b>920</b> may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface <b>920</b> are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface <b>920</b>. These signals are provided to communications interface <b>920</b> via a communications path <b>922</b>. Communications path <b>922</b> carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
0130As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units <b>916</b> and <b>918</b> or a hard disk installed in hard disk drive <b>910</b>. These computer program products are means for providing software to computer system <b>900</b>.
0131Computer programs (also called computer control logic) are stored in main memory <b>906</b> and/or secondary memory <b>908</b>. Computer programs may also be received via communications interface <b>920</b>. Such computer programs, when executed, enable the computer system <b>900</b> to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor <b>904</b> to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system <b>700</b>. Where the disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system <b>900</b> using removable storage drive <b>912</b>, interface <b>914</b>, or communications interface <b>920</b>.
0132In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s).
CONCLUSION
0133It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections (if any), is intended to be used to interpret the claims. The Summary and Abstract sections (if any) may set forth one or more but not all exemplary embodiments of the invention as contemplated by the inventor(s), and thus, are not intended to limit the invention or the appended claims in any way.
0134While the invention has been described herein with reference to exemplary embodiments for exemplary fields and applications, it should be understood that the invention is not limited thereto. Other embodiments and modifications thereto are possible, and are within the scope and spirit of the invention. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.
0135Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments may perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.
0136References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein.
0137The breadth and scope of the invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Contents5
18 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11960428B2 | Cited by | United States of America | Search report |
| US2023297532A1 | Cited by | United States of America | Search report |
| US9767046B2 | Cited by | United States of America | Applicant |
| CN109683836A | Cited by | China | Search report |
| US10496558B2 | Cited by | United States of America | Applicant |
| US10250409B2 | Cited by | United States of America | Applicant |
| CN111131873A | Cited by | China | Search report |
| US2005120079A1 | Cites | United States of America | Pre-grant |
| US2008195613A1 | Cites | United States of America | Pre-grant |
| US2008228968A1 | Cites | United States of America | Pre-grant |
| US2009204730A1 | Cites | United States of America | Pre-grant |
| US2010026802A1 | Cites | United States of America | Pre-grant |
| US2012113170A1 | Cites | United States of America | Pre-grant |
| US2013061271A1 | Cites | United States of America | Pre-grant |
| US2013082673A1 | Cites | United States of America | Pre-grant |
6 members in 1 office
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 201314046030 | United States of America | A | |
| 201314046030 | United States of America | A | |
| 201615015729 | United States of America | A | |
| 14046030 | – | – | – |
| US201314046030 | – | – | – |
| US201615015729 | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| US2015100706A1 | United States of America | A1 | |
| US2016154748A1 | United States of America | A1 | |
| US9563582B2 | United States of America | B2 | |
| US9767046B2 | United States of America | B2 | |
| US2018173647A1 | United States of America | A1 | |
| US10496558B2 | United States of America | B2 |
52 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Yr, Small EntityM2552 | M2552 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Payment of Maintenance Fee, 4th Yr, Small EntityM2551 | M2551 | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail O.P. Petition DecisionMOPPT | MOPPT | |
| Track 1 Request GrantedT1GR | T1GR | |
| Mail-Record Petition Decision of Granted to Make SpecialMP003 | MP003 | |
| Record Petition Decision of Granted to Make SpecialP003 | P003 | |
| O.P. Petition DecisionOPPT | OPPT | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Applicant Has Filed a Verified Statement of Small Entity Status in Compliance with 37 CFR 1.27SMAL | SMAL | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Track 1 RequestTK1R | TK1R | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Track 1 RequestTK1R | TK1R | |
| Petition EnteredPET. | PET. | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
1 recorded assignment at the USPTO, latest first
- Now
Now: Held by
SYNEXXUS, INC - 2016-02-05
Assignment of assignors interest.
Ownership change- From
- GLAROS GREGORY EMIL
- To
- SYNEXXUS INC
Recorded 2016-02-05, Signed 2016-01-19
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Certificate of correctionCC | CC | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160154748
- Publication, DOCDB
- 2016154748
- Publication, EPODOC
- US2016154748
- Application
- 15015729
- Application, DOCDB
- 201615015729
- Application, EPODOC
- US201615015729
Titles
- English
- MODULAR DEVICE, SYSTEM, AND METHOD FOR RECONFIGURABLE DATA DISTRIBUTION
Patent term adjustment
- Applicant delay
- −62 days
- Net adjustment
- 0 days
Classification
- CPC, 3
- G06F13/102
- G06F9/44505
- G06F13/10
- IPC, 2
- G06F13 10
- G06F9 445
- USPC, 1
- 710008000