REMOTE FIRMWARE UPGRADE
BACKGROUND OF THE INVENTION
Technical Field of the Invention The present invention relates to computer systems, and more particularly to systems and methods for upgrading firmware within peripheral devices over a communications link.
Description of Related Art A recent entry into the personal computer (PC) world is the Universal Serial
Bus (USB). A USB is typically used to connect peripheral devices to a PC. USB supports data transmission rates of over 10 Bits/s, and as such is suitable for supporting real-time video and/or audio applications.
Moreover, USB provides a simple, universal interface for a wide range of USB compliant devices including digital joysticks, scanners, speakers, digital cameras, monitor controllers and, essentially, any other devices traditionally adapted for the various PC interfaces. With USB, these devices all share a common interface and therefore there is a potential for dramatic increases in their interaction and enhanced functionality, especially in light of the high data transmission rates supported by USB . A particular application that can benefit from USB is computer telephony.
Computer telephony is a field of computer and telephony integration in which a PC telephone peripheral provides voice telephony and, through software running on an associated host PC, more advanced services, e^ management of voice, data and fax mail boxes, call routing services, etc. Most recently, the personal wireless network, a version of PC telephony, has emerged as a viable communications alternative for the small office and home environments. The personal wireless network is a radio frequency network utilizing a personal computer (PC) as a communications center. The personal wireless network promises to enable the consumer the capability of printing documents, interchanging files and accessing the Internet, regardless of where the PCS, printers and telephone
jacks are installed and used. Other electrical systems will also be controlled by the computer. For example, users will be able to arm their alarm system by speaking a simple command into a lightweight cordless telephone handset. In short, the personal wireless network utilizes high speed interfaces, such as the USB, for availing real-time communications in a network of essentially all of the abovementioned wireless and wired devices.
One of the challenges with these emerging fields of personal communications exists in upgrading the required system resources of the requisite communication devices, for example, certain peripheral devices. Similar to the network-side problem of upgrading switches to implement new services, the subscriber peripherals will often need to be revised in order to provide improved and/or enhanced services.
The critical logic or operating instructions used within such peripheral devices is typically provided in a non-volatile storage medium, e.g. read-only memory (ROM) or programmable read-only memory (PROM). The data (or information) stored in this type of programmable and/or replaceable memory and/or logic circuitry is typically referred to as firmware.
Clearly, it would be disadvantageous for the consumer to bring a peripheral device into a service department to be serviced when subscribing to new or advanced services, for example. Similarly, it would be undesirable to force the subscriber to manually update the peripheral device themselves.
Thus, as can be appreciated, there is a need for improved systems and methods for upgrading the firmware within peripheral devices. Preferably, the improved systems and methods will allow for an automated upgrade to the firmware that can be conducted without significantly impacting the user and/or other networked computing resources . There is also an attendant need for improved systems and methods that can be used to automatically determine if the firmware in a peripheral device requires an upgrade.
SUMMARY OF THE INVENTION
The present invention provides improved systems and methods for upgrading the firmware within networked peripheral devices. In accordance with one aspect of the present invention, the firmware upgrade is conducted automatically using existing network resources. In accordance with certain other aspects of the present invention, automated techniques are employed to determine if a connected peripheral device needs to have a firmware upgrade.
In accordance with certain embodiments of the present invention, the peripheral device includes at least one memory having at least a first portion and a second portion. Each of the portions is configured to store a firmware upgrade. A PC is also provided and connected to the peripheral device over a communications link. The PC is configured to determine if the peripheral requires a firmware upgrade, and if required to transfer firmware upgrade data, the peripheral device determines whether to upgrade the first portion or the second portion in the memory.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the method and apparatus of the present invention may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein: FIGURE 1 is an exemplary communications system that may be improved upon with implementation of a preferred embodiment of the present invention, and;
FIGURE 2 is a base station and personal computer as utilized in a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
FIGURE 1 is a block diagram depicting a personal wireless network, generally designated by the reference numeral 100, in which the present invention may be applied. Within personal wireless network 100 is a personal computer 110 and a base station 120. In accordance with certain preferred embodiments of the present invention, PC 110 and base station 120 are coupled together through USB cable 115.
Base station 120 is a peripheral device that supports multiple user communications by providing a wireless interface between various other peripherals operating therefrom and a public switched telephone network (PSTN) 180. Base station 120 also provides an interface between the wireless peripherals and PC 110 for any advanced telephony applications functioning by means of PC 110 which can additionally provide interface means with any external data or telephony networks 190, e& ISDN, PLMN, Internet, etc.
Peripherals operating in coordination with base station 120 may include PDA 130, fax machine 140, wireless telephones 150, laptop computer 160, a wired telephone 170 or any other device with appropriate communication provisions for transmitting and receiving communication to or from base station 120. In a preferred embodiment, wireless data transmission between base station 120 and any base station peripherals conform with the Digital Enhanced Cordless Telecommunications (DECT) standards although any digital communications protocol may be substituted therefor. Base station 120 will, in general, have a majority of its logic contained in embedded software, i.e., firmware. Traditionally, when new functionality or services are to be added to the personal wireless network 100, provisional updates to base station 120 are accommodated in one of two ways. First, a new base station may be designed with the upgraded firmware installed. This, therefore, necessitates the consumer purchase a new unit in order to access the additional services. This is clearly an unattractive option to the consumer and the hardware manufacturer as it is an added expense for the consumer to maintain the personal wireless network 100 up- to-date. Furthermore, updating the entire hardware unit prohibits the manufacturer from quickly developing and dispensing new services. A second approach is to physically replace the read-only memory chip on which the outdated firmware resides. This itself is a hardware upgrade and typically
necessitates opening the hardware box, an exercise generally greeted with discomfort by most consumers and, consequently, usually carried out by bringing the hardware unit into an authorized service center where the upgrade is performed. Aside from the inconvenience to the consumer, the manufacturer is further burdened by an increased staffing of the essential service personnel.
With this in mind, reference is now made to FIGURE 2. FIGURE 2 depicts a personal computer (PC) 210 and a base station 220 within the personal wireless network 100 shown in FIGURE 1, in accordance with certain embodiments of the present invention. PC 210 includes a USB port 230 for communicating with base station 220 over a USB cable 215, which is connected to a USB plug 240. PC 210 additionally includes a processor 250 and a memory 260 that is, in a preferred embodiment, a typical single in-line memory module (SIMM). In a preferred embodiment, PC 210 also has coupled thereto a CD-ROM drive 270 with communications therebetween being made over an IDEA cable 225. Base station 220 includes a static random access memory (SRAM), such as, for example, flash memory 280, for storing firmware necessary for base station 220 operation. Flash memory 280 is preferably partitioned into at least two memory partitions 280A and 280B. Alternatively, memory partitions 280A and 280B can be embodied in two or more separate flash memory chips (not shown). Each memory partition 280A and 280B contains a respective subpartition
281 A and 28 IB for storage of a current firmware version string or other type of identifier. For example, memory partition 280A can include the current firmware and, as such, the contents of memory partition 280B are unused and represent an available partition of memory 280. The base station 220 firmware upgrade process includes storing an updated firmware version in memory 260, as received from an external data source, e.g. from a CD-ROM disk read from CD-ROM drive 270. It is understood that writing an updated firmware revision into memory 260 may be accompanied by writing the associated logic directives, i.e., software, for carrying out the firmware revision process into the same or different memory 260. However, the logic directives for carrying out the firmware revision may be written into a storage media, e.g., a hard
drive, prior to loading the updated firmware into memory 260. Upon writing an updated firmware version into memory 260, an associated updated firmware version string is written into memory partition 260 A.
Commencement of the firmware upgrade process can be initiated with fixed events in the personal wireless network 100, ej^ power-up of base station 220. A rudimentary step in the firmware upgrade process is the evaluation of whether a firmware upgrade is necessary at all, i.e., an evaluation of whether or not the firmware currently stored in the base station's memory 280 is outdated by a current version of the firmware stored in memory 260. Pursuant to assessing the need for a firmware upgrade, the base station firmware version string stored in memory partition 281 A is extracted and transferred from base station 220 to PC 210 via the USB interface where it is read by processor 250. The firmware update version string is subsequently retrieved from memory partition 260 A by processor 250 which makes a numerical comparison between the two strings. The comparison procedure is preferably a hexadecimal comparison and requires firmware revisions to be enumerated chronologically. Equivalent strings indicate thebase station 220 is currently operating with the most recent firmware available and the firmware update terminates. If the string comparison, however, indicates the current firmware update version string is larger than the current firmware version string associated with the firmware version residing within base station 220, a firmware version update is necessitated and the process progresses according to the methods described hereinbelow.
If the string comparison indicates that a firmware upgrade is needed, then the base station 220 is notified of an impending firmware upgrade by a message transmitted from PC 210 to the base station 220 over the default control pipe of the USB as required in USB communication transfers. Base station CPU processor 290 then begins preparation of the firmware upgrade by erasing the memory partition 280B allocated for the writing of the firmware upgrade. Concurrently, base station processor 290 directs the initialization of the required queues for receiving the incoming packets that will be transferred from PC 210 over the USB . Once the base station has been prepared for the firmware upgrade, a notification message is transmitted from base station 220 to PC 210 over the USB interface. U p o n
reception of the notification message by PC 210, the firmware update stored in memory 260 is packetized and individual packets begin being transmitted to base station 220 over one of the available bulk pipes of the USB . A bulk pipe is chosen for actual transfer of the firmware upgrade so that bandwidth available on the isochronous pipes, those required for servicing of real-time communication peripherals operating from base station 220, is not consumed by the firmware upgrade, thereby allowing uninterrupted service of the personal wireless network 100 throughout the firmware upgrade.
Due to the fact that flash memory writes are often quite slow, it is likely that the transfer rate of the firmware upgrade over the USB will exceed the write rate to the memory partition 280B. It is thus a responsibility of base station processor 290 to constantly monitor the queue loading. In the event the queue becomes full, the base station processor 290 instigates a block mode on the bulk pipe according to the standard USB suspend/resume logic. This operation on the USB, in turn, forces PC 210 to suspend transmission of additional firmware upgrade packets until the queue regains suitable accommodations.
The last packet of the firmware upgrade is preferably a checksum value. Once the firmware upgrade is completely written into memory partition 280B, base station processor 290 generates a checksum value according to the firmware written into memory partition 280B. This value is then compared to the checksum value transmitted over the USB . A pass or fail status for the firmware upgrade results from the respective equivalence or nonequivalence of the checksum comparisons. In the event the checksum comparison results in a pass status, the firmware upgrade version string is written into memory subpartition 28 IB. A flag in base station processor 290 is then be set indicating the current base station firmware is stored in memory partition 280B. If the checksum comparison results in a fail status for the firmware upgrade, the firmware upgrade version string is not written into memory subpartition 28 IB thus maintaining the firmware stored in memory partition 280A as the current base station firmware. The base station 220 firmware upgrade is completed by transmission of a control signal to PC 210 indicating the status of the firmware upgrade.
It is important to note that the firmware upgrade version string is not written into the associated memory subpartition until a pass status of the firmware upgrade is obtained from the checksum comparison. To avoid problems, the base station memory partition containing the current operating base station firmware is denoted by a flag stored in a separate parameters section of the flash memory, designated as the "active sector". Otherwise if the flag were stored in a register of the base station processor 290, the flag would likely be erased since, in general, internal registers tend to be volatile in nature and therefore maintain no values upon power loss.
Since the upgraded firmware version string is not written into memory partition 28 IB until a successful firmware upgrade made to memory partition 280B has been verified, the base station needs only to, upon power up, make a comparison between the firmware version strings stored in respective memory partitions 281 A and 28 IB. The greater of the two firmware version strings thereby indicates to the base station processor 290 which memory partition the current firmware is stored in. The memory partition into which subsequent firmware upgrades are to be written is made in a similar manner. Specifically, the memory partition associated with the subpartition not designated as the "active sector" would receive the firmware update.
In other words, whichever is the "active sector", the firmware upgrade is done in the other partition and only after a "passing" checksum is the flash memory "active sector" updated too.
Although a preferred embodiment of the method and apparatus of the present invention has been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.