Patent Description:
A telematics system may gather asset data using a telematics device. The telematics device may be integrated into or located onboard the asset. The asset may be a vehicle ("vehicular asset") or some stationary equipment. The telematics device may collect the asset data from the asset through a data connection with the asset. In the case of a vehicular asset, the telematics device may gather the asset data through an onboard diagnostic port (OBD). The gathered asset data may include engine revolutions-per-minute (RPM), battery voltage, fuel level, tire pressure, oil temperature, or any other asset data available through the diagnostic port. Additionally, the telematics device may gather sensor data pertaining to the asset via sensors on the telematics device. For example, the telematics device may have temperature and pressure sensors, inertial measurement units (IMU), optical sensors, and the like. Furthermore, the telematics device may gather location data pertaining to the asset from a location module on the telematics device. When the telematics device is coupled to the asset, the gathered sensor data and location data pertain to the asset. The gathered asset data, sensor data and location data may be received and recorded by a technical infrastructure of the telematics system, such as a telematics server, and used in the provision of fleet management tools, for telematics services, or for further data analysis. Patent publications <CIT> and <CIT> discuss information that is useful for understanding the background of the invention.

Accordingly, the present invention discloses methos and devices according to the appended claims. In one aspect of the present disclosure, there is provided a method, by a telematics device, the method for handling power faults in an input/output expander coupled to a telematics device via an input/output expander interface of the telematics device. The method comprises detecting, bay a power protection module on the input/output expander interface, a power fault condition on the input/output expander interface, reporting the power fault condition to the telematics device and power-cycling, by the telematics device, the input/output expander interface by a plurality of power cycles having a plurality of progressively increasing power-off durations. After each power cycle of the plurality of power cycles, the method includes checking the power fault condition and permanently powering off the input/output expander interface if the power fault condition is detected and a current power-off duration of the plurality of progressively increasing power-off durations has reached a power-off duration limit.

Powering off the input/output expander may include setting an indication in a persistent storage that the input/output expander interface has been powered off due to a power fault.

The method may further comprise clearing the indication that the input/output expander interface has been powered off due to the power fault condition in response to detecting that the input/output expander has been unplugged from the input/output expander interface.

The method may further comprise checking the indication in the persistent storage upon powering up of the telematics device and refraining from powering up the input/output expander interface in response to determining that the input/output expander interface has been powered off due to the power fault condition.

Detecting the power fault condition may comprise detecting by a power protection module of the input/output expander interface one of an overcurrent condition, an overvoltage condition, and a reverse current condition.

Progressively increasing the power-off durations may comprise increasing the current power-off duration between two successive power cycles.

Detecting the power fault condition on the input/output expander interface may comprise receiving an indication from a power protection module of the power fault condition.

Receiving the indication from the power protection module may comprise receiving one of: a signal change on a pin or an interrupt signal.

In another aspect of the present disclosure, there is provided a telematics device couplable to an input/output expander. The telematics device comprises a controller and an input/output expander interface coupled to the controller, the input/output expander interface for coupling the telematics device to the input/output expander, the input/output expander interface comprising a power protection module. The telematics device further comprises a memory coupled to the controller. The memory is storing machine-executable programming instructions which when executed by the controller configure the telematics device to in response to detecting, by the power protection module, a power fault condition on the input/output expander interface, power-cycle the input/output expander interface by a plurality of power cycles having progressively increasing power-off durations, after each power cycle of the plurality of power cycles, check the power fault condition, and permanently power off the input/output expander interface if the power fault condition is detected and a current power-off duration of the progressively increasing power-off durations has reached a power-off duration limit.

The machine-executable programming instructions which configure the telematics device to power off the input/output expander interface may comprise machine-executable programming instructions which configure the telematics device to set an indication in a persistent storage that the input/output expander interface has been powered off due to a power fault.

The machine-executable programming instructions may further comprise machine-executable programming instructions which configure the telematics device to clear the indication that the input/output expander interface has been powered off due to the power fault condition in response to detecting that the input/output expander has been unplugged from the input/output expander interface.

The machine-executable programming instructions may further comprise machine-executable programming instructions which configure the telematics device to check the indication in the persistent storage upon powering up of the telematics device and refrain from powering up the input/output expander interface in response to determining that the input/output expander interface has been powered off due to the power fault condition.

The machine-executable programming instructions which configure the telematics device to detect the power fault condition may comprise machine-executable programming instructions which configure the telematics device to detect one of: an overcurrent condition, an overvoltage condition, and a reverse current condition.

The machine-executable programming instructions which configure the telematics device to progressively increase the progressively increasing power-off durations may comprise machine-executable programming instructions which configure the telematics device to increase the current power-off duration between two successive power cycles.

The machine-executable programming instructions which configure the telematics device to detect the power fault condition on the input/output expander interface may comprise machine-executable programming instructions which configure the telematics device to receive an indication from a power protection module of the power fault condition.

The machine-executable programming instructions which configure the telematics device to receive the indication from the power protection module may comprise machine-executable programming instructions which configure the telematics device to receive one of: a signal change on a pin or an interrupt signal.

In yet another aspect of the present disclosure, there is provided a method by a telematics device having an input/output (I/O) expander coupled thereto via an I/O expander interface of the telematics device. The method comprises setting an I/O expander power-off duration to an initial value and powering on an I/O expander interface of the telematics device. In response to detecting a power fault at the I/O expander interface, the method includes powering off the I/O expander interface for the I/O expander power-off duration, and increasing the power-off duration. The method further includes repeating the steps of powering on, powering off, increasing the power-off duration, while the I/O expander power-off duration is not greater than the power-off duration limit. The method further includes permanently powering off the I/O expander interface when the I/O expander power-off duration is greater than the power-off duration limit.

In some embodiments, increasing the power-off duration comprises doubling the power-off duration.

In some embodiments, increasing the power-off duration comprises quadrupling the power-off duration.

In some embodiments, detecting the power fault comprises receiving an interrupt signal from a power protection module of the I/O expander interface.

In some embodiments, detecting the power fault comprises polling for a signal from a power protection module of the I/O expander interface.

In some embodiments, the method further includes receiving a request for I/O expander data from a telematics server.

In some embodiments, the method further includes sending to the telematics server an indication that the I/O expander data will not be delivered due to the power fault if the I/O expander interface has been permanently powered off.

In some embodiments, the method further includes sending to the telematics server an indication to retry the request after the I/O expander power-off duration.

In some embodiments, powering on the I/O expander interface comprises configuring a power protection module to turn on a power signal provided to a power pin on a hardware port of the I/O expander interface.

In some embodiments, powering off the I/O expander interface comprises configuring a power protection module to turn off a power signal provided to a power pin on a hardware port of the I/O expander interface.

In a further aspect of the present disclosure, there is provided a telematics device including a controller, an input/output expander coupled to the controller, and a memory coupled to the controller. The memory stores machine-executable programming instructions, which when executed by the controller configure the telematics device to set an I/O expander power-off duration to an initial value, power on the I/O expander interface, and in response to detecting a power fault at the I/O expander interface: power off the I/O expander interface for the I/O expander power-off duration and increase the I/O expander power-off duration. The machine-executable programming instructions further configure the telematics device to permanently power off the I/O expander interface when the I/O expander power-off duration is greater than a power-off duration limit. The machine-executable programming instructions further configure the telematics device to repeat the steps of powering on the I/O expander, powering off the I/O expander in response to detecting the power fault, permanently powering off the I/O expander when the I/O expander power-off duration is greater than a power-off duration limit, when the I/O expander power-off duration is not greater than the power-off duration limit.

In some embodiments, the machine-executable programming instructions which increase the power-off duration comprise machine-executable programming instructions which double the power-off duration.

In some embodiments, the machine-executable programming instructions which increase the power-off duration comprise machine-executable programming instructions which quadruple the power-off duration.

In some embodiments, the I/O expander interface comprises a power protection module and the machine-executable instructions programming further comprise machine-executable programming instructions for handling an interrupt signal from the power protection module.

In some embodiments, the I/O expander interface comprises a power protection module, and the machine-executable programming instructions further comprise machine-executable programming instructions for polling a signal from the power protection module.

In some embodiments, the I/O expander interface comprises a power protection module, and the machine-executable instructions further comprise machine-executable instructions for controlling the I/O expander power protection module.

In some embodiments, the machine-executable programming instructions further comprise machine-executable programming instructions which configure the telematics device to receive a request for I/O expander data from a telematics server.

In some embodiments, the machine-executable programming instructions further comprise machine-executable programming instructions which configure the telematics device to send an indication to the telematics server that the I/O expander data cannot be provided.

In some embodiments, the machine-executable programming instructions further comprise machine-executable programming instructions which configure the telematics device to send an indication to the telematics server to retry sending the request for I/O expander data after the I/O expander power-off duration.

In yet a further aspect of the present disclosure, there is provided a non-transitory machine-readable storage medium storing machine-executable programming instructions that when executed cause a processor to set an I/O expander power-off duration to an initial value, power on the I/O expander interface of a telematics device, and in response to detecting a power fault at the I/O expander interface: power off the I/O expander interface for the I/O expander power-off duration, and increase the I/O expander power-off duration. The machine-executable programming instructions also cause the processor to permanently power off the I/O expander interface when the I/O expander power-off duration is greater than a power-off duration limit. The machine-executable programming instructions further cause the processor to repeat the steps of setting an I/O expander power-off duration, powering on the I/O expander, powering off the I/O expander in response to detecting the power fault, and permanently powering off the I/O expander interface when the I/O expander power-off duration is greater than the power-off duration limit, when the I/O expander power-off duration is not greater than the power-off duration limit.

Exemplary non-limiting embodiments of the present invention are described with reference to the accompanying drawings in which:.

