Documentation search search close
CONTENTS
https://www.speedgoat.com/help/slrt/page/icon_documentation.jpg
v10.0.1.x for R2026a
View other versions

IO644 - Transceiver

IO644 - Transceiver — Sends and receive CAN frames

Library

Simulink Real-Time - Speedgoat

Description

The Transceiver block enables direct transmission and reception of CAN frames, bypassing the standard CANopen configuration of the I/O module.

Typical CANopen communication relies on EDS files, object dictionaries, and PDO mappings. The IO644 PDO and Object blocks enable data exchange using this standard approach. However, certain scenarios—such as dynamically sized PDOs—require communication at the raw CAN frame level.

To send or receive a CAN message on the network, place one IO644 Transceiver block per message. The block just requires the existence of the Setup block and can make the IO644 module to act as an exclusive CAN module. Alternatively, it can be used alongside the PDO and Object blocks to transmit and receive specific CAN messages in parallel with standard CANopen PDO and SDO communication.

Ports

Inputs
Data

The data that should be sent. The port inherits the data type and the dimensions from the connected source. This port is just a buffer. The length to be sent can be less than the port size and can be defined by the Length input port. The maximum length is 8 bytes.

Data type: Fundamental data types from boolean to double are supported as well as dimensions from scalar values to vectors

Enable

If enabled by the Extended Interface parameter, the block transmits the message as long as this input port is TRUE.

If disabled, the message is sent each time the block gets a sample hit.

Data type: boolean

Length

The size of the data that should be sent with the message, specified in number of bytes.

If enabled by the Extended Interface parameter and connected to a block other than the Ground block, the port limits the size of the data to be sent. In this case, the block sends a subset of the signal connected with the Data input port which results in a shorter CAN message.

If disabled, the entire signal connected with the Data input port will be written to the object.

Data type: uint32

Outputs
Data

Outputs the data received. The port inherits the data type and dimensions from the Init Value parameter. This port is just a buffer. Depending on the size of the data that was last received, the port fills up the buffer with zeros. The Length output port outputs the actual size. The maximum length is 8 bytes.

Data type: Fundamental data types from boolean to double are supported as well as dimensions from scalar values to vectors

Status

A rising or falling edge indicates a message receipt.

Data type: uint32

Length

The size of the data that was last received. Defined in number of bytes. The size can be less than the size of the Data output port.

Data type: uint32

Parameters

Module ID

This ID defines the link to the corresponding Setup block

Message ID

The ID of the CAN frame that should be sent or received. The ID must be in the range 0 to 2047.

Multiple blocks can have the same message ID but different data port dimensions or length information. This allows the user to handle dynamic PDO lengths in Simulink.

The I/O module can receive only eight different message IDs. Only sixteen CAN frames can be sent simultaneously in one time step of the real-time application.

Data Type: numeric scalar

Operation

This parameter defines whether to send or receive the CAN message. Send enables the input ports. Receive enables the output ports.

Extended Interface

If selected, the block shows the Enable input port, the Status output port and the Length input and output ports. Otherwise, the ports are hidden.

Sample Time

Defines the base sample time at which this driver block gets its sample hit. This parameter can also be set to -1 for inherited sample time. The units are in seconds.