Automated identification of generic module location per electrical signatures

A database stored electrical signatures of mounting points for generic modules within a vehicle model. Software for programming each mounting point is mapped to the mounting points. For a production unit of the vehicle model, generic modules are placed at the mounting points without being programmed to perform a specific function. The generic modules measure the electrical signature of the mounting point at which they are mounted. The generic modules then coordinate with a server to identify a matching electrical signature in the database and programming the generic modules with corresponding software for performing specific functions.

BACKGROUND

Field of the Invention

This invention relates to installing control modules in a system such as vehicle.

Background of the Invention

Electronic modules that use generic (multipurpose) hardware need to be programmed with specialized software to perform their functions. In vehicle assembly, generic hardware modules with unique software need to be differentiated from each other to prevent incorrect installation.

It would be an advancement in the art to facilitate the installation and programming of generic hardware modules in a system such as a vehicle.

DETAILED DESCRIPTION

Referring toFIG. 1, an environment100in which methods described herein may be implemented may include a vehicle102. In particular, a vehicle102may be a vehicle in the process of being manufactured.

The vehicle102includes a plurality of generic modules104coupled to one or more components106, such as switches, sensors, motors, actuators, lights, or other vehicle components. Some of the generic modules104may be coupled to an electronic control unit (ECU)108or other computing device of the vehicle102, such as an in-vehicle infotainment (IVI) system. Generic modules104may also be coupled to one another.

The coupling between generic module104and any other entity104,106,108may be by means of wiring harnesses110. The wiring harnesses110may be wiring harnesses as known in the art of vehicle manufacture. In particular, a wiring harness110may include bundles of wires. Wires of a wiring harness110may be bundled together along part of their length and branch from one another at one or more points on the bundle.

The generic modules104may interact with a server system112hosting or accessing a database114of electrical signatures. As discussed in greater detail below, each electrical signature measures inherent electrical properties of wires connecting to a particular generic module104and loads coupled to the particular generic module104by those wires. Each generic module is at a particular physical location within the vehicle102and at a particular mounting point of the wiring harnesses110. The inherent electrical properties of the wires connected to the mounting point constitute a signature of the mounting point and may include properties of the wires as well as loads (e.g. other entities104,106,108) connected to the wires connected to the mounting point. Each mounting point may have a mounting point identifier such that each electrical signature stored in the database114is mapped to a unique mounting point identifier.

Each generic module104therefore measures a first electrical signature of its mounting point and cooperates with the server to match the first electrical signature with a second electrical signature stored in the database114. The mounting point identifier mapped to the second electrical signature may also be mapped to software implementing the function corresponding to the mounting point. For example, software implementing various functions of a vehicle may be stored in a database116hosted or accessed by the server system112or by a separate software server.

Examples of functions that may be performed by the generic module may include any that may be implemented by systems of a vehicle102. Some non-limiting examples may include: a power folding seat module, power liftgate module, upfitter's module, ancillary body module, heated steering wheel module, ancillary translator module, climate control seat module, retractable tow bar module, open sesame liftgate module, switch interface module, charge port light module, MY20+ hazard backlight flasher, and MY20+ front trunk release module.

The server system112may communicate with the generic modules104wirelessly by means of a wireless antenna118or may connected directly, such as by way of the ECU108or some other component.

FIG. 2is a block diagram illustrating an example computing device200. Computing device200may be used to perform various procedures, such as those discussed herein. The server system112, ECU108, and generic modules104may have some or all of the attributes of the computing device200.

Computing device200includes one or more processor(s)202, one or more memory device(s)204, one or more interface(s)206, one or more mass storage device(s)208, one or more Input/Output (I/O) device(s)210, and a display device230all of which are coupled to a bus212. Processor(s)202include one or more processors or controllers that execute instructions stored in memory device(s)204and/or mass storage device(s)208. Processor(s)202may also include various types of computer-readable media, such as cache memory.

Memory device(s)204include various computer-readable media, such as volatile memory (e.g., random access memory (RAM)214) and/or nonvolatile memory (e.g., read-only memory (ROM)216). Memory device(s)204may also include rewritable ROM, such as Flash memory.

Mass storage device(s)208include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As shown inFIG. 2, a particular mass storage device is a hard disk drive224. Various drives may also be included in mass storage device(s)208to enable reading from and/or writing to the various computer readable media. Mass storage device(s)208include removable media226and/or non-removable media.

I/O device(s)210include various devices that allow data and/or other information to be input to or retrieved from computing device200. Example I/O device(s)210include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capture devices, and the like.

Display device230includes any type of device capable of displaying information to one or more users of computing device200. Examples of display device230include a monitor, display terminal, video projection device, and the like.

Interface(s)206include various interfaces that allow computing device200to interact with other systems, devices, or computing environments. Example interface(s)206include any number of different network interfaces220, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet. Other interface(s) include user interface218and peripheral device interface222. The interface(s)206may also include one or more peripheral interfaces such as interfaces for printers, pointing devices (mice, track pad, etc.), keyboards, and the like.