A large telematics system may collect data from a high number of assets, either directly or through telematic devices. A telematics device may refer to a self-contained device coupled to an asset, or a telematics device that is integrated into the asset itself. In either case, it may be said that asset data is being captured or gathered by the telematics device. Detailed operation of an exemplary telematics system <NUM> and its components are best described with reference to <FIG> and <FIG>. <FIG> shows a high-level block diagram of a telematics system <NUM>, while <FIG> shows a detailed view of an asset <NUM> and a telematics device <NUM> coupled to the asset <NUM>. The telematics system <NUM> includes a telematics server <NUM>, (N) telematics devices shown as telematics device 200_1, telematics device 200_2. through telematics device 200_N ("telematics device <NUM>"), a network <NUM>, administration terminals 400_1 and 400_2, and operator terminals 450_1, 450_2. through 450_N ("operator terminal <NUM>"). <FIG> also shows a plurality of (N) assets named as asset 100_1, asset 100_2. asset 100_N ("asset <NUM>") coupled to the telematics device 200_1, the telematics device 200_2. the telematics device 200_N, respectively. Additionally, <FIG> shows a plurality of satellites 170_1, 170_2 and 170_3 ("satellite <NUM>") in communication with the telematics devices <NUM> for facilitating navigation.

The assets <NUM> shown are in the form of vehicles. For example, the asset 100_1 is shown as a truck, which may be part of a fleet that delivers goods or provides services. The asset 100_2 is shown as a passenger car that typically runs on an internal combustion engine (ICE). The asset 100_3 is shown as an electric vehicle (EV). Other types of vehicles, which are not shown, are also contemplated in the various embodiments of the present disclosure, including but not limited to, farming vehicles, construction vehicles, military vehicles, and the like. Additionally, the asset <NUM> may be any industrial equipment or machine, which can be monitored by a telematics device <NUM> coupled thereto.

The telematics devices <NUM> are electronic devices which are coupled to the assets <NUM> and are configured to capture asset data <NUM> from the assets <NUM>. The telematics device 200_1 is coupled to the asset 100_1. Similarly, the telematics device 200_2 is coupled to the asset 100_2 and the telematics device 200_3 is coupled to the asset 100_3. The components of a telematics device <NUM> are explained in further detail with reference to <FIG>.

The network <NUM> may be a single network or a combination of networks such as a data cellular network, the Internet, and other network technologies. The network <NUM> may provide connectivity between the telematics devices <NUM> and the telematics server <NUM>, between the administration terminal <NUM> and the telematics server <NUM>, between the handheld administration terminal <NUM> and the telematics server <NUM>, and between the operator terminals <NUM> and the telematics server <NUM>.

The telematics server <NUM> is an electronic device executing machine-executable programming instructions which enable the telematics server <NUM> to store and analyze telematics data <NUM>. The telematics server <NUM> may be a single computer system or a cluster of computers. The telematics server <NUM> may be running an operating system such as Linux, Windows, Unix, or any other equivalent operating system. Alternatively, the telematics server <NUM> may be a software component hosted on a cloud service, such as Amazon Web Service (AWS). The telematics server <NUM> is connected to the network <NUM> and may receive telematics data <NUM> from the telematics devices <NUM>. The telematics server <NUM> may have a plurality of software modules for performing data analysis and analytics on the telematics data <NUM> to derive useful information pertaining to the assets <NUM> and/or the operators <NUM>. The telematics server <NUM> may be coupled to a telematics database <NUM> for storing the telematics data <NUM> and/or the results of the analytics which are related to the assets <NUM>. The telematics data <NUM> stored may include sensor data <NUM> obtained from the sensors <NUM> deployed in the telematics device <NUM>. The telematics server <NUM> may communicate the telematics data <NUM> or the derived information therefrom to one or more of: the administration terminal <NUM>, the handheld administration terminal <NUM>, and the operator terminal <NUM>. In some instances, the telematics server <NUM> may send configuration commands to the telematics device <NUM> to configure the operation of the telematics device <NUM>. For example, a fleet manager <NUM> may use an administration terminal <NUM> to configure a telematics device <NUM> to carry out a particular function or operate in a particular mode. The administration terminal <NUM> may send a configuration request to the telematics server <NUM>, which in turn forwards it to the telematics device <NUM>.

The satellites <NUM> may be part of a global navigation satellite system (GNSS) and may provide positioning information to the telematics devices <NUM>. The positioning information may be processed by a location module on the telematics device <NUM> to provide location data <NUM> indicating the location of the telematics device <NUM> (and hence the location of the asset <NUM> coupled thereto). A telematics device <NUM> that can periodically report an asset's location is often termed an "asset tracking device".

The administration terminal <NUM> is an electronic device, which may be used to connect to the telematics server <NUM> to retrieve data and analytics related to one or more assets <NUM> or to issue commands to one or more telematics device <NUM> via the telematics server <NUM>. The administration terminal <NUM> may be a desktop computer, a laptop computer such as the administration terminal <NUM>, a tablet (not shown), or a smartphone such as the handheld administration terminal <NUM>. The administration terminal <NUM> may run a web browser or a custom application which allows retrieving data and analytics, pertaining to one or more assets <NUM>, from the telematics server <NUM> via a web interface <NUM> of the telematics server <NUM>. The handheld administration terminal <NUM> may run a mobile application for communicating with the telematics server <NUM>, the mobile application allowing retrieving data and analytics therefrom. The mobile application of the handheld administration terminal may also be used to issue commands to one or more telematics device <NUM> via the telematics server <NUM> as discussed above. A fleet manager <NUM> may communicate with the telematics server <NUM> using the administration terminal <NUM>, the handheld administration terminal <NUM>, or another form of administration terminals such as a tablet. In addition to retrieving data and analytics, the administration terminal <NUM> allows the fleet manager <NUM> to set alerts and geofences for keeping track of the assets <NUM>, receiving notifications of deliveries, and so on.

The operator terminals <NUM> are electronic devices, such as smartphones or tablets. The operator terminals <NUM> are used by operators <NUM> (for example, vehicle drivers) of the assets <NUM> to both track and configure the usage of the assets <NUM>. For example, as shown in <FIG>, the operator 10_1 has the operator terminal 450_1, the operator 10_2 has the operator terminal 450_2, and the operator 10_N has the operator terminal 450_N. Assuming the operators <NUM> all belong to a fleet of vehicles, each of the operators <NUM> may operate any of the assets <NUM>. For example, <FIG> shows that the operator 10_1 is associated with the asset 100_1, the operator 10_2 is associated with the asset 100_2, and the operator 10_N is associated with the asset 100_N. However, any operator <NUM> may operate any asset <NUM> within a particular group of assets, such as a fleet. The operator terminals <NUM> are in communication with the telematics server <NUM> over the network <NUM>. The operator terminals <NUM> may run at least one asset configuration application. The asset configuration application may be used by an operator <NUM> to inform the telematics server <NUM> that the asset <NUM> is being currently operated by the operator <NUM>. For example, the operator 10_2 may use an asset configuration application on the operator terminal 450_2 to indicate that the operator 10_2 is currently using the asset 100_2. The telematics server <NUM> updates the telematics database <NUM> to indicate that the asset 100_2 is currently associated with the operator 10_2. Additionally, the asset configuration application may be used to report information related to the operation duration of the vehicle, the number of stops made by the operator during their working shift, and so on. Furthermore, the asset configuration application may allow the operator to configure the telematics device <NUM> coupled to the asset <NUM> that the operator <NUM> is operating. In some embodiments, the operator terminal <NUM> may communicate directly with the telematics device <NUM> over a wired connection or over a short-range wireless connection.

In operation, a telematics device <NUM> is coupled to an asset <NUM> to capture the asset data <NUM>. The asset data <NUM> may be combined with the location data <NUM> obtained by the telematics device <NUM> from a location module <NUM> in communication with the satellites <NUM> and/or sensor data gathered from sensors in the telematics device <NUM> or another device coupled to the telematics device <NUM>. The combination of the asset data <NUM>, the location data <NUM>, and the sensor data <NUM> comprise the telematics data <NUM>. The telematics device <NUM> sends the telematics data <NUM>, to the telematics server <NUM> over the network <NUM>. The telematics server <NUM> may process, aggregate, and analyze the telematics data <NUM> to generate or derive asset information pertaining to an asset <NUM>, to an operator <NUM>, and/or to a fleet of assets. The telematics server <NUM> may store the telematics data <NUM> and/or the generated asset information in the telematics database <NUM>. The administration terminal <NUM> may connect to the telematics server <NUM>, over the network <NUM>, to access the generated asset information. Alternatively, the telematics server <NUM> may push the generated asset information to the administration terminal <NUM>. Additionally, the operators <NUM>, using their operator terminals <NUM>, may indicate to the telematics server <NUM> which assets <NUM> they are associated with. The telematics server <NUM> updates the telematics database <NUM> accordingly to associate the operator <NUM> with the asset <NUM>. Furthermore, the telematics server <NUM> may provide additional analytics related to the operators <NUM> including work time, location, and operating parameters. For example, for vehicle assets, the telematics data <NUM> may include turning, speeding, and braking information. The telematics server <NUM> can correlate the telematics data to the asset's operator <NUM> by querying the asset database <NUM>. A fleet manager <NUM> may use the administration terminal <NUM> to set alerts for certain activities pertaining to the assets <NUM>. When criteria for an alert is met, the telematics server <NUM> sends a message to the fleet manager's administration terminal <NUM>, and may optionally send alerts to the operator terminal <NUM> to notify an operator <NUM> of the alert. For example, a vehicle driver operating the vehicle outside of a service area or hours of service may receive an alert on their operator terminal <NUM>. A fleet manager <NUM> may also the administration terminal <NUM> to configure a telematics device <NUM> by issuing commands thereto via the telematics server <NUM>.

