Skip to content
Chapter 2 · CMM IV

Functional Description

The following section describes the internal measurement and gives a detailed description of the interfaces.

2.1Current measurement

2.1.1Measurement procedure

The current is measured internally at a sampling rate of 1MS/s, where 8 samples are averaged to 1 internal sample. Thus, a “real” internal sampling rate of 125kS/s is achieved. This “real” internal sampling rate can be streamed to a PC via Ethernet. The internal sampling rate can be further reduced in the CMM-IV-GUI. Possible values are 125, 50, 10 and 1 kS/s.

The current range is selected automatically, when the CMM is switched on. Large current steps can result in short-time voltage drops of a few hundred millivolts across the module. See Dynamic behavior for dynamic behavior.

The CMM-IV transmits the average of the current for a configurable period via CAN. The standard value for this period is 5 ms.

Additionally, the average, the minimum and the maximum current can be read via CAN-Iso-TP. The calculation of the average, the minimum and the maximum value is reset with every readout. The following figure illustrates the averaging.

Diagram: 1MS/s samples, average of 8 samples as internal sampling rate, average of N samples returned from readout to readout (e.g. CAN message)
Figure 5: Measurement procedure

2.1.2Reverse current detection

Reverse currents cannot be measured, but a flag signals when a current of several 100mA is applied in reverse direction. The output data is set to zero if reverse current is detected. The flag can be read via IsoTP-protocol and the TCP-Streaming mode.

2.1.3Dynamic behavior

Switching between the ranges occurs very fast from low current range to high current ranges within less than 1µs (500ns typical) after the current range has been exceeded. This is significantly faster than the current can rise due to wiring inductance even with short wires.

The following figure shows the current (red) through the CMM and the voltage drop (yellow) across the CMM for a load current step from 0 to 100 A. The ringing on the voltage drop is caused by the wiring inductance.

Oscilloscope capture: current through the CMM (red) and voltage drop across the CMM (yellow) for a load current step from 0 to 100 A
Figure 6: Dynamic switching behavior

2.2ON/Off control

CMM-IV may be switched on or off by a hardware input or by software. The following parameters can be adjusted by configuration:

  • Active level (high or low) of the hardware input
  • Priority of hardware or software on/off-control

Configuration may be changed in the CMM-IV-GUI, by the command OnOffMode = x via Text-Based Ethernet-Protocol or CAN using ISO-TP protocol, while x one of the following numbers 0…7:

IDNameHW inputSW settingDescription
0ONOFF_Mode_ExtHighActiveYESNOCMM is ON, when high level is applied at HW input, SW setting ignored
1ONOFF_Mode_ExtLowActiveYESNOCMM is ON, when low level is applied at HW input, SW setting ignored
2ONOFF_Mode_IntNOYESCMM is only controlled by SW
3ONOFF_Mode_ExtHighActiveAndIntYESYESCMM is ON when HW input is high AND SW setting is ON.
4ONOFF_Mode_ExtLowActiveAndIntYESYESCMM is ON when HW input is low AND SW setting is ON.
5ONOFF_Mode_ExtHighActiveOrIntYESYESCMM is ON when HW input is high OR SW setting is ON.
6ONOFF_Mode_ExtLowActiveOrIntYESYESCMM is ON when HW input is low OR SW setting is ON.
7ONOFF_Mode_AlwaysOnNONOCMM is always ON.

2.3CAN data output

CAN data is sent cyclically on a specified CAN ID. This CAN ID is adjustable via text-based Ethernet-Protocol or CAN using ISO-TP protocol.

ValueMinTypicalMaxUnitRemarks
CAN Type-High Speed--CAN transceivers are always active. No sleep mode is applied.
CAN Termination120OhmTermination resistor is switchable via software command.
CAN nominal Baud rate10010001000kBit/sDefault baud rate is 1MBit/s
CAN-FD data Baud rate100040004000kBit/sDefault baud rate is 0, which means Classic CAN is used
CAN ID0x1C2HexIdentifier may be adjusted by software command
Extended IDNo11-Bit or 29-Bit identifier may be adjusted by software command
CAN transmit interval1530000msTransmit interval may be adjusted by software command
CAN data length54 Bytes for current and 1 Byte for range
CAN data resolution100nAOne bit of the returned current represents 100nA of real measured current

Content of the transmitted CAN message is as follows:

ByteContentValue
Byte 0Current Bit 7..00x00000000 … approx. 0x7270 E000
Byte 1Current Bit 15..80x00000000 … approx. 0x7270 E000
Byte 2Current Bit 23..160x00000000 … approx. 0x7270 E000
Byte 3Current Bit 31..240x00000000 … approx. 0x7270 E000
Byte 4Range0 … 6
Byte 5Flags0…0x07
Byte 6...7Padding0

The CAN Message has a DLC (Data Length Code) of 8. Only Bytes 0 – 5 are used, Bytes 6 – 7 are padded with 0. Current is returned as 32 Bit unsigned long value in steps of 100nA split into the first 4 bytes of the CAN message. When CMM-IV is in off state, the returned value is zero. When CMM-IV is in on state, but reverse current is applied, the returned value is zero and “Negative Current Flag” (0x01) is set.

Flags:

  • 0x01: Negative Current
  • 0x02: Drop Voltage
  • 0x04: Ringbuffer Warning
  • 0x08: Cmm Off (0 = On; 1 = Off)

2.4Configuration tool CMM-IV-GUI

The tool CMM-IV-GUI can be used to configure a CMM-IV and can also trigger measurements or stream all measured values to a PC. The current version of the CMM-IV-GUI can be downloaded from:

myIRS – Downloads

After installation the installation folder contains (among others) the following subfolders and files:

File/FolderDescription
IRS.CMM-IV.GUI.exeThe configuration tool
IRS.CMM-IV.Lib.dllA C# library which can be used to include the CMM into your software
ExamplesContaining an example NI TestStand sequence which illustrates the use of important functions
LabVIEWContaining the NI LabVIEW VIs which are used by the example test sequence
FirmwareContains a firmware image which can be used to update the microcontroller on the CMM-IV

2.4.1Connect and update a CMM-IV

The CMM-IV-GUI uses Ethernet and TCP/IP to communicate with the CMM-IV. Therefore, it is necessary to enter the IP-address of CMM-IV into the GUI. The default IP-address is 192.168.222.21. See Ethernet connection for details on IP configuration. If you do not know the IP-address of the CMM-IV, you can use Tools -> Detect module.

IRS.CMM-IV.GUI main window with NETWORK, CHART/TESTPANEL and STREAMING, and the opened Tools menu with Detect module, Bootloader, Export to TDMS and Install TDMS library
Figure 7: Find IP address of CMM-IV in CMM-IV-GUI

If “Detect module” does not find an IP address, make sure that the subnet mask of your network card is configured correctly and check your firewall settings.

After entering the IP address under “Remote IP” you can check the connection with “IDENTIFY”. This button opens a window which lists information about the connected CMM-IV. This information includes the serial number and the firmware version of the connected CMM-IV. If the firmware version is outdated, you can update the microcontroller under Tools -> Bootloader. The latest firmware version can be found with Help -> Check for update.

IRS MULTI BOOTLOADER window with IP 192.168.222.21, target TCP (CANny/EthRel/CMM IV/ECB redesign), START button and log
Figure 8: User interface of the bootloader

The bootloader is simple to use. Just enter the IP address of the CMM IV and click “START…”. Then select the firmware image from the installation folder mentioned above.

2.4.2Use the test panel to configure the CMM-IV and to get current measurements

The test panel can be opened by clicking “TESTPANEL” in the main window. It can be used to configure the different communication interfaces and the measurement behavior of the CMM-IV.

“ON/OFF CONTROL” can be used to select the modes described in ON/Off control.

TEST PANEL with ON/OFF CONTROL, CAN BASIC SETTINGS, MISCELLANEOUS, CAN IDS/INTERVAL, USER TEXT, ETHERNET SETTINGS, TCP PORTS, MAC, CALIBRATION and MEASUREMENT
Figure 9: Test panel of the CMM-IV-GUI

There are three different methods of getting measurement values.

The first method simply uses the “READ” button. This immediately returns the requested number of current samples. With this method up to 100000 samples can be read. The maximum number of samples is reduced to 10000 if the maximum sample rate of 125 kS/s is used.

The second method is more advanced and uses the Buttons “INIT”, “SW TRIGGER” and “FETCH”. The button “INIT” sets the trigger method selected in the dropdown menu and the number of samples that shall be read. The number of samples for this method is limited to 100. The button “SW TRIGGER” must be used to trigger the measurement if trigger mode “Internal” is selected. In “External” trigger mode the measurement is triggered by a positive edge on the ON/OFF pin and in mode “Immediately“ no trigger is needed and measurement starts immediately after “INIT”. The button “FETCH” returns the configured number of current samples when the measurement is completed.

The third method uses the button “MINIMUM/MEAN/MAXIMUM”. A click on this button returns the minimum, mean and maximum current since the last use of this button.

The test panel offers two possibilities to configure the measurement behavior under “MISCELLANEOUS”.

“Minimum range” can be used to avoid undesired switching between ranges. The minimum range is reset to zero when rebooting the CMM-IV. A maximum range can not be set because it could easily lead to accidentally exceeding the maximum allowed current of the selected range.

“Sample rate” can be used to reduce the sample rate of the CMM IV. This could especially be helpful to reduce the size of the saved data, when using streaming of measurement values for longer time periods.

2.4.3Streaming of measured values

Streaming of measured values can be started in the main window of the CMM-IV-GUI. When “trigger disabled” is selected, streaming starts with a click on “START” and ends with a click on “STOP”. When “SW falling edge” or “SW rising edge” is selected, streaming starts but no data is saved until the selected edge is detected. The level for the edge detection can be configured under “SW trigger level [A]”. When an edge is detected 12500 samples before and 12500 samples after the edge are saved. With the default sample rate of 125 kS/s this results in 100 ms before and after the trigger event. In trigger mode “HW” a rising edge on the ON/OFF pin is used as trigger. After the click on “START” the microcontroller on the CMM-IV is set in a waiting mode and only starts streaming after the rising edge on pin ON/OFF is detected.

The streamed measurement data is saved in the proprietary “cmm4” format. This is a binary format which unloads the PC from data conversion and therefore allows streaming from multiple CMM-IV in parallel. The conversion to the TDMS format from National Instruments can be done from the menu (Tools -> Export to TDMS). To use the export function, you first need to install a TDMS library from National Instruments (Tools -> Install TDMS library).

File dialog Select multiple files for batch processing with file CMM-IV-Streaming.cmm4 and the file type selection CMM4 (current only) marked
Figure 10: Dialogue Window for TDMS export

“Export to TDMS” opens the dialogue window shown in Figure 10. In this window you can select the cmm4 file which should be converted to TDMS format. The TDMS file is saved with the same name as cmm4 file. The marked selection offers three possibilities. “CMM4 (current only)” exports only the measured current values. “CMM4 (all channels)” also includes the drop voltage, range and flags. “CMM4 (ignore trigger event)” exports all data from the click on “START” until the end of the cmm4 file which is 12500 samples after the trigger event. This is possible because all data is stored in the cmm4 file (including the trigger event) and the trigger is only used when exporting to TDMS.

2.4.4Live view of measured values

A click on “CHART” in the main window opens the window shown in Figure 11. The measured values are updated every second and displayed in the chart.

CHART window with current over time and status line with current, drop voltage, temperature and CMM state
Figure 11: Live view of measured values

2.5Text-Based Ethernet-Protocol

The following sections describe the text-based Ethernet-protocol which is used by the CMM-IV-GUI and the C#-DLL. It is recommended to use the CMM-IV-GUI or the C#-DLL (which is part of the CMM-IV-GUI download package, see Configuration tool CMM-IV-GUI for details).

The protocol is based on TCP and uses 0-terminated strings. This means the last character of each command has to be NUL (= 0x00).

2.5.1Commands to measure currents, voltage drop and temperature of CMM IV

The text-based Ethernet protocol supports two different methods of reading currents. The first method is to simply use the ReadCurrent command with TriggerMode IMM. This immediately returns the requested number of current samples. The second method is more advanced and uses the commands InitCurrent, TriggerCurrent and FetchCurrent. InitCurrent sets the trigger method and the number of samples that shall be read. TriggerCurrent is used to trigger the measurement if trigger mode INT is selected. FetchCurrent returns the requested number of current samples when the measurement is completed.

The following commands can be sent as strings on TCP port 5025 and must be finished with the NUL-character (0x00). Erroneous commands are answered by an error message, see Error messages for details.

CommandParametersDescriptionRemarks
ReadCurrent =1 … 100000, INT/EXT/IMMSets the number of samples and the trigger source. Values are sent directly after the measurement.Trigger sources: INT: Wait for command “TriggerCurrent”; EXT: Wait for rising edge on Pin On/Off; IMM: Start measurement immediately
InitCurrent =1 … 100, INT/EXT/IMMSets the number of samples and the trigger source. Values are sent after the measurement has been completed and command “FetchCurrent” was received.Trigger sources: INT: Wait for command “TriggerCurrent”; EXT: Wait for rising edge on Pin On/Off; IMM: Start measurement immediately
TriggerCurrentMust be used to trigger the measurement if trigger source “INT” is selected.
FetchCurrentReturns the measured values when the measurement is completedResponse: 0.0005027 A, 0.0005031 A …; If negative Current is detected, the response is: -0.0000001 A
Voltage?Queries the current drop voltage value in µVResponse: Voltage = 30156 µV
Temperature?Reads out current module temperature in °CResponse: Temperature = 26 °C
MinMaxMean?Returns min, max and mean current since last use of this command.Response: Min = 0.0005027 A, Mean = 0.0005031 A, Max = 0.0005034 A, Samples = 12756

2.5.2Commands to query configuration parameters

The following commands can be sent as strings on TCP port 5025 and must be finished with the NUL-character (0x00). Erroneous commands are answered by an error message, see Error messages for details.

