在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3013|回复: 7

[求助] 请教一下uart的问题以及校验功能!(有代码)

[复制链接]
发表于 2012-3-5 21:10:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
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  ,不知道怎么使用。
还有校验功能    在哪里会实现呢!
谢谢    发现会再补充!
 楼主| 发表于 2012-3-6 12:21:25 | 显示全部楼层
没人救我啊    怎么实现校验功能啊!!!
发表于 2012-3-7 10:36:44 | 显示全部楼层
查所有的数据位加上校验位后1的个数,偶校验有偶数个1,奇校校有奇数个1
具体电路的做法可以按位异或,防止串行delay太大可以先两两组合异或,8bit只需要3级即可。
 楼主| 发表于 2012-3-7 12:51:22 | 显示全部楼层
回复 3# vongy

你好 请问一下  如果实现奇校验 那么要确定数据有奇数个1   例如输入00110011  要输入校验位为1才能进行奇数校验   如果输入00110010  要输入校验位为0  才能进行奇数校验。那么校验位  就不确定了!!
发表于 2012-3-7 14:14:01 | 显示全部楼层
校验位的值当然是根据数据的不同改变了,校验的时候把数据和校验位合在一起位异或得到的才应该是固定值,这样来判断数据是否正确。
 楼主| 发表于 2012-3-7 22:11:10 | 显示全部楼层
回复 5# vongy


    谢谢你,这个我知道。主要是如果你不知道数据是啥的时候,你是怎么输入校验位呢???
发表于 2012-3-8 09:13:50 | 显示全部楼层
校验位是边过数据边计算出来的呀,只要收发协议一致,管数据是什么
发表于 2012-3-12 20:11:37 | 显示全部楼层
使用过某公司的UART IP,有奇校验,偶校验,1校验,0校验,无校验。这些都是可选择的。当然,对通的两个UART必须设置成一致的,这样才能协商上哦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 12:41 , Processed in 0.034933 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表