Providing information about a target object in a formatted output signal

In one aspect, an integrated circuit (IC) includes a sensor. The sensor includes a processor configured to provide speed and/or direction of a target object based on the speed of the target object; monitor for a diagnostic fault; provide information if the diagnostic fault is detected; monitor for critical faults; and provide information if a critical fault is detected and the sensor recovers from the critical fault.

BACKGROUND

As is known in the art, sensors can be used in various types of devices to measure and monitor properties of systems in a wide variety of different applications. For example, sensors have become common in products that rely on electronics in their operation, such as automobile control systems. Common examples of automotive applications are the detection of ignition timing from an engine crankshaft and/or camshaft, the detection of wheel speed for anti-lock braking systems and four-wheel steering systems and speed and direction of transmission input and output gears.

As is also known, sensors can use serial communication to send data in the form of a stream of pulses or bits over a communication channel or to a computer or other processing system. Typically, each pulse stream conveys a limited amount of data.

SUMMARY

In one aspect, an integrated circuit (IC) includes a sensor. The sensor includes a processor configured to provide speed and/or direction of a target object based on the speed of the target object; monitor for diagnostic faults; provide information if a diagnostic fault is detected; monitor for critical faults; and provide information if a critical fault is detected and the sensor recovers from the critical fault.

In another aspect, a method includes providing speed and/or direction of a target object based on the speed of the target object; monitoring for a diagnostic fault; providing information if the diagnostic fault is detected; monitoring for critical faults; and providing information if a critical fault is detected and a sensor recovers from the critical fault.

In a further aspect, an integrated circuit (IC) includes a means to provide speed and/or direction of a target object based on the speed of the target object; monitor for a diagnostic fault; provide information if the diagnostic fault is detected; monitor for critical faults; and provide information if a critical fault is detected and the sensor recovers from the critical fault.

DETAIL DESCRIPTION

Described herein are techniques to provide information (e.g., speed and direction) about a target object and diagnostic information in a formatted output signal (sometimes referred to herein as a protocol). In one example, the formatted output signal may include speed and direction of a target within one pulse. In another particular example, the formatted output signal may be configured to only include data bits when there is a diagnostic flag. In one example, a speed and direction pulse is not directly coupled to diagnostic bit timing. That is, diagnostic information can be communicated at any time a diagnostic flag is detected. In some examples, if both speed and diagnostic information is detected simultaneously then first the speed and direction information is communicated followed by a settling time and then the diagnostic flag and bits are transmitted. In one example, the formatted output signal may provide diagnostic information after a critical failure. In one example, the formatted output signal may provide signal integrity information of the sensors front end such as for example, identifying if a signal from a sensor is attenuated, identifying if the signal of the sensor is coupled to noise, identifying if the signal of the sensor is offset and so forth. In one particular example, the formatted output signal may be a word of 5-bits+1 parity bit, which allows higher frequencies without truncation. In another particular example, none, part or all of the information bits (e.g., diagnostic bits, system integrity bits) may be selected to be received.

Within the protocol described herein, there can be multiple modes and each mode can provide different detail levels of diagnostic information. In some examples, it may be desirable to provide only a diagnostic flag at higher frequencies (speeds), communicate only diagnostic flags and suppress the information bits and communicate only portions of the information bits. Within the diagnostic flags there can be multiple levels diagnostic errors, for example, soft failures and critical failures. For these examples, the pulse width of the diagnostic flag can be changed to identify the type of diagnostic error. Further, in the case of multiple diagnostic flags, the data bits following can provide different data depending on the diagnostic flag type. In some examples, true unrecoverable critical failures can occur and the output would be at or between preset DC threshold(s), identifying an unrecoverable critical failure. Within the data word the final transmitted bit may contain a parity bit. The information bits may contain, ASIL (Automotive Safety Integrity Level) diagnostic information, sensor front end signal integrity information, target vibration information, sub-circuit diagnostic information, software algorithm failures/resets.