Further details relating to the telematics device <NUM> and how it interfaces with an asset <NUM> are shown with reference to <FIG> depicts an asset <NUM> and a telematics device <NUM> coupled thereto. Selected relevant components of each of the asset <NUM> and the telematics device <NUM> are shown.

The asset <NUM> may have a plurality of electronic control units (ECUs) <NUM>. An ECU <NUM> is an electronic module which interfaces with one or more sensors for gathering information from the asset <NUM>. For example, an oil temperature ECU may contain a temperature sensor and a controller for converting the measured temperature into digital data representative of the oil temperature. Similarly, a battery voltage ECU may contain a voltage sensor for measuring the voltage at the positive battery terminal and a controller for converting the measured voltage into digital data representative of the battery voltage. A vehicle asset may, for example, have around seventy ECUs. For simplicity, only a few of the ECUs <NUM> are depicted in <FIG>. For example, in the depicted embodiment the asset <NUM> has three electronic control units: ECU 110A, ECU 110B, and ECU 110C ("ECUs <NUM>"). The ECU 110A, the ECU 110B, and the ECU 110C are shown to be interconnected via an asset communications bus, such as a Controller Area Network (CAN) bus <NUM>. The ECUs <NUM>, which are interconnected using the CAN bus <NUM> send and receive information to one another in CAN data frames by placing the information on the CAN bus <NUM>. When an ECU <NUM> places information on the CAN bus <NUM>, other ECUs <NUM> receive the information and may or may not consume or use that information. Different protocols may be used to exchange information between the ECUs <NUM> over a CAN bus <NUM>. For example, ECUs <NUM> in trucks and heavy vehicles use the Society of Automotive Engineering (SAE) J1939 protocol to exchange information over a CAN bus <NUM>. Most passenger vehicles use the SAE J1979 protocol, which is commonly known as On-Board Diagnostic (OBD) protocol to exchange information between ECUs <NUM> on their CAN bus <NUM>. In industrial automation, ECUs use a CANOpen protocol to exchange information over a CAN bus <NUM>. An asset <NUM> may allow access to information exchanged over the CAN bus <NUM> via an interface port <NUM>. For example, if the asset <NUM> is a passenger car, then the interface port <NUM> is most likely an OBD-II port. Data accessible through the interface port <NUM> is termed the asset data <NUM>. In some embodiments, the interface port <NUM> includes a power interface for providing electric power to a telematics device <NUM> coupled thereto.

The telematics device <NUM> includes a telematics device controller <NUM> coupled to a memory <NUM>, an interface layer <NUM> and a network interface <NUM>. The telematics device <NUM> also includes one or more sensors <NUM> and a location module <NUM> coupled to the interface layer <NUM>. The telematics device <NUM> may also contain some optional components, shown in dashed lines in <FIG>. For example, the telematics device <NUM> may contain one or more of: a near-field communications (NFC) module such as NFC module <NUM>, a short-range wireless communications module <NUM>, and a wired communications module such as a serial communications module <NUM>. In some embodiments (not shown), the telematics device <NUM> may have a dedicated power source such as a battery or a solar panel. In other embodiments, the telematics device <NUM> may receive electric power directly from the asset <NUM>, via the interface port <NUM>. In some embodiments, some of the components of the telematics device <NUM> shown in solid lines in <FIG> may also be optional and may be implemented in separate modules. For example, some telematics devices <NUM> (not shown) may not have a location module <NUM> and may rely on an external location module for obtaining the location data <NUM>. Some telematics devices may not have any sensors <NUM> and may rely on external sensors for obtaining sensor data <NUM>. The external location modules and external sensors may be coupled to the telematics device via the short-range wireless communications module <NUM> or via a wired communications module such as the serial communications module <NUM>.

The telematics device controller <NUM> may include one or any combination of a processor, microprocessor, microcontroller (MCU), central processing unit (CPU), processing core, state machine, logic gate array, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or similar, capable of executing, whether by software, hardware, firmware, or a combination of such, the actions performed by the telematics device controller <NUM> as described herein. The telematics device controller <NUM> may have an internal memory for storing machine-executable programming instructions to carry out the methods described herein. Alternatively, the telematics device controller <NUM> may be coupled to an external memory, such as the memory <NUM> and execute machine-executable programming instructions stored in the memory <NUM>.

The memory <NUM> may include read-only-memory (ROM), random access memory (RAM), flash memory, magnetic storage, optical storage, and similar, or any combination thereof, for storing machine-executable programming instructions and data to support the functionality described herein. The memory <NUM> is coupled to the telematics device controller <NUM> thus enabling the telematics device controller <NUM> to execute the machine-executable programming instructions stored in the memory <NUM> and to access the data stored therein. The memory <NUM> may contain machine-executable programming instructions, which when executed by the telematics device controller <NUM>, configures the telematics device <NUM> for receiving asset data <NUM> from the asset <NUM> via the asset interface <NUM>, and for receiving sensor data <NUM> from the sensors <NUM> and/or location data <NUM> from the location module <NUM> via the sensor interface <NUM>. The memory <NUM> may also contain machine-executable programming instructions for combining asset data <NUM>, sensor data <NUM> and location data <NUM> into telematics data <NUM>. Additionally, the memory <NUM> may further contain instructions which, when executed by the telematics device controller <NUM>, configures the telematics device <NUM> to transmit the telematics data <NUM> via the network interface <NUM> to a telematics server <NUM> over a network <NUM>. In some embodiments, the memory <NUM> only stores data, and the machine-executable programming instructions for carrying out the aforementioned tasks are stored in an internal memory of the telematics device controller <NUM>.

The location module <NUM> may be a global positioning system (GPS) transceiver or another type of location determination peripheral that may use, for example, wireless network information for location determination. The location module <NUM> is coupled to the telematics device controller <NUM> and provides location data <NUM> thereto. The location data <NUM> may be in the form of a latitude and longitude, for example.

The sensors <NUM> may be one or more of: a temperature sensor, a pressure sensor, an optical sensor, a motion sensor such as an accelerometer, a gyroscope, or any other suitable sensor indicating a condition pertaining to the asset <NUM> to which the telematics device <NUM> is coupled. The sensors <NUM> provide sensor data <NUM> to the telematics device controller <NUM> via the sensor interface <NUM>.

The interface layer <NUM> may include a sensor interface <NUM> and an asset interface <NUM>. The sensor interface <NUM> is configured for receiving the sensor data <NUM> from the sensors <NUM>. For example, the sensor interface <NUM> interfaces with the sensors <NUM> and receives the sensor data <NUM> therefrom. The asset interface <NUM> receives asset data <NUM> from the asset <NUM>. In the depicted embodiment, the asset interface <NUM> is coupled to the interface port <NUM> of the asset <NUM>. The asset data <NUM>, received at the telematics device <NUM>, from the asset <NUM> may be in the form of data messages, such as CAN data frames. The asset data <NUM> may describe one or more of any of: a property, a state, and an operating condition of the asset <NUM>. For example, where the asset <NUM> is a vehicle, the asset data <NUM> may describe the speed at which the vehicle is travelling, a state of the vehicle (off, idle, or running), or an engine operating condition (e.g., engine oil temperature, engine revolutions-per-minutes (RPM), or a battery voltage). In addition to receiving the asset data <NUM>, in some embodiments the asset interface <NUM> may also receive power from the asset <NUM> via the interface port <NUM>. The interface layer <NUM> is coupled to the telematics device controller <NUM> and provides both the asset data <NUM> and the sensor data <NUM> to the telematics device controller <NUM>.

The network interface <NUM> may include a cellular modem, such as an LTE-M modem, CAT-M modem, other cellular modem, Wi-Fi modem, or any other communication device configured for communication via the network <NUM> with which to communicate with the telematics server <NUM>. The network interface <NUM> may be used to transmit telematics data <NUM> obtained from the asset <NUM> to the telematics server <NUM> for storage and analysis. The network interface <NUM> may also be used to receive instructions from the telematics server <NUM> for configuring the telematics device <NUM> in a certain mode and/or requesting a particular type of the asset data <NUM> from the asset <NUM>.

The NFC module <NUM> may be an NFC reader which can read information stored on an NFC tag. The NFC module <NUM> may be used to confirm the identity of the operator <NUM> by having the operator <NUM> tap an NFC tag onto the telematics device <NUM> such that the NFC tag is read by the NFC module <NUM>. The information read from the NFC tag may be included in the telematics data <NUM> sent by the telematics device <NUM> to the telematics server <NUM>.

The short-range wireless communications module <NUM> provides short-range wireless communication capability to the telematics device <NUM>. The short-range wireless communications module <NUM> may be a Bluetooth™, wireless fidelity (Wi-Fi), Zigbee™, or any other short-range wireless communications module. The short-range wireless communications module <NUM> allows other devices to communicate with the telematics device <NUM> over a short-range wireless network.

The serial communications module <NUM> is an example of a wired communications module. The serial communications module <NUM> is an electronic peripheral for providing serial wired communications to the telematics device <NUM>. For example, the serial communications module <NUM> may include a universal asynchronous receiver transmitter (UART) providing serial communications per the RS-<NUM> protocol. Alternatively, the serial communications module <NUM> may be a serial peripheral interface (SPI) bus, or an inter-integrated circuit (I<NUM>C) bus. As another example, the serial communications module <NUM> may be a universal serial bus (USB) transceiver.

