您现在所在的是:

传感器论坛

回帖:1个,阅读:852 [上一页] [1] [下一页]
912
mafayang
文章数:2
年度积分:50
历史总积分:912
注册时间:2005/6/3
发站内信
发表于:2005/6/3 16:17:00
#0楼
一、通信上分类
1始发式(Auto Send)
接通电源就不断的向外传送数据。不许要任何命令就能完成数据的传送。
2开启式(Open)
接通电源后等待开启命令。收到开启命令触发其不间断地向外传送数据。至少需要一个开启命令如send command(“*open?”)。
3问答式(Ask Answer)
接通电源后等待命令。当收到读数命令,向外传送仅传送一帧数据。至少需要一个读数命令如send command(“*read?”)。
二、回传的数据分类
1二进制码

一般用于高速度的数据的传输有帧头,帧尾,数据位,检验位,需要软件进行才分
例如有一个数据帧的编码规则如下:
1)传输编码为原码,高字节的最高位为符号位。最高位为”0”时,即编码为正,最高位为”1”时,即编码为负。
2)数据帧格式为:一个字节的引导符(*),一个字节的设备号(ID),四字节的数据,一个字节的校验 (除引导符以外的各字节按位异或值) 。共7个字节长度。
3)例:
高度为-256米,速度为160km/h,传输:2A 01  8100  A0A0  80
                                          * ID 高度  速度  校验
      高度为+256米,速度为256km/h,传输:2A 01  0100  A100  A1
* ID  高度  速度 校验
分解:
高度:8100,8是符号位,100是数据(0001 0000 0000bit)=256
速度:A0A0,A后是速度,0A0是数据(0000 1010 0000bit)=160
收到7个字节示意图:

2A    01       81    00      A0      A0    80
*      ID        高  度         速  度      校验

2ASCII码
随着技术的发展传感器的传送速度也在不断提高,也就不必考虑多出几个字节会带来速率的下降。ASCII码,使编程,数据传送变得更简单了。
例如:收到一帧数据如下:
!  0951.5  24.2
帧头:!,帧尾“\r”(回车),数据是0951.5, 其后得24.2是修正值或随机数据(有的帧头也有)。
如:@  04030.3  02336.2 !  0951.1  25.0
帧头帧尾如上例:数据是0951.1。其中@  04030.3  02336.2 !是随机数据或其它参数。
有如连续收到几个帧:ABC091635ABC091638ABC091636
帧头:ABC,没有帧尾,数据091635,091638,091636
没有帧尾改怎么办?其实只要把帧头当成帧尾看就可以了。
对于帧头帧尾是不可显的字符(如:回车、换行等)在程序设计时可能会遇到麻烦,我们用十六进制表示是最佳的选择。如果数据帧的格式固定,且帧传送失真率很小时,我们只用一个帧头或帧尾就可以了,这样就避免了十六进制的转换给程序设计带来地麻烦。
3BCD(8421)码
为了节省传送字节数、提高传送速率而采用,多见于较老的传感器上,是一种压缩传送数据的方法,必须进行软解压才能引用传回的数据。
例如:收到的数据某一帧数据:其中每一帧数据都占有5个字节其格式如下:
帧头:0C,帧尾:0D,数据:123456.
需要把数据从数据帧中取出来,实际上我们只要把中间三个字节取出即可,然后把三个压缩的BCD码分解成非压缩的BCD码。分解后我们得到6个字节,或者一个浮点数。









[此贴子已经被作者于2005-6-4 21:03:45编辑过]
10912
yanli7234 版主
文章数:3035
年度积分:49
历史总积分:10912
注册时间:2002/11/8
发站内信
2011论坛贡献奖
发表于:2005/6/4 22:22:00
#1楼
好文,建议版主设精(精华贴)。
国人当自强,共同努力,抵制日货。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002