- Latest available (Revised)
- Original (As adopted by EU)
Commission Implementing Regulation (EU) 2016/799 of 18 March 2016 implementing Regulation (EU) No 165/2014 of the European Parliament and of the Council laying down the requirements for the construction, testing, installation, operation and repair of tachographs and their components (Text with EEA relevance)
After exit day there will be three versions of this legislation to consult for different purposes. The legislation.gov.uk version is the version that applies in the UK. The EU Version currently on EUR-lex is the version that currently applies in the EU i.e you may need this if you operate a business in the EU.
The web archive version is the official version of this legislation item as it stood on exit day before being published to legislation.gov.uk and any subsequent UK changes and effects applied. The web archive also captured associated case law and other language formats from EUR-Lex.
There are outstanding changes not yet made to Commission Implementing Regulation (EU) 2016/799. Any changes that have already been made to the legislation appear in the content and are referenced with annotations.
Revised legislation carried on this site may not be fully up to date. Changes and effects are recorded by our editorial team in lists which can be found in the ‘Changes to Legislation’ area. Where those effects have yet to be applied to the text of the legislation by the editorial team they are also listed alongside the legislation in the affected provisions. Use the ‘more’ link to open the changes and effects relevant to the provision you are viewing.
This appendix describes how data is exchanged between a vehicle unit and a tester via the K-line which forms part of the calibration interface described in Appendix 6. It also describes control of the input/output signal line on the calibration connector.
Establishing K-line communications is described in Section 4 ‘Communication Services’.
This appendix uses the idea of diagnostic ‘sessions’ to determine the scope of K-line control under different conditions. The default session is the ‘StandardDiagnosticSession’ where all data can be read from a vehicle unit but no data can be written to a vehicle unit.
Selection of the diagnostic session is described in Section 5 ‘Management Services’.
This appendix has to be considered as relevant for both generations of VUs and of workshop cards, in compliance with the interoperability requirements laid down in this Regulation.
Data transfer via K-line is described in Section 6 ‘Data Transmission Services’. Formats of data transferred are detailed in Section 8 ‘dataRecords formats’.
The protocols, messages and error codes are principally based on a draft of ISO 14229-1 (Road vehicles — Diagnostic systems — Part 1: Diagnostic services, version 6 of 22 February 2001).
Byte encoding and hexadecimal values are used for the service identifiers, the service requests and responses, and the standard parameters.
The term ‘tester’ refers to the equipment used to enter programming/calibration data into the VU.
The terms ‘client’ and ‘server’ refer to the tester and the VU respectively.
The term ECU means ‘Electronic Control Unit’ and refers to the VU.
[F1ISO 14230-2: Road Vehicles -Diagnostic Systems — Keyword Protocol 2000- Part 2: Data Link Layer.
Textual Amendments
First edition: 1999.]
The following table provides an overview of the services that will be available in the tachograph and are defined in this document.
The 1st column lists the services that are available.
The 2nd column includes the section number in this appendix where of service is further defined.
The 3rd column assigns the service identifier values for request messages.
The 4th column specifies the services of the ‘StandardDiagnosticSession’ (SD) which must be implemented in each VU.
The 5th column specifies the services of the ‘ECUAdjustmentSession’ (ECUAS) which must be implemented to allow control of the I/O signal line in the front panel calibration connector of the VU.
The 6th column specifies the services of the ‘ECUProgrammingSession’ (ECUPS) which must be implemented to allow for programming of parameters in the VU.
Service Identifier value summary table
■ This symbol indicates that the service is mandatory in this diagnostic session. No symbol indicates that this service is not allowed in this diagnostic session. | |||||
Diagnostic Sessions | |||||
---|---|---|---|---|---|
Diagnostic Service Name | Section No. | SId Req.Value | SD | ECUAS | ECUPS |
StartCommunication | 4.1 | 81 | ■ | ■ | ■ |
StopCommunication | 4.2 | 82 | ■ | ||
TesterPresent | 4.3 | 3E | ■ | ■ | ■ |
StartDiagnosticSession | 5.1 | 10 | ■ | ■ | ■ |
SecurityAccess | 5.2 | 27 | ■ | ■ | ■ |
ReadDataByIdentifier | 6.1 | 22 | ■ | ■ | ■ |
WriteDataByIdentifier | 6.2 | 2E | ■ | ||
InputOutputControlByIdentifier | 7.1 | 2F | ■ |
Response codes are defined for each service.
Some services are necessary to establish and maintain communication. They do not appear on the application layer. The services available are detailed in the following table:
Communication Services
Service name | Description |
---|---|
StartCommunication | The client requests to start a communication session with a server(s). |
StopCommunication | The client requests to stop the current communication session. |
TesterPresent | The client indicates to the server that it is still present. |
There is a bus-idle time prior to any activity.
The tester then sends an initialisation pattern.
All information which is necessary to establish communication is contained in the response of the VU.
All communication parameters are set to values defined in Table 4 according to the key bytes.
The VU is waiting for the first request of the tester.
The VU is in the default diagnostic mode, i.e. StandardDiagnosticSession.
The calibration I/O signal line is in the default state, i.e. disabled state.
First transmission after power on, Tidle = 300 ms.
After completion of a StopCommunication Service, Tidle = P3 min.
After stopping communication by time-out P3 max, Tidle = 0.
Table 3 | |||
Timing values for fast initialisation | |||
Parameter | min value | max value | |
---|---|---|---|
Tinil | 25 ± 1 ms | 24 ms | 26 ms |
Twup | 50 ± 1 ms | 49 ms | 51 ms |
Table 4 | |||
Communication timing values | |||
Timing Parameter | Parameter Description | lower limit values [ms] | upper limit values [ms] |
---|---|---|---|
min. | max. | ||
P1 | Inter byte time for VU response | 0 | 20 |
P2 | Time between tester request and VU response or two VU responses | 25 | 250 |
P3 | Time between end of VU responses and start of new tester request | 55 | 5 000 |
P4 | Inter byte time for tester request | 5 | 20 |
Table 5 | |||
StartCommunication Request Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 81 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | StartCommunication Request Service Id | 81 | SCR |
#5 | Checksum | 00-FF | CS |
Table 6 | |||
StartCommunication Positive Response Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 03 | LEN |
#5 | StartCommunication Positive Response Service Id | C1 | SCRPR |
#6 | Key byte 1 | EA | KB1 |
#7 | Key byte 2 | 8F | KB2 |
#8 | Checksum | 00-FF | CS |
The purpose of this communication layer service is to terminate a communication session.
Table 7 | |||
StopCommunication Request Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | 01 | LEN |
#5 | StopCommunication Request Service Id | 82 | SPR |
#6 | Checksum | 00-FF | CS |
Table 8 | |||
StopCommunication Positive Response Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 01 | LEN |
#5 | StopCommunication Positive Response Service Id | C2 | SPRPR |
#6 | Checksum | 00-FF | CS |
Table 9 | |||
StopCommunication Negative Response Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 03 | LEN |
#5 | negative Response Service Id | 7F | NR |
#6 | StopCommunication Request Service Identification | 82 | SPR |
#7 | responseCode = generalReject | 10 | RC_GR |
#8 | Checksum | 00-FF | CS |
This service does not require any parameter definition.
The TesterPresent service is used by the tester to indicate to the server that it is still present, in order to prevent the server from automatically returning to normal operation and possibly stopping the communication. This service, sent periodically, keeps the diagnostic session/communication active by resetting the P3 timer each time a request for this service is received.
Table 10 | ||||
TesterPresent Request Message | ||||
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | EE | TGT | |
#3 | Source address byte | tt | SRC | |
#4 | Additional length byte | 02 | LEN | |
#5 | TesterPresent Request Service Id | 3E | TP | |
#6 | Sub Function = responseRequired = | [ yes | 01 | RESPREQ_Y |
no ] | 02 | RESPREQ_NO | ||
#7 | Checksum | 00-FF | CS |
Table 11 | |||
TesterPresent Positive Response Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 01 | LEN |
#5 | TesterPresent Positive Response Service Id | 7E | TPPR |
#6 | Checksum | 00-FF | CS |
Table 12 | ||||
TesterPresent Negative Response Message | ||||
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | negative Response Service Id | 7F | NR | |
#6 | TesterPresent Request Service Identification | 3E | TP | |
#7 | responseCode = | [SubFunctionNotSupported-InvalidFormat | 12 | RC_SFNS_IF |
incorrectMessageLength] | 13 | RC_IML | ||
#8 | Checksum | 00-FF | CS |
The services available are detailed in the following table:
Management Services
Service name | Description |
---|---|
StartDiagnosticSession | The client requests to start a diagnostic session with a VU. |
SecurityAccess | The client requests access to functions restricted to authorised users. |
There shall be always exactly one diagnostic session active in the VU,
The VU shall always start the StandardDiagnosticSession when powered up. If no other diagnostic session is started, then the StandardDiagnosticSession shall be running as long as the VU is powered,
If a diagnostic session which is already running has been requested by the tester, then the VU shall send a positive response message,
Whenever the tester requests a new diagnostic session, the VU shall first send a StartDiagnosticSession positive response message before the new session becomes active in the VU. If the VU is not able to start the requested new diagnostic session, then it shall respond with a StartDiagnosticSession negative response message, and the current session shall continue.
Table 14 | |||
StartDiagnosticSession Request Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | 02 | LEN |
#5 | StartDiagnosticSession Request Service Id | 10 | STDS |
#6 | diagnosticSession = [one value from Table 17] | xx | DS_… |
#7 | Checksum | 00-FF | CS |
Table 15 | |||
StartDiagnosticSession Positive Response Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 02 | LEN |
#5 | StartDiagnosticSession Positive Response Service Id | 50 | STDSPR |
#6 | diagnosticSession = [same value as in byte #6 Table 14] | xx | DS_… |
#7 | Checksum | 00-FF | CS |
Table 16 | ||||
StartDiagnosticSession Negative Response Message | ||||
a – the value inserted in byte #6 of the request message is not supported, i.e. not in Table 17, | ||||
b – the length of the message is wrong, | ||||
c – the criteria for the request StartDiagnosticSession are not met. | ||||
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | Negative Response Service Id | 7F | NR | |
#6 | StartDiagnosticSession Request Service Id | 10 | STDS | |
#7 | ResponseCode = | [subFunctionNotSupporteda | 12 | RC_SFNS |
incorrectMessageLengthb | 13 | RC_IML | ||
conditionsNotCorrectc | 22 | RC_CNC | ||
#8 | Checksum | 00-FF | CS |
Writing of calibration data is not possible unless the VU is in CALIBRATION mode. In addition to insertion of a valid workshop card into the VU, it is necessary to enter the appropriate PIN into the VU before access to the CALIBRATION mode is granted.
When the VU is in CALIBRATION or CONTROL mode, access to the calibration input/output line is also possible.
The SecurityAccess service provides a means to enter the PIN and to indicate to the tester whether or not the VU is in CALIBRATION mode.
It is acceptable that the PIN may be entered through alternative methods.
The SecurityAccess service consists of a SecurityAccess ‘requestSeed’ message, eventually followed by a SecurityAccess ‘sendKey’ message. The SecurityAccess service must be carried out after the StartDiagnosticSession service.
subFunctionNot supported: Invalid format for the subfunction parameter (accessType),
conditionsNotCorrectOrRequestSequenceError: Vehicle unit not ready to accept a PIN entry,
invalidKey: PIN not valid and number of PIN checks attempts not exceeded,
exceededNumberOfAttempts: PIN not valid and number of PIN checks attempts exceeded,
generalReject: Correct PIN but mutual authentication with workshop card failed.
SecurityAccess Request- requestSeed Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | 02 | LEN |
#5 | SecurityAccess Request Service Id | 27 | SA |
#6 | accessType — requestSeed | 7D | AT_RSD |
#7 | Checksum | 00-FF | CS |
SecurityAccess — requestSeed Positive Response Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 04 | LEN |
#5 | SecurityAccess Positive Response Service Id | 67 | SAPR |
#6 | accessType — requestSeed | 7D | AT_RSD |
#7 | Seed High | 00-FF | SEEDH |
#8 | Seed Low | 00-FF | SEEDL |
#9 | Checksum | 00-FF | CS |
SecurityAccess Negative Response Message
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | negativeResponse Service Id | 7F | NR | |
#6 | SecurityAccess Request Service Id | 27 | SA | |
#7 | responseCode = | [conditionsNotCorrectOrRequestSequenceError | 22 | RC_CNC |
incorrectMessageLength] | 13 | RC_IML | ||
#8 | Checksum | 00-FF | CS |
SecurityAccess Request — sendKey Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | m+2 | LEN |
#5 | SecurityAccess Request Service Id | 27 | SA |
#6 | accessType — sendKey | 7E | AT_SK |
#7 to #m + 6 | Key #1 (High) | xx | KEY |
… | … | ||
Key #m (low, m must be a minimum of 4, and a maximum of 8) | xx | ||
#m + 7 | Checksum | 00-FF | CS |
SecurityAccess — sendKey Positive Response Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 02 | LEN |
#5 | SecurityAccess Positive Response Service Id | 67 | SAPR |
#6 | accessType — sendKey | 7E | AT_SK |
#7 | Checksum | 00-FF | CS |
SecurityAccess Negative Response Message
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | NegativeResponse Service Id | 7F | NR | |
#6 | SecurityAccess Request Service Id | 27 | SA | |
#7 | ResponseCode = | [generalReject | 10 | RC_GR |
subFunctionNotSupported | 12 | RC_SFNS | ||
incorrectMessageLength | 13 | RC_IML | ||
conditionsNotCorrectOrRequestSequenceError | 22 | RC_CNC | ||
invalidKey | 35 | RC_IK | ||
exceededNumberOfAttempts | 36 | RC_ENA | ||
requestCorrectlyReceived-ResponsePending] | 78 | RC_RCR_RP | ||
#8 | Checksum | 00-FF | CS |
The services available are detailed in the following table:
Data Transmission Services
Service name | Description |
---|---|
ReadDataByIdentifier | The client requests the transmission of the current value of a record with access by recordDataIdentifier. |
WriteDataByIdentifier | The client requests to write a record accessed by recordDataIdentifier. |
Table 25 | |||
ReadDataByIdentifier Request Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | 03 | LEN |
#5 | ReadDataByIdentifier Request Service Id | 22 | RDBI |
#6 to #7 | recordDataIdentifier = [a value fromTable 28] | xxxx | RDI_… |
#8 | Checksum | 00-FF | CS |
Table 26 | ||||
ReadDataByIdentifier Positive Response Message | ||||
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | m+3 | LEN | |
#5 | ReadDataByIdentifier Positive Response Service Id | 62 | RDBIPR | |
#6 and #7 | recordDataIdentifier = [the same value as bytes #6 and #7 Table 25] | xxxx | RDI_... | |
#8 to #m + 7 | dataRecord[] = | [data#1 | xx | DREC_DATA1 |
: | : | : | ||
data#m] | xx | DREC_DATAm | ||
#m + 8 | Checksum | 00-FF | CS |
Table 27 | ||||
ReadDataByIdentifier Negative Response Message | ||||
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | NegativeResponse Service Id | 7F | NR | |
#6 | ReadDataByIdentifier Request Service Id | 22 | RDBI | |
#7 | ResponseCode= | [requestOutOfRange | 31 | RC_ROOR |
incorrectMessageLength | 13 | RC_IML | ||
conditionsNotCorrect] | 22 | RC_CNC | ||
#8 | Checksum | 00-FF | CS |
The recordDataIdentifier table consists of four columns and multiple lines.
The 1st column (Hex) includes the ‘Hex Value’ assigned to the recordDataIdentifier specified in the 3rd column.
The 2nd column (Data element) specifies the data element of Appendix 1 on which the recordDataIdentifier is based (transcoding is sometimes necessary).
The 3rd column (Description) specifies the corresponding recordDataIdentifier name.
The 4th column (Mnemonic) specifies the mnemonic of this recordDataIdentifier.
WriteDataByIdentifier Request Message
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | EE | TGT | |
#3 | Source address byte | tt | SRC | |
#4 | Additional length byte | m + 3 | LEN | |
#5 | WriteDataByIdentifier Request Service Id | 2E | WDBI | |
#6 to #7 | recordDataIdentifier = [a value from Table 28] | xxxx | RDI_… | |
#8 to m + 7 | dataRecord[] = | [data#1 | xx | DREC_DATA1 |
: | : | : | ||
data#m] | xx | DREC_DATAm | ||
#m + 8 | Checksum | 00-FF | CS |
WriteDataByIdentifier Positive Response Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 03 | LEN |
#5 | WriteDataByIdentifier Positive Response Service Id | 6E | WDBIPR |
#6 to #7 | recordDataIdentifier = [the same value as bytes #6 and #7 Table 29] | xxxx | RDI_… |
#8 | Checksum | 00-FF | CS |
WriteDataByIdentifier Negative Response Message
Byte # | Parameter Name | Hex Value | Mnemonic | |
---|---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT | |
#2 | Target address byte | tt | TGT | |
#3 | Source address byte | EE | SRC | |
#4 | Additional length byte | 03 | LEN | |
#5 | NegativeResponse Service Id | 7F | NR | |
#6 | WriteDataByIdentifier Request Service Id | 2E | WDBI | |
#7 | ResponseCode= | [requestOutOfRange | 31 | RC_ROOR |
incorrectMessageLength | 13 | RC_IML | ||
conditionsNotCorrect] | 22 | RC_CNC | ||
#8 | Checksum | 00-FF | CS |
The parameter recordDataIdentifier (RDI_) is defined in Table 28.
The parameter dataRecord (DREC_) is used by the WriteDataByIdentifier request message to provide the data record values identified by the recordDataIdentifier to the server (VU). Data formats are specified in section 8.
The services available are detailed in the following table:
Input/Output Control functional unit
Service name | Description |
---|---|
InputOutputControlByIdentifier | The client requests the control of an input/output specific to the server. |
There is a connection via the front connector which allows test pulses to be controlled or monitored using a suitable tester.
disabled,
speedSignalInput, where the calibration I/O signal line is used to input a speed signal (test signal) replacing the motion sensor speed signal, this function is not available in CONTROL mode,
realTimeSpeedSignalOutputSensor, where the calibration I/O signal line is used to output the speed signal of the motion sensor,
RTCOutput, where the calibration I/O signal line is used to output the UTC clock signal, this function is not available in CONTROL mode.
Establish communications by StartCommunication Service
Enter an adjustment session by StartDiagnosticSession Service and be in CALIBRATION or CONTROL mode of operation (the order of these two operation is not important).
Change the state of the output by InputOutputControlByIdentifier Service.
Table 33 | |||
InputOutputControlByIdentifier Request Message | |||
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | EE | TGT |
#3 | Source address byte | tt | SRC |
#4 | Additional length byte | xx | LEN |
#5 | InputOutputControlByIdentifier Request Sid | 2F | IOCBI |
#6 and #7 | InputOutputIdentifier = [CalibrationInputOutput] | F960 | IOI_CIO |
#8 or #8 to #9 | ControlOptionRecord = [ | COR_… | |
inputOutputControlParameter — one value from Table 36 | xx | IOCP_… | |
controlState — one value from Table 37 (see note below)] | xx | CS_… | |
#9 or #10 | Checksum | 00-FF | CS |
Note: The controlState parameter is present only in some cases (see 7.1.3).U.K.
InputOutputControlByIdentifier Positive Response Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | xx | LEN |
#5 | inputOutputControlByIdentifier Positive Response SId | 6F | IOCBIPR |
#6 and #7 | inputOutputIdentifier = [CalibrationInputOutput] | F960 | IOI_CIO |
#8 or #8 to #9 | controlStatusRecord = [ | CSR_ | |
inputOutputControlParameter (same value as byte #8 Table 33) | xx | IOCP_… | |
controlState (same value as byte #9 Table 33)] (if applicable) | xx | CS_… | |
#9 or #10 | Checksum | 00-FF | CS |
InputOutputControlByIdentifier Negative Response Message
Byte # | Parameter Name | Hex Value | Mnemonic |
---|---|---|---|
#1 | Format byte — physical addressing | 80 | FMT |
#2 | Target address byte | tt | TGT |
#3 | Source address byte | EE | SRC |
#4 | Additional length byte | 03 | LEN |
#5 | negativeResponse Service Id | 7F | NR |
#6 | inputOutputControlByIdentifier Request SId | 2F | IOCBI |
#7 | responseCode=[ | ||
incorrectMessageLength | 13 | RC_IML | |
conditionsNotCorrect | 22 | RC_CNC | |
requestOutOfRange | 31 | RC_ROOR | |
deviceControlLimitsExceeded] | 7A | RC_DCLE | |
#8 | Checksum | 00-FF | CS |
Table 37 | ||
Definition of controlState values | ||
Mode | Hex Value | Description |
---|---|---|
Disable | 00 | I/O line is disabled (default state) |
Enable | 01 | Enable calibration I/O line as speedSignalInput |
Enable | 02 | Enable calibration I/O line as realTimeSpeedSignalOutputSensor |
Enable | 03 | Enable calibration I/O line as RTCOutput |
This section details:
general rules that shall be applied to ranges of parameters transmitted by the vehicle unit to the tester,
formats that shall be used for data transferred via the Data Transmission Services described in section 6.
Table 38 | ||||
dataRecords ranges | ||||
Range Name | 1 byte(Hex value) | 2 bytes(Hex value) | 4 bytes(Hex Value) | ASCII |
---|---|---|---|---|
Valid signal | 00 to FA | 0000 to FAFF | 00000000 to FAFFFFFF | 1 to 254 |
Parameter specific indicator | FB | FB00 to FBFF | FB000000 to FBFFFFFF | none |
Reserved range for future indicator bits | FC to FD | FC00 to FDFF | FC000000 to FDFFFFFF | none |
Error indicator | FE | FE00 to FEFF | FE000000 to FEFFFFFF | 0 |
Not available or not requested | FF | FF00 to FFFF | FF000000 to FFFFFFFF | FF |
Table 39 to Table 42 below detail the formats that shall be used via the ReadDataByIdentifier and WriteDataByIdentifier Services.
Table 39 | |||
Format of dataRecords | |||
Parameter Name | Data length (bytes) | Resolution | Operating range |
---|---|---|---|
TimeDate | 8 | See details in Table 40 | |
HighResolutionTotalVehicleDistance | 4 | 5 m/bit gain, 0 m offset | 0 to + 21 055 406 km |
Kfactor | 2 | 0,001 pulse/m/bit gain, 0 offset | 0 to 64,255 pulse/m |
LfactorTyreCircumference | 2 | 0,125 10– 3 m/bit gain, 0 offset | 0 to 8,031 m |
WvehicleCharacteristicFactor | 2 | 0,001 pulse/m/bit gain, 0 offset | 0 to 64,255 pulse/m |
TyreSize | 15 | ASCII | ASCII |
NextCalibrationDate | 3 | See details in Table 41 | |
SpeedAuthorised | 2 | 1/256 km/h/bit gain, 0 offset | 0 to 250,996 km/h |
RegisteringMemberState | 3 | ASCII | ASCII |
VehicleRegistrationNumber | 14 | See details in Table 42 | |
VIN | 17 | ASCII | ASCII |
Table 40 | |||
Detailed format of TimeDate (recordDataIdentifier value # F90B) | |||
Byte | Parameter definition | Resolution | Operating range |
---|---|---|---|
1 | Seconds | 0,25 s/bit gain, 0 s offset | 0 to 59,75 s |
2 | Minutes | 1 min/bit gain, 0 min offset | 0 to 59 min |
3 | Hours | 1 h/bit gain, 0 h offset | 0 to 23 h |
4 | Month | 1 month/bit gain, 0 month offset | 1 to 12 month |
5 | Day | 0,25 day/bit gain, 0 day offset (see NOTE below Table 41) | 0,25 to 31,75 day |
6 | Year | 1 year/bit gain, + 1985 year offset (see NOTE below Table 41) | 1985 to 2235 year |
7 | Local Minute Offset | 1 min/bit gain, – 125 min offset | – 59 to + 59 min |
8 | Local Hour Offset | 1 h/bit gain, – 125 h offset | – 23 to + 23 h |
Table 41 | |||
Detailed format of NextCalibrationDate (recordDataIdentifier value # F922) | |||
Byte | Parameter definition | Resolution | Operating range |
---|---|---|---|
1 | Month | 1 month/bit gain, 0 month offset | 1 to 12 month |
2 | Day | 0,25 day/bit gain, 0 day offset (see NOTE below) | 0,25 to 31,75 day |
3 | Year | 1 year/bit gain, + 1985 year offset (see NOTE below) | 1985 to 2235 year |
NOTE concerning the use of the ‘Day’ parameter:U.K.
A value of 0 for the date is null. The values 1, 2, 3, and 4 are used to identify the first day of the month; 5, 6, 7, and 8 identify the second day of the month; etc.
This parameter does not influence or change the hours parameter above.
NOTE concerning the use of byte ‘Year’ parameter:U.K.
A value of 0 for the year identifies the year 1985; a value of 1 identifies 1986; etc.
Table 42 | |||
Detailed format of VehicleRegistrationNumber (recordDataIdentifier value # F97E) | |||
Byte | Parameter definition | Resolution | Operating range |
---|---|---|---|
1 | Code Page (as defined in Appendix 1) | ASCII | 01 to 0A |
2 - 14 | Vehicle Registration Number (as defined in Appendix 1) | ASCII | ASCII |
The Whole Regulation you have selected contains over 200 provisions and might take some time to download. You may also experience some issues with your browser, such as an alert box that a script is taking a long time to run.
Would you like to continue?
The Schedules you have selected contains over 200 provisions and might take some time to download. You may also experience some issues with your browser, such as an alert box that a script is taking a long time to run.
Would you like to continue?
Latest Available (revised):The latest available updated version of the legislation incorporating changes made by subsequent legislation and applied by our editorial team. Changes we have not yet applied to the text, can be found in the ‘Changes to Legislation’ area.
Original (As adopted by EU): The original version of the legislation as it stood when it was first adopted in the EU. No changes have been applied to the text.
Geographical Extent: Indicates the geographical area that this provision applies to. For further information see ‘Frequently Asked Questions’.
Show Timeline of Changes: See how this legislation has or could change over time. Turning this feature on will show extra navigation options to go to these specific points in time. Return to the latest available version by using the controls above in the What Version box.
Access essential accompanying documents and information for this legislation item from this tab. Dependent on the legislation item being viewed this may include:
This timeline shows the different versions taken from EUR-Lex before exit day and during the implementation period as well as any subsequent versions created after the implementation period as a result of changes made by UK legislation.
The dates for the EU versions are taken from the document dates on EUR-Lex and may not always coincide with when the changes came into force for the document.
For any versions created after the implementation period as a result of changes made by UK legislation the date will coincide with the earliest date on which the change (e.g an insertion, a repeal or a substitution) that was applied came into force. For further information see our guide to revised legislation on Understanding Legislation.
Use this menu to access essential accompanying documents and information for this legislation item. Dependent on the legislation item being viewed this may include:
Click 'View More' or select 'More Resources' tab for additional information including: