`
`(19) World Intellectual Property Organization
`International Bureau
`
`I lllll llllllll II llllll lllll llll I II Ill lllll lllll lllll lllll llll lllllll llll llll llll
`
`(43) International Publication Date
`7 September 2001 (07.09.2001)
`
`PCT
`
`(10) International Publication Number
`WO 01/65876 Al
`
`(51) International Patent Classification7:
`H04B 71185
`
`H04Q 7/32,
`
`(74) Agent: THIBAULT, Thomas, T.; Qualcomm Incorpo(cid:173)
`rated, 5775 Morehouse Drive, San Diego, CA 92121 (US).
`
`(21) International Application Number: PCT/US00/05139
`
`(22) International Filing Date: 29 February 2000 (29.02.2000)
`
`(25) Filing Language:
`
`(26) Publication Language:
`
`English
`
`English
`
`(71) Applicant: QUALCOMM INCORPORATED [US/US];
`5775 Morehouse Drive, San Diego, CA 92121 (US).
`
`(72) Inventors: VIGNISSON, Vidar; 3150 Ducommun Av(cid:173)
`enue, San Diego, CA 92122 (US). DOMINGUEZ, John,
`Christopher; 21202 Cranbridge Drive, Lake Forest, CA
`92630 (US). GOLDSMITH, Katrina; 206 Rubenstein
`Place, Cardiff, CA 92007 (US).
`
`-~
`
`(81) Designated States (national): AE, AL, AM, AT, AU, AZ,
`BA, BB, BG, BR, BY, CA, CH, CN, CR, CU, CZ, DE, DK,
`DM, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL,
`IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU,
`LV, MA, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT,
`RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, TZ, UA,
`UG, UZ, VN, YU, ZA, ZW.
`
`(84) Designated States (regional): ARIPO patent (GH, GM,
`KE, LS, MW, SD, SL, SZ, TZ, UG, ZW), Eurasian patent
`(AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), European patent
`(AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU,
`MC, NL, PT, SE), OAPI patent (BF, BJ, CF, CG, CI, CM,
`GA, GN, GW, ML, MR, NE, SN, TD, TG).
`
`Published:
`with international search report
`
`[Continued on next page]
`
`(54) Title: PROGRAMMABLE MOBILE COMMUNICATIONS TERMINAL WITH RANDOMIZED OFF-PEAK TRANSMIS(cid:173)
`iiiiiiii SI 0 NS
`iiiiiiii
`iiiiiiii
`
`iiiiiiii --~
`
`iiiiiiii
`
`iiiiiiii
`
`iiiiiiii
`
`iiiiiiii -iiiiiiii
`iiiiiiii -iiiiiiii
`
`~
`
`~
`
`,102
`
`CENTRAL
`NETWORK
`FACILITY
`
`,10 0
`
`,108
`
`NETWORK
`FACILITY
`!NfERFACE
`
`,110
`
`CENTRAL
`COMM.
`TERMINAL
`
`,112
`
`SOFTWARE
`DEVELOPMENT
`WORKSTATION
`
`FLEET
`MANAGEMENT
`FACILITY
`(BASE STATION)
`
`the
`(57) Abstract: A messaging system peITllitting
`development and transmission of computer programming
`from a base station (102) to a mobile communications
`teITllinal (MCT) (104) for execution. The user creates
`programming including conditional logic for transmission
`to an MCT using a software development workstation
`(112) at a base station (100). The user programming
`is designed to extend the functionality of the built-in
`programming as supplied by the MCT manufacturer. The
`MCT receives the user programming, and stores it in a
`memory (204) for later execution, for example, when
`the manufacturer-supplied operating software initiates
`execution of the user programming. Messages transmitted
`from the MCT may be sent during periods of low network
`activity. The MCT schedules a reasonable number of
`messages for transmission at a randomly selected time
`within a certain scheduling window.
`The scheduling
`window takes
`into account network traffic concerns,
`future messages placed into the queue, and the number of
`messages present in the queue.
`
`'
`
`' ~ ' '
`
`' '
`'
`' •-----,
`'
`
`ANTENNA
`TRACKING&
`POINTING
`
`,104
`
`114..J I
`
`,116
`
`BASIC MOBILE
`COMMUNICATIONS
`
`(WITH RECEIVER)
`
`TERMINAL (BMCT) ----...,
`I ,11s
`
`I
`I
`I
`
`I i ,122
`i SENSORS/
`EXTENDED
`CAPABILITY --t DETECTORS/
`' METERS
`COMPUTER
`' '
`' ' '
`,120 •----------.
`USER INTERFACE (UI)
`
`I
`
`APPARATUS Di ~r',.r Iii
`
`L----------------------------
`
`FLEET VEIDCLE
`(REMOTE/MOBILE STATION)
`
`Samsung, Exh. 1009, p. 1
`
`
`
`WO 01/65876 Al
`
`I lllll llllllll II llllll lllll llll I II Ill lllll lllll 111111111111111111111111111111111
`
`For two-letter codes and other abbreviations, refer to the "Guid(cid:173)
`ance Notes on Codes and Abbreviations" appearing at the begin(cid:173)
`ning of each regular issue of the PCT Gazette.
`
`Samsung, Exh. 1009, p. 2
`
`
`
`WO 01/65876
`
`1
`
`PCT/US00/05139
`
`PROGRAMMABLE MOBILE COMMUNICATIONS
`TERMINAL WITH RANDOMIZED OFF-PEAK
`TRANSMISSIONS
`
`BACKGROUND OF THE INVENTION
`
`I.
`
`Field of the Invention
`The invention relates to wireless messaging systems. In particular the
`invention relates to programmable mobile communications terminals.
`
`5
`
`10
`
`II.
`
`15
`
`Description of the Related Art
`The use of wireless communication systems is well known for
`fixed
`stations and one or more
`information between
`transmitting
`receivers.
`For
`example,
`satellite
`dispersed mobile
`geographically
`communication systems have been used in the trucking industry for many
`years to provide messaging and location information between fleet-owned
`dispatch centers and their respective tractor-trailer vehicles. Such systems offer
`significant benefits to fleet owners because they allow almost instantaneous
`communications and real-time position information. In addition, many such
`systems provide remote monitoring of the performance characteristics of each
`fleet-owned vehicle, such as average speed, RPM, idle time, and so on. An
`example of such a satellite communication system is disclosed in U.S. patent
`number 4,979,170 entitled "ALTERNATING SEQUENTIAL HALF DUPLEX
`COMMUNICATION SYSTEM AND METHOD", U.S. patent number 4,928,274
`entitled
`"MULTIPLEXED
`ADDRESS
`CONTROL
`IN A
`TDM
`COMMUNICATION SYSTEM", and U.S. patent number 5,017,926 entitled
`"DUAL SATELLITE NAVIGATION SYSTEM", assigned to the assignee of the
`present invention.
`In the satellite communication system described by the above-mentioned
`patents, fleet-owned dispatch centers communicate via land-based systems
`such as telephone or fiber-optic systems to a hub, otherwise known as a
`network management facility
`(NMF).
`The NMF acts as a central
`communication station through which all communications between vehicles
`and dispatch centers pass. The NMF comprises a number of network
`35 management computers (NMCs), each NMC responsible for providing a
`communication path from the NMF to geographically dispersed vehicles in the
`communication system via a geosyncronous satellite. The geosynchronous
`satellite comprises one or more transponders, which are electronic circuits well
`
`20
`
`25
`
`30
`
`Samsung, Exh. 1009, p. 3
`
`
`
`WO 01/65876
`
`2
`
`PCT !US00/05139
`
`known in the art for relaying high frequency satellite communication signals
`between two remote locations.
`Each NMC is assigned an individual
`transponder, each transponder operating at a unique frequency in order to
`avoid interference with communication signals on other transponders. In the
`satellite communication system of
`the above-referenced patents, each
`transponder is capable of handling approximately 30,000 communication
`signals simultaneously.
`the communication system is equipped with a
`Each vehicle
`in
`transceiver, otherwise known as a mobile communication terminal (MCT), for
`communicating message and location information to a pre-designated NMC via
`the geosyncronous satellite. The MCT typically also comprises an interface
`device which displays messages to one or more vehicle occupants and accepts
`either voice or text messages to be transmitted to the vehicle's fleet-owned
`dispatch center. Furthermore, the MCT may further comprises a digital
`computer which communicates with one or more Electronic Control Units
`(ECUs) located at various points throughout the vehicle. Each ECU provides
`operational information to the digital computer indicating performance
`characteristics such as vehicle speed, engine RPM, and miles traveled, and other
`operating characteristics.
`NMCs and MCTs communicate with each other using a pre-defined
`messaging protocol. The messaging protocol arranges digital data into
`manageable segments, called frames, which include address frames and data
`frames. Typically, an address frame is transmitted followed by one or more
`data frames. The address frame contains the necessary MCT identification
`information in order to route messages from an NMC to one or more identified
`vehicles and to identify the origin of incoming messages from vehicles. Data
`frames contain the actual information that is to be conveyed, for example, voice,
`operation, or location data. The ability to uniquely identify MCTs allows NMCs
`to route messages to individual vehicles for which they are intended and also to
`In the satellite
`identify the origin of incoming messages from vehicles.
`communication system described by the above-mentioned patents, each MCT in
`the system is permanently assigned a unique identification address from a set of
`available identification addresses stored within the NMF. Each assigned
`identification address identifies a particular MCT, the address being identical to
`a unique, pre-assigned MCT serial number, assigned at a manufacturing
`facility. The identification address is attached to each message transmitted,
`using the address frame, to identify the intended recipient or the source of
`messages.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 4
`
`
`
`WO 01/65876
`
`3
`
`PCT /US00/05139
`
`MCTs are generally microprocessor controlled in order to provide
`sophisticated functionality.
`Like the pre-assigned MCT serial number,
`programming for the microprocessor that in large part determines the MCT's
`functionality is hard coded into the unit at the manufacturing facility. In some
`cases this programming may be stored in ROM.
`In order to change the
`programming the ROM must be replaced in each individual MCT.
`In other
`cases this programming may be stored in flash memory. Re-programming the
`flash memory generally requires attachment of a re-programming device to the
`MCT for a short period of time to accomplish the re-programming. Because the
`re-programming device may be attached to an external connector on the MCT,
`and because the flash memory devices themselves are not physically replaced,
`the use of flash memory offers more convenient and lower cost re(cid:173)
`programming. Still, re-programming even a flash memory requires physically
`accessing each individual MCT. The physical access requirement can make re-
`programming a complex and drawn out affair. This is especially true for a
`large, geographically dispersed fleet of vehicles.
`The complexity of re-programming when physical access to the MCTs is
`required makes re-programming cost-effective only when there are significant
`changes to the software. Furthermore, because it is the manufacturer that
`controls the software, users of the MCTs must rely on the manufacturer to
`approve and incorporate new features into future releases of the software.
`These two realities limit the ability of the technology user to innovate and
`leverage the investment made in the messaging system. Consequently, there is
`a need in the art for an MCT that permits a user to incorporate independently
`developed programming into the operating software of an MCT without the
`need to gain physical access to the MCT.
`
`SUMMARY OF THE INVENTION
`A messaging system permitting the development and transmission of
`computer programming from a base station to a mobile communications
`terminal (MCT) for execution is disclosed. The user creates programming
`including conditional logic for transmission to an MCT using a software
`development workstation at a base station. The base station may be, for
`example, the headquarters of a trucking company trying to manage a fleet of
`vehicles on the road. Each of the vehicles contains a mobile communications
`terminal (MCT) permitting it to communicate with the base station by wireless
`means. Each MCT has built-in programming supplied by the manufacturer.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 5
`
`
`
`WO 01/65876
`
`4
`
`PCT /US00/05139
`
`5
`
`10
`
`The user programming is designed to extend the functionality of the built-in
`programmmg.
`User programming is transmitted to the vehicle as messages. The mobile
`communications terminal receives the messages, identifies those that contain
`programming, and stores the programming for later execution. During the
`normal course of MCT operation the built-in operating software initiates
`execution of the user programming.
`In one embodiment user programming exists in two related forms:
`adjunct programs and action lists. Adjunct programs are used to detect the
`occurrence of the events of particular significance to the business of the user,
`e.g., a vehicle coming into proximity with a company terminal. Adjunct
`programs include procedural logic and execute on the MCT using a virtual
`to specify a
`include parametric programming
`machine.
`Action
`lists
`correspondence to the adjunct programs, and to specify the actions to take
`15 when the corresponding adjunct programs detect event occurrences.
`The operating software of the MCT periodically initiates execution of the
`stored adjunct programs. If an adjunct program detects an event the operating
`software then initiates execution of any corresponding action list. Actions
`supported by the operating software include, for example, displaying a text
`alert to the vehicle operator on a display screen and transmitting a formatted
`message to the base station.
`Messages for transmission to the base station may be queued for
`transmission during periods with typically low network activity. The operating
`software that controls the off-hours transmission, schedules a reasonable
`number of messages first in the queue for transmission at a randomly selected
`time within a certain scheduling window. The scheduling window takes into
`account network traffic concerns, future messages placed into the queue, and
`the number of messages present in the queue. Combining these factors along
`with the randomization helps to avoid high network congestion.
`
`20
`
`25
`
`30
`
`35
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 depicts a messaging system employing the present invention;
`FIG. 2 is a block diagram of an extended capability computer;
`FIGS. 3A - 3B depict the virtual machine instruction set used in the
`present embodiment;
`FIGS. 4A - 40 depict primitive-type operands that may be used in
`conjunction with the virtual machine instruction set of the present embodiment;
`
`Samsung, Exh. 1009, p. 6
`
`
`
`WO 01/65876
`
`5
`
`PCT /US00/05139
`
`FIG. 5 depicts a flowchart of the main operating loop for the operating
`software;
`FIG. 6 depicts a flowchart of the process used to integrate the execution
`of user programming into the main processing loop of the operating software;
`and
`
`FIG. 7 depicts a flowchart for the scheduling of off-hours transmissions.
`
`DETAILED DESCRIPTION OF THE INVENTION
`FIG. 1 depicts a messaging system employing the present invention. The
`system allows a fleet management facility, such as a trucking dispatch center, to
`communicate with vehicles and drivers in the fleet when they are on the road.
`The fleet management facility (FMF) 100 serves as a communications base
`station and communicates with a central network facility 102 that performs
`wireless communication to the fleet vehicle 104. Vehicle-based, mobile
`communications terminal (MCT) equipment 106 receives and processes the
`messages sent to it from FMF 100. Messages may include small computer
`programs, called adjunct programs, that extend the built-in functionality of
`MCT106.
`Fleet management facility (FMF) 100
`in the presently described
`interface 108, a central
`embodiment comprises a network
`facility
`communications terminal (CCT) 110, and a software development workstation
`112. Software development workstation 112 couples to CCT 110. CCT 110
`couples to network interface facility 108. Network interface facility 108 couples
`externally to central network facility 102.
`Fleet vehicle 104 includes vehicle-based equipment comprising mobile
`communications terminal (MCT) system 106 and ancillary sensor devices 122.
`MCT 106 comprises an antenna system 114, comprising tracking and pointing
`apparatus, a basic mobile communications terminal (BMCT) 116, an extended
`capability computer (ECC) 118, and user interface apparatus 120. User interface
`apparatus 120 may include, for example, a display unit comprising a display
`panel, an LED array, and a keypad. User interface apparatus 120 may also
`include a short-range, audible paging device. Ancillary sensor devices 122 may
`include, for example, an engine sensor that measures the rotational speed
`(RPM's) of the vehicle's engine, a transmission sensor that measures driveshaft
`rotational speed, and a Global Positioning System (GPS) apparatus that
`determines the geographic location of the vehicle.
`The vehicle-based equipment is coupled as follows. The antenna system
`114 is coupled to basic mobile communications terminal (BMCT) 116. BMCT
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 7
`
`
`
`WO 01165876
`
`6
`
`PCT /US00/05139
`
`5
`
`116 couples to extended capability computer (ECC) 118. User interface
`apparatus 120 couples to ECC 118. Ancillary sensor devices 122 couple to ECC
`118 and may also, or alternatively, couple to BMCT 116.
`A communications satellite 124 interposes between central network
`facility 102 and the vehicle-based equipment to relay messages between their
`source and destination. As depicted, satellite 124 provides for bidirectional
`communication. A message sent from fleet management facility 100 to fleet
`vehicle 104 is conveyed as a forward channel uplink signal to satellite 124,
`where it is retransmitted as a forward channel downlink signal to vehicle 104.
`10 Conversely, a message sent from fleet vehicle 104 to fleet management facility
`100 is conveyed as a reverse channel uplink signal to satellite 124, where it is
`retransmitted as a reverse channel downlink signal to central network facility
`102.
`
`15
`
`20
`
`25
`
`30
`
`35
`
`The embodiment depicted in FIG. 1 operates as described below to
`permit fleet management to extend the programmed capability of the mobile
`communications terminal system 106. A software developer uses software
`development workstation 112 to create user programming such as an adjunct
`program. An adjunct program is a small computer program for transmission
`over a data communications network to an execution platform where it will
`run. The size of each adjunct program is limited to approximately 1400 bytes in
`the present embodiment. The invention is not, however, so limited. The 1400-
`byte limit of the present embodiment is intended to restrict the amount of
`network bandwidth used for software transmission and permits the adjunct
`programs to fit conveniently within the existing messaging framework.
`The software development workstation comprises a general-purpose
`personal computer with user
`interface
`input and output devices, a
`communications interface for coupling to the central communications terminal,
`and software for generating an adjunct program suitable for transmission to,
`and execution by, the MCT system. Such software is widely understood in the
`art and may comprise, for example, a source code editor for accepting user
`input to create a computer program source code file, a compiler for converting
`the source code file into an executable file having the object code format
`required by the execution platform, and a file
`transfer mechanism for
`communicating
`the executable
`file
`(the adjunct program)
`to central
`communications terminal 110. The same or similar software is used to create
`action files for transmission to MCT 106.
`Central communications terminal (CCT) 110 manages the content of
`messages exchanged between CCT 110 and fleet vehicle 104. Software on CCT
`
`Samsung, Exh. 1009, p. 8
`
`
`
`WOOl/65876
`
`7
`
`PCT /US00/05139
`
`5
`
`10
`
`15
`
`110 may automatically generate messages to send to fleet vehicle 104 or may
`produce a message based on interaction with facility personnel using CCT 110.
`Each message is represented in digital format. Different types of messages may
`be used to facilitate the exchange of messages having different targets or
`purposes. For example, one message type may be used to send textual
`information for display to the driver of the vehicle while another message type
`may contain non-textual information for controlling the operation of the
`vehicle-based equipment, e.g., an adjunct program.
`CCT 110 sends a message to central network facility 102 for transmission
`to fleet vehicle 104 using network facility interface 108. Network facility
`interface 108 at fleet management facility 100 is connected to central network
`facility 102 in the present embodiment using any of a variety of terrestrial
`communication media, e.g., phone lines or optical fiber. Network facility
`interface 108 connects central communications
`terminal 110
`to
`the
`communications medium and may be, for example, a modem connecting CCT
`110 to a phone line.
`Central network facility 102 receives a message from fleet management
`transmits
`it as a forward channel uplink signal
`to
`facility 100 and
`communications satellite 124. Central network facility 102 also may receive a
`20 message as a reverse channel downlink signal from satellite 124, and convey the
`message to fleet management facility 100. As described earlier, a forward
`channel uplink signal received by satellite 124 is retransmitted as a forward
`channel downlink signal to complete the transmission of the message to MCT
`system 106 on board vehicle 104.
`Antenna apparatus 114 of fleet vehicle 104 maintains a fix on
`communications satellite 124 and receives any forward channel downlink
`signals. The basic mobile communications terminal 106 processes the forward
`channel downlink signal to extract and store message information addressed to
`it. In the presently described embodiment, the basic mobile communications
`terminal 106 is a widely used, commercially available unit such as any model in
`the Qualcomm OmniTRACS line. BMCT 116 provides an interface and protocol
`by which a coupled device may access the message information received and
`stored by the BMCT 116. The interface and protocol is well known in the art.
`Extended capability computer (ECC) 118 <:ouples to BMCT 116 via an
`established interface to receive message information. Message information
`intended for display to the vehicle driver is directed to the appropriate user
`interface apparatus 120. Message information containing user programming
`code, such as an adjunct program, is stored by ECC 118 and systematically
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 9
`
`
`
`WO 01/65876
`
`8
`
`PCT/US00/05139
`
`5
`
`10
`
`15
`
`executed. ECC 118 makes information signals from ancillary sensor devices 122
`available to an adjunct program during its execution, such as those information
`signals representing vehicle speed or location. In the preferred embodiment
`ECC 118 communicates directly with ancillary sensors 122 using, for example,
`an industry standard J1708 bus. As an alternative, ancillary sensors 122 may be
`coupled to BMCT 116, with BMCT 116 providing corresponding information
`signals to ECC 118.
`ECC 118 also provides an executing adjunct program with access to user
`interface apparatus 120 so that the adjunct program may, for example, cause the
`display of an alert message to the vehicle driver. Because the programming of
`the adjunct programs is not known in advance to ECC 118, and because user
`interface apparatus 120 is shared by the adjunct programs and by the built-in
`functionality of MCT system 106, contention may arise. For this reason, ECC
`118 of the described embodiment includes queue support to facilitate the
`sharing of presentation over user apparatus 120, such as a display panel and a
`LED array.
`One advantage of the present invention is that it may be deployed in part
`using messaging technologies and equipment already in widespread use today.
`For example, U.S. Patent 4,979,170, "Alternating Sequential Half Duplex
`20 Communication System" (Gilhousen), describes one such system. Gilhousen
`discloses a messaging system whereby a central communication terminal at a
`customer facility, such as a fleet management facility, shares an expensive
`central network facility to communicate via satellite with remote vehicles.
`Gilhousen also discloses a mobile communications terminal system including
`antenna apparatus, and a basic mobile communications terminal interfacing to
`user interface apparatus and ancillary sensors. A Qualcomm OmniTRACS
`system, already mentioned, is an example of a commercially available mobile
`communications terminal system, enjoying widespread use, that participates in
`a Gilhousen-type messaging system. By exploiting existing technologies and
`equipment, the embodiment depicted in FIG. 1 preserves capital and reduces
`deployment time.
`FIG. 2 is a block diagram of extended capability computer (ECC) 118. In
`the presently described embodiment, ECC 118 is installed in vehicle 104 and
`coupled to BMCT 116, user interface apparatus 120, and ancillary sensors 122.
`ECC 118 provides the functionality necessary to store, load, run, and manage
`user programming sent to vehicle 104 from central facility 102. It will become
`apparent to one skilled in the art that alternative embodiments are possible
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 10
`
`
`
`WO 01/65876
`
`9
`
`PCT/US00/05139
`
`15
`
`20
`
`without departing from the scope and spirit of the invention. For example, the
`functionality of ECC 118 could be incorporated into BMCT 116.
`ECC 118 comprises a CPU 200, a transceiver interface 222, an electronic
`control unit interface 220, a UI apparatus interface 202, and a memory 204.
`5 Memory 204 provides storage for various propram instructions and data, as
`follows.
`A first memory, user programming (UP) memory 206, is used to store
`user programming received from fleet management facility 100. The user
`programming comprises adjunct programming and action lists. A second
`10 memory, a UP loader memory 212, stores a set of program instructions used to
`place received adjunct programming into the first memory for storage. A third
`memory, a UP initiator memory 214, stores a set of program instructions used
`to initiate execution of the received adjunct programming stored in UP memory
`206. A fourth memory, a virtual machine memory 216, stores a set of program
`instructions used to effectuate a virtual machine using said CPU, the virtual
`machine for executing the received adjunct programming stored in UP memory
`206. A fifth memory, an operating software memory 210, comprises UP loader
`memory 212, UP initiator memory 214, virtual machine memory 216, and off(cid:173)
`hours memory 218, explained below. Operating software memory 210 further
`stores program instructions used to respond to a return value from execution of
`the executed adjunct programming. The program instructions are further used
`to respond to the return value by selecting whether or not to perform a set of
`predetermined actions. A sixth memory, off-hours memory 218, is used to store
`a set of program instructions for determining a randomized, off-peak
`transmission time. A seventh memory, queue memory 208, stores messages for
`transmission during off-peak hours and also stores deferred execution of
`actions to be taken in response to certain, predefined events.
`Each of the above memories may be individual memories, or a single
`memory containing information pertaining to the individual memories.
`Transceiver interface 222 couples CPU 200 to circuitry that exchanges
`In the
`messages sent with central facility 102 over a wireless connection.
`present embodiment, transceiver interface 222 couples CPU 200 to BMCT 116
`unit allowing CPU 200 to exchange message and control information with
`BMCT 116. ECU interface 220 and UI apparatus interface 202 couple CPU 200
`to ancillary sensors 122 and user interface apparatus 120, respectively.
`UP memory 206 of memory 204 is used to store user programming sent
`to fleet vehicle 104 from central facility 102. Program instructions in UP loader
`memory 212 assemble complete user programming modules from message data
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 11
`
`
`
`WOOl/65876
`
`10
`
`PCT/US00/05139
`
`received from BMCT 116 and store them in UP memory 206. User
`programming modules may be either adjunct programs or action lists. User
`programming loader memory 212 maintains a list of all user programming
`currently stored in UP memory 206, along with any relevant information about
`such user programming. Examples of such information for an adjunct program
`include its location within UP memory 206, identifying information, and
`program lifetime information such as the time in which the adjunct program
`was first loaded.
`Program instructions in UP initiator memory 214 of operating software
`210 systematically execute each of the adjunct programs stored in UP memory
`206. The adjunct programs are executed using virtual machine 216 of operating
`software 210. Virtual machine memory 216 stores a set of programming
`instructions that executes user programs written using a predefined set of
`virtual machine instructions. The virtual machine instruction set does not
`necessarily correspond to the instruction set of the CPU that actually carries out
`the data processing operations indicated by the user program's instructions.
`Implementation using virtual machine memory 216 promises greater device
`independence for the adjunct programs sent from central facility 102. For
`example, a fleet may contain both early model and late model MCT equipment
`106. That equipment could incorporate CPUs having radically different
`instruction sets. The same adjunct program code could be sent to any vehicle
`without regard to the age of its MCT equipment 106, however, so long as virtual
`machine program code supporting a common instruction set were contained in
`the operating software 210 of the each of the MCTs 106.
`Programming instructions stored in off-hours manager memory 218
`supports the transmission of certain deferred messages from MCT 106 to base
`station 100. Messages deferred to off-hours transmission generally are not
`urgent in nature. Deferring these messages reduces peak network congestion
`and overall operating costs.
`FIGS. 3A - 3B depict the virtual machine instruction set used in the
`present embodiment. The instruction set consists of 23 separate instructions
`belonging to six classes. The data movement class of instructions comprises the
`LOAD and STORE instructions, which are used to move data to and from the
`integer math class of
`virtual machine accumulator, respectively.
`The
`instructions comprises the ADD, SUB, MUL, and DIV instructions, each of
`which is used to perform a mathematical operation using the accumulator
`contents and a specified operand value, with the results of the operation
`replacing the accumulator contents. The bit-wise class of instructions comprises
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`Samsung, Exh. 1009, p. 12
`
`
`
`WO 01/65876
`
`11
`
`PCT/US00/05139
`
`the AND, OR, and NOT instructions, each of which is used to perform a bit(cid:173)
`wise manipulation using the accumulator contents and a specified operand
`value, with the results of the operation replacing the accumulator contents.
`The conditional branching/program flow class of instructions comprises
`the JL, JLE, JG, JGE, JE, JNE, JMP, and EXIT instructions. Each of the JL, JLE, JG,
`JGE, JE, and JNE instructions is used to directly set the contents of the virtual
`machine program counter when the contents of the accumulator meet a certain
`criteria. The JMP instruction is used to directly set the contents of the virtual
`machine program counter without regard to the contents of the accumulator.
`The EXIT instruction is used by an adjunct program to indicate to the virtual
`machine that its processing is complete. It is noted that the instructions in this
`class support the creation of user programming that includes conditional logic.
`The ability to include conditional logic greatly expands the possible types and
`sophistication of programming that can be created by the user to extend the
`functionality of MCT 106. This represents an advantage of the present
`invention.
`The floating point math class of instructions comprises the FADD, FSUB,
`FMUL, and FDIV instructions. Each of these instructions is used to perform a
`mathematical operation using the accumulator contents and a specified
`operand value, with the results of the operation replacing the accumulator
`contents. Each of these instructions corresponds to one of the