打印

求助DS18B20序列号

[复制链接]
9180|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
干净莫邪|  楼主 | 2011-5-15 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
多点测温因仿真需要DS18B20的序列号,目前只知道低八位为28H,接着的48位为传感器相应的序列号,高八位为那56位生成的冗余码。。
不知道哪位大神有实物18B20的序列号,目前只知道一个64位的序列号,需要三个传感器的ROM64位序列号,仿真的时候需要匹配ROM,搜索ROM不会做。。有点笨啦。冗余码自己算不出来  那异或移位一会头都大了

急求大神帮忙~~不胜感激

相关帖子

沙发
刘前辈| | 2011-5-16 09:50 | 只看该作者
不用抑或移位,8位8位一起算就行了。G=?

使用特权

评论回复
板凳
原野之狼| | 2011-5-16 10:26 | 只看该作者
搜索ROM可以采用二叉树的思想来做

使用特权

评论回复
地板
干净莫邪|  楼主 | 2011-5-16 11:57 | 只看该作者
2# 刘前辈
CRC=X~8+X~5+X~4+1
序列号为64位  能帮我写两个吗?? 随便写  只要能用   谢谢啦
我知道的一个为8EH,00H,00H,00H,0B8H,0C5H,30H,28H,
固定的一个就是28H    前面的也不会算啊    再次感谢

使用特权

评论回复
5
刘前辈| | 2011-5-16 12:29 | 只看该作者
小意思。G=131H ,序列号64位如你所列。要求8位CRC余数。 对吧?

即求:8E000000B8C53028H  / 131H 的余数。  对吧?

、、

使用特权

评论回复
6
干净莫邪|  楼主 | 2011-5-16 12:44 | 只看该作者
5# 刘前辈

我写的那个  前面的那个8EH应该就是求出来的冗余码   不在其中的吧?我也不太清楚

我写出来的那个就是一个64位的序列号    高八位即8EH应该是通过低56位生成的   并且     低位的0B8H 0C5H 30H 28H最好一样    也不太理解这个冗余码是咋生成的    能留个QQ吗?  谢谢啦

使用特权

评论回复
7
刘前辈| | 2011-5-16 12:51 | 只看该作者
确实有规则,我查查。有时输入可能是反着读的:例如成了14H 0CH A3H 1DH……

使用特权

评论回复
8
干净莫邪|  楼主 | 2011-5-16 12:56 | 只看该作者
7# 刘前辈

输入时是先送低位的28H  然后到高位  送完56位就生成了一个冗余码

使用特权

评论回复
9
xiaotann| | 2011-5-16 12:57 | 只看该作者
异或移位一会头都大

使用特权

评论回复
10
刘前辈| | 2011-5-16 17:01 | 只看该作者
本帖最后由 刘前辈 于 2011-5-16 17:03 编辑

很简单,只是我们没想到。按照LZ提供的序列,实际进行的运算把这个序列先左右反转,最低位变最高位(按我们的习惯,除法运算左手最高位),原来左边CRC 反转到右边最低位。
序列现在称为标准运算式:
14 0C A3 1D 000000 71 ;  // 8E000000B8C53028H 的反转序列。

用这个序列前56位模二除131H(也可能反序为C8H,或者119H,取决于算法。)余数会得到71H (8EH 反序)。

当然你不需要真的去计算,厂家已经算好了并刻在18B20里了。你用读命令33H会读出这么个序列 8E000000B8C53028H ;这里只是说明原理;它是这么来的。有兴趣证实一下,网上、书上都有公式。图书馆里找“戴佳”写的2本书上都有公式和表。是针对C51写的。

还有,看了几个18B20实验,都懒得用(不会用)这个序列号,——只接一个18B20。都是用命令CCH 跳过序列号寻址功能的。
     会用序列号寻址,不简单的人,不糊弄事的人。敬佩。

、、

使用特权

评论回复
11
lxyppc| | 2011-5-16 17:40 | 只看该作者
楼主我有一个以前写的搜索18B20的代码,将就着看看吧
读数据时会做CRC校验,可以搜索ROM
http://www.pic16.com/bbs/dispbbs.asp?boardid=24&id=22930

使用特权

评论回复
12
370102666| | 2011-5-16 21:56 | 只看该作者
网上有许多软件,一刷就可以了

使用特权

评论回复
13
干净莫邪|  楼主 | 2011-5-17 00:37 | 只看该作者
10# 刘前辈

过奖了  现在找到了三个  匹配ROM 55H  成功   想多找几个更有说服力  马上该答辩了啊    我也是瞎弄  呵呵
你说的算法明天去图书馆找找看 自己学会算了最好啊  再次感谢

使用特权

评论回复
14
hotpower| | 2011-5-17 00:44 | 只看该作者
本帖最后由 hotpower 于 2011-5-17 00:52 编辑

菜农的网上在线CRC运算器:
http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

选择:crc8_maxim(权值0x8c 右移CRC8=X8+X5+X4+1)

8EH,00H,00H,00H,0B8H,0C5H,30H,28H
这个要反着算的~~~

整理为:2830C5B80000008E

有两种算法:
1.56位全球唯一码(8E是校验和),它将针对于某个ID,
初值00 2830C5B8000000 结果8E

2.8字节恒为0(将校验和8E也计算) ,它将不针对于某个ID,只认DS18B20
初值00 2830C5B80000008E 结果00


菜农助学园地网友助学板交流笔记汇编
基于 LOOK 系统的助学板 DS18B20 示例

使用特权

评论回复
15
干净莫邪|  楼主 | 2011-5-17 00:49 | 只看该作者
问题已经解决  找到一个仿真专门测ROM序列号的  这下好了  要多少有多少啊~~谁需要的话加我Q 550871662可以共享哈     
自己匹配ROM也成功了~~~毕业设计接近尾声咯

使用特权

评论回复
16
hotpower| | 2011-5-17 00:57 | 只看该作者

使用特权

评论回复
17
joyme| | 2011-5-17 11:39 | 只看该作者
max网站上有源代码,网上写好的代码也很多。
要善于利用芯片厂商的application notes

使用特权

评论回复
18
mohanwei| | 2011-5-17 13:03 | 只看该作者
附议

使用特权

评论回复
19
hotpower| | 2011-5-17 16:13 | 只看该作者
记着厂家给的51的源码,由于先右移,故权值为0x18,不太规范。结果没问题,估计考虑51优化的问题。

使用特权

评论回复
20
干净莫邪|  楼主 | 2011-5-17 17:17 | 只看该作者
谢谢大家的帮忙~~~我的问题目前已经解决了   用了半天自己又加入了声光报警    毕业设计就这样了~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

0

粉丝