CommandDescriptionResponseRemarks
Identify?Queries the name, HW-Revision, SW-Revision and Serial Number of the deviceIRS CMM IV; HW Revision: 3; SW Version: 1.2; Serial Number: 20BG00001
CanCyclicInterval?Queries the current CAN transmission interval in millisecondsCanCyclicInterval = 5 msDefault return value is 5ms
CanBaudrate?Queries the CAN nominal baudrate in kBit/sCanBaudrate = 1000 kBitsDefault nominal baudrate is 1000 kBit/s
CanDataBaudrate?Queries the CAN-FD data baudrate in kBit/sCanDataBaudrate = 4000 kBitsDefault data baudrate is 1000 kBit/s
TxFrameFormat?Queries the format in which CAN messages are sent by the CMMTxFrameFormat = 00: Classic CAN frame; 1: CAN FD frame without BRS; 2: CAN FD frame with BRS
CanCyclicId?Queries the CAN ID for cyclic messagesCanCyclicId = 0x1C2“EXT” is added for extended IDs; Default Can ID is 0x1C2
Temperature?Reads out current module temperature in °CTemperature = 26 °C
OnOffMode?Queries the On/Off control configurationOnOffMode = 0…7See ON/Off control for description of OnOffMode?.
OnOff?Queries the ON/Off state of the deviceOnOff = 0/1 (0 => Off / 1 => On)This state is the result of the OnOffMode, the hardware input and the software on/off setting.
IsoTpLocalId?Queries local CANID for ISO-TPIsoTpLocalId = 0x7FFLocal ID is sent by CMM; Default is 0x1C3; “EXT” is added for extended IDs
IsoTpRemoteId?Queries remote CAN-ID for ISO-TPIsoTpRemoteId = 0x1C3Remote ID is sent by system; Default is 0x7FF; “EXT” is added for extended IDs
CanTermination?Queries state of switchable CAN terminationCanTermination =0/1Default is 0 (CAN termination off)
IpSettings?Queries the IP settings of the deviceIP = 192.168.200.1, Mask = 255.255.255.0, Gateway = 192.168.200.10These are the default IP settings. IP can be reset by hardware switch (see Ethernet connection).
Ports?Queries the TCP portsPort TcpCommands = 5025, Port TcpEcho = 55111, Port TcpStreaming = 55112These are the default port settings.
MacSettings?Queries the MAC address of the deviceMAC = 74:5B:C5:00:00:01
CalDate?Queries the calibration dateCalDate = 2020-06-18
MinRange?Queries the minimal range set by the userMinRange = 0See corresponding command in following section for details
UserText?Queries the string previously stored with the command “UserText =“UserText =<string>
SampleRate?Queries the sample rate (details in Measurement procedure)SampleRate = 00: 125 kS/s; 1: 50 kS/s; 2: 10 kS/s; 3: 1 kS/s

2.5.3Commands to set configuration parameters

The following commands can be sent as strings on TCP port 5025 and must be finished with the NUL-character (0x00). Erroneous commands are answered by an error message, see Error messages for details. If a command uses multiple parameters, the parameters must be separated by a whitespace. Optional parameters are noted in square brackets.

CommandParametersDescriptionResponseRemarks
ResetReboots CMM IVOkReboot of CMM IV may take up to 10 seconds
Default =CANRestore default settings for CAN interfaceOk
CanCyclicInterval =1 ms … 1 000 000 msSets the current CAN transmission interval in millisecondsOkMax. interval is 1 000 sec = 1 000 000 ms
CanBaudrate =100 kBits … 1000 kBitsSets the CAN nominal baud rate in kBit/sOkFirst parameter must be a value between 100 and 1000. Second parameter must be “kBits”
CanDataBaudrate =1000 kBits … 4000 kBitsSets the CAN-FD data baud rate in kBit/sOkFirst parameter must be a value between 1000 and 4000. Second parameter must be “kBits”.
TxFrameFormat =0, 1 or 2Sets the format in which CAN messages are sent by the CMMOk0: Classic CAN frame; 1: CAN FD frame without BRS; 2: CAN FD frame with BRS
InitCanReinitializes CAN interfaceOkReinitialization of CAN interface is necessary if baudrate was changed
CanCyclicId =0x0 … 0x7EF [EXT]Sets the CAN ID for cyclic messagesOkOptional parameter EXT must be used for extended IDs; Max. extended ID is 0x1FFFFFEF
OnOffMode =0 … 7Sets the On/Off control configurationOkSee ON/Off control for description of OnOffMode.
OnOff =0 … 1Sets the software ON/Off state of the deviceOkDepending on the OnOffMode this setting is used or ignored. See ON/Off control for details.
IsoTpLocalId =0x0 … 0x7FF [EXT]Sets local CAN-ID for ISO-TPOkOptional parameter EXT must be used for extended IDs; Max. extended ID is 0x1FFFFFEF
IsoTpRemoteId =0x0 … 0x7FF [EXT]Sets remote CAN-ID for ISO-TPOkOptional parameter EXT must be used for extended IDs; Max. extended ID is 0x1FFFFFEF
CanTermination =0 … 1Sets state of switchable CAN terminationOk
IpSettings =Example: 192.168.200.1 255.255.255.0 192.168.200.10Sets the IP settings of the deviceOkIp, Mask and Gateway must be separated by whitespaces.
Ports =Example: 5025 55111 55112Sets the TCP portsOkPort numbers must be separated by whitespaces.
MinRange =0…6Sets the minimal range, the CMM IV can switch toOkThis command can be used to minimize switching with dynamic signals. Internal MinRange value is reset to 0 before the CMM is switched on by software or hardware pin.
UserText =<string>The user can permanently store a string of up to 64 Bytes in the CMMs storage.OkThis could for example be used to store the date of the next calibration, an inventory number or anything else.
SampleRate =0 … 3Sets the sample rate (details in Measurement procedure)0: 125 kS/s; 1: 50 kS/s; 2: 10 kS/s; 3: 1 kS/s