In operation, the ECUs <NUM>, such as the ECU 110A, the ECU 110B, or the ECU 110C each places a portion of the asset data <NUM> on the CAN bus <NUM>. The asset data <NUM> comprises all portions of asset data exchanged, between the ECUs <NUM>, over the CAN bus <NUM>. The CAN bus <NUM> is accessible via the interface port <NUM>. The telematics device <NUM> reads the asset data <NUM> from the CAN bus <NUM> over the interface port <NUM> and the asset interface <NUM> which is connected to the interface port <NUM>. The telematics device controller <NUM> receives the asset data <NUM> via the asset interface <NUM>. The telematics device controller <NUM> may also receive sensor data <NUM> from the sensors <NUM> over the sensor interface <NUM>. Furthermore, the telematics device controller <NUM> may receive location data <NUM> from the location module <NUM>. The telematics device controller <NUM> combines the asset data <NUM> with the sensor data <NUM> and the location data <NUM> to obtain the telematics data <NUM>. The telematics device controller <NUM> transmits the telematics data <NUM> to the telematics server <NUM> over the network <NUM> via the network interface <NUM>. Optionally, an operator <NUM> may tap an NFC tag to the NFC module <NUM> to identify themself as the operator <NUM> of the asset <NUM>. Additionally, an external peripheral, such as a GPS receiver, may connect with the telematics device <NUM> via the short-range wireless communications module <NUM> or the serial communications module <NUM> for providing location information thereto. In some embodiments, the telematics device <NUM> may receive, via the network interface <NUM>, commands from the telematics server <NUM>. The received commands instruct the telematics device <NUM> to be configured in a particular way. For example, the received commands may configure the way in which the telematics device <NUM> gathers asset data <NUM> from the asset <NUM>.

The telematics data <NUM> which is comprised of asset data <NUM> gathered from the asset <NUM> combined with the sensor data <NUM> and the location data <NUM> may be used to derive useful data and analytics, by the telematics server <NUM>. However, there are times when additional data, which is not provided by the asset <NUM>, the sensors <NUM> or the location module <NUM> may be needed. The telematics device <NUM> may have a limited number of sensors <NUM> such as accelerometers or gyroscopes providing limited information about the motion of the asset <NUM> on which the telematics device <NUM> is deployed. The location module <NUM> may provide location and direction information. However, in some cases, more information may be needed to derive useful data and analytics pertaining to the asset <NUM>. One example of information that is not typically provided by the telematics device <NUM> is video capture data. Another example of information that is not typically provided by the telematics device <NUM> is any proprietary signaling provided by devices which does not follow any of the standard protocols (OBD-II, J1939 or CANOpen). Some equipment may not have a CAN bus and may provide proprietary digital and/or analog signals. Examples of such devices include industrial equipment, winter maintenance equipment such as salt spreaders, farming equipment, and the like. Additionally, the telematics device <NUM> may not have an NFC module <NUM> or a short-range wireless communications module <NUM> thus limiting its connectivity capabilities. Some applications may require additional sensors, such as temperature sensors, humidity sensors, pressure sensors, conductivity sensors, pH sensors, and the like. To modify the telematics device <NUM> to include all of the aforementioned sensors and peripherals would be impractical. Not all applications require the additional sensors and the size and complexity of the telematics device <NUM> would be increased.

To capture and provide information or services not provided by the asset <NUM> or the telematics device, to produce an output, or to perform an action not supported by the telematics device, the telematics device <NUM> may be modified to allow an input/output expander device ("I/O expander") to connect thereto, as shown in <FIG> shows a telematics device <NUM>' coupled to an asset <NUM>. An I/O expander <NUM> is coupled to the telematics device <NUM>'.

The asset <NUM> is similar to the asset <NUM> of <FIG> and therefore the internal components thereof are not shown in <FIG> for simplicity.

The telematics device <NUM>' has a somewhat similar configuration as the telematics device <NUM> of <FIG>, but some of the optional components have been removed. Furthermore, the telematics device <NUM>' adds an I/O expander interface <NUM> for interfacing with the I/O expander <NUM>. The I/O expander interface <NUM> is coupled to the telematics device controller <NUM> and may be configured for exchanging I/O expander data <NUM> with the I/O expander <NUM>.

The I/O expander <NUM> of <FIG> is an example I/O expander which is designed to provide additional connectivity options to a telematics device <NUM>, which has more limited features than the one shown in <FIG>. For example, the telematics device <NUM>' shown in <FIG> does not have an NFC module, a short-range wireless communications module, or a serial communications module. Instead, the telematics device <NUM>' has an I/O expander interface <NUM>.

The I/O expander <NUM> may be an input device configured to capture additional data such as video frames, audio frames, or proprietary signals and provide that data to the telematics device <NUM>'. Alternatively, or additionally, the I/O expander <NUM> may be configured as an output device and may include a display for displaying information and/or an audio output device for broadcasting messages pertaining to the asset <NUM>.

An I/O expander <NUM>, which connects with the telematics device <NUM>', varies in complexity depending on the purpose thereof. <FIG> shows an I/O expander <NUM> containing several components which may or may not all be present in other I/O expanders. For example, the I/O expander <NUM> includes a controller <NUM>, an NFC module <NUM>, an output device <NUM>, a short-range communications module <NUM>, an image sensor <NUM>, a serial communications module <NUM>, an uplink interface <NUM> and a downlink interface <NUM>.

The controller <NUM> may be similar to the telematics device controller <NUM> of <FIG>. In some embodiments, the controller <NUM> is a microcontroller with versatile I/O capabilities. For example, the controller <NUM> may be a microcontroller which has a plurality of I/O ports such as general-purpose inputs and outputs (GPIOs), serial ports, analog inputs, and the like. In some embodiments, the controller <NUM> may have built-in persistent memory such as flash memory on which machine-executable programming instructions for carrying out the functionality of the I/O expander <NUM> may be stored. In other embodiments, the controller <NUM> may be coupled to a persistent memory module (not shown) that contains the machine-executable programming instructions for carrying out the functionality of the I/O expander <NUM>. The controller <NUM> may also have built-in volatile memory, such as random-access memory (RAM) for storing data. Alternatively, the I/O expander <NUM> may be connected to an external volatile memory for storing data.

The image sensor <NUM> may be a digital still camera or a digital video camera capable of capturing images. For example, the image sensor <NUM> may be a road-facing dashboard camera for monitoring the road ahead. In other examples, the image sensor <NUM> may be a driver-facing dashboard camera for identifying the operator <NUM> and/or their condition.

The uplink interface <NUM> is an electronic peripheral interface coupled to the controller <NUM> and is used to provide data exchange and/or power capabilities to the I/O expander <NUM>. The uplink interface <NUM> allows the I/O expander <NUM> to transmit and receive I/O expander data. The uplink interface <NUM> is configured to use the same protocol and signaling as the I/O expander interface <NUM> of the telematics device <NUM>'. Accordingly, the I/O expander <NUM> may exchange the I/O expander data with the telematics device <NUM>'. In some embodiments, the uplink interface <NUM> may also include power pins connected to corresponding power pins in the I/O expander interface <NUM>, thus allowing the I/O expander <NUM> to be powered via the telematics device <NUM>'. In other embodiments (not shown), the I/O expander <NUM> may have its own power source instead of or in addition to the power provided by the telematics device <NUM>' via the uplink interface <NUM>.

The downlink interface <NUM> is an electronic peripheral interface coupled to the uplink interface <NUM>. The downlink interface <NUM> is configured to interface with the uplink interface <NUM> of another I/O expander <NUM> (as will be described below). Allowing the uplink interface <NUM> to connect to the downlink interface <NUM> of another I/O expander <NUM> allows the daisy chaining of I/O expanders <NUM>. Allowing the uplink interface <NUM> to connect to the downlink interface <NUM> of another I/O expander <NUM> allows the daisy chaining of I/O expanders <NUM>. Accordingly, I/O expander data <NUM> received at the downlink interface <NUM> may be routed to the uplink interface <NUM>. Additionally, power signals from the uplink interface <NUM> of the I/O expander <NUM> are coupled to power pins of the downlink interface <NUM>. This allows the I/O expander <NUM> to power another I/O expander connected thereto in a daisy chain of I/O expanders. For example, a telematics device <NUM> may provide power up to a number of I/O expanders <NUM>. This is further described below.

The I/O expander <NUM> may be configured as an input expander, as an output expander, or as an input and an output (I/O) expander.

Configured as an input expander, one or more of the image sensor <NUM>, the NFC module <NUM>, the short-range communications module <NUM> and the serial communication module <NUM> may provide input data to be processed by the controller <NUM> to generate the I/O expander data <NUM>. The I/O expander data <NUM> is in a format that can be consumed by the telematics device <NUM>. The controller <NUM> configures the uplink interface <NUM> to send the I/O expander data <NUM> to the telematics device <NUM> via the I/O expander interface <NUM> of the telematics device <NUM>.

Configured as an output expander, the I/O expander <NUM> receives I/O expander data <NUM> from the telematics device <NUM> over the uplink interface <NUM>. The controller <NUM> receives the I/O expander data <NUM> from the uplink interface <NUM> and may perform further processing on the I/O expander data <NUM>. The controller <NUM> then sends the I/O expander data <NUM> to the output device <NUM>, or to an external output device connected to the I/O expander via one of the NFC module <NUM>, the short-range communications module <NUM>, and the serial communications module <NUM>.

In some embodiments, multiple I/O expanders <NUM> may be daisy chained. The I/O extension devices are typically daisy chained to provide additional functionality without having to include multiple I/O expansion interfaces <NUM> on the telematics device <NUM>. Daisy chaining the multiple I/O expanders <NUM> is done by connecting the uplink interface <NUM> of one I/O expansion device to the downlink interface <NUM> of a preceding I/O expander <NUM>. For example, with reference to <FIG>, there is shown a system having an asset <NUM>, a telematics device <NUM> coupled to the asset <NUM>, a first I/O expander 500A connected to the telematics device <NUM>, a second I/O expander 500B connected to the first I/O expander 500A, and an I/O expansion terminator <NUM> connected to the second I/O expander 500B.

