Patent Description:
Some modern automated or semi-automated machines (e.g., in industrial environments such as factory assembly and/or inspection lines) may include tens or hundreds of components, which may be controlled and/or monitored by one or more remote devices. For example, there may be disparate components (such as sensors, actuators, encoders, motors, power sources, light sources, imagers, image processors, conveyors, controllers, signal processors, signal generators, etc.) to which data and/or control signals may be sent, and/or from which data and/or control signals may be received.

Modern manufacturing machines used in various types of factories can comprise hundreds of such disparate components that may be obtained from dozens of different vendors. The diverse ecosystem of various components allows designers of modern machines to assemble multiple components in a machine that can meet an almost unlimited set of design goals, without the need to invent custom components for every unique application. Examples of machines that may be constructed of multiple components include manufacturing machines, autonomous vehicles, modern automobiles, aircraft, wind turbines, and power plants.

Frequently, components for machines are produced in larger volumes than any one end-user application requires, so that fixed and variable costs associated with component manufacture are reduced. This business model is based on an expectation that the large volumes of components will be sold to many end-users and/or used in many different end-user applications. A consequence of large-volume production is that many components for machines are designed independently of any particular end-user application. Accordingly, such components will typically not be optimized for any particular application. Lack of component optimization at the design phase can lead to use of relatively larger numbers of components in an automated or semi-automated machine, in which the overall functionality or capability of a component may be underutilized. Further, the addition of one or more adapting components may be required to adapt the functionality of one or more included components to accomplish a particular design goal for an automated or semi-automated machine. In sum, non-customized generality for components of machines can result in appreciable added complexity and cost to the automated or semi-automated machine comprising such components. <CIT> discloses a system for programmed control of signal input and output to and from cable conductors. <CIT> discloses an input/output module for programmable logic controller-based systems. <CIT> discloses a programmable logic controller with configurable interface and configurable circuit for a programmable logic controller.

Described herein are inventive apparatus and methods relating to programmable input/output interface circuits for automated or semi-automated machines. Examples of programmable interface circuits can be used to assist in controlling the dynamic environment of an automated or semi-automated machine, for example, and may be installed between a controller and one or more components of the machine that are to be controlled and/or from which data may be received. Such components include sensors and actuators such as, but not limited to, thermal sensors, light sensors, wind sensors, pressure sensors, speed sensors, proximity detectors, strain gauges, x-ray detectors, radiation sensors, chemical sensors, moisture or humidity sensors, flame sensors, smoke or dust sensors, light sources, light curtains, galvinometers, encoders, motors, power sources, light sources, imagers, image processors, conveyors, controllers, signal processors, signal generators, robotics equipment, etc. According to some implementations, the programmable interface circuits of the present implementations can be programmed (either prior to use or in real time during operation of the machine) to interface with a wide variety of components that use different signaling types (e.g., different types of digital and analog signaling schemes). In some implementations, the interface circuits can transmit and receive different signaling types through a same signaling channel. The ability to transmit and receive different signaling types through a same signaling channel can result in fewer interconnect cables, less interconnection complexity, a smaller footprint for control apparatus, reduced cost of implementation and operation, and more reliable operation.

In sum, various implementations are directed to programmable interface circuits that can adaptively communicate signals between an isolating communication controller and a component of a machine. In one example implementation, the programmable interface circuit comprises a plurality of interconnects to receive programming inputs from the isolating communication controller and a signaling channel to carry signals between the programmable interface circuit and the component. The programmable interface circuit also comprises a programmable analog I/O circuit to connect to the signaling channel and to receive a first signal from the isolating communication controller, a programmable digital I/O circuit to connect to the signaling channel and to receive a second signal from the isolating communication controller and a current-sensing circuit to sense an amount of current flowing in the signaling channel. During operation, the programmable interface circuit is programmable, based on at least a first one of the programming inputs when applied to the plurality of interconnects, to provide a first analog signal to the signaling channel based on the first signal received from the isolating communication controller or a first digital signal to the signaling channel based on the second signal received from the isolating communication controller.

A first embodiment of the invention is provided by a programmable interface circuit according to independent claim <NUM>.

A second embodimentof the invention is provided by a method of operating a programmable interface circuit according to independent claim <NUM>.

The foregoing and other aspects, implementations, and features of the present teachings can be more fully understood from the following description in conjunction with the accompanying drawings. It should be appreciated that all combinations of the foregoing aspects, implementations, and features and additional aspects, implementations, and features discussed in greater detail below (provided such aspects, implementations, and features are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein.

The skilled artisan will understand that the drawings primarily are for illustrative purposes and are not intended to limit the scope of the inventive subject matter described herein. The drawings are not necessarily to scale; in some instances, various aspects of the inventive subject matter disclosed herein may be shown exaggerated or enlarged in the drawings to facilitate an understanding of different features. In the drawings, like reference characters generally refer to like features (e.g., functionally similar and/or structurally similar elements).

Following below are detailed descriptions of various concepts related to, and implementations of, inventive input/output methods and apparatus for monitoring and/or controlling dynamic environments. It should be appreciated that various concepts discussed herein may be implemented in multiple ways. Examples of specific implementations and applications are provided herein primarily for illustrative purposes.

In particular, the figures and example implementations described above and below are not meant to limit the scope of the present disclosure to the example implementations discussed herein. Other implementations are possible by way of interchange of at least some of the described or illustrated elements. Moreover, where certain elements of the disclosed example implementations may be partially or fully instantiated using known components, in some instances only those portions of such known components that are necessary for an understanding of the present implementations are described, and detailed descriptions of other portions of such known components are omitted so as not to obscure the salient inventive concepts underlying the example implementations.

<FIG> depicts a simplified example of a portion of conventional control architecture and apparatus for automation of a machine <NUM> that may be implemented in a manufacturing facility, for example. In <FIG>, a programmable logic controller (PLC) <NUM> may send and receive signals to at least one signal transformer <NUM>-<NUM> to ultimately communicate with a component of the machine <NUM>. Although only one PLC is shown in the drawing, it should be appreciated that there may be multiple such PLCs disposed at various locations in the manufacturing facility (e.g., tens or even hundreds of PLCs in some implementations). In some cases, each PLC can couple to a plurality of signal transformers <NUM>-<NUM>, <NUM>-<NUM>,. which in turn couple via one or more wiring harnesses <NUM> to components <NUM>, <NUM>, <NUM> in an automated or semi-automated machine <NUM>.

In <FIG>, for purposes of illustration the machine <NUM> is shown as including three example components, namely, a sensor <NUM>, a stepper motor <NUM>, and a thermal control instrument <NUM> (heater and/or cooler). In practical applications, the machine <NUM> (as well as other machines in the manufacturing facility) may have fewer, greater, and/or different types of components coupled to the programmable logic controller <NUM> (although, generally speaking, at least one or more sensors <NUM> typically would be included in the machine <NUM>). The components of the machine <NUM> operate in a dynamic environment in response to command signals and/or sensed signals. Actions of one component may depend upon actions of another component and/or changes in the dynamic environment sensed by one or more sensors <NUM>.

In implementations like that show in <FIG>, a programmable logic controller <NUM> may connect to and communicate with a plurality of signal transformers <NUM>-<NUM>, <NUM>-<NUM>,. <NUM>-N over a plurality of interconnects <NUM>. A signal transformer may be designed to handle a specific signaling type, and there may be differently designed signal transformers for each signaling type. For example, there may be a first signal transformer <NUM>-<NUM> for an analog first signaling type and a second signal transformer <NUM>-<NUM> for a digital first signaling type. There may be a third signal transformer for an analog second signaling type that is different from the analog first signaling type, and so on. Each signal transformer may have a plurality of pins (e.g., physical conductive interconnects for input/output signaling channels) that may be used to connect wires and/or cables <NUM> to the wiring harness <NUM> directly, as depicted. The PLC <NUM>, signal transformers <NUM>, and wiring harness <NUM> may appear as that shown in the photograph of <FIG>. Typically, there can be a different number of wires and/or cables <NUM> connecting to the signal transformers and to respective components of the machine <NUM>.

<FIG> shows an example of wiring congestion that can occur in connection with an equipment rack <NUM>, which is barely visible in the photograph. Often, equipment racks and/or electronics cabinets may be used to mount programmable logic controllers <NUM>, signal transformers <NUM>, wiring harnesses <NUM>, and other interface apparatus for an automated machine. For some automated or semi-automated manufacturing machines, multiple racks containing multiple PLC's, signal transformers, wiring harnesses, and complex cabling (e.g., a daunting amount of interconnection cables and set of custom cable harnesses) may be required. When multiple PLCs, signal transformers, and wiring harnesses are installed in an equipment rack <NUM>, the rack can become very congested with cabling, making it very difficult to service. In addition to the complexity at initial set-up, troubleshooting and repairing such equipment can be a highly complex, time-consuming, and costly task. In some cases, the racks, cabling, harnesses, and PLCs may be assembled and housed in several large, expensive electrical cabinets, resulting in apparatus as shown in <FIG>.

The challenges of machine automation can include reliably connecting, coordinating, and controlling (often at an appreciably high speed of operation) several disparate components in an automated or semi-automated machine. Overcoming such challenges can add substantial engineering time, complexity, and cost to the machine, as described above. The challenges may be more difficult for new machine designs. In some use cases, power and communication standards may constrain, at least partially, the scope of system complexity. Notwithstanding, the task of harmonizing multiple power and/or communication standards where they exist, coupled with the presence of multiple disparate machine components and their respective power and communications/signaling requirements, can engender a significant investment of time, effort, and cost.

The Applicant has recognized and appreciated that the complexity of combining disparate components in systems for automation, including manufacturing machines in various factory environments, may also limit the reliability of the resulting systems, leading to lower uptime and significant repair and maintenance costs. Such reduced reliability can mean that using systems composed of several automated conventional and disparate components increases risks of operating the machine (e.g., increased risk of downtime and cost associated with repairs).

The process of designing the arrangement of components in an automated or semi-automated machine, assembling these disparate components, and getting them all to function properly can require significant human capital that, in some cases, exceeds the parts costs of the machines themselves. The Applicant has also recognized and appreciated that such steep economics are a substantial constraint on the utilization of automation in automated or semi-automated machines. Some or all of the foregoing complexity, risk, and cost factors may be gating considerations for machine automation in various areas of the economy (e.g., beyond a factory automated or semi-automated environment) in which automation may be applied. Such areas may include, but are not limited to, offices, homes, autonomous vehicles, modern automobiles, communication systems, fluid handling or processing systems, waste processing plants, power plants, and gas and/or electric power grids.

In further consideration of the interconnection of various components in a machine, the Applicant has also recognized and appreciated that multiple Industrial Ethernet standards have been developed and deployed to good effect to control machine components (which may be referred to in some instances as "peripheral devices. While some components or peripheral devices may be controlled according to such Industrial Ethernet standards, other components of a machine may require relatively simpler control interfaces, examples of which include, but are not limited to, control interfaces that accommodate single-ended and differential binary voltage-based and current-based connections, as well as signaling via analog current and voltage signals. For various reasons, most if not all of these connections should maintain electrical isolation between components while permitting the free flow of data and, in some cases, power as well.

In view of the potential complexity of wiring and interfacing with multiple different components for automation of a machine, the Applicant has recognized and appreciated several of the above-mentioned challenges associated with machine automation that could be mitigated with a programmable interface circuit and module. The Applicant recognizes and appreciates that an important part of rapidly deploying less expensive and more reliable automated or semi-automated machines includes improving integration of at least some fundamental system components, making greater use of networking and distributed control (e.g., as opposed to having power and control in a centralized large electrical cabinet with complex cabling), and utilizing adaptive and programmable (flexible) interface circuitry for input and output signaling.

In view of the foregoing, <FIG> depicts a portion of apparatus and control architecture for an automated or semi-automated machine that implements improved integration and networking of system components and adaptive and programmable (flexible) interface circuitry for input and output signaling. In <FIG>, a system controller <NUM> provides various control and programming signals, and receives information from, one or more components of machine <NUM>. In some implementations, system controller <NUM> communicates via one or more serial communication channels over wired or wireless link <NUM>. Examples of controllers that may serve as system controller <NUM> include, but are not limited to, a PLC, a personal computer, a laptop computer, a microprocessor, a microcontroller, a distributed machine controller, or some combination thereof. In one exemplary implementation, the system controller <NUM> may include the Maestro <NUM> available from Opteon Corporation of Cambridge, Massachusetts. Information about the Maestro <NUM> controller currently can be found at www. opteontech. com/seamless-systems/beyond-plcs. Inventive technology employed by the Maestro <NUM> is described in <CIT>, which is incorporated herein by reference in its entirety. Amongst other benefits, employing the Maestro <NUM> in the system controller <NUM> provides for a compact, cost effective, and extremely low latency control solution for automation of machines.

As illustrated in <FIG>, an isolating communication controller <NUM> can receive signals from, and transmit signals to, the system controller <NUM> via the wired or wireless link <NUM>. The isolating communication controller <NUM> can provide electrical isolation (e.g., isolation of voltages and currents) between the link <NUM> and factory wiring that ultimately connects to the machine <NUM>. In some implementations, the isolating communication controller <NUM> can receive time-multiplexed serialized signals from the system controller <NUM>, electrically isolate the received signals, and convert the serialized isolated signals to parallelized programming inputs that are applied to a programmable interface module <NUM> to program operating modes of the module <NUM>, as discussed further below. The isolating communication controller <NUM> can also receive parallelized data from one or more programmable interface modules <NUM> and serialize the data, and electrically isolate the serialized data for transmission to the system controller <NUM> via the link <NUM>. The isolating communication controller <NUM> may use signal multiplexers to convert serial signals to parallel signals and vice versa, and may employ opto-isolators and/or other opto-isolation circuit components to achieve electrical isolation.

With regard to adaptive and programmable interface circuitry, the isolating communication controller <NUM> can connect to a programmable interface module <NUM>, including programmable interface circuits <NUM>, <NUM> as described further below, to provide control signals of different signaling types and power to, and/or receive input signals of different signaling types from, a wide variety of components in an automated or semi-automated machine <NUM>. An advantageous aspect of the programmable interface module <NUM> and its circuitry is that it includes one or more adaptive signaling channels (so-called "flexible I/O" channels) where each signaling channel can be programmed to send and/or receive different analog and digital signaling types. The combination of the isolating communication controller <NUM> and the programmable interface module <NUM> is referred to herein as a "flex I/O controller" <NUM>, which allows for electrical isolation and diverse signaling to and from one or more components in the machine <NUM> that respectively employ different signaling types. In different implementations of a flex I/O controller <NUM>, the programmable interface module <NUM> may be incorporated as circuitry in a same package with the isolating communication controller <NUM>, or may be packaged as a separate module that can be mounted in close proximity to the isolating communication controller.

In one aspect, the flex I/O controller <NUM> allows the system controller <NUM> to achieve compatibility with virtually any component or device of the machine <NUM> to which the programmable interface module <NUM> may be connected. According to some inventive implementations described below, a same type of cable and connectors may be used between each interface module <NUM> and component(s) or break-out-box <NUM> to which the interface modules connect. As compared to conventional system implementations as illustrated in <FIG>, the flex I/O controller <NUM> thus provides an elegant and robust solution to the problem of requiring multiple signal transformers that respectively engender complicated and complex wiring arrangements, and the various challenges associated with such arrangements (including vulnerability to breakage or other failure, and significant difficulty in troubleshooting breakages and other failures).

As shown in <FIG>, the programmable interface module <NUM> may be located between the isolating communication controller <NUM> and one or more components <NUM>, <NUM>, <NUM>, <NUM> of the machine <NUM>. According to some implementations, a programmable interface module <NUM> may be configured to interface with up to <NUM> machine components. However, in some cases, a programmable interface module <NUM> may be configured to interface with any suitable number of components (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, etc.). For example, as discussed in greater detail below in connection with <FIG>, a programmable interface module <NUM> may comprise N copies of a programmable interface circuit <NUM>, wherein each circuit <NUM> is used to interface between an isolating communication controller <NUM> and a machine component. In some cases, a programmable interface module <NUM> may further comprise M copies of a different implementation of a programmable interface circuit <NUM>, wherein each circuit <NUM> is used to interface between an isolating communication controller <NUM> and a machine component. The values of N and M can be same or different positive integers between <NUM> and <NUM> in some implementations.

Apparatus for machine automation may also include break-out boxes <NUM> to which a programmable interface module <NUM> connects. One programmable interface module <NUM> may connect to one or more break-out boxes <NUM> using additional cables <NUM>. According to one example implementation, each cable <NUM> from an interface module <NUM> may support flexible I/O signaling with up to four machine components and connect to one break-out box <NUM>. Separate cables <NUM> may run from the break-out box <NUM> to each component <NUM>, <NUM>, <NUM>.

A programmable interface module <NUM> can include one or more signaling ports <NUM> to which one or more cables <NUM> connect. A signaling port <NUM> may comprise a plurality of conductive interconnects to carry different types of analog and/or digital signals, as well as power and reference potentials. According to an example implementation, there may be up to four or more signaling ports <NUM> on a programmable interface module <NUM>, such that a programmable interface module may provide flexible I/O signaling channels for up to <NUM> machine components, though interface modules supporting signaling with fewer or more machine components and signaling ports <NUM> are possible.

In some implementations, a same type of connector (male or female) can be used for each signaling port <NUM> and a corresponding mating connector used for an end of each cable <NUM>, <NUM>. According to some implementations, the cables <NUM> may all be of a same type for each signaling port and each programmable interface module <NUM>. In some cases, the cables may be <NUM>-wire or <NUM>-wire ethernet or industrial ethernet cables (e.g., CAT <NUM> series or CAT <NUM> series cables) having standard ethernet or industrial ethernet connectors (e.g., RJ-<NUM>, M8, or M12 male or female plugs) that plug into standard receptacles (e.g., RJ-<NUM>, M8, or M12 female or male receptacles) in the programmable interface module <NUM>. Accordingly, a significant simplification, reduction, or elimination of diverse connectivity apparatus (such as wires and wiring harnesses) can be achieved using programmable interface modules <NUM> of the present implementations.

It will be appreciated that some implementations may employ cables and connectors other than ethernet cables or use cables and connectors with a different number of signal wires. In some cases, one or more wireless links may be implemented between a programmable interface module <NUM> and one or more components in a machine and/or the controller <NUM>. Additionally or alternatively, different types of cables and connectors may be used for a single programmable interface module <NUM> having flexible I/O signaling capability.

According to some implementations, there can be data and power interconnects <NUM> between a programmable interface module <NUM> and an isolating communication controller <NUM>. Such interconnects can be contained within a package or housing that includes both the isolating communication controller and the programmable interface module. Alternatively, the data and power interconnects may be made using one, two, or more multi-wire cables and connectors when the controller <NUM> and interface module <NUM> are packaged separately.

As noted above, employing a flex I/O controller <NUM> including a programmable interface module <NUM>, as shown in <FIG> and in accordance with the implementations described herein, may significantly reduce the need for, or eliminate, use of diverse discrete signal transformers <NUM>, complex wiring harnesses, diverse connectors and cables, and adapting component that are typically required in conventional automated or semi-automated machine architectures. An example of such reduction can be envisioned from a comparison of the architecture of <FIG> with that of <FIG>. As described in greater detail below, reduction in automation complexity is made possible by the programmable interface module <NUM> that can essentially enhance the functionality of an isolating communication controller's input/output channels such that a channel can be controllably adaptive ("flexible") for handling different types of analog and digital signals. Such adaptability of an input/output channel may be referred to herein as "Flex I/O," "flexible I/O signaling," or "flexible I/O channel.

Multiple isolating communication controllers <NUM> and programmable interface modules <NUM> comprising such Flex I/O signaling channels may be employed together as a network of isolating communication controllers to control an automated or semi-automated machine, for manufacturing applications or other automated applications, with notably less complexity associated with the interconnections of respective components of the machine, as well as with low latency and increased reliability of operation. Such automated or semi-automated applications include, but are not limited to, manufacturing facilities, offices, homes, autonomous vehicles, modern automobiles that employ a plurality of processors and electronic control modules, communication systems, fluid handling or processing systems, waste processing plants, power plants, and gas and/or electric power grids.

<FIG> depicts an example of a flex I/O controller <NUM> in which an isolating communication controller <NUM> is packaged with at least one programmable interface module <NUM>. The illustration shows further details of some interconnects <NUM> between a programmable interface module <NUM> and isolating communication controller <NUM>. The interconnects <NUM> can comprise multiple wires (e.g., ribbon cables) for the multiple interconnects <NUM> on each programmable interface circuit <NUM>. According to some implementations, digital input lines (DIN) originating from the programmable interface circuits <NUM>, <NUM> can connect directly to an isolating communication controller <NUM>. In some cases, analog input (AIN) and output (AOUT) lines may be provided to an analog-to-digital converter (ADC) <NUM> and digital-to-analog converter (DAC) <NUM>, respectively, where conversion to or from digital signals occurs for communicating with the controller <NUM>.

In <FIG>, an example of a programmable interface module <NUM> is depicted with a simplified block diagram. A programmable interface module <NUM> can include a programmable bias circuit <NUM> that can be used to program the value of a supply voltage +VDC that is applied to one or more components in the programmable interface module <NUM>. According to some implementations, a programmable interface module <NUM> can include one or more programmable interface circuits <NUM>, <NUM> that each comprise programmable analog input/output circuitry <NUM> and programmable digital input/output circuitry <NUM>. The analog I/O circuit <NUM> and digital I/O circuit <NUM> can receive signals from and transmit signals to an isolating communication controller <NUM> using at least some of the conductive interconnects <NUM>. A programmable interface module <NUM> can further include programmable signal routing and isolation circuitry <NUM>. Output signals produced by the analog I/O circuit <NUM> and digital I/O circuit <NUM> can be directed to one or two output conductive interconnects <NUM>, <NUM> (labeled ADIO and DIFF, respectively) at a signaling port <NUM> with the signal routing and isolation circuitry <NUM>, according to some implementations. In some cases, the signal routing and isolation circuitry <NUM> can be programmed such that one of the output interconnects (e.g., interconnect <NUM>) provides single-ended signaling with respect to a ground potential or other reference potential. In some cases, the signal routing and isolation circuitry <NUM> can be programmed such that one of the output interconnects (e.g., interconnect <NUM>) may provide a ground or fixed reference voltage or resistive path to ground for single-ended signaling on the other output interconnect. In some implementations, the signal routing and isolation circuitry <NUM> can be programmed such that the two output interconnects <NUM>, <NUM> allow for differential signaling with respect to each other.

In some implementations, a programmable interface module <NUM> can include multiple copies of a single version of a programmable interface circuit <NUM> (e.g., copies of circuitry <NUM>, <NUM>, <NUM>), where each programmable interface circuit may communicate with one or more machine components. In some implementations, there may be at least four copies of a programmable interface circuit <NUM> in a programmable interface module <NUM>, such that the programmable interface module has four signaling channels (up to eight conductive interconnects <NUM>, <NUM>) to communicate with four machine components using an <NUM>-wire cable <NUM>. As such, standard industrial M8 or M12 cabling may be used to connect to the interface module <NUM>. However, the inventive programmable interface module <NUM> is not limited to four copies of an interface circuit <NUM> and standard M8 or M12 cables. In some cases, a programmable interface module <NUM> may have fewer or more than four copies of the programmable interface circuit <NUM>.

In some cases, there can be copies of two or more different versions of a programmable interface circuit <NUM>, <NUM> within a programmable interface module <NUM>. An example of such an implementation is described below in connection with <FIG>.

Further details of an example programmable analog I/O circuit <NUM> are illustrated in <FIG>. In some implementations, the programmable analog I/O circuit <NUM> comprises a first multiplexer <NUM>, a second multiplexer <NUM>, a switchable analog output signal driver <NUM>, a current sensor <NUM>, and a switchable receive signal driver <NUM>. The first multiplexer <NUM>, output signal driver <NUM>, and current sensor <NUM> can be connected to form a programmable or switchable output signal driver that outputs signals that either encode signals in voltage levels (e.g., operates as a voltage source) or encodes signals in current levels (e.g., operates as a current source). Accordingly, the programmable analog I/O circuitry <NUM> can either output analog voltage-sourced signals or analog current-sourced signals. The receive signal driver <NUM> can be programmed to receive single-ended analog signals or differential analog signals.

In some implementations, the first multiplexer <NUM> may be embodied as a multiplexing chip <NUM> that can be programmed (through an interconnect AMODE) to select one of two input signals (IN1, IN2) to provide at an output of the multiplexing chip <NUM>. An example of such a chip is the SN74LVC1G3157 single-pole double-throw analog switch configured for multiplexing operation, obtainable from Texas Instruments Incorporated of Dallas, Texas. However, other multiplexing circuits may be employed in some cases. For example, general-purpose field-effect transistors (FETs) may be used to controllably switch one of two signals onto a common output line. When a multiplexing chip <NUM> is used, the output from the chip can connect to a non-inverting terminal of an operational amplifier <NUM> in the output signal driver <NUM>, for example. A programmable "select" input of the multiplexing chip (shown connected to the conductive interconnect labeled AMODE) can be used to program operation for an analog voltage mode (e.g., essentially voltage-sourced output) or analog current mode (e.g., essentially current-sourced output) of the programmable analog I/O circuitry <NUM>. Voltage-sourced or current-sourced output can be provided to an interconnect P3 in the schematic of <FIG>, which can couple to circuitry with interconnect P3 (shown in <FIG>) to control voltage or current in the first output interconnect <NUM> (ADIO). In some implementations, the conductive interconnects in the drawings may be embodied as conductive traces or pads on a printed circuit board, wires, or pins of a connector, or some combination thereof.

A first input IN1 for the multiplexing chip <NUM> of the first multiplexer <NUM> can carry a signal that is proportional to a current level flowing in the first output interconnect <NUM> (ADIO). The current level is sensed by a current sensor <NUM> having a current-sensing chip <NUM> that is arranged to sense current flow on a line connected between a voltage or current supply +VDC and the first output interconnect <NUM> (interconnects P1 in <FIG> and <FIG> connect in the circuit implemenation). An example of a current-sensing chip <NUM> is the LT6106 current-sensing chip formerly marketed by Linear Technologies Corporation of Milpitas, California and now available from Analog Devices of Norwood, Massachusetts. However, other current-sensing circuits may be used (e.g., a sensing circuit that uses general-purpose operational amplifiers instead of a specialized chip). According to the illustrated implementation of <FIG>, a resistor R3 is placed in a power supply line that delivers power to the first output interconnect <NUM> through interconnect P1. A voltage difference across the resistor R3 can be sensed to provide a signal that is proportional to current flowing in the first output interconnect <NUM> (e.g., sourced to or sunk from the interconnect <NUM>). A second input IN2 for the multiplexing chip <NUM> can carry a signal that is proportional to a voltage level at a first output interconnect <NUM> (ADIO) of the programmable interface circuit <NUM>. For example, the second input IN2 may couple to the first output interconnect <NUM> (e.g., connect through one or more resistors R14 and receive signal driver <NUM>) with the interconnect P2.

By selecting a signal from the first input IN1 or the second input IN2, either current-level sensing or voltage-level sensing can be provided in a feedback circuit path to a non-inverting terminal of the operational amplifier <NUM> in the analog output signal driver <NUM>. Accordingly, the output signal driver <NUM> can be switched between two different feedback loops. When voltage-level sensing is used (IN2 input selected), the analog I/O portion of the programmable interface circuit <NUM> can operate in a voltage-to-voltage mode. In such a case, an output voltage from the amplifier <NUM> is proportional to an input voltage provided to the inverting terminal of the amplifier (e.g., through the conductive interconnect labeled AOUT. In some cases, an isolating communication controller <NUM> may supply an analog signal directly to AOUT (e.g., the isolating communication controller may include an on-board DAC). In other cases, a digital-to-analog converter (DAC) may be used (between the isolating communication controller and interface module as depicted in <FIG> or at a front end of the interface module <NUM>) to convert a digital signal from the isolating communication controller <NUM> to an analog signal that is provided to AOUT.

When current-level sensing is used (IN1 input selected), the analog I/O portion of the programmable interface circuit <NUM> can operate in a current output mode. In such a configuration, an output current from the amplifier <NUM> is proportional to an input voltage provided to the inverting terminal of the amplifier through AOUT. The input voltage may be received from an isolating communication controller <NUM> or DAC as described above.

An additional feature of the programmable interface circuit <NUM> is that it can receive analog signals over at least the first output interconnect <NUM> (ADIO via interconnect P2) and provide the received analog signals to an isolating communication controller <NUM> (e.g., through an interconnect AIN) or to an analog-to-digital converter (ADC) that provides a corresponding digital signal to the controller <NUM>, as illustrated in <FIG>. The switchable receive signal driver <NUM> can be used to monitor output signals delivered to the first output interconnect <NUM> (ADIO) for single-ended analog signals or to both output interconnects <NUM>, <NUM> (ADIO and DIFF) for differential analog signals. For example, a second multiplexer <NUM> having a multiplexer chip <NUM> can be used to switch between inputs IN1 and IN2 that provide different configurations of the receive driver operational amplifier <NUM>. When a first input (IN1) is selected based on a signal applied to interconnect (ADIFSEL), the inverting terminal of the operational amplifier <NUM> can connect to a reference potential (e.g., ground). In this configuration, the op-amp operates as a single-ended non-inverting amplifier for signals sensed via interconnect P2, which connects to the first output interconnect (ADIO). When a second input (IN2) is selected, the inverting terminal of the op-amp can connect to the second output interconnect <NUM> (DIFF). In this configuration, the op-amp <NUM> functions as a differential amplifier for differential analog signals appearing across the output interconnects (ADIO) and (DIFF). In some cases, the select pin of the second multiplexer <NUM> (illustrated connected to an interconnect labeled ADIFSEL) can instead connect to an interconnect (labeled RXEN) of a transceiver <NUM> (shown in <FIG>) to avoid an extra interconnect.

Output from the op-amp <NUM> of the switchable receive signal driver <NUM> can be provided to an interconnect (AIN) that provides the signal to an isolating communication controller (or to an ADC that provides the signal to an isolating communication controller, as depicted in <FIG>). When receiving or sensing an analog signal, the first output interconnect <NUM> may be isolated from the output of the operational amplifier <NUM> of the output signal driver <NUM> and from the digital I/O circuitry <NUM>, as described in further detail below in connection with the programmable signal routing and isolation circuitry <NUM>.

An example of programmable digital I/O circuitry <NUM> is illustrated in <FIG>. According to some implementations, the digital I/O circuitry <NUM> includes an adjustable high-level logic driver <NUM>, a low-level logic driver <NUM>, and a transceiver <NUM>. The high-level logic driver <NUM> and low-level logic driver <NUM> can be used to provide single-ended logic signals on the first output interconnect <NUM> (ADIO). The transceiver <NUM> can be used to provide single-ended logic signals on the first output interconnect <NUM> or differential logic signals on the first output interconnect <NUM> (ADIO) and second output interconnect <NUM> (DIFF), and can also be used to receive single-ended and differential logic signals.

Because of the versatility of the analog and digital I/O circuitry, the programmable interface circuit <NUM> can support standardized network communications in some implementations. For example, one or more digital signaling channels can be programmed to support RS485 communications according to standard signaling protocols. As a more specific example, a digital I/O circuit <NUM> can be programmed to support a linear bus topology using two interconnects <NUM>, <NUM> for a two-wire RS-<NUM> networking channel. Alternatively, two digital I/O circuits <NUM> can be programmed to support a four-wire, full-duplex RS-<NUM> networking channel. Other networking protocols that can be supported by a programmable interface module include, but are not limited to, Profibus and CAN bus.

According to some implementations, an adjustable high-level logic driver <NUM> can be implemented with a current mirror <NUM> and relay driver <NUM>. The current mirror and relay driver can drive (via interconnect P4) a transistor <NUM> (shown in <FIG>) that switches any suitable voltage +VDC onto the first output interconnect <NUM>. In this manner, the current mirror <NUM> and relay driver <NUM> can provide translation of a high logic value received from the isolating communication controller <NUM> (e.g., at the conductive interconnect labeled DOUTP) to any voltage level +VDC appropriate for a component of a machine <NUM> to interpret as a logic high level. The component can be connected to the first output interconnect <NUM>. In some implementations, the voltage value +VDC can be user programmable, as described below in connection with <FIG>. Other implementations for the high-level logic driver <NUM> are possible. In some cases, an output from an isolating communication controller <NUM> may be sufficient to directly drive a transistor <NUM>, and a current mirror <NUM> and relay driver <NUM> may not be needed. In some implementations, the current mirror and relay driver may be replaced with an amplifier, line driver, buffer, or some combination thereof.

A low-level logic driver <NUM> may be implemented in part with a transistor <NUM>, according to some implementations. The transistor may be configured to switch a low-level reference voltage, such as ground potential, onto the first output interconnect <NUM> (through interconnect P2) in response to a signal received from an isolating communication controller <NUM> (e.g., via conductive interconnect DOUTN). In some cases, a resistor R17 and second transistor T8 may be used in combination with transistor <NUM> to establish a safe pull-down current to a voltage that will be interpreted as a logic low level by a component connected to the first output interconnect <NUM>. In some cases, the low-level logic driver <NUM> can be used to invert a logic signal from the isolating communication controller. For example, transistor <NUM> may be an n-FET that is turned on by a positive voltage, and transistors <NUM> and <NUM> (<FIG>) may be placed in ON states. In such a configuration, a logic signal driving transistor <NUM> would be inverted at the first output interconnect <NUM>. When the transistor <NUM> is placed in an OFF state, it can effectively isolate circuitry of the low-level logic driver <NUM> from the first output interconnect <NUM>.

A transceiver <NUM> can be implemented with a transceiver chip <NUM> in some implementations. An example of a transceiver chip is the LTC2876 transceiver chip formerly marketed by Linear Technologies Corporation of Milpitas, California and now available from Analog Devices of Norwood, Massachusetts. Such a transceiver chip can provide user-selectable single-ended or differential digital transmission and reception on two output interconnects (TR1, TR2). In some cases, the transceiver chip <NUM> may be used for transmitting and receiving digital signals at <NUM> volt logic levels or at <NUM> volt logic levels. The logic signal level can be set, for example, by a voltage level applied to the transceiver's Vcc supply pin. The transceiver <NUM> may have programmable input interconnects (labeled TXEN, RXEN) that can connect to an isolating communication controller <NUM> and be used to program the transceiver to transmit or receive digital signals, respectively. The transceiver <NUM> may further include digital data interconnects (labeled DIN, DOUT) that can connect to an isolating communication controller <NUM>. The digital data interconnect DIN can be used to transmit digital data received from a component in a machine <NUM> to an isolating communication controller <NUM>. The digital data interconnect DOUT can be used to transmit digital data received from the isolating communication controller <NUM> to a component in a machine <NUM>. Although a specialized transceiver chip <NUM> may be used for some implementations, a transceiver <NUM> can be formed from more basic circuit components (such as packaged transistors, resistors, etc.) in alternative implementations.

The digital I/O circuitry <NUM> may include a shunting switch (e.g., transistor <NUM>), according to some implementations, that connects between the first output interconnect <NUM> (via interconnect P2) and a reference voltage (ground in the illustrated example). In some cases, a low-impedance resistor R4 may be included in series with the current-carrying terminals of the transistor <NUM>. This transistor may be used to provide a logic low-level value on the first output interconnect. It may also be used to provide a low-impedance sink for current received from the first output interconnect <NUM> (e.g., when receiving analog signals from sensors). For example, the value of the resistor R4 may be any value between <NUM> ohms and <NUM> ohms. The low-impedance path may be useful for current-sensing or current-encoded communication operations and for differential analog voltage measurements.

In some implementations, digital I/O circuitry <NUM> may further include a second shunting switch (e.g., a transistor, not shown) that connects between the second output interconnect <NUM> (DIFF) and a reference voltage (e.g., ground). This second shunting switch may be used to provide a reference voltage on the second output interconnect <NUM> for single-ended transmission or reception, for example. Digital I/O circuitry <NUM> can include interconnects P2, P4, and P5 that connect with corresponding interconnects of the Analog I/O circuitry <NUM>.

<FIG> illustrates an example of programmable signal routing and isolation circuitry <NUM> that can be implemented in a programmable interface circuit <NUM>. According to some implementations, the routing and isolation circuitry comprises a plurality of transistors that are configured to switch analog or digital signals onto the first output interconnect <NUM> (ADIO) and/or isolate analog and digital circuitry from the first output interconnect <NUM>. For example, a first transistor <NUM> can be configured as an amplifier that drives an analog signal on the first output interconnect <NUM> when an analog signal is input to the analog I/O circuitry <NUM> (e.g., received from an isolating communication controller <NUM> at interconnect AOUT and output to interconnect P3 by the analog signal driver <NUM> of <FIG>). The first transistor <NUM> may be a power FET, such as the Siliconix Si3459BDV power MOSFET available from Vishay Intertechnology, Inc. of Malvern, Pennsylvania. When digital signals are provided to the first output interconnect <NUM>, the first transistor <NUM> may be placed in an ON state, so that a voltage supply can be provided to a second transistor <NUM> of the routing and isolation circuitry <NUM>.

The second transistor <NUM> (which can also be a power transistor and may be a same model as the first transistor <NUM>) may be used to drive logic signals on the first output interconnect <NUM>. For example, a logic signal applied to the input of the high-level logic driver <NUM> (e.g., provided at interconnect DOUTP of <FIG>) can be translated in voltage and switched onto the first output interconnect <NUM> by the second transistor <NUM>.

When signaling is not provided by the analog I/O circuitry <NUM> nor the high-level logic driver <NUM>, the first transistor <NUM> and second transistor <NUM> may be placed in an ON state to supply a high voltage level +VDC to the first output interconnect <NUM>. In this configuration, the digital signal interconnect DOUTN and low-level logic driver <NUM> can be used to drive an inverted logic signal on the first output interconnect <NUM>, according to some implementations.

The transistors of the programmable signal routing and isolation circuitry <NUM> and the transistor <NUM> of the low-level logic driver <NUM> may, in some cases, be thought of as isolation switches. For example, when a relevant one of these transistors is in an OFF state, it can isolate the first output interconnect from analog circuitry, digital circuitry, and/or voltage levels associated with the analog and digital circuitry. Use of these transistors allows the flexible I/O signaling (transmission and reception) of different types of digital and analog signals through a same signaling channel having one or two output interconnects <NUM> (ADIO), <NUM> (DIFF), according to some implementations.

As described above, voltage supplies that may be used in a programmable interface circuit <NUM> (such as +VDC and -VDC for a circuit that provides positive and negative voltage swings) can be user-programmed according to some implementations. <FIG> illustrates an example programmable bias circuit <NUM> for programming a supply voltage for any one or combination of the circuit portions described above. According to some implementations, a programmable bias circuit <NUM> can include a first terminal <NUM> configured to receive a first bias voltage (+<NUM> V in the illustrated example) and a second terminal <NUM> configured to receive a second bias voltage (+<NUM> V in the illustrated example) that are connectable to an output bias terminal <NUM> providing a bias voltage +VDC. Other bias values may be used for other implementations. A first transistor <NUM> may be used to connect the first terminal, having a higher bias value, to the output bias terminal <NUM>. A Zener diode D8 may be used to effectively isolate a lower bias supply from the output bias terminal when the higher bias supply is connected to the output terminal. In some cases, a second transistor <NUM> may be used to turn the first transistor <NUM> on or off (e.g., if a gate voltage needed for the first transistor is higher than that provided by a logic driver of an isolating communication controller). A bias value may be selected by setting or clearing a logic input (labeled VDSEL). Although only two bias values are shown that are selectable by a single programmable logic input, additional bias values may be added and selected by adding more transistors, bias input terminals, and programmable logic inputs, for example.

Some example voltage bias values that may be used to operate a programmable interface module <NUM> and its interface circuits <NUM> include, but are not limited to, <NUM> V DC, <NUM> V DC, and <NUM> V DC. In some implementations, a programmable interface module <NUM> may include power supply circuitry and/or components to generate the bias voltages internally and in isolation from an isolating communication controller. In such implementations, a programmable interface module <NUM> may locally share the ground reference(s) of the component(s) connected to the interface module via a wire on interconnect cables <NUM>, <NUM> in a local portion of the machine, and avoid ground discrepancies that could occur over larger portions of the machine. In some cases, a programmable interface module <NUM> may also or alternatively share one or more bias supplies locally with the component(s) connected to the interface module via one or more wires on an interconnect cable in a local portion of the machine.

Referring again to <FIG>, it will be appreciated from the above descriptions of the programmable analog I/O circuitry <NUM>, programmable digital I/O circuitry <NUM>, and programmable signal routing and isolation circuitry <NUM> that various settings on the interconnects <NUM> can configure or program an interface circuit <NUM> to handle different types of analog and digital signaling. Some example settings are described next. It will be appreciated by one knowledgeable in the art that the described settings are dependent upon the types and/or number of transistors used to implement isolation switches in the interface circuit <NUM>. Accordingly, the settings may differ when different types and/or different numbers of transistors are used to implement isolation switches.

For analog signal transmission to a component of a machine <NUM>, the second transistor <NUM> can be placed in an ON (i.e., conducting) state (e.g., DOUTP set to a logic high value) which allows an analog signal to pass through to the first output interconnect <NUM>, the shunting transistor <NUM> can be placed in an OFF (i.e., non-conducting) state (interconnect CURSINK cleared to a logic low value) which isolates the reference potential (ground in the illustrated implementation) from the first output interconnect <NUM>, and the transistor <NUM> of the low-level logic driver <NUM> can be placed in an OFF state (DOUTN cleared to a logic low value) which isolates the low-level logic driver circuitry from the first output interconnect <NUM>. It will be appreciated that analog signal transmission may be in current mode or voltage mode, in accordance with a mode selection (made on interconnect AMODE) as described above. Further, analog data may be transmitted as time-varying signals, as static DC values, or as time-varying signals superposed on a DC value (e.g., serial data superposed on a DC current) by application of such signals to interconnect AOUT by an isolating communication controller <NUM>.

For analog signal reception, at least the second transistor <NUM> can be placed in an OFF state (DOUTP cleared to a low logic value) to isolate circuitry of the high-level logic driver <NUM>, the amplifier <NUM>, the current sensor <NUM>, and supply +VDC from the first output interconnect <NUM>. In some cases, the first transistor <NUM> may also be placed in an OFF state (AOUT cleared to a low or zero-voltage level). The transistor <NUM> of the low-level logic driver <NUM> can be placed in an OFF state for analog signal reception. In some cases, the shunting transistor <NUM> can be placed in an ON state (CURSINK set to a logic high value) to sink analog current for analog signal reception based on received current. Alternatively, the third transistor <NUM> can be placed in an OFF state (CURSINK set to a logic low value) for analog signal reception based on received voltage. Further, analog data may be received as time-varying signals, temporarily static values, or as time-varying signals superposed on a temporarily static value. A temporarily static value may have no change in value for a period of time between <NUM> microsecond and <NUM> seconds.

When a time-varying signal is superposed on a temporarily static value, appropriate digital filtering by an isolating communication controller for analog signal reception can allow the DC current or voltage information to be read while also reading serial digital information superposed on the DC current or voltage. The serial digital information may be superposed for signal transmission and/or reception, according to some implementations, as a +/- 1mA modulation of a DC current in the range of <NUM> to <NUM> mA. Baud rates of the superposed data between <NUM> baud and <NUM> kilobaud, as well as higher rates may be received and decoded by an isolating communication controller or component of a machine, according to some implementations.

When a transceiver chip <NUM>, such as the LTC2876 transceiver chip, is used in the transceiver <NUM>, it may be desirable to place its outputs in a high-impedance state during analog signal transmission and reception. For the LTC2876 transceiver chip, this can be done by placing the chip's receive enable pin (connected to interconnect RXEN in the illustrated implementation) at a high logic level and placing the chip's transmission enable pin (connected to interconnect TXEN in the illustration) at a low logic level. Other settings may be needed for different transceiver chips or transceiver configurations.

For differential signal transmission and reception via the transceiver <NUM>, at least the second transistor <NUM> can be placed in an OFF state (DOUTP cleared to a logic low value) to isolate circuitry of the high-level logic driver <NUM>, the amplifier <NUM>, the current sensor <NUM>, and supply +VDC from the first output interconnect <NUM> (ADIO). In some cases, the first transistor <NUM> may also be placed in an OFF state (AOUT cleared to a low or zero-voltage level). The transistor <NUM> of the low-level logic driver <NUM> can also be placed in an OFF state (DOUTN cleared to a low logic value) for differential signal transmission. The shunting transistor <NUM> can also be placed in an OFF state (CURSINK cleared to a logic low value) to isolate the reference potential (ground in the example) from the differential signal lines (ADIO and DIFF).

Transmission mode and reception mode for differential digital signaling may be established by setting pin values on a transceiver chip <NUM>. For example, when the LTC2876 transceiver chip is used in the transceiver, clearing its receive enable pin (connected to RXEN) to a logic low value and clearing its transmit enable pin (connected to TXEN) to a logic low value configures the transceiver to receive differential digital signals on the first output interconnect <NUM> (ADIO) and second output interconnect <NUM> (DIFF) and provide a corresponding digital signal to an isolating communication controller <NUM> at the chip's digital output (connected to interconnect DIN). Conversely, setting the transceiver chip's receive enable pin to a logic high value and setting its transmit enable pin to a logic high value configures the transceiver to transmit a digital signal received at the chip's digital input (connected to interconnect DOUT) from an isolating communication controller <NUM> to a component connected to the first output interconnect <NUM> (ADIO) and second output interconnect <NUM> (DIFF) as a differential digital signal. Other settings may be needed for different transceiver configurations.

Single-ended digital reception may be performed with the transceiver <NUM> according to some implementations. For example, when the LTC2876 transceiver chip is used in the transceiver, clearing its receive enable pin (connected to RXEN) to a logic low value and clearing its transmit enable pin (connected to TXEN) to a logic low value configures the transceiver to receive single-ended digital signals on the first output interconnect <NUM> (ADIO). The second transistor <NUM>, the third transistor <NUM>, and optionally the first transistor <NUM> may also be cleared to isolate their respective circuitry. In this configuration, a logic high value will appear on the transceiver's output (connected to DIN) when a voltage level on the first output interconnect <NUM> (ADIO) is greater than one-half the value of +VDC (due to the voltage divider <NUM> on the second output interconnect <NUM> in the illustrated implementation). A logic low value will appear on the transceiver's output (DIN) when a voltage level on the first output interconnect <NUM> (ADIO) is below one-half the value of +VDC. If current pull-up is required when receiving single-ended digital signals from some transmitters, the first transistor <NUM> and second transistor may be set to an ON state. If current pull-down is required when receiving single-ended digital signals from some transmitters, the transistor <NUM> of the low-level digital driver <NUM> may be set to an ON state.

Single-ended digital transmission can be performed with the high-level logic driver <NUM> and/or low-level logic driver <NUM>, as described above. Settings for the interconnects to enable single-ended digital transmission will be apparent to one knowledgeable in the art based on the foregoing description. When performing single-ended digital transmission, the outputs of the transceiver <NUM> may be placed in a high-impedance state, as described above. By selecting a voltage level for +VDC, single-ended digital transmission can be performed at a user-programmed, logic-high voltage level.

If needed, one or more of the interconnects <NUM> between an isolating communication controller <NUM> and the programmable interface module <NUM> can be electrically isolated to an extent from outputs and/or other portions of the isolating communication controller. For example, opto-isolation, capacitive isolation, or inductive isolation circuits, or some combination thereof, may be used to provide an extent of electrical isolation (e.g., to isolate from unwanted DC voltages, DC currents, and/or prevent signal cross-talk).

In some implementations, two variations of the digital I/O circuitry may be used in an interface module <NUM>. <FIG> depicts a variation of the digital I/O circuitry shown in <FIG>. The digital I/O circuitry <NUM> of <FIG> includes the high-level logic driver <NUM> and low-level logic driver <NUM>, but does not include a transceiver chip <NUM>. Instead, the digital I/O circuitry <NUM> uses a pair of Zener diodes D20, D21 to clamp received voltages to about <NUM> volts. The pair of diodes provides a robust means of translating single-ended digital signals, received from a very wide range of signaling voltages output by a component's transmitter, to a suitable digital input signal level for an isolating communication controller <NUM>. For the example shown, the received single-ended digital signal can be reduced to approximately <NUM> volts. By providing a different supply voltage on the Zener diode pair, the received single-ended digital signal can be reduced to other digital voltage values (e.g., <NUM> volts, <NUM> volts, <NUM> volts, etc.).

The digital I/O circuitry <NUM> of <FIG> may be used for single-ended digital transmission and reception (e.g., when differential digital signaling is not needed). The digital I/O circuitry <NUM> may be used in tandem with the analog I/O circuitry <NUM> described above in some interface circuits <NUM> of a programmable interface module <NUM>.

Alternative circuits may be used for portions of the programmable interface module <NUM>, in some implementations. Such alternative circuits are described in <CIT>, titled "Input/Output Methods and Apparatus for Monitoring and/or Controlling Dynamic Environments," in connection with <FIG>, <FIG>, and <FIG> found in that application. Examples of alternative circuits to implement analog I/O signaling instead of the analog circuit of <FIG> are shown in <FIG> and <FIG>.

<FIG> illustrates an example of an alternative programmable analog I/O circuit <NUM> that may be used to transmit and receive analog signals between an isolating communication controller <NUM> and a component <NUM>, <NUM>, <NUM>, <NUM>, according to some implementations. The analog I/O circuit <NUM> may comprise a voltage-to-current converter <NUM> and a plurality of switches <NUM>, <NUM>, <NUM>, <NUM> (which may be implemented, at least in part, with transistors). In some implementations, the analog I/O circuit <NUM> may be combined with one or both of an analog-to-digital converter <NUM> and a digital-to-analog converter <NUM>. When an isolating communication controller <NUM> is capable of outputting and receiving analog signals, then the analog-to-digital converter <NUM> and a digital-to-analog converter <NUM> may not be used. According to some implementations, an analog I/O circuit <NUM> may include Zener diode voltage limiters on its two output interconnects <NUM>, <NUM> (AN1, AN2) that can limit an amount of voltage appearing on each line (e.g., <NUM> V and <NUM> V in the illustrated example). An analog I/O circuit <NUM> may further include resistors and capacitors for filtering, voltage adjustment, current adjustment, and/or current limiting.

When a circuit in accordance with <FIG> is used in a programmable interface circuit <NUM>, it may replace the programmable analog I/O circuit <NUM> of <FIG>. For example, the first multiplexer <NUM>, second multiplexer <NUM>, analog output signal driver <NUM>, and current sensor <NUM> may be removed and replaced with the circuitry of <FIG>. The receive signal driver <NUM> may be removed or changed to a non-switchable voltage follower or amplifier. Further, the first transistor <NUM> of the programmable signal routing and isolation circuitry <NUM> may be removed. A current-limiting resistor may be retained between the second transistor <NUM> and voltage supply +VDC. The programmable analog I/O circuit <NUM> of <FIG> can operate in tandem with the programmable digital I/O circuit <NUM> of <FIG>. For example, a first output interconnect <NUM> (P2) of the alternative programmable analog I/O circuit <NUM> may connect to the first output interconnect <NUM> (ADIO) of the programmable interface circuit <NUM> and the second output interconnect <NUM> (DIFF) of the programmable analog I/O circuit <NUM> may connect to the second output interconnect <NUM> (DIFF) of the programmable interface circuit <NUM>.

In further detail, the voltage-to-current converter <NUM> may receive an analog voltage signal and output an analog current signal having current values that are proportional to and representative of the analog voltage signal. The current converter <NUM> may drive signals in a current loop with a component of the machine, and output current levels from <NUM> mA to <NUM> mA in some cases, or between approximately those values. In some implementations, current converter <NUM> may output current levels for signaling from <NUM> milliamps (mA) up to <NUM> mA, or between approximately those values. An example current converter is the XTR117 current-loop transmitter available from Texas Instruments Incorporated of Dallas, Texas. The current converter <NUM> may be arranged with switches <NUM>, <NUM> that can isolate the voltage-to-current converter <NUM> from the outputs and from the digital I/O circuitry <NUM> when placed in an OFF state (i.e., open-circuit or high-impedance state), or allow it to receive an analog signal originating from the isolating communication controller <NUM> and output an analog current signal onto the first output interconnect <NUM> (P2).

According to some implementations, the first switch <NUM> can be a double-throw switch. In a first position (set or cleared by a signal on interconnect AMODE), it can connect an interconnect carrying a digital output (DAOUT) from the isolating communication controller that is converted to an analog signal to an input of the voltage-to-current converter <NUM>. In a second position, it can connect the first output interconnect <NUM> (P2) to the input of the voltage-to-current converter <NUM> for transmission of a signal received via P2 to a component of a machine <NUM>.

A third switch <NUM> can be used to provide a current path (such as a low-impedance path via resistor R30) to ground, for example, when receiving analog signals from a component, or to provide a reference voltage (e.g., ground) when transmitting analog signals to a component. The third switch can be programmed, for example, by a programming input placed on an interconnect (labeled GNDEN). A fourth switch <NUM> also can be used to provide a current path to ground when receiving analog signals from a component. A programming input may be implemented as, but not limited to, a programming voltage signal, a programming current signal, or a programming optical signal.

The settings of the four switches <NUM>, <NUM>, <NUM>, <NUM> for various types of analog signal transmission and reception will be evident based upon the foregoing description to those knowledgeable in the field of digital and analog electronics. For digital signal transmission and reception, the first switch <NUM>, second switch <NUM>, and fourth switch <NUM> may be placed in an OFF (open-circuit or high-impedance) state. For differential digital transmission and reception, the third switch <NUM> may be placed in an OFF state. For single-ended digital transmission and reception and single-ended analog transmission, the third switch <NUM> may be placed in an ON (short-circuit or low-impedance) state. The four switches <NUM>, <NUM>, <NUM>, <NUM> can be programmed by programming inputs placed on interconnects (labeled AMODE, AOUTEN, GNDEN, and REFEN, respectively) connected to the switches.

<FIG> depicts another possible implementation of a programmable analog I/O circuit <NUM>. The implementation of <FIG> is like that of <FIG> except the receive signal driver <NUM> is not switchable. Instead, the receive signal driver <NUM> has an operational amplifier <NUM> that is configured as a follower. The operational amplifier <NUM> in the receive signal drivers <NUM>, <NUM> can accommodate signals from a range of output impedances. For the implementation of <FIG>, the second input of the multiplexer <NUM> connects to the output interconnect P2 through a resistive path (R14) and connects to a shunting resistive branch (R16 and T1) that can provide a path to ground for current when T1 conducts. The circuit of <FIG> has one less chip than the circuit of <FIG> and may be used when differential analog signal reception is not needed.

Although the above-described circuits are described primarily for positive power supplies (e.g., positive potential to ground), the circuits can be readily adapted by those skilled in the art of electronics based on the above descriptions for operating at negative voltages or operating over a range of positive and negative voltages. Though a majority of information signaling involves positive potentials in many applications, some analog signals (e.g., from sensors) may comprise negative voltages. In such cases, level shifting of a signal may be used, or a negative potential power supply may be added to the analog I/O circuitry (e.g., to power the analog output signal driver <NUM> and/or the receive signal driver <NUM>), so that signals ranging from positive to negative voltage values can be received and transmitted. In such cases, the programmable signal routing and isolation circuitry <NUM> may be modified to handle positive and negative voltage swings.

A programmable interface module <NUM> constructed from the above-described programmable interface circuits <NUM> can have two output interconnects <NUM>, <NUM> (ADIO, DIFF) for each interface circuit <NUM>, according to some implementations. In some cases, four interface circuits <NUM> can be included in an interface module <NUM>. As such, there can be <NUM> output interconnects from the interface module that could be used to interface with four components of a machine. In such a case, an <NUM>-wire or <NUM>-wire ethernet cable with connectors described above may be used to connect the interface module <NUM> to a break-out box <NUM> located near the components, as illustrated in <FIG>. The break-out box <NUM> may receive the ethernet cable and run separate wires or cables <NUM> to each component. In other implementations, there can be more or fewer interface circuits <NUM> in an interface module <NUM>, and different cables and connectors may be used as appropriate.

In some implementations, it may be desirable to provide power (e.g., +VDC1, +VDC2, - VDC1, etc.) and/or a reference potential (e.g., ground) over an interconnect cable. In some such cases, cables and connectors with additional wires and pins may be used (e.g., <NUM>-wire instead of <NUM>-wire). In other such cases, some of the interface circuit's <NUM> second output interconnects <NUM> may not be used and/or tied to the reference potential. For example, one or more of the second output interconnects <NUM> may be grounded if it is known that they will be used only for single-ended signaling. Alternatively, if single-ended digital I/O circuits <NUM> of <FIG> are used, a second output interconnect <NUM> (DIFF) is not present, which can free up one or more wires of an <NUM>-wire ethernet cable to carry power (+VDC) and/or a reference potential (ground).

The number of interface circuits <NUM> that are used in a programmable interface module <NUM> will determine, at least in part, a number of wires and pins needed for cable and connector interconnects. The pin assignment connectors may be arranged in any suitable manner. For example, an interface module <NUM> having only four programmable interface circuits <NUM> may use an <NUM>-pin connector and standard <NUM>-wire ethernet cable. When a voltage supply and reference voltage are provided over the cable, a pin configuration may be as shown in Table <NUM>. In this example, two of the interface circuits <NUM> may include the single-ended digital I/O circuits <NUM> of <FIG> whereas two include the digital I/O circuitry <NUM> of <FIG>. Alternative pin assignments can be used in other implementations. In some implementations, the pin assignments may be standardized and recognized as an industrial standard.

The disclosed circuits described above can translate isolated digital signals to and from high-speed, networked, isolating communication controllers <NUM> into the currents and voltages necessary to send and/or receive signals to and/or from peripheral devices which may implement a wide variety of signaling schemes (e.g., single-ended, differential, current mode, voltage mode, digital, and analog) at popular or custom voltage and current ranges. Signaling type and voltage or current levels can be user-selected and programmed over interconnects <NUM> via the isolating communication controllers <NUM>. Programmability may be implemented in hardware (e.g., as user-settable switches) according to some implementations, or in software according to some implementations, or in a combination of hardware and software settings. Software programmability may be implemented as a pull-down menu providing selections of signaling type, data direction, voltage levels, current levels, etc. on a per-channel basis. The software may be part of system operating software for a central controller <NUM> and one or more isolating communication controllers <NUM> that are in communication with the central controller.

In some implementations, the disclosed circuits may be packaged in compact IP67 or similar ruggedized cases that can be distributed throughout a machine. In some implementations, less ruggedized cases may be usable. A packaged case may include an isolating communication controller <NUM> and a programmable interface module <NUM>, according to some implementations. In other implementations, a packaged case may include only a programmable interface module <NUM>. By distributing such packaged cases throughout a machine, custom wiring harnesses, long cables, and electrical cabinets for machine controls may be significantly reduced or eliminated. For example, the number of ethernet cables (such as waterproof, industry standard ethernet cables) used to interconnect a machine may be reduced by more than a factor of <NUM> using isolating communication controllers <NUM> and programmable interface modules <NUM> of the present implementations, as compared to conventional interconnect approaches for complex automated or semi-automated machines.

Various methods of operating components of a machine <NUM> using a programmable interface module <NUM> of the present implementations are possible. Acts associated with an example method <NUM> are shown in the flow chart of <FIG>. An example method <NUM> for signaling between a controller (such as an isolating communication controller) and one or more components of a machine can include receiving a programming input at the interface circuit that programs (act <NUM>) the interface circuit <NUM> to receive a first type of signal from the controller for transmission to a component <NUM>, <NUM>, <NUM> of the machine <NUM>, wherein the first type of signal can be either an analog signal or digital signal. The method <NUM> may further include receiving (act <NUM>) the first type of signal from an isolating communication controller (e.g., at one of the analog or digital inputs to the programmable interface circuit <NUM> (AOUT, DOUT, DOUTP, DOUTN)), and transmitting (act <NUM>) an output signal of the first type to a signaling channel (ADIO or ADIO and DIFF) of the programmable interface circuit <NUM>. The transmitted signal can be based on the received first type of signal. A method of signaling between a controller and one or more components of a machine may additionally or alternatively comprise receiving a second programming input to program (act <NUM>) the interface circuit <NUM> to receive a second type of signal at the signaling channel, wherein the second type of signal is either an analog signal or digital signal, and receiving (act <NUM>) the second type of signal at the signaling channel. The method may further include transmitting (act <NUM>) a signal of the second type to the controller that is based on the received second type of signal. Such a combination of acts may be performed in a talk and listen operation, where the talking is in a first mode and the listening is in a second mode. Alternatively, such a combination of acts may be performed when a signaling channel is repurposed in an existing set-up (e.g., after a change of a component). A method <NUM> may include further acts associated with further programming of the interface circuit <NUM> to receive and transmit various types of analog and digital signals (such as single-ended digital, differential digital, single-ended analog, differential analog, voltage-sourced analog, and current-sourced analog signals).

Claim 1:
A programmable interface circuit (<NUM>) to adaptively communicate signals between a controller (<NUM>, <NUM>) and a component (<NUM>, <NUM>, <NUM>) of a machine (<NUM>), the programmable interface circuit (<NUM>) comprising:
a plurality of interconnects (<NUM>) configured to receive programming inputs from the controller (<NUM>);
a signaling channel (<NUM>, <NUM>) configured to carry signals between the programmable interface circuit (<NUM>) and the component (<NUM>, <NUM>, <NUM>);
a programmable analog I/O circuit (<NUM>, <NUM>, <NUM>) configured to couple to the signaling channel and to receive a first analog signal from the controller (<NUM>, <NUM>);
a programmable digital I/O circuit (<NUM>) configured to couple to the signaling channel and to receive a first digital signal from the controller (<NUM>, <NUM>); and
a current-sensing circuit (<NUM>) configured to sense an amount of current flowing in the signaling channel, the current-sensing circuit being selectable for feedback control of an output from the programmable analog I/O circuit,
wherein the programmable interface circuit (<NUM>) is programmable during operation, based on at least a first one of the programming inputs applied to the plurality of interconnects (<NUM>), to provide a second analog signal to the signaling channel (<NUM>, <NUM>) based on the first analog signal or a second digital signal to the signaling channel based on the first digital signal.