2.5.4Error messages

Erroneous commands are answered by one of the following strings (where it is appropriate, the error message contains the received string to simplify debugging):

  • !Incorrect number of arguments: <received string>
  • !This command is not supported: <received string>
  • !This action is not supported: <received string>
  • !Values out of range: <received string>
  • !FRAM write failed.
  • !No data available, maybe there was no trigger.
  • !Error: <errorcode>
  • !Waiting for reset to complete, commands are ignored.

2.6CAN configuration

Configuration of CMM may be performed using the CAN interface. For this configuration ISO-TP protocol is applied, according to ISO 15765-2. Normal addressing mode is used.

Configuration is performed by sending commands to CMM. Every command is acknowledged by a response.

By default, CMM IV uses the following IDs for ISO-TP:

  • CMM IV listens on Local-ID (TPLID) for Commands: 0x1C3
  • CMM IV sends Responses on Remote-ID (TPRID): 0x7FF

2.6.1ISO TP Header

Single frame commands

Most commands and responses fit into a single CAN message. I.e. single frames according to ISO-15765-2 may be used. The respective CAN message carries the following data:

CAN IDData_1Data_2 (Command Header)Data_3 (Command Header)Data_4 (Command Header)Data_5 (Command Header)Data_6Data_7Data_8
TPLID (command), TPRID (response)SF_N_PCI = Length, 0x04…0x07CommandActionError-CodeReservedCommand dependent dataCommand dependent dataCommand dependent data

Multiple frame commands

If more than one message is necessary for a command, first frames, flow-control and consecutive frames are used in the following order from top to bottom:

CAN IDFrameData_1Data_2Data_3Data_4Data_5Data_6Data_7Data_8
TPLID (Command)First FrameFF_N_PCI ID+(Length MSB): 0x10(Length LSB): LengthCommandActionError-CodeReservedCommand dependent dataCommand dependent data
TPRID (Response)Flow controlFC_N_PCI: 0x30BS: Block size = 0ST_min: Separation time = 0
TPLID (Command)Consecutive frameCF_N_PCI: 0x20Command dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent data
TPLID (Command)Consecutive frameCF_N_PCI: 0x21Command dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent dataCommand dependent data
TPLID (Command)Consecutive frame::::::::

If the multiple frame message is a response, exchange the CAN-IDs TPRID and TPLID.

Data Byte 1/2 xx_N_PCI

Data byte 1 contains frame type and data length information according to ISO 15765-2.

For Single frames the values 0x04…0x07 are valid, which represent the number of following data bytes. 4 bytes minimum for Command, Action, Error-code, and Reserved - 7 bytes maximum including 3 command dependent data bytes.

For first frames 0x10 in byte 1 is added to the command length, which can be found in byte 2.

For consecutive frames 0x20 is added to a message counter in byte 1.

2.6.2Command Header

Data Byte 2/3 Command

Byte 2 for single frames, byte 3 for multiple frames

Command IDCommandDescription
0x00CAN_Cmd_NOOPRNo operation
0x01CAN_Cmd_RESETResets the CMM internal microcontroller (Reboot of CMM IV may take up to 10 seconds)
0x02CAN_Cmd_SWVERReads out software version
0x03CAN_Cmd_DEFLTAll configuration parameters will be set to their default values
0x04CAN_Cmd_ONMODQueries or sets the On/Off control configuration
0x05CAN_Cmd_CMMONQueries or sets the state of the internal ON/Off state
0x06CAN_Cmd_GLVALQueries the latest values min, max and average
0x07CAN_Cmd_TEMPRReads out current module temperature in °C
0x08CAN_Cmd_SINTVQueries or sets the serial transmission interval in milliseconds
0x09CAN_Cmd_CANBDQueries or sets the CAN baud rate in kBit/s
0x0ACAN_Cmd_CIDINQueries or sets both CAN identifier and interval (combines commands CANBD and CANID of serial configuration)
0x0BCAN_Cmd_TPLIDQueries or sets both CAN identifier and Extended-flag of Identifier (combines commands TPLID and TPLXT of serial configuration)
0x0CCAN_Cmd_TPRIDQueries or sets both CAN identifier and Extended-flag of Identifier (combines commands TPLID and TPLXT of serial configuration)
0x0DCAN_Cmd_INITCInitializes CAN interface
0x0ESerialNumberQueries the serial number.
0x0FCalDateQueries the calibration date
0x10CanTerminationQueries or sets the state of the switchable CAN termination resistor.
0x11IpSettingsQueries or sets the IP, Mask and Gateway for the Ethernet connection
0x12PortSettingsQueries or sets the ports for the Ethernet connection
0x13MacSettingsQueries the MAC address of the Ethernet connection
0x14HwVersionQueries the hardware revision
0x15CanDataBaudrateQueries or sets the CAN-FD data baud rate in kBit/s.
0x16TxFrameFormatQueries or sets in which CAN messages are sent; 0: Classic CAN frame; 1: CAN FD frame without BRS; 2: CAN FD frame with BRS
0x20UserTextThe user can permanently store a string of 64 Bytes in the CMMs storage.
0x30TCP-ISOTP-BridgeEncapsulates TCP commands into ISOTP frames

Data Byte 3/4 Action

Byte 3 for single frames, byte 4 for multiple frames

Command IDCommandValid for DirectionDescription
0x00CAN_Action_GetCommand to CMMQuery operation to read data from CMM
0x01CAN_Action_SetCommand to CMMSet operation
0x02CAN_Action_ExeCommand to CMMExecute without data read or write.
0x03CAN_Action_RetResponse from CMM

Data Byte 4/5 Error-code

Byte 4 for single frames, byte 5 for multiple frames. This data byte is only valid for responses from CMM. In commands to CMM this byte should always be 0x00 = No error.

Command IDCommandDescription
0x00CAN_Error_NoneCommand has been accepted, no error
0x01CAN_Error_HeaderLengthHeader Bytes 1..4 were not complete
0x02CAN_Error_DataLengthNumber of data bytes did not fit to command
0x03CAN_Error_UnknownCmdUnknown command
0x04CAN_Error_ActionAction not supported for this command
0x05CAN_Error_VOORValue out of range (an invalid parameter has been passed)
0x06CAN_Error_InvalidHeaderErrorcode or ReservedByte of Command Header were not 0.
0x07FRAM_Error_WriteFailedWriting to the FRAM storage on the CMM failed
0x08CMM_Error_WaitingForResetCommands are locked while a reset is pending.

Data Byte 5/6 Reserved

Byte 5 for single frames, byte 6 for multiple frames. This byte is reserved for future use.

2.6.3Command overview

The following commands are available:

CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_NOOPR40x000x02 (Exe)0x000x00
CAN_Cmd_RESET40x010x02 (Exe)0x000x00
CAN_Cmd_SWVER40x020x00 (Get)0x000x00
CAN_Cmd_DEFLT40x030x02 (Exe)0x000x00
CAN_Cmd_ONMOD40x040x00 (Get)0x000x00
CAN_Cmd_ONMOD50x040x01 (Set)0x000x00OnMode = 0…7
CAN_Cmd_CMMON40x050x00 (Get)0x000x00
CAN_Cmd_CMMON50x050x01 (Set)0x000x000 / 1
CAN_Cmd_GLVAL40x060x00 (Get)0x000x00
CAN_Cmd_TEMPR40x070x00 (Get)0x000x00
CAN_Cmd_CANBD40x090x00 (Get)0x000x00
CAN_Cmd_CANBD60x090x01 (Set)0x000x00CAN nominal Baud rate kBit/s (Bit 7..0, Bit 15..8)
CanDataBaudrate40x150x00 (Get)0x000x00
CanDataBaudrate60x150x01 (Set)0x000x00CAN data Baud rate kBit/s (Bit 7..0, Bit 15..8)
CAN_Cmd_INITC40x0D0x02 (Exe)0x000x00

Please note, that only command header and command dependent data is shown. ISO 15765 header must be added and messages have to be split into several messages, if necessary.

CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_CIDIN40x0A0x00 (Get)0x000x00
CAN_Cmd_CIDIN120x0A0x01 (Set)0x000x00CAN ID, Xtended, CAN Interval [ms]
ByteCommand dependent dataBits
Byte 0 … 4CAN IDBit 7…0, Bit 15..8, Bit 23…16, Bit 30…24
Byte 0 … 4Xtended = 0 / 1Bit 31
Byte 5…8CAN Interval [ms]0.. … 31
CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_TPLID40x0B0x00 (Get)0x000x00
CAN_Cmd_TPLID80x0B0x01 (Set)0x000x00Byte 0 … 4: CAN ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31)
CAN_Cmd_TPRID40x0C0x00 (Get)0x000x00
CAN_Cmd_TPRID80x0C0x01 (Set)0x000x00Byte 0 … 4: CAN ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31)
SerialNumber40x0E0x00 (Get)0x000x00
CalDate40x0F0x00 (Get)0x000x00
CanTermination40x100x00 (Get)0x000x00
CanTermination50x100x01 (Set)0x000x000/1
IpSettings40x110x00 (Get)0x000x00
IpSettings160x110x01 (Set)0x000x00Ip, Mask, Gateway
ByteCommand dependent dataExample
Byte 0…3Ip192 168 200 1
Byte 4…7Mask255 255 255 0
Byte 8…11Gateway192 168 200 10
CommandLengthCommand IDActionError-codeReservedCommand dependent data
PortSettings40x120x00 (Get)0x000x00
PortSettings100x120x01 (Set)0x000x00Port Commands, Port Echo, Port Streaming
ByteCommand dependent dataBits
Byte 0…1Port Commands (5025)Bit 7…0, Bit 15…8
Byte 2…3Port Echo (55111)Bit 7…0, Bit 15…8
Byte 4…6Port Streaming (55112)Bit 7…0, Bit 15…8
CommandLengthCommand IDActionError-codeReservedCommand dependent data
MacSettings40x130x00 (Get)0x000x00
HwVersion40x140x00 (Get)0x000x00
TxFrameFormat40x160x00 (Get)0x000x00
TxFrameFormat50x160x01 (Set)0x000x000 … 2 (0: Classic CAN, 1: CAN FD without BRS, 2: CAN FD with BRS)
UserText40x200x00 (Get)0x000x00
UserText680x200x01 (Set)0x000x00Byte 0 … 63: UserText string
TCP-ISOTP-Bridge????0x300x00 (Get)0x000x00Byte 0 … ????: TCP command (from PC)

2.6.4Response overview

Every command is acknowledged by a response.

Most commands are executed first and a response is sent after execution. Exceptions from this rule are as follows:

  • RESET:
    • The response is sent immediately.
    • Reset is performed afterwards.
    • Reboot of CMM IV may take up to 10 seconds
  • TPLID, TPRID:
    • The response is sent with the previous CAN ID.
    • Respective CAN ID for ISO-TP is changed after the response has been sent.
  • CANBD:
    • Baud rate is changed after response has been sent.
    • Please note that bus errors may occur after baud rate has been changed. CMM should be restarted afterwards.

Negative Responses

Negative responses are returned when a failure has occurred. I.e. the command was invalid and has been rejected.

Response to CommandLengthCommand IDActionError-codeReserved
Any40xXX0x03 (Ret)0xYY (see Data Byte 4/5 Error-code)0x00

Positive Responses

