38度发烧友--38Hot Volt-Nuts

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2172|回复: 0

7150数字板与模拟板间通信协议的解释

[复制链接]
发表于 2016-3-22 20:23:32 | 显示全部楼层 |阅读模式
本帖最后由 laisla 于 2016-3-23 12:03 编辑

7150是Schlumberger早年设计的一款5位半万用表,该表用料还算不错,液晶显示,测量噪声低,是一款不错的工
作用表,还能开出6位半模式,国内厂家也做过这个表并出售。但因设计年代早,大多数表的液晶屏幕老化,缺划
的比较多。我曾经想过DIY一个屏幕,采集屏幕的协议似乎更难,查看了该表的数字板和模拟板间的数据连线,发
现电路图上居然有明写的TX和RX,认为从这里下手会更简单。并假想能找一个更好的算法来代替早期的数字板。

FB01.png
准备工作:
X宝上买一个便宜的USB逻辑分析仪
从模拟板上的IC102 第2、3脚引出TX  RX
随便选一个端口接上逻辑分析仪开始收集数据。

在采集前我考虑了一下该机的设计可能性:
1、模拟板只负责ADC,将积分到的数据发送到数字板,由数字板进行运算,纠正,平滑,得到测量结果后显示。
2、模拟板负责ADC  AC   AZ等工作,将运算完的数据发送到数字板,由数字板转换成十进制数据并显示。

开始采集数据。
首先我要先选一个速度采集数据,以确定我的逻辑分析仪速度够快而不至于丢数据。
FB02.png
FB03.png
确定数据时间后找一个合适的速度开始采集数据
FB04.png

采集到了便开始将数据写在纸上,做分析。
7150上写了TX  RX,有可能是按RS-232协议来传输的,但不能确定,也有可能表示为输出线和接收线。
在画了几张纸,和对比COM的协议以后,确定了7150是用RS-232传输协议来通信的。

FB05.png
FB06.png
FB07.jpg
FB08.jpg
FB09.jpg

在确定了协议以后,就是要把数据翻译成字符,一个一个的对应当前电压来分析了。
分析的结果很让我吃惊,7150的设计不在我设想的可能性中,他的模拟板做完了所有的数据处理,包括ADC  AC  
AZ和转10进制的运算以及量程切换。数字板的工作仅仅是显示,和GPIB的通信。而两板之间通信的内容,竟然是ASCII码的
明文。


分析的结果如下
注:本人不懂编程,以下写法是从别人的说法及表示中凑出来的,如有错误请及时指出。如果在测试过程中发现实
际数据格式与下文不符合,或想对该机数据做处理而有不明白的地方,请联系本人。

所有的字符都由0开始(起始位)  1结束(停止位)  低位在前,高位在后。

1  模拟板会比数字板先完成自检,自检完毕后发送信息为:
A -rx- D> FMS[chr(32)]CA[chr(13)chr(10)]

数字板完成自检后会在收到模拟板上条信息后回应:
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
D -rx- A> A
A -rx- D> A
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
D -rx- A> 0
A -rx- D> 0
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
D -rx- A> W
A -rx- D> W
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
D -rx- A> M
A -rx- D> M
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]

2  等待状态
数字板每隔10ms会向模拟板发送一串二进制00000000(实际上带了头和尾的话应该是0000000001) 这个数据会在
收发过程中出现,即不管模拟板给不给数据,只要数字板没有发其他数据,就会发送这串0。如果这个信号丢失,
会报错误。

3  模拟板在电压采样完毕后会发送:
A -rx- D> [chr(32)]A3W3[chr(32)]********[chr(13)chr(10)]
解释:[chr(32)]A(目前的功能)3(选择的量程)W3(当前量程)[chr(32)]*(符号)*******(一共7个数字,
全是明文,包括6个数字和小数点)[chr(13)chr(10)]

在这里面的8个*号中,第一个是+或-(ASCII码明文),后面7个为6个数字和小数点,也就是说数字板收到这串数
值直接显示就可以了,连实际测量中的放大倍数都不用管。(由此看来,7150是铁死了的5位半数据,完完全全的
明文数据)

数字板在接受数据后的回应:
D -rx- A> I
A -rx- D> I
D -rx- A> [chr(32)]
A -rx- D> [chr(32)][chr(32)]A3W3
这个信息会出现4次,不知道为什么,偶尔见有出现3次或5次的,很少。
在这个重复之后,传输数据为:
D -rx- A> Q
A -rx- D> Q
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
发完这个数据后,进入等待状态


功能及量程切换:
这个信号在上面所说的出现4次
D -rx- A> I
A -rx- D> I
D -rx- A> [chr(32)]
A -rx- D> [chr(32)][chr(32)]A3W3
后由数字板发给模拟板
D -rx- A> *
A -rx- D> *
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
其中的*代表功能和量程。
发完这个以后依旧以
D -rx- A> Q
A -rx- D> Q
D -rx- A> [chr(32)]
A -rx- D> [chr(32)]
结束这次通信,不发这个信息会出现什么情况目前不知道。

5
功能表示
直流电压   A
交流电压   B
电阻       C
直流电流   D
交流电流   E
二极管     F

6量程切换
电压有5个量程,用 1 2 3 4 5 表示   5表示0。1V档   1表示1000V档   0为自动档
电阻有4个量程  没有5,最小是4
其他功能只有一个量程,好像全是4,切换功能的时候如果是手动量程,而且切换后的功能没有当前量程的话,需
数字板在切换功能后多发一个切换量程的数据,其他单一的量程好像全是4(这个有待验证,我忘记看了)

7 超量程OL
超量程的时候会在发送的结果即第3里面最前面的空格改成了!
即:A -rx- D> [chr(33)]A3W3[chr(32)]********[chr(13)chr(10)]
这个时候发送的数据依旧是具体测量的数据(无意义,其实是钳位的电压值)。

7150P多了一个位数选择,即可以选择 4 5 6 位,在4位半下速度会快很多,7150没有这个,只能选5 6位。
W代表积分速度,5位半   Y为4位半,   7150P的电阻档5号量程为温度测量。

在4位半数据下,模拟板发送的数据依旧为5位半,但最后一个数是0,7150的6位半为数字板把几个数据平均得出的
结果,不管怎么选,模拟板都不会发送多一位数据,也不会少发一个数据。


后话:这个工作是15年10月前后做的,本来是想用一个单片机做个小东西来代替数字板,有显示功能并能连接电脑
做数据采集,毕竟7150连GPIB不方便而且这样成本太高,无奈lilith一直没有空弄这个,于是我想想还是打算把它
发出来算了,看谁有空把这个单片机做出来玩玩。
回复

使用道具 举报

 楼主| 发表于 2016-3-22 20:27:15 | 显示全部楼层
全文完
回复

使用道具 举报

发表于 2016-3-22 21:08:16 | 显示全部楼层
好深入呀,刚接触此类表,受益了。
回复

使用道具 举报

发表于 2016-3-22 21:09:13 38hot手机频道 | 显示全部楼层
楼主做的真细致。
回复

使用道具 举报

发表于 2016-3-22 21:12:32 | 显示全部楼层
大工程 费了不少工夫
回复

使用道具 举报

发表于 2016-3-22 21:49:02 | 显示全部楼层
真的好有耐心啊
回复

使用道具 举报

发表于 2016-3-22 23:34:08 | 显示全部楼层
好,终于分析出来了!
回复

使用道具 举报

发表于 2016-3-23 07:33:39 38hot手机频道 | 显示全部楼层
很大的工程,费心了。
回复

使用道具 举报

发表于 2016-3-23 08:21:17 | 显示全部楼层
高手!佩服!
回复

使用道具 举报

发表于 2016-3-23 08:40:42 | 显示全部楼层
虽然不懂,但也要顶一下
回复

使用道具 举报

发表于 2016-3-23 08:56:18 | 显示全部楼层
瓦叔想着拆了吃肉呢
回复

使用道具 举报

发表于 2016-3-23 09:17:29 | 显示全部楼层
分析得不错,花了不少时间吧。
我会编程,可惜,我已经没有7150了,没办法测试你这协议,搞出单片机。

回复

使用道具 举报

发表于 2016-3-23 09:43:24 | 显示全部楼层
本帖最后由 lgw65 于 2016-3-23 09:45 编辑

逻辑分析仪右侧分析那里,选协议串口,就可以自动分析数据了

file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\1592917637\QQ\WinTemp\RichOle\40MH4%5XVIBX)CWW`J%9PC7.png


QQ图片20160323094222.png
回复

使用道具 举报

发表于 2016-3-23 09:49:51 | 显示全部楼层
主要是7150有点鸡肋,要是能有34401的性嫩就会折腾了
回复

使用道具 举报

 楼主| 发表于 2016-3-23 11:55:04 | 显示全部楼层
lgw65 发表于 2016-3-23 09:43
逻辑分析仪右侧分析那里,选协议串口,就可以自动分析数据了

我做这个的时候也去问了edward ,他好像也是用了和我一样的逻辑分析仪,他说好像是有直接分析232数据的功能,但他也不记得是在哪弄出来的了,也可能是我下到的这个软件是简化的,我没找出这个功能.所以后面只能自己一个一个字符的去查ASCII表做了.
回复

使用道具 举报

发表于 2016-3-23 14:00:07 | 显示全部楼层
楼主才是真正的舒力强粉啊
回复

使用道具 举报

 楼主| 发表于 2016-3-23 15:44:14 | 显示全部楼层
hu_lin 发表于 2016-3-23 14:00
楼主才是真正的舒力强粉啊

你快把7081的搞出来.
回复

使用道具 举报

发表于 2016-3-23 17:09:54 | 显示全部楼层
laisla 发表于 2016-3-23 15:44
你快把7081的搞出来.

7081的硬件部分基本吃完了,下一步就搞软件部分了
回复

使用道具 举报

发表于 2016-3-23 22:05:18 | 显示全部楼层
楼主投入了很多精力和时间,感谢楼主的无私分享
回复

使用道具 举报

发表于 2016-3-28 21:43:56 | 显示全部楼层
要是能搞出来是很有意义的, 毕竟这个表很多 ,了解表才是真的用表之人,楼主辛苦了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表