The CCM communicates with the host equipment via a standard RS-232C serial data link. The serial data link uses the M5X protocol to transfer data. The M5X commands allow the user to periodically request a broadcast of multiple engine parameters and generator parameters. The parameters can be used by host equipment for monitoring. Single parameter read commands and write commands allow the user to control the engine from the host device.
The CCM provides the communication link between the host device and the engine or the generator set. The engine parameters and the generator parameters are given a unique Parameter Identifier (PID). Refer to the Operation and Maintenance Manual, "Parameter Identifiers" section. The host equipment can create a maximum of eight lists. The lists are stored in non-volatile memory in the CCM. Each list can have a maximum of eight PID's. These lists contain multiple engine parameters that are broadcast to the host device from the CCM.
Most Caterpillar electronic systems that use the CCM can provide a maximum of 50 parameters per second. These parameters are sent to a remote computer system through the RS-232C connection. Other factors will decrease the number of parameters per second. When you connect with a modem at less than 4800 baud, the throughput will be reduced. A 2400 baud connection through a cellular phone will reduce the throughput to 29 parameters per second. CAT Data Link loading can also cause reduced throughput. In some complex systems, other modules on the CAT Data Link utilize system resources. The system throughput may be reduced to 40 parameters per second.
Stable parameters should be requested less frequently in order to optimize data transfer. This will minimize communication loading. Some examples of stable parameters include the following items: hourmeters, atmospheric pressure, temperatures and diagnostics. Parameters that are more dynamic such as engine speed and oil pressure can be requested more frequently. Use good judgment to determine the update rate of individual parameters.
The M5X protocol command messages that are transmitted to the CCM must be in ASCII format. The response to the command messages will always be returned in ASCII format. The broadcast may be configured to be either ASCII or Binary.
Standard Preamble
The first four bytes of every IID contain a standard preamble.
50xxyyzz (IID specific data)
The 50 indicates M5X protocol.
xx is the module identifier of the sending module.
XX     | Module     |
00     | Host Device     |
01     | CCM     |
yy is the Instruction Identifier.
yy     | IID     |
00     | Special Parameter Command     |
10     | Broadcast Response     |
11     | Activate a Broadcast List.     |
12     | Deactivate a Broadcast List.     |
13     | Program a Broadcast List.     |
15     | Status Response to IID 11, 12, and 13     |
24     | Single Parameter Read Request     |
25     | Single Parameter Read Response     |
34     | Single Parameter Write Request     |
35     | Single Parameter Write Response     |
zz is the number of bytes in the message after this byte. zz does not include the checksum. This value will change depending on the data that is associated with the IID.
Checksum Calculation
The checksum is an important part of the M5X message. By using the checksum, the integrity of the message is determined. The second to last byte of every IID is the checksum, which is followed by an ASCII carriage return ($0D). The checksum is a 2's complement value of the summation of all the data bytes in the message. The message is a good message if all the bytes and the checksum add to zero (0).
The following message is an example.
5000240400580082AE<cr>
The checksum for this message is AE. Although the message is sent in ASCII, the checksum must be calculated by using the hexadecimal value.
Byte     | ASCII Value     | Hexadecimal Value     |
50     | $35 $30     | $50     |
00     | $30 $30     | $00     |
24     | $32 $34     | $24     |
04     | $30 $34     | $04     |
00     | $30 $30     | $00     |
58     | $35 $38     | $58     |
00     | $30 $30     | $00     |
82     | $38 $32     | $82     |
Total     |     | $152     |
Truncated to LSB     |     | $52     |
2's Compement     | $41 $45     | $AE     |
Total     |     | $100     |
Truncated to LSB     |     | $00     |
CCM Heartbeat
You should check the connection to the CCM before you log in to the CCM. You should also check the connection (heartbeat) to the CCM during normal operation from time to time. The recommended PID is $F0 $12. Use PID $F0 $12 to read the current Security Level at a regular interval as a heartbeat. If the CCM does not answer to the read request, then there is a problem with the connection. This PID will also monitor the Security Level, which may have been changed.
Security Levels
Every PID has an associated security level (0, 1, 2, or 3) within the CCM. A user within a particular security level may use PID's in that level or lower levels. PID's cannot be accessed by the user in levels higher than the password allows. For example, a user at security level 2 can access level 2, 1, and 0, but not level 3.
The answering modem will be hung up if the password is not entered (sets the security level) within one minute. Specifically, if DCD is held low by the PC, and the security level is at 0 for more than one minute, DTR will be toggled by the CCM (answering modem hung up). Also, if the RS-232C cable is disconnected for more than five seconds, DTR will be toggled, and the security level will be set to 0.
When power is removed from the CCM, the security level will be changed to 2, if the CCM was operating at security level 3.
The following chart defines the PID's within each security level for CCM parameters.
PID Security Levels     | |
Level No.     | PID     |
0     | $00 $80 (R), $AA $8A (W), $F0 $12 (RW) (1), $F8 $14 (R)     |
1     | $00 $0D (R), $00 $82 (R), $F0 $12 (W) (1), $F6 $01 (R)     |
2     | $00 $0D (W), $F0 $12 (W) (1)     |
3     | $AA $12 (RW), $AA $87 (RW), $AA $88 (RW), $AA $89 (RW), $F0 $12 (W) (1), $F6 $01 (W), $F8 $14 (W)     |
( 1 ) | User can write this parameter only at a level equal to or less than the logged in security level. |
R = Read, W = Write
Logging In to the CCM
Before any parameters can be read or written to the CCM or to the electronic engine controller, the appropriate security level must be established. This process is called Logging In. The default password for the password is blank for all security levels. To log in with the factory default blank password, use IID 34 for PID $AA $8A: $500034040061AA8AE3
IID 34 - Single Parameter Write Request     | ||
---|---|---|
Byte(s)     | Byte Contents     | Detailed Description     |
1     | $50     | Indicates M5X protocol     |
2     | $00     | User's PC is the sending module.     |
3     | $34     | IID 34     |
4     | $04     | Number of bytes     |
5     | $00     | Response in ASCII     |
6     | $61     | MID for CCM     |
7, 8     | $AA $84     | PID $AA $8A Login Password     |
9     | $E3     | Checksum     |
To login using a password 11112222, use IID 34 for PID $AA $8A: $5000340C0061AA8A31313131323232324F
IID 34 - Single Parameter Write Request     | |
---|---|
Bytes(s)     | Description     |
1     | $50 indicates M5X protocol     |
2     | $00 = User's PC is the sending module     |
3     | $34 = IID 34     |
4     | $0C = Number of bytes     |
5     | $00 = Reply in ASCII format     |
6     | $61 = CCM     |
7, 8     | $AA $8A = PID $AA $8A Login Password     |
9-16     | 3131313132323232 = Password (ASCII text)     |
17     | $4F = Checksum     |