The I/O expansion terminator <NUM> is a hardware component that indicates to an I/O expander <NUM> that no further I/O expanders are daisy chained thereto. The I/O expansion terminator <NUM> may be a peripheral device comprised of passive components or may have electronic active components. The controller <NUM> of the I/O expander <NUM> connected to the I/O expansion terminator <NUM> does not forward any data to the downlink interface <NUM>.

Some of the components of some of the devices shown in <FIG> have been eliminated for the sake of simplicity. For example, the asset <NUM> is shown as a simple block, and only the asset interface <NUM>, the telematics device controller <NUM> and the I/O expander interface <NUM> of the telematics device <NUM> are shown. The first I/O expander 500A and the second I/O expander 500B are similar to the I/O expander <NUM> described above with reference to <FIG>. Accordingly, a description is not provided for any of the interfaces 510A and 510B, the controllers 530A and 530B, the sensors 504A and 504B, the outputs 560A and 560B, the uplink interfaces 550A and 550B, and the downlink interfaces 520A and 520B.

The I/O expander interface <NUM> of the telematics device <NUM> is connected to the uplink interface 550A of the first I/O expander 500A. The downlink interface 520A of the first I/O expander 500A is connected to the uplink interface 550B of the second I/O expander 500B. The downlink interface 520B of the second I/O expander 500B is connected to the I/O expansion terminator <NUM>. Each of the first I/O expander 500A and the second I/O expander 500B may be configured as an IX device, an OX device or an I/O expander.

In the above-mentioned figures, a telematics device is shown as a separate entity connected with a corresponding asset. The telematics device, however, may have its components integrated into the asset <NUM> at the time of manufacture of the asset <NUM>. This may be the case when the asset <NUM> is a connected car having an asset network interface. For example, with reference to <FIG>, there is shown an asset <NUM>' with the components of a telematics device integrated therein, in accordance with embodiments of the present disclosure. The asset <NUM>' is similar to the asset <NUM> but, being a connected asset such as a connected car, it has an asset network interface <NUM> built into it. In the depicted embodiment, the telematics device controller <NUM> is directly connected to the asset communications bus, which is a CAN bus <NUM> and may directly obtain the asset data <NUM> therefrom. The sensors <NUM> and the location module <NUM> are also integrated into the asset <NUM> and provide the sensor data <NUM> and the location data <NUM> to the telematics device controller <NUM> as described above. The asset network interface <NUM> belongs to the asset <NUM>' and may be used by the asset <NUM> to communicate with an original equipment manufacturer (OEM) server, to a roadside assistance server, or for other purposes. The telematics device controller <NUM> may utilize the asset network interface <NUM> for the transmission of telematics data <NUM> provided by the telematics device controller <NUM>. In order to support gathering data types not provided by the integrated peripherals such as the sensors <NUM> and the location module <NUM>, the asset <NUM>' has an I/O expander interface <NUM> coupled to the telematics device controller <NUM> so that an I/O expander <NUM> may be connected to the asset <NUM>' therethrough. The asset <NUM>' may have an interface port <NUM> for connecting other devices other than a telematics device <NUM>, such as a diagnostic tool including, but not limited to, an OBD-II reader device.

As discussed above, an I/O expander <NUM> is connected to the telematics device <NUM> and may be powered by the telematics device <NUM> via the I/O expander interface <NUM>. Accordingly, hardware anomalies such as power faults in the I/O expander <NUM> affect the operation of the telematics device <NUM>. Among the fault conditions that the I/O expander <NUM> may experience are overcurrent and overvoltage conditions.

An overcurrent is a condition which exists in an electric circuit when the normal load current is exceeded, potentially causing damage to electronic components. When an overcurrent condition is detected by the I/O expander interface <NUM>, it indicates that the I/O expander <NUM> connected to the I/O expander interface <NUM> is experiencing an overcurrent condition. If the overcurrent conditions persist, some of the components of the I/O expander <NUM> may be damaged. Since the I/O expander <NUM> is connected to the telematics device <NUM>, an overcurrent condition in the I/O expander <NUM> may in some cases cause excessive current to be drawn from the telematics device <NUM> thus causing an overcurrent condition in the telematics device <NUM> as well.

An overvoltage is voltage in excess of the normal operating voltage of a device or a circuit potentially causing damage to at least some electric components in the device or circuit. An overvoltage condition detected on the I/O expander interface <NUM> is an indication over an overvoltage condition in the I/O expander <NUM> connected to the I/O expander interface <NUM>. If the overvoltage condition is allowed to persist, component damage may take place in the I/O expander <NUM>.

When either an overcurrent condition or an overvoltage condition affects the telematics device <NUM>, the power fault condition must be handled before the I/O expander <NUM> and/or telematics device <NUM> incur any damage. Power fault protection modules may detect and report power fault conditions that take place in an electrical system or in a component. As such, the I/O expander interface <NUM> is provided with at least one power protection module as will be described below.

A power protection module may detect power faults and report such power faults to the telematics device <NUM>. The telematics device <NUM> may respond to the power faults by powering off the I/O expander interface <NUM> altogether. Power faults may, however, be transient. As such, permanently powering off the I/O expander interface <NUM> may be an excessive measure as the functionality of the I/O expander <NUM> may be lost unnecessarily if the power fault is a transient or temporary fault.

The inventor has investigated the handling of many transient power faults detected on an I/O expander interface <NUM>. The inventor has discovered that some transient power faults may be handled by powering off the I/O expander interface <NUM> and powering the I/O expander interface <NUM> back on after a brief duration power off. The I/O expander interface <NUM> and the attached I/O expander <NUM> may recover from certain power faults when the I/O expander interface <NUM> is powered off for a certain duration, then powered back on. The inventor has discovered that the power off duration that causes an I/O expander <NUM> to recover from a power fault varies depending on the type of I/O expander <NUM> connected to the I/O expander interface <NUM> and depending on the nature of the power fault. The inventor has discovered that increasing the power off duration causes more I/O expanders <NUM> to recover from power faults.

The inventor has also discovered that increasing the power off duration has diminishing returns at some power off value. Beyond that power off value, any I/O expanders that do not recover from their power faults are characterized by permanent power faults. In such cases, the I/O expanders <NUM> require repair or replacement. Accordingly, the best course of action is to power off the I/O expander interface <NUM> so that the telematics device <NUM> is not damaged by the effect of the power faults.

The inventor has also discovered that repeatedly powering off and powering on some I/O expanders <NUM>, particularly I/O expanders <NUM> having overcurrent conditions may cause component damage in the I/O expanders <NUM> if done an excessive number of times. Accordingly, the number of times an I/O expander interface <NUM> is power cycled needs to be limited.

In one aspect of the present disclosure, a method for handling power faults on an I/O expander interface may involve power cycling the I/O expander interface with progressively increasing power off durations. After each power cycling, the power fault condition is re-checked. If the power fault condition is still detected after the power off duration has reached an upper limit, the telematics device powers off the I/O expander interface.

Progressively increasing the power off durations not only ensures that different power off durations are tested, but it also ensures that the number of power cycling events applied to an I/O expander are limited since the upper duration limit is reached sooner.

In some embodiments, the telematics device <NUM> does not power the I/O expander interface <NUM> back up until the I/O expander <NUM> is unplugged therefrom. For example, when telematics device <NUM> permanently powers off the I/O expander interface <NUM> the telematics device <NUM> stores an indication in persistent storage indicating that the I/O expander interface has been powered off due to a power fault condition. When the telematics device <NUM> is restarted or power cycled upon boot up the telematics device <NUM> checks for the indication in persistent storage and if the indication is set, the I/O expander interface <NUM> is only powered on if the telematics device <NUM> detects that no I/O expander <NUM> is connected thereto.

The aforementioned methods for handling a power fault on the I/O expander interface can be carried out by a telematics device <NUM> as described below.

<FIG> shows selected components of the telematics device <NUM>, similar to the telematics device of <FIG> but with emphasis on the I/O expander interface <NUM> and the various modules and components of the telematics device <NUM> that allow handling power faults in an I/O expander <NUM> connected to the telematics device <NUM> via the I/O expander interface <NUM>. Accordingly, other components of the telematics device <NUM> are not shown for clarity. Furthermore, the telematics device controller <NUM> and the memory <NUM> are similar to the telematics device controller <NUM> and the memory <NUM> of <FIG>, but are shown with more detail as appropriate to carry out the methods described herein.

The telematics device controller <NUM> is shown with a number of pins 231A, 231B, 231C and 231D. While a skilled person would appreciate that a telematics device controller <NUM> would have additional pins with various functions, the additional pins have been omitted for clarity. The pin 231A may be a general-purpose input/output (GPIO) pin configured in input mode to receive serial I/O expander data from the I/O expander interface <NUM>. The pin 231B may also be a GPIO pin but configured in output mode to send serial I/O expander data to the I/O expander interface <NUM>. The pin 231C may be an interrupt pin. Logic changes detected on the pin 231C generate an interrupt within the telematics device controller <NUM>. The pin 231D may be a GPIO pin configured as an output pin. The pin 231D is configured as a power output control pin for controlling the power provided by the telematics device <NUM> to an I/O expander connected to the telematics device <NUM> via the I/O expander interface <NUM>.

The memory <NUM> of the telematics device <NUM> is shown containing a number of firmware modules which may configure the telematics device for carrying out the methods for handling power faults on the I/O expander interface. For example, the memory <NUM> is shown storing an interrupt handler <NUM>, a power management module <NUM>, an I/O expander control and data module <NUM>, and a telematics communications module <NUM>. It would be apparent to those of skill in the art that other software modules may also be stored in the memory <NUM> but are not shown for the sake of simplicity. For example, the memory <NUM> may store modules for reading and processing sensor data and location data. The memory <NUM> may store a kernel module or other telematics applications. In some embodiments, some, or all of the firmware modules shown may be stored in an internal memory of the telematics device controller <NUM> instead of in the memory <NUM>.

