Patent Description:
The Singled Edge Nibble Transmission (SENT) protocol is a one-wire, serial communication protocol used in a variety of applications. The SENT protocol relies on a passive pull-up mechanism (such as a pull-up resistor) to maintain the one-wire bus at a logic-high voltage level. To transmit data, devices communicating on the bus typically drive the bus low, then release the bus and allow the pull-up resistor to pull the bus high. The rise-time of a low-to high transition on the bus may be a function of the supply voltage, the value of the pull-up resistor (which can vary from 10kΩ to 55kΩ according to the SENT specification), any protective devices (active or passive), and any capacitance (parasitic or otherwise) coupled to the bus.

<CIT> discloses a device, such as a transceiver or a sensor, having an interface circuit which terminates a signal line with an impedance matching an impedance of the signal line.

<CIT> discloses methods, devices and systems where, to generate a pulse, a data line is actively driven to a first voltage followed by actively driving the data line to a second voltage.

In one aspect, the invention provides a communication system as defined in claim <NUM>.

In another aspect, the invention provides a method of communicating on a transmission line, as defined in claim <NUM>.

The foregoing features may be more fully understood from the following description of the drawings. The drawings aid in explaining and understanding the disclosed technology. Since it is often impractical or impossible to illustrate and describe every possible embodiment, the provided figures depict one or more exemplary embodiments. Accordingly, the figures are not intended to limit the scope of the invention. Like numbers in the figures denote like elements.

Digital communication on a serial bus generally may be achieved by driving two voltage states on a communication bus. This may be the case for single-ended or differential buses. In this disclosure, one of these voltage states may be referred to as "high" and/or "logic-high," and the other state may be referred to as "low" and/or "logic-low. " According to the Singled Edge Nibble Transmission (SENT) protocol, the high state corresponds to 5V and the low state corresponds to 0V. In this disclosure, "high" and "low" may refer to the SENT protocol high and low states, or to any two voltage states that can be used for digital communication.

The SENT protocol is a one-wire, serial communication protocol used in a variety of applications. The SENT protocol relies on a passive pull-up mechanism (such as a pull-up resistor) to maintain the one-wire bus at a logic-high voltage level. To transmit data, devices communicating on the bus typically drive the bus low, then release the bus and allow the pull-up resistor to pull the bus high. The rise-time of a low-to high transition on the bus may be a function of the supply voltage, the value of the pull-up resistor, and any capacitance (parasitic or otherwise) coupled to the bus. In certain applications, bus speed may be limited by slow rise times during transmissions.

<FIG> is a block diagram of a system <NUM> for detecting a magnetic field <NUM>. In embodiments, the magnetic field may be produced by target <NUM>. In other embodiments, other types of targets may be used. System <NUM> includes a magnetic field sensor <NUM> placed adjacent to target <NUM> so that a magnetic field <NUM> can be sensed by magnetic field sensor <NUM>.

In an embodiment, target <NUM> is a magnetic target and produces magnetic field <NUM>. In another embodiment, magnetic field <NUM> is generated by a magnetic source (e.g. a back-bias magnet or electromagnet) that is not coupled to target <NUM>. In such embodiments, target <NUM> may be a ferromagnetic target that does not itself tend to generate a magnetic field. In this case, as target <NUM> moves through or within magnetic field <NUM>, it causes perturbations to magnetic field <NUM> that can be detected by magnetic field sensor <NUM>.

Magnetic field sensor <NUM> may be coupled to a computer <NUM>, which may include a general-purpose processor executing software or firmware, a custom processor, or an electronic circuit for processing output signal 104a from magnetic field sensor <NUM>. Output signal 104a may provide information about the speed, direction, and/or position of target <NUM> to computer <NUM>, which may then perform operations based on the received information.

In an embodiment, computer <NUM> is an automotive computer installed in a vehicle and target <NUM> is, or is coupled to, a moving part within the vehicle, such as a transmission shaft, a brake rotor, pedal position, steering column torque, etc. Magnetic field sensor <NUM> can detect the speed, position, and/or direction of target <NUM> and, in response, computer <NUM> may control automotive functions (like all-wheel drive, ABS, throttle valve control, power steering motor control, etc.).

