pci读回数据是否正确的验证

鲍羊羊 2016-08-29 03:41:38
各位前辈:
最近正在编写一个简单的PCI设备读写的驱动程序.目前基本的读写没有问题.只是有时PCI卡接触不好的时候,读出的数据是错误的.但是驱动程序没办法知道这是错误的数据.我想请教各位,怎么才能确认读回的数据是否正确.我使用的是READ_REGISTER_ULONG 函数,这个函数不返回执行状态.没办法知道读回的数据是否正确.PCI读写是有奇偶校验的,但是我不知道怎么才能获得这个奇偶校验位的状态.希望各位前辈百忙中给予指点.我是刚接触驱动开发.所以非常期待各位的帮助,感激不尽!
...全文
372 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-09-03
  • 打赏
  • 举报
回复
数据不稳定,可以通过CRC处理 不过对于PCI基本没用 因为PCI如果不稳定,那肯定不是传输问题(就一块板子跟插槽,直接接到电脑上的) 多半是硬件没做好,协议没吃透,配置字不对等等原因。 例如 时钟线要采用蛇形走先 等等
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
如果,配置字可以读取,PCI能够加载 你可以读取PCI所有配置寄存器 比较是否正确 如果有错误,那一定是 有问题 往往跟接触不良,硬件连线不对,等等有关 其次,PCI可以有卡上ROM。RAM存储器 如果有的话,你也可以进行存储器,读写测试。
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
另外,接触不良,一般 PCI往往,不能被识别 因为配置字,多半读不出来
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
如果没法确认,可以多读几次 比如10次有七次(相同)表示读取正确(这七次读对了)
鲍羊羊 2016-08-30
  • 打赏
  • 举报
回复
谢谢两位的解答,PCI板卡是我自己开发的,所以才特担心稳定性的问题.lm_whales老师说的板子的EMC等等问题有道理,正是因为板子才开发出来,有很多问题需要测试才能检验出来,在一个震动等因素都会使板卡接触不良,造成数据传输的错误,但是我刚刚接触驱动程序开发,不太了解.这个数据错误问题怎么才能反映给我的驱动程序呢?
赵4老师 2016-08-30
  • 打赏
  • 举报
回复
板子太薄,可能会发生印刷在上面的铜箔有裂缝问题。用放大镜检查。
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
既然做 PCI,制版当然要选好一点的厂家了。 板上出现毛刺,断线,一般来说是不可忍受的, 除非板子设计问题, 一般硬件问题不多 例如接插部分,一般是镀金的,跟内存条的处理方式差不多, 称为金手指,接触不良,生锈基本上是不会出现的 除非板子太薄(厚度不够),这地方不会有接触不良的问题。 毕竟主板插槽都是按照标准做的。 另外,板子EMC 是否符合要求,也很重要 不合要求的板子,一般不应该出厂 设计的时候,就要考虑EMC EMC包括,板子自身抗电磁干扰能力,和对外电磁干扰是否达标 太强的话,会影响电脑性能的 现在一般电子设备,都要求EMC 性能要好
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
引用 9 楼 zhao4zhong1 的回复:
zhao4zhong1这块砖引来了lm_whales这块玉。
赵4老师 2016-08-30
  • 打赏
  • 举报
回复
zhao4zhong1这块砖引来了lm_whales这块玉。
lm_whales 2016-08-30
  • 打赏
  • 举报
回复
PCI 卡如果出现接触不良,(这里指的是金手指部分) 则 驱动加载不了,因为配置字不对 另外PCI的配置字,是否正确,影响板子能否识别。 如果有时能识别,有时候不能,就是配置字没有读出来造成的 这可能是,板子自身问题, 也可能是金手指接触不良(虽然可能性不大) 板子问题,多检查虚焊之类的。 这个一般不是可以通过驱动读出来的。 如果,板子复杂,应该引出一些插槽供调试用。 驱动能够查到的也就是 1)数据有时能够读出,有时读不出。 2)写进去读不出来,或者读出来数据不一致。 3)中断响应不对。 这一类问题。 至于驱动本身的问题,可以用双机联调 一个调试程序 一个安装硬件 通过windbg 就可以了 双击并网,联调
赵4老师 2016-08-30
  • 打赏
  • 举报
回复
在两根数据线之间间隔零线增加扁平电缆数据线的抗外部电磁干扰能力。 数据线不宜过长。
鲍羊羊 2016-08-29
  • 打赏
  • 举报
回复
前辈是否知道,怎样对PCI桥的配置空间进行访问?
赵4老师 2016-08-29
  • 打赏
  • 举报
回复
又或者可以参考或使用WinIO.sys?
赵4老师 2016-08-29
  • 打赏
  • 举报
回复
不知道借助这个软件是否能对你的问题有所帮助: portmon
鲍羊羊 2016-08-29
  • 打赏
  • 举报
回复
请问前辈,那在读的时候,应该是主PCI桥来接收这个PAR,并报出是否出错.Windows肯定是知道的,但是要怎样来抓取到这个错误呢?谢谢
赵4老师 2016-08-29
  • 打赏
  • 举报
回复
对正确数据的范围和波动规律统计归纳一个自定义约束,不符合该约束的数据可被认为是错误数据。

65,182

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