Main Content

CAN Transmit

Transmit message to CAN network

  • Library:
  • Simulink Support Package for Raspberry Pi Hardware / Communication

  • CAN Transmit block

Description

The CAN Transmit block transmits messages to the CAN network. This block uses SocketCAN which is a device-independent driver for implementing the CAN interface supporting all CAN shields.

The CAN Transmit block supports Raw data and CAN Msg as input types. To use a CANdb (CAN database) file or to specify signals manually, use CAN Msg input type and the CAN Pack block. The CAN Pack block is available from Vehicle Network Toolbox™. For more information on the CAN Pack block, see CAN Pack.

You can use CAN Transmit block to interact with a real or virtual CAN interface. To bring up the CAN interface with Raspberry Pi™, refer to the user guide of your CAN shield. For more information on how to set up a virtual CAN interface, see Setup Virtual CAN Interface.

Ports

Input

expand all

Message data, specified as vector or scalar.

Data Types: uint8 | CAN Msg

Output

expand all

Output status.

Dependencies

To enable this parameter, select Output Status

Parameters

expand all

Enter the name of the real or virtual CAN interface. To find the name of the CAN interface, in the Raspberry Pi terminal, execute the ifconfig command.

Select this parameter to bring up the CAN interface on the Raspberry Pi before transmitting the CAN frames.

Select the type of the CAN interface.

  • If the CAN interface type is Real, set this parameter to Real. Setting this parameter to Real will not bring up the CAN interface in these scenarios.

    • The interface is already brought up on the target with a CAN-Bus Speed that does not match with the CAN Bus Speed (kBit/s) parameter. The block will not transmit the CAN frames. Bring the existing interface down before enabling this parameter.

    • If the interface is already brought up on the target with the CAN-Bus Speed that matches with the CAN Bus Speed (kBit/s)parameter. The block will transmit the CAN frames.

  • If the CAN interface type is Virtual, set this parameter to Virtual.

Dependencies

To enable this parameter, select Set up CAN interface.

Data input type used for transmitting messages.

Select this option to indicate the status of message transfer. Status port outputs 0 for successful transmit and error codes in case of failure. Error codes are listed in this table.

0000ABTFMLOATXERRTXBOTXEPTXWAR
bit7bit6bit5bit4bit3bit2bit1bit0

ABTF: Message Aborted Flag bit

MLOA: Message Lost Arbitration bit

TXERR: Transmission Error Detected bit

TXBO: Bus-Off Error Flag bit

TXEP: Transmit Error-Passive Flag bit

TXWAR: Transmit Error Warning Flag bit

When selected, the block waits for the time specified in the Time out in seconds parameter before transferring data.

Wait time for transferring data. After the specified time, the block times out.

Dependencies

To enable this parameter, select Wait until data sent.

Message identifier, which is 11 bits long for the standard frame or 29 bits long for the extended frame, specified in decimal, binary, or hex. For binary and hex formats, use bin2dec(' ') and hex2dec(' '), respectively, to convert the entry. The message identifier is coded into a message that is sent to the CAN bus.

Dependencies

To enable this parameter, set Data is input as to Raw data.

Message identifier type.

Dependencies

To enable this parameter, set Data is input as to Raw data.

Message length, in bytes. The maximum supported length is 8 bytes.

Dependencies

To enable this parameter, set Data is input as to Raw data.

When selected, this block sends request for remote frames.

Dependencies

To enable this parameter, set Data is input as to Raw data.

Introduced in R2019b