请教一下uart的问题以及校验功能!(有代码)
时间:10-02
整理:3721RD
点击:
module uart_top
(
// Global signal definition
input rst ,
input sys_clk ,
input pci_clk ,
input pci_wren ,
input [7:0] pci_wrdat ,
input pci_rden ,
output [7:0] pci_rddat ,
// Local bus register
input SEND_CMD ,
input RCV_EN ,
output RCV_IRQ ,
input PARITY_BIT_EN ,
input PARITY_SEL ,
output PARITY_ERROR ,
//output uart_ok ,
output xmit_busy ,
output xmit_ok ,
output xmit_fifo_empty ,
output rcv_fifo_empty ,
// Uart interface
input rxd ,
output txd
);
这是使用依元素学习板来实现 用到了spartan的芯片 uart调用了fifo 还有一些寄存器。
从代码中看到的Local bus register ,不知道怎么使用。
还有校验功能 在哪里会实现呢!
谢谢 发现会再补充!
(
// Global signal definition
input rst ,
input sys_clk ,
input pci_clk ,
input pci_wren ,
input [7:0] pci_wrdat ,
input pci_rden ,
output [7:0] pci_rddat ,
// Local bus register
input SEND_CMD ,
input RCV_EN ,
output RCV_IRQ ,
input PARITY_BIT_EN ,
input PARITY_SEL ,
output PARITY_ERROR ,
//output uart_ok ,
output xmit_busy ,
output xmit_ok ,
output xmit_fifo_empty ,
output rcv_fifo_empty ,
// Uart interface
input rxd ,
output txd
);
这是使用依元素学习板来实现 用到了spartan的芯片 uart调用了fifo 还有一些寄存器。
从代码中看到的Local bus register ,不知道怎么使用。
还有校验功能 在哪里会实现呢!
谢谢 发现会再补充!
没人救我啊 怎么实现校验功能啊!
查所有的数据位加上校验位后1的个数,偶校验有偶数个1,奇校校有奇数个1
具体电路的做法可以按位异或,防止串行delay太大可以先两两组合异或,8bit只需要3级即可。
你好 请问一下 如果实现奇校验 那么要确定数据有奇数个1 例如输入00110011 要输入校验位为1才能进行奇数校验 如果输入00110010 要输入校验位为0 才能进行奇数校验。那么校验位 就不确定了!
校验位的值当然是根据数据的不同改变了,校验的时候把数据和校验位合在一起位异或得到的才应该是固定值,这样来判断数据是否正确。
谢谢你,这个我知道。主要是如果你不知道数据是啥的时候,你是怎么输入校验位呢?
校验位是边过数据边计算出来的呀,只要收发协议一致,管数据是什么
使用过某公司的UART IP,有奇校验,偶校验,1校验,0校验,无校验。这些都是可选择的。当然,对通的两个UART必须设置成一致的,这样才能协商上哦。
