一种保证光模块协议数据完整性的方法

文档序号:8004149阅读:236来源:国知局
一种保证光模块协议数据完整性的方法
【专利摘要】本发明涉及一种保证光模块协议数据完整性的方法,主机向光模块发送控制信息,若此时光模块正要更新自身的状态信息,则首先更新完毕自身的状态信息后,再更新主机发送的控制信息。光模块获取自身的状态信息后,首先关闭I2C中断,保证光模块更新自身的状态信息过程中不会被主机发送的控制信息打断,当光模块更新自身的状态信息完成后,响应中断,光模块的协议字节更新主机发送的控制信息。因而,本发明能够保证协议字节包含的控制位和状态位正常更新,不会出现控制位更新不成功的问题,可以保证光通信系统的正常运行。
【专利说明】一种保证光模块协议数据完整性的方法
【技术领域】
[0001]本发明涉及一种光模块数据处理【技术领域】,具体地说,是涉及一种防止光模块旧数据覆盖新数据,保证协议数据完整的方法。
【背景技术】
[0002]光通信领域INF-8077i协议中AO的110、111字节,SFF-8472协议中A2的110字节(下文称为协议字节)包含的数据有控制位和状态位。控制位是指主机通过I2C总线发送给光模块、控制光模块工作的比特位。状态位是光模块检测自身状态并随时更新的比特位。但是,控制位和状态位是存储在一个字节中的。光模块会定时更新协议字节的状态位。主机可以读取协议字节,了解光模块当前的状态信息和被控状态,也可以向光模块写协议字节的控制位,控制光模块的工作状态。协议字节的控制位只有主机通过I2C向协议字节写数据时才可以更改。协议字节的状态位只有光模块可以更改。光模块为了提高对主机的响应速度,都会将I2C总线的处理优先级设为最高级中断,即光模块优先处理主机发送过来的信息。由于光模块和主机都可以对光模块内部的协议字节进行写操作,因而,有可能出现协议字节的控制位被写回旧的控制位的问题,导致新的控制位丢失,使光模块数据不完整。

【发明内容】

[0003]本发明的目的在于提供一种保证光模块数据完整的方法,解决了现有光模块控制位和状态位在一个协议字节中,可能出现协议字节的控制位被写回之前的控制位,出现控制信息丢失,导致主机判定光模块不正常的技术问题。
[0004]为解决上述技术问题,本发明采用以下技术方案予以实现:
一种保证光模块协议数据完整性的方法,主机向光模块发送控制信息,若此时光模块正要更新自身的状态信息,则首先更新完毕自身的状态信息后,再更新主机发送的控制信肩、O
[0005]进一步的,主机向光模块发送控制信息,光模块发生中断,光模块首先处理主机发送的控制信息;若此时光模块正要更新自身的状态信息,则关闭中断,首先更新完毕自身的状态信息后,再更新主机发送的控制信息。
[0006]更进一步的,光模块关闭中断时,设置中断标志位.再进一步的,当光模块更新完毕自身的状态信息后,根据中断标志位再次打开中断,光模块更新主机发送的控制信息。
[0007]其中,光模块更新自身的状态信息前首先获取自身的状态信息。
[0008]优选的,主机向光模块发送的控制信息、光模块自身的状态信息存储为光模块的协议字节。
[0009]优选的,光模块更新自身的状态信息包括如下步骤:
(1)获取协议字节当前值;
(2)将光模块自身的状态信息更新存储至协议字节。[0010]优选的,光模块更新主机发送的控制信息包括如下步骤:
(1)获取协议字节当前值;
(2)将主机发送的控制信息更新存储至协议字节。
[0011]其中,当主机要获取光模块的状态信息时,光模块将协议字节返回给主机,协议字节中包括光模块自身的状态信息和主机发送的控制信息。
[0012]优选的,主机通过I2C总线与光模块通信。
[0013]与现有技术相比,本发明的优点和积极效果是:本发明光模块获取自身的状态信息后,首先关闭I2C中断,保证光模块更新自身的状态信息过程中不会被主机发送的控制信息打断,当光模块更新自身的状态信息完成后,响应中断,光模块的协议字节更新主机发送的控制信息。因而,本发明能够保证协议字节包含的控制位和状态位正常更新,不会出现控制位更新不成功的问题,可以保证光通信系统的正常运行。
[0014]结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
【专利附图】

