Operation of an output component for generating a representation of an instruction set

By introducing comparator circuits, component selection circuits, and transmission circuits into peripheral devices, and utilizing audio or video components to transmit instruction sets between peripheral devices, the problem of requiring host device involvement for peripheral device firmware upgrades is solved, enabling automatic, secure, and accurate firmware upgrades between devices.

CN115413340BActive Publication Date: 2026-03-03HEWLETT PACKARD DEVELOPMENT COMPANY LP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080099872.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-04-15
Publication Date
2026-03-03
Estimated Expiration
2040-04-15

AI Technical Summary

Technical Problem

In existing technologies, firmware upgrades for peripheral devices require the direct involvement of the host device, resulting in an inflexible and inefficient upgrade process, especially when the device is in a power-off state or unattended, making automatic upgrades impossible.

Method used

By introducing comparator circuits, component selection circuits, and transmission circuits into peripheral devices, and utilizing audio or video components to transmit instruction sets between peripheral devices of the same type, automatic firmware upgrades can be achieved without the involvement of the host device.

Benefits of technology

It enables secure and accurate firmware upgrade propagation between peripheral devices, improves upgrade efficiency, reduces dependence on host devices, and supports automatic upgrades when devices are in sleep mode.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115413340B_ABST
    Figure CN115413340B_ABST
Patent Text Reader

Abstract

Example peripheral devices include a target device for identifying a device that matches the peripheral device's device type identifier. Example circuitry for the peripheral device is configured to, in response to determining that the target device's instruction set version identifier does not match the peripheral device's instruction set version identifier, select an input component device, send a request to place the target device's input component into instruction set receiver mode, and operate the peripheral device's output component to produce audio or video output representing the instruction set.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Peripheral devices can be attached to host devices to enhance the computing experience and provide additional input / output (I / O) functionality. For example, human interface devices (HIDs) such as mice or keyboards can be attached to host devices to provide input from the user, and display devices can be attached to host devices to provide output to the user. Attached Figure Description

[0002] Figures 1 to 3 It is a block diagram depicting the example peripheral device.

[0003] Figure 4 Describe an example environment in which an example peripheral device provides an example instruction set to other example peripheral devices.

[0004] Figures 5 to 7 This is a flowchart depicting an example method for transmitting an example instruction set. Detailed Implementation

[0005] In the following description and accompanying drawings, some example implementations of peripheral devices, systems, and / or methods for data transmission are described. In the examples described herein, a peripheral device is any suitable electronic, input / output (I / O) device that can be coupled to a host device. As used herein, a host device is a general-purpose computer of any form factor (such as a desktop computer, laptop computer, tablet computer, mobile phone, etc.). A peripheral device can be any form of computer accessory or other human-machine interface device (HID) capable of providing input or receiving output from a host device. In this way, peripheral devices are typically coupled to the host device via I / O ports or I / O protocols (e.g., wireless communication protocols). Example peripheral devices include, but are not limited to, display devices, keyboards, computer mice, headphones, styluses, direct or indirect ink printing devices, printers, scanners, head-mounted displays (HMDs), microphones, cameras, external memory storage devices, universal serial bus (USB) drives, external graphics devices, speakers, game controllers, video conferencing equipment, power adapters, power packs, calculators, plug-in stations, cables, mouse pads, wireless chargers, lighting, smart furniture, and smart home devices, etc. As used herein, peripheral devices do not include host devices and are not stand-alone networking devices (such as modems, routers, switches, hubs, or repeaters). For example, a peripheral device may be connected to a host device to perform network communication, and the peripheral device may not have host-to-host or server-client communication capabilities.

[0006] In the examples described herein, a "display device" is a device for visually presenting content. For example, a display device may generate a visual representation of an image by operating light-emitting circuitry, light-reflecting circuitry, or a combination thereof, the visual representation of the image being represented as a plurality of pixels based on processed image data. Example display devices may include panels such as liquid crystal display (LCD) panels, organic light-emitting diode (OLED) panels, micro light-emitting diodes (μLEDs), or other display technologies. In some examples, the display device may also include circuitry such as a monitor scaler for operating the panel to cause the panel to produce visual output. The display device may include other audio or video components integrated into the device, such as speakers, cameras, and microphones.

[0007] For example, peripheral devices such as display devices often utilize updates to the instruction set, such as firmware updates, to operate monitor scalers in an improved manner (e.g., with fewer operational errors). Peripherals can be updated via a host device to which they are connected. Therefore, firmware upgrades for peripheral devices can be performed using an active connection to the host device.

[0008] The various examples described below involve operating peripheral devices to perform instruction set transfers via neighboring peripheral devices of the same type. Hostless firmware upgrades are possible by identifying neighboring peripheral devices of the same type and generating a request to transfer an updated instruction set using the peripheral device's component that produces audio or video output (or both). For example, instruction set transfers can be secure and accurate by limiting transfers between members of a known model family and communicating via audio / video (A / V) components instead of traditional networking communication channels such as wired electrical data transfer (e.g., via Ethernet cable) or radio data transfer (e.g., via WiFi protocol). The instruction set transfers discussed herein can be executed automatically, such that transfers between peripheral devices are initiated when the peripheral device is below an activity threshold (e.g., based on the time of day and / or when the device is in a power-off state). In this way, firmware upgrades can be propagated within the device without requiring an active host device to be coupled to each peripheral device to be maintained.

[0009] Figures 1 to 3 This is a block diagram depicting example peripheral devices 100, 200, and 300. (Refer to...) Figure 1Example peripheral device 100 typically includes output component 102, circuitry 110, and memory resources 120. Output component 102 represents any suitable hardware component for generating audio or video output. Example audio output devices may be speakers, haptic devices, and headphones, etc. For example, the hardware component may be a transducer or speaker that generates sound signals by movement based on electrical changes relative to a magnet. Example video output devices may be light-emitting diodes (LEDs), backlights, display panels, and reflectors, etc. For example, the hardware component may be illuminated keycaps of a keyboard capable of changing color or flashing at a controllable frequency.

[0010] Memory resource 120 may store data usable by peripheral device 100. For example, memory resource 120 may store data representing device type identifier 121, instruction set 122, and instruction set version identifier 123 corresponding to instruction set 122. Device type identifier 121 and instruction set version identifier 123 may be any suitable representation such as numbers, letters, symbols, categories, classifications, or other types of identifiers capable of representing a particular device group or a particular instruction set version, respectively. Device type identifier 121 may represent a device model or classification, a component model such as a panel model, original design manufacturer (ODM), manufacturing date, and extended display identification data, or a combination thereof. Device type identifiers do not include identifiers specific to a single peripheral device, such as serial numbers, unless the unique identifier includes a portion corresponding to a group of devices (e.g., where the first portion of the serial number represents the device model, and the second portion of the serial number is unique for a single device, such that the first portion of the serial number can be used by circuitry 110 to identify a group of devices). Examples of device type identifiers may be strings representing a subset of ODMs and panels manufactured during a specific date range.

[0011] Instruction set 122 can be any appropriate data representing executable instructions, such as binary code, hexadecimal code, machine-level code, operating system code, application-level code, etc. In practice, instructions residing on memory resources can include any instruction set (such as machine code) to be executed directly by processor resources or any instruction set (such as scripts) to be executed indirectly. Example instruction set 122 can include a version of firmware (e.g., updated firmware), a software application executable by the resources of peripheral device 100, or data resources (such as updated lookup tables or updated color profiles) used by firmware on the peripheral device or by applications executable by the peripheral device.

[0012] As used herein, a memory resource is a medium used to store data used and / or generated by a peripheral device. A medium is any non-temporary medium or combination of non-temporary media capable of electronically storing instructions or datasets used by peripheral device 100. For example, a medium can be a storage medium, distinct from a temporary transmission medium such as a signal. A medium can be machine-readable, such as computer-readable. A medium can be an electronic, magnetic, optical, or other physical storage device capable of containing (i.e., storing) executable instructions. A memory resource can be a non-volatile memory resource such as read-only memory (ROM), a volatile memory resource such as random access memory (RAM), a storage device, or a combination thereof. Example forms of memory resources include static RAM (SRAM), dynamic RAM (DRAM), electrically erasable programmable ROM (EEPROM), or flash memory. Memory resources can include integrated memory such as a hard disk drive (HD), a solid-state drive (SSD), or an optical drive. Memory resources can be integrated into the same device as processor resources, or they can be separate but accessible to both the device and the processor resources. Memory resources can be distributed across devices.

[0013] Example circuit 110 can be any suitable number of circuits, wherein the circuits can consist of various electronic components such as resistors, transistors, capacitors, inductors, and diodes connected by conductive wiring or traces. The circuits may include processor resources and memory resources thereon storing executable instructions. Example circuit 110 includes a comparator circuit 111, a component selection circuit 112, and a transfer circuit 113. In other embodiments, the functions of the multiple circuits may be implemented as a single circuit or divided into different circuits. Figure 1 Various circuits are shown in the examples.

[0014] Comparison circuit 111 represents circuitry used to perform data comparisons. Such data comparisons, executable by comparison circuit 111, include comparisons of device type identifiers and instruction set version identifiers across devices. For example, comparison circuit 111 may be a combination of processor resources and executable instructions that compare a first device type identifier of a first device with a second device type identifier of a second device, and, in response to determining that the first device type identifier matches the second device type identifier, compare a first instruction set version identifier of the first device with a second instruction set version identifier of the second device. When a match or mismatch is determined, the device type and version comparisons may include additional information. For example, comparison circuit 111 may be a combination of electronic components to identify a target device that matches the device type identifier 121 of peripheral device 100 within a proximity threshold associated with output component 102.

[0015] Component selection circuit 112 represents circuitry for performing the selection of audio or video components to be used for transmitting instruction set 122. For example, component selection circuit 112 may include a combination of processor resources and executable instructions to retrieve a list of components associated with a device type and select one of the output components that can work with the input components of the receiver peripheral to transmit data. Component selection circuit 112 may operate based on a comparison made by comparison circuit 111. For example, component selection circuit 112 may, in response to determining that the instruction set version identifier of the target device does not match the instruction set version identifier 123 of the peripheral device 100, select the input component of the target device corresponding to device type identifier 121 and the output component 102 of the peripheral device 100. In an example where the peripheral device has multiple options for communicating audio or video output (e.g., multiple output components selected from them), user preferences can be used to determine which component to use to perform the transmission of instruction set 122. For example, options on a screen display menu may allow the user to select from transmitting audio signals using speakers or transmitting video signals using the backlight of the panel to generate flash.

[0016] Transmission circuit 113 represents circuitry that performs the transmission of an instruction set via an output component 102 selected by component selection circuit 112. For example, transmission circuit 113 may include a combination of processor resources and executable instructions that cause operation of the output component 102 of peripheral device 100 to produce an audio or video output representing instruction set 122 in response to a determination that the instruction set version identifier of the target device does not match the instruction set version identifier 123 of peripheral device 100. The audio or video output includes a representation of instruction set 122 when at least a portion of the signal used to generate the output is processed based on data representing the instruction set (e.g., modifying the signal to include frequency adjustments corresponding to instructions added to the signal) or when at least a portion of a signal received by the peripheral device can be processed to generate data corresponding to the instruction set.

[0017] The transmission circuit 113 may include circuitry for preparing and / or causing components to perform data transmission. For example, the transmission circuit 113 may include a combination of processor resources and executable instructions that, in response to determining that the instruction set version identifier of the target device does not match the instruction set version identifier 123 of the peripheral device 100, cause a request to place the input component of the target device into instruction set receiver mode and cause the output component to be placed into instruction set generator mode.

[0018] As used herein, the instruction set receiver mode is an operating mode of a component that allows receiving audio or video signals within a characteristic range associated with the transmission of the instruction set between peripherals of the same device type, and the instruction set generator mode is an operating mode of a component that allows generating audio or video signals within a characteristic range associated with the transmission of the instruction set between peripherals of the same device type. As used herein, the characteristic range is the range of operating settings or capabilities of a component for generating audio and / or video output. The characteristic range may be based on the mechanical or electrical limitations of the component. The characteristic range may be based on whether the audio and / or video output is used to transmit the instruction set, and may be based on the state of the peripheral device. For example, when the selected output speaker component is in use, audio frequencies above 20,000 Hz may be used to transmit the instruction set over audio signals, but a lower frequency range may be included if the device is in power-off mode or outside of defined operating hours. For another example, the characteristic range for video output may be the flicker rate or the diversity of color sets for encoding signals recognizable by a light sensor based on the quality of the light sensor (e.g., the accuracy achievable by the light sensor). In some examples, peripheral device 100 may be restricted to generating encoded signals within the characteristic range reserved for instruction set receiver mode and instruction set generator mode, unless the peripheral device is in the operating state corresponding to each mode.

[0019] If peripheral device 100 is a display device, circuit 110 can be implemented as a display scaler circuit. The output component selected by component selection circuit 112 can be the panel of the display device, and the input component of the target device selected to receive the instruction set encoded in the video generated by the panel of peripheral device 100 can be the optical sensor of the target device. In this example, when the input component of the target device is in instruction set receiver mode, the operation of the panel generates a video output representing instruction set 122 from the panel.

[0020] If the peripheral device is a Human Interface Device (HID), the output component selected by component selection circuit 112 can be the speaker of the HID, and the input component of the target device for receiving the instruction set encoded in the audio generated by the speaker of peripheral device 100 can be a microphone coupled to (or integrated into) the target device. In this example, when the input component of the target device is in instruction set receiver mode, the operation of the speaker of peripheral device 100 generates audio in frequencies outside the average human hearing range (i.e., below 20 Hz or above 20,000 Hz), which represents instruction set 122.

[0021] Once peripheral device 100 has transmitted instruction set 122 using its output component, the target device can install and / or begin using a new copy of instruction set 122. In some examples, the target device can then be a source for transmitting instruction set 122 to other devices of the same device type. In this way, for example, firmware upgrades can be securely propagated to other devices that will utilize the same firmware upgrade. In some examples, for example, the instruction set transmission operation discussed herein can occur in response to the identification of the infected portion of firmware to be recovered from a trusted peripheral device of the same type.

[0022] Figure 2 An example system 200 depicting peripheral devices may include a memory resource 220 operatively coupled to a processor resource 218. As used herein, a system may be a collection of devices and / or components for implementing the functions described herein. (See also...) Figure 2 Memory resource 220 may contain a set of instructions executable by processor resource 218. In fact, memory resource 220 can be said to store program instructions that, when executed by the processor resource, cause the processor resource to perform... Figure 2 The system 200 has the following functions. The instruction set stored on memory resource 220 can be represented as a comparison module 211, a component selection module 212, and a transfer module 213. The comparison module 211, component selection module 212, and transfer module 213 represent the functions that, when executed, respectively cause... Figure 1 The processor resource 218 executes the instruction set for executing modules 211, 212, 213 and / or any other appropriate operation within and / or associated with modules of system 200.

[0023] For example, processor resource 218 can execute an instruction set to compare a first device type identifier of a first device with a second device type identifier of a second device, compare a first instruction set version identifier of the first device with a second instruction set version identifier of the second device in response to determining that the first device type identifier matches the second device type identifier, cause the first device to select a first component to generate audio output or video output in response to determining that the first instruction set version identifier of the first device represents a newer version than the version represented by the second instruction set version identifier of the second device (or an older version in the event of a safe rollback), cause the second device to select a second component to receive audio output or video output from the first component of the second device, and cause the first device to operate the first component to generate audio output or video output, the audio output or video output having the instruction set of the first device represented (e.g., encoded) in the audio output or video output.

[0024] In another example, processor resource 218 can execute an instruction set to identify, based on user preferences stored on the various devices, the time of day when a first component of a first device is authorized to operate in instruction set generator mode and a second component of a second device is authorized to operate in instruction set receiver mode, and based on the identified time of day, cause the first device to generate an audio signal with an instruction set encoded in a signal representing the instruction set at frequencies ranging between 20 Hz and 20,000 Hz or below 20 Hz and above 20,000 Hz.

