在matlab和FPGA板上进行奇偶校验

时间:2016-06-18 07:44:52

标签: matlab fpga uart parity

如图所示,

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

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

1 个答案:

答案 0 :(得分:0)

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

但是,在您这样做之前,请确保您确实需要重新传输功能,因为它可能相当复杂。如果你详细说明你的应用程序(你想要做什么,以及设置是什么),我可以进一步咨询这个问题。您需要问自己的问题:

  1. 物理层:为什么会收到错误?多常?如果降低数据速率,会减少错误吗?
  2. 数据处理:您必须收到所有数据吗?而不是重新传输,也许最好不止一次发送数据并获得多数投票。
  3. 数据正确性:您需要确定数据是否有效?平价检查并不是那么好,因为“两个错误可以使权利”。您可能需要根据您的答案实施更高的错误检测(+正确性)机制。
  4. 吞吐量和延迟:渠道利用率有哪些要求?
  5. 另请注意: https://electronics.stackexchange.com/questions/29134/handling-of-uart-errors