现在人部分的仪器设备都要求能过通过匕位机软件來操作,这样方便调试,利
「操作。其 屮就
涉及到通信的过程。在实际制作的儿个设备中,笔者总结出了通信程序的通用
写法, 包抵上位
机端和卞位机端等。
这里所说的数据协议足建立在物理层 Z 上的通信数据包格式。所谓通信的物理层
就是指我 们通
常所用到的 RS232、RS485、红外、光纤、无线等等通信方式。在这个层而上,
底层软 件提供两
个基本的操作换数:发送一个字节数据、接收一个字节数据。所有的数据协议全
部建立在这两
个操作方法 Z 上。
通信中的数据往往以数据包的形式进行传送的,我们把这样的-个数据包称作为
「帧数 据。类似
「网络通信中的 TCPIP 协议一般,比较可靠的通信协议往往包含冇以卜九个组成
部分:帧头、
地址信息、数据类型、数据长度、数据块、校齡码、帧尾。
帧头和帧尼用 J:数据包完帑性的判别,通常选择一定长度的固定字节组成,耍求
是在整个 数据
链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧
头 和帧尾的特
征字节在整个数据链屮能够匹配的机会最小。通常仃两种做法,•、减小特征 了
节的匹配几率。
二、增加特征宁节的氏度。通常选取第-•种方法的情况是整个数据链路 中的数据
不具冇随即性,
数据可预测,可以通过人为选择帧头和帧尼的特征字來避开,从 而减小特征字节
的匹配儿率。使
用第二种方法的情况更加通用,适合数据随即的场合。
通过増加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但
对以使匹 配几率
人人减小,如采碰到匹配的情况也可以由校验码來进行检测,因此这种情况在绝
人 多说情况下比
较可靠。
地址信息主耍用多机通信中,通过地址信息的不同來识别不同的通信终端。在一
对多的 通信系统
中,可以只包含 I I 的地址信息。同时包含源地址和忖的地址则适用零对多
的通 信系统。
数据类型、数据长度和数据块是主要的数据部分。数据类空町以标识后面紧接
着的是命令 还是
数据。数据长度用丁•指示有效数据的个数。
校验码则用来检验数据的完榕性和 iE 确性。通常対数据类型、数据长度和数据
块三个部分 进行
相关的运算得到。最简单的做法町是对数据段作累加和,复朵的也町以对数据进
行 CR C 运算等
等,可以根据运算速度、容错度等耍求來选取。
物理通信层中提供了两个基木的操作断数,发送一个字节数据则为数据发送的
甚础。数据 包的
发送即把数据包中的左右字节按照顺序一个一个的发送数据而已。肖然发送的
方法也 有不同。