[0025] In another example, processor resource 218 can execute a set of instructions to perform a handshake operation to authorize communication between the first and second devices when both devices are in a power-on sleep state. This communication utilizes a first component of the first device, a second component of the second device, a third component of the second device for generating audio or video output, and a fourth component of the first device for receiving audio or video output from the third component of the second device. The handshake operation includes operations for verifying a key stored in a memory resource corresponding to the processor resource. In this example, processor resource 218 can execute a set of instructions to determine a transmission end signal and cause the third component of the second device to suspend operation within the output range corresponding to the transmission of the instruction set until the transmission end signal is received by the second component of the second device. Further details regarding the use of multiple components and operations between multiple devices are available on [link to relevant documentation]. Figures 4 to 7 Let's discuss this.

[0026] although Figure 2 Example modules and Figure 1The example circuit is shown as an example implementation, but other combinations or sub-combinations of modules or circuits may be included in other implementations. In other words, although Figure 2 The modules shown and discussed in other example embodiments perform specific functions in the examples discussed herein; however, these and other functions may be performed, implemented, or realized at different modules or at combinations of modules. For example, two or more modules or circuits shown and / or discussed as separate entities may be combined to perform the functions discussed with respect to the two modules or two circuits. As another example, functions performed at one module as discussed with respect to these examples may be performed at one or more different modules. Another example of the division of operations across circuits is depicted in... Figure 3 middle.

[0027] As used herein, a processor resource is any suitable circuit capable of processing (e.g., calculating) instructions, such as one or more processing elements that can retrieve instructions from memory resources and execute those instructions. For example, processor resource 218 could be a central processing unit (CPU) that enables instruction set transfer via fetch module 211, decode module 212, and execution module 213. Example processor resources include at least one CPU, a semiconductor-based microprocessor, a programmable logic device (PLD), etc. Example PLDs include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable array logic (PALs), complex programmable logic devices (CPLDs), and erasable programmable logic devices (EPLDs). Processor resources may include multiple processing elements integrated in a single device or distributed across devices. Processor resources may process instructions serially, in parallel, or in partially parallel.

[0028] Reference Figure 3 Example peripheral device 300 typically includes circuitry 310, memory resources 320, audio output unit 302, video output unit 303, audio input unit 304, and video input unit 305. Figure 3 Memory resources 320 depicted and Figure 1 The device type identifier 121, instruction set 122, and instruction set version identifier 123 are stored in the same memory as the device type identifier 321, instruction set 322, and instruction set version identifier 323, and their descriptions do not all repeat therein. Other datasets, such as part list 324, power status 325, and instruction set mode 326, may be stored on memory resource 320.

[0029] Instruction set mode 326 can be any identifier, such as numbers, letters, characters, symbols, strings, categories, categories, or labels, used to indicate whether the peripheral device and / or its components are in instruction set receiver mode, instruction set generator mode, or not in a mode corresponding to the operation of transmitting instruction sets via audio or video signals. Power state 325 can be any identifier, such as numbers, letters, characters, symbols, strings, categories, categories, or labels, used to indicate the operating state of the peripheral device, such as the device's sleep state (e.g., S1 to S4) or activity level (e.g., no interactive signal received from the host). Component list 324 is any data structure used to represent multiple audio or video components integrated into or attached to the peripheral device. For example, component list 324 can be an array of identifiers corresponding to audio output component 302, video output component 303, audio input component 304, and video input component 305. In an example, component list 324 can be a lookup table having a list of available components, the status of the components, and a range of characteristics associated with the transmission of instruction sets between peripheral devices of the same device type via the corresponding components.

[0030] Circuit 310 includes and Figure 1 The comparator circuit 111, component selection circuit 112, and transmission circuit 113 are the same as the comparator circuit 311, component selection circuit 312, and transmission circuit 313, and their descriptions do not repeat in their entirety. Circuit 310 also depicts a handshake circuit 314, an activity circuit 315, and a bystander circuit 316.

[0031] Handshake circuit 314 represents circuitry for performing a handshake operation between devices using audio components (e.g., 302 and / or 304) and / or video components (e.g., 303 and / or 305). For example, handshake circuit 314 may include processor resources and executable instructions that cause audio output component 302 to send a handshake request signal to another peripheral device and cause audio input component 304 to receive a handshake confirmation signal from the peripheral device to which the handshake request signal was sent. Handshake circuit 314 can cause operations to be performed for authentication between devices. For example, handshake circuit 314 can perform operations to verify a key stored on the memory resources of a peripheral device. Handshake circuit 314 can manage handshake operations across multiple devices. For example, when the first and second devices are in a power-on sleep state, handshake circuit 314 can perform a handshake operation to authorize communication between the first and second devices using the audio or video components of both devices.

[0032] Activity circuit 315 represents circuitry used to determine the operational state of a peripheral device, such as peripheral device 300. For example, activity circuit 315 may include processor resources and executable instructions for retrieving power state 325 from the memory resources of peripheral device 300 and / or causing an input component (e.g., 304 or 305) to process a signal received from another peripheral device, the signal having the power state of that other peripheral device encoded in the signal. The power state may be a power-dormant state (e.g., not fully powered) or a power-on state (e.g., fully powered and active). Power-dormant states can be graded by the amount of power supplied to components of the peripheral device, and thus the functionality of the component can be limited differently at each grade. The activity level of a component and / or peripheral device is the degree of operation of the component and / or peripheral device. For example, if the panel of a computer monitor is emitting light, the panel may be in a power-on state, while if the panel is not emitting pixel changes, it may be in a low-activity state, or if the panel is not emitting light, it may be in an inactive state (e.g., minimum activity). In another example, if the computer mouse is recording changes in the laser sensor to detect movement of the device, the computer mouse is in a powered-on state, while if the laser is off, the computer mouse is in a powered-sleep state due to low activity (e.g., movement).