Bus212allows processor(s)202, memory device(s)204, interface(s)206, mass storage device(s)208, I/O device(s)210, and display device230to communicate with one another, as well as other devices or components coupled to bus212. Bus212represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth.

Referring toFIG. 3, a generic module104may be mounted to wires A-D that are bundled in one or more bundles110a,110bof wires of the wiring harnesses110of the vehicle102. As shown, a pair of wires (A, B and C, D) may couple the generic module104to a load L1, L2. Each load L1, L2may be embodied as another entity104,106, or108. Each wire A-D may be coupled to a pin on a load L1, L2such that any path of the entity104,106,108coupling a pair of wires (A, B), (C, D) to one another constitutes the load L1, L2for that pair of wires. Note that “load” is used very generically and may include a power source, resistive load, reactive load, a one directional load that permits signals to pass in only one direction (e.g., comparable to a diode). A load may be a “high impedance load,” i.e. there is no electric path between the wires of a pair (A, B), (C, D) for such loads.

In addition to the load, each wire of a pair (A, B), (C, D) may have an individual length and may have a portion of that length in which the wires of the pair are bundled together and therefore have mutual inductance and/or capacitance.

A generic module104may include a plurality of pins each connected to a plurality of wires. Accordingly, a set of wire pairings may be defined as each possible pairing of any two pins of the plurality of pins, e.g., (A, B), (A, C), (A, D), (B, C), (B, D), and (C, D) in the illustrated example. Accordingly, the electrical properties for some or all of these pairings may be evaluated. The combination of the electrical properties for all of the pairings measured may constitute the electrical signature measured by the generic module104.

Referring toFIG. 4, measuring of the electrical signature of a generic module104in place at a mounting point within the vehicle102may include some or all of the illustrated steps. The generic module104may be loaded with software programming the generic module104to perform some or all of the steps of the method400and will include circuitry for performing the measurements associated with the steps of the method400that are executed. The measurements described below may be performed while the vehicle is running, e.g. at idle.

The method400may include, for each pairing of pins of the generic module, measuring402,404,406the resistance, capacitance, and/or inductance between the pins of the pairing. The manner in which these values are measured may be according to any method known in the art. In some embodiments, unique resistances, capacitances, or inductances may be added coupling wires connected by a load L1, L2to facilitate unique identification. In other instances, only inherent parasitic resistance, capacitance, and inductance of wires and loads are used without deliberate placement of reactive or resistive elements with unique values.

The method400may further include measuring408the voltage between pins of each pairing or between an individual pin and a pin known to be at a ground potential or other reference voltage.

The method400may include measuring410a step response or impulse response between pins of a pairing, i.e. inputting a step/impulse on one pin and measuring a returned signal on a second pin of the pairing.

The method400may include measuring412noise coupling between pins of a pairing, e.g. by inputting a coded signal on one pin and measuring amplitude of the coded signal on the second pin of the pairing.

The method400may include measuring414a length of the wire connected to a pin of the generic module104, such as by using time domain reflectometery (TDR) or some other measurement approach.

In some embodiments, the generic module104may include an accelerometer such that the orientation of the module104may be measured416from the output of the output of the accelerometer.

In some embodiments, the generic module104may include a wireless receiver or transceiver. The method400may include detecting418broadcast signals. For example, a device in the vehicle, such as the ECU108or an IVI system may broadcast a wireless signal, such as according to the BLUETOOTH protocol. Step418may include detecting such signals and calculating an estimated distance according to strength of the signals. Multiple beacons may broadcast signals thereby enabling the generic module104to estimate distances to each of the beacons.

Note that in some embodiments, none of the loads measured according to those of steps402-418that are performed provide a code that is unique to the mounting point and could be used to identify the mounting point to which the generic module104is mounted.

The measurements from those of steps402-418that are performed may then be compared420to signatures in the database114. In particular, for a particular vehicle model, the electrical signature at each mounting point according to some or all of steps402-418may be measured and mapped to that mounting point. E.g. a signature Si may be mapped to an identifier Mi for a particular mounting point at which that signature Si was measured. For each mounting point Mi, corresponding software Wi may be mapped to that mounting point Mi. The corresponding software Wi is software that programs a generic module104at that mounting point Mi to perform the specialized function associated with that mounting point Mi, such as any of the functions listed above with respect toFIG. 1.

Accordingly, step420may include evaluating the electrical signature according to steps402-418with respect to the signatures stored in the database114and identifying a stored signature that matches. Whether a signature matches may include determining whether values measured at a particular step402-418is within a predetermined tolerance of the value corresponding to that step in a stored signature. For example, resistance measured between pins of the generic module104with identifiers P1and P2may be determined to match if within X percent of the resistance recorded in the stored signature for the same pin identifiers P1and P2. In a like manner, for each measurement of steps402-418for a pin with a pin identifier or pair of pins with a pair of pin identifiers, measurements in a stored signature for the same pin identifier or pair of pin identifiers may be compared to determine whether they match within a predetermined tolerance for that measurement402-418.

If all of the measurements of steps402-418match corresponding measurements of a stored signature within the specified tolerance for the measurements, then the generic module may be determined422to match that stored signature.

FIG. 5illustrates a method by which a generic module is associated with a mounting point and programmed with software corresponding to that mounting point. The method500may be executed by the server system102in cooperation with the generic module104. The method500may be executed for each generic module104to be programmed. Note that where there are N generic modules, the method500may be performed N−1 times inasmuch as once all but one generic module104are mapped to mounting points, the last generic module104may be assumed to be at the mounting point that has not been previously mapped to another generic module104.

The method500may include populating the database114with stored signatures for a particular vehicle model. This may include performing steps502and504for each mounting point of the vehicle model (“the subject mounting point”). In particular, the method500may include measuring502the electrical signature104of the subject mounting point using a generic module104or other testing devices. Step502may include performing some or all of the measurements of steps402-418at the subject mounting point corresponding to a mounting point identifier of the subject mounting point and storing the results as a signature in the database114mapped to that mounting point identifier. The stored results may be stored in raw form or processed into a different form that is stored. As noted above, the measurements of step502may be performed while the unit of the vehicle model is running, e.g. at idle.

The method500may further include mapping504the signature of step502to software implementing the function associated with the subject mounting point. A mapping between the subject mounting point and its corresponding software may be provided by a human operator. Accordingly, the signature from step502may be mapped504to an identifier of the subject mounting point or an identifier of the corresponding software or its storage location.

For each vehicle (“the production vehicle”) of the vehicle model that was the subject of steps502and504, steps506-512may be executed for each generic module104placed in the production vehicle (“the subject module”). As noted above, once N−1 of N generic modules104are mapped according to steps506-512, the Nth generic module104may be mapped to the mounting point that is not mapped to any of the other generic modules104.

The method500may include placing506the subject module at a mounting point (“the subject mounting point”) in the production vehicle. This may include inserting the subject module in a socket at the subject mounting point such that pins of the generic module are in electrical contact with wires of one or more wiring harnesses110.

The method500may thein include measuring508the electrical signature of the subject mounting point and identifying510a matching stored signature in the database114, such as a signature recorded at steps502-504. Steps508and510may be performed as described above with respect to some or all of steps402-418and step422. The measurements of step508may be performed while the production vehicle is running, e.g. at idle.

The method500may then include programming512the subject module with the software mapped to the stored signature identified at step510. For example, the subject module may have a flash memory that may be programmed with an executable image of the software mapped to the mounting point identifier corresponding to the matching stored signature. The corresponding software may be identified as being mapped to the same mounting point identifier as the matching signature in the database114.

In some embodiments, a secondary check may be performed514following identification510of a matching signature and either before or after programming512with software. For example, the mounting point identifier corresponding to the matching signature may correspond to the mounting point for a control module of a particular component106. Accordingly, step514may include transmitting signals to that component106and evaluating a response (e.g., returned data, inductance, capacitance, impulse response, back EMF, voltage, etc.).

For example, if the component is a motor and the mounting point identifier is determined to be the mounting point for a control module for a liftgate motor, a signal to drive the motor would result in detection of the inductance of the coils of the motor. Likewise, the current drawn by the motor could change over time in a predictable manner, e.g. a drive motor for opening a liftgate would have a time varying current as the angle of the liftgate changes and as the liftgate reaches the end of its travel. Accordingly, by measuring this current over time, the generic module104may confirm that the motor coupled to it corresponds to the motor for the liftgate and the identification of the mounting point of the generic module was correct. Step514may be performed by the generic module104in cooperation with the server112. For example, measurements may be performed by the generic module104as instructed by the server. The generic module104then returns to the measurements to the server, which compares the measurements to stored measurements corresponding to the mounting point identifier to determine if they are sufficiently similar, e.g. similar within a threshold tolerance.

In some embodiments where step514is performed, step512is performed only after the secondary check of step514is satisfied.

In the foregoing description reference is made to vehicles. However, the above-described approach to using generic modules may be implemented in any system that includes wiring harnesses, such as an aircraft, automated machinery, or the like.

Note also that measurements at step502may be replaced in some instances by computed values obtained based on a model of the wiring harnesses and loads of the design of the vehicle102.

As is apparent form the above disclosure, a generic module104may be placed at a mounting point in a vehicle102without being programmed with any function, other than that required to measure the electrical signature of the mounting point. The generic module104therefore does not need to be marked or stored separately from generic modules to be placed at different mounting points. This reduces costs for maintaining inventory and reduces opportunities for incorrect placement.

It should be noted that the sensor embodiments discussed above may comprise computer hardware, software, firmware, or any combination thereof to perform at least a portion of their functions. For example, a sensor may include computer code configured to be executed in one or more processors, and may include hardware logic/electrical circuitry controlled by the computer code. These example devices are provided herein purposes of illustration, and are not intended to be limiting. Embodiments of the present disclosure may be implemented in further types of devices, as would be known to persons skilled in the relevant art(s). At least some embodiments of the disclosure have been directed to computer program products comprising such logic (e.g., in the form of software) stored on any computer useable medium. Such software, when executed in one or more data processing devices, causes a device to operate as described herein.

Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a computer system as a stand-alone software package, on a stand-alone hardware unit, partly on a remote computer spaced some distance from the computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).