编辑: hys520855 2019-07-07
NA3100参数配置协议草案

一、概述 PC机与860之间需要一个确定的交互协议,用来实现参数和数据的双向传输.

参数协议设计目标:

1、完备 要求对网络不同协议的全部参数都能够设置.

2、准确可靠 每一个参数设置操作均能够可见具体设置的结果.

3、操作简单 每一操作对应一条指令.

4、界面友好 提供丰富的反馈信息和差错报告.

5、易于扩展 设计参数尽可能考虑到今后参数的可扩展性.

二、参数配置协议处理过程 指令分为4种类型,分别为配置参数类,系统控制类,数据收发类,系统返回指令. 发送接收缓冲区处理情况 因为要数据发送要退避其他指令的发送,所以将数据发送类指令与其他指令传输使用不同的环形缓冲区(PC和860各自都有),而每次发送都以其他指令缓冲区优先,而接收处理也是以判断其他指令优先. 在860端,如果数据缓冲区满,则会产生上溢,此时丢弃最老的一帧或者数帧数据,以最新的数据覆盖最老的数据,同时生成错误报告,将报告发到上行指令缓冲区;

如果指令缓冲区上溢,则仅仅记录下上溢的情况.PC端对缓冲区的处理与860端类似,即如果缓冲区满,用新的覆盖老的.这样在860端和PC端都会发生数据丢失.PC端错误自己统计,而要想得到860错误统计表,可以主动发送 错误异常统计 请求包来得到.(主要是溢出情况) 缓冲区单元格式采取头和数据体分离的方式,及全部缓冲区单元头在一个连续的内存区域,而所有的数据体在一个连续的内存区域,两块内存区域分成相同的块数,然后一一对应,采用一套缓冲区维护指针. 理解:

1、数据缓冲区和指令缓冲区分开,使得可以优先处理指令.

2、因为数据和指令共享同一个通道,为了保证通道的畅通,尤其是指令通道的畅通,所以,在接收方必须保证一直能够接收,出现缓冲区溢出情况则进行记录和统计.

3、将缓冲区的数据区使用单独的连续的缓冲区,易于直接调用底层驱动函数将广域网数据填充.这样应用层的缓冲区的宽度可以根据以太网口的发送特点确定,不必根据底层的帧的长度来动态调整缓冲区长度.将一个底层广域网帧填充到缓冲区的数据部分,就可以自然的将一帧分割成若干个缓冲区单元以利于从以太口发送.这时采用这种方式填充,需先判断是否有足够多块的缓冲区单元以保存广域网数据.该方法的弊端在于最后通过socket发送时,增加了一步将两块内存区域的数据copy到一起的操作,这是额外的开销,但是比起简化的程序复杂度来说还是值得的. 860对指令的控制.参数配置的相关性由底层软件来控制实现,这样可以优化对PC软件的接口. 860工作在参数配置阶段和测试阶段.在测试阶段,860不接收来自PC的参数配置指令,只判断接收部分控制指令.86032的第二参数来表示返回的错误码 0x52 1+5n 参数1:子通道数 参数2:子通道ID号+描述4字节 失败则返回0 查询测试组状态 返回测试组的信息. 异步报告 0x80

1 or 1+12 参数1:报告类型 参数2:附加信息 由一个专门的异步错误报告生成任务处理,当860异常时自动返回向PC报告;

也用于 不等待成功/失败发送数据响应 的数据发送过程,即发送ack选择00时,发送完毕异步返回一个报告,内容同发送成功响应,字段长4+4+4. 异常溢出情况统计表 0x81 实际长度 待定 返回860统计的溢出情况,包括指令缓冲区溢出.需要由PC主动请求发送 注意: 在上下行指令交互中,由于可能会子参数复合在一起,尤其是在参数配置请求/响应指令中,这就需要对里面的每一个子参数靠定位子参数字进行剥离,所以要求子参数子不为零. 数据收发指令:类型0x05 下行:包括发送次数,发送间隔,是否需要确认,发送的数据内容. 上行:包括时戳,通道号,接收数据内容 帧格式 帧格式如下: 帧类型 ID 长度 数据(参数或数据) 1字节 1字节 2字节 若干字节 长度域指示数据域的内容的字节数;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题