[0033] The active circuit 315 can be used in conjunction with other circuits, such as determining the power state 325 of the peripheral device 314 before or during the execution of the comparison circuit 311 and / or the transmission circuit 313. For example, the handshake circuit 314, in conjunction with the active circuit 315, can enable a handshake operation to be initiated when the peripheral device 300 is in an inactive or power-dormant state determined by the active circuit 315. For example, in response to determining that the peripheral device is in an inactive state, the handshake operation enables authentication between the peripheral device and the target device using the video output component 303 of the peripheral device and the video input component of the target device, wherein the peripheral device is a display device with a panel that has been powered down due to inactivity.

[0034] Bystander circuit 316 represents circuitry used to generate a signal for communication with another peripheral device to pause or otherwise stop the operation of the output component. In some example operations of the peripheral device that causes the transmission of the instruction set as described herein, audio or video signals may be used to perform the transmission, and other audio or video signals may affect the analysis of the transmitted signal. In such cases, communication with the peripheral device can be made to terminate component operation within the range of operational characteristics corresponding to the instruction set transmission. For example, to prevent interference with the instruction set transmission signal generated by audio output component 302 or video output component 303, peripheral device 300 may send a message to the peripheral device to stop the output component operation until the transmission of instruction set 322 is complete. In the example, the bystander circuit 316 may include processor resources and executable instructions that identify a bystander device (e.g., a peripheral device or a host device) in an active state corresponding to a potential operation of an output component, identify an input component of the bystander device (e.g., such as by viewing signals received by the input component or by transmitting messages using the bystander device), and cause the output component of the peripheral device 300 to produce audio or video output indicating a request for the bystander device to pause audio or video output operation when the target device is in instruction set receiver mode. The bystander circuit 316 then authorizes the transmission circuit 313 to perform the instruction set transmission, and once the transmission circuit 313 sends a transmission completion signal to the bystander circuit 316, the bystander circuit 316 can cause the device to return to normal operation. For example, the bystander circuit 316 can cause the output component of the peripheral device 300 to produce audio or video output indicating the completion of the instruction set transmission and allow the operation of the bystander device's audio or video output. In practice, circuit 310 (such as observer circuit 316) can be used to perform operations to set the input or output components to instruction set mode 326, such as instruction set receiver mode 326 for receiving instruction sets or instruction set generator mode for generating outputs with instruction sets encoded therein. For example, when in instruction set generator mode, a speaker can be enabled to generate audio signals at frequencies exceeding 20,000 Hz, and a microphone can ignore signals received at frequencies exceeding 20,000 Hz unless the microphone is in instruction set receiver mode. Regarding Figure 4 Further examples of methods for discussing operations between peripheral devices.

[0035] Reference Figure 4Example computing environment 400 includes systems 440, 450, and 460, each system including peripheral devices (441, 451, and 461) that can be connected to host devices (449, 459, and 469). Peripheral devices can be physically connected to host devices (e.g., having a direct electrical connection to a host device), wirelessly connected to host devices (e.g., wirelessly paired via a personal area network), or indirectly coupled to host devices to provide extended functionality to that host device. In some examples, peripheral devices can be coupled to multiple host devices. Figure 4 This describes an example environment 400 in which example peripheral device 441 provides example instruction sets to other example peripheral devices 451 and / or 461. Execution is performed without communication or other interaction with host devices 449, 459, and 469. Figure 4 The discussion focused on the operation.

[0036] Figure 4 Example peripheral devices 441, 451, and 461 are display devices. In other examples, other peripheral devices may perform such transmission operations and functions. Example peripheral devices 441, 451, and 461 include example audio components and example video components. Figure 4 Examples of audio components shown include speakers (442, 452, and 462) and microphones (444, 454, and 464) integrated into the corresponding display device (e.g., within the housing of the display device). Figure 4 Examples of video components shown include panels (443, 453, and 463) and cameras (445, 455, and 465) integrated into the display device. Some audio or video components may be retractable, such as positioning cameras and microphones on deployable cabinets (446, 456, and 466) extending from the display device's housing when a button on the display device's bezel is pressed. In some examples, components may deploy in either an instruction set receiver mode or an instruction set generator mode.

[0037] Other example peripheral devices may have more or fewer audio or video components. In one example, the peripheral device model may include input components but not corresponding output components for transmitting instruction sets. In such examples, auxiliary devices (such as...) can be used. Figure 4 Auxiliary device 448), which includes output components and may also include circuitry for enabling instruction sets to be transferred between peripheral devices in a hostless manner (such as...). Figure 1 (Circuit 110). In this example, the component used in the transmission request may be part of an external device coupled to the request peripheral device and / or the transmission peripheral device.

[0038] Figure 4 Describe an example of transmitting a set of instructions using audio and video signals. Figure 4 In the example, peripheral device 441 includes circuitry for causing panel 443 to generate flashing color shading and for causing speaker 442 to generate sound corresponding to signal 447 with encoded data to produce an instruction set. In practice, the instruction set can be transmitted using a video signal, where the video signal is color-coded to encode the representation of the instruction set, and both audio and video outputs can be used to transmit the instruction set.

[0039] In some examples, signal 447 may be directed to a single peripheral device, such as a device authorized via an authentication operation with a receiver peripheral device. For example, peripheral device 451 may send authentication information encoded in signal 457 that is receivable by input components 445 and / or 444 of peripheral device 441, and in response, peripheral device 441 may send a set of instructions encoded in signal 447.

