ba-is-xx uart-rx
使用RITMeX BA-IS-XX I/O模块通过UART接收数据。
类型: CFunction
图书馆中的路径:
|
资料描述
要使用该块,请安装/更新支持包。 节奏块。
座 ba-is-xx uart-rx 它用于使用RITMeX BA-IS-XX I/O模块通过UART接收数据。
参数
Main group
#
总线信号: —
唯一模块标识
1
| 3
| 4
| 5
| 6
| 7
| 8
Details
用于在实时设备中安装多个同类型 I/O 模块时唯一标识模块。
模块编号签署在 RITM 外壳上。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
Номер канала: —
用于接收的 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
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
# Макс.количество слов: — 每个计算步骤从 UART 缓冲器读取的字数
Details
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
# Шаг расчёта, с: — 实时应用程序通过 UART 接收数据的计算步长,以秒为单位
Details
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
使用须知
详细使用说明
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`。