The Multiplex Engineering Interface allows for communications between a personal or handheld computer and an OBD2 compliant vehicle. We have interfaces that communicate over the legacy buses (VPW, PWM and ISO) and CAN. The basic operation of our device is to take a message from the user, forward it to the vehicle, receive the responses from the vehicle and forward them back to the user.
When the interface receives multiple responses to the request message it sent, the interface will store these messages and send them out depending on the communication protocol. The diagnostic interface can store eight responses. If there are more than eight responses to a single request message, the extra responses will be ignored.
Multiplex Engineering is producing interfaces that support either RS232 or USB communications. Our T16 series of interfaces communicate to the user via RS232, while our T21 series communicates via USB. Details on how to communicate with each type of interface are detailed below.
Our T21 interfaces are set to enumerate automatically with a Microsoft Windows machine. We have not tested them on any other operating system. They connect as a human interface device (HID) with a vendor ID of 0x1808 and a product ID of 0x5555.
To use the USB interface, the command and response structure is very much the same as the RS232 interfaces. The user sends a 16 byte OUT message to the device that contains the 15 byte request message in the most significant bytes. The interface will respond with a 16 byte IN message to the PC. The IN message has the first response from the car or the error message if no response, 15 most significant bytes. The 16th byte of the IN message indicates how many more bytes of a response message are left in the interface. These remaining bytes are stored in up to 8 separate messages. There are special commands F1 through F8 to look at the car responses.
Since USB does not allow for variable length messages, we developed separate request commands to retrieve multiple response messages. Commands F1 through F8 are for reading responses from the most recent request.
The first response message that the interface sends out will contain the number of bytes that were received as the first response to the request message. To get the next response message containing 15 bytes, you must send a request message command F2. To receive the third set of 15 bytes you need to send a request message with command F3, to receive the fourth F4 and so on. To see the first response message again, send a request message with command F1.
The response format for commands F1-F8 is the same as our standard response message with the addition of the 16th byte which indicates which response message you are looking at. ie 0x01 for the 1st, 0x2 for the 2nd.
All T16 Multiplex Engineering Interfaces use normal RS-232 communication except for the T16-002 (See T16-002 in Special Commands). There is no opto-isolation between the PC and the diagnostic interface. Therefore, there is no need to use the RTS and DTR signals. For the T16-003, T16-006, and T16-009, the diagnostic interface’s DB9 connector has male pins and is wired for a null modem type RS-232 cable. This means that the RS-232 cable must cross pin 2 and pin 3. The T16-003, T16-006 and T16-009 interfaces can connect to a PC using a null modem RS-232 cable with female pins on each end.
The T16-013 interface has female DB9 pins and can connect to a PC using a male DB9 to female DB9 straight-through RS232 cable.
The Multiplex Engineering interface is a command/response type of interface. This means that the PC (or other host) must send a command to the interface, and then wait for a response. Multiple commands must not be sent. The request message must be a total of 15 bytes. Each response message from the interface will always be a total of 14 bytes.
If the car responds with more than one response to a single Request Message, these multiple responses will be sent over the RS-232 bus as separate RS-232 Response Messages. The maximum time between these RS-232 response messages will be 5 msec.
Two baud rates are available, 9600 or 19200, with one start bit, one stop bit, and no parity bit. Most users prefer 19200 baud. The baud rate is set during production and is not changeable by the user. The bytes of the request message must be less than 1.5 milliseconds apart. A longer delay between bytes will cause a message timeout, causing the interface to ignore the request message.