| Products & Services | Industries | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → xPC Target |
| Contents | Index |
| Learn more about xPC Target |
xPC Target Library for RS232
The dynamic dialog for these subsystem blocks allows you to perform basic board setup and setup of send/receive data. You control parameter visibility with the Parameter Group parameter and the port number.
There are two versions of this block, non-F and F (FIFO). All serial boards plus the main board have these two versions. The primary difference is that the F blocks bring the FIFO signal out of the subsystem. For example

The non-F blocks have RCV outputs. These blocks have basic FIFO read blocks inside the subsystem. They are most useful for simple character streams. These subsystem blocks generate output as an array of packed integers (settable at 8, 16, or 32 bits) with characters in the lower byte and received status information in the upper byte.
The F blocks have FIFO outputs. These blocks give you greater flexibility and allow you to use any one of the FIFO read blocks.
FIFO Read block — A model that contains an F block in combination with the FIFO Read block provides the same capability as the non-F block.
FIFO Read HDRS and FIFO Read Binary — A model that contains an F block in combination with a FIFO Read HDRS or FIFO Read Binary block provides greater capability than the FIFO Read block. (See FIFO Read HDRS (Composite) and FIFO Read Binary (Composite) for details.)
Only one Send/Receive block can exist for each interrupt. All ports that use that interrupt must be associated with that block.
For example, if you have four ports configured on the mainboard, COM1 and COM3 typically share an interrupt. In this case, COM1 and COM3 must then share the same Send/Receive block. COM1 is also of note because you can use it for host PC/target PC communication. If COM1 is the host PC/target PC link, neither COM1 nor COM3 can be used with this block as long as they share an interrupt. The same is true for COM2 and COM4.
Each F Send Receive has Board Setup and Basic Setup configuration parameter options that are the same as their non-F Send Receive block counterparts. To provide direct access to the board, these blocks also have a FIFO Setup parameter option. The following descriptions do not distinguish between the F and non-F blocks unless necessary.
The Parameter Group parameter allows you to choose which subset of configuration parameters you want to modify.
From the list, choose Board Setup. The visible set of parameters changes according to your selection. The following screenshots reflect the Send Receive block for the Quatech ESC-100.
Parameter Group: Board Setup

From the list, choose combinations of port pairs (Com1/none, Com2/none, Com1/Com3, Com2/Com4, none/Com3, none/Com4, or Custom). This parameter specifies the ports for which you are defining transmit and receive. A Custom port is one that does not match the existing combinations of port pairs. For example, you can set the IRQ and two addresses or, if one of the ports is not used, set that to 0.
Enter the number of the interrupt request line for this board. If you do not know the interrupt request line number for this board, at the MATLAB Command Window, enter
getxpcpci
This command displays all the PCI interfaces currently attached to the target PC. From that display, find the instance of the board controlled by this block. Each board uses a unique interrupt request line number.
For Emerald-MM, set this to the IRQ chosen by jumpers on the board. Set all four ports to the same IRQ.
For Emerald-MM-8, this block setting programs the board IRQ.
(Diamond) Not all IRQ values work in all target PC machines. You should experiment to find a working combination.
Enter the number of click bits to control a clock generator common to both channels. This parameter adjusts the master clock of both channels.
Enter the clock generator frequency for the master clock. Enter a value between 64 MHz and 50 MHz, inclusive.
This check box enables you to use default values for the block. Select this check box to use the default values for the Master Clock Frequency parameter. If you clear this check box, you can enter a custom value for the Master Clock Frequency parameter. This same check box also appears on the Basic Setup option page for all ports. Selecting this box applies to all channels.
If only one board of this type is in the target PC, enter
-1
to automatically locate the board.
If two or more boards of this type are in the target PC, enter the bus number and the PCI slot number of the board associated with this driver block. Use the format [BusNumber, SlotNumber]. To determine the bus number and the PCI slot number, type
getxpcpci
Enter the base address of the board that you are setting up. This is the address of the configuration register on the board. The first port address referenced in Modem Control and Modem Status blocks is offset 0x10 from the configuration register address, and each subsequent port address is offset 0x8 from that.
You must set the configuration register address on the board with a jumper. You can set the configuration register address to one of the following addresses: 0x100, 0x140, 0x180, 0x1c0, 0x200, 0x240, 0x280, 0x2c0, 0x300, 0x340, 0x380, or 0x3c0. Note that the xPC Target software assigns successive 8 byte addresses to the eight UARTs even though the hardware allows random placement.
Be sure that these addresses do not conflict with the COM port addresses listed in Adding RS-232 Blocks. Note that if you set the configuration register address to 0x2c0, it conflicts with COM2. If you set the configuration address to 0x3c0, it conflicts with COM1.
From the list, select the first port address for the board. This address is the first of four port addresses for the Emerald-MM board. You must initially set this address on the board with a jumper. The remaining three addresses follow consecutively in increments of 0x8. Be sure that these addresses do not conflict with the COM port addresses listed in Adding RS-232 Blocks.
From the list, choose Basic Setup. The visible set of parameters changes according to your selection. The following screenshots reflect the Send Receive block for the Quatech ESC-100.
Parameter Group: Basic Setup

From the list, choose a port. The Port to modify parameter specifies the port for which you want to view or modify the parameters.
For Baseboard drivers, the port is the Simulink block port, where the upper port is 1 and the lower port is 2. For all other drivers, the port number corresponds to the channel number.
This check box enables you to use default values for the block. Select this check box to use the default values for the Baud divisor and Sampling rate parameters. Selecting this check box allows you to enter a value for the Baud rate parameter and also selects the Prescale parameter. If you clear this check box, you can enter custom values for the Baud divisor and Sampling rate parameters, but must use the default value for the Baud rate parameter. Clearing this check box also clears the Prescale check box.
If selected:
Reference is set to 14.7456 MHz.
Prescale is disabled.
Sampling rate is 16X (standard).
Select the baud rate from Baud Rate.
If not selected, you must provide a custom baud rate that is not on the dropdown list to get the desired reference. For example, if you have a desired baud rate of 1.0 MHz, you can use the following equation to calculate the reference:
reference = baud rate x sampling rate x divisor x prescale
The following values give an acceptable reference that is less than or equal to 50 MHz.
reference = 1.10e6 x 16 x 1 x 1 = 16 MHz
Enter a divisor integer. The block determines the actual baud rate for a particular channel by dividing the maximum baud rate by this divisor. This number can be different for each channel.
From the list, choose a baud rate.
(Diamond Emerald-MM) The Emerald-MM block lists the baud rates with an HS label to indicate the rate if the board contains the high speed crystal option.
From the list, select 8x or 16x (standard) per port. This parameter is enabled if you clear theUse standard reference and rates parameter.
For very slow baud rates, you might need to enable this divide by 4 prescaler to achieve the desired rate. In most cases, you do not need to enable this.
From the list, choose None, Even, Odd, Mark, or Space. This parameter defines the parity.
From the list, choose either 5, 6, 7, or 8 to select the number of bits per character.
From the list, choose either 1 or 2 to define the number of stop bits for the port. Most modern hardware works fine with a character stream that uses single (1) stop bits.
From the list, choose either 64 deep, 16 deep, or 1 deep. This parameter specifies the size of the FIFO in the UART. The Hardware FIFO size parameter affects both the receive and transmit FIFOs. For example, specifying a FIFO size of 64 bytes results in fewer interrupts. Fewer interrupts can allow more processing to occur in the model.
The types of UARTs include
16450 — Maximum 1 byte depth
16550 — Maximum 16 byte FIFO depth
16750 — Maximum 64 byte FIFO depth
From the list, choose 1, quarter full, half full, or almost full. This parameter specifies the number of characters in the Receive FIFO before an interrupt occurs. Receive interrupts occur at least as often as this parameter specifies.
If a gap of at least 4 character times, the span of four characters, occurs in a data stream, the UART requests an interrupt for the receiver. The UART requests an interrupt regardless of the value of Receive FIFO interrupt level. If there is at least one character in the hardware FIFO, an interrupt is signaled.
(Commtech) The Fastcom 422/2–PCI and Fastcom 422/2–PCI F blocks do not have this parameter as a dropdown list. Instead, these blocks allow you to enter any number of bytes up to the hardware FIFO size, with 64 as the default. Typically, a value of 8 to 16 is sufficient, but the value that you choose depends on the speed of the incoming characters. Be careful that you do not enter a value that causes too many interrupts.
Select this check box to enable the hardware-based handshake for flow control. This RTS/CTS handshake feature of the UART provides a reliable way to prevent loss due to hardware FIFO overflow.
Because of the large 64 byte FIFO in the hardware, flow control that is based on software control in the interrupt service routine can have problems. In most cases, the interrupt service routine executes quickly enough to empty the hardware FIFO. However, if you get hardware FIFO overruns, select this check box.
From the list, select None, RTS, or DTR to specify the state of the RTS or DTR line. The driver asserts the selected line upon transmission.
Enable the hardware-based handshake for flow control. This feature of the UART provides a reliable way to prevent loss due to hardware FIFO overflow. From the list, select RTS/CTS to enable this behavior; otherwise, select none.
Allows the UART to send the XOFF character if the receive hardware FIFO gets too full. It then sends the XON character when the receive FIFO empties. Because the UART handles this, the XON/XOFF characters are sent immediately, even if the transmitter is empty. From the list, select XON/XOFF to enable this behavior; otherwise, select none.
Normally, enter 17 (Control Q ). This is the default.
Normally, enter 19 (Control S ). This is the default.
Select this check box to enable RS-485 automatic turnaround. In RS-485 mode, where the transmitters and receivers all use the same differential pair of wires, you can enable only one transmitter at a time. Select this check box to turn on the automatic transmitter control in the UART. The RTS output is routed to the enable input of the RS-485 transmitter.
Enter the desired RS-485 turnaround delay. The UART automatically asserts RTS when there are characters in the transmit FIFO. It deasserts RTS when the transmit FIFO empties and the RS-485 turnaround default delay of 0 to 15 bit times elapses. The transmitter output goes tristate (high impedance) when disabled, which allows another device to transmit.
The following describes the Parameter Group Transmit Setup option, which is supported by only non-F Send Receive blocks).
From the list, choose Transmit Setup. The visible set of parameters changes according to your selection. The following screenshots reflect the Send Receive block for the Quatech ESC-100.
Parameter Group: Transmit Setup

From the list, choose a port. The Port to modify parameter specifies the port for which you want to view or modify the parameters.
This check box enables you to use default values for the block.
Enter the transmit software FIFO size, in bytes. This parameter specifies the size of the software FIFO used to buffer transmitted characters.
From the list, choose count+32 bit int, count+32 bit uint, count+16 bit int, count+16 bit uint, 8 bit int null terminated, or 8 bit uint null terminated. This parameter specifies the data type of the transmitter. The 8-bit data types require a NULL-terminated string in the input vector.
The 16- 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 needs to include a NULL byte, you must select one of the 16- or 32-bit data types.
The following describes the Parameter Group Receive Setup option, which is supported by only non-F Send Receive blocks).
From the list, choose Receive Setup. The visible set of parameters changes according to your selection. The following screenshots reflect the Send Receive block for the Quatech ESC-100.
Parameter Group: Receive Setup

From the list, choose a port. The Port to modify parameter specifies the port for which you want to view or modify the parameters.
This check box enables you to use default values for the block. Select this check box to use the default values for the Baud divisor and Sampling rate parameters. Selecting this check box allows you to enter a value for the Baud rate parameter and also selects the Prescale parameter. If you clear this check box, you can enter custom values for the Baud divisor and Sampling rate parameters, but must use the default value for the Baud rate parameter. Clearing this check box also clears the Prescale check box.
If selected:
Reference is set to 14.7456 MHz.
Prescale is disabled.
Sampling rate is 16X (standard).
Select the baud rate from Baud Rate.
If not selected, you must provide a custom baud rate that is not on the dropdown list to get the desired reference. For example, if you have a desired baud rate of 1.0 MHz, you can use the following equation to calculate the reference:
reference = baud rate x sampling rate x divisor x prescale
The following values give an acceptable reference that is less than or equal to 50 MHz.
reference = 1.10e6 x 16 x 1 x 1 = 16 MHz
Enter the size of the receive software FIFO, in bytes. This parameter specifies the size of the software FIFO to buffer characters between interrupt service and periodic execution.
Enter the maximum number of elements that you want returned by a single call to this block. This parameter is also used to set the output vector width. If the Read to delimiter check box is selected, the maximum number of characters read is limited by this parameter even if the delimiter is not found.
Enter the minimum number of characters to read. If the FIFO does not contain at least this number of characters, the output vector is empty.
Select this check box to have this block return all characters in the FIFO up to and including the specified delimiter. If the block does not find the delimiter in the FIFO, it returns no characters.
Note that if the buffer has hardware observed errors, such as framing errors, characters are returned regardless of the presence of the delimiter. This special case helps diagnose errors such as mismatched baud rates.
Enter the numeric value of the character that is the message delimiter. Any value from 0 to 255 is valid. The common case looks for 10 (line feed) or 13 (carriage return).
From the list, select count+32 bit int, count+32 bit uint, count+16 bit int, count+16 bit uint, 8 bit int null terminated, or 8 bit uint null terminated. This parameter specifies the data type of the receiver. The 8-bit data types produce a null terminated string in the output vector. For 16- and 32-bit data types, the first element contains the number of valid elements in the rest of the output vector.
For 8-bit data types, only the character data is in the output vector, and a NULL terminator is appended. The 16- or 32-bit wide data types cause the error status from the UART to be placed in the second byte of each data element. (The error status contains the parity, overrun, framing, and break bits.) The character data is in the bottom eight bits of each element; the first element of the vector contains the number of data elements that follow.
Base sample time or a multiple of the base sample time.
The following describes the Parameter Group FIFO Setup option, which is supported by only F Send Receive blocks).
From the list, choose FIFO Setup. The visible set of parameters changes according to your selection. The following screenshots reflect the Send Receive block for the Quatech ESC-100.
Parameter Group: FIFO Setup

From the list, choose port 1 or 2. The Port to modify parameter specifies the port for which you want to view or modify the parameters.
Enter the transmit software FIFO size, in bytes. This parameter specifies the size of the software FIFO used to buffer transmitted characters.
From the list, choose count+32 bit int, count+32 bit uint, count+16 bit int, count+16 bit uint, 8 bit int null terminated, or 8 bit uint null terminated. This parameter specifies the data type of the transmitter. The 8-bit data types require a NULL-terminated string in the input vector.
The 16- 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 needs to include a NULL byte, you must select one of the 16- or 32-bit data types.
Enter the size of the receive software FIFO, in bytes. This parameter specifies the size of the software FIFO to buffer characters between interrupt service and periodic execution.
![]() | Modem Status (Composite) | RS232 State (Composite) | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |