PC Calibrator



Year of completion:
1989, Supported/Used until this day

Purchased/Utilized By:
IMPCO Technologies, Cerritos, CA

                                     AirSensors, Inc, Seattle, WA

                                     ISUZU Tech Center, Cerritos, CA

                                     ISUZU, Japan
Application: Data Acquisition/Powertrain Calibration Tool
Large, complex package for aiding development of real-time controllers and for collecting real-time data. It allows collecting, displaying, processing, and organizing real time data from many different sources (up to 200), all supplying data at different timing intervals, often in different formats. The software supports over 10 different analog, digital, and frequency-input boards, many serial communication protocols, and dual-ported RAM. What makes it different from a typical real-time data-acquisition package is heavy support for communication with embedded controllers and features that support development and debugging of embedded microprocessor code.

The typical application of the PC Calibrator would be as follows:

Suppose the user is developing a controller for some device. He has sensors and actuators connected to a small processor that will be doing the controlling in the real world. His goal is to develop the best control algorithm for the microprocessor. Part of the job is to evaluate the behavior of the algorithm at different external conditions not monitored by the microprocessor.

1. The user places the PC Calibrator’s Serial Communication driver in the target microprocessor’s code or connects the target microprocessor’s memory to the Dual-Ported RAM. This will give him the ability to monitor, change, HEX Dump, etc. any address or block of addresses in the target microprocessor’s memory with minimal intrusion. 

2. Once the user has the above physical means to monitor the target microprocessor, he sets up PC Calibrator to look at any variable in target microprocessor’s memory that he needs for evaluation and debugging. Every implemented hardware driver has its own simple script language to enter channel definitions. For the microprocessor interface drivers (serial or Dual-Ported RAM) it would be something like this:

Micro Position Command: SCOM(0): BYTE UNS "Pos_Command"*10[cm]+4

Micro Position Speed: SCOM(0): IWORD 2CPL "Pos_Speed"*100[cm/s]+10

Micro Actuator Output: SCOM(0): BYTE UNS "Actuator" *0.2[V]

    ----- (many more entries) -----

 
Explanation:
  • The left side entry defines the name of the channel that will be used in all charts, printouts, etc.  The right side is the script-language definition of the channel.
  • The first part of the right-side entry defines the name of the driver and its instance.  In this case, the user is working with Serial Communications Driver (SCOM) instance 0.  The instance is helpful when the user needs to work with several target microprocessors at once| he can set up the different instance of the SCOM driver for every PC serial port he has.
  • The second part defines the channel.  BYTE UNS "Pos_Command" means read the unsigned byte from the target microprocessor, referenced by MAP file symbol "Pos_Command" -the PC Calibrator can use the MAP file of the target micro's code to make the work easier.  If this is not possible, a hex address can be entered directly.  IWORD 2CPL means Intel-format word (LSB first) representing an integer value coded in 2's complement. - *10[cm]+4 defines scaling for the channel and the unit the user wants to work with.

3. The user equips his development system with fast and precise additional, precise sensors to allow monitoring variables unknown to the target microprocessor or to monitor the variables in much higher precision. The user connects the sensors to a precise analog-input board, (PCMCIA board PCM-DAS16 for example). Then he describes each used channel in the driver script language:

Precise Position Command: PCMDAS16(0): ANALOG_INPUT(0)*0.0003[cm]

Precise Actuator Position: PCMDAS16(0): ANALOG_INPUT(1)*0.0006[V]

----- (many more entries) -----

4. After the physical channels are defined, the user can define the derived channels. Derived channel might be a result of any mathematical calculations on previously defined channels: subtracting, adding, dividing, multiplying values of two different channels, calculating a derivative, integrating, filtering, table-converting (linearizing), or time-shifting an existing channel, etc. All these operations serve the purpose of creating any readings that might be useful in evaluating the performance of our system on the run – be it cumulative error for the last minute, or correlation of different variables.

5. The previous steps defined channels or physical variables the user wanted to work with. Once this is done, the user does not see the hardware properties of each signal – just a pool of variables, all in engineering units, linearized if necessary. The user can now start a data acquisition session, where selected variables are displayed or plotted in real time. Depending on application, acquired data can be streamed to the disk continuously or in chunks representing some real time event - a trigger. If the user is interested in getting only the data centered around some special event (rising edge of one of the channels, for example) he can define a trigger corresponding to that event. Next, he can specify the time envelope around that event that interests him (10[s] before the event to 5[s] after, for example).

6. The collected data can be printed in a number of different formats –charts, statistical, and modal reports, almost 200 different printers are supported directly. The data can also be exported in a format acceptable by common spreadsheet programs.

The demonstration/testing of the software without all the custom data acquisition hardware may not be as impressive as it would be with it. It is however possible, since one of the hardware drivers is a signal simulation driver, which allows creating "dummy" channels with values of sinusoidal, triangular, or square waves of selected frequency and amplitude.

PC-Calibrator was superseded by the Win32-Cal: the fully blown 32-bin Windows (95 and NT) program. The new software takes the flexibility and power of the PC-Calibrator to entirely new levels. Please see the description of Win32-Cal for details.