RS-232 Send/Receive FIFO

Send and receive data over Mainboard Baseboard serial port with FIFO

  • Library:
  • Simulink Real-Time / RS232 / Mainboard

Description

The Send/Receive FIFO block sets up the serial interface to send and receive character and binary streams. It transmits input data as does the Send/Receive block, but it propagates received data through FIFO outputs.

A model that contains a Send/Receive FIFO block with the FIFO Read block provides the same capability as the Send/Receive block. A model that contains a Send/Receive FIFO block with a FIFO Read HDRS or FIFO Read Binary block provides greater capability than the Send/Receive block.

Only one Send/Receive can exist for each COM interrupt. All ports that use that interrupt must be associated with that block. For example, if the main board is configured with four ports, COM1 and COM3 typically share an interrupt. In this case, COM1 and COM3 must then share a Send/Receive block.

Ports

Input

expand all

Vector of data to transmit over port 1.

Vector of data to transmit over port 2.

Output

expand all

FIFO containing data that has been received from serial port 1.

FIFO containing data that has been received from serial port 2.

Parameters

expand all

To configure a group of parameters, select a group.

Programmatic Use

Block Parameter: group

Board Setup

This parameter specifies the ports for which you are defining transmit and receive. For example, Com1/Com3 specifies that port 1 uses COM1 and port 2 uses COM3. On the Simulink® block, the upper port is port 1 and the lower port is port 2.

A Custom configuration is one that does not match the existing combinations of port pairs. For example, assume that your target computer BIOS disables port 1 and reconfigures port 2 to use base address 0x220, IRQ 11. Then you can make the following settings:

  • ConfigurationCustom

  • IRQ number11

  • First port address0

  • Second port address0x220

In this case, port 1 is unused.

The value Custom makes the IRQ number, First port address, and Second port address parameters visible.

Programmatic Use

Block Parameter: config

Use this IRQ to specify a Custom serial port configuration.

The value Custom causes the IRQ number parameter to become visible.

Programmatic Use

Block Parameter: irqnum

Use this base address to specify a Custom serial port configuration.

The value Custom causes the First base address parameter to become visible.

Programmatic Use

Block Parameter: saddr1

Use this base address to specify a Custom serial port configuration.

The value Custom causes the Second base address parameter to become visible.

Programmatic Use

Block Parameter: saddr2

Basic Setup

This parameter specifies the port for which you want to view or modify parameters. On the Simulink block, the upper port is port 1 and the lower port is port 2.

Programmatic Use

Block Parameter: port

Select a baud for transmitting and receiving data through the modem.

Programmatic Use

Block Parameter: baud1,baud2

Select a parity for checking data integrity.

Programmatic Use

Block Parameter: parity1,parity2

Select the number of bits that encode a character.

Programmatic Use

Block Parameter: ndata1,ndata2

Select the number of stop bits for the character stream.

Programmatic Use

Block Parameter: nstop1,nstop2

Depth of hardware FIFO, in characters. The capability of the UART limits the depth of the FIFO.

Programmatic Use

Block Parameter: fifomode1,fifomode2

This parameter specifies the number of characters in the receive hardware FIFO before an interrupt occurs.

Receive interrupts occur at least as often as this parameter specifies. Each interrupt calls the interrupt service routine, causing overhead. Interrupt level 1 produces much higher overhead than the other settings. Consider interrupt level 1 only for applications that have low latency.

If both of the following are true, the UART requests an interrupt for the receiver regardless of the value of Receive FIFO interrupt level:

  • The FIFO contains at least 1 character.

  • A gap of at least 4 character times (the time required to transfer four characters) occurs in a data stream.

Programmatic Use

Block Parameter: rlevel1,rlevel2

To enable the RTS/CTS handshake of the UART for flow control, select this check box. Serial controllers use the RTS/CTS handshake to prevent data loss due to hardware FIFO overflow on the device that you are sending to.

Usually, the interrupt service routine executes quickly enough to empty the FIFO. However, if your model gets FIFO overruns, select this check box.

Programmatic Use

Block Parameter: automode1,automode2

FIFO Setup

This parameter specifies the port for which you want to view or modify parameters. On the Simulink block, the upper port is port 1 and the lower port is port 2.

Programmatic Use

Block Parameter: port

Enter the transmit software FIFO size, in bytes. This parameter specifies the size of the software FIFO that the block uses to buffer transmitted characters.

Programmatic Use

Block Parameter: xmtfifosize1,xmtfifosize2

This parameter specifies the data type of the transmitter. The 8-bit data types require a NULL-terminated character vector in the input vector.

The 16-bit and 32-bit data types reserve the first full element to contain the number of elements to expect in the rest of the input vector. Only the low-order byte of each data element is sent. Setting this data type allows a wider data type to hold the bytes.

If the data stream requires a NULL byte, select one of the 16-bit or 32-bit data types. Because the 8-bit data types are NULL terminated character vectors, the NULL byte would terminate the character vector.

Programmatic Use

Block Parameter: xmtdatatype1,xmtdatatype2

Enter the receive software FIFO size, in bytes. This parameter specifies the size of the software FIFO that the block uses to buffer characters between interrupt service and periodic execution.

Programmatic Use

Block Parameter: rcvfifosize1,rcvfifosize2

Introduced in R2008a