The interrupt handler <NUM> is executed, by the telematics device controller <NUM>, in response to an event that is configured to generate an interrupt. A logic change detected on the interrupt pin 231C constitutes an even which may cause an interrupt, which in turn causes the interrupt handler <NUM> to be executed. For example, the interrupt handler <NUM> may be executed when the signal detected at the interrupt pin 231C changes from logic HIGH to logic LOW, or vice versa. The mechanism by which the interrupt handler <NUM> is caused to execute is implementation defined. By way of example, the telematics device controller <NUM> may have an interrupt vector that may be assigned the starting address of the interrupt handler <NUM>. Accordingly, when the interrupt is triggered, the telematics device controller <NUM> jumps to the starting address of the interrupt handler <NUM> causing the interrupt handler <NUM> to execute. The interrupt handler <NUM> may notify the power management module <NUM> that a power fault protection event has been detected as will be described below.

The power management module <NUM> contains machine-executable programming instructions which, when executed by the telematics device controller <NUM>, configure the power condition of the I/O expander <NUM>. For example, the power management module <NUM> may include instructions which cause the telematics device controller <NUM> to power off the I/O expander <NUM> by configuring the I/O expander interface <NUM> accordingly. Conversely, the machine-executable instructions may cause the telematics device controller <NUM> to power up the I/O expander <NUM> by configuring the I/O expander interface <NUM> accordingly.

The I/O expander control and data module <NUM> includes machine-executable programming instructions which, when executed by the telematics device controller <NUM>, configure the telematics device <NUM> to exchange data and control signals with the I/O expander <NUM>. For example, signals received at the input pin 231C are processed by the I/O expander control and data module <NUM>. The received signals may comprise data provided by the I/O expander <NUM>, or commands sent by the I/O expander <NUM> to the telematics device <NUM> requesting information. The I/O expander control and data module <NUM> also includes machine-executable programming instructions which send signals to the pin 231D to be sent to an I/O expander via the I/O expander interface <NUM>. The signals may comprise I/O expander data, commands, or status information to be processed by the I/O expander.

The telematics communications module <NUM> includes machine-executable programming instructions which, when executed by the telematics device controller <NUM>, configures the telematics device to communicate with the telematics server <NUM> over the network interface <NUM>. The telematics communications module <NUM> may send telematics data <NUM> including I/O expander data <NUM> to the telematics server <NUM>. The telematics communication module <NUM> may receive requests or commands, from the telematics server <NUM>, to capture I/O expander data. In response, the telematics communication module <NUM> may direct the I/O expander control and data module <NUM> to issue commands to the I/O expander <NUM>, over the I/O expander interface <NUM>, to capture the requested I/O expander data. In some embodiments, the telematics communication module <NUM> may receive an indication, from the power management module <NUM>, that a power fault condition has been detected over the I/O expander interface <NUM>. In response to receiving the indication, the telematics communications module <NUM> may send an indication to the telematics server <NUM> notifying the telematics server <NUM> that the I/O expander data requested by the telematics server <NUM> may be delayed due to the power fault condition. In some embodiments, the telematics communications module <NUM> may receive an indication from the power management module <NUM> that the I/O expander interface <NUM> has been permanently powered off due to a power fault condition. In response, the telematics communications module <NUM> may send an indication to the telematics server <NUM> that any requested I/O expander data will not be delivered to the telematics server <NUM> as a result of a power fault condition with the I/O expander <NUM>.

In some embodiments, the pin 231C is a GPIO pin configured in input mode, there is no interrupt handler <NUM>, and the power protection management model monitors the logic level changes on the input pin 231C by polling either continuously or at certain intervals.

The I/O expander interface <NUM> is comprised of an I/O expander hardware port <NUM>, an I/O expander transceiver <NUM>, and an I/O expander power protection module <NUM>. The I/O expander hardware port <NUM> includes a plurality of pins <NUM> for connecting to an I/O expander <NUM>. The I/O expander transceiver <NUM> connects the I/O expander hardware port <NUM> to the telematics device controller <NUM>. The I/O expander power protection module <NUM> is connected to the I/O expander hardware port <NUM> for providing protection against faults.

The I/O expander hardware port <NUM> may comprise a plurality of pins <NUM> for interfacing to an I/O expander <NUM>. In the depicted embodiment, the I/O expander hardware port <NUM> has <NUM> pins, which are labeled as pin 253A through pin 253E. The I/O expander hardware port <NUM> may be a mini-USB connector, a micro-USB connector, a USB-C connector, an RS-<NUM> connector, an Ethernet connector, an RJ45 connector, or any suitable type of hardware connection that allows an external I/O expander to couple thereto. In a non-limiting example, the I/O expander interface port is a CAN bus, and the I/O expander hardware port <NUM> uses four pins for the signals CAN+, CAN-, GND, and POWER. Table <NUM> shows an example of pin mapping of an I/O expander hardware port <NUM> using a mini-USB B-type connector and using four pins of the <NUM> pins thereof for the CAN+, CAN-, GND, and POWER signals.

The pin 253A is not connected (NC). The pin 253B and the pin 253C are the I/O expander data pins of the CAN bus. The pin 253B allows the transmission of serial data to an I/O expander <NUM> connected to the I/O expander hardware port <NUM>. Conversely, the 253C pin allows the reception of serial data from an I/O expander connected to the I/O expander hardware port <NUM>. The pin 253D is the ground (GND) pin and the power pin 253E is the power (POWER) pin providing electric power from the telematics device <NUM> to an I/O expander <NUM> connected to the I/O expander interface <NUM>. The POWER pin is also denoted BATT_IOX in the figure.

The I/O expander transceiver <NUM> converts signals on the I/O expander hardware port <NUM>, such as the CAN+ and CAN- signals, to signal levels that are understood by the telematics device controller <NUM>, and vice versa. For example, on a CAN bus the CAN- signal is <NUM>. 5V while the CAN+ signal is <NUM>. The telematics device controller <NUM> may use transistor-to-transistor logic (TTL) or complementary metal oxide semiconductor (CMOS) signals which are typically 0V for a low logic value and 5V for a high logic value. The I/O expander transceiver <NUM> converts output signals from the telematics device controller <NUM> to CAN signal levels and converts input signals from the I/O expander data pin 253B and data pin 253C to TTL or CMOS signal levels, so that they can be connected to the pin 231A and the pin 231B of the telematics device controller <NUM>.

The I/O expander power protection module <NUM> is an electronic module providing protection to a load device against certain fault conditions. Among the fault conditions that the I/O expander protection module protects against are overcurrent and overvoltage conditions. An overcurrent is a condition which exists in an electric circuit when the normal load current is exceeded, potentially causing damage to electronic components. Overcurrent protection is, therefore, protection against excessive currents or current beyond the acceptable current rating of equipment. An overvoltage is voltage in excess of the normal operating voltage of a device or a circuit potentially causing damage to at least some electric components in the device or circuit. Overvoltage protection protects against overvoltage. An undervoltage condition occurs when voltage drops below the operational value. When system voltage drops below the operational value, some electronic components may stop working altogether while others may not operate correctly. To protect against undervoltage conditions, an undervoltage-lockout (UVLO) circuit may be deployed. A UVLO is an electronic circuit used to turn off the power of an electronic circuit in the event of the voltage dropping below the operational value. A power protection module which protects against overcurrent and overvoltage conditions in a load circuit, protects the load circuit by disconnecting electric power upon detection of the overcurrent or overvoltage condition. A power protection module which additionally protects against undervoltage conditions contains a UVLO. Power protection modules are sometimes referred to as electronic fuses or eFuses.

Another fault condition that may also occur in some electronic devices includes a reverse current condition. Reverse current is the flow of direct current (DC) in a reverse direction or of an alternating current (AC) in phase opposition to the normal phase. In a DC circuit, if voltage on an output pin (VOUT) is higher than a voltage on an input pin (VIN), reverse current may flow from VOUT to VDD. A reverse current protection circuit stops the reverse current from VOUT to VDD when VOUT is higher than VIN. Some power protection modules may, in addition to providing overcurrent and overvoltage protection, provide protection against reverse current conditions.

Yet another fault condition that may take place in some electronic devices or circuits is thermal overheating. Some electronic chips may experience an excessive rise in their temperature and need to be shutdown to prevent their degradation. The rise in temperature of the chip may be caused by a shorted load, an output-to-ground short circuit, a rise in ambient temperature or selfheating. A power protection module may also provide thermal shutdown functionality by monitoring the chip temperature of a lower dropout (LDO) regulator and turn off its output to prevent chip degradation or destruction in the event of excessive rise in the chip's temperature.

The I/O expander power protection module <NUM> of a telematics device <NUM> provides at least one of: overvoltage protection, overcurrent protection, reverse current protection, and thermal shutdown functions for an I/O expander <NUM> connected to the telematics device <NUM>. One example of the I/O expander power protection module <NUM> includes the MAX14571, the MAX14572, and the MAX14573 adjustable overvoltage and overcurrent protectors from MAXIM™. Another example of the I/O expander power protection module <NUM> includes the TPS1663x <NUM>-V, <NUM>-A eFuse from Texas Instruments™. The I/O expander power protection module <NUM> connects to ground pin 253D and the power pin 253E of the I/O expander hardware port <NUM> allowing the I/O expander power protection module <NUM> to detect and protect against overvoltage, overcurrent, and reverse current conditions. The I/O expander power protection module <NUM> also includes a built-in overtemperature shutdown circuitry. The I/O expander power protection module has an enable pin 251B which is connected to the telematics device controller <NUM>. The enable pin can be asserted HIGH to enable the I/O expander power protection module <NUM> to provide power from the telematics device <NUM> to the I/O expander <NUM> via the power pin 253E and the ground pin 253D. Conversely, the enable pin 251B can be de-asserted LOW to configure the I/O expander power protection module <NUM> not to provide power from the telematics device <NUM> to the I/O expander <NUM>. The I/O expander power protection module has a flag (FLAG) pin 251A which is also connected to an input pin of the telematics device controller <NUM>. In one embodiment, the FLAG pin 251A is connected to an interrupt pin of the telematics device controller <NUM>. Accordingly, an interrupt signal generated by the flag pin 251A is detected at an interrupt pin 231C of the telematics device controller <NUM>. In another embodiment, the FLAG pin 251A is connected to a general-purpose input/output (GPIO) pin of the telematics device controller <NUM>, wherein the GPIO pin is configured as an input pin. The flag pin 251A may be an active-low pin or an active-high pin. For example, if the flag pin is an active-low pin, it is referred to as the /FLAG pin. The /FLAG pin 251A is HIGH when the I/O expander power protection module <NUM> does not detect any fault conditions in the I/O expander <NUM>.

Assuming an I/O expander is connected to the telematics device <NUM>, as discussed earlier with reference to <FIG>, under normal operation the telematics device <NUM> powers up the I/O expander and exchanges data and commands therewith. Specifically, the power management module <NUM> configures the telematics device controller <NUM> to assert the signal on the pin 231D. Asserting the signal on the pin 231D causes the enable pin 251B of the I/O expander power protection module <NUM> to be asserted. In response, the I/O expander power protection module <NUM> enables electric power to be provided to the I/O expander via the power pin (253E) and the ground pin 253D of the I/O expander hardware port <NUM>. Under normal operation the /FLAG pin is HIGH indicating that no power faults have been detected by the I/O expander power protection module <NUM>. As a result of the /FLAG being set to HIGH, no interrupt signal is detected at the interrupt pin 231C of the telematics device controller <NUM>. Additionally, under normal operation, the I/O expander control and data module <NUM> runs and executes machine-executable programming instructions which cause the telematics device controller <NUM> to exchange I/O expander data, control and status with the I/O expander via the pins 231A and 231B, which are connected, via the I/O expander transceiver <NUM>, to the CAN+ (I/O expander data pin 253B) and CAN- (I/O expander data pin 253C) pins on the I/O expander hardware port <NUM>.

When any power fault condition, such as an overvoltage condition, an overcurrent condition, a reverse-current condition, or an overheating condition occurs in the I/O expander <NUM>, the condition is detected by the I/O expander power protection module <NUM>. In some embodiments, in response to detecting the power fault, the I/O expander power protection module <NUM> shuts down the power provided to the I/O expander <NUM>, via the ground pin 253D and the POWER pin 253E. Additionally, the I/O expander power protection module <NUM> signals the telematics device controller <NUM> of the detected condition and corresponding shutdown. In the example shown the I/O expander power protection module <NUM> de-asserts the /FLAG pin. In some embodiments, the /FLAG pin is connected to the interrupt pin 231C on the telematics device controller <NUM>, the telematics device controller <NUM> senses an interrupt signal on the interrupt pin 231C and generates an interrupt which is handled by the interrupt handler <NUM>. In some example embodiments, the telematics device <NUM> uses a bare metal system and the interrupt handler <NUM> updates the power status of the I/O expander while the power management module <NUM> periodically checks that status. In another example embodiments, the telematics device <NUM> users an embedded kernel, and the interrupt handler <NUM> sends a message to the power management module <NUM> which in this case is running as a task controlled by the kernel. The power management module <NUM> handles the power protection fault condition. In some embodiments, the power management module <NUM> polls the /FLAG pin and sends a signal change on the /FLAG pin from HIGH to LOW thus indicating a power fault.

One approach to handling a power protection fault condition is to power off the faulty module that has a power fault, wait for a period of time, then attempt to power the faulty module back up. For example, in response to detecting a power fault, the power management module <NUM> may keep the I/O expander interface <NUM> powered off for a power-off duration, then power back the I/O expander interface <NUM> on for a power-on duration. For example, upon determining that a power protection fault condition has been detected (which is also accompanied by the I/O expander power protection module <NUM> powering off the I/O expander interface <NUM>) the power management module <NUM> may start a timer for <NUM>. Upon the expiry of the timer, the power management module <NUM> may power up the I/O expander interface <NUM> for <NUM>. Upon powering up the I/O expander interface <NUM>, which also powers up the I/O expander <NUM> that encountered the power protection fault condition, a number of possible outcomes may arise. In some instances, the I/O expander <NUM> powers up correctly and the power protection fault indication is cleared at the I/O expander interface <NUM>. For example, the I/O expander power protection module does not detect any power faults on the I/O expander interface and asserts the /FLAG signal indicating that there are no power faults. As a result of the power fault indication being cleared, the power management module <NUM> keeps the I/O expander power protection module <NUM> configured to provide electric power to the I/O expander. Accordingly, the I/O expander <NUM> remains powered on and functioning normally. In other instances, a power protection fault condition takes place again at the I/O expander interface <NUM> in response to being powered back on after the power off duration. In this case, power management module <NUM> may repeat the aforementioned steps. The power management module <NUM> may power off the I/O expander for a power-off duration (such as <NUM>) and then power it back on for a power-on duration (such as <NUM>).

While the above-described steps work for some I/O expanders, they may cause problems with other I/O expanders. For example, repeatedly powering up an I/O expander that has an overcurrent condition means that the overcurrent condition is recurring frequently, and the excessive current may start damaging components on the I/O expander and/or in the I/O expander power protection module <NUM>. Accordingly, as discussed above, the number of times an I/O expander is power cycled needs to be limited.

In some cases, when an I/O expander interface <NUM> is powered off and accordingly the I/O expander <NUM> connected thereto is powered-off, I/O expander data requested by the telematics server <NUM> cannot be delivered. A brief description of the telematics server <NUM> is provided with reference to <FIG>. The telematics server <NUM> has a controller <NUM>, a memory <NUM>, a network interface <NUM> and a web interface <NUM>.

The controller <NUM> is generally speaking a microprocessor such as ones used in personal computers, laptop computers, but likely more powerful. the controller <NUM> executes machine-executable programming instructions stored in the memory <NUM> to carry out some of the steps of the methods described herein.

The memory <NUM> is similar to the memory <NUM> of the telematics device <NUM> and contains software modules for performing some steps of the methods described herein. In the depicted embodiment, the memory <NUM> is shown containing a telematics data module <NUM>, a web interface <NUM>, and other server modules <NUM>.

The telematics data module <NUM> may process the telematics data <NUM> received from a telematics device <NUM> and perform data analysis thereon. The telematics data module <NUM> may also request the telematics data <NUM> including I/O expander data from a telematics device <NUM> coupled to an I/O expander <NUM>.

The web interface <NUM> may allow a fleet manager <NUM> using an administrative terminal <NUM> to access data and analytics from the telematics server <NUM>.

The other server modules <NUM> represent other functions of the telematics server <NUM> such as data processing, networking and database management.

<FIG> depicts a method <NUM> for handling power protection fault conditions in an electronic device, such as the telematics device <NUM>, wherein the telematics device <NUM> includes an I/O expander interface <NUM> and the power protection fault condition occurs in the I/O expander interface <NUM>.

At step <NUM>, an I/O expander interface power-off duration is set to an initial value. The I/O expander interface power-off duration value determines the duration that the I/O expander interface is powered-off for when a power protection fault is initially detected by the I/O expander power protection module <NUM> and reported to the power management module <NUM> as discussed above. The initial value of the I/O expander interface power-off duration is relatively short. For example, the initial value of the I/O expander interface power-off duration may be set to <NUM> (<NUM> second).

At step <NUM>, the power protection management module powers up the I/O expander interface <NUM>, thus causing an I/O expander <NUM> connected thereto to be powered up. In some embodiments, the telematics device <NUM> is powered up and detects that an I/O expander <NUM> is connected to the I/O expander interface <NUM> and hence the telematics device <NUM> powers up the I/O expander interface <NUM>. In other embodiments, the step <NUM> may be performed when an I/O expander <NUM> is connected to the I/O expander interface <NUM> while the telematics device <NUM> is already powered up.

At step <NUM> the I/O expander power protection module <NUM> checks whether a power protection fault has occurred on the I/O expander interface. As discussed earlier, this may entail the power management module <NUM> polling an input pin connected to the power protection fault flag pin of a power protection module, waiting for an interrupt, or waiting for a kernel message indicating the power protection fault condition. If no power protection fault indication is received, the I/O expander interface <NUM> remains in the powered-up state and continues normal operation. In other words, control remains at step <NUM> as long as the answer to the question "power fault detected?" is "no". If, however, at step <NUM>, a power protection fault condition is detected, then control goes to step <NUM>.

At step <NUM> the I/O expander interface <NUM> is powered off for a period determined by the I/O expander interface power-off duration. Typically, the I/O expander interface is powered off by the I/O expander power protection module <NUM>. The power management module <NUM> may start a timer with an expiry time equal to the I/O expander interface power-off duration. In some embodiments, the I/O expander power protection module may provide an indication of the power fault only. In this case, the power management module <NUM> may use the pin 231D to instruct the I/O expander power protection module <NUM> to power-off the I/O expander interface before starting the timer. When the timer expires, control goes to step <NUM>. In some embodiments, the telematics device controller <NUM> may be executing other machine-executable programming instructions while the timer is running. Then upon expiry of the timer, a timer expiry interrupt is signaled, and step <NUM> is executed in response to the timer expiry interrupt.