【附图说明】
[0015]图1为现有技术中正常状态I下协议字节更新的流程图。
[0016]图2为现有技术中正常状态2下协议字节更新的流程图。
[0017]图3为现有技术中正常状态3下协议字节更新的流程图。
[0018]图4为现有技术中异常情况下协议字节更新的流程图。
[0019]图5本发明具体实施例协议字节更新的流程图。
【具体实施方式】
[0020]下面首先对现有技术中光模块协议字节更新过程以及存在的问题进行说明,以便进一步说明本发明的技术方案。
[0021]现有技术中,光模块为了提高对主机的响应速度,都会将对I2C总线的处理优先级设为最高级中断,即优先处理主机发送过来的控制信息。
[0022]如图1所示,当主机没有向光模块发送控制信息,光模块仅仅获取自身的状态信息时,协议字节更新正常,其协议字节更新过程如下:
1、光模块获取自身的状态信息。
[0023]2、光模块获取协议字节当前值。
[0024]3、光模块将协议字节当前值的状态位更新为新获取的光模块自身的状态信息,并存储回协议字节。
[0025]当主机要获取光模块的状态信息时,将该协议字节返回给主机即可,协议字节表达的完全是光模块的最新状态信息。
[0026]如图2所示,当主机向光模块发送控制信息,且发送控制信息的过程发生在光模块协议字节更新状态位之前时,协议字节更新正常,其协议字节更新过程如下:
4、光模块获取自身的状态信息。
[0027]5、主机发送控制信息给光模块。
[0028]6、光模块获取协议字节当前值。[0029]7、将协议字节当前值的控制位更新为主机新发送的控制信息,并存储回协议字节。
[0030]8、光模块获取协议字节当前值。
[0031]9、光模块将协议字节当前值的状态位更新为新获取的光模块自身的状态信息,并存储回协议字节。
[0032]当主机要获取光模块的状态信息时,将该协议字节返回给主机即可,协议字节表达的完全是光模块的最新状态信息。
[0033]如图3所示,当主机向光模块发送控制信息,且发送控制信息的过程发生在光模块协议字节更新状态位之后时,协议字节更新正常,其协议字节更新过程如下:
10、光模块获取自身的状态信息。
[0034]11、光模块获取协议字节当前值。
[0035]12、光模块将协议字节当前值的状态位更新为新获取的光模块自身的状态信息,并存储回协议字节。
[0036]13、主机发送控制信息给光模块。
[0037]14、光模块获取协议字节当前值。
[0038]15、将协议字节当前值的控制位更新为主机新发送的控制信息,并存储回协议字节。
[0039]当主机要获取光模块的状态信息时,将该协议字节返回给主机即可,协议字节表达的完全是光模块的最新状态信息。
[0040]如图4所示,当主机向光模块发送控制信息,且发送控制信息的过程发生在光模块协议字节更新过程中时,协议字节更新不正常,导致主机下发的控制信息丢失的问题,其协议字节更新过程如下:
16、光模块获取自身的状态信息。
[0041]17、光模块获取协议字节当前值。
[0042]18、光模块接收到主机通过I2C总线中断发送过来的控制信息。
[0043]19、光模块获取协议字节当前值。
[0044]20、将协议字节当前值的控制位更新为主机发送的控制信息,并存储回协议字节。
[0045]21、光模块将协议字节当前值(步骤17)的状态位更新为新获取的光模块自身的状态信息,并存储回协议字节。
[0046]因而,中间步骤20处对协议字节控制位的更改就丢失了,造成光模块对协议字节的控制位保存的不对,导致主机认为光模块工作不正常,影响系统的正常运行。
[0047]针对上述问题,本实施例提出了一种保证光模块协议数据完整性的方法,即主机向光模块发送控制信息,光模块发生中断,光模块首先处理主机发送的控制信息;若此时光模块正要更新自身的状态信息,则关闭中断,首先更新完毕自身的状态信息后,再更新主机发送的控制信息。当主机要获取光模块的状态信息时,将协议字节返回给主机即可,因而,本实施例不仅保证了协议数据的完整性,更保证了光通信系统的正常运行。下面对本实施例的实现方式进行具体说明。
[0048]如图5所示,本实施例协议字节更新过程如下:
22、光模块获取自身的状态信息。[0049]23、光模块将正要更新自身的状态信息,关闭中断,设置中断标志位。
[0050]24、光模块获取协议字节当前值。
[0051]25、光模块将协议字节当前值的状态位更新为新获取的光模块自身的状态信息,并存储回协议字节。
[0052]26、根据中断标志位开启中断。
[0053]27、主机发送控制信息给光模块,光模块接收主机发送给光模块的控制信息。
[0054]28、光模块获取协议字节当前值。
[0055]29、将协议字节当前值的控制位更新为主机新发送的控制信息,并存储回协议字节。
[0056]当主机要获取光模块的状态信息时,光模块将协议字节返回给主机,协议字节中包括光模块自身的状态信息和主机发送的控制信息。
[0057]因而,从上述更新过程可以看出,无论何时主机向光模块发送获取光模块的状态信息的请求,由于光模块在更新自身的状态信息时屏蔽该中断请求,当更新完毕自身的状态信息后,再更新主机发送的控制信息。因而,本发明不会造成数据的丢失,保证了光模块数据的完整性,保证了光模块通信系统的正常运行。
[0058]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种保证光模块协议数据完整性的方法,其特征在于:主机向光模块发送控制信息,若此时光模块正要更新自身的状态信息,则首先更新完毕自身的状态信息后,再更新主机发送的控制信息。
2.根据权利要求1所述的保证光模块协议数据完整性的方法,其特征在于:所述主机向光模块发送控制信息,光模块发生中断,光模块首先处理主机发送的控制信息;若此时光模块正要更新自身的状态信息,则关闭中断,首先更新完毕自身的状态信息后,再更新主机发送的控制信息。
3.根据权利要求2所述的保证光模块协议数据完整性的方法,其特征在于:所述光模块关闭中断时,设置中断标志位。
4.根据权利要求3所述的保证光模块协议数据完整性的方法,其特征在于:当光模块更新完毕自身的状态信息后,根据中断标志位再次打开中断,光模块更新主机发送的控制信息。
5.根据权利要求1所述的保证光模块协议数据完整性的方法,其特征在于:所述光模块更新自身的状态信息前首先获取自身的状态信息。
6.根据权利要求1-5任意一项所述的保证光模块协议数据完整性的方法,其特征在于:所述主机向光模块发送的控制信息、光模块自身的状态信息存储为光模块的协议字节。
7.根据权利要求6所述的保证光模块协议数据完整性的方法,其特征在于:所述光模块更新自身的状态信息包括如下步骤: (1)获取协议字节当前值; (2)将光模块自身的状态信息更新存储至协议字节。
8.根据权利要求6所述的保证光模块协议数据完整性的方法,其特征在于:所述光模块更新主机发送的控制信息包括如下步骤: (1)获取协议字节当前值; (2)将主机发送的控制信息更新存储至协议字节。
9.根据权利要求6所述的保证光模块协议数据完整性的方法,其特征在于:当所述主机要获取光模块的状态信息时,将协议字节返回给主机。
10.根据权利要求1-5、7-8任意一项所述的保证光模块协议数据完整性的方法,其特征在于:所述主机通过I2C总线与光模块通信。
【文档编号】H04B10/25GK103441992SQ201310352255
【公开日】2013年12月11日 申请日期:2013年8月14日 优先权日:2013年8月14日
【发明者】徐建帅 申请人:青岛海信宽带多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1