Positive responses to the respective commands are as follows. Please note that only command header and command dependent data is shown. ISO-TP header must be added and messages have to be split into several messages, if necessary.

Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_NOOPR40x000x03 (Ret)0x000x00
CAN_Cmd_RESET40x010x03 (Ret)0x000x00
CAN_Cmd_SWVER180x020x03 (Ret)0x000x00SW Version ASCII string (14 Bytes)
CAN_Cmd_DEFLT40x030x03 (Ret)0x000x00
CAN_Cmd_ONMOD50x040x03 (Ret)0x000x00OnMode = 0…7
CAN_Cmd_CMMON50x050x03 (Ret)0x000x000 / 1
CAN_Cmd_TEMPR40x070x03 (Ret)0x000x00Temperature [°C] (Bit 0…7, 8…15)
CAN_Cmd_CANBD60x090x03 (Ret)0x000x00CAN nominal Baud rate kBit/s (Bit 7…0, 15..8)
CanDataBaudrate60x150x03 (Ret)0x000x00CAN-FD data Baud rate kBit/s (Bit 7…0, 15..8)
CAN_Cmd_INITC40x0D0x03 (Ret)0x000x00
Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_GLVAL230x060x03 (Ret)0x000x00CMMON, Negative, Range, Average, Min, Max, Nr Samples
ByteCommand dependent dataValue / Bits
Byte 0CMMON0/1
Byte 1Negative0/1
Byte 2Range0…6
Byte 3…6Average [100nA steps]Bit 7…0, 15..8, 23…16, 31…24
Byte 7…10Min [100nA steps]0.. … 31
Byte 11…14Max [100nA steps]0.. … 31
15…18Nr Samples0.. … 31
CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_CIDIN120x0A0x03 (Ret)0x000x00CAN ID, Xtended, CAN Interval [ms]
ByteCommand dependent dataBits
Byte 0 … 4CAN IDBit 7…0, Bit 15..8, Bit 23…16, Bit 30…24
Byte 0 … 4Xtended = 0 / 1Bit 31
Byte 5…8CAN Interval [ms]0.. … 31
Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
CAN_Cmd_TPLID80x0B0x03 (Ret)0x000x00Byte 0 … 4: CAN ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31)
CAN_Cmd_TPRID80x0C0x03 (Ret)0x000x00Byte 0 … 4: CAN ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31)
SerialNumber200x0E0x03 (Ret)0x000x00Serial Number as ASCII String
ByteCommand dependent dataExample
Byte 0…15Serial Number as ASCII String (padded with space characters)2 0 E T 0 0 1 2 3
Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
CalDate80x0F0x03 (Ret)0x000x00Byte 0 … 3: Year (uint16) (Bit 7…0, 15..8), Month (uint8) (Bit 7…0), Day (uint8) (Bit 7…0)
CanTermination50x100x03 (Ret)0x000x000 / 1
IpSettings170x110x03 (Ret)0x000x00Ip, Mask, Gateway, Default
ByteCommand dependent dataExample
Byte 0…3Ip192 168 200 1
Byte 4…7Mask255 255 255 0
Byte 8…11Gateway192 168 200 10
Byte 12Default0/0xDF
Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
PortSettings170x120x03 (Ret)0x000x00Port Commands, Port Echo, Port Streaming
ByteCommand dependent dataBits
Byte 0…1Port Commands (5025)Bit 7…0, Bit 15…8
Byte 2…3Port Echo (55111)Bit 7…0, Bit 15…8
Byte 4…6Port Streaming (55112)Bit 7…0, Bit 15…8
Response to CommandLengthCommand IDActionError-codeReservedCommand dependent data
MacSettings100x130x03 (Ret)0x000x00Byte 0 … 5: MAC-Address, Octet 1 … 6: 0x74 0x5B 0xC5 0x00 0x00 0x01
HwVersion90x140x03 (Ret)0x000x00Byte 0 … 4: Hw-Version (Bit 7…0), Silicon Revision of Microcontroller (Bit 7…0, 15..8, 23…16, 31…24)
TxFrameFormat50x160x03 (Ret)0x000x00Byte 0: 0 … 2 (0: Classic CAN, 1: CAN FD without BRS, 2: CAN FD with BRS)
UserText680x200x03 (Ret)0x000x00Byte_0 … 63: UserText string
TCP-ISOTP-Bridge????0x300x03 (Ret)0x000x00Byte_0 … ????: TCP response (from CMM IV)

2.6.5Example CAN traces

The following CAN traces should help understand the tables above. The command and responses are marked in the last column: Command / Response. Please note, that flow control frames are integrated in the respective command or response, but they are sent by the respective counterpart.

CMMON: switch ON

TimeCAN IDDataCommand / Response
2014.12.11 - 13:52:21.7240x1C30x05 0x05 0x01 0x00 0x00 0x01 0x00 0x00Command
2014.12.11 - 13:52:21.7240x7FF0x04 0x05 0x03 0x00 0x00 0x00 0x00 0x00Response

CMMON: switch OFF

TimeCAN IDDataCommand / Response
2014.12.11 - 13:52:29.9240x1C30x05 0x05 0x01 0x00 0x00 0x00 0x00 0x00Command
2014.12.11 - 13:52:29.9240x7FF0x04 0x05 0x03 0x00 0x00 0x00 0x00 0x00Response

SWVER (Read SW Version)

TimeCAN IDDataCommand / Response
2014.12.11 - 13:53:59.1180x1C30x05 0x02 0x00 0x00 0x00 0x00 0x00 0x00Command
2014.12.11 - 13:53:59.1180x7FF0x10 0x12 0x02 0x03 0x00 0x00 0x43 0x4DResponse
2014.12.11 - 13:53:59.1220x1C30x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00Response
2014.12.11 - 13:53:59.1220x7FF0x21 0x4D 0x5F 0x49 0x49 0x49 0x5F 0x56Response
2014.12.11 - 13:53:59.1220x7FF0x22 0x5F 0x31 0x5F 0x32 0x00 0x00 0x00Response

SINTV (set serial interval)

TimeCAN IDDataCommand / Response
2014.12.11 - 13:56:46.4360x1C30x10 0x08 0x08 0x01 0x00 0x00 0x80 0x00Command
2014.12.11 - 13:56:46.4370x7FF0x30 0x00 0x01 0x00 0x00 0x00 0x00 0x00Command
2014.12.11 - 13:56:46.4400x1C30x21 0x00 0x00 0x00 0x00 0x00 0x00 0x00Command
2014.12.11 - 13:56:46.4420x7FF0x04 0x08 0x03 0x00 0x00 0x00 0x00 0x00Response

Documents and downloads

Further documents and files for your IRS product are available on myIRS.

Go to downloads