[0040] In some examples, signal 447 can be targeted to multiple peripheral devices. (See reference...) Figure 4 Signal 447 can be broadcast, allowing multiple peripheral devices 451 and 461 to communicate near the speaker 442 and panel 443, and to receive signals from the microphones (454 and 464) and cameras (455 and 465) on peripheral devices 451 and 461. In one example, peripheral device 441 can wait until the environment is dark (e.g., during nighttime) to flash white light in a manner corresponding to zeros and one (i.e., the binary code representation of the instruction set), allowing any peripheral device in the same space, or otherwise capable of capturing changes in lighting using an optical sensor, to receive the binary code representation. In this way, the entire space of peripheral devices can simultaneously receive signals corresponding to the instruction set, such as codes corresponding to the latest firmware update. In another example, the speaker can transmit data using frequencies beyond the auditory perception range of a human user, allowing any peripheral device in the same space, along with the microphone and circuitry for analyzing signals at frequencies beyond human auditory perception, to receive the instruction set broadcast while continuing to operate the speaker at frequencies within the range of human audio perception, thus transmitting the instruction set in parallel.

[0041] Figure 4 The output components of peripheral device 461 are depicted as being muted or otherwise inactive to avoid interfering with signal 447. In this example, when the output components (e.g., 462 and 463) are in an instruction set receiver mode that stops the output components from generating audio and / or video signals, peripheral device 461 may still be able to receive signal 447 via input components (e.g., 464 and 465).

