基于管理数据输入输出多源协议的传输方法及装置的制造方法_2

文档序号:8265156阅读:来源:国知局
]所述传输模块,进一步用于所述帧携带的操作码包含第一地址码时,指示写操作的第一寄存器地址;所述帧携带的操作码包含第一写操作码时,指示需写入的第一寄存器数据;
[0045]所述校验及决策模块,进一步用于指示需写入的第一寄存器数据;在光模块侧根据所述第一寄存器地址和所述第一寄存器数据计算校验值;
[0046]所述传输模块,还用于所述帧携带的操作码包含第二地址码时,指示第二寄存器地址,所述第二寄存器地址为主机计算得到校验值存放的寄存器地址;所述帧携带的操作码包含第二写操作码时,指示将主机计算得到校验值写入第二寄存器地址中;
[0047]所述校验及决策模块,还用于在光模块侧将其计算的校验值与从所述第二寄存器地址读取的校验值进行校验值比对,如果校验值一致,结束当前流程,否则,传输有误,需重复所述写数据操作。
[0048]本发明的方法是发送至少一个帧,主机根据所述帧携带的操作码来指示对光模块执行读数据操作或连续读数据操作或写数据操作;所述帧用于校验时在所述主机和所述光模块侧分别计算校验值,根据校验值比对的结果判断校验值的正确与否,决定是否需要进行重复所述读数据操作或连续读数据操作或写数据操作。采用本发明的方法,由于存在校验机制,因此,至少解决了主机与光模块间出现传输错误也无法及时纠正的问题,提高了通讯可靠性。
【附图说明】
[0049]图1为现有MD1帧的帧结构示意图;
[0050]图2为本发明方法原理的流程图;
[0051]图3为本发明系统的基本组成结构示意图。
【具体实施方式】
[0052]下面结合附图对技术方案的实施作进一步的详细描述。
[0053]本发明实施例的方法为采用CFP MD1 MSA通讯协议的传输校验方案,能提高通讯可靠性,提高了数据传输的正确性和可靠性,防止报文丢失和出错。本实施例是主机和光模块之间配合操作来实现的,主机作为发送方,发送帧并携带控制指令(如操作码实现的控制指令),光模块作为接收方,接收帧,根据读取的控制指令(如操作码实现的控制指令)执行对应的操作。而且,帧中包括校验帧,主机和光模块基于校验帧是基于一样的数据和校验算法所做的校验计算,以便进行主机和光模块分别计算得到的校验值的比对,如果校验值一致,则结束当前校验操作,否则,继续执行校验操作。
[0054]具体地,例如可以针对16-bit地址和数据,进行地址和数据内容校验、或仅对数据内容校验、或对完整的32-bit的帧进行前两种校验。在完成标准读、或标准写、或连续读操作后,增加一校验帧,并根据校验值的正确与否,决定是否需要进行重复前一操作,其流程如图2所示,加校验的读或写或连续读操作流程图包括以下步骤:
[0055]步骤101、主机开始对光模块执行读数据操作或连续读数据操作或写数据操作,发送对应的巾贞给光模块。
[0056]步骤102、接收对应帧,根据操作码实现的控制指令执行对应的操作,帧用于校验时进行校验操作。
[0057]步骤103、比对在主机侧和光模块侧分别计算得到的校验值是否匹配,如果校验值一致,说明校验值正确,结束当前校验流程,否则,校验值不一致,说明校验值不正确,转入执行步骤101,继续当前读数据操作或连续读数据操作或写数据操作。
[0058]以下分本发明实施例的各个具体应用场景分别阐述如下:
[0059]应用场景一:读数据操作的情况。
[0060]读数据操作的情况下:加校验的读操作是由4个帧组成,帧用于校验时在主机和光模块分别计算校验值以进行校验操作。主机先发送帧给光模块,前2帧同标准的读操作,即:第I帧操作码OP为地址(ObOO),为了描述方便及便于区分,也可以称为第一地址码,数据净荷为读操作的寄存器地址,为了描述方便及便于区分,也可以称为读操作的第一寄存器地址;第2帧的操作码OP为读操作码(Obll),为了描述方便及便于区分,也可以称为第一读操作码,读出寄存器数据。光模块通过对读取的16-bit地址和数据,进行校验值计算,并将计算的校验值写入寄存器83FFh,为了描述方便及便于区分,也可以称为读操作的第二寄存器地址,同时,主机也计算出校验值。第3帧操作码OP为地址(ObOO),为了描述方便及便于区分,也可以称为第二地址码,数据净荷为寄存器地址83FFh,为了描述方便及便于区分,也可以称为读操作的第二寄存器地址;第4帧的操作码OP为读操作码(Obll),为了描述方便及便于区分,也可以称为第二读操作码,读出寄存器83FFh的数据,即光模块计算得到的且写入寄存器83FFh的上述校验值,主机将其计算出的校验值,与其所读取的寄存器83FFh的校验值进行比较。如果校验值不相等,说明校验值错误,数据传输有误,需要纠正,则主机重新进行读数据操作。
[0061]在实际应用中,H指代主机(host), M指代光模块(optical module),读数据操作的示例参数为:
[0062]读取9000h起始的模块参数,可以分解为下列内容:
[0063]1、发送地址帧9000h
[0064]第I 帧
[0065]I H->M
[0066]<IdleX32-bit PreambleXOOXOOXAAAAAXOOOOlXlOXlOOl 0000 0000OOOOXidle〉
[0067]2、读地址9000h寄存器的数据
[0068]第2 帧
[0069]I H->MI I M->H
[0070]<IdleX32-bit PreambleXOOXllXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0071]3、发送83FFh寄存器的地址帧
[0072]第3 帧
[0073]I H->MI I M->H
[0074]<IdleX32-bit PreambleXOOXOOXAAAAAXOOOOlXlOXlOlI 0110 1111llllXIdle〉
[0075]4、读地址83FFh寄存器的数据
[0076]第4 帧
[0077]I H->MI I M->H
[0078]<IdleX32-bit PreambleXOOXllXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0079]本次操作结束。
[0080]应用场景二:连续读数据操作的情况。
[0081]连续读数据操作的情况下:加校验的连续读操作。帧为至少一个,帧用于校验时在主机和光模块分别计算校验值以进行校验操作。主机先发送帧给光模块,第I帧同标准读操作,数据净荷为读操作的寄存器地址;第2帧的操作码为连续读操作码(OblO),读出对应寄存器的内容数据,同时光模块内部将下一个寄存器地址处的数据放到缓冲区中,等待下一帧来被读取;第3帧主机直接读取寄存器数据;以此类推,直到帧操作码不为连续读操作码(OblO)为止。光模块在主机连续读操作的同时连续计算校验值,每完成一帧读,就将计算出的校验写入83FFh。主机连续读操作结束后,读取该寄存器(操作方式与读操作同),主机根据算出的校验值和读到的校验值进行比较,如果有误进行重读。
[0082]在实际应用中,H指代主机(host), M指代光模块(optical module),连续读数据操作的示例参数为:
[0083]读取SOOOh起始的模块参数,可以分解为下列内容:
[0084]1、发送地址帧8OOOh
[0085]第I 帧
[0086]I H->M
[0087]<IdleX32-bit PreambleXOOXOOXAAAAAXOOOOlXlOXlOOO 0000 0000OOOOXidle〉
[0088]2、读地址8000h寄存器的数据
[0089]第2 帧
[0090]I H->MI I M->H
[0091]<IdleX32-bit PreambleXOOXlOXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0092]3、读地址800 Ih寄存器的数据
[0093]第3 帧
[0
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1