In some embodiments, the telematics device <NUM> has received a request for I/O expander data from a telematics server <NUM>. In such embodiments, at step <NUM>, the telematics communications module <NUM>, may send an indication to the telematics server <NUM> to retry sending the request after the I/O expander interface power-off duration. Advantageously, the telematics server <NUM> does not repeatedly send requests for the I/O expander data while the I/O expander interface is powered-off. This reduces network traffic and processing resources on the telematics server <NUM>.

At step <NUM>, the I/O expander interface power-off duration is increased. The purpose of increasing the power-off duration is to give the components of the I/O expander interface and the I/O expander additional time between powered-on states. For example, if the I/O expander interface has undergone a thermal shutdown, the increase in the I/O expander interface power-off duration allows overheated components to cool off. Additionally, if there is an overvoltage or overcurrent condition, increasing the power-off duration between two successive power-on conditions, causes less overvoltage and/or overcurrent to pass through the components thus reducing the likelihood of damage. In some embodiments, the I/O expander interface power-off duration is increased by a percentage such as <NUM>%. In other embodiments, the I/O expander interface power-off duration is doubled. In other embodiments, the I/O expander interface power-off duration is quadrupled. Various tests have been conducted and it has been observed that better results are achieved when the I/O expander interface power-off duration is quadrupled at step <NUM>. If the initial I/O expander interface power-off duration was <NUM> seconds, then at step <NUM>, the I/O expander interface power-off duration may become <NUM> seconds.

At step <NUM>, the I/O expander interface power-off duration is checked against an I/O expander interface power-off duration limit. The inventor has found, through various testing, that an I/O expander or an I/O expander interface which does not recover from their power fault conditions after a number of power cycling iterations rarely recover. These I/O expanders or I/O expander interfaces typically have a permanent hardware problem that needs repair and cannot be addressed solely by power cycling. It has been observed that once the power-off duration is extended to a particular duration limit, further power cycling of the I/O expander interface <NUM> does not cause the I/O expander <NUM> to recover from the power fault condition. In some devices, an I/O expander interface <NUM> power-off duration limit of <NUM> seconds has been shown to address the majority of recoverable power fault conditions. In other devices an I/O expander interface power-off duration limit of <NUM> seconds has been shown to address the majority of recoverable power fault conditions. At step <NUM>, if the I/O expander interface power-off duration is still less than the I/O expander interface power-off duration limit then control goes back to step <NUM>, where the I/O expander interface is powered-on as before. If, at step <NUM> a power fault condition is detected, then the I/O expander interface is powered off, at step <NUM>, but this time using the newer I/O expander interface power-off duration which has just been increased at the previous instance of step <NUM>. It should be noted that step <NUM> takes place a period of time equal to a power-on duration after step <NUM>. In some instances, the I/O expander <NUM> needs time to be fully powered on before any power fault conditions are detected.

The steps <NUM> to <NUM> are repeated until one of two conditions is satisfied. The first condition is when, at step <NUM>, a power fault condition is not detected and the I/O expander interface <NUM> remains power-on and operating normally. The second condition is when, at step <NUM>, the I/O expander interface power-off duration exceeds the I/O expander interface power-off duration limit. In this case, control goes to step <NUM>.

At step <NUM>, the power management module <NUM> permanently powers-off the I/O expander interface <NUM>. This represents a recognition that further power cycling of the I/O expander interface for a longer I/O expander interface power-off duration, is unlikely to cause the I/O expander interface or an I/O expander <NUM> connected thereto to recover from the power fault conditions which were detected throughout the previous iterations of the method. Permanently powering off the I/O expander interface <NUM> may also advantageously prevent components of the I/O expander <NUM> from being damaged due to repeated powering on the I/O expander <NUM> while it may have an overcurrent condition. In some embodiments, at step <NUM>, the telematics communications module <NUM> may send an indication to the telematics server <NUM> indicating that the I/O expander connected to the telematics device is no longer operational. In response, the telematics server may send a notification to an administration terminal <NUM>, for example, indicating that the I/O expander associated with the telematics device <NUM> is malfunctioning. In another embodiment, the telematics server may refrain from further requesting I/O expander data from the telematics device, in response to receiving the notification from the telematics device <NUM> that the I/O expander <NUM> connected thereto is not working properly.

The method <NUM> ends at step <NUM>. In some embodiments, powering off the telematics device <NUM> and powering it back on restarts the method <NUM>. In other words, the I/O expander power-off duration is reset back to its initial value (at step <NUM>) and the I/O expander interface is powered-up at step <NUM>, and the method <NUM> continues as described above.

<FIG> depicts a method <NUM> of handling a power fault on an I/O expander interface, in accordance with some embodiments of the present disclosure. The method starts at step <NUM>.

At step <NUM>, the telematics device <NUM> detects a power fault condition on the I/O expander interface <NUM>. For example, the telematics device controller <NUM> may receive an indication from the I/O expander power protection module <NUM> of a power fault on the I/O expander interface <NUM>. The indication may be an interrupt event, which causes the interrupt handler <NUM> to be executed or a level change in the /FLAG signal indicating a power fault. The interrupt handler <NUM> may send an indication, such as a message to the power management module <NUM> indicating the power fault. Alternatively, the power management module <NUM> may poll the pin 251B to check for level changes on the /FLAG signal indicating a power fault on the I/O expander interface <NUM>.

At step <NUM>, the telematics device <NUM> performs power-cycling of the input/output expander interface <NUM> by a plurality of power cycles having a plurality of progressively increasing power-off durations. For example, the power management module <NUM> may power off the I/O expander interface <NUM> for a few seconds and then power it back on, which constitutes a single power-cycle of the I/O expander interface. The power management module <NUM> may repeat the power-cycling of the I/O expander interface with an increased power-off duration. For example, the power-off duration of the second power-cycle of the I/O expander interface <NUM> may be double the power-off duration of the first power-cycle of the I/O expander interface <NUM>. Accordingly, the plurality of power cycles of the I/O expander interface have progressively increasing power-off durations.

The telematics device <NUM> checks the power fault condition after each power cycle of the plurality of power cycles, as stated in step <NUM>. For example, after the power management module <NUM> has turned off the I/O expander interface and turned it back on, the power management module <NUM> may check if the power fault is still in effect. In some embodiments, the power management module <NUM> may receive a new message from the interrupt handler <NUM> indicating that the power fault has re-occurred. Alternatively, the power management module <NUM> may cause the telematics device controller <NUM> to poll the /FLAG signal to check whether it indicates a power fault on the I/O expander interface <NUM>.

At step <NUM>, the telematics device <NUM> powers off the I/O expander interface <NUM> if the power fault condition is detected and the power-off duration of the current power cycle (i.e., the current power-off duration) has reached a power-off duration upper limit. In some embodiments, the power management module <NUM> may, upon detecting that the power fault condition is still in effect, compare the current power-off duration of the current power cycle with a power-off duration upper limit. If the current power-off duration is greater than the power-off duration upper limit, then power management module <NUM> powers down the I/O expander interface <NUM> permanently. The check as to whether the current power-off duration is greater than the power-off duration upper limit is done after each power cycle of step <NUM>.

<FIG> depicts a method <NUM> of handling power faults on an I/O expander interface, in accordance with embodiments of the present disclosure. At step <NUM>, the telematics device <NUM> sets an I/O expander power-off duration to an initial value. For example, the power management module <NUM> may set an initial I/O expander power-off duration to <NUM> seconds. The I/O expander power-off duration may be used in case of a power fault as will be described in subsequent steps of the method <NUM>. Step <NUM> may be carried out when the telematics device <NUM> is first powered-up or rebooted.

At step <NUM>, the telematics device <NUM> powers up the I/O expander interface. This step may be carried out when the telematics device <NUM> is first powered up or rebooted. The power management module <NUM> may, when executed by the telematics device controller <NUM>, asset the output pin 231D which configures the I/O expander power protection module <NUM> to provide power to the power pin 253E. As a result, an I/O expander connected to the I/O expander interface <NUM> via the I/O expander hardware port <NUM> will also be powered up.

At step <NUM>, if a power fault is detected at the I/O expander interface <NUM>, the telematics device <NUM> powers off the I/O expander interface for the I/O expander power-off duration, and increases the value of the I/O expander power-off duration.

At step <NUM>, the steps <NUM> and <NUM> are repeated as long as the power fault is detected, and the value of the I/O expander power-off duration is not greater than a power-off duration limit. Since the I/O expander power-off duration is increased in step <NUM>, eventually the I/O expander power-off duration becomes greater than the power-off duration limit and control goes to step <NUM>.

As step <NUM>, the telematics device <NUM> permanently powers off the I/O expander interface <NUM> since the I/O expander power-off duration is greater than the power-off duration limit.

It should be noted that certain operations in the methods described herein may be embodied in machine-executable programming instructions storable on non-transitory machine-readable storage medium and executable by a processor or a controller.

Claim 1:
A method, by a telematics device (<NUM>, <NUM>'), the method for handling power faults on an input/output expander (<NUM>) coupled to the telematics device (<NUM>, <NUM>') via an input/output expander interface (<NUM>) of the telematics device (<NUM>, <NUM>'), the method comprising:
detecting, by a power protection module (<NUM>) of the input/output expander interface (<NUM>), a power fault condition on the input/output expander interface (<NUM>);
reporting, by the power protection module (<NUM>), the power fault condition to the telematics device (<NUM>, <NUM>');
power-cycling, by the telematics device (<NUM>, <NUM>'), the input/output expander interface (<NUM>) by a plurality of power cycles having a plurality of progressively increasing power-off durations;
after each power cycle of the plurality of power cycles, checking the power fault condition; and
permanently powering off the input/output expander interface (<NUM>) if the power fault condition is detected and a current power-off duration of the plurality of progressively increasing power-off durations has reached a power-off duration limit.