[0042] Figures 5 to 7These are flowcharts depicting example methods 500, 600, and 700 of the example instruction set for transmission. (Refer to...) Figure 5 Example method 500 for transmitting instruction sets typically includes comparing device types and instruction set versions of multiple peripheral devices, selecting input and output components for the device type, and transmitting the instruction set between devices using audio and / or video. Operations corresponding to methods 500, 600, and 700 can be performed by the circuitry of peripheral devices (such as…) Figure 1 Circuit 110) and in conjunction with any other operation (such as regarding Figure 4 The operation discussed will be executed.

[0043] At block 502, multiple instruction set versions of multiple peripheral devices are compared, such as in response to multiple messages received from multiple devices responding to a broadcast request for an instruction set. The comparison operation may include identifying the most recently deployed instruction set version among the multiple responses from the peripheral devices. The instruction set version is identified, and the peripheral device with the identified instruction set version is determined to broadcast the instruction set to other peripheral devices of the same type.

[0044] At block 504, input and output components for the device type are selected. For example, since the transmission will occur between devices of the same type, each device can have the same components (and be aware of the components of other devices), and an appropriate transmission method (e.g., audio or video) and components to support that transmission method are selected. For example, if audio is selected as the transmission method, speakers and microphones are selected as input and output components to perform the transmission of the instruction set.

[0045] At block 506, an instruction set is transmitted from the first peripheral device to the second peripheral device using audio and / or video as determined by the input and output components selected at block 504. For example, once an acknowledgment that the receiving device is ready is received, the transmitting peripheral device may send a start signal and begin transmitting audio or video with the instruction set encoded in the output signal.

[0046] Reference Figure 6 The method 600 for transmitting instruction sets typically includes determining the power state of the device, identifying neighboring devices of the same device type as the requesting device, selecting a leader device from among multiple devices of the same device type, sending a start signal to the leader device, and causing the requesting device to suspend output operations. Such operations can be performed by circuitry using processor resources, such as those of peripheral devices.

[0047] At block 602, the power state of the peripheral device is determined. For example, the peripheral device's processor resources can retrieve an identifier corresponding to the peripheral device's sleep or active state from memory resources. Example sleep states could be hibernation or connected wake-up states, or states corresponding to operating system power states S1 through S4. In the example of the S1 through S4 hierarchical sleep states, state S0 is the power-on state (i.e., non-power-sleep state), and states S1 through S4 indicate that less power is supplied to the peripheral device's electrical components than is supplied to the peripheral device's electrical components in state S0.

[0048] At block 604, a neighboring device of the same type as the requesting device (e.g., the device requesting instruction set transfer) is identified. As used herein, a neighboring device is a peripheral device within range capable of communicating with another peripheral device over audio or video. A check for the type of neighboring device can occur when the processor resource determines at block 602 that the peripheral device is in a power-sleep state. For example, when the requesting device is in a power-sleep state supplying power to the processor resource (rather than the entire system of electrical components of the peripheral device), the processor resource of the requesting device can identify a neighboring device of the same type as the requesting device. By performing the operations of methods 500, 600, and 700 discussed herein while the peripheral device is in a power-sleep state, the peripheral device can perform upgrades and associated instruction set transfers without interference from user interaction or host operation.

[0049] At block 606, a leader device is selected from multiple peripheral devices of the same device type. As used herein, the leader device is the peripheral device to be used as the source of the instruction set for transmission. Similar to block 604, leader device selection can be performed by processor resources while the peripheral device is in a power-on sleep state. The leader device can be selected based on which of the multiple devices has the latest version of the instruction set and the extent to which the instruction set can be transmitted to the requesting device over audio or video output. For example, if multiple devices have the latest version of the instruction set, the device that is spatially most central or closest to the device with the older version of the instruction set can be selected to improve the reliability of transmitting the instruction set over audio or video output without interference or interruption.

[0050] At block 608, the first component of the requesting device is caused to suspend operation. For example, the processor resource may send a signal to the requesting device instructing it to stop video output within the output range corresponding to the instruction set transmission while the second component receives the signal corresponding to the instruction set transmission. The requesting device may suspend operation within the output range associated with the instruction set transmission, and in some examples, may continue operation outside that range. In some examples, the output component may be restricted to operation within a characteristic range (corresponding to the instruction set transmission above audio or video output) when the peripheral device is in a power-on sleep state rather than when the peripheral device is in a power-on state.

[0051] At block 610, a start signal is sent from processor resources to the leader device to initiate the transmission of the instruction set. For example, the leader device may receive an acknowledgment for the start of transmission, such as encoded in an audio beep, where the start signal will cause the leader device to operate an output component to generate a representation of the instruction set using audio or video output. The instruction set is then transmitted via the operation of the output component and received by the input component of any requesting device within the transmission range. In this way, for example, method 600 can be used to transmit the instruction set without operating the host device coupled to the peripheral device.

[0052] Reference Figure 7 , Figure 7 Including with Figure 6 Similar blocks to the main blocks, and provides additional blocks and details. Specifically, Figure 7 Additional blocks and details are described, generally concerning the initiation of the instruction set receiver mode, retrieval of the component list, selection of output and input components, performance of authentication, and return of peripheral devices to power-off state. Blocks 702, 706, 710, 716, and 718 are related to... Figure 6 Blocks 602, 604, 606, 608, and 610 are similar, and for the sake of brevity, their respective descriptions are not repeated entirely.

[0053] At block 704, based on the activity level determined at block 702, an instruction set receiver mode is initiated on the requesting device. For example, when a peripheral device is in a power-sleep state or otherwise performs relatively little activity (e.g., an inactive panel of a display device or human-machine interaction (such as mouse movement or key presses) has not occurred for more than 30 minutes), the peripheral device can switch to a mode that receives firmware upgrades during off-peak operating times (e.g., early morning). In some examples, entering instruction set receiver mode or instruction set generator mode can cause the peripheral device and / or component to change from a power-sleep state or even a power-on state to perform operations and control components to induce transmissions of instruction sets.

[0054] Once the peripheral device is in instruction set receiver mode, it acts as a requesting device (i.e., the device making a request to transmit the instruction set) and begins to identify neighboring devices of the same type as the peripheral device, as depicted in block 706. In some examples, the instruction set transmission operations of methods 500, 600, and / or 700 may not be performed unless the requesting peripheral device and the leader peripheral device are in a power-on hibernation state or are otherwise identified as being below the defined activity level.

[0055] At block 708, a list of components is retrieved from memory resources. The operation at block 708 may be performed as part of the operation at block 706 or in response to the identification of a neighboring device of the same type. Peripheral devices are aware of potential combinations of audio or video signal transmissions between components because the devices to be interacted with are of the same type (e.g., the same model). For this reason, peripheral devices may ignore, limit, or not perform external queries to identify components of another device, and may instead use their own capabilities to determine how to communicate with another peripheral device of the same type.

[0056] At block 710, a leader device is selected from a plurality of devices of the same type, wherein the leader device has the latest instruction set and is capable of producing output within an audio / video threshold associated with the output type. The audio / video threshold is a range of characteristics corresponding to the ability of a particular component to generate audio and / or video signals. For example, a speaker may have a limited range of audio fidelity, or an LED may have a limited range of distinguishable light ranges based on the light sensor of the requesting device to receive video signals. At block 712, the output component of the leader device is selected based on the same device type (e.g., selected by the processor resources of the peripheral device from a list of components stored on the memory resources of the peripheral device).

[0057] At block 714, an authentication operation is performed between the leader device and the requesting device. Although peripheral devices can inherently communicate securely by recognizing the same device type, an authentication operation can be performed to ensure that the peripheral device is not deceived by a malicious device posing as a peripheral device of the same type. The authentication operation can be performed at block 714 using the output component selected at block 712.

[0058] At block 716, the leader device generates audio or video output corresponding to the instruction set to be transmitted via the output component selected at block 712. For example, the processor resources of the leader device may cause the selected output component to generate audio or video output in response to receiving a start signal received by the leader device. At block 718, the output components of the requesting device (and other devices) may suspend operation (e.g., suspend output generation by the output component) until a transmission end signal is received from the leader device. The transmission end signal may be a comma accompanying the start signal to indicate the end of the instruction set transmission. In response to receiving the transmission end signal, the requesting device (and the leader device) may exit instruction set receiver mode (or, as appropriate, instruction set generator mode), and if not already in a power-sleep state, enter the power-sleep state in which the device was in prior to the instruction set transmission operation of method 700. The transmission end signal may be used to signal peripheral devices in other groups to coordinate their own transmission of instruction sets specific to other groups, without interference from the peripheral devices in the first group. In this way, for example, a large space for multiple different types of peripheral devices can coordinate and propagate instruction sets to maintain devices with the latest firmware.

[0059] although Figures 5 to 7 The flowchart illustrates the specific order of execution, but the execution order may differ from the shown order. For example, the execution order of blocks can be disrupted relative to the shown order. Additionally, consecutively shown blocks may be executed simultaneously or partially simultaneously. All such variations are within the scope of this description.

[0060] All features and / or elements of any method or process so disclosed in this specification (including any appended claims, abstract, and drawings) may be combined in any combination except for at least some mutually exclusive combinations of such features and / or elements.

[0061] As used herein, the terms “comprising,” “having,” and variations thereof are intended to be identical to the term “including” or suitable variations thereof. Furthermore, as used herein, the term “based on” means “at least partially based on.” Thus, a feature described as being based on some incentives may be based solely on those incentives or on a combination of incentives including those incentives. The word “a” as used herein does not limit an element to a single element and may represent multiple such elements. Furthermore, the use of the words “first,” “second,” or related terms in the claims is not intended to limit the elements of the claims to a particular order or position, but only to distinguish individual elements of the claims.

[0062] This description has been shown and described with reference to the foregoing examples. It is understood that other forms, details, and examples may be made without departing from the spirit and scope of the appended claims.

Claims

1. A peripheral device, comprising: Memory resources, on which: Device type identifier; Instruction set; as well as Instruction set version identifier; Output components are used to generate audio or video output; as well as Circuit, used for: Identify a target device that matches the device type identifier of the peripheral device within a proximity threshold associated with the output component; In response to the determination that the instruction set version identifier of the target device does not match the instruction set version identifier of the peripheral device, such that: Select the input component of the target device and the output component of the peripheral device corresponding to the device type identifier; Send a request to place the input component of the target device into instruction set receiver mode; as well as The output components of the peripheral device are operated to generate audio or video output representing the instruction set to upgrade the target device.

2. The peripheral device according to claim 1, wherein: The peripheral device is a display device; The output component is the panel of the display device; The input component of the target device is an optical sensor; and When the input component of the target device is in the instruction set receiver mode, the operation of the panel generates video output representing the instruction set from the panel.

3. The peripheral device according to claim 1, wherein: The peripheral device is a human-machine interface device (HID). The output component of the peripheral device is the speaker of the HID; The input component of the target device is a microphone; and When the input component of the target device is in the instruction set receiver mode, the operation of the speaker generates audio signals in a frequency range below 20 Hz or above 20,000 Hz.

4. The peripheral device according to claim 1, wherein, The circuit is used for: In response to the determination that the peripheral device is inactive, the handshake operation performs authentication between the peripheral device and the target device using the output component of the peripheral device and the input component of the target device.

5. The peripheral device according to claim 1, wherein, The target device is identified using the output component of the peripheral device and the input component of the target device, and the circuit is further configured to: Identify the active state of the bystander device that corresponds to the potential operation of the output component of the peripheral device and the input component of the bystander device; When the target device is in instruction set receiver mode, the output component of the peripheral device generates an audio or video output request indicating that the observer device should pause audio or video output; and This causes the output component of the peripheral device to produce audio or video output indicating the completion of the instruction set transmission, and allows the operation of the observer device to enable the audio or video output operation.

6. A non-transitory computer-readable storage medium (NTCRSM) comprising an instruction set executable by processor resources for: Compare the first device type identifier of the first device with the second device type identifier of the second device; In response to the determination that the first device type identifier matches the second device type identifier, the first instruction set version identifier of the first device is compared with the second instruction set version identifier of the second device; In response to the determination that the first instruction set version identifier of the first device represents a newer version than the version represented by the second instruction set version identifier of the second device, the first device selects a first component to generate audio output or video output, and the second device selects a second component to receive the audio output or video output from the first component of the second device; and The first device is configured to operate the first component to produce the audio output or the video output having the instruction set of the first device represented in the audio output or video output, thereby upgrading the second device.

7. The NTCRSM according to claim 6, wherein, The instruction set is executable by the processor resources for: The first device generates an audio signal having the instruction set encoded in a signal, the audio signal representing the instruction set at a frequency below 20 Hz or above 20,000 Hz.

8. The NTCRSM according to claim 6, wherein, The instruction set is executable by the processor resources for: Based on user preferences stored on each device, the time of day when the first component of the first device is authorized to operate in instruction set generator mode and the second component of the second device is authorized to operate in instruction set receiver mode is identified.

9. The NTCRSM according to claim 6, wherein, The instruction set is executable by the processor resources for: When the first device and the second device are in a power-on sleep state, a handshake operation is performed to authorize communication between the first device and the second device. This communication utilizes a first component of the first device, a second component of the second device, a third component of the second device for generating audio or video output, and a fourth component of the first device for receiving audio or video output from the third component of the second device. The handshake operation includes an operation for verifying a key stored on a memory resource corresponding to the processor resource.

10. The NTCRSM according to claim 9, wherein, The instruction set is executable by the processor resources for: Determine the end of transmission signal; and This causes the third component of the second device to suspend operation within the output range corresponding to the transmission of the instruction set until the second component of the second device receives the transmission end signal.

11. A method for transmitting an instruction set, the method comprising: Identify nearby devices of the same type as the requesting device using the processor resources of the requesting device, which is in a power-on hibernation state; When in the power-sleep state, a leader device is selected from multiple devices of the same device type via the processor resources based on which of the multiple devices has the latest version of the instruction set and the extent to which the instruction set can be transmitted to the requesting device over audio or video output. A start signal is sent to the leader device via the processor resources on a first component, the first component being used to generate audio or video output and the start signal to cause the leader device to operate an output component to generate a representation of the instruction set using the audio or video output to upgrade the target device; as well as The processor resources enable the first component to suspend operation within the output range corresponding to the transmission of the instruction set when the second component receives a signal corresponding to the transmission of the instruction set.

12. The method of claim 11, comprising: The output component of the leader device is selected based on the same device type via the processor resources; In response to receiving the start signal received by the leader device, the leader device generates audio or video output via a selected output device; as well as This causes the leader device and the requesting device to enter the power sleep state.

13. The method according to claim 11, wherein: The instruction set is transmitted using a video signal, which uses color to encode the representation of the instruction set.

14. The method of claim 11, wherein: The instruction set is transmitted using both audio and video outputs.

15. The method according to claim 11, wherein: The first component and the second component are portions of an external device coupled to the requesting device.

Citation Information

Patent Citations

  • Optical communication transmission method and system

    CN103546213A

  • Automatic upgrading system and method for elevator peripheral programs

    CN106095494A

  • Method for establishing connection between devices and electronic device

    CN110730448A