Abstract:
An interface controller that connects devices which read and write the NMEA 0183 sentence data in a RS422 electrical format, to the Ethernet for transmission. NMEA 0183 sentence data is encapsulated and routed to other interface controllers, and/or to user applications operating on computers. A software interface utility designed to operate on the same computer as the users application programs will provide the transparency and the routing/mapping between the Ethernet transmitted NMEA 0183 sentence data and the users application programs communications interface, transparently.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to the transmission of NMEA 0183 sentence data and, more particularly, to transmitting this NMEA 0183 data over the Ethernet while allowing for complete transparency to the user&#39;s equipment, and to the software applications needing access to NMEA 0183 sentence data.  
       BACKGROUND OF THE INVENTION  
       [0002]     NMEA 0183 is a standard data sentence format designed to enable various manufacturers of navigation equipment and software to share data. This is the most used format world-wide for the sharing of data such as latitude, longitude, depth, winds, waypoints, heading, data/time, speeds, etc. Standard NMEA 0183 sentence data transmission is defined as 4800 baud, transmitting over the RS422 electrical standard. This slow speed of transmission of data from the NMEA navigation devices is restrictive to today&#39;s needs. Multiple listeners (Navigation Devices) are limited to three users. Multiple COM ports on personal computers must be reserved for each NMEA 0183 transmitting device which increases costs and complexity.  
         [0003]     Hardware NMEA 0183 multiplexors are limited to the number of inputs that they can support, are not Ethernet compatible and have potential buffer over runs as a result of the restriction of the 4800 baud on outputs.  
         [0004]     It is therefore an object of the invention to increase the transmission speed of the NMEA 0183 data from its present speed of 4800 baud to the high speed of the Ethernet.  
         [0005]     It is another object of the invention to provide for dynamic routing and identification of this NMEA 0183 data by encapsulating of NMEA 0183 sentences with a proprietary header.  
         [0006]     It is another object of the invention to provide a software utility that is the bridge between the Ethernet NMEA 0183 sentence data and the user applications which operate on computers, with complete transparency in operation.  
         [0007]     It is another object of the invention to allow user configurable parameters of the invention&#39;s controller via a software utility.  
       SUMMARY OF THE INVENTION  
       [0008]     In accordance with the present invention, there is provided an interface controller which adapts the NMEA 0183 sentence data from an RS422 electrical format to the Ethernet. Sentence data is encapsulated and routed to other interface controllers, and/or to user applications operating on computers, via the invention&#39;s transparent utility program. This transparent program provides the interface between the NMEA 0183 sentence Ethernet packet and the user programs by routing the data to Virtual COM ports dynamically created by the utility program, while operating on computers. The GUI (Graphics User Interface) of the utility program allows for user mapping of the Virtual COM ports and the NMEA 0183 sentences, among other user interface options. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]     A complete understanding of the present invention may be obtained by reference to the accompanying drawings, when considered in conjunction with the subsequent, detailed description, in which:  
         [0010]      FIG. 1  is a block diagram showing the components view of an interface controller, the RS422 NMEA 0183 devices and the Ethernet;  
         [0011]      FIG. 2  is a block diagram of the input process logic view of an interface controller;  
         [0012]      FIG. 3  is a block diagram of the output process logic view of an interface controller;  
         [0013]      FIG. 4  is a data packet diagram view of an Ethernet record created by the controller and by the interface utility program on the computer;  
         [0014]      FIG. 5  is a data element view of an Ethernet packet record field details created by this invention; and  
         [0015]      FIG. 6  is a block system logic diagram view of a program logic view of the system utility program that interfaces the NMEA 0183 Ethernet packets and the user applications running on the computer. 
     
    
       [0016]     For purposes of clarity and brevity, like elements and components will bear the same designations and numbering throughout the FIGURES.  
       DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0017]      FIG. 1  is a block diagram showing the components comprising the Interface_Controller  39  that is the bridge between the RS422 NMEA — 0183_Navigation_Devices  1  and the Ethernet  5 . The NMEA — 0183_Navigation_Devices  1  are devices that output and receive the standard NMEA — 0183_Sentence  20  data structure over a RS422 electrically compatible link. These NMEA — 0183_Navigation_Devices  1 , NMEA — 0183_RS422_Inputs  6 , are interfaced to this controller at the RS422_Transceiver  2  which provides for the electrical compatibility as required by the RS422 standard. This RS422_Transceiver  2  is then electrically coupled to the Microprocessor  3 , which processes the NMEA — 0183_Data_Sentence  37  received from the RS422_Transceiver  2  and from the Ethernet_NMEA — 0183_Data_Packet  38 . This Ethernet_NMEA — 0183_Data_Packet  38  is handled by the Ethernet_Transceiver  4 . This Ethernet_Transceiver  4  provides for the electrical interface requirements as defined for the Ethernet  5 . These electrical components are package in a container suitable for the installation location and the environment of the Interface_Controller  39  will be located in. Means shall be provided for the connections to the NMEA — 0183_Navigation_Devices  1  electrically, along with electrical and mechanical connection to the the Ethernet  5 . In addition, allowances will be made for the connections of AC or DC power required to operate the electronics within the Interface_Controller  39 .  
         [0018]      FIG. 2  is a block diagram of the input process flow view of the Interface_Controller  39 . This flow is representative of logic that is programmed into the Microprocessor  3  within the Interface_Controller  39 . The flow starts by the receipt of data from the NMEA — 0183_Navigation_Devices  1 , which is referred to as the NMEA — 0183_RS422_Inputs  6 . These NMEA — 0183_RS422_Inputs  6 , of which there can be one or many, are polled in an endless loop by the program logic Poll_RS422_Inputs  7 . Poll_RS422_Inputs  7  checks to see if a complete NMEA — 0183_Data_Sentence  37  has been received at this input port. If not, then Poll_RS422_Inputs  7  continues to the next input RS422 port. If the NMEA — 0183_Data_Sentence  37  has been completely received, then it is passed to Filter_Packets  8 . Filter_Packets  8  then checks its user defined memory variables to see if there are routing instructions for this NMEA — 0183_Data_Sentence  37  and if there are other instructions on the handling of this NMEA — 0183_Data_Sentence  37 . These special handling instructions then are applied by the Add_Prefix  9  program logic to create the resultant Ethernet_NMEA — 0183_Data_Packet  38 , with the Build_Output_Packet  10  program logic. The Output_Packet  11  program logic takes the Ethernet_NMEA — 0183_Data_Packet  38  and writes this data to the Ethernet  5  via the Ethernet_Transceiver  4 .  
         [0019]      FIG. 3  is a block diagram of the output process flow view of the Interface_Controller  39 . This logic flow is representative of the logic that is programmed into the Microprocessor  3  within the Interface_Controller  39 . The flow starts by the receipt of the Ethernet_NMEA — 0183_Data_Packet  38  from the Ethernet  5  at the Ethernet_Transceiver  4 . This Ethernet_NMEA — 0183_Data_Packet  38  is handled by the Receive_Ethernet_Packet  17  program module. The Ethernet_NMEA — 0183_Data_Packet  38  is then passed to the Parse_Packet  16  program module which starts to break apart the data fields. Then the data is passed to the Strip_Headers  15  program module. It is at the Strip_Headers  15  program module that the NMEA — 0183_Data_Sentence  37  is returned to its native format. At this stage, the Check_Filters  14  program module, checks the user stored parameters that will allow it to make decisions for the next module which is Route_to_Port  13 . The Route_to_Port  13  program module determines which RS422_Transceiver  2  output port to write this NMEA — 0183_Sentence  20  as defined by the NMEA — 0183_RS422_Outputs  12 .  
         [0020]      FIG. 4  is a packet diagram view of the Ethernet_NMEA — 0183_Data_Packet  38  created by the Interface_Controller  39  and/or created by the Software_Interface_Utility  40 . This is comprised of the standard UDP_Header  18 , the Ethernet_Header  19  which defines this type of packet of data, the NMEA — 0183_Data_Sentence  37  and the Ethernet_Trailer  21 . The Ethernet_Trailer  21  will contain any significant makers which might be required to identify the end of the Ethernet_NMEA — 0183_Data_Packet  38 .  
         [0021]      FIG. 5  is a generic data element field view of the Ethernet_Header  19  of the Ethernet_NMEA — 0183_Data_Packet  38  created by the Interface_Controller  39  and/or created by the Software_Interface_Utility  40 . This view provides a general concept of the data fields that will comprise the Ethernet_Header  19  which is prefixed to the NMEA — 0183_Data_Sentence  37 . The first field is the Ethernet_Identifier  22  followed by the Origin_ID  23  which is the unique identification assigned when the NMEA — 0183_Data_Sentence  37  is received. Next is the Destination_ID  24  that defines the port for routing this data packet to. The next two fields IP_Address  25  and Port_Address  26 , of the Software_Interface_Utility  40  program that does the interfacing between the Ethernet_NMEA — 0183_Data_Packet  38  are used to further define the routing directions. The last field, Sentence_Codes  27 , is the NMEA — 0183_Data_Sentence  37  identifier code, which is unique for this NMEA — 0183_Data_Sentence  37  and is part of the standard as published by the NMEA organization.  
         [0022]      FIG. 6  is a block diagram of the the program logic of the Software_Interface_Utility  40  program that does the interfacing between the Ethernet_NMEA — 0183_Data_Packet  38  and the User_Applications  32  running on the user&#39;s computer. This Software_Interrace_Utility  40  will provide a GUI (Graphic User Interface) to the user for configuring and mapping of Virtual_COM_Ports  41  to the User_Applications  32 . The Ethernet_NMEA — 0183_Data_Packet  38  is handled by the Receive_Packet  28  program routine. The Ethernet_Header  19  is processed by the Check_Header  29  program routine as it checks for information which will set its logic for the mapping and routing of the NMEA — 0183_Data_Sentence  37  portion of this Ethernet_NMEA — 0183_Data_Packet  38 . Then the Strip_Headers_From_Packet  30  separates the Ethernet_NMEA — 0183_Data_Packet  38  back to its native form of the NMEA — 0183_Data_Sentence  37 . The NMEA — 0183_Data_Sentence  37  is then passed to the Route_to_Virtual_COM_Port  31  program routine for writing the NMEA — 0183_Data_Sentence  37  to the correctly routed Virtual_COM_Ports  41  based upon the instructions in the Ethernet_Header  19 .  
         [0023]     The Virtual_COM_Ports  41  are also being read by the Software_Interface_Utility  40  while all the time checking for a NMEA — 0183_Data_Sentence  37  with the program routine Read_From_Virtual_COM_Port  33 . Once a complete NMEA — 0183_Data_Sentence  37  is found, the program routine Check_Routing  34  is invoked to determine how to handle the routing of this NMEA — 0183_Data_Sentence  37 . The Build_Headers  35  program routine is then used to construct the Ethernet_NMEA — 0183_Data_Packet  38  which will be comprised of, but not limited to the UDP_Header  18 , Ethernet_Header  19 , NMEA — 0183_Data_Sentence  37  and the Ethernet_Trailer  21 . This completed Ethenet_NMEA — 0183_Data_Packet is then passed to the Write_Packet  36  program routine to be written to the Ethernet  5 .  
         [0024]     Thus in summary, it can be seen that the Interface_Controller  39  provides a bridge for the NMEA — 0183_Navigation_Devices  1  which uses the NMEA — 0183_Data_Sentence  37 , and the Ethernet  5 . While at the users computer, the Software_Interface_Utility  40  provides another bridge between the Ethernet  5  and the User_Applications  32  which use or create the NMEA — 0183_Data_Sentence  37 . In addition, this transports the NMEA — 0183_Data_Sentence  37  at the high speed of the Ethernet  5  while providing transparency to the user.  
         [0025]     Since other modifications and changes varied to fit particular operating requirements and environments will be apparent to those skilled in the art, the invention is not considered limited to the example chosen for purposes of disclosure, and covers all changes and modifications which do not constitute departures from the true spirit and scope of this invention.  
         [0026]     Having thus described the invention, what is desired to be protected by Letters Patent is presented in the subsequently appended claims.