In embodiments, target <NUM> may be a gear having teeth <NUM>. In other embodiments, target <NUM> may be a linear target that may move laterally with respect to magnetic field sensor <NUM>.

Sensor <NUM> may communicate with computer <NUM> using a serial communication protocol. For example, sensor <NUM> may communicate using a single-line protocol, such as the SENT protocol, the I<NUM>C protocol, or the like. In this case, signal 104a may travel on a single wire bus <NUM>. In other embodiments, other protocols may be used and signal 104a may travel over a differential wire or a bus.

<FIG> depicts two communication devices coupled to bus <NUM>: magnetic field sensor <NUM> and computer <NUM>. One device (such as computer <NUM>) may act as a host or master device and the other (such as magnetic field sensor <NUM>) may act as a slave device. In other words, computer <NUM> may send data requests to magnetic field sensor <NUM>, which will respond by sending data to computer <NUM>. A host device may initiate communications and a slave device will respond to requests from the host device. In other applications, magnetic field sensor <NUM> may transmit data over bus <NUM> without first receiving a request. Of course, other query/response schemes may be used.

Although <FIG> shows two devices coupled to bus <NUM>, other numbers of devices may be coupled to and communicate on bus <NUM>. In some cases, multiple sensors may be coupled to and act as slave devices on bus <NUM>. Computer <NUM> may be configured to address one or more slave devices coupled to bus <NUM>. <CIT>), <CIT>), and <CIT>) provide examples of communication schemes to address multiple slave devices.

Referring to <FIG>, communication system <NUM> includes communication devices <NUM>, <NUM>, and <NUM> coupled to a communication bus <NUM>. A host device <NUM> is also coupled to communication bus <NUM>. Communication devices <NUM>, <NUM>, and <NUM> may be any circuit capable of communicating on bus <NUM>. In embodiments, communication devices <NUM>, <NUM>, and/or <NUM> may be sensors similar to or the same as magnetic field sensor <NUM>. Host device <NUM> may be the same as or similar to computer <NUM>. Bus <NUM> may be a one-wire bus the same as or similar to bus <NUM>.

In embodiments, communication devices <NUM>, <NUM>, <NUM> and host device <NUM> communicate on bus <NUM> according to aspects of the SENT protocol.

System <NUM> may include a pull-up resistor <NUM> coupled between bus <NUM> and a power source <NUM>. When the devices coupled to bus <NUM> are not driving bus <NUM> low, pull-up resistor <NUM> may pull the voltage on bus <NUM> up to the voltage level of the power source <NUM>. This may correspond to a logic-high voltage level. In system <NUM>, pull-up resistor <NUM> is shown as an external pull-up resistor (i.e. it is external to the communication devices). In other embodiments, one or more of communication devices <NUM>, <NUM>, <NUM> and host device <NUM> may include an internal pull-up resistor coupled to an internal or external power rail that pulls the voltage on bus <NUM> up to a logic-high.

Communication device <NUM> may include an active pull-down element <NUM> coupled between bus <NUM> and a voltage reference <NUM>. The voltage reference may be ground, or any other voltage reference that can act as a logic-low voltage level for bus <NUM>. Active pull-down element <NUM> may be a controlled current source that can direct current from <NUM> to the logic-low reference voltage. In an embodiment, active pull-down element <NUM> is a transistor, such as a field-effect transistor (FET).

Communication device <NUM> may also include an active pull-up element <NUM> coupled between bus <NUM> and a voltage source <NUM>. Voltage source <NUM> may be coupled to or may be the same as voltage reference <NUM>. In general, voltage reference <NUM> may be any voltage reference that can act as a logic-high voltage level for bus <NUM>. Active pull-up element <NUM> may be a controlled current source that can direct current from the logic-high reference to bus <NUM>. In an embodiment, active pull-up element <NUM> is a transistor, such as a field-effect transistor (FET).

