|
Claims  |
|
|
We claim:
1. A method for controlling a locomotive from a remote host first computer,
said locomotive having a throttle controller equipped with a second
computer, said method comprising the steps of:
(a) establishing two-way transmission of signals representing digital data
packets between said first computer and said second computer;
(b) transmitting signals representing digital data packets representing
engine control commands from said first computer to said second computer
at time intervals no greater than a predetermined maximum time interval,
each of said data packets including the following bytes disposed
sequentially in time,
(I) two bytes of data which serve as a start flag for said data packet,
(II) one byte of data, which is reserved as an address for said data
packet,
(III) one byte of data, which is reserved to indicate different types of
packet,
(IV) two bytes of data, a first header byte representing the type of
information represented by said data packet and a second header byte
representing a version number, used to facilitate implementation with
successive software versions,
(V) at least one byte of information,
(VI) at least two bytes representing integers calculated for a cyclic
redundancy check, and
(VII) two bytes which serve as an end flag for said data packet,
wherein ambiguity between said at least one information byte in Step (V)
and said end flag bytes of Step (VII) is eliminated by the following
substeps,
(A) using known numeric values for said end flag bytes,
(B) selecting a first byte of said end flag bytes, and, whenever the
numeric value of said first byte appears in the stream of bytes to be
transmitted, transmitting its numeric value twice in sequence, and
(C) in said second computer, interpreting said twice transmitted numeric
value as a single byte of information, and not as an end flag;
(c) driving signals on trainlines via said throttle controller means based
on said engine control commands; and
(d) responding to one of corruption of transmission and loss of
transmission from said first computer.
2. The method of claim 1 wherein Step (e) further comprises the steps of:
(I) re-initializing said second computer based on instructions in one of
non-volatile memory and non-volatile memory plus mass storage, and
(II) sending a signal from said second computer to said first computer
directing it to re-initialize itself based on instructions in one of
non-volatile memory and non-volatile memory plus mass storage.
3. The method of claim 1, wherein Step (e) further comprising the procedure
of stepping said locomotive to a known power setting, said procedure being
performed in the event of a continued condition of one of corruption of
transmission and loss of transmission from said first computer to said
second computer.
4. The method of claim 3 wherein said known power setting comprises
throttle idle, reverser neutral and dynamic brake off.
5. The method of claim 1 wherein said corruption of transmission in Step
(e) is detected by a procedure which comprises the following steps:
(I) recalculating for said cyclic redundancy check said integers based on
received digital data packets in said second computer; and
(II) comparing said integers transmitted with said digital data packet from
said first computer with said integers recalculated in said second
computer.
6. The method of claim 1 wherein said loss of transmission is detected in
said second computer by a procedure which comprises the following steps:
(I) resetting a timer when a digital data packet is received from said
first computer, said timer generating a signal indicative of time elapsed
since receipt of said digital data packet; and
(II) comparing said signal indicative of time elapsed with a signal
corresponding to said maximum time interval.
7. The method of claim 1 further comprising the steps of:
(f) providing in said throttle controller means for feeding back to said
second computer diagnostic information including information indicative of
trainline status;
(g) providing in said second computer means for encoding said diagnostic
information into digital data packets;
(h) transmitting signals representing said digital data packets from said
second computer back to said first computer at time intervals no greater
than a known maximum time interval; and
(i) including with said digital data packets signals representing integers
for cyclic redundancy check.
8. The method of claim 7 wherein Step (f) further comprises providing means
for sending information regarding the positions of the levers for
throttle, reverser, and dynamic brake in said slave locomotive to said
second computer, Step (g) further comprises encoding this information
along with other diagnostic information, and Step (h) further comprises
transmitting this information back to said first computer.
9. The method of claim 1 wherein in Step (c) said at least one information
byte contains information indicative of the requested engine throttle
setting, reverser position, and dynamic braking.
10. The method of claim 1 wherein Step (b) comprises connecting said first
computer to said second computer by electric connection means having at
least three electric conduction paths.
11. The method of claim 10 further comprising the steps of:
(I) transmitting digital data packets from said first computer to said
second computer on a first one of said at least three electric conduction
paths;
(II) transmitting digital data packets from said second computer to said
first computer on a second one of said at least three electric conduction
paths; and
(III) providing a third one of said at least three electric conduction
paths as a current return path for said first conduction path and for said
second conduction path.
12. The method of claim 1 wherein Step (b) comprises the step of using a
radio link capable of simultaneous two-way communication.
13. The method of claim 1 wherein in Item (IV) at least one of said header
bytes indicates that the type of information represented is date and time,
and wherein in Item (V) said at least one information byte is indicative
of date and time.
14. An apparatus for controlling a locomotive from a remote host first
computer, said apparatus comprises:
(a) a throttle controller for driving signals on trainlines in said
locomotive, said throttle controller having a second computer;
(b) said remote host first computer through which said locomotive is
controlled via said second computer;
(c) means disposed in said first computer for receiving signals indicative
of engine control commands, and for representing these commands as signals
formed as digital data packets;
(d) means for two-way transmission of signals formed as digital data
packets between said first computer and said second computer at time
intervals no greater than a known maximum time interval, said means for
two-way transmission including a means for transmitting sequentially in
time for each of said data packets,
(I) signals representing two bytes of data which serve as a start flag for
said data packet,
(II) signals representing one byte of data, which is reserved as an address
for said data packet,
(III) signals representing one byte of data, which is reserved to indicate
different types of packet,
(IV) signals representing two bytes of data, a first header byte
representing the type of information represented by said data packet and a
second header byte representing a version number, used to facilitate
implementation with successive software version,
(V) signals representing at least one byte of information,
(VI) signals representing integers in form of two bytes calculated for a
cyclic redundancy check, and
(VII) signals representing two bytes which serve as an end flag for said
data packet,
wherein ambiguity between signals representing said at least one
information byte Item (V) and signals representing said end flag bytes of
Item (VII) is resolved by the following subitems,
(A) means for defining known numeric values for said two end flag bytes,
(B) means for selecting a first byte of said two end flag bytes, and,
whenever the numeric value of said first byte appears in the stream of
bytes to be transmitted, transmitting signals representing its numeric
value twice in sequence, and
(C) means disposed in said second computer for interpreting said signals
transmitted twice in sequence as a single byte of information, and not as
an end flag;
(e) means disposed in said second computer for receiving said signals
formed as digital data packets, and for generating signals for driving the
trainlines of said locomotive; and
(f) means disposed in said second computer for responding to one of
corruption of transmission and loss of transmission from said first
computer.
15. The apparatus of claim 14 wherein in Item (d) said at least one
information byte contains information indicative of the requested engine
throttle setting, reverser position, and dynamic braking.
16. The apparatus of claim 14 wherein in Item (IV) at least one of said
header bytes indicates that the type of information represented is date
and time, and wherein in Item (V) said at least one information byte is
indicative of date and time.
17. The apparatus of claim 14 wherein Item (e) further comprises:
(I) means for re-initializing said second computer based on instructions in
one of non-volatile memory and non-volatile memory plus mass storage, and
(II) means for sending a signal from said second computer to said first
computer directing it to re-initialize itself based on instructions in one
of non-volatile memory and non-volatile memory plus mass storage.
18. The apparatus of claim 14 wherein Item (e) further comprises means for
stepping said locomotive to a known power setting, said means being
activated in the event of a continued
(II) means disposed in said second computer for transmitting signals
representing digital data packets to said first computer on a second
electric conduction path; and
(III) means for using a third electric conduction path as a current return
path for said signals transmitted by Items (I) and (II).
19. The apparatus of claim 14 wherein Item (f) further comprising:
(I) means for recalculating for said cyclic redundancy check said integers
based on said signals representing digital data packets received in said
second computer; and
(II) means for comparing said integers transmitted with said digital data
packet from said first computer with said integers recalculated in said
second computer.
20. The apparatus of claim 14 wherein Item (f) further comprising:
(I) means disposed in said second computer for resetting a timer when a
signal representing a digital data packet is received from said first
computer, said timer generating a signal indicative of time elapsed since
receipt of said digital data packet; and
(II) means disposed in said second computer for comparing said signal
indicative of time elapsed with a signal corresponding to said maximum
time interval.
21. The apparatus of claim 14 further comprising:
(f) means disposed in said throttle controller for feeding back to said
second computer diagnostic information including information indicative of
trainline status;
(g) means disposed in said second computer for encoding said diagnostic
information into signals representing digital data packets;
(h) means for transmitting signals representing said digital data packets
from said second computer back to said first computer at time intervals no
greater than a known maximum time interval; and
(i) means for including with said digital data packets signals representing
integers for a cyclic redundancy check.
22. The apparatus of claim 21 wherein Item (f) provides means for
transmission of signals representing positions of control levers in said
slave locomotive, back to said first computer.
23. The apparatus of claim 14 wherein Item (c) comprises a pair of radio
transmitter and receiver combinations for simultaneous two-way radio
communication.
24. The apparatus of claim 14 further comprising:
(I) means disposed in said first computer for transmitting signals
representing digital data packets to said second computer on a first
electric conduction path;
(II) means disposed in said second computer for transmitting signals
representing digital data packets to said first computer on a second
electric conduction path; and
(III) means for using a third electric conduction path as a current return
path for said signals transmitted by Items (I) and (II). |
|
|
|
|
Claims  |
|
|
Description  |
|
|
CROSS REFERENCE TO RELATED APPLICATIONS
The invention taught in this patent application is closely related to the
inventions taught in the following copending patent applications: Ser. No.
08/340,525 Electronically Controlled Locomotive Throttle Controller
Including Remote Multiple Unit Throttle Control; Ser. No. 08/340,651 now
U.S. Pat. No. 5,519,299, Method And Apparatus For Determining And Encoding
The Position Of A Reverser Handle On A Locomotive Control Stand; Ser. No.
08/340,235 now U.S. Pat. No. 5,537,285, Digital Output Control Device and
Method For Operating; Ser. No. 08/340,239 Method And Apparatus For
Feedback Of Trainline Status To The Central Processor Of A Locomotive
Throttle Controller; Ser. No. 08/340,215 Apparatus For Interlocking
Throttle, Dynamic Brake And Reverser Handles On A Control Stand Of A
Railway Locomotive; Ser. No. 08/340,652 Method Of Performing Diagnostics
On An Electronically Controlled Railway Locomotive Throttle Controller;
Ser. No. 08/340,237 now U.S. Pat. No. 5,500,799, Method Of Operating A
Locomotive Mounted Throttle Controller Between Two Modes Of Operation
Including A Transition Between Such Two Modes; Ser. No. 08/340,742 An
Apparatus For And A Method Of Generating An Analog Signal For Control Of
Dynamic Braking; Ser. No. 08/340,232 now U.S. Pat. No. 5,537,014, An
Apparatus For Feedback Of An Analog Signal Used To Monitor And/Or Control
Dynamic Braking and Method of Operating; Ser. No. 08/340,213 An Apparatus
To Enable Controlling A Throttle Controller From A Remote Host; Ser. NO.
08/340,538 Apparatus For Interlocking Reverser Handle On A Control Stand
Of A Railway Locomotive; and Ser. No. 08/340,526 Apparatus For Determining
The Absolute Position Of Throttle, Dynamic Brake And Reverser Handles On A
Locomotive Control Stand. Each of the above-referenced patent applications
is being filed concurrently herewith and is assigned to the assignee of
this invention. The teachings of all of these patent applications are
incorporated herein by reference.
FIELD OF THE INVENTION
This invention applies most broadly to the field of communications
protocols, and more narrowly to a protocol for communication between a
locomotive throttle controller and a remote host computer. It provides for
the transmission of engine control commands from the remote host computer
to the throttle controller, and for feedback of diagnostic information
including trainline status from the throttle controller to the remote host
computer. It applies to any type of serial, two-way communications
channel, including hard-wired and radio link.
BACKGROUND OF THE INVENTION
Prior to the present invention, it is generally well known in the railway
industry, that the throttle controller assemblies used in a railway type
locomotive are almost exclusively of the electro-mechanical type. Engine
control information originating in the engineer's console as handle
positions is converted to electrical signals by mechanical switches, and
thence conveyed to the throttle controller, which applies electrical
signals to the trainlines which control the locomotive. For remote
operation by radio link from a lead locomotive to a slave locomotive, it
has been necessary to utilize a dedicated boxcar with the slave locomotive
to accommodate radio equipment and relays. The information transmitted
from the lead locomotive to the slave locomotive has been rigorously
defined by hardware structure. Likewise, diagnostic information sent from
the slave locomotive back to the lead locomotive has been rigorously
defined by hardware structure. In the prior art, the diagnostic
information has consisted of (1) hot engine, (2) brake warning, (3) wheel
slip, and (4) ground fault. No method has hitherto been available for
transmitting diagnostic information concerning the status of the
trainlines fro the slave locomotive back to the lead locomotive.
Likewise, no method has been available for adding new information to the
information transmitted from the lead locomotive to the slave locomotive,
or back from the slave locomotive to the lead locomotive.
It can be seen from the above discussion of the prior art electro
mechanical type throttle controller assemblies, presently used in the
railroad industry that there is an unfilled need which exists in the
modern railroad industry for an improved communications protocol which
will enable feedback of diagnostic information concerning trainline status
from the throttle controller to the remote host computer.
There is also a need to provide a convenient means in the future for adding
additional information for transmission from the remote host computer to
the throttle controller, and from the throttle controller to the remote
host. It is evident that this need has been addressed by the present
invention.
SUMMARY OF THE INVENTION
This invention applies to electronic control systems wherein a master unit
and a slave unit are in communication. The master unit sends commands to
the slave unit, and the slave unit sends diagnostic information back to
the master unit. This invention provides a protocol for sending packets of
digital information from the master unit to the slave unit and from the
slave unit to the master unit. Provision is made for detecting and
responding to either interruption of communication or corruption of
communication.
In one aspect of this invention, a process is provided whereby a master
unit having a digital computer can transmit control information to a slave
unit which also has a digital computer. Information for control of a slave
unit is placed in the memory of the master unit. This may be done by entry
on a keyboard of the master unit, or by any one of a number of
commercially-available devices such as a joystick, a mouse, digitizer pad,
etc. Alternatively, information may be supplied by control levers having
optical encoders which provide signals indicative of lever position to the
computer in the master unit. This information is placed in the memory of
the master unit.
Software instructions in the master unit cause this information to be
formed into data packets. The data packets are comprised of bytes disposed
sequentially in time. These bytes are sequentially transmitted in an
asynchronous manner over a single transmission path to a computer in the
slave unit. The data packets start with two bytes which serve as a start
flag. Next, a byte is provided as an address for the information. In the
case of point-to-point communication, this byte is not used. It is
reserved for future applications. Next is a control flag which indicates
the type of data packet. Bytes of data which represent the control
information are then transmitted. As each byte is transmitted,
calculations are made for a cyclic redundancy check, which results in an
integer, referred to as the CRC. After all the bytes of the control
information are transmitted, the CRC is transmitted. After the CRC, an end
flag is transmitted, which indicates an end to the data packet.
Data packets of the type described above are transmitted at time intervals
no greater than a maximum time interval which is known in both the master
and the slave units. This is done so that the data packets serve a
"heartbeat" function. As they are received in the slave unit, they provide
verification that the communication line is still functioning.
The data packets are received in the slave unit, and the bytes of
information representing control signals are placed in a buffer in the
memory of the slave unit. As each byte is received, the CRC is calculated
using the same procedure as was used in the master unit. The calculated
value for the CRC is then compared with the value received from the master
unit. If they are identical, the bytes of control information are accepted
as valid, and placed in the memory of the slave computer where they are
available to the software as control signals.
If the calculated value for the CRC is not equal to the transmitted value,
a watchdog is tripped which indicates corrupted transmission. Likewise, if
the time interval between two data packets is greater than the known
maximum time interval between packets, a watchdog is tripped which
indicates loss of transmission.
This invention also provides for transmission of information from the slave
unit back to the master unit. This, generally, is diagnostic information.
Information is transmitted in the form of packets of bytes from the slave
unit to the master unit in the same manner as the transmission from the
master unit to the slave unit. The slave unit sends information
asynchronously over a second transmission path to the master unit. As
before, a CRC is provided to verify the received data, and packets are
transmitted at time intervals no longer than a known maximum time
interval. Again, a watchdog is tripped if the data received has been
corrupted, or if a packet is not received within the known maximum time
interval after the previous packet was received.
If a single corrupted data packet is received by either the slave unit or
the master unit, it is ignored, and the receiving unit waits for the next
data packet, which may be valid.
If either computer continues to receive corrupted data, or experiences an
extended loss of data, it initiates a remedial procedure in which it sends
a signal to the other computer indicating the problem. Both computers then
re-initialize themselves based on information in non-volatile memory,
perhaps with the addition of information in mass storage such as disk
storage.
If, after one or more tries at re-initializing, valid communication cannot
be re-established, the slave unit places its control signals in a known,
safe mode. An indication is then provided for a human operator who
controls the master unit.
This invention applies more particularly to the control of a locomotive
from a remote host computer. A throttle controller is provided, which has
a digital computer. A method is provided for two-way transmission of
signals representing digital data packets between the remote host computer
and the computer in the throttle controller. Signals representing digital
data packets indicative of engine control commands are transmitted from
the remote host computer to the computer in the throttle controller. This
is done with a time interval between packets no greater than a known
maximum time interval. In the throttle controller, means are provided for
driving signals on trainlines of the locomotive based on the data packets
which represent engine control commands. Means are provided for
determining whether the transmitted information has been corrupted or
lost, and for safely responding to such conditions.
In the event that transmission from the host computer to the computer in
the throttle controller has been corrupted or interrupted, the computer in
the throttle controller re-initializes itself based on instructions in its
non-volatile memory, perhaps also with information in mass storage, such
as disk storage. This computer also sends a signal back to the host
computer indicating the problem, so the host computer likewise
re-initializes itself.
In the event that valid communication cannot be re-established, the
computer in the throttle controller steps the locomotive to a known power
setting, which may be throttle idle, reverser neutral and dynamic brake
off. Another option is to leave the dynamic brake on if it was on when
communication was lost.
In order to determine whether corruption of transmission has occurred, a
cyclic redundancy check is made in accordance with the following
reference. "C Programmer's Guide to Serial Communications", by Joe
Campbell, Published by Howard W. Sams, Inc. 1987. This work is hereby
incorporated in its entirety by reference.
The reference includes a table on Page 5 which is referred to as the CCITT
polynomial. The table has 256 entries, each of which is a two-byte
integer. A computer which is using a cyclic redundancy check can either
use this table by table look-up, or calculate its values as needed from
the polynomial.
The cyclic redundancy check is made as follows: For each packet of
information which is sent out, the CRC, which is a two-byte integer, is
given an initial value which is known both to the sending computer and the
receiving computer. The bytes of useful information in the packet are then
processed in sequence, and as each byte is encountered, the CRC is
re-calculated according to the procedure below. The procedure involves an
exclusive OR procedure. When two bits (each having a value of 0 or 1) are
compared in an exclusive OR procedure, the result is 1 if either, but not
both of the bits has the value 1. When two integers of equal length are
compared by an exclusive OR procedure, their bits are compared
respectively in an exclusive OR, and the resulting bits, in sequence,
create a new integer having the same length as the integers being
compared.
The procedure for calculating new values for the CRC is as follows:
The most significant byte of the CRC is compared in an exclusive OR
procedure with the byte in the data packet being processed. The resulting
byte is used as a pointer to a value in the CCITT table, cited above. This
table entry is a two-byte integer. Another two-byte integer is obtained
from the least significant byte of the CRC. This byte is shifted left
eight bits, and eight zeroes are inserted in its place. This two-byte
integer is then compared with the table entry, also a two-byte integer in
an exclusive OR procedure, to obtain a final two-byte integer. This is the
new value for the CRC. After all the bytes of control data in the packet
have been processed, the two bytes of the CRC are attached, two bytes
which serve as an end flag are attached, and the packet is transmitted.
An identical calculation is performed in the receiving computer. The CRC is
first initialized at its known initial value. As each byte of useful
information is received, the CRC is re-calculated using the same procedure
as used by the sending computer. After all the bytes have been received,
and used to re-calculate the CRC, the calculated CRC is compared with the
CRC received from the transmitting computer to determine whether
information in the data packet has been corrupted.
In order to detect loss of transmission from the sending computer to the
receiving computer, a timer is reset in the receiving computer whenever a
data packet is received. The timer generates a signal indicative of the
time elapsed since it was last reset. By monitoring that signal, the
receiving computer has information which indicates whether an excessive
time has elapsed since the previous data packet was received.
In another aspect of this invention, a method is provided for transmitting
diagnostic information from the throttle controller back to the remote
host computer. This information may include from the prior art: (1) hot
engine, (2) brake warning, (3) wheel slip and (4) ground fault. It may
also include the status of the trainlines, that is, information regarding
the actual voltages on the trainlines. This information is encoded in data
packets and transmitted back to the host computer in the manner discussed
above.
The data packets which this method provides are structured in a manner
somewhat similar to HDLC frames. There are, however, some major
differences. For one thing, the HDLC system is synchronous. The system of
the present invention is asynchronous. An additional difference is that in
HDLC, when a data packet is not being transmitted, bytes equal to Hex 7E
are continuously transmitted. (In binary, this number is 01111110.) In the
present system, when a data packet is not being transmitted, no changing
signal is sent.
For the present invention, the start of a packet is indicated by two
standard bytes, ASCII <DLE> and <STX>, which have the numeric values of 16
and 2.
For HDLC, the start of a packet is indicated by an address byte, and a byte
which provides 2 bits for packet type and two sequence numbers of 3 bits
each. One of these is to label the packet being transmitted, and one to
reference a previously-received packet.
The system of the present invention does not provide reference numbers for
the packets because generally, successive packets carry the same type of
information.
After the two bytes which begin the packet, the present invention has a
byte reserved for address, and a byte for packet type, which in present
embodiments, is set to 3.
In both the HDLC frames, and in the packets of the present invention, a
string of useful data bytes follow, and then bytes for a cyclic redundancy
check. In the HDLC system, there can be either 2 or 4 bytes for CRC. In
the present system, there are 2 bytes.
In the HDLC system, after the CRC bytes of the data frame, the sending
computer returns to the process of transmitting bytes equal to Hex 7E. In
the present system, after the CRC bytes of the data packet, an end flag is
transmitted. This consists of the bytes <DLE><ETX>, which have the numeric
values 16 and 3. After the end flag, for the present invention, no
changing signal is sent.
The present invention is similar to the HDLC system in that the CRC bytes
are not identified as being distinct from the data being transmitted,
until the end of the packet is encountered. In either case, when the end
of the packet is encountered, the CRC bytes are identified as such.
In the present invention, bytes of data being transmitted may have the same
values as the <DLE><ETX>. To prevent ambiguity, a byte-stuffing technique
is employed. In the sending computer, whenever a byte with the same value
as <DLE>, which is 16 is encountered, the value is transmitted twice in
succession. This distinguishes it from the end flag, where the values
would be 16 and 3. In the receiving computer, the two values of 16,
encountered in sequence, are interpreted as a single value of 16.
The method of communicating between the remote host computer and the
computer in the slave unit does not require communication lines for
handshaking functions. In fact, two-way communication can be accomplished
using only three electric conduction paths.
A signal can be sent from the host computer to the slave computer using one
of the three conduction paths. At the same time, the slave computer can be
sending signals to the host computer on a second one of the three
conduction paths, while the third conduction path serves as current return
for both signals.
Since no communication lines are needed for handshaking functions, it is
also possible to provide communication over a two-way radio link.
Although, in general, the packets of data transmitted, convey the same type
of information, a method is provided for transmitting a data packet from
the host computer to the slave computer which provides date and time
information. A header byte is transmitted with the data bytes, which
indicates that the information is date and time. In the slave computer,
then, the information, after CRC checking, is placed in the areas of
memory reserved for date and time.
For the application to a locomotive throttle controller, signals are
transmitted representing digital data packets which contain information
indicative of the requested setting for engine throttle, reverser
position, and dynamic braking.
Since there is a requirement that control levers in the slave locomotive be
in a home position (throttle idle, reverser in neutral and dynamic brake
off), for remote operation to be possible, signals indicative of these
control lever positions are transmitted, along with diagnostic information
such as trainline status, from the throttle controller to the remote host
computer.
An additional aspect of this invention is an apparatus for controlling a
locomotive from a remote host computer. The locomotive is provided with a
throttle controller which has at its heart a central processor digital
computer. This computer sends signals to an output driver stage which
applies voltages to the trainlines which control the locomotive, and
perhaps, other locomotives in a consist.
The throttle controller can be used either for local command, or for remote
command. When used for local command, engine control commands are obtained
from the engineer's console. For remote command, engine control commands
are obtained via a suitable transmission means from a remote host
computer.
The remote host computer has apparatus, including software instructions,
for receiving engine-control commands from a human operator, and for
placing these commands in its memory.
As an example of a remote host computer, this item could be a PC or lap top
computer. With suitable software, commands can be inserted by a human
operator using a keyboard or keypad, or a joystick, mouse, or digitizing
pad.
The remote host computer has software which utilizes the engine-control
commands in its memory. These are formulated as digital data packets and
transmitted to the throttle controller of the locomotive. These data
packets are sent at time intervals no greater than a known maximum time
interval.
In the throttle controller, information in these data packets is processed
to generate signals which are sent to the output driver stage and
converted into signals on the trainlines. Software in the CPU of the
throttle controller provides for responding to either corruption or loss
of transmission of data from the remote host computer.
Signals in the CPU of the throttle controller direct it to respond to
either corruption or loss of transmission as follows: The CPU of the
throttle controller puts itself in a re-initialization mode, in which it
re-initializes itself based on information in its non-volatile memory,
perhaps with additional information in mass storage such as disk drives.
It also sends a signal to the remote host directing it to re-initialize
itself in the same manner.
If re-initialization is not successful at re-establishing communication,
signals in the CPU of the throttle controller direct it to step the
locomotive power setting to a known power setting. This power setting may
be throttle idle, reverser neutral, and dynamic brake off. A modification
of this apparatus may provide for the dynamic brake remaining on if it was
on when the corruption or loss of transmission occurred.
In order to detect the condition of corruption of transmission, signals in
memory in the host computer are provided which direct it to attach signals
representing integers for a cyclic redundancy check to the data packet.
Likewise, the CPU in the throttle controller has signals in memory
directing it to re-calculate the integers for cyclic redundancy check to
compare with the integers represented by the received signals.
The throttle controller also has apparatus for resetting a timer whenever a
data packet is received from the remote host computer. This is used to
determine whether an interv | | |