Referring toFIG. 1A, a sensor2is disposed proximate a target object4. In response to movement of the target object4, the sensor2may generate a series of pulses, referred to herein as a pulse train, the characteristics and benefits of which will be described herein. The sensor2may be the same as or similar to the types described in each of U.S. Pat. No. 6,815,944, filed on Oct. 29, 2002, U.S. Pat. No. 7,026,808, filed on Sep. 23, 2004, U.S. Pat. No. 8,624,588, filed on Jul. 31, 2008, U.S. Pat. No. 9,151,771, filed on Dec. 2, 2013, U.S. Pat. No. 8,994,369, filed on Dec. 2, 2013, and U.S. Pat. No. 8,754,640, filed on Jun. 18, 2012, all of which are incorporated herein by reference in their entireties.

As used herein, the term “sensor” is used to describe a circuit that uses a magnetic field sensing element, generally in combination with other circuits. Sensors are used in a variety of applications, including, but not limited to, an angle sensor that senses an angle of a direction of a magnetic field, a current sensor that senses a magnetic field generated by a current carried by a current-carrying conductor, a magnetic switch that senses the proximity of a ferromagnetic object, a rotation detector that senses passing ferromagnetic articles, for example, magnetic domains of a ring magnet or a ferromagnetic target (e.g., gear teeth) where the sensor is used in combination with a back-biased or other magnet, and a sensor that senses a magnetic field density of a magnetic field.

Signal paths8a,8b(collectively referred to herein as signal path8) couple the sensor2to a receiver10. In some embodiments, the signal paths8a,8bcouple a supply voltage12and a reference point (e.g., ground)14to the sensor2as will be described further herein. In the illustrative embodiment ofFIG. 1A, the signal path8is shown provided as a two-wire line8a,8balthough any signal path or transmission line suitable for transmission of a pulse train from the sensor2to the receiver10may be used. The output signal pulse train generated by the sensor2is appropriate for use in two-wire, three-wire or n+1 wire sensor solutions.

The sensor2is disposed within a predetermined distance from the target object4to detect characteristics and features of the target object4, such as speed and direction information. The particular positioning of the sensor2with respect to the target object4will depend upon the needs of a particular application or system in which the sensor2is being used.

In some examples, the sensor2may be adapted (and in some cases, optimized) for use in a wide variety of different applications including, but not limited to, accelerometer applications, gyroscope applications, gas sensor applications, pressure sensor applications, temperature sensor applications, bolometer sensor applications, infrared sensor applications and automotive applications. The sensor2may detect a condition of an environment in which the sensor is disposed (e.g. a condition experienced by the sensor2) and generate the output signal pulse train to provide information corresponding to this condition. For example, in some embodiments, the detected condition is a change in a magnetic field. In other embodiments, the detected condition includes at least one of: a change in temperature, a change in pressure, a change in a gas level, a change in a radiation level or a change in a change in speed. The output signal pulse train may be initiated by a change in the condition that falls below or above a predetermined threshold or outside a predetermined acceptable range of values. For example, a temperature experienced by the sensor2may fall below or above a predetermined threshold or a pressure experienced by the sensor2may fall below or above a predetermined threshold. In response, the sensor2may generate the output signal pulse train to indicate this change in condition. In some embodiments, the sensor2may generate the output signal pulse train as part of a built-in test (BIT) or in response to a test probe applied to a particular device.

Referring briefly toFIG. 1C, the sensor2may sense different properties and characteristics of the environment7around the sensor2. In an embodiment, the sensor2may be configured and/or reconfigured to detect one or more of a direction value, pressure value, temperature value, acceleration value, movement value, rotation value and so forth. In other embodiments, the sensor2is configured to detect a magnetic field variation in environment7. The magnetic field variation may be used to detect a wide variety of different properties and characteristics of the environment7around the sensor2. For example, the magnetic field variation may be used to detect a direction value, rotation value, angle value, speed value and so forth.

