嵌入式系统的通信规约管理平台设计
2.1 规约说明书
规约说明书由基本情况表、静态描述表、动态描述表、逻辑规则表构成。静态描述表由控制元素对象中不随时间变化而变化的属性信息及其它信息组成;动态描述表用于描述随时间不断变化的控制元素和数据元素信息及其它信息;逻辑描述表由命令应答关系表、应答命令表、时间规则表、优先级规则表、筛选规则表和二级封装规则表组成。
(1)基本情况表
包括规约名称、最大帧长、数据对象个数、命令对象个数和状态指示对象个数,如图3(a)所示。
(2)静态描述
由同步字、传输方向、源地址、结束符及其它6种数据对象构成,如图3(b)所示。同步字标志一帧数据的开始;传输方向说明当前是工作在控制方向还是标志测方向;源地址说明报文的发送设备地址;结束符标志一帧报文的尾;其它对象指向所有不在上述静态描述之中的控制元素对象链的队首。静态描述中的每个控制元素对象都有本规约内全局统一的标识号(ID)。
(3)动态描述
用于描述随时间具体因素控制而不断变化的信息,它包括帧号对象、校验码对象、报文长度对象、数据对象、请求命令对象、应答命令对象、目的地址对象及其它对象,如图3(c)所示。帧号是完整报文的分帧传送,规约规定的报文帧的帧长是有限的;超限时分帧传送,发送方指明帧号,接受方按帧号重新组装。校验码对象用于传输差错控制,检验一帧报文的合法性。报文长度对象管理并指明有效数据的长度。数据对象按应答命令对象指明的类型组织该类数据。目的地址对于控制方向,指明服务的设备地址,它可能向多个设备轮流请求;对于监测方向,指明请求服务的设备地址。数据对象取决于具体规约的定义。应答命令对换快捷指明应答数据对象的类型。请求命令对象指明控制方向,向目的设备下发请求数据状态对象命令,并组织报文帧。应答命令对象和请求命令对象管理的措施与数据状态对象相同。当然,应答数据状态表和请求命令表是静态的,在此便于说明;而数据状态对象表是动态的。
动态描述中的控制元素对象和数据元素对象也都由本规约内全局统一的ID号来识别;ID号由ID注册管理程序生成,填写规约自己所赂的ID注册表。
(4)静态对象和动态对象公有的属性
①顺序号对象:如前所述,它指明某一元素对象在报文流中的起始位置和所占的连续二进制位数。
②ID号对象是全局统一的,它由六段依次连接而成,即一段、二段、三段、四段、五段、六段。根据ID可以识别提取不同的元素对象,它是各控制元素和数据元素的唯一标识。
一段是注册后的规约ID号,高段的位数由规约ID号位数决定。二段是区分上行与下行,用一位二进制位就可区分。三段用于说明具体的规约是否含有对应的元素对象,它说明的是有与无。四段用于区分源地址、目的地址、传输方向、同步字、其它静态对象、帧号、校验码、报文长度、请求命令符、应答命令符、其它动态对象和数据对象,共12种,用4位二进制位就可区分。五段用于说明四段之中的每一种是否具有原子性,比如同步字就具有原子性。当子种类多于一个同步字时,也相当于一个,要发就全发,不可分割;而请求命令符就不具有原子性,只能发出其子种类之中的一种。原子性是个布尔量,一位二进制就可描述。六段用于说明当上述12种之中任一种超过一个时,就可用第5段描述,比如同步字6个,就得用三位,选取上述12种之中子种类最多的一个和为第五段的位数。
③拷贝、赋值、被拷贝:在报文流中的其它类元素对象中,当出现与已有定义的控制元素对象表示值重复时,引进对象的拷贝与被拷贝属性。赋值属性说明该元素指的是已独立的定义值。相应的,引入拷贝与赋值操作。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(5)逻辑描述信息
逻辑描述信息由下列表构成:
①控制方发送的命令被监测方收到后,监测方予以应答的数据对象ID对应关系表;
②控制方收到监测方的状态指示后,控制方应响应的发送命令ID对应关系表;
③控制方发送轮询命令ID时间间隔表;
④控制方的人工干预控制命令ID表;
⑤监测方的主动上报数据表、状态ID表;
⑥控制方发送命令ID优先级的规则表;
⑦监测方应答数据与主动上报的ID优先级规则表;
⑧二级封装规则表。
2.2 规约控制埠CPCB
通信平台的某一通信进程在运行时,如未匹配通信规约,则运行空规约。如收到控制台发来的匹配命令,则从规约注册表中提取规约说明书,并从空白CPCB链表中摘下一个,将它链入运行CPCB链表,按照规约说明书的内容填写该CPCB,填写完毕即投入运行。这样,在逻辑规则的控制下,各静态对象和动态对象各司其职而又发送消息协同工作,整个平台就会有条不紊地动作。