Engee 文档

ba-is-xx uart-rx

使用RITMeX BA-IS-XX I/O模块通过UART接收数据。

类型: CFunction

图书馆中的路径:

/RITM/RITMeX BA-IS-XX/BA-IS-XX UART/BA-IS-XX UART-RX

资料描述

要使用该块,请安装/更新支持包。 节奏块

ba-is-xx uart-rx 它用于使用RITMeX BA-IS-XX I/O模块通过UART接收数据。

港口

输出

# RX — 通过 UART 接收到的数组
`向量

Details

数组的大小固定为 16(详见章节 使用须知)

数据类型

UInt8

复数支持

# 长度 — 每个计算步骤通过 UART 接收的字节数信息
标量

Details
数据类型

Float64`。

复数支持

# 越位 — 如果该输出值不为零,则表示外部数据的输入速度快于数据块的读取速度。
标量

Details
数据类型

Float64`。

复数支持

参数

Main group

# 总线信号: — 唯一模块标识
1 | 3 | 4 | 5 | 6 | 7 | 8

Details

用于在实时设备中安装多个同类型 I/O 模块时唯一标识模块。

模块编号签署在 RITM 外壳上。

1 | 3 | 4 | 5 | 6 | 7 | 8

默认值

1

程序使用名称

m_module_idx

可调谐

可计算

# Номер канала: — 用于接收的 UART 通道
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32

Details

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32

默认值

1

程序使用名称

m_channelNum

可调谐

可计算

# Макс.количество слов: — 每个计算步骤从 UART 缓冲器读取的字数

Details
默认值

1

程序使用名称

m_rx_max_data

可调谐

可计算

# Шаг расчёта, с: — 实时应用程序通过 UART 接收数据的计算步长,以秒为单位

Details
默认值

-1

程序使用名称

m_sample_time

可调谐

可计算

使用须知

详细使用说明

FPGA上的UART模块包含两个硬件缓冲区:用于接收和发送。 每个缓冲区的大小是`16’字节。 在这方面,有必要很好地理解特定UART通信协议的特性,以避免溢出这些缓冲区,以及确保在尝试发送下一个之前发送前一个消息。

*首先要考虑的是数据传输速率。 显然,UART数据不是即时传输的。 例如,假设您需要以115200波特的速率发送一个`16`字符数组(每个字符由`10`位组成—这些是`8`数据位,开始和停止位)。 这将需要 几秒钟。 如果Uart发送块以`0.001`s的增量操作,那么在下一步计算块之前数据将没有时间发送,因为`0.001`<`0.0014'。 因此,下面的字符数组不能被发送,在这样的情况下,模型的执行将被停止并出现错误。 有必要选择块计算步骤、传输速率和阵列的大小的这样的组合,以便在物理上能够在一个块计算步骤中发送此数据。

*要考虑的第二件事是硬件接收缓冲区的大小。 如果外部数据比块更快到达 ba-is-xx uart-tx 从硬件缓冲区读取它们,然后丢弃不适合接收缓冲区的新数据。 因此,有必要考虑并计算用于用外部数据流填充读取缓冲器的预期时间。

为此,您可以使用*BA-IS-XX UART-TX*块的输出长度和溢出值。 模型内的计算应该考虑到RX块输出处的元素与实际接收到的元素(输出长度)完全相同。 RX数组的所有其他元素的值都是未定义的。

如果在超限块的输出端输出非零值,则表示硬件缓冲区溢出,硬件接收缓冲区中的数据丢失。 在这种情况下,可以减少*BA-IS-XX UART-TX*块的计算步骤,以便更频繁地读取数据并因此避免溢出接收缓冲器。 计算步骤对于*BA-IS-XX UART-TX*块来说太小,也不应该设置,而应该由特定的交换协议指导。 例如,如果已知外部设备发送8字节的命令,则可以选择一个块计算步骤,使得长度输出值从一个步骤到一个步骤的计算近似为`8`。