As is known, some of the above-described magnetic field sensing elements tend to have an axis of maximum sensitivity parallel to a substrate that supports the magnetic field sensing element, and others of the above-described magnetic field sensing elements tend to have an axis of maximum sensitivity perpendicular to a substrate that supports the magnetic field sensing element. In particular, planar Hall elements tend to have axes of sensitivity perpendicular to a substrate, while metal based or metallic magnetoresistance elements (e.g., GMR, TMR, AMR) and vertical Hall elements tend to have axes of sensitivity parallel to a substrate.

Referring back toFIG. 1A, in one embodiment, the sensor2can be positioned at varying distances and oriented at various angles relative to the target object4based upon the needs of a particular application. In some embodiments, the sensor2can be mounted at any angle in a plane perpendicular to a rotation of the target object4. Sensor2may be positioned such that a plane of least one surface of the sensor2is parallel with a surface or edge of the target object4. In one example, the sensor2is configured to generate an output signal pulse train in response to detecting characteristics and mechanical features (or more simply “features”) of the target object4.

Referring toFIG. 1B, one example of the sensor2is a sensor2′. In one particular example, the sensor2′ is an integrated circuit (IC). The sensor2′ includes sensing elements102, an amplifier103, a filter105, an analog-to-digital converter (ADC)106, a digital processing core110with a memory112(e.g., EEPROM) and an output driver116. The sensor2′ also includes a voltage regulator120and an oscillator130.

In one particular example, the sensing elements102may include three Hall elements, where the Hall elements are positioned along edges or at vertices of an equilateral triangle within the sensor2. In such an embodiment, each of the Hall elements sense the magnetic profile of the target object4simultaneously but at different locations.

The amplifier103boosts the signal(s) from the sensors102which are filtered by the filter105. The ADC106converts analog signals from the filter105to digital signals and provides the digital signals to the digital processing core110. In one example, the digital processing core110operates in parallel with the functionality of the sensor2′. For example, the digital processing core110monitors for any diagnostic flags.

The digital processing core110may be a logic or state machine and may be configured to determine device state information and/or data bits. For example, the digital processing core110is configured to determine a logic value based on the signals received from the magnetic field sensing elements. The digital processing core110may be any computing device suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, the digital processing core110may also include, or be operatively coupled to receive data from or transfer data to, or both, one or more memory systems or mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. The digital processing core110and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

The digital processing core110converts the digital data to analog signals that are provide to the output driver116. In one particular example, the output driver116includes three current sources to provide three current levels, such as high, IHigh; medium, IMed; and low, ILow.

Referring back toFIG. 1A, in the illustrative embodiment, the signal paths8a,8bcouple the sensor2to the receiver10, the supply voltage12and the reference point (e.g., ground)14. In an embodiment, a first signal path8ais coupled to the supply voltage12and the receiver10and a second signal path8bis coupled to the receiver10and to the reference point14through a resistor22.

The output signal pulse train generated by the sensor2propagates to the receiver10via one or both of the signal paths8a,8b. Thus, in some embodiments, the output signal pulse train propagates to receiver10via signal path8bwhile in other embodiments, the output signal pulse train propagates to receiver10via signal path8a.

The receiver10receives the pulse train provided thereto and in response thereto determines device state information and/or data bit values (or word values). In one embodiment, the receiver10identifies a first (or delimiter) pulse in the pulse train by detecting a particular pulse characteristic (e.g., pulse amplitude or pulse width or some other pulse characteristic) and then begins measuring pulse widths of the following (non-delimiter) pulses. As will be described in detail further below, the widths of both high and low pulses are used to convey information via the pulse train.

Now referring toFIG. 2, a system illustrates the coupling between the sensor2and components of an illustrative receiver10. The receiver10includes a pair of comparison devices (e.g. comparators)16a,16band a processor20(e.g., state machine, digital block, controller and so forth). The comparison devices16a,16bhave two inputs that are coupled to the sensor2through the signal paths8. An output17a,17bof each of the comparison device16a,16bis coupled to the processor20.

In one illustrative embodiment, the first signal path8acouples the supply voltage12to a first input of the first comparison device16aand the second comparison device16b. While a pulse width pulse train such as that described inFIG. 1Cis provided to the receiver10via the signal path8b. The supply voltage12may provide a reference voltage to the first and second comparison devices16a,16b. To generate the reference voltage, the resistive elements18a,18b,18care disposed along the first signal path8abetween the supply voltage12and a first input of each of the first and second comparison devices16a,16b. In an embodiment, each resistive element18a,18b,18cprovides a voltage drop to generate and provide a predetermined reference voltage to the first and second comparison devices16a,16b.

For example, and as illustrated inFIG. 2, a first resistor18ais disposed between the supply voltage12and first input of first comparison device16a. A second resistor18bis disposed between the first input of the first comparison device16aand the first input of the second comparison device16b. Sometimes the first and second comparison devices16a,16bare known as a window comparator. In other embodiments, more advanced circuit such as an ADC may be used in place of the window comparator.

A third resistor18cis disposed between the first input of the second comparison device16band a reference point14. Resistive elements18a,18b,18cmay be sized to various values according to a particular application and the properties of the components in a corresponding sensor system.

In an embodiment, the first and second comparison devices16a,16bcompare the predetermined reference voltage to data output (i.e., an output signal pulse train) generated by the sensor2. The data output may be transmitted in different forms, including as a current value, a voltage value or a RF signal. In an embodiment, the second signal path8bprovides data output (e.g., characteristics and features associated with the target object4and/or characteristics and features associated with sensor2) from the sensor2to the first and second comparison devices16a,16b. As shown inFIG. 2, the second signal path8bcouples the sensor2to a second input of each of the first and second comparison devices16a,16b. In other embodiments, the first signal path8aprovides data output from the sensor2to the first and second comparison devices16a,16band the second signal path8bcouples the supply voltage12to the first and second comparison device16a,16b.

In some embodiments, the second signal path8bis coupled to ground (i.e., reference point14) through a load resistor22. The load resistor22is disposed between a node of the second signal path8band the reference point14. The node of the second signal path8bis disposed between the output of the sensor2and the second input of the first and second comparison devices16a,16b. The load resistor22may be used to modify or set an output value of the sensor2that is provided to the second input of the first and second comparison devices16a,16bto a predetermined level. For example, in some embodiments, the load resistor22provides a voltage drop corresponding to a product of an output of the sensor2and a value of the resistor22. The load resistor22may be sized to various values according to a particular application and the properties of the components in a corresponding sensor system.

InFIG. 2, the comparison devices16a,16bare arranged to form a window comparator. However, it should be appreciated that comparators may be organized in other arrangements depending upon a particular application. The first and second comparison devices16a,16bcompares two inputs (e.g., two voltages, two current, two radio frequency (RF) signals) and output a digital signal. Outputs of the first and second comparison devices16a,16bare coupled to the processor20. The processor20can be configured to compare the output17aof first comparison device16ato the output17bof second comparison device16b.

The processor20may be a logic or state machine and be configured to receive the outputs17a,17band determine device state information and/or data bits. For example, the processor20is configured to determine a logic value for each of the measured widths. The processor20may be any computing device suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, the processor20can also include, or be operatively coupled to receive data from or transfer data to, or both, one or more memory systems or mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. The processor20and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

Referring toFIGS. 3A to 3C, an example of a process to format an output (e.g., a signal path8aor signal path8b) is a process300. In one particular example, the process300is performed by the digital processing core110.

Process300determines if there is a critical failure (302). For example, the digital processing core110determines if there is a critical failure.

If there is not a critical failure, process300determines if the target is moving at a high speed (306). For example, the digital processing core110determines if the target object4is turning faster than 1 kHz.

If the target is not at a high speed, process300transmits speed and direction (312). Process determines if there is a diagnostic issue (318). If there is not a diagnostic issue, process300repeats processing block302.

If there is a diagnostic issue, process300determines if the diagnostic issue occurred during the speed/direction message (322). If the diagnostic occurred during the speed/direction message, process300finishes transmitting the speed/direction message (328). Process300sends a diagnostic flag and information bits (332). If the diagnostic occurred before or after the speed/direction message, process300sends a diagnostic flag and information bits (332). Process300repeats processing block302.

