CA2061182C - Programmable controller processor with a removable function card - Google Patents

Programmable controller processor with a removable function card

Info

Publication number
CA2061182C
CA2061182C CA002061182A CA2061182A CA2061182C CA 2061182 C CA2061182 C CA 2061182C CA 002061182 A CA002061182 A CA 002061182A CA 2061182 A CA2061182 A CA 2061182A CA 2061182 C CA2061182 C CA 2061182C
Authority
CA
Canada
Prior art keywords
data
function
processor module
card
function card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002061182A
Other languages
French (fr)
Other versions
CA2061182A1 (en
Inventor
William E. Floro
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of CA2061182A1 publication Critical patent/CA2061182A1/en
Application granted granted Critical
Publication of CA2061182C publication Critical patent/CA2061182C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/346Cards serving only as information carrier of service

Abstract

A programmable controller is customized for a specific application by a function card inserted into a socket of a processor module on the controller. The function card can perform one or more tasks and may be used with different types of programmable controllers. Before the card can be used by a given programmable controller an initialization procedure must be performed to determine if the processor module and the card are compatible. As part of this procedure information about the operation of the given programmable controller is sent to the card. The card also contains functional information for each of its tasks the card provides. The functional information is sent to the processor module during the initialization procedure to enable the module to utilize the card.

Description

WIT~ A REMOVABLE FUNCTION CARD

The present invention relates to programmable controllers that govern the operation of industrial equipment, and more specifically to the processors for such programmable controllers which execute user defined control programs.

~a~ro..n~ of ~he Tnv~ntio~

Programmable controllers are a well known class of industrial computers for operating a wide variety of lp manufacturing equipment, such as assembly lines and machine tools, in accordance with a stored control program. The program comprises a series of process control instructions which are read out and executed to ex~m;ne the condition of selected sensing devices on the controlled equipment, and to energize or deenergize selected operating devices contingent upon the status of one or more of the examined sensing devices.
The state of many sensing and operating devices can be represented by a single bit of data which is manipulated by the control program instructions. Other devices, such as position sensors, provide multiple bits of data representing a condition of the equipment being controlled. For these latter devices, instructions are provided to manipulate bytes and words of data representing the state of the sensing and operating devices. As used herein the term "byte" refers to eight-bits of data, and the term "word" refers to sixteen-bits, or two bytes, of data.
Additional program instructions perform arithmetic operations, timing and counting functions, and complex statistical reporting operations. These instructions have become quite standardized in the industry and are directly associated with the elements of a ladder logic diagram which is easily understood by process control engineers.
As programmable controllers were applied to more complex manufacturing systems, multiple controllers were used to govern the operation of different portions of the system with each one executing a separate control program. In such applications, it becomes necessary for one programmable controller to exchange data regarding the manufacturing process with the other program-mable controllers. Although techniques have been developed to communicate data among the programmable controllers, the coordination of several of these devices can become rather complex and complicated.
One of the attributes of programmable controllers is their modularity. The typical controller comprises a rack that holds and electrically connects a number of functional modules. These modules include a program processor, modules that receive signals from sensor and supply signals to actuators, and network communication modules. A programmable controller can be tailored to a specific application by choosing the necessary modules from a wide variety of different ones available for use.
With the advent of custom integrated circuits, greater functionality has been incorporated into the program processor module. For example, communication interface circuitry, which previously was provided in a separate module, is now part of the program processor module. With this greater functionality comes a need to be able to tailor a universal program processor module to a specific application. Such tailoring can provide increased memory space and custom firmware.
one way of fulfilling this need to tailor a program processor module is to store firmware for the custom function-ality in non-volatile memory devices on a small removable printed circuit board. Because of its size and shape this type of printed circuit board is sometimes referred to as a "memory card". The memory card connects through the front panel of the program processor module so that the module's circuits can read the firmware stored on the card.
Since a large manufacturing plant has a number of programmable controllers with different versions of program processor modules, it is often necessary to be able to use a given function card with a variety of processor modules.
Furthermore, a function card may be custom designed for a specific user and relatively expensive to replace should the user upgrade to a future generation of a programmable controller from the same manufacturer. Therefore a function card should be usable with subsequent generations of programmable controllers from the same manufacturer.

Summary of ~ho I~r~ntion A programmable controller includes a processor module to execute instructions of stored control programs. Sensing and operating devices of the controlled equipment are connected to a plurality of input and output modules that are electrically coupled to the processor module. The processor module executes a series of user defined control programs which examine the status of selected sensing devices and set the state of the actuating devices in accordance with the ex~mlned status based on the logical operations defined by the control programs.
A function card containing circuitry for performing one or more functions of the programmable controller is removably connected to the components of the processor module. This connection is provided through a front panel of the processor module in the preferred embodiment. The function card has a memory that holds data regarding the operational characteristics of the function card. The processor module is able to read this data from the card to identify the type of functions provided by the card and to learn how to use those functions. Another memory holds data written to the function card which specify some of the operational characteristics of the processor module.
In one embodiment of the function card a unique data transfer acknowledge (DTACK) circuit configures its operation to the performance specifications of the processor module.
This circuit uses information regarding the processor module's clock speed and the length of the interval between when the processor module requests data from the function card and when the module is able to receive the data. From this data the DTACK circuit can determine when to send a DTACK signal to the processor module, so that by the time the processor module responds to the signal, the data will be available. Thus, the processor will be set up to receive the data at the earliest time at which the data is available from the function card.
Thus, the wait between when the card has the requested data available and when the processor can receive the data is minimized.
An object of the present invention is to provide a removable card which contains circuitry that performs one or more functions of a programmable controller processor module.
Another objec. is to incorporate a mechanism on the card that provides information regarding each function performed by the card so that the processor module can determine its compatibility with and how to use that function.
A further object is to provide a mech~nism by which a function card can alter its operation to optimize S performance with different kinds of processor modules.
A more specific object of the present invention is to provide a data exchange interface between the function card and the processor module which minimizes or eliminates the number of wait states during access to the function card.
Yet another object is for the function card to exchange information with the processor module that enables at least one of them to determine its compatibility with the other one.
In accordance with an embodiment of the invention, a programmable controller comprising a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices, a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein; and a function card, said function card being removably connected to said program processor module by way of a connector, said function card including: at least one circuit for performing a predefined function; means for receiving data from said program processor module, the data defining operational characteristics of said program processor module; a means, _ 5 _ 206 t 1 82 coupled to said connector, for storing information specifying operational characteristics of each circuit for performing a predefined function; a first control means for enabling said means for receiving data in response to a first signal from S said program processor module, and for enabling said means for storing to send information stored therein to said program processor module in response to a second signal from said program processor module; and a second control means for enabling each circuit to ~xch~nge data through said connector in response to other signals from said program processor module.
In accordance with another embodiment, a programmable controller, comprising: a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices; a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein; and a function card, said function card being removably connected to said program processor module by way of a connector, said function card including a circuit, coupled to said connector, for performing a predefined function; and a means for transmitting configuration data to said program processor module through said connector in response to signals received via said connector from said program processor module, the - 5a -~3`

~a6 t f 82 configuration data being interpretable by said program processor module as specifying the defined function and an amount of addresses assigned to the circuit.
In accordance with another embodiment, a S programmable controller comprising: a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices; a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein; and a function card, said function card being removably connected to said program processor module by way of a connector disposed on a data bus, an address bus and a plurality of control lines, said function card including: a function section including: at least one circuit for performing a defined function, and a first control means for responding to a first set of signals from said program processor module by enabling each circuit to eYçh~nge data through said connector with said program processor module; an identification section including: a first means, coupled to said connector, for storing data which is sent to the function card by the program processor module and which defines operational characteristics of the program processor module, a second means for storing data regarding operational characteristics of each circuit for - 5b -performing a defined function, and a second control means for responding to a second set of signals from said program processor module by enabling said first means for storing to store data received from said program processor module, and s for responding to a third set of signals from said program processor module by enabling said second means for storing to send stored data to said program processor module; and a third control means for responding to a fourth set of signals from said means for connecting by controlling the application of power to components of said functional section, and for responding to a fourth set of signals from said program processor module by controlling the application of power to components of said identification section.
In accordance with another embodiment, a method of initializing a function card connected to the programmable controller, the steps of which comprise: sending data to the function card which specifies a set of operational characteristics of the programmable controller; and reading data from the function card that provides information about functions which the card can perform, the data regarding each function including: the type of the function, an amount of addresses assigned to the function, an amount of time that the function requires to respond to a request from the programmable controller, and a maximum speed for a microprocessor in the programmable controller with which the function card is designed to operate.

- 5c 206 t 1 82 Brief Description of the Drawinqs FIGURE 1 is a pictorial representation of a programmable controller system which employs the present invention;
S FIGURE 2 is a functional block diagram of a processor module which forms part of the controller of Figure l;
FIGURE 3 is a functional block diagram of one type of a function card which can be used with the processor module;
FIGURE 4 is an address map of a main section of the function card shown in Figure 3;
FIGURES 5A-5E are address maps of an identification section of two types of function cards;
FIGURE 6 is a flowchart of a routine that initializes the function card; and FIGURE 7 is a block schematic diagram of an embodiment of the DRTACK circuit in Figure 3;

-5d -
2~6 t 1 82 D - ~a i 1 e~ Description of ~h~ Tn~anti o~

Referring to Figure 1, a programmable controller system generally designated as 10 comprises a primary equipment rack 12 and a series of remote input/output (I/O) racks, such as rack 14, connected by a serial I/O network 15. A terminal 11 enables the user to program the controller 10 and monitor its operation.
The primary rack 12 houses a power supply 16, processor module 20 and a plurality of input/output (I/O) interface modules 18. The processor module 20 executes a user-defined control program that responds to signals from sensing devices on the controlled equipment by issuing signals to actuating devices on the same equipment. The sensing and actuating signals are coupled to the rack 12 through the input/output interface modules 18. The various modules 18 and 20 within the primary rack 12 are electrically interconnected by conductors on a backplane of the rack enabling data and control signals to be exchanged among the modules.
The processor module 20 receives programming instructions via the terminal 11 that is connected by cable 13 to a serial port connector on the front panel of the module. The serial I/O network lS is coupled to a second connector on the front panel of the processor module 20 and to an adaptor module 19 in the remote I/O rack 14, enabling the processor module 20 to exchange data with another group of I/O modules 18 within the remote I/O rack. Alternatively, a local area network can be coupled to one of the connectors on the front panel of the processor module 20 enabling communication with a host computer and other programmable controllers coupled to that network.

206 ~ I 82 A. Proc-.~or ~o~
With reference to Figure 2, the processor module 20 includes a general purpose processor section 40 for user control program execution and a communication processor section 21 which handles the exchange of data over cable 13 and the serial I/O
network 15. The processor module 20 also has a set of shared buses which connect these sections 21 and 40 with other data processing and storage components.
The communication processor section 21 is formed around a local address bus 23 and a local sixteen-bit wide data bus 24.
Coupled to these buses is a first microprocessor 22 which may be a model 68000 manufactured by Motorola Inc. The first microprocessor 22 executes a program stored in a read only memory (ROM) 26 and utilizes a random access memory (RAM) 27 for data storage. A master clock circuit 28 provides a system clock signal to the other components of the processor module 20 as well as providing specific timing signals via control lines 25 to the components of the first communication processor section 21.
A ma~or function assigned to the first microprocessor 22 is the control of communication with the programming terminal 11 and the serial I/O network 15. A commlln;cation link interface circuit 29 couples the local address and data buses 23 and 24 to the terminal cable 13 and to the remote I/O cable 15. The communication link interface circuit 29 translates the data between a parallel format used within the processor module and a serial format used to exchange data over terminal cable 13 and serial I/O network 15.
The local buses 23-25 of the first co~.~munication processor section 21 also are coupled to a connector 37. A removable, small printed circuit board, referred to herein as function card , 30 extends through a opening in the front panel of the processor module 20 (as shown in Figure 1) and has a mating connector that engages the bus connector 37. As will be described in detail the function card can take several forms one of which contains memory in which machine control programs are archived. An intelligent type of function card contains another microproces-sor dedicated to performing a special data processing task such as handling communication over a wide area network connected to the card.
The communication processor section 21 is coupled to other processor module components through a set of tri-state address gates 31 and a set of bidirectional tri-state data gates 32. Specifically, the set of gates 31 couples the local address bus 23 to the module's shared address bus 33, and the set of data gates 32 couples the local data bus 24 to a sixteen bit wide shared data bus 34. A set of control lines 35 extends between processor module components and hereinafter is referred to as a control bus.
This connection of buses allows the first microprocessor 22 to write and read data to and from a shared system ~ ~ 36 connected to the shared address and data buses 33 and 34.
This memory 36 holds a conventional set of input/output data tables storing the status of sensing and operating devices on the machine controlled by the programmable controller. The user-defined control program is stored in another section of the shared system RAM 36. A further section of the shared system RAM 36 is used to contain system, processor module, and microprocessor level configuration data.
Referring still to Figure 2, an I/O rack interf~ce circuit 38 is connected to the shared address and data-buses 33 and 34 and the backplane of primary rack 12. This interface circuit periodically scans the I/O modules 18 in the primary rack to gather input data from the sensors and send output data to the actuating devices. The scanning is accomplished in a manner similar to that employed by previous processor modules by sequentially sending control signals to each I/O module 18.
These control signals cause input type modules to send sensor data over the backplane and cause output type modules to store data sent by the processor module 20. The data exchanged with the I/O modules 18 in the primary rack 12 are stored in the I/O
data tables of the shared system RAM 36 A ladder logic processor 39 also is coupled to the shared address and data buses 33 and 34. The vast majority of ladder control program instructions operate on a single bit or word of data. The ladder logic processor 39 has been designed to execute the subset of ladder diagram instructions which perform these basic control operations. This not only provides efficient execution of these instructions, it also frees the microprocessors in the module 20 to carry out other functions simultaneously with the control program execution.
Certain functions, such as immediate I/O module access, data block transfers to the I/O modules 18, and complex mathematical and logical operations cannot be performed by the ladder logic processor 39. These complex control program functions are executed in the general purpose processor section 40. This section 40 of the processor module 10 contains a second microprocessor 41 connected to its own isolated set of local address and data buses 42 and 43, respectively. This pair of local buses 42 and 43 couples the second microprocessor 41 to a second ROM 44 and a second random access memory 45. The ROM 44 stores the firmware which 206 1 1 ~2 is executed by the second microprocessor 41 to carry out the complex ladder logic operations.
A timing circuit 47 receives the system clock signal and derives therefrom the necessary timing and control signals for the second microprocessor 41 and memories 44 and 45. A pair of tri-state transmission gates 48 and 49 isolate the local address and data buses 42 and 43 of the general purpose processor section 40 from the shared address and data buses 33 and 34.
When these gates 48 and 49 are enabled in response to a command from the second microprocessor 41, the set of local buses 42 and 43 are electrically connected to shared buses 33 and 34. This enabling occurs only when the second microprocessor 41 has been granted access to the shared buses 33 and 34 by an arbitration circuit in the ladder logic processor 39.

5 R, Fnncti o~ C~r~ ~ar~r~

With reference to Figure 3, the memory card 30 has a connector 50 that mates with the connector 37 of the communica-tion processor section 21 when the card 30 is inserted through a slot in the front panel of the processor module 20. A first group of terminal areas on connector 50 coupled to the control lines 25 within the communication processor section. Additional terminals on the memory card connector 50 couple an internal address bus 51 and internal sixteen-bit parallel data bus 52 to the address and data buses 23 and 24, respectively, within the communication processor section 21. This coupling of the memory card 30 to the buses 23, 24 and 25 allows the first microprocessor 22 in the processor module to interface with the function card.
Each function card may provide one or more different kinds of functions, such as read/write memory, read-only memory, a special purpose mathematical co-processor or additional external communication interface circuits, to name but a few. The particular function card 30 illustrated in Figure 3 includes three separate functions: non-volatile storage in an EEPROM 61, a random access memory (RAM) 62 and a serial communication interface 63. For example, non-volatile storage may hold user-defined control programs for the general purpose processor section 40 or programs to configure the communication section 21 for the particular protocol required by a network connected to the network interface circuit 29.
The random access memory 62 enlarges the amount of storage available to the processor module, while the serial communication interface can couple the programmable controller 10 to other devices on a communication network.
The exemplary function card 30 is divided into a main section 56 which contains electronic circuits for the different functions, and an identification (ID) section 54 which stores operational information from the processor module 20 and information necessary to utilize the functions. The main section 56 has an address decoder 58 coupled to the card address bus 51. The main address decoder 58 is enabled by a signal on one of the control lines 25 designated MAIN SELECT.
When enabled, the main address decoder 58 responds to addresses sent over bus 51 by issuing an enable signal to one of three function circuits 61, 62 and 63 that is being addressed.
When the EEPROM 61 is enabled by the signals from the main address decoder 58, the address on card bus 51 accesses storage location within the EEPROM caus;ng the data stored therein to be sent onto the card data bus 52 and the internal data bus 24 of the processor module 20. R~M 62 similarly is enabled at other _ times by control signals from the main address decoder 58 either to store data sent over bus 52 into a location indicated by signals on the address bus 51, or to send previously stored data at that location onto the card data bus 52. The direction of data transfer is determined by a signal on the READ/WRITE
control line. The serial communication interface comprises a universal asynchronous receiver/transmitter (UART) which is a conventional device that interfaces with a serial communication network attached to a connector 53 on the exposed edge of the function card 30.
Figure 4 depicts a map of the addresses allocated to the main section 56 of a function card. The address space is divided into sections with each section corresponding to a different function provided by the card or to space (unassigned addresses) between those functions. In the case of the function card depicted in Figure 3, some of these addresses are assigned to EEPROM 61, RAM 62 and UART 63. Both kinds of memory sections, as well as the UART, are referred to as "Functions"
with the space section being one type of function. A single function requiring many integrated circuits can occupy an entire card 30, which thus implements only one function.
As will be described in detail, some of the operational information bytes stored in the identification section specify the size of each Function in terms of the amount of address space allocated to it. The actual number of addresses used by a function can range from a few addresses to millions of addresses for memory type cards. In order to cover this wide range of allocations in only a few bytes of stored data, the function size is specified in terms of tho r--mber of blooks of addresses. However, the actual addresses used-by a given function may not end on the boundary of one of these blocks.

In that case, the remaining addresses in the block are assigned to a space type function, so that the addresses for the next function will begin on the boundary of the next address block for ease of access. The space function is used in this manner to assure that all contiguous address locations before and between other functions on the memory card are accounted for. As a result, the first microprocessor 22 can calculate the beginning address of each function by keeping track of function sizes (including "space" sizes) and by knowing that Function 0 starts at address 00H.
For example, the addresses allocated to the EEPROM 61 are referred to as Function 0 in the memory map of Figure 4 and do not end on an address block boundary, as designated by dashed line 71. As a result, a space type function (Function 1) is defined with a size so that it terminates on the next address block boundary which can be specified in the operational information. This termination on an address block boundary is designated by solid line 72. Function 2 corresponds to the RAM 62 and has an assigned section of addresses that terminates on an address block boundary that is specifiable by the stored function size operational information. There'ore, a space function is not required after Function 2 so that Function 3 corresponds to the UART 63. The number active and space type functions on a single card may vary from one to fifteen in the preferred embodiment, although a greater number could be accommodated.
Referring again to Figure 3, the identification section 54 of the function card 30 contains a second address decoder 64, which is enabled by a control signal designate~ ID SELECT, present on another one of the control lines 25-. The ID
address decoder, when enabled, responds to unique addresses on 206~ 182 card bus 51 by issuing power supply control signals to a main section power switch 60 or to an ID section power switch 66.
These control signals open and close the two power switches 60 and 66 to apply and remove electrical power for components of the respective sections of the function card 30. The main section power switch 60 routes power to the components o the main section 56, while the ID section power switch 66 applies power to an assembly of data registers 68 within the ID
section. Thus, the function card 30 conserves power by energizing only that section of the function card 30 which the first microprocessor 22 desires to access.
The ID address decoder 64 also responds to another range of addresses on bus 51 by producing control signals which activate the writing and reading of data to and from the ID
data registers 68. With reference to Figure 5A, 256 addresses (logical addresses 00H - FFH) are assigned to the assembly of ID data registers 68. The ID data registers 68 may be formed by either eight-bit wide storage devices or sixteen-bit wide storage devices. Sixteen-bit wide registers can store all sixteen-bits, the entire word, sent simultaneously over the card data bus 52, whereas eight-bit wide registers can only store one byte of the word on the card data bus 52. Operation of both kinds of function cards will be described and for that description the eight-bit wide registers will be assumed to be coupled to the least significant lines of the data bus.
The ID data registers 68 are divided into two groups;
one group stores data written to the function card by the processor module and the other group stores data to be read by the processor module. For simplicity of reference the~
groups will be referred to herein respectively-as "write only registers~ 74 and ~read only registers" 75, based on the type 2~6 1 1 82 of access that the processor module may have to each set. The write only registers 74 form eight byte size storage locations contained within a range of addresses OOH - OFH, into which operational information is written by the first microprocessor 22. Although the processor module 20 cannot read data from the write only registers 74, the function card circuitry is able to read and utilize the data contained in this set of storage locations, as will be described.
The read only ID data registers 75 divide the 256 addresses of the ID section 54 into sixteen groups of sixteen addresses each. Fifteen of these groups are assigned for the fifteen possible functions tFunctions 0-14) which may be defined on the card. Each group of read only register locations holds eight bytes of information which define how the first microprocessor 22 can utilize the corresponding card function. It should be noted that the addresses of the write only registers overlap with the group of addresses for Function O in the read only storage area. A conflict does not exist between these different registers as the READ/WRITE control signal activates only one of these areas at a time. The sixteen most significant addresses (logical addresses FOH-FFH) of the ID section 54 are used to control the operation of the card, such as the power switches 60 and 66. The contents of the different ID data registers and their use will be described hereinafter with respect to the operation of the entire function card.
As shown in Figure 3, the memory type function card 30 also contains a clock circuit 67 which receives the system CLOCK signal from the master clock 28 in the processor module 20 and prodllces therefrom other timing signals (not shown) required by components of the function card. -A data transfer acknowledge (DTACK) circuit 69 produces a conventional output 206 t 1 82 -control signal, also designated DTACK, which is used in transfering of data to and from the memory type function card.
The DTACK signal is applied via connector 50 to one on the control lines 25.
The function card 30 also includes a reset circuit 65 which receives a RESET signal from the processor module 20 and issues reset signals to the different components within the function card to place those components in an initial state upon power-up of the programmable controller. After the function card 30 has been properly reset, the reset circuit 6S
sends an interrupt request (IREQ) via one of the control lines 25 to inform the first microprocessor 22 of the successful completion of any initialization and diagnostic operations performed by the function card.
Another one of the control lines 25 is designated CAPD
PRESENT is pulled to ground when a card is inserted into connector 37 on the processor module. A low logic level on the CARD PRESENT signal line indicates the presence of a function card to the first microprocessor 22. Additional control lines can be provided as required for other types of function cards. The connectors 37 and 50 for the function card also have terminals for power supply lines, that are not illustrated.

C . F-lncti on Car~ Operati or~

When a function card 30 is inserted into the processor module 20 and power is applied to the programmable controller 10 by the user, an initial power-up sequence is performed by the processor module. This sequence detects that the CARD
PRESENT control line is grounded, indicating that a device is coupled to connector 37 of the communication processor section 21. Even though the processor module 20 detects the presence of a function card, the reset circuit 65 in the function card must send an interrupt request on line IREQ within a fixed interval of time after the processor module issues and removes a system reset signal. If such an interrupt request is not received by the first microprocessor 22 within the allotted time period, the microprocessor considers that the function card is faulty and will not attempt to access the card.
Furthermore, the function card 30 must remove the interrupt request either after a fixed interval of time or within a few microseconds of when the first access of the card by the processor module occurs. If the memory card 30 fails to remove the interrupt request in time, the first microprocessor 22 also considers the card to be faulty.
After the proper reset sequence has been verified by the function card, the first microprocessor 22 as part o- its power-up sequence, executes a function card initialization routine depicted by the flowchart of Figure 6. In the first step 80 of this routine, the first microprocessor 22 writes a word of data to a specifically defined address in the range of control addresses (FOH - FFH) in the function card identifica-tion section 54 that closes the ID section power switch 66.
Specifically, the first microprocessor 22 applies a true logic level signal to the ID SELECT control line which extends to the function card 30. This signal activates the ID address decoder 64, which then responds to the presence of the given address signal on card bus 51 by sending a power supply control signal to the ID section power switch 66 which closes to apply power to the ID data registers 68. It is understood that the ID address decoder 64 has power appl-ied to it at all times in order to interpret the control addresses for the power switches. Since the data sent by the processor module over bus 52 at this time are not used by the function card 30, the content of this word of data is unimportant. It should be noted that writing to another specific address in the ID section causes the ID address decoder 64 to open the ID
section power switch 66 or similarly control the main section power switch 60. Thus these specific control addresses are used to conserve power and reduce heat generation on the function card 30 by energizing only the section 54 or 56 being accessed by the processor module 20.
Once power has been applied to the ID section 54, the first microprocessor 22 sequentially stores operational information into the write only area of the ID data registers 68. This data provides performance information about the first microprocessor 22 and the processor module 20 in general, so that a sophisticated function card 30 can configure itself for optimal functionality with a given processor module, as will be described. This configurability of the function card 30 enables the device to be used with a number of types of processor modules which utilize different microprocessors and signal timing requirements.
Before describing each byte of operational information which is sent to the function card 30, an overview of the storage location organization within the write only area of the ID data registers 68 will be beneficial. As noted previously, the data buses 24, 34 and 43 within the processor module are sixteen-bits wide, however the storage devices used for the ID
data registers 68 may either be eisht or sixteen-bits wide. An eight-bit wide storage device is only coupled to the eight least significant bits of the card data bus 52. Thus, data wh ch the first microprocessor 22 applies to the most significant eight bits of the data buses 24 and 52 will not be retained by such ID data registers 68.
In order to accommodate both eight and sixteen-bit registers, each word of data is written to the function card twice. Once in the format as the data is produced within the processor module 20 and again with the bytes of the word swapped. That is, the most significant byte of the first word written becomes the least significant byte of the next word written and the least significant byte of the first word becomes the most significant byte of the second word. Thus, a function card 30 with sixteen-bit wide ID data registers 68 stores the data a word at a time by storing every other data word sent to the card. An eight-bit wide assembly of registers 68 stores the ID data as two sequentially written bytes (i.e. the least significant byte of each data word sent).
Referring to Figures 3 and 6, the first microprocessor 22 at step 81 begins storing the operational information within the write only area of the ID data registers 68 on the function card. The first word of operational information contains a designation of the Clock Speed of the communication processor section 21 within the least significant byte, and the most significant byte contains data referred to as "Chip Select Set Up". The Chip Select Set Up data represents the time interval between when the MAIN SELECT signal for the function card 30 goes true and a predefined edge of the next CLOCK signal pulse from the master clock 28. Whether this is a rising or fa]ling edge is indicated by the logic level of a signal on one of the control lines 25 designated PULSE EDGE

REFERENCE. One bit of both the least and the most significant -bytes of each ID data word designates the odd parity of the remaining bits of that byte.
In order to store the operational information, the first microprocessor 22 applies a true ID SELECT signal to the function card, a write logic level to the READ/WRITE control line, and the address of the desired ID data register onto the address bus. The ID address decoder 64 responds to this sequence of signals by enabling the appropriate ID data registers in the write only area to store the data being sent over the function card data bus 52. The DTACK circuit 69 returns a true DTACK signal to the first microprocessor 22 to complete the transmission.
Figure 5B shows a memory map of the write only storage area for a card with an assembly of sixteen-bit ID data registers, whereas Figure 5C is a similar memory map for a card with an assembly of eight-bit ID data registers. For a function card with sixteen-bit wide registers, each byte of the first data word is stored in separate eight-bit wide halves of a first register, these halves have separate logical addresses OOH and OlH in Flgure 5B. As is well understood with respect to a Motorola 68000 microprocessor, the address signal on card address bus 51 selects a pair of register halves and separate UPPER DATA STROBE and LOWER DATA STROBE signals from the first microprocessor 22 individually enable each half of the register.
In the case of a function card with an eight-bit wide assembly of ID data registers 68, the ID address decoder 64 enables only a single storage location for each address which the decoder receives. In this case, the ID data registers 68 are coupled to only the eight least significant bit ~lnes of the card data bus 52 and thus receives only the least signif cant byte of each data word sent to the card. This is depicted by the memory map of Figure 5C in which the write only registers store only the data for the odd numbered logical addresses.
Thus when the first microprocessor 22 writes the first word of operational information to the function card 30, only the least significant byte of that word, the Clock Speed for address 01H, is stored in the ID data registers 68. As the most significant byte of that word is not needed by the function card, the byte is not retained.
Once the first word of operational information has been written to the appropriate address in the ID data registers 68. The first microprocessor 22 swaps the bytes of that data word at step 83. The swapping process at this time places the Clock Speed data in the most significant byte of a data word and the Chip Select Set Up data in the least significant byte.
A register address pointer is incremented at step 84 to access the pair of logical addresses 02H and 03H. The swapped word of operational information then is written to the addressed ID
data register on the function card at step 85.
Since a function card with sixteen-bit wide ID data registers 68 already has stored these items of data in registers OOH and 01H, the card does not have registers at logical addresses 02H and 03H, see Figure 5B. Thus this kind of card does not store the swapped data word. However a function card with eight-bit wide ID data registers has a register at logical address 03H, see Figure 5C. This latter card stores the least significant byte of the swapped data word, the chip select set up data, in this register. Although an assembly of eight-bit ID data registers only stores the least significant byte of each data word sent to the function card 30, at the completion of this dual word ~torage cycle this ID data register assembly will contain both items of 206 ~ 1 82 -information sent in the data word, i.e. the clock speed and the chip select set up.
At step 86, the first microprocessor 22 determines whether all of the words of operational information have been written to the function card 30. If additional operational information remains to be written, the execution of the function card initialization routine branches to step 87 where the register address pointer is incremented address of the next sixteen-bit register. Then, the program execution returns to step 81 so that the first microprocessor 22 can obtain the next word of function card operational information from the first RAM 27 to repeat the storage process. The execution of the initialization routine continues to loop through step 81 - 87 until all of the words of operational information have been stored.
As the process for storing each pair of bytes of operational information is the same, the description of how the remaining bytes are stored will not be described in detail, rather only the content of those bytes will be described. The registers at logical addresses 04H - 07H hold only one byte of configuration data with the other byte being unused in the preferred embodiment at this time. However, a register is provided to hold that byte should a use be defined. The data byte stored in the register at logical address 05H is referred to as the "Parity/Device Type" and its bits indicate different operational parameters. Specifically, one bit indicates whether the first microprocessor 22 not only generates a parity bit for all bytes written to the main section of the function ~rd 30, but also performs parity checking on all bytes that it reads. Three b-its of the Parity/Device Type byte encode the type of microprocessor 22 that is used in the processor module communication section 21.
For example, this microprocessor may be a Motorola 68000, 68010 or 68020 model. The designation of the microprocessor is required since the signal timing varies from one device to another. For example, as noted previously, the chip select set up interval terminates at a predefined edge of the system clock following a valid chip enable signal. For a 68000 microprocessor a rising edge of the clock signal is used, whereas the falling edge of the clock signal is used for other types of microprocessors within the 680X0 family. Three other bits of the Parity/Device Type information indicate capacitive load of the local data bus 24 within the processor module 20.
The function card 30 may have to take this parameter into account when it determines bus access time, as more t me is required the greater the capacitance.
The final class of operational information which is stored in the ID data registers 68 in the preferred embodiment is referred to as "Free Cycle Time~. The Free Cycle Time is the amount of time available to the function card in which to drive data valid on the data bus 52 and begins on the next rising or falling system clock edge (as indicated by the "pulse edge reference" signal sent to the card) after the MAIN
SELECT signal goes true. The Free Cycle Time is specified by two bytes, a full word, requiring two registers of storage.
If the requested data can be driven valid on the data bus 52 by the function card within this free cycle time, the data transfer acknowledge (DTACK) signal can be sent immediately, since the data will be available by the time the first microprocessor 22 requires it. ~s will be described a high performance function card 30 uses the operational information to determine when to assert the DTACK signal for optimum data exchange efficiency.
Once all of the words of operational information have been stored in the write only area of the ID data registers 68, the execution of the function card initialization routine advances from step 86 to step 90. At this point, the first microprocessor 22 begins to read the data defining each function from the read only ID data registers 75. In order to be consistent with the write cycles to the ID section 54, the first microprocessor performs sixteen-bit read cycles. To accommodate function cards with either eight and sixteen bit ID data registers 68, the function descriptive information is stored at only the odd numbered logical addresses of the data registers. Figure 5D illustrates how the information for Function 0 is stored in the read only area of a sixteen-bit wide ID data register assembly. For this device the reg~ster halves with even logical addresses are empty. Similarly Figure 5E depicts how the information for Function 0 is stored in the read only area of an eight-bit wide ID data register assembly 68 which only has register locations at the odd logical addresses. Therefore, regardless of the width of these registers the function descriptive information always is carried by the least significant byte lines of the card data bus 52 during each read cycle.
With reference to Figures 5D, 5E and 6, the first microprocessor 22 commences reading the function description data at step 90 by resetting its register address pointer to the beginning of the first group of the read only area, i.e.
logical address 00H. The first microproce.ssor then sends a logically true ID SELECT signal and a read log-ic level on the READ/WRITE line of control lines 25. These signals are received by the function card along with the address of the desired ID data register to be read. In response to these signals, the function card 30 applies the contents of the first two read only storage registers 75 to the data bus 52.
In the case of a function card with eight-bit registers, only the contents of the storage location at relative address 01H
is applied to the data bus.
The data being read from the function card 30 is transferred through connectors 50 and 37 onto the local data bus 24 of the processor module 20. The first microprocessor 21 obtains this data from the local data bus 24 and transfers it, at step 92, into a region in the first RAM 27 designated to hold access data for each of the functions on the card 30.
This area of the first RAM 27 forms a table from which the first microprocessor can quickly obtain the function card information for later use in accessing the different functions.
A test is then made by the first microprocessor 22 at step 93 to determine if the last word of function description data has been read from the ID section 54 of the card 30. If the last word has been read, the initialization routine terminates.
Otherwise the card register address pointer is incremented at step 94 and the execution of the initialization routine returns to step 91 to read the next byte of function information from the card. This program execution loop continues until the last byte of function descriptive information has been read from the registers for Function 14 on the function card 30.
As shown in Figures SD and SE, sixteen byte sized storage locations are allocated to each of the fifteen functions (Functions 0-14) which can be provided on a given function card. The first of these registers, at address 00H, contains 206 1 1 ~2 information defining the type of the function. The information given by each bit of the "Function Type" byte is defined in Table 1.

Table 1 FUNCTION TYPE ID BYTE

~1~ DF.S~RTPTION

0 Card Parity 0 = Card does not provide parity 1 = Card provides parity 1 Last function terminator 0 = No more functions on card 1 = Another function on card 2 - 6 Type of function 00H = Space Between Functions 0lH = EEPROM
02H = Static RAM
03H = Communication Circuit 04H = Mathematic Co-Processor .
lDH = Use Extended Type Byte 0 lEH = Use Extended Type Byte 1 lFH = Use Extended Type Bytes 0 & 1 7 Odd parity for bits 0-7 of byte In order to reduce cost or save space, function cards mav not include circuitry that generates a parity bit for each byte of data that is produced on the card. Bit 0 of the Function Type byte defines whether the associated card function provides a parity bit when data is read by the processor module 20 from the main function card section 56. Bit 1 indicates whether additional functions are defined for the card or whether the current function is the last one. This bit is utilized by the microprocessor 22 to determine how many functions are provided on the card during accesses to the main section 56. Bits 2-6 numerically specify the type of the current function being defined, such as specifying a space function, an EEPROM or a static RAM memory. Additional function types designate non-memory functions, such as the UART 63. The three most significant values (lDH - lFH) for bits 2-6 designate that one or two other bytes of stored data designate the function type instead of this byte. As will be described, these bytes are referred to as Extended Type Byte 0 and Extended Type Byte 1 and enable more function types to be defined than can be done with only one byte. The eighth bit of each function description byte is a parity bit indicating the odd parity of bits 0-7 of the byte.
The next byte of function descriptive data, designated "Maximum Device Speed", indicates which speed microprocessors are compatible with the function card. This speed is stated in terms of the m~x;mllm frequency of the CLOCK signal (e.g.
20 MHz.) which can be applied to the first microprocessor 22, as specified by its manufacturer. Many other electrical specifications of the first microprocessor 22, such as address and data setup and hold parameters, are related to its maximum speed. The circuits of a given function card 30 are designed to interface with microprocessors capable of operating up to a certain maximum speed, which m~;mllm speed is specified by the microprocessor manufacturer. Therefore, by knowing the maximum speed (clock frequency) of the microprocessor for which the function circuitry is designed to work, the first microprocessor 22 can determine if it is compatible with the function circuitry.
One bit of the Maximum Device Speed byte can be dynamically set by c-rcuitry on an intelligent function card to-indicate incompatibility with the processor module. ~n intelligent function card changes the state of this incompatibility bit 206 ~ 1 82 -if necessary in response to an examination of the operational information stored in the write only ID registers 74 by the processor module. For example, the function card 30 may determine that the present function can not operate with the specified microprocessor class or at the clock speed of the processor module 20. In most cases, the first microprocessor 22 will determine if an incompatibility issue exists with respect to the card. However, certain cards may have sufficient intelligence to analyze the data written into the ID data register 68 by the processor module and determine an incompatibility problem. The incompatibility bit of a "dumb"
function card is permanently placed in a false state to indicate compatibility.
The next byte indicates the amount of address space allocated to the function, referred to as the "Function Size."
This parameter is specified in terms of words of address space by three pieces of information, two of which are provided by the function size byte. Bits 0 and 1 of that byte indicate the size of an address block which can have one of four values, for example, as defined in Table 2.

Table 2 BLOCK SIZE

Bl~ O BIT 1 RTOCK SI7.F.

0 0 lK

where K denotes a numerical value in the thousands. Bits 2 7 of the function size byte specify an Increment Multiplier having a value from one to sixty-four.

The third piece of information needed to determine the size of a function is a Type Size Multiplier derived from the Function Type designation in the first byte of descriptive information at address 01H. The Type Size Multiplier is S determined according to the relationships specified in Table
3.

Table 3 TYPE SIZE MULTIPLIER

FUNCTION TYPF. MUT.TIPT.IF.R

UART

The amount of address space allocated to a function is computed by multiplying the block size by the Increment Multiplier by the Type Size Multiplier. For example, an EEPROM with a 4K Block Size and an Increment Multiplier of four has a Function Size of 128K words (4K x 4 x 8).
Depending upon the increment multiplier used for this type of EEPROM, the function size can have a range from thirty-two thousand to two million words.
Another characteristic of the function is provided by the byte designated "Function Access Time~ which is used by the first microprocessor 22 when transferring data to or from the function card 30. For example, the access time during a read operation is the interval which the microprocessor will have to wait after applying the MAIN CHIP SELECT signal to the card before the microprocessor is assured that the data applied by the card to the data bus 52 is accurate. During a write operation, the microprocessor must apply control signals and 206 ~ I 82 data to the function card for the specified amount of time in order to assure that the card circuitry has had time to obtain the data from bus 52. One pattern of bits in the Function Access Time byte specifies that the processor module 20 must wait until it receives a logically true DTACK signal from the function card before removing signals applied to the card.
The remaining two bytes of function descriptive information shown in Figure 5E are "Extended Type Byte 0" and "~xtended Type Byte 1". These provide optional data in which each byte enables 256 more function types to be specified in conjunction with the function type byte. The two extended type bytes used together can specify up to sixty-four thousand different function types.
After all of the function descriptive information has been read from card 30, the first microprocessor 22 examines the data to determine if operation with respect to the function card can continue. If the information read from the function card or its parity are incorrect, or the incompatibility bit has been set in the maximum device speed byte, the first microprocessor now decides if normal operation can begin. If the processor module can not operate with the function card or with a specific function on the card, the first microprocessor 22 notifies the user by transmitting an appropriate error message to terminal 11, shown in Figure 1.
If the processor module determines that it is able to operate with the function card 30, the first microprocessor 22 writes any byte of data to another specifically defined address in the control address range (relative addresses FOH-FFH) in the function card ID section 54. Writing to this control address causes the ID address decoder- 64 to open the ID section power switch 66. Other write operations to a different defined addresses open and close the main section power switch 60 for the main section 56 of the card. The first microprocessor 22 then waits for a short interval to allow the function card hardware to make the transition and stabilize. The processor module 20 can now access the desired functions provided on the function card 30 by applying a true signal to the MAIN SELECT control line, appropriate signals to other control lines and the address and data signals to card buses 51 and 52.

D. Co~f;gur~hlo DT~C~ C;~c~;t As noted previously, intelligent function cards utilize the data written to the function card by the first microprocessor 22 to adapt their operation to the type of processor module 20 into which they are plugged. One use of this data is to configure the DTACK circuit 69 to min;m;ze or eliminate the number of wait states during processor module access to the card.
The function card 30 shown in Figure 3 uses a conventional DTACK circuit 69. This kind of circuit generates the DTACK
signal after a fixed period of time elapses from when one of the address decoders 58 or 64 is enabled by the appropriate SELECT
signal.
However, intelligent function cards use the contents of the ID data registers 68 to assert an active DTACK signal at the earliest possible instant at which the card can guarantee that the data eventually will be available when the processor module 20 needs it. The details of the DTACK circuit 69 with this "look ahead" capability is shown in Figure 7. Two sets of data latches 101 and 102 are coupled to the card data bus 52 on the function card and store the Clock ~peed and Free Cycle Time data, respectively, sent by the first 206 ~ I 82 microprocessor 22. These data can be stored in the latches by transferring the data from the ID data registers 68 or by the ID address decoder 64, enabling the proper set of latches 101 or 102 during card initialization when the appropriate data is sent over the card data bus 52 by the first microprocessor 22.
The contents of both sets of data latches 101 and 102 are applied to inputs of a programmable logic array (PLA) 104. Alternatively, the programmable logic array can be replaced by a look-up table addressed by the contents of the sets of latches 101 and 102. The programmable logic array subtracts the longest Function Access Time of the functions on the card from the Free Cycle Time. Alternatively, the PLA
could be designed to subtract the actual access time for each function as it is being access~. If the result is non-negative indicating that the Free Cycle Time is that same length of time or longer than the function access time, a zero is sent to counter 106 so that a logically true DTACK
signal will be asserted immediately. If the result of the subtraction is negative, the PLA calculates a value according to the following expression:
(actual access time - Free Cycle Time)/CLOCK signal period The period of the CLOCK signal is derived from the Clock Speed data. The resultant value is rounded up to provide the number of cycles of the CLOCK signal that the card will cause the host to wait (i.e. the number of wait states) before requiring data. Alternatively, if the function card is a type that does not calculate its own DTACK period, the first microprocessor 22 performs this calculation instead.

1",..~
,~ ,,, ,.. ..

The output of the programmable logic array, the number ofCLOCK signal periods to wait before asserting the DTACK
signal, is coupled to inputs of a presettable counter 106.
Each time the function card 30 receives a logically true signal on the MAIN SELECT control line, monostable multivibrator 105 is triggered to send a brief pulse to the counter 106 that loads the output of the PLA into the counter.
Thereafter, the counter 106 decrements upon each cycle of the CLOCK signal. When the counter 106 reaches zero, a low level signal is sent to one input of OR gate 109. At this time at least one of the LOW or HIGH BYTE DATA STROBES is low which produces a low level from AND gate 108 which is applied to another input of OR gate 109. This combination of signals produces a low level (true) DTACK signal that is sent to the processor module. The DTACK signal goes high when both DATA
STROBE signals from the processor module are at high logic levels.
The present intelligent DTACK circuit shown in Figure 7 is con~igurable to the Clock Speed and Free Cycle Time of the processor module 20. As a consequence, the card's look ahead capability is adjusted to the type of processor module in which it is plugged. This has the advantage over a non-configurable DTACK circuit 69 in which the look ahead function is preset for a given processor module with specific values for Clock Speed and Free Cycle Time. Thus, if the processor module 20 is improved by using a faster first microprocessor 22, the configurable DTACK circuit 69 still provides opt mum look ahead capability and asserts a true DTACK signal at the earliest allowable time for that specific microprocessor.

Claims (21)

I Claim:
1. A programmable controller comprising:
a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices, a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein;
and a function card, said function card being removably connected to said program processor module by way of a connector, said function card including:
at least one circuit for performing a predefined function;
means for receiving data from said program processor module, the data defining operational characteristics of said program processor module;
a means, coupled to said connector, for storing information specifying operational characteristics of each circuit for performing a predefined function;
a first control means for enabling said means for receiving data in response to a first signal from said program processor module, and for enabling said means for storing to send information stored therein to said program processor module in response to a second signal from said program processor module; and a second control means for enabling each circuit to exchange data through said connector in response to other signals from said program processor module.
2. The function card as recited in claim 1 wherein said means for receiving data comprises a memory device coupled to said means for connecting and said first control means, so that said memory device stores data from said programmable controller when enabled by the said first control means.
3. The function card as recited in claim 2 wherein a circuit for performing a predefined function includes means for altering a manner in which the predefined function is performed in response to the data stored in the memory device.
4. The function card as recited in claim 1 wherein the data received by said means for receiving includes data specifying the frequency of a clock signal of the programmable controller and a free cycle time interval.
5. The function card as recited in claim 4 further comprising a data transfer acknowledge circuit which sends a control signal to the programmable controller a given interval of time following a request by the programmable controller for access to the function card, said data transfer acknowledge circuit utilizes the data specifying the frequency of a clock signal and free cycle time data to determine the given interval of time.
6. The function card as recited in claim 1 further comprising a means for controlling the application of electrical power to components of the function card in response to signals received from the programmable controller via said means for connecting.
7. The function card as recited in claim 1 further comprising:
a third control means for producing power supply control signals in response to address signals received from the programmable controller via said means for connecting, said third control means producing a first control signal in response to a first address signal, a second control signal in response to a second address signal, a third control signal in response to a third address signal, and a fourth control signal in response to a fourth address signal; and a electrical power supply that responds to the first control signal by applying power to said means for receiving data, that responds to the second control signal by disconnecting power to said means for receiving data, that responds to the third control signal by applying power to said means for storing information, and that responds to said fourth control signal by disconnecting power to said means for storing information.
8. The function card as recited in claim 1 wherein said means for storing stores data for each circuit for performing a defined function that specifies the defined function, an amount of addresses assigned to the circuit, a maximum frequency of a clock signal for the circuit, and an amount of time necessary for the programmable controller to access the circuit.
9. A programmable controller, comprising:
a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices;
a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein;
and a function card, said function card being removably connected to said program processor module by way of a connector, said function card including a circuit, coupled to said connector, for performing a predefined function; and a means for transmitting configuration data to said program processor module through said connector in response to signals received via said connector from said program processor module, the configuration data being interpretable by said program processor module as specifying the defined function and an amount of addresses assigned to the circuit.
10. The function card as recited in claim 9 further comprising means, coupled to said connector, for receiving data which define operational characteristics of the programmable controller.
11. The function as recited in claim 10 wherein the data received by said means for receiving includes data specifying the frequency of a clock signal of the programmable controller and a free cycle time interval.
12. The function card as recited in claim 9 wherein said means for transmitting configuration data sends additional data which is interpretable as specifying a maximum speed for a microprocessor in the programmable controller with which the function card is designed to operate.
13. A programmable controller comprising:
a plurality of input/output modules connected to a plurality of input devices and a plurality of output devices;
a program processor module, said program processor module being coupled to said plurality of input/output modules, said program processor module examining the status of selected input devices and acting on selected output devices on the basis of a control program stored therein;
and a function card, said function card being removably connected to said program processor module by way of a connector disposed on a data bus, an address bus and a plurality of control lines, said function card including:
a function section including:
a) at least one circuit for performing a defined function, and b) a first control means for responding to a first set of signals from said program processor module by enabling each circuit to exchange data through said connector with said program processor module;
an identification section including:
c) a first means, coupled to said connector, for storing data which is sent to the function card by the program processor module and which defines operational characteristics of the program processor module, d) a second means for storing data regarding operational characteristics of each circuit for performing a defined function, and e) a second control means for responding to a second set of signals from said program processor module by enabling said first means for storing to store data received from said program processor module, and for responding to a third set of signals from said program processor module by enabling said second means for storing to send stored data to said program processor module; and a third control means for responding to a fourth set of signals from said means for connecting by controlling the application of power to components of said functional section, and for responding to a fourth set of signals from said program processor module by controlling the application of power to components of said identification section.
14. The function card as recited in claim 13 wherein the data received by said first means for storing includes data specifying the frequency of a clock signal of the programmable controller and the free cycle time.
15. The function card s recited in claim 14 further comprising a data transfer acknowledge circuit which sends a control signal to the programmable controller a given interval of time following a request by the programmable controller for access to the function card, said data transfer acknowledge circuit utilizes the data specifying the frequency of a clock signal and free cycle time data to determine the given interval of time.
16. The function card as recited in claim 13 wherein said second means for storing contains data for each circuit for performing a defined function that specifies the defined function, an amount of addresses assigned to the circuit, a maximum speed for a microprocessor in the programmable controller with which the function card is designed to operate, and an amount of time that the circuit requires to respond to a request from the programmable controller.
17. A method for initializing a function card connected to the programmable controller, the steps of which comprise:
sending data to the function card which specifies a set of operational characteristics of the programmable controller;
and reading data from the function card that provides information about functions which the card can perform, the data regarding each function including:
a) the type of the function, b) an amount of addresses assigned to the function, c) an amount of time that the function requires to respond to a request from the programmable controller, and d) a maximum speed for a microprocessor in the programmable controller with which the function card is designed to operate.
18. The method as recited in claim 17 further comprising, prior to the step of sending data, sending a first control signal which instructs the function card to apply power to a section of the card within which data is to be stored.
19. The method as recited in claim 18 further comprising sending a second control signal which instructs the function card to disconnect power to the section of the card, following the step of reading data from the function card.
20. The method as recited in claim 17 further comprising sending a control signal instructing the function card to apply power to components which implement the functions which the card can perform.
21. The method as recited in claim 17 wherein the set of operational characteristics of the programmable controller includes first and second data bytes; and wherein said step of sending data includes sending a first word of data to the function card in which the first data byte is contained in the least significant bits of the first word and the second data byte is contained in the most significant bits of the first word, and then sending a second word of data to the function card in which the second data byte is contained in the least significant bits of the second word and the first data byte is contained in the most significant bits of the second word
CA002061182A 1991-03-22 1992-02-13 Programmable controller processor with a removable function card Expired - Lifetime CA2061182C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
USP674,826 1991-03-22
US07/674,826 US5410717A (en) 1991-03-22 1991-03-22 Removable function card for a programmable controller processor

Publications (2)

Publication Number Publication Date
CA2061182A1 CA2061182A1 (en) 1992-09-23
CA2061182C true CA2061182C (en) 1997-03-11

Family

ID=24708030

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002061182A Expired - Lifetime CA2061182C (en) 1991-03-22 1992-02-13 Programmable controller processor with a removable function card

Country Status (4)

Country Link
US (1) US5410717A (en)
EP (1) EP0504866A3 (en)
JP (1) JPH05158511A (en)
CA (1) CA2061182C (en)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2957354B2 (en) * 1992-05-13 1999-10-04 三菱電機株式会社 Signal transfer method
US5440244A (en) * 1993-02-10 1995-08-08 Cirrus Logic, Inc. Method and apparatus for controlling a mixed voltage interface in a multivoltage system
US5561813A (en) * 1993-08-27 1996-10-01 Advanced System Products, Inc. Circuit for resolving I/O port address conflicts
FR2712998B1 (en) * 1993-11-22 1996-02-09 Aerospatiale Digital bus simulator integrated into an automatic test system for electronic boxes on board aircraft.
US5826044A (en) * 1994-06-06 1998-10-20 Kabushiki Kaisha Toshiba Display control system having a PCMCIA interface
US5956248A (en) * 1994-09-23 1999-09-21 The Toro Company Irrigation controller with removable station modules
US5636347A (en) * 1994-09-27 1997-06-03 Intel Corporation Computer card insertion detection circuit
US5613130A (en) * 1994-11-10 1997-03-18 Vadem Corporation Card voltage switching and protection
US5636357A (en) * 1994-12-21 1997-06-03 Eurotronics Company Memory card and method for operation in a plurality of systems having incompatible object code format requirements
US5659680A (en) * 1995-06-30 1997-08-19 Micro Processor Systems, Inc. PC compatible modular based diagnostic system
NO302388B1 (en) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Procedure and apparatus for protecting software against unauthorized use
US6033257A (en) 1995-11-20 2000-03-07 The Foxboro Company I/O connector module for a field controller in a distributed control system
US6076124A (en) 1995-10-10 2000-06-13 The Foxboro Company Distributed control system including a compact easily-extensible and serviceable field controller
US5940586A (en) * 1995-10-16 1999-08-17 International Business Machines Corporation Method and apparatus for detecting the presence of and disabling defective bus expansion devices or Industry Standard Architecture (ISA) adapters
US6008985A (en) * 1995-11-20 1999-12-28 The Foxboro Company Industrial field controlling device with controller and expansion modules
US5841993A (en) * 1996-01-02 1998-11-24 Ho; Lawrence Surround sound system for personal computer for interfacing surround sound with personal computer
JPH09212226A (en) * 1996-02-05 1997-08-15 Fanuc Ltd Method for setting parameter in cnc device
DE19632197A1 (en) * 1996-08-09 1998-02-12 Bosch Gmbh Robert Method for programming an electrical device, chip card and device
ES2131897T3 (en) * 1996-08-16 1999-08-01 Olymp Karl Herzog Gmbh & Co ELECTRONIC CONTROL DEVICE FOR FUNCTIONAL UNITS OF AN APPARATUS FOR THE TREATMENT OF HAIR, AND APPARATUS FOR THE HEAT TREATMENT OF HAIR.
EP0825506B1 (en) * 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US5909586A (en) * 1996-11-06 1999-06-01 The Foxboro Company Methods and systems for interfacing with an interface powered I/O device
NL1004658C2 (en) * 1996-12-02 1998-06-03 Clewits Beheer B V R System and method for selectively activating one or more software and / or hardware functions of an electronic device.
NO320087B1 (en) * 1997-02-10 2005-10-24 Inventio Ag Procedure and arrangement for installation and maintenance of lift systems
US6154680A (en) * 1997-10-07 2000-11-28 Zone Automation Inc. Control systems and methods utilizing object oriented hardware elements
US6691183B1 (en) 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
WO2000070531A2 (en) 1999-05-17 2000-11-23 The Foxboro Company Methods and apparatus for control configuration
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6501995B1 (en) 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6697892B1 (en) * 1999-07-08 2004-02-24 Intel Corporation Port expansion system
US6510352B1 (en) 1999-07-29 2003-01-21 The Foxboro Company Methods and apparatus for object-based process control
JP3558564B2 (en) * 1999-10-21 2004-08-25 株式会社 沖マイクロデザイン Data transfer circuit and microcomputer equipped with data transfer circuit
US6574681B1 (en) 1999-10-21 2003-06-03 H. Philip White Network platform for field devices
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
JP2002247025A (en) * 2001-02-22 2002-08-30 Hitachi Ltd Information processor
JP2003201071A (en) * 2001-11-01 2003-07-15 Inventio Ag System for transporting or access controlling person or article, maintaining method and device for the same, computer program product and method of reforming building using the system
US7043585B2 (en) * 2002-03-13 2006-05-09 Sun Microsystems, Inc. Flexible system architecture with common interface for multiple system functions
WO2003089995A2 (en) 2002-04-15 2003-10-30 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7343279B2 (en) * 2002-08-01 2008-03-11 Teradyne, Inc. Universal approach for simulating, emulating, and testing a variety of serial bus types
US7428218B2 (en) * 2002-08-01 2008-09-23 Teradyne, Inc. Flexible approach for representing different bus protocols
US7225057B2 (en) * 2002-11-15 2007-05-29 The Toro Company Virtual dial irrigation controller
US8665082B2 (en) 2003-10-15 2014-03-04 Arthroscopic Surgery Associates Corporation Method and apparatus for monitoring conditions
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7613546B2 (en) * 2004-08-06 2009-11-03 The Toro Company Modular irrigation controller
EP1795481A1 (en) * 2005-12-07 2007-06-13 Inventio Ag Installation system and method for elevators
US7634363B2 (en) * 2005-12-07 2009-12-15 Affymetrix, Inc. Methods for high throughput genotyping
US7860857B2 (en) * 2006-03-30 2010-12-28 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
JP4507125B2 (en) * 2007-09-10 2010-07-21 三菱電機株式会社 Programmable controller
CN102124432B (en) 2008-06-20 2014-11-26 因文西斯系统公司 Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US8204630B2 (en) * 2008-09-29 2012-06-19 Orbit Irrigation Products, Inc. Modular sprinkler controller
US8295059B1 (en) 2009-03-10 2012-10-23 Conroy William J Traffic control expansion and testing systems
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US9192110B2 (en) 2010-08-11 2015-11-24 The Toro Company Central irrigation control system
US9538713B2 (en) 2012-07-13 2017-01-10 The Toro Company Modular irrigation controller
US10114428B1 (en) * 2014-03-28 2018-10-30 EMC IP Holding Company LLC IT device
WO2017156730A1 (en) * 2016-03-16 2017-09-21 Dresser, Inc. Expanding functions of a process device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556953A (en) * 1982-02-24 1985-12-03 Caprio A Ronald Interchangeable interface circuitry arrangements for use with a data processing system
US4750136A (en) * 1986-01-10 1988-06-07 American Telephone And Telegraph, At&T Information Systems Inc. Communication system having automatic circuit board initialization capability
JP2658018B2 (en) * 1986-03-12 1997-09-30 カシオ計算機株式会社 Power supply control method
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US4964038A (en) * 1987-10-28 1990-10-16 International Business Machines Corp. Data processing system having automatic address allocation arrangements for addressing interface cards
JPH01114995A (en) * 1987-10-29 1989-05-08 Toppan Printing Co Ltd Identification card
JPH01150879A (en) * 1987-12-08 1989-06-13 Nissan Motor Co Ltd Radio type production management information medium
FR2624633B1 (en) * 1987-12-14 1992-09-11 Sgs Thomson Microelectronics ROBOT PROGRAMMING SYSTEM
JPH0259937A (en) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Ic card
JP2750704B2 (en) * 1988-08-29 1998-05-13 日立マクセル株式会社 Information writing method of IC card and IC card
US5263148A (en) * 1988-09-09 1993-11-16 Compaq Computer Corporation Method and apparatus for configuration of computer system and circuit boards
JPH02165290A (en) * 1988-12-19 1990-06-26 Hitachi Maxell Ltd Ic card and method for operating ic card
US4945448A (en) * 1989-03-17 1990-07-31 Allen-Bradley Company, Inc. Memory cartridge for a circuit board module
US5237690A (en) * 1990-07-06 1993-08-17 International Business Machines Corporation System for testing adaptor card upon power up and having disablement, enablement, and reconfiguration options

Also Published As

Publication number Publication date
EP0504866A3 (en) 1993-10-20
JPH05158511A (en) 1993-06-25
CA2061182A1 (en) 1992-09-23
EP0504866A2 (en) 1992-09-23
US5410717A (en) 1995-04-25

Similar Documents

Publication Publication Date Title
CA2061182C (en) Programmable controller processor with a removable function card
US4281392A (en) Memory circuit for programmable machines
US5335329A (en) Apparatus for providing DMA functionality to devices located in a bus expansion chassis
US6560235B1 (en) Universal communication system
US4964038A (en) Data processing system having automatic address allocation arrangements for addressing interface cards
US4815034A (en) Dynamic memory address system for I/O devices
US4975838A (en) Duplex data processing system with programmable bus configuration
EP0780772A2 (en) A computer system with multiple PC card controllers and a method of controlling I/O transfers in the system
EP0710376B1 (en) Method for configuring multiple adapter cards on a bus
US5416908A (en) Interface between industrial controller components using common memory
JP3310990B2 (en) Electronics
US5146605A (en) Direct control facility for multiprocessor network
JP2503183B2 (en) Bus adapter system
US6105080A (en) Host adapter DMA controller with automated host reply capability
JP3456692B2 (en) Data processing device
CN100432970C (en) Streamlining ATA device initialization
US11237832B2 (en) Module with a serialization unit and improved compatibility with deserialization units of different series
US6128718A (en) Apparatus and method for a base address register on a computer peripheral device supporting configuration and testing of address space size
US5862375A (en) System for effecting communications between a computing device and a plurality of peripheral devices
JP2579170B2 (en) Memory card
US5594879A (en) Method of and apparatus for arbitrarily disabling under processor control individual slots on a computer bus
JPH07182013A (en) Method and apparatus for discrimination of input/output module coupled to programmable logic controller
EP0496097A2 (en) Programmable controller processor for concurrently executing multiple user control programs
US5828857A (en) ASIC cell implementation of a bus controller with programmable timing value registers for the apple desktop bus
CN114328342A (en) Novel program control configuration method for PCIe heterogeneous accelerator card

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed
MKEC Expiry (correction)

Effective date: 20121202