matlab和FPGA板中的奇偶校验

matlab fpga uart parity

243 观看

1回复

如图所示,

s = serial('COM3','BaudRate',115200, 'Parity', 'odd','DataBits',8,'StopBits',1);
fopen(s);

我在Matlab的串行端口通信中添加了奇偶校验功能。我创建了串行端口以将数据发送到FPGA板。在FPGA板上,我编写一个代码对8位数据进行XOR操作,并检查结果是否与奇偶校验位正确。问题是如果存在奇偶校验错误,FPGA板如何请求串行端口重新传输数据?FPGA是否有必要的设置?

作者: Mr.Z 的来源 发布者: 2019 年 11 月 1 日

回应 (1)


0

标准UART通信(如RS232所用)不具有内部ACK(已确认)和NACK(未确认)功能。如果您希望发送方重新发送数据,则必须自己定义协议并将其编程到发送方和接收方。

但是,在执行此操作之前,请确保您确实需要重传功能,因为它的实现可能相当复杂。如果您详细说明了您的应用程序(您打算做什么以及设置是什么),我可以就此事进行进一步的咨询。您需要问自己的问题:

  1. 物理层:为什么会收到错误?多常?如果降低数据速率,您会收到更少的错误吗?
  2. 数据处理:是否必须接收所有数据?与其重传,不如重新发送数据并获得多数表决,这可能更好。
  3. 数据正确性:您如何确定数据有效?奇偶校验不是那么好,因为“两个错误可以成对”。根据您的答案,您可能需要实现更高的错误检测(+正确性)机制。
  4. 吞吐量和延迟:信道利用率有哪些要求?

另请参阅:https : //electronics.stackexchange.com/questions/29134/handling-of-uart-errors

作者: Oron Port 发布者: 19.06.2016 08:43
32x32