When bus <NUM> is idle (i.e. when no device is driving data or other information onto bus <NUM>), bus <NUM> may be held in a logic-high state by pull-up resistor <NUM>. Additionally or alternatively, when bus <NUM> is idle, communication device <NUM> may drive bus <NUM> to a logic-high state by placing active pull-up element <NUM> into a conducting state.

Communication device <NUM> may include a communication circuit <NUM> coupled to active pull-up element <NUM> and active pull-down element <NUM>. Communication circuit <NUM> may be configured to activate and deactivate active pull-up element <NUM> and active pull-down element <NUM>. For example, if active pull-up element <NUM> and active pull-down element <NUM> are FETs, communication circuit <NUM> may be coupled to the gate terminals of the FETs to control the FETs. In embodiments, communication circuit <NUM> may drive the FETs so they act like controlled current sources (i.e. activating the FETs so they conduct and pull the bus <NUM> to a respective voltage rail and deactivating the FETs so they act like open circuits).

Communication circuit <NUM> may include logic and/or control circuitry such as a state machine that can activate and deactivate active pull-up element <NUM> and active pull-down element <NUM> to drive the voltage on bus <NUM> up and down during data transmission. In other embodiments, communication circuit <NUM> may include analog circuits such as current mirrors that can activate and deactivate active pull-up element <NUM> and active pull-down element <NUM> to drive the voltage on bus <NUM> up and down during data transmission.

Active pull-up element <NUM> may drive bus <NUM> to a logic-high voltage level faster than pull-up resistor <NUM>. For example, if communication circuit <NUM> controls active pull-up element <NUM> so it acts like a closed switch, the resistance between node <NUM> and bus <NUM> may be very small, potentially smaller than the resistance of pull-up resistor <NUM>. Additionally, if active pull-up element <NUM> is in a conducting state (i.e. not in an open-switch state), then both active pull-up element <NUM> and pull-up resistor <NUM> will drive bus <NUM> to a voltage high level. In these cases, as active pull-up element <NUM> drives bus <NUM> high, the rise time of the voltage on the bus <NUM> may be smaller than the rise time that would have occurred if only pull-up resistor <NUM> were driving bus <NUM> high.

Communication circuit <NUM> may include an input pin or terminal <NUM> coupled to bus <NUM> so that communication circuit <NUM> can detect a logic-high state and a logic-low state on bus <NUM>. Input pin <NUM> may be coupled to a logic gate, or other circuit internal to communication circuit <NUM> that can process a logic signal indicating if bus <NUM> is in a logic-high or logic-low state. Communication circuit <NUM> can use input pin <NUM> to determine if another communication device, such as communication device <NUM>, <NUM>, or host device <NUM>, is communicating on bus <NUM>.

In embodiments, active pull-down element <NUM> may be able to drive the bus <NUM> harder than active pull-up element <NUM> so that, if both devices <NUM> and <NUM> are active, bus <NUM> will be pulled low to a logic-low level. This may be accomplished by choosing a FET so that active pull-down element <NUM> can sink more current than active pull-up element <NUM> can source, or by controlling the gate levels of <NUM> and <NUM> to the effect that <NUM> will sink more current than <NUM> will source. In embodiments, active pull-down element <NUM> is configured to sink more current than may be sourced by multiple active pull-up elements <NUM>. Thus, if multiple communication devices are simultaneously driving bus <NUM>, a single active pull-down element <NUM> may drive bus <NUM> low to a logic-low voltage level.

Active pull-down element <NUM> may be configured to sink more current than active pull-up element <NUM> if, for example, active pull-down element <NUM> comprises a FET which, when in a conducting state, can sink more current than one or more active pull-up elements <NUM>. Additionally or alternatively, communication circuit <NUM> may be configured to drive the gate node of active pull-down element <NUM> so that active pull-down element <NUM> is in a conducting state and drive the gate node of active pull-up element <NUM> so that active pull-up element <NUM> operates in the linear/resistive region. The current through active pull-down element <NUM> may also be controlled by the voltage across the drain and source nodes of the FET.

Referring to <FIG>, timing diagram <NUM> includes voltage waveform <NUM>, which may represent the voltage on bus <NUM> during data transmission. During time period <NUM>, active pull-down element <NUM> may be "on" (i.e. in a conducting state) and may pull the voltage on bus <NUM> low. Subsequently, active pull-down element <NUM> may turn off, and active pull-up element <NUM> may turn on to drive the voltage on bus <NUM> high, as shown by rising edge <NUM>. During time period <NUM>, active pull-up element <NUM> may remain on to hold the voltage on bus <NUM> high.

Subsequently, active pull-down element <NUM> may turn on, and active pull-up element <NUM> may turn off, to drive the voltage on bus <NUM> low, as shown by falling edge <NUM>. During time period <NUM>, active pull-down element <NUM> may remain on, holding the voltage on bus <NUM> low. Again, active pull-down element <NUM> may turn off, and active pull-up element <NUM> may turn on, to drive the voltage on bus <NUM> high, as shown by rising edge <NUM>.

In this example, rising edge <NUM> may indicate the end of a data transmission by communication device <NUM>. Subsequently, during time period <NUM>, active pull-up element <NUM> may continue to drive bus <NUM> high. Additionally, multiple communication devices such as communication devices <NUM>, <NUM>, and host device <NUM> may actively drive bus <NUM> high during time period <NUM>. Alternatively, none of the communication devices may drive bus <NUM> high during time period <NUM>. Instead, bus <NUM> may be pulled high by pull-up resistor <NUM>.

At some point during time period <NUM>, another device may signal initiation of a data transmission by pulling bus <NUM> low, as shown by falling edge <NUM>. In some embodiments, if active pull-up device <NUM> is driving bus <NUM> when the other device initiates data transmission, communication circuit <NUM> may detect falling edge <NUM> initiated by the other device. In this case, communication device <NUM> may turn active pull-up element <NUM> off, so that it no longer drives bus <NUM> high, during the other device's data transmission. In other embodiments, active pull-up element <NUM> may continue to drive bus <NUM> high during the other device's data transmission.

By actively driving bus <NUM> high during rising edges <NUM> and <NUM>, active pull-up element <NUM> may provide a faster rise time than would otherwise be achieved if only pull-up resistor <NUM> were pulling bus <NUM> high.

In embodiments, communication circuit <NUM> may include various settings for driving bus <NUM> high. These settings may be stored in a memory, such as a ROM, EEPROM, one or more registers, or other type of memory within communication device <NUM>. Communication circuit <NUM> may access these settings during operation. Other settings may also be stored in memory including, but not limited to, a setting to enable active pull-up, a setting to dictate a particular communication protocol, a setting to determine if data is ready to transmit, a setting to determine if an external trigger was detected, etc..

For example, communication circuit <NUM> accesses a "push" setting. If push is enabled, communication circuit <NUM> may drive bus <NUM> high by activating active pull-up element <NUM> whenever a high state is required during data transmission. If push is disabled, communication circuit <NUM> may allow pull-up resistor <NUM> to pull the bus up without activating active pull-up element <NUM>. Communication circuit <NUM> may also access a "post-push" setting. If "post-push" is enabled, communication circuit <NUM> may hold bus <NUM> high by activating active pull-up element <NUM> after a data transmission is completed. If "post-push" is disabled, communication circuit <NUM> may allow pull-up resistor <NUM> to hold bus <NUM> high after a data transmission without activating active pull-up element <NUM>. Alternatively, if "post-push" is enabled, communication circuit <NUM> may hold bus <NUM> high by activating active pull-up element <NUM> during each high state of bus <NUM> during and after data transmission.

Referring to <FIG>, flow chart <NUM> provides an example of operation of communication circuit <NUM>. In embodiments, flow chart <NUM> may be implemented by a state machine, by logic circuits, by software executed by a processor, or by any other circuitry to control the behavior of communication circuit <NUM>. Flow chart <NUM> illustrates operation for normal SENT transmissions and for addressable SENT or shared SENT transmissions. Examples of addressable and shared SENT protocols can be found in <CIT>), <CIT>), and <CIT>).

