`
`';..;
`
`.
`
`\. ~ · .
`'9 . ·~
`\
`. :.
`'i.
`..!!!
`I ~
`
`]1 t/ I
`iV/''
`I ············
`
`..
`
`'.
`
`I
`
`!:;j:::·
`
`Foreign priority claimed
`35 USC 119 conditions met
`
`crl no
`O yes
`O ye~v,rn no.
`
`Examiner's initials
`
`SUBCLASS
`
`GROUP ART UNIT
`
`f.!.AAMlNER
`
`-----~---
`
`....
`
`AS
`FILED
`
`STATE OR SHEETS TOTAL
`COUNTRY DRWGS. CLAIMS
`
`INDEP.
`CLAIMS
`
`FILING FEE
`RECEIVED
`
`ATTORNEY'S
`DOCKET NO.
`
`PARTS OF APPLICATION
`FILED SEPARATELY
`
`NOTICE OF ALLOWANCE MAILED
`
`Label
`Area
`
`Form PT0-436A
`(Rev. 8/92)
`
`)/"M6
`
`/3,~
`
`Assistant Examiner
`
`ISSUE
`BATCH
`Primary Examiner NUMBER
`PREPARED FOR ISSUE
`
`WARNING: The information disclosed herein may be restricted. Unauthorized disclosure ·nay be prohibited
`outside the U.S.
`by the United States Code Title 35, Sections 122, 181 and 368. Possessi
`Patent & Trademark Office is restricted to authorized employees and contr« Jrs only.
`
`/CAl"'C\
`
`Page 1 of 142
`
`GOOGLE EXHIBIT 1004
`
`
`
`>
`
`PATENT APPLICATION
`
`'/lll!IJIH
`
`Page 2 of 142
`
`
`
`Staple ls.s~e ~jp Hef-e
`
`•
`
`. """"·
`
`IDNO.
`
`POSITION
`CLAS$tFIER
`/e)CAMINER
`
`,,
`
`'',
`
`;
`
`SPECi.HAND
`· Fil.£ MAINT.
`DRAFtlNG
`
`INDEX OF CLAIMS
`
`Date
`
`SYMBOLS
`./ ................................. Rejected
`= ................................. Allowed
`• (Through numberal) Canceled
`+ ................................. Restricted
`N .............•.•............•.... Non-elected
`I ................................. Interference
`A ................................. Appeal
`0 ................................. Objected
`
`Date
`
`<ii
`c:
`u:::
`
`Claim
`iii
`r::
`:g,
`0
`51
`52
`53
`54
`55
`56
`57
`58
`59
`60
`61
`62
`63
`64
`65
`66
`67
`68
`69
`70
`71
`72
`73
`74
`75
`76
`77
`78 ~
`79
`80
`81
`82
`83:
`54:
`85
`8&
`87
`88
`89
`901
`91
`92
`93
`94
`95
`![16
`97
`98
`99
`100
`
`Page 3 of 142
`
`
`
`( /'
`
`;
`
`. UfllJalt .Pb~ ~ilt~
`c,4l/1."1tt t >
`
`(AIGHT CJutSfD.E);
`
`Page 4 of 142
`
`
`
`' ;,:<, Ji,
`'t
`
`· . .
`
`' .
`
`08 422075
`PATENT APPLICATION SERIAL NO.
`
`U.S. DEPARTMENT OF COMMERCE
`PATENT AND TRADEMARK OFFICE
`FEE RECORD SHEET
`
`·~.
`
`~ ,l.
`
`!
`
`090 BA 04/25/95 08422075
`
`1 201
`
`683.00 CK 019743-0165
`
`PT0-1556
`(5/87)
`
`Page 5 of 142
`
`
`
`APPLICATION FOR U.S. PATENT
`TRANSMITTAL FORM
`
`PATENT
`
`Attorney Docket No.:
`19743-0165
`
`Sir:
`
`of:
`
`Transmitted herewith for filing is the patent application
`
`Inventors:
`
`Dale E. Beasley, et al.
`
`For:
`
`SYSTEM AND METHOD FOR REMOTE PATCHING OF
`OPERATING CODE LOCATED IN A MOBILE UNIT
`
`Enclosed are: 5 Sheets of Formal Drawings
`
`Total Claims:
`Independent Claims
`
`FEE CALCULATION
`
`Number
`42
`
`5
`
`-20 =
`- 3 =
`
`Number
`Extra
`22
`
`Rate
`x $11 =
`x $38 =
`2
`TOTAL FILING FEE=
`
`FEE
`
`Basic Fee
`$365.00
`
`$242.00
`
`$76.00
`
`$683.00
`
`Enclosed is a check in the amount of $683. oo. Please charge
`any additional fees or credit any overpayment to Deposit Account
`No. 02-0384 of BAKER & BOTTS, L.L.P.
`
`BAKER & BOTTS, L.L.P.
`Attorneys for Applicants
`
`April 12. 1995
`Date
`
`DALOl:85683.1
`
`Page 6 of 142
`
`
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`In re Application of:
`Date Filed:
`Title:
`
`Dale E. Beasley, et al.
`April 12, 1995
`FOR REMOTE
`SYSTEM AND METHOD
`OPERATING
`CODE
`PATCHING
`OF
`LOCATED IN A MOBILE UNIT
`
`Box Patent Application
`Honorable Commissioner of
`Patents and Trademarks
`Washington, D.c.
`20231
`
`Dear Sir:
`
`CERTIFICATE OF MAILING BY EXPRESS MAIL
`
`I hereby certify that the attached Patent Application,
`Declaration and Power of Attorney, a check in the amount of
`$683.00 to cover the cost of the patent application filing
`fee, Assignment cover Sheet, Assignment, $40.00 check to
`cover the assignment recording fee, Verified Statement
`(Declaration) Claiming Small Entity Status, Information
`Disclosure Statement with references, and 5 sheets of
`formal drawings are being deposited with the United States
`Postal Service "Express Mail Post Office to Addressee"
`service under 37 C.F.R. 1.10 on this 12th day of April,
`1995 addressed I to
`the Commissioner of Patents and
`! •
`Trademarks, Washfngton, D.C.
`20231.
`
`Express Mail Rec~ipt
`No. TB571700844 US
`Attorney's Docket:
`19743-0165
`
`DALOl:85685.1
`
`----------------------
`
`Page 7 of 142
`
`
`
`J LJ
`ATTORNEY'S DOCKET
`19743-0165
`
`PA1'ENT APPLICATION
`
`1
`
`SYSTEM AND METHOD FOR REMOTE PATCHING
`O~ OPERATING CODE LOCATED IN A MOBILE UNIT
`
`TECHNICAL FIELD OF THE INVENTION
`This invention relates in general to the field of
`electronic systems, and more particularly to a system and
`method for remote patching of operating code located in a
`mobile unit.
`
`5
`
`Page 8 of 142
`
`
`
`19743-0165
`
`2
`
`/MJ ()75
`
`PA4~NT APPLICATION
`
`(
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`BACKGROUND OF THE INVENTION
`Software suppliers and other sellers of computer
`systems often have a need for correcting or upgrading
`existing software used by their customers. Common
`methods of doing so include the distribution of floppy
`disks and tapes and the provision of modem support.
`However, the distribution of floppy disks and tapes is
`time consuming and forces the customer to use the old
`software while waiting for updates. Modem support can be
`used to link directly to the consumer's remote computer
`system and manually upgrade the software. However, such
`manual upgrade is time consuming, expensive and prone to
`human error.
`Additionally, a central computer system has been
`used to provide access to software updates from systems
`at fixed remote locations. One such system is disclosed
`in U.S. Patent No. 5,155,847 entitled "Method and
`Apparatus for Updating Software at Remote Locations."
`U.S. Patent No. 5,155,847 discloses a central
`computer system that can monitor and record changes to
`versions of software. A user having a fixed remote
`system operating an old.version of software may access
`the central computer system.
`If changes are applicable
`to the software used by the remote system, the central
`computer system can provide patches to the remote system
`for updating the software.
`However, the system disclosed by U.S. Patent No.
`5,155,847 discloses remote systems at fixed locations
`that access a central computer system over an on-line
`communication link that allows interactive and
`bidirectional communication. The remote systems
`participate in a single, continuous communication session
`that is terminated after the remote user receives the
`appropriate patches.
`
`Page 9 of 142
`
`
`
`19743-0165
`
`PA'.1. .t!!NT APPLICATION
`
`3
`
`SUMMARY OF THE INVENTION
`In accordance with the present invention,
`disadvantages and problems associated with prior systems
`and methods for updating software have been substantially
`reduced or eliminated. One aspect of the present
`invention provides remote patching of operating code
`located in a mobile unit.
`According to an embodiment of the present invention,
`a system for remote patching of operating code located in
`a mobile unit is provided. The system includes a manager
`host and a mobile unit. The manager host is operable to
`initiate transmission through a conununication network of
`at least one discrete patch message defining at least one
`patch. The mobile unit is operable to receive the at
`least one patch message. The mobile unit is also
`operable to create patched operating code by merging the
`at least one patch with current operating code located in
`the mobile unit and to switch execution to the patched
`operating code.
`According to another embodiment of the present
`invention, a method for remote patching of operating code
`located in a mobile unit is provided. At least one
`discrete patch message defining at least one patch is
`transmitted through a conununication network. The at
`least one patch message is received in a first mobile
`unit where the first mobile unit is executing current
`operating code located in the mobile unit. Patched
`operating code is created in the mobile unit by merging
`the at least one patch with the current operating code.
`Execution in the mobile unit is switched to the patched
`operating code.
`A technical advantage of the present invention is
`allowing remote patching of operating code located in a
`mobile unit without physically touching the mobile unit
`or establishing a bidirectional and interactive
`conununication link. The patching of code may be to fix
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 10 of 142
`
`
`
`19743-0165
`
`PA~~NT APPLICATION
`
`4
`
`software bugs, add new functionality, or completely
`replace the existing version of code with a new version.
`An additional technical advantage of the present
`invention is the provision of mobile units operable to
`interpret patch messages and create patched operating
`code therefrom without affecting the normal functions
`performed by the mobile unit.
`According to another technical advantage of the
`present invention, patches are broadcast to a number of
`mobile units from a central location. The central
`location operates to keep track of the location of each
`mobile unit and how to deliver patch messages. The
`central location can also tailor the broadcasts of
`patches to different mobile units.
`According to an additional technical advantage of
`the present invention, patches are sent as several
`discrete patch messages to a mobile unit, reception of
`the discrete patch messages is verified by the mobile
`unit, and patch information is combined by the mobile
`unit to create a complete patch file used to patch
`current operating code. The patches can be sent in a
`single or multiple communication sessions.
`
`5
`
`10
`
`15
`
`20
`
`Page 11 of 142
`
`
`
`19743-0165
`
`PA'l.l:!!NT APPLICATION
`
`5
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`For a more complete understanding of the present
`invention and for further features and advantages,
`reference is now made to the following description taken
`in conjunction with the accompanying drawings, wherein
`like referencynumerals represent like parts, in which:
`FIGURE 1 illustrates one embodiment of a system for
`remote patching of operating code located in a mobile
`J
`unit;
`FIGURE 2 is a schematic representation of one
`embodiment of J8: manager host;
`FIGURE 3 is a schematic representation of one
`embodiment of ;6 mobile unit;
`FIGURE 4 illustrates one embodiment of message
`formats for patch messages used to represent a patch
`file;
`/
`FIGURE 5 is a flow chart showing one embodiment of a
`method of operation of a mobile unit for remote patching
`of operating {ode located in the mobile unit;
`FIGURE 6 is a flow chart showing one embodiment of a
`method of creating patched operating code in a mobile
`unit; and
`;·
`FIGURE
`is a flow chart showing one embodiment of a
`method of resetting and restarting with patched operating
`code.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`Page 12 of 142
`
`
`
`19743-0165
`
`PA~~NT APPLICATION
`
`6
`
`DETAILED DESCRIPTION OF THE INVENTION
`FIGURE 1 illustrates one embodiment of a system,
`indicated generally at 10, for remote patching of
`operating code located in a mobile unit. System 10
`comprises a communication network 12 that includes an
`enhanced services complex 14.
`Communication network 12 may include one or a
`combination of several communication technologies, such
`as a wireless communication network like the cellular
`telephone network, a land-line communication network,
`another portion of the public switched telephone network
`(PSTN), a dedicated communication link, or any other
`appropriate communication link. Communication network 12
`can support data transmissions or data and voice
`transmissions simultaneously. The type of communication
`link utilized in communication network 12 may vary
`between components of system 10, as described below.
`A manager host 16 is coupled to enhanced services
`complex 14 using communication network 12. A first client
`host 18 and a second client host 20 also are coupled to
`enhanced services complex 14 in a similar manner as
`manager host 16. Manager host 16, first client host 18,
`and second client host 20 can be separate from or
`integral to enhanced services complex 14.
`A first mobile unit 22 and a second mobile unit 24
`are associated with first client host 18 and are coupled
`to enhanced services complex 14 using communication
`network 12. Similarly, a third mobile unit 26, a fourth
`mobile unit 28 and a fifth mobile unit 30 are associated
`with second client host 20 and are coupled to
`communication network 12.
`In the preferred embodiment,
`the communication link of the communication network 12
`that couples mobile units 22, 24, 26, 28, and 30 with the
`enhanced services complex 14 is a wireless or mobile
`communication network, such as a cellular telephone
`network.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 13 of 142
`
`
`
`19743-0165
`
`PA'l:clNT APPLICATION
`
`7
`
`In the embodiment of FIGURE 1, manager host 16
`provides support to client host 18 and client host 20
`with respect to processing of information messages
`exchanged between enhanced services complex 14 and
`associated mobile units 22, 24, 26, 28 and 30 via
`communication network 12. For example, client host 18
`and client host 20 can receive status information from
`and provide dispatching information to mobile units 22
`and 24 and mobile units 26, 28 and 30, respectively.
`Manager host 16 provides support for systems operating in
`both client hosts 18 and 20 and mobile units 22, 24, 26,
`28 and 30.
`At times, manager host 16 might desire to enhance,
`correct, or replace current operating code located in one
`or more of the mobile units. A patch file can be created
`that defines one or more patches that need to be made to
`provide enhancements or corrections to the current
`operating code.
`In addition to the patch or patches, the
`patch file can provide a new version number and a new
`checksum for the resulting patched operating code. The
`version number can provide information such as the phase,
`release, revision and modifications made. Furthermore,
`as described below, the messages can also define a
`completely new version of the software that is to replace
`the current version running at the mobile units.
`Therefore, the description of the components and
`operation of sending patch messages to mobile units
`applies equally to the transmission of download messages
`that combine to form new operating code to replace ~he
`current operating code.
`According to the teachings of the present invention,
`the patch file can be represented by a set of discrete
`patch messages. Each patch message can be sized as a
`discrete data payload suitable for transmission in a
`message through communication network 12. Manager host
`16 can transmit the discrete patch messages to
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 14 of 142
`
`
`
`19743-0165
`
`PA' ... ~NT APPLICATION
`
`8
`
`appropriate mobile units. When a mobile unit receives
`the patch messages, the mobile unit can verify the patch
`messages, merge the defined patches with the current
`operating code, and switch execution to the patched
`operating code.
`In order to receive a complete patch
`file, each mobile unit receives all of the patch messages
`in the set representing the patch file. The transmission
`of discrete patch messages does not require a dedicated
`or interactive communication link, and can be performed
`in several communication sessions. For example, due to
`the inherent limitations of wireless communication, the
`communication link to the mobile unit may be lost.
`System 10 can then reestablish the communication link and
`continue transmission of the current patch message.
`In this manner, operating code located in a mobile
`unit may be maintained and updated without the need for
`manager host 16 physically to contact the mobile unit.
`In addition, manager host 16 can provide varying levels
`of enhancements to mobile units associated with different
`client hosts and remotely maintain the operating code
`associated with each level of enhancement. This can be
`accomplished by addressing patch messages to the
`appropriate mobile units. For example, mobile units 22
`and 24 associated with client host 18 can have a
`different version of operating code than mobile units 26,
`28 and 30 associated with client host 20.
`Manager host 16 can transmit discrete patch
`messages, according to the teachings of the present
`invention, in order to overcome limitations inherent in
`communication network 12. The communication link to the
`mobile units in communication network 12 can comprise any
`wireless or mobile communication system using land-based
`or space-based transmitters, receivers, or transceivers,
`such as a cellular telephone network, a personal
`communication system (PCS), a specialized mobile radio
`(SMR}, an enhanced specialized mobile radio (ESMR},
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 15 of 142
`
`
`
`19743-0165
`
`PA'""&NT APPLICATION
`
`9
`
`citizen's band (CB), a paging network, a satellite-based
`communication network, or any other communication system
`supporting transmission of data to the mobile units.
`Due to the nature of wireless communication,
`transmission of large amounts of data over communication
`network 12 can be expensive, error prone, and risky. For
`example, wireless communications may not be appropriate
`for an on-line session that requires bidirectional and
`interactive communications over an extended period of
`time. Further, in such a system, a mobile unit might be
`required to limit normal operation until the transmission
`of data was complete. Normal communication of messages
`between a client host and an associated mobile unit would
`be disrupted and the mobility of the mobile unit would be
`restricted. For example, if an on-line communication
`link over a cellular network were used, a mobile unit
`would be forced to stop at the edge of network coverage
`in order to maintain the communication link. The present
`invention overcomes these limitations of wireless
`communication by broadcasting short messages over one or
`several separate communication sessions that do not
`require interactive or substantial bidirectional
`communication. Furthermore, the present invention can
`resume transmissions when the communication link is lost
`without sacrificing a significant loss of previously
`transmitted data.
`Each mobile unit 22, 24, 26, 28, and 30 can be
`associated with a vehicle, person, or other mobile
`entity. Each mobile unit 22, 24, 26, 28, and 30 operates
`by executing the current operating code located in the
`mobile unit. The mobile units 22, 24, 26, 28, and 30 may
`perform various communicating, locating, and fleet
`management functions as described in U.S. Patent No.
`5,155,689 entitled "Vehicle Locating and Communicating
`Method and Apparatus".
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`lD
`
`I ________ _
`
`Page 16 of 142
`
`
`
`19743-0165
`
`PA':i.~NT APPLICATION
`
`10
`
`In operation, manager host 16 can accomplish remote
`patching of operating code located in mobile units 20,
`22, 24, 26, 28 and 30 by transmitting a set of discrete
`patch messages through communication network 12. The
`discrete patch messages collectively represent a patch
`file defining at least one patch to be made to current
`operating code located in one or more of mobile units 20,
`22, 24, 26, 28 and 30. Each mobile unit 20, 22, 24, 26,
`28 and 30 is operable to receive the patch messages
`transmitted by manager host 16. Each mobile unit 20, 22,
`24, 26, 28 and 30 can create patched operating code by
`merging the defined patch or patches with the current
`operating code and can switch execution to the patched
`operating code. The discrete patch messages can comprise
`packets that can be transmitted before or after voice
`communication, during dead time of conversation or other
`suitable time period for transmitting packet sized data.
`Manager host 16 can aQdress patch messages to mobile
`units as appropriate for the patch file being
`transmitted. Manager host 16 can address a patch message
`to one of the mobile units, to all of the mobile units,
`or to a group of mobile units. A patch message addressed
`to all of the mobile units can be referred to as a
`broadcast message. A patch message addressed to a group
`can correspond to mobile units associated with client
`host 18 or client host 20. For example, manager host 16
`can address a patch message such that it will be
`transmitted to both mobile unit 22 and mobile unit 24
`associated with client host 18.
`In the embodiment of FIGURE 1, enhanced services
`complex 14 of communication network 12 operates to handle
`all messages transmitted between manager host 16, client
`host 18, client host 20 and mobile units 22, 24, 26, 28,
`and 30.
`In particular, enhanced services complex 14
`maintains information to establish communication with
`mobile units 22, 24, 26, 28, and 30 using communication
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`[\
`
`Page 17 of 142
`
`
`
`19743-0165
`
`PA':i. .c:NT APPLICATION
`
`11
`
`network 12. Enhanced services complex 14 then ensures
`that message data is delivered with integrity. Part of
`the operation of enhanced services complex 14 is to
`handle patch messages transmitted by manager host 16 to
`mobile units 22, 24, 26, 28, and 30. Enhanced services
`complex 14 recognizes whether a patch message is
`addressed to one mobile unit, a group of mobile units or
`all mobile units, establishes communication with the
`appropriate mo ile units, and transmits the discrete
`atch message ,lication Serial No. 08(095, 166
`entitled
`e hod and Apparatus for a Nation-wide Cellular
`Telephone Network" describes in detail the components and
`functionality of enhanced services complex 14, and is
`herein incorporated by reference. Enhanced services
`complex 14 and manager host 16 can be separate components
`. ~syste: :~,~~r integrated into a single platform as
`l,/"describe~plication Serial No. 08/095,166.
`A technical advantage of the present invention is
`allowing remote patching of operating code located in a
`mobile unit without physically touching the mobile unit
`or establishing an on-line communication link. An
`additional technical advantage of the present invention
`is the provision of mobile units operable to interpret
`patch messages and create patched operating code
`therefrom without affecting the normal functions
`performed by the mobile unit. According to another
`technical advantage of the present invention, a mobile
`unit can provide feedback regarding the current version
`of operating code located in the mobile unit and can
`provide verification of completion of patches to the
`current operating code.
`FIGURE 2 is a schematic representation of one
`embodiment of a manager host 16. Manager host 16
`communicates with mobile units using link 40 to
`communication network 12. Link 40 may be one or a
`combination of dedicated or switched telephone lines in
`
`5
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 18 of 142
`
`
`
`19743-0165
`
`PA'.l.~NT APPLICATION
`
`12
`
`the mobile or land-line public switched telephone network
`{PSTN), or other land-based communication links,
`satellite-based communication links, or any other
`suitable communication link that allows manager host 16
`to transmit messages to or receive messages from
`communication network 12.
`A message received from a mobile unit enters manager
`host _16 through a modem, DTMF coder/decoder, or other
`data encoder 42 and passes to central controller 44.
`Conversely, a message transmitted to a mobile unit passes
`from central controller 44 through coder/decoder 42 to
`communication network 12.
`Memory 46 and input/output device 48 are coupled to
`central controller 44. Central controller 44 receives
`and processes messages from mobile units. Central
`controller.44 also transmits messages to mobile units
`including patch messages addressed to appropriate mobile
`units. Memory 46 may be RAM, ROM, CD-ROM, removable
`memory devices, or any other device that allows storage
`and retrieval of data.
`Input/output device 48 includes
`any variety of output devices, such as a display, a
`speaker to provide audible information, removable storage
`media, or any other appropriate output device.
`Input/output device 48 may also include a variety of
`input devices, such as a keyboard, mouse, touchscreen,
`removable storage media, or any other appropriate input
`device.
`FIGURE 3 is a schematic representation of one
`embodiment of a mobile unit, indicated generally at SO.
`Mobile units 22, 24, 26, 28, and 30 of FIGURE 1 may be
`constructed in a similar manner as mobile unit SO of
`FIGURE 3. Mobile unit 50 comprises a mobile
`communications device 52 including an antenna 54 coupled
`to a transceiver 56. A handset 58 is also coupled to
`transceiver 56. Transceiver 56 is coupled to bus drivers
`60 which in turn are coupled to a modem, DTMF
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`\3
`
`Page 19 of 142
`
`
`
`19743-0165
`
`PA.;,~NT APPLICATION
`
`13
`
`coder/decoder, or other data encoder 62. Coder/decoder
`62 is coupled to processor 64. Transceiver 56 is also
`coupled to processor 64 over link 65.
`Processor 64 is coupled to a first flash bank 66 and
`to a second flash bank 68 and to a RAM 70. First flash
`bank 66, second flash bank 68, and RAM 70 may be RAM,
`ROM, CD-ROM, removable memory devices, or any other
`device that allows storage and retrieval of data.
`Furthermore, first flash bank 66, second flash bank 68,
`and RAM 70 may be separate devices or portions of one or
`more devices. An input device 72 and an output device 74
`are also coupled to processor 64.
`In operation, mobile communications device 52
`receives and transmits messages over communication
`network 12. The messages received by transceiver 56 are
`passed to processor 64 either over link 65 or over other
`appropriate path such as bus drivers 60 and coder/decoder
`62. Processor 64 manages the operation of mobile unit
`50. Handset 58 provides additional voice or data
`communication. First flash bank 66 and second flash bank
`68 are operable to store operating code for execution by
`processor 64, and RAM 70 is operable to provide processor
`64 with memory work space.
`In operation, processor 64 executes current
`operating code out of first flash bank 66 or second flash
`bank 68. Processor 64 performs functions according to
`the current operating code. When processor 64 receives
`one or more patch messages representing a complete patch
`file, processor 64 analyzes the patch messages to
`determine whether processor 64 should initiate a patch
`process.
`If processor 64 is currently executing an
`appropriate version of operating code suitable to receive
`the defined patch or patches, processor 64 initiates the
`patch process to implement the patch or patches defined
`by the patch messages.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 20 of 142
`
`
`
`19743-0165
`
`PA:~~NT APPLICATION
`
`14
`
`Processor 64 stores patch information defined by the
`patch messages in RAM 70.
`If processor 64 is executing
`out of first flash bank 66, processor 64 creates patched
`operating code in second flash bank 68 by merging the
`patch information with the current operating code. After
`the patched operating code is created, processor 64 sets
`a flag indicating that further execution should occur out
`of second flash bank 68. Processor 64 then initiates a
`reset so that mobile unit 50 restarts with processor 64
`executing the patched operating code located in second
`flash bank 68. An analogous switch from second flash
`bank 68 to first flash bank 66 can occur when the current
`operating code is located in second flash bank 68.
`In
`this manner, mobile unit 50 can enhance, correct, or
`replace the current operating code based upon discrete
`patch or download messages transmitted over communication
`network 12.
`The components of mobile unit 50 shown in FIGURE 3
`may be packaged into one or more housings. Mobile unit
`50 may be mounted to a vehicle or associated with other
`movable objects. Mobile unit 50 may also be packaged as
`a portable, hand-held device that provides personal
`functions. For example, a portable, hand~held mobile
`unit 50 may be used by surveyors, rescue teams,
`individuals that may change forms of transportation, or
`any other application requiring portability of mobile
`unit 50.
`FIGURE 4 illustrates one embodiment of message
`formats for transmission over communication network 12 to
`mobile units. The first three message types relate to
`patch messages for incorporating patches of code into
`existing code on the mobile units. The last three
`messages relate to direct program download messages for
`replacing the current code in the mobile unit with a new
`version of code. All message formats shown in FIGURE 4
`are inserted in a general message format, that begins
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 21 of 142
`
`
`
`19743-0165
`
`PA·.i-~NT APPLICATION
`
`15
`
`with a start, message type, length, and identifier field
`and ends with a checksum and end field. These messages
`can be sized to accommodate optimal or preferred message
`sizes for different technologies in communication network
`12.
`
`,
`
`,
`
`The patch messages include: a new patch file
`message, an append patch message, an append data message,
`and a delete unincorporated patches message. These patch
`messages are designated as type II o 11
`11 1 11
`11 2" , and "3 11
`respectively.
`In the illustrated embodiment, each patch
`message includes up to 252 bytes of information.
`A new patch file message operates to indicate to a
`mobile unit that a set of one or more patch messages
`representing a new patch file is being transmitted. As
`described above, the set of patch messages will define a
`patch or patches to be made to current operating code.
`The new patch file message also operates to define the
`first patch.
`A new patch file message includes eight fields, as
`shown in FIGURE 4. The new patch file message includes a
`"message type" field which is one byte and holds a 11 0 11
`indicating that the message is a new patch file message.
`A "patch file ID" field is one byte and comprises a
`unique identification number for the patch file
`represented by the set of patch messages. Each patch
`message associated with the patch file includes this
`unique patch file ID. A "software version" field is
`eight bytes and provides an indication of which operating
`code versions are appropriate for receiving the patch or
`patches contained in the represented patch file. The
`software version can operate as a mask to indicate s~ch
`things as phase, release, revision, and modifications
`made. A "number of patches" field is one byte and gives
`the total number of patches that are included in the set
`of patch messages identified by the patch file ID. Each
`patch may be represented by one or more discrete patch
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Page 22 of 142
`
`
`
`19743-0165
`
`Pk .. .oNT APPLICATION
`
`16
`
`messages. A "memory address to be modified by patch"
`field is four bytes and identifies the memory address of
`the current operating code to be modified by the first
`patch which is defined by the new patch file message. A
`"starting address in patch memory space" field is four
`bytes and defines the starting address in the patched
`operating code where the first patch is to be written. A
`"~umber of bytes of data" field is one byte and defines
`the number of bytes of information in a "patch data"
`field. Lastly, the "patch data" field can include from
`one to 232 bytes and holds the data associated with the
`first patch.
`An append patch message operates to define an
`additional patch to be made to current operating code.
`The append patch message includes six fields that are
`similar to fields in the new patch file message . . A
`"message type field" is one byte and is a 11 1 11 to indicate
`an append patch message. A "patch file ID" field is one
`byte and comprises the unique identification number for
`the patch file. This patch file ID must match the patch
`file ID contained in the previous new patch file message.
`A "memory address to be modified by patch" field is four
`bytes and identifies the memory address of the current
`operating code to be modified by the additional patch
`defined by the append patch message. A "starting address
`in patch memory space" field is four bytes and defines
`the starting address in the patched operating code where
`the additional patch is to be written. A "number of
`bytes of data" field is one byte and defines the number
`of bytes of information in a "patch data" field. Lastly,
`the "patch data" field can include from one to 241 bytes
`and holds the data associated with the additional patch.
`An append data message operates to provide patch
`extension data where the data associated with a patch
`requires more space than is available in the patch data
`field of a new patch file message or a