If the target is at high speed, process300transmits the speed message (336). For example, the digital processing core110determines if the target object4is turning faster than 1 kHz. In another example, the digital processing core110determines if the target object4is turning faster than 1 kHz but less than or equal to 10 kHz.

Process300determines if there is a critical failure (342). If there is not a critical failure, process determines if there is a diagnostic issue (348). If there is not a diagnostic issue, process300repeats processing block302.

If there is a diagnostic issue, process300determines if the diagnostic issue occurred during the speed message (352). If the diagnostic occurred during transmission of the speed message, process300finishes transmitting the speed message (358). Process300sends a diagnostic flag and information bits (362). If the diagnostic occurred before or after the speed/direction message, process300sends a diagnostic flag and information bits (332). Process300repeats processing block302.

If there is a critical failure, process300transmits a critical failure flag (376). Process300determines if there has been a recovery from the critical failure (382). If there has not been a recovery, process300repeats processing blocks376and382.

If there has been a recovery from the failure, process300sends data received after critical failure (388) and send the information bits (392).

FIG. 4Adepicts a timing window400for low speed without any diagnostic faults or critical faults. In one example, a low speed is when the target has a speed less than or equal to 1 kHz. The timing window400includes a speed/direction message402. Since there are no critical or diagnostic fault, only speed and direction are transmitted. The speed/direction pulse information is transmitted when the speed/direction message402transitions from IMedto IHighand when the speed/direction message402transitions from IHighback to IMed. The speed is determined from two speed pulse edge to edge timing. The direction is measured from the speed pulse's pulse width. In one particular example, if the pulse is t3−t1in duration, the target object4is turning in a reverse direction and if the pulse is t2−t1in duration the target object4is turning in the forward direction.

FIG. 4Bdepicts a timing window420for low speed when a diagnostic fault is detected before a speed/direction pulse is sent. No speed/direction is transmitted. In one particular example, the diagnostic flag422is transmitted going from IMedto ILowand from ILowto IMed. In one particular example, the diagnostic flag422has a t6−t1time duration. After a settling time424(e.g., t8−t6time duration), the information bits426are transmitted. In one example, a diagnostic flag has a duration of 250 microseconds.

FIG. 4Cdepicts a timing window440for low speed when a diagnostic fault is detected during a speed/direction pulse transmission. The speed/direction pulse402is transmitted first (e.g., going from IMedto IHighand from IHighto IMed) and then the diagnostic flag422(e.g., going from IMedto ILowand from ILowto IMed). The information bits426are transmitted after a settling time424.

FIG. 5Adepicts a timing window500for high speed without any diagnostic faults or critical faults. In one example, a high speed is when the target has a speed greater than 1 kHz. In another example, a high speed is when the target has a speed greater than 1 kHz but less than or equal to 10 kHz. The timing window500includes a speed/direction message502. Since there are no critical or diagnostic fault, only the speed pulse502is transmitted. The speed/direction pulse information is transmitted when the speed/direction message502transitions from IMedto IHighand when the speed/direction message502transitions from IHighback to IMed.

FIG. 5Bdepicts a timing window520for high speed when a diagnostic fault is detected before a speed pulse is sent. No speed pulse is transmitted. In one particular example, the diagnostic flag522is transmitted going from IMedto ILowand from ILowto IMed. After a settling time524, the information bits526are transmitted.

FIG. 5Cdepicts a timing window540for high speed when a diagnostic fault is detected during a speed pulse transmission. The speed pulse502is transmitted first (e.g., going from IMedto IHighand from IHighto IMed) and then the diagnostic flag522(e.g., going from IMedto ILowand from ILowto IMed). The information bits526are transmitted after a settling time524.

FIG. 6depicts a timing window600after critical failure and recovery. In one particular example, the critical failure flag604is transmitted going from IMedto ILow. After recovery, data606is sent followed by the information bits626.

FIG. 7Adepicts one example of information bits that may be used such as diagnostic bits, integrity bits and a parity bit. In this particular example, there are three diagnostic bits followed by two system integrity bits followed by one parity bit. In this particular example, each bit has a duration of 60 microseconds.

FIG. 7Bdepicts an example of a table720denoting diagnostic bits (e.g., three diagnostic bits). In this particular example, diagnostic bits0,0,0means no error detected; diagnostic bits0,0,1indicates a first safety goal (safety goal 1) is not being achieved; diagnostic bits0,1,0indicates a second safety goal (safety goal 2) is not being achieved; diagnostic bits1,0,0indicates a third safety goal (safety goal 3) is not being achieved; and diagnostic bits1,1,1is reserved to indicate something not yet designated.

In one particular example, the safety goal 1 indicates that a number of pulses received is too few (i.e., below a required minimum of pulses). In another particular example, the safety goal 2 indicates that a number of pulses received is too many (i.e., above a required maximum of pulses). In a further example, the safety goal 3 indicates that an invalid direction has been detected.

FIG. 7Balso depicts an example of a table740tables denoting system integrity bits (e.g., two system integrity bits). In this particular example, system integrity bits0,0means no issue detected; system integrity bits0,1indicates there is a marginal signal issue detected; system integrity bits1,0indicates there is an at signal limit issue detected; and system integrity bits1,1indicates there is a vibration flag issue detected.

As used herein, the term “processor” is used to describe an electronic circuit that performs a function, an operation, or a sequence of operations. The function, operation, or sequence of operations can be hard coded into the electronic circuit or soft coded by way of instructions held in a memory device. A “processor” can perform the function, operation, or sequence of operations using digital values or using analog signals.

In some embodiments, the “processor” can be embodied in an application specific integrated circuit (ASIC), which can be an analog ASIC or a digital ASIC. In some embodiments, the “processor” can be embodied in a microprocessor with associated program memory. In some embodiments, the “processor” can be embodied in a discrete electronic circuit, which can be an analog or digital. The term “module” is sometimes used to describe a “processor.”

A processor can contain internal processors or internal modules that perform portions of the function, operation, or sequence of operations of the processor. Similarly, a module can contain internal processors or internal modules that perform portions of the function, operation, or sequence of operations of the module.

The processes (e.g., processes300) described herein may be implemented in hardware, software, or a combination of the two. The processes described herein may be implemented in computer programs executed on programmable computers/machines that each includes a processor, a non-transitory machine-readable medium or other article of manufacture that is readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device to perform any of the processes described herein and to generate output information.

The system may be implemented, at least in part, via a computer program product, (e.g., in a non-transitory machine-readable storage medium such as, for example, a non-transitory computer-readable medium), for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). Each such program may be implemented in a high level procedural or object-oriented programming language to work with the rest of the computer-based system. However, the programs may be implemented in assembly, machine language, or Hardware Description Language. The language may be a compiled or an interpreted language and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. A computer program may be stored on a non-transitory machine-readable medium that is readable by a general or special purpose programmable computer for configuring and operating the computer when the non-transitory machine-readable medium is read by the computer to perform the processes described herein. For example, the processes described herein may also be implemented as a non-transitory machine-readable storage medium, configured with a computer program, where upon execution, instructions in the computer program cause the computer to operate in accordance with the processes. A non-transitory machine-readable medium may include but is not limited to a hard drive, compact disc, flash memory, non-volatile memory, volatile memory, magnetic diskette and so forth but does not include a transitory signal per se.

The processes described herein are not limited to the specific examples described. For example, the process300is not limited to the specific processing order ofFIGS. 3A to 3Crespectively. Rather, any of the processing blocks ofFIGS. 3A to 3Cmay be re-ordered, combined or removed, performed in parallel or in serial, as necessary, to achieve the results set forth above.

The processing blocks (for example, in the process300) associated with implementing the system may be performed by one or more programmable processors executing one or more computer programs to perform the functions of the system. All or part of the system may be implemented as, special purpose logic circuitry (e.g., an FPGA (field-programmable gate array) and/or an ASIC (application-specific integrated circuit)). All or part of the system may be implemented using electronic hardware circuitry that include electronic devices such as, for example, at least one of a processor, a memory, programmable logic devices or logic gates.