Embodiments of the subject matter disclosed herein generally relate to a system and method for exchanging data between a node and a corresponding docking station, and more particularly, to increasing a communication speed between the node and the docking station for those situations in which the node has a legacy microcontroller that is configured only for communication through asymmetrical data flow using a half-duplex link.
Today there are many legacy devices, and even non-legacy devices, that use old communication protocols, like the Universal Asynchronous Receiver/Transmitter (UART) protocol. As these devices are part of a larger system or network, which was designed to use the UART protocol, upgrading them to more modern communication protocols like universal serial bus (USB), ethernet, Bluetooth, WiFi, etc. is not practical. Further, most of these systems are configured to use a single-ended or differential signals, which are supported by one or two wire communication paths, and thus, even if desired, they cannot be upgraded to the more modern protocols, which require a communication path having four or more wires.
Most known UART-based systems include old computers, mouse, keyboards and printers. Today, the UART protocol is mainly used by electronics such as GPS modules, Bluetooth modules, and RFID card reader modules, to connect to the Rasberry Pi, Arduindo, or other microcontrollers.
A less known field that still uses the UART protocol is the seismic surveying and processing field, which uses plural nodes for surveying a large area before drilling wells to explore subsurface resources, like oil, gas, hydrothermal fluids, ore, etc. Such a system is the seismic survey 100, which is illustrated in
When a seismic node 110 runs low on power or when the storage area for the seismic data is full, it needs intervention from the operator of the seismic survey. Typically, for such situations, the operator of the seismic survey either collects all the seismic nodes and takes them to a maintenance facility for recharging them and downloading the seismic data, or the operator drives a vehicle equipped with a power source and a UART based communication port, connects this power source and communication port to each seismic node, and recharges their batteries and retrieves the seismic data. U.S. Pat. No. 7,668,044, the entire content of which is incorporated herein by reference, discloses a system that is configured to receive plural identical wireless seismic nodes for battery recharging and data downloading, as illustrated in
U.S. Pat. No. 11,022,708, assigned to the assignee of the present application, (the entire content of which is incorporated herein by reference) illustrates another docking station that is capable to recharge the batteries of the nodes 110 and also to retrieve the stored seismic data. Both these systems use the UART protocol as there is only a single signal link between the docking station and the nodes, so that only half-duplex communication is possible.
A main limitation of the half-duplex single signal communication systems based on the UART protocol is their speed, i.e., no more than 20 Mbps may be transferred with a microcontroller, whereas specific transceivers are up to 50 Mbps. For a typical seismic survey, the amount of the collected seismic data is large, in the order of Terabytes of data. Thus, with such a small transfer speed between the nodes and the docking station, the time necessary to refresh the nodes can take hours, which is unacceptable for a seismic survey, as these surveys are very costly and need to transfer the seismic data in matters of minutes.
Thus, there is a need for a system that can quickly transfer the seismic data from the plural seismic nodes to the docking station, without the need to update or change exiting the one-signal communication hardware.
According to an embodiment, there is a communication system that includes a node configured to collect ambient data with a sensor, and a docking station configured to couple to the node and to establish a communication path with the node through only one signal along one or two wires. The node includes a first module configured to use a first data communication protocol for receiving commands from the docking station along the communication path, and a second module configured to use a second data communication protocol for sending the ambient data to the docking station along the communication path. The first data communication protocol is different from the second data communication protocol, the first data communication protocol is asynchronous and the second data communication protocol is a modified synchronous protocol.
According to another embodiment, there is a seismic data acquisition node that includes a housing, a seismic sensor attached to the housing, and a microprocessor configured to receive seismic data collected by the seismic sensor and transmit the seismic data to a docking station. The node is configured to establish a communication path with the docking station through only a single signal along one or two wires and the microprocessor includes a first module configured to use a first data communication protocol for receiving commands from the docking station along the communication path, and a second module configured to use a second data communication protocol for sending the seismic data to the docking station along the communication path. The first data communication protocol is different from the second data communication protocol, the first data communication protocol is asynchronous, and the second data communication protocol is a modified synchronous protocol.
According to yet another embodiment, there is a docking station for receiving seismic data from a seismic node, and the docking station includes a housing, a half-duplex transceiver located in the housing and connected to the seismic node through a communication path having only one or two wires, a field programmable gate array, FPGA, located in the housing and functionally connected to the half-duplex transceiver, and a microprocessor located in the housing and functionally connected to the FPGA. The FPGA is configured to decode the seismic data received from the node along the communication path using a Serial Peripheral Interface, SPI, protocol.
According to still another embodiment, there is a communication system that includes a node configured to collect ambient data with a sensor and a docking station configured to couple to the node and to establish a communication path with the node through only one signal along one or two wires. The node includes first module configured to use a data communication protocol for receiving commands from the docking station along the communication path, and a second module configured to use a same data communication protocol for sending the ambient data to the docking station along the communication path. The data communication protocol is a modified synchronous protocol in which the node and the docking station do not exchange a clock signal.
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
The following description of the embodiments refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. The following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims. The following embodiments are discussed, for simplicity, with regard to a seismic node and a corresponding docking station for transferring seismic data from the seismic node to the docking station. However, the embodiments to be discussed next are not limited to seismic systems, but may be applied to other systems that are limited to one one-signal communication protocols.
Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with an embodiment is included in at least one embodiment of the subject matter disclosed. Thus, the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout the specification is not necessarily referring to the same embodiment. Further, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments.
It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first object or step could be termed a second object or step, and, similarly, a second object or step could be termed a first object or step, without departing from the scope of the present disclosure. The first object or step, and the second object or step, are both, objects or steps, respectively, but they are not to be considered the same object or step.
The terminology used in the description herein is for the purpose of describing particular embodiments and is not intended to be limiting. As used in this description and the appended claims, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Further, as used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context.
According to an embodiment, a node and corresponding docking station are reconfigured to use the SPI protocol when the data from the node is transmitted to the docking station and to use the UART protocol for a communication from the docking station to the node, where the node is connected through a one-signal only communication channel to the docking station. Any system that has a first subsystem communicating with a second subsystem through a one-signal only channel, and uses half-duplex, asymmetric communication protocol is defined herein as a “legacy system.” For a better understanding of the invention, a brief discussion of the SPI and UART protocols is first presented.
The data can be exchanged between two electronic devices in series or parallel. A series communication link is illustrated in
A SPI based system 400 is configured as shown in
The SPI works by having the clock signal synchronizing the output of data bits from the master to the sampling of bits by the slave. One bit of data is transferred in each clock cycle, so the speed of data transfer is determined by the frequency of the clock signal. The SPI communication is always initiated by the master since the master configures and generates the clock signal. The master 410 sends data to the slave 420 bit by bit, in serial through the MOSI line. The slave receives the data sent from the master at the MOSI port. Data sent from the master to the slave is usually sent with the most significant bit first. The slave can also send data back to the master through the MISO line in serial. The data sent from the slave back to the master is usually sent with the least significant bit first. An advantage of the SPI protocol is that there are no start and stop bits, so that the data can be continuously transmitted, without interruption. The system has separated MISO and MOSI lines so that the data can be sent and received at the same time, i.e., is it full duplex.
Different from this protocol, the UART protocol transmits data asynchronously, which means that there is no clock signal to synchronize the output of bits from the transmitting UART to the sampling of bits by the receiving UART. Such a system 500 is illustrated in
When the receiving UART detects a start bit, it starts to read the incoming bits at a specific frequency known as the baud rate. Baud rate is a measure of the speed of data transfer, expressed in bits per second (bps). Both UARTs must operate at about the same baud rate. The baud rate between the transmitting and receiving UARTs can only differ by about 10% before the timing of bits gets too far off. In one implementation, the UART system may be implemented with a single wire 610, as illustrated in
Many existing legacy systems are configured as the system 600 or system 620, i.e., they have either a single wire 610 between a node and a docking station for communication purposes, in which case a single-ended signal is transmitted between the two structures, or two wires 622 and 624, in which case a single differential signal is transmitted between the two structures. For the system 620, the two wires 622 and 624 are usually twisted and the same signal is transmitted with a positive polarity along one wire and with an opposite polarity along the other wire. In the following, the term “single-ended” signal is used when there is a single physical wire between the node and the docking station and the term “differential” signal is used when there are only two physical wires between the node and the docking station. However, in both cases, a single signal is transmitted. Further, the node 510 typically includes a standard microcontroller (μC) that lacks advanced capabilities for USB High Speed, ethernet, or WiFi communications.
Such an existing seismic system 700 is schematically illustrated in
The microprocessor 742 in the node or the microprocessor 732 in the docking station 710 are connected to corresponding RS-485 drivers for managing the half-duplex electrical interface. With some drivers, for example, Texas Instruments SN65HVD78, one may reach a speed of up to 50 Mbps for data exchange between the node and the docking station. However, with the standard embedded microcontrollers 732 and 742, e.g., having one or more Arm 32-bit Cortex-M or Cortex-A cores, that is not possible. The standard microcontrollers 732 and 742 are defined as having U(S)ARTs communication peripherals and not advanced connectivity like USB High Speed or 100 Mbits Ethernet MAC.
The fastest U(S)ARTs peripherals from microcontrollers for managing half-duplex communication with a UART-type device do not exceed 20 Mbps, e.g., STM32U5xx, iMXRT101x. The only exception is the STM32F7x2 and STM32F7x3, which can reach a speed of up to 27 Mbits. If for each octet of data being transmitted the 1 bit for stop and 1 bit for start are suppressed, the useful rate for these elements is below 16 Mbps. TCP communication with such a support cannot exceed a useful rate of 15 Mbps with Ethernet frames, where the Packet header is 2 bytes, the MAC Ethernet fields is 18 bytes, the IP fields are 16 bytes, the TCP fields are 16 bytes, the Payload data I 1524−(2+18+16+16) bytes, and the TCP acknowledge is 2+18+16+16 bytes.
For increasing the flow rate, one could use a dedicated protocol as the Secure Digital Input Output (SDIO) protocol. However, such a new protocol necessitates a complete architecture re-design due to the number of necessary communication paths, with associated costs for material (e.g., additional wires and connectors), which is not practical for the legacy systems.
To overcome these limitations of the legacy systems, according to an embodiment, two different communication protocols are used for data transmission, one for the node to docking station direction and another one for the docking station to node direction. The two communication protocols are appropriate for the hardware currently present in the existing legacy systems. As discussed above, the legacy systems assume that the node has only a standard embedded microcontroller (having one or more Arm 32-bit Cortex-M or Cortex-A cores) that has U(S)ARTs communication peripherals and no advanced connectivity like USB High Speed or 100 Mbits Ethernet MAC. The docking station (also called rack or base station) can integrate an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA) at a first stage and any standard embedded microcontroller at a second stage, wherein the microcontroller has one or more peripherals with a throughput higher than that of the half duplex link to the node.
In this embodiment, the rack to node communication relies on the UART type asynchronous transmission, which is compatible with any standard microcontroller having one or more Arm 32-bit Cortex-M or Cortex-A cores and having one U(S)ART communication peripheral which minimum throughput is over 9600 bits/s, while the node to rack communication relies on a modified SPI type serial transmission, which is compatible with any standard microcontroller having one or more Arm 32-bit Cortex-M or Cortex-A cores and having one SPI communication peripheral. The modified SPI interface uses less signals than the traditional SPI protocol, to limit the number of necessary signals to effectively a single signal. In this embodiment, not all data typically associated with the SPI protocol are transmitted. Therefore, a FPGA type device may be present in the rack for permitting data decoding and reconstruction. The structure of this novel system is now discussed with regard to
Different from its traditional use, the microcontroller 742 is programmed to have an SPI module 820 (which may be software, hardware or a combination of the two), which is also connected to the bus 816. The SPI module 820 may have the configuration of the module 400 shown in
When the driver of the microcontroller 742 enables the pin DE to be logic high, the differential outputs A and B follow the logic states at data input D. A logic high at D causes A to turn high and B to turn low. In this case, the differential output voltage defined as VOD=VA−VB is positive. When D is low, the output states reverse, B turns high, A is low, and VOD is negative.
When DE is low, both outputs turn high impedance. In this condition, the logic state at D is irrelevant. The DE pin may have an internal pulldown resistor to ground; thus, when left open, the driver is disabled (high impedance) by default. The D pin may also have an internal pullup resistor to VCC, the source voltage; thus, when left open while the driver is enabled, output A turns high and B turns low.
When the receiver 840 enables pin RE to be logic low, the receiver is enabled. When the differential input voltage defined as VID=VA−VB is positive and higher than the positive input threshold VIT+ the receiver output R turns high. When VID is negative and lower than the negative input threshold VIT−, the receiver output R turns low. If VID is between VIT+ and VIT−, the output is indeterminate.
When RE is logic high or left open, the receiver output is high impedance and the magnitude and polarity of VID are irrelevant. Internal biasing of the receiver inputs causes the output to go failsafe high when the transceiver is disconnected from the bus (open-circuit), the bus lines are shorted (short-circuit), or the bus is not actively driven (idle bus).
To achieve these functionalities, the CS port of the SPI module 820 is connected to both the DE and RE inputs of the transceiver 720 (except when transmission by SPI), the MOSI port is connected to the D input of the transceiver 720, the Tx port of the UART module 712 is connected to the D input of the transceiver 720, and the Rx port of the UART module 712 is connected to the R output of the transceiver 720, as shown in
Note that the clock port SCLK of the SPI module 820 is not connected to the half-duplex transceiver 720, which means that although the SPI protocol is used, it is not synchronous as no clock signal are exchanged between transceivers 720. This means that the SPI protocol has been altered for this embodiment, as discussed later. This is so because the communication link 726 includes only two wires (see
The half-duplex transceiver 720 in the node 810 is connected through the two-wire communication path 726 to a similar half-duplex transceiver 720 in the docking station 840. The description of the half-duplex transceiver 720 in the docking station 840 is omitted herein as it is similar to that of the transceiver 720 in the node 810. The transceiver 720 is connected to an FPGA 850 and the FPGA 850 is connected to the microcontroller 732. All these elements are placed in a housing 842. The FPGA 850 is not traditionally found in the docking station 840. The FPGA 850 is added in this embodiment between the half-duplex transceiver 720 and the microcontroller 732 to recover and transform the received signal 727. For this purpose, the FPGA 850 is modified relative to a traditional FPGA to further include an upstream clock recovery module 852, a frame header detector 854, a frame checksum 856, and a deSerializer module 858. These modules are in addition to the traditional modules of link management 860, UART serializer 862, downstream buffer 864, upstream buffer 866, and microprocessor interface 868. In one application, the upstream clock recovery 852 (for bit synchronization) is configured to create a clock from rising edges and falling edges of the upstream signal, the frame header detector 854 (for frame synchronization) is configured to search for a specific known pattern to isolate specific fields of the frames, the Frame Checksum 856 is configured to check that the frame is not corrupted, the deSerializer module 858 is configured to aggregate data transferred bit to bit (in serial), in bytes or 32-bits words, the link management 860 is configured to decide when the Rack module transmits data or when it receives it, the UART Serializer 862 is configured to prepare data to be sent bit to bit toward the transceiver 720, the downstream buffer 864 may be a memory area that temporarily stores data, and the upstream buffer 868 may be another memory area that temporarily stores data.
In one application, the housing 842 has plural receiving units 844 (only one is shown for simplicity) for receiving the housing 811 of the node 810, as disclosed, for example, in U.S. Pat. No. 11,022,708. For this configuration, the node 810 becomes in direct contact with the docking station 840 and the two-wire communication path 726 is actually replaced by a direct contact between a male plug 813 of the node 810 and a female plug 846 of the docking station. In one variation of this embodiment, the male plug 813 is a female plug and the female plug 813 is a male plug. Any other mechanical connections that achieve an electrical connection of only two wires between the node and the docking station may be used.
The configuration of the packets exchanged between the node 810 and the docking station 840 is now discussed with regard to
When the node sends data (single signal 727) to the docking station, the SPI protocol is modified so that no communication clock SCLK is transmitted due to the limitation of media (single wire) or its physical interface driver. Also, neither the SPI chipselect nor MISO signal is transmitted.
The FPGA 850 is inserted into the docking station 850 to decode the message 930. For this reason, the FPGA is configured to detect the “start of frame,” maintain the docking station's clock synchronized to the node's clock and detects the “end of transmission.” The microcontroller 732 then accesses the message extracted by the FPGA 850 to read the message sent by the node 810. The upstream throughput of such architecture is several tens of Mbps. The length of the field 935 is used by the FPGA 850 to detect the position of the CRC field 938 and to detect the end of transmission.
The system 800 discussed above achieves an improvement of the physical transmission rate, in the node to rack direction, by using the modified SPI type protocol, managed by a standard microcontroller, without additional constraints (one signal to transmit, and CPU frequency similar to the physical transmission rate). In particular, such system can reach the maximum capabilities of the interface/transceiver, unlike the current situation where the node-docking station throughput is limited to 20 Mbps maximum with UART protocol and a minimum CPU frequency of 160 MHz. Much higher UART throughput is not supported by microcontrollers, in particular when low cost and/or low power consumption. The table shown in
The system 800 may also achieve lower Tx/Rx switching latency at each transmission and thus, better throughput. In one application, the system 800 may be configured to have automatic insertion of resynchronization words if needed. For example, the DMA 814 may be used to automatically insert resynchronization words inside messages 930 at some specific positions. Another implementation could be made in software (for example, in the CPU) instead of hardware (the DMA) but this approach is not as efficient because of the memory moves that need to be performed by the software. These advantages make it possible to read data from a node faster, without adding complexity to the node. This means cost and power optimization at the node. The software complexity is reduced by using signals or peripherals internal to the microcontroller.
In another embodiment, as illustrated in
According to another embodiment, for obtaining higher throughput from the docking station to node direction, which does not require a node hardware modification, i.e., without adding a FPGA, the following procedure may be implemented. The node 810 initiates requests (with frames) to ask the docking station to send data. In response, the docking station 840 sends frames (data) 930 to the node 810 based on the last recovery clock (current frame) and by delaying it. This delay considers transfer latency of the transceiver (back and forth) and resampling delays. The microcontroller 742 of the node 810 receives the frames on its SPI module 820. Each bit of the frame will be sampled by the SPI module's clock. The challenge for this embodiment would be to ensure that the bit sampling is reliable (in the middle of each bit).
For this embodiment, at the docking station 840, a transition from a reception period (end of frame sent by the node 810) to a transmission period is managed and performed by the FPGA 850. At the node 810, the transition from transmission to reception is implemented as now discussed with regard to
Several recovery clock algorithms may be used in the FPGA card 850. According to a first approach, the data is oversampled by a factor of 4 or more to secure the Ethernet frames transmission (up to 1538 bytes) considering that: (1) the frequency accuracy of the node's clock and the docking station's clock is +/−2.5 ppm or lower, and (2) the data jitter is lower than 20% of the symbol duration. For this approach, note that jumbo frames (up to 9 k bytes) may be transmitted by the system 800 if the clock accuracy is better than +/−1 ppm and if the data is oversampled by a factor of 6.
According to a second approach, a multiphase clock block may be used to sample the received data. An external block is in charge of detecting the “start of frame” and of selecting the phase that is closer to the middle of the bit. A minimum of 6 different phases may be used in this embodiment.
In one application, the throughput may be optimized by limiting the overhead due to the clock synchronization pattern. If the docking station's clock frequency=node's clock frequency, there is no need of inserting the synchronization pattern in the message 930. The clock synchronization patterns may be inserted by (a) dedicated algorithms of insertion of clock synchronization patterns by the microcontroller, (b) copy/paste actions performed by the CPU to insert clock synchronization patterns, and/or (c) use of a scatter-gather DMA to insert clock synchronization patterns automatically. For this last application, the CPU creates a chain of buffer descriptors, alternating message contents and synchronization patterns. This technic is useful to avoid any memory copy.
A method for exchanging data between the node and the docking station for the system 800 is now discussed with regard to
The disclosed embodiments provide a docking station and at least one node that exchange data based on two different protocols, a first protocol that is asynchronous and a second protocol that is synchronous but is modified to act as an asynchronous one. In one application, the first protocol is UART and the second protocol is SPI. The system formed by the node and the docking station uses basic microcontrollers, i.e., processors that do not have USB High Speed, 100 Mbits Ethernet MAC, or WiFi capabilities It should be understood that this description is not intended to limit the invention. On the contrary, the embodiments are intended to cover alternatives, modifications and equivalents, which are included in the spirit and scope of the invention as defined by the appended claims. Further, in the detailed description of the embodiments, numerous specific details are set forth in order to provide a comprehensive understanding of the claimed invention. However, one skilled in the art would understand that various embodiments may be practiced without such specific details.
Although the features and elements of the present embodiments are described in the embodiments in particular combinations, each feature or element can be used alone without the other features and elements of the embodiments or in various combinations with or without other features and elements disclosed herein.
This written description uses examples of the subject matter disclosed to enable any person skilled in the art to practice the same, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the subject matter is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims.