The present invention relates to a method and system for increased spectral efficiency in wireless locomotive remote control and, more specifically, to a system and method by which a wireless railroad remote control system communicates using a common channel and manages access to the channel using collision avoidance.
In a large commercial class 1 railway switching yard, many trains operate within the same confined geographic area on closely-laid parallel tracks. In order for the operators of the railway switching yard to quickly couple and uncouple various cargo cars on a given train, a wireless radio remote control using radio frequency (RF) communications is used to move a locomotive back and forth to facilitate switching. The yard can be over two miles in length, and the wireless radio remote control communications are required to cover the entire area.
For the purpose of illustration, there are shown in the drawings certain embodiments of the present invention. In the drawings, like numerals indicate like elements throughout. It should be understood that the invention is not limited to the precise arrangements, dimensions, and instruments shown. In the drawings:
Reference to the drawings illustrating various views of exemplary embodiments of the present invention is now made. In the drawings and the description of the drawings herein, certain terminology is used for convenience only and is not to be taken as limiting the embodiments of the present invention. Furthermore, in the drawings and the description below, like numerals indicate like elements throughout.
The close geographic area of railway switching yard creates a problem for RF spectrum management with multiple trains, each having a locomotive controlled by a wireless radio remote control unit. In an example of a conventional wireless control system, each locomotive is assigned a unique RF channel in a Frequency Division Multiple Access (FDMA) network topology. The conventional FDMA network topology is limited by available spectra. Specifically, as rail yards grow in size, the available spectra for the conventional FDMA network topology limits the number of unique frequency channels to assign to each locomotive. When an RF repeater network is utilized to extend the operational range beyond two miles, each repeater requires its own channel, thereby limiting the number of channels available for assigning to locomotives. Assigning a unique channel to each locomotive and to each repeater results in wasted bandwidth in a conventional FDMA network, as each device does not constantly transmit commands and data. The amount of time during which a locomotive and a repeater does not transmit may be significant and results in wasted bandwidth.
Recent improvements in wireless radio remote control of locomotives have used Time Division Multiple Access (TDMA) to control access to available spectra. In TDMA each channel is divided into multiple timeslots, each of which is assigned to a locomotive for transmitting data. Multiple locomotives share a common RF channel. However, this technique does not allow for variable-length messages or, more specifically, variable-length time slots. As a result, timeslot lengths are chosen to accommodate the longest message (e.g., measured in time required to transmit all message bytes) that may be transmitted. When a message having a length less than the maximum afforded by the time slot is sent, the channel is idle following the end of the message until the end of the timeslot is reached. This idle period results in wasted bandwidth.
An exemplary embodiment of the present invention reduces the amount of time during which an RF channel is idle during routine communications over that found in FDMA and TDMA topologies. Such exemplary embodiment uses a Carrier Sense Multiple Access (CSMA) topology, in which each transmitter shares a common RF channel. Each transmitter transmits for the minimum duration necessary for its specific message. Additionally, a Collision Avoidance (CA) algorithm is utilized to arbitrate between inevitable collisions. CSMA with CA (hereafter referred to as “CSMA/CA”) techniques provide for very efficient spectral usage of a shared RF channel.
Referring now to
Each device 110, 120 (the OCUs 110A, 110B, . . . , 110N and the LCUs 120A, 120B, . . . , 120N) in the system 100 is a network node. Each node monitors its inputs (e.g. each OCU 110 monitors its operator controls and each LCU 120 monitors feedback for its respective locomotive 130A, 130B, . . . , 130N). Each node transmits packets comprising any changed data or control information. If no data or control information has changed within a pre-configured heartbeat interval, the node transmits a heartbeat packet which indicates that no data and control information has changed since the last transmission by the node.
All packets transmitted by nodes include the following fields: a preamble, a sync word sequence, a length indication, heartbeat status bits (start and stop status), a source node ID identifying the transmitting node, a destination node ID identifying the receiving node or nodes, link status, node/device type (unknown, LCU, OCU, repeater), a sequence number, and a checksum (e.g., CRC-16). Messages including commands or data further include a command payload comprising one or more commands identified by one or more respective command IDs. Heartbeat messages include all of the foregoing fields, except for the command payload. Thus, a heartbeat message is identified by the fact that it includes no command payload.
Commands are variable in length, depending on the command type and the amount of data in the payload. Messages also vary in length depending on the amount of data in their payload. A single message (packet) may contain any number of command IDs and any amount of data in the command payload, so long as the total message size does not exceed the message size limit. In an exemplary embodiment, the message size limit is 36 bytes and the overhead of the packet (all of the foregoing fields minus the command ID and the payload) is 11 bytes, and the packet further includes a four-bit preamble. The shortest messages are heartbeat messages, which are 11 bytes (the overhead) plus the four-bit preamble. The longest messages are 36 bytes plus 4-bits for the preamble.
Each OCU 110A, 110B, . . . , 110N is assigned an address or identifier (ID) that uniquely identifies the OCU 110 from all other OCUs 110 and LCUs 120. Each LCU is also assigned an address (ID) that uniquely identifies the LCU 120 from all other LCUs 120 and OCUs 110. The source node ID in a packet is either an OCU 110 ID or an LCU 120 ID. The destination node ID in a packet is either an OCU 110 ID or and LCU 120 ID. The payload comprises changed data and/or changed control information.
Referring now to
Referring now to
The method 200 begins with a Step 210 in which a network node, before attempting to send data, listens to the common RF channel for other transmitting nodes and waits for the channel to become free or available. The Step 210 comprises two sub-steps 212 and 214. In the sub-step 212, the node calculates a Received Signal Strength Indicator (RSSI) and continues to the sub-step 214. In the sub-step 214, the node determines whether the calculated RSSI is below a pre-configured threshold. If it is not, the node determines that the RF channel is not available, and the method 200 returns to the sub-step 212 where it waits for a predetermined amount of time before calculating the RSSI again. If it is, the RF channel is available, and the method 200 continues to a Step 220.
In the Step 220, the node continues to listen for a variable delay known as the node wait interval. The length of the node wait interval is inversely proportional to the node's transmission priority. The method 200 continues to a Step 230 in which the node listens for a network transmission. If the node detects a network transmission (signaled by detecting a valid preamble and sync word sequence) during this interval, the method 200 proceeds to a Step 240 in which the node increases the transmission priority, thus reducing the node wait interval. The method 200 then returns to the Step 220 and restarts the node wait interval at the end of the detected transmission. The minimum node wait interval is desirably greater than the time needed to transmit the preamble and sync word sequence to ensure detection of other network transmissions. The Steps 210 through 240 are a collision avoidance algorithm.
Otherwise, in the Step 230, if the node does not detect a network transmission during the node wait interval, the method 200 continues to a Step 250, in which the node transmits its message which is either the heartbeat message or a message comprising changed data and/or changed control information. In the exemplary embodiment in which the method 200 is being performed by a non-repeater node, the transmitting node assembles the message to be sent by inserting its ID, the receiving node's ID, any changed data, any changed control information, and the sequence number for the transmitted message. The transmitting node stores the sequence ID in a list of messages for which receipt is to be acknowledged (the “pending acknowledgement list”). In the instance in which there is no changed data or changed control information to be transmitted, the transmitting node omits the command payload from the message, thus making the message a heartbeat message. A heartbeat message is a message transmitted by the transmitting device to let the receiving device know that it is still communicating. In the exemplary embodiment in which the method 200 is being performed by a repeater node, the repeater node retransmits, in the Step 250, a message it has received. It does not maintain a pending acknowledgement list. In a Step 260, the transmitting node listens for an acknowledgement of receipt of the message by the receiving node. If an acknowledgement is received within a timeout interval, the method 200 proceeds to a Step 270 in which the transmitted data is cleared, and the method 200 ends, Step 280. Otherwise, if the transmitting node does not receive an acknowledgement of receipt within the timeout interval, the method 200 loops back to the Step 210, in which the transmitting node attempts to transmit a new message with the unacknowledged command payload data. The method 200 continues as discussed above.
In an exemplary embodiment, in the Step 220, while waiting to transmit a message, the node continues monitoring inputs for changed data or additional control information. If additional changed data or additional control information is detected during the node wait interval in the Step 220, the node may append the additional changed data and/or changed control information to the message to reduce the overall number of message transmissions.
Referring now to
The method 300 begins with a non-repeater node (hereinafter a “receiving node”) waiting for receipt of a message, Step 310. While waiting, the receiving node determines whether it has received a message originating from a non-repeater transmitting node (hereinafter a “transmitting node”) within a timeout interval, Step 320. If it has, the method 300 continues to a Step 330, in which the receiving node processes the received message. In an exemplary embodiment in which the receiving node is an OCU, the OCU displays any relevant data in the received message in the Step 330 and makes note of any acknowledgements in the received message. In an exemplary embodiment in which the receiving node is an LCU, the LCU executes any control information contained in the received message in the Step 330 and makes note of any acknowledgements in the received message.
Continuing with the method 300, in the Step 330, the receiving node processes any acknowledgements contained in the received message originating from a transmitting node. For any acknowledgement in the received message, the receiving node determines the sequence number for such acknowledgement and removes such sequence number from its pending acknowledgement list. The acknowledgement received by the receiving node is an acknowledgement of receipt of a message it previously sent as a transmitting node.
In the Step 330, the receiving node determines whether there are any sequence numbers in the pending acknowledgement list corresponding to a message which the receiving node previously transmitted (as a previous transmitting node) but for which it did not receive an acknowledgement within a predetermined time period. The receiving node removes any such sequence numbers from the pending acknowledgement list and queues up the unacknowledged message(s) data to be resent or appends it to a message waiting to be sent. The method 300 continues to a Step 340.
In the Step 340, the receiving node appends an acknowledgement of the received data and/or control information from the Step 310 to an outgoing message, Step 340. The receiving node also appends any unacknowledged message data from the Step 330 to an outgoing message. Since the transmitting node transmits only changed data or changed control information, packet acknowledgement by the receiving node is desirable to inform the transmitting node that it has received the message containing the changed data or changed control information. In an exemplary embodiment, the appended acknowledgement comprises the node ID (of the node performing the method 300) and the sequence number of the message received in the Step 310. From the Step 340, the method 300 proceeds to the Step 210 via jump “A” in
If the receiving node determines in the Step 320 that is has not received a message within the timeout interval, it proceeds to a Step 350, in which it takes remedial action. The method then ends in a Step 360.
In an exemplary embodiment, when no message has been received within the timeout interval, in the case in which the receiving node is an LCU, in the Step 350, the remedial action involves the LCU commanding the locomotive on which it is mounted to enter a safe state. The method 300 then ends, Step 360. Entering a safe state may entail throttling down to idle and applying brakes until the locomotive stops. In an exemplary embodiment, the timeout interval for the receiving node when it is an LCU is four seconds.
In another exemplary embodiment, when no message has been received within the timeout interval, in the case in which the receiving node is an OCU, in the Step 350, the remedial action involves the OCU indicating a loss of link with the LCU by activating an audible alarm, activating a display element, e.g., an LED indicator or an LCD display, in the OCU or activating both the audible alarm and the display element. The method 300 then ends, Step 360. The OCU then may perform the method 200 to send periodic commands in the Step 250 to attempt reconnection with the LCU, e.g., every six seconds. If the link with the LCU is re-established after subsequent execution of the method 300, the OCU clears the loss of link indicators in the Step 330 and resumes normal operation. In an exemplary embodiment, the timeout interval for the transmitting node when it is an OCU is two seconds.
In an exemplary embodiment, the receiving node may receive more than one data and/or command message in the Step 310 before expiration of the timeout interval in the Step 320. In such embodiment, the receiving node may acknowledge receipt of the more than one data and/or command messages in the Step 340 by appending acknowledgements for each received message to a single outgoing message transmitted in the Step 250. This allows the receiving node to acknowledge multiple incoming messages with a single outgoing message to reduce network congestion.
Repeater nodes implement a simplified embodiment of the method 300. They receive messages in the Step 310 and then proceed to the method 200 to retransmit the received message. Each repeater node keeps track of which OCU and LCU nodes are within range. OCU and LCU nodes that are within range are marked by the repeater node as being associated. The repeater node will transmit the received messages in the Step 250 of the method 200 if the receiving node is associated with the repeater node, i.e., within range. In an exemplary embodiment, the repeater adds a “Repeater Information” command to the command payload. This command is used to identify if the packet was received through a repeater or directly from an endpoint OCU or LCU. The “Repeater Information” command includes the ID of the repeater that originally received the packet as well as the ID of the repeater that last repeated the packet.
In case a node is within range of multiple repeaters, the repeaters keep track of which repeater received packets from a node with the highest signal strength. Specifically, all packets transmitted by each node 110, 120 are received by any repeater node 145 within range. Each repeater node 145 calculates the RSSI for the received packet and informs the other repeater nodes 145 of its calculated RSSI. The repeater node 145 calculating the highest RSSI for the received packet will hold association with the broadcasting node 110, 120. If multiple repeaters receive the packet with the same signal strength, the repeater 145 with the lowest ID number will hold association. In an exemplary embodiment, the repeater nodes 145 communicate their RSSI information with one another over a channel different from the channel over which the nodes 110, 120 communicate commands. In an exemplary embodiment, the nodes 110, 120 communicate commands and heartbeat messages at 452 MHz, and the repeater nodes 145 communicate the RSSI information with one another at 5.8 GHz. In a further exemplary embodiment, the repeater nodes 145 communicate the RSSI information at 5.8 GHz using IEEE 802.11. It is to be understood that the system 100 may use a frequency other than 452 MHz for communicating commands and heartbeat messages and a frequency other than 5.8 GHz for communicating RSSI information.
In an exemplary operational scenario, a railyard includes ten trains all operating at the same time in the same geographic location. In this example, there are ten LCUs 120, one mounted in each locomotive 130. There are also 20 OCUs 110. Thus, there are 30 non-repeater nodes that transmit and receive messages on the same RF channel. The LCUs 120 and OCUs 110 transmit using the method 200 and receive using the method 300.
In a typical operational scenario, the heartbeat message is the most frequently transmitted message.
By contrast, in the system 100, 100′, the message lengths are variable, which allows for the shortest and most frequently transmitted message (the heartbeat message having no command payload) to use the minimum time needed. As a result, the system 100, 100′ can utilize up to nearly 100% of the total available messaging transmission time. Because of its short length, the methods 200 and 300 efficiently use available bandwidth to allow for a greater number of LCUs and OCUs to be used on the channel than if FDMA or TDMA had been used. Furthermore, in the system 100, 100′, if only five nodes are online but the system 100, 100′ may accommodate up to 20 nodes, the system 100, 100′ can efficiently maximize usage of the air time the other nodes would have reserved in the TDMA structure because the offline nodes do not claim air time.
In the system 100, 100′, there will be inevitable collisions when two or more nodes attempt to transmit their packets at the same time. The collision avoidance (CA) algorithm comprising the Steps 210 through 240 of the method 200 arbitrates these collisions on the RF channel). With CA employed on a network in which five of 20 possible nodes are operational, the system 100, 100′ utilizes more of the total available messaging transmission time than a TDMA system.
Referring again to
For each OCU 110, its tangible computer-readable storage medium 114 may be any available computer storage medium that can be accessed by its processing device 112. Such computer storage medium includes both volatile and nonvolatile and removable and non-removable media implemented in any method or technology for storage of information such as computer-readable software instructions, data structures, program modules, data received from the LCU 120 with which it communicates, control information inputted via the OCU 110, etc.
Each computer-readable storage medium 114 has software code stored thereon that, when executed by the respective processing device 112 of its OCU 110 causes the OCU 110 to perform any of the functionality of the OCU 110 described herein. Thus, any of the functionality performed by the OCU 110 described herein, such as the methods 200 and 300 described above, is implemented in software code or instructions which are tangibly stored on the computer-readable storage medium 114. Upon loading and executing such software code or instructions by the processing device 112, the OCU 110 may perform any of the functionality of the OCU 110 described herein, including any steps of the methods described above as being performed by the nodes of the system 100, 100′.
Each computer-readable storage medium 114 may include memory devices, such as magnetic media, optical media, magneto-optical media, and solid-state media. Magnetic media include magnetic cassettes, magnetic tape, magnetic disk storage (computer hard drive), or other magnetic storage devices. Optical media include optical discs, such as compact disc read-only memory (CDROM), digital versatile disks (DVD), or other optical disk storage. Magneto-optical media include magneto-optical drives. Solid-state memory includes random access memory (RAM), read-only memory (ROM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), flash memory, or other memory technology.
For each LCU 120, its tangible computer-readable storage medium 124 may be any available computer storage medium that can be accessed by its processing device 122. Such computer storage medium includes both volatile and nonvolatile and removable and non-removable media implemented in any method or technology for storage of information such as computer-readable software instructions, data structures, program modules, control information received from the OCU 110, data received from the locomotive control system with which it communicates, etc.
Each computer-readable storage medium 124 has software code stored thereon that, when executed by the respective processing device 122 of its LCU 120 causes the LCU 120 to perform any of the functionality of the LCU 120 described herein. Thus, any of the functionality performed by the LCU 120 described herein, such as the methods 200 and 300 described above, is implemented in software code or instructions which are tangibly stored on the computer-readable storage medium 124. Upon loading and executing such software code or instructions by the processing device 122, the LCU 120 may perform any of the functionality of the LCU 120 described herein, including any steps of the methods described above as being performed by the nodes of the system 100, 100′.
Each computer-readable storage medium 124 may include any memory devices, such as magnetic media, optical media, magneto-optical media, and solid-state media. magnetic media include magnetic cassettes, magnetic tape, magnetic disk storage (computer hard drive), or other magnetic storage devices. Optical media include optical discs, such as compact disc read-only memory (CDROM), digital versatile disks (DVD), or other optical disk storage. Magneto-optical media include magneto-optical drives. Solid-state memory includes random access memory (RAM), read-only memory (ROM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), flash memory, or other memory technology.
These and other advantages of the present invention will be apparent to those skilled in the art from the foregoing specification. Accordingly, it is to be recognized by those skilled in the art that changes or modifications may be made to the above-described embodiments without departing from the broad inventive concepts of the invention. It is to be understood that this invention is not limited to the particular embodiments described herein, but is intended to include all changes and modifications that are within the scope and spirit of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5941921 | Dasys et al. | Aug 1999 | A |
6449536 | Brousseau et al. | Sep 2002 | B1 |
6466847 | Horst | Oct 2002 | B1 |
6470245 | Proulx | Oct 2002 | B1 |
6658331 | Horst et al. | Dec 2003 | B2 |
6691005 | Proulx | Feb 2004 | B2 |
6693584 | Horst et al. | Feb 2004 | B2 |
6697716 | Horst | Feb 2004 | B2 |
6789004 | Brousseau et al. | Sep 2004 | B2 |
6799098 | Horst et al. | Sep 2004 | B2 |
6834219 | Proulx | Dec 2004 | B2 |
6853890 | Horst et al. | Feb 2005 | B1 |
6854691 | Kraeling et al. | Feb 2005 | B2 |
6862502 | Peitz et al. | Mar 2005 | B2 |
6863247 | Horst | Mar 2005 | B2 |
6928342 | Horst | Aug 2005 | B2 |
6975927 | Szklar et al. | Dec 2005 | B2 |
7069122 | Higgs | Jun 2006 | B1 |
7076343 | Kornick et al. | Jul 2006 | B2 |
7126985 | Horst et al. | Oct 2006 | B2 |
7131614 | Kisak et al. | Nov 2006 | B2 |
7164709 | Horst et al. | Jan 2007 | B2 |
7167510 | Horst et al. | Jan 2007 | B2 |
7203228 | Horst et al. | Apr 2007 | B2 |
7233844 | Peitz et al. | Jun 2007 | B2 |
7236859 | Horst et al. | Jun 2007 | B2 |
7257471 | Kornick et al. | Aug 2007 | B2 |
7484169 | Hrebek et al. | Jan 2009 | B2 |
7494194 | Higgs et al. | Feb 2009 | B2 |
7520472 | Peitz et al. | Apr 2009 | B2 |
7529201 | Aiken, II et al. | May 2009 | B2 |
7535865 | Aiken, II et al. | May 2009 | B2 |
7653465 | Geiger et al. | Jan 2010 | B1 |
7688218 | LeFebvre et al. | Mar 2010 | B2 |
7792089 | Aiken, II et al. | Sep 2010 | B2 |
8019496 | Matusiak, Jr. et al. | Sep 2011 | B2 |
8050809 | Geiger et al. | Nov 2011 | B2 |
8212685 | LeFebvre et al. | Jul 2012 | B2 |
8280567 | Brand et al. | Oct 2012 | B2 |
8358194 | Baravalle | Jan 2013 | B2 |
8380361 | Evans | Feb 2013 | B2 |
8386281 | Goodermuth et al. | Feb 2013 | B2 |
8406943 | Brand et al. | Mar 2013 | B2 |
8532842 | Smith et al. | Sep 2013 | B2 |
8649916 | Woo et al. | Feb 2014 | B2 |
8823537 | LeFebvre et al. | Sep 2014 | B2 |
9145863 | Melster et al. | Sep 2015 | B2 |
20040120305 | Aiken, II et al. | Jun 2004 | A1 |
20100168941 | Geiger et al. | Jul 2010 | A1 |
20130066490 | Liberatore | Mar 2013 | A1 |
20130107813 | Siriwongpaiat et al. | May 2013 | A1 |
20130265884 | Brombal | Oct 2013 | A1 |
20140076031 | Fugiel et al. | Mar 2014 | A1 |
20140111321 | Fox | Apr 2014 | A1 |
20140239127 | Morris | Aug 2014 | A1 |
20140277845 | Paulino et al. | Sep 2014 | A1 |
20140277850 | Jobs et al. | Sep 2014 | A1 |
20150045993 | Cooper et al. | Feb 2015 | A1 |
20150083869 | LeFebvre et al. | Mar 2015 | A1 |
20150134147 | Woo et al. | May 2015 | A1 |
20150229340 | Liu | Aug 2015 | A1 |
Number | Date | Country |
---|---|---|
2925073 | Sep 2015 | EP |
2925073 | Sep 2015 | EP |
Entry |
---|
International Search Report dated Dec. 13, 2016; International Application No. PCT/US2016/048618; International Filing Date Aug. 25, 2016; 3 pages. |
Written Opinion dated Dec. 13, 2016; International Application No. PCT/US2016/048618; International Filing Date Aug. 25, 2016; 7 pages. |
International Preliminary Report on Patentability dated May 8, 2018; International Application No. PCT/US2016/048618; International Filing Date: Aug. 25, 2016; 8 pages. |
Australia Examination Report No. 1 dated Nov. 28, 2018; corresponding Australia Patent Application No. 2016348358; having International Filing Date: Aug. 25, 2016; 5 pages. |
Russian Office Action dated May 7, 2019; Russian Application No. 2018118840; 7 pages. |
English translation; Russian Office Action dated May 7, 2019; Russian Application No. 2018118840; 2 pages. |
Extended European Search Report dated May 14, 2018; European Application No. 16862639.8; Filing Date: Aug. 25, 2016; 6 pages. |
Number | Date | Country | |
---|---|---|---|
20170120939 A1 | May 2017 | US |