Referring also to <FIG>, flowchart <NUM> begins in box <NUM>. In box <NUM>, communication circuit <NUM> checks to determine if active pull-up of bus <NUM> should be enabled during circuit start-up by, for example, accessing a setting stored in memory. If so, communication circuit <NUM> proceeds to box <NUM>. If not, communication circuit proceeds to box <NUM>. In box <NUM>, communication circuit <NUM> determines if active pull-up of bus <NUM> should be enabled. If so, communication circuit <NUM> may turn current source <NUM> on in box <NUM> If not, communication circuit <NUM> may turn current source <NUM> off in box <NUM>.

In box <NUM>, communication circuit <NUM> may determine if the protocol being used for transmission is the SENT protocol, or it is addressable SENT or shared SENT. These may differ in regards to whether the SENT pin is also used to receive triggers from the host. Instead of SENT, Addressable SENT or shared SENT, in other implementations, other protocols may be used. Communication circuit <NUM> may determine the protocol by, for example, accessing a setting stored in memory, as described above. If the SENT protocol is to be used, or another protocol in which no external input is expected from the serial output pin, communication circuit <NUM> may proceed to box <NUM> to wait until data is ready to transmit. When data is ready to transmit, communication circuit <NUM> may transmit data according to the SENT protocol, as shown in box <NUM>.

The SENT or other serial transmission in box <NUM> may be the same as or similar to waveform <NUM> in <FIG>. During rise times, communication circuit <NUM> may activate active pull-up element <NUM> to drive bus <NUM> high, as described above. At times when bus <NUM> is high, active pull-up element <NUM> may hold bus <NUM> high, as described above.

If, in box <NUM>, communication circuit <NUM> determines that the protocol being used in addressable or Shared SENT, communication circuit <NUM> may monitor input pin <NUM> in box <NUM>. During communication using addressable or Shared SENT, communication circuit <NUM> may wait to detect a trigger or address in box <NUM>. Communication circuit <NUM> may then check, in box <NUM>, to determine if the trigger or address was intended for communication device <NUM>. If so, communication circuit <NUM> may proceed to box <NUM> to enable active pull-up device <NUM>.

Communication circuit <NUM> may transmit data onto bus <NUM> according to the addressable or shared SENT protocol. The SENT transmission in box <NUM> may be the same as or similar to waveform <NUM> in <FIG>. During rise times, communication circuit <NUM> may activate active pull-up element <NUM> to drive bus <NUM> high, as described above. At times when bus <NUM> is high, active pull-up element <NUM> may hold bus <NUM> high, as described above, as shown in box <NUM>.

This disclosure refers to a communication system having an active pull-up resistor, active pull-up elements, and active pull-down elements that drives a communication bus However, one skilled in the art will recognize that the systems and techniques described here could be adapted to communication busses with a pull-down resistor. Also, although the embodiments listed above refer to the SENT protocol, the systems and techniques above may be used with other communication protocols.

Claim 1:
A communication system (<NUM>) comprising:
a transmission line (<NUM>); and
at least one slave device (<NUM>) comprising:
an active pull-down element (<NUM>) coupled to the transmission line to pull a voltage on the transmission line low during transmission; and
an active pull-up element (<NUM>) coupled to the transmission line to pull the voltage on the transmission line high during or after transmission,
wherein the active pull-down element (<NUM>) is configured to sink more current than may be sourced by multiple active pull-up elements (<NUM>), and
the communication system further comprises a first communication circuit (<NUM>) configured to:
transmit data onto the transmission line according to a SENT protocol by activating the pull-down element (<NUM>) and the pull-up element (<NUM>);
activate the pull-up element (<NUM>) to produce a rising edge within the transmission; and
activate the pull-up element (<NUM>) during a time period following the rising edge within the transmission to improve immunity to interference on the transmission line, after the rising edge within the transmission is produced.