094]I H->MI I M->H
[0095]<IdleX32-bit PreambleXOOXlOXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0096]......
[0097]......
[0098]4、讀地址8000h+n寄存器的數(shù)據(jù)(最后一幀)
[0099]第 η+1 幀
[0100]I Η->ΜI I Μ->Η
[0101]<IdleX32-bit PreambleXOOXlOXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0102]5、發(fā)送83FFh寄存器的地址幀
[0103]第n+2 幀
[0104]I H->MI I M->H
[0105]<IdleX32-bit PreambleXOOXOOXAAAAAXOOOOlXlOXlOlI 0110 1111llllXIdle〉
[0106]6、讀地址83FFh寄存器的數(shù)據(jù)
[0107]第n+3 幀
[0108]I H->MI I M->H
[0109]<IdleX32-bit PreambleXOOXllXAAAAAXOOOOlXZOXDDDD DDDD DDDDDDDDXidle〉
[0110]本操作結(jié)束。
[0111]應(yīng)用場(chǎng)景三:寫(xiě)數(shù)據(jù)操作的情況。
[0112]寫(xiě)數(shù)據(jù)操作的情況下:加校驗(yàn)的寫(xiě)數(shù)據(jù)操作由4幀的結(jié)構(gòu)組成,幀用于校驗(yàn)時(shí)在主機(jī)和光模塊分別計(jì)算校驗(yàn)值以進(jìn)行校驗(yàn)操作。主機(jī)先發(fā)送幀給光模塊,第I幀的OP為地址,為了描述方便及便于區(qū)分,也可以稱(chēng)為第一地址碼,數(shù)據(jù)凈荷域?yàn)楣饽K寄存器地址,為了描述方便及便于區(qū)分,也可以稱(chēng)為寫(xiě)操作的第一寄存器地址;第2幀的OP為寫(xiě)操作(ObOl),為了描述方便及便于區(qū)分,也可以稱(chēng)為第一寫(xiě)操作碼;數(shù)據(jù)凈荷域?yàn)橐獙?xiě)的寄存器內(nèi)容;同時(shí),光模塊計(jì)算出這2幀的CRC-16校驗(yàn)值;第3幀的OP為地址,為了描述方便及便于區(qū)分,也可以稱(chēng)為第二地址碼,數(shù)據(jù)凈荷域?yàn)樾r?yàn)值存放的寄存器地址83FEh,為了描述方便及便于區(qū)分,也可以稱(chēng)為寫(xiě)操作的第二寄存器地址;第4幀的OP為寫(xiě)操作,為了描述方便及便于區(qū)分,也可以稱(chēng)為第二寫(xiě)操作碼,數(shù)據(jù)凈荷域?yàn)橹鳈C(jī)計(jì)算出的前2幀的CRC-16的校驗(yàn)值。4幀都發(fā)送完畢后,加校驗(yàn)寫(xiě)操作結(jié)束。模塊將自己計(jì)算的校驗(yàn)值與83FEh中的值進(jìn)行比較。如果有錯(cuò)誤,置位A021h的bitO為I。此位將引發(fā)告警產(chǎn)生。主機(jī)根據(jù)告警信息,可重新進(jìn)行寫(xiě)操作。對(duì)此光模塊也可以用其他方式通知主機(jī)。
[0113]在實(shí)際應(yīng)用中,H指代主機(jī)(host), M指代光模塊(optical module),寫(xiě)數(shù)據(jù)操作的示例參數(shù)為:
[0114]設(shè)置CFP光模塊光發(fā)送通道。向發(fā)送通道設(shè)置寄存器MOOh寫(xiě)入期望的波長(zhǎng)0012h(第18波)。將計(jì)算得到的CRC-16的校驗(yàn)值放入寄存器83FEh??梢苑纸鉃橄铝袃?nèi)容:
[0115]1、發(fā)送地址幀MOOh
[0116]第I幀
[0117]I H->M
[0118]〈Idle>〈32-bitPreamble>〈00X00>〈AAAAA>〈00001>〈10>〈1011010000000000>〈Idle>
[0119]2、發(fā)送數(shù)據(jù)幀0012h
[0120]第2幀
[0121]I H->M
[0122]〈Idle>〈32-bitPreamble>〈00X01>〈AAAAA>〈00001>〈10>〈0000000000010010>〈Idle>
[0123]3、發(fā)送地址幀83FEh
[0124]第3幀
[0125]I H->M
[0126]<IdleX32-bit PreambleXOOXOOXAAAAAXOOOOlXlOXlOlI 0110 11111110XIdle>
[0127]4、發(fā)送數(shù)據(jù)幀(前2幀數(shù)據(jù)凈荷的CRC-16的校驗(yàn)值)8805h
[0128]第4幀
[0129]I H->M
[0130]<Idle><32-bitPreamble><00><01XAAAAA><00001X10X1000 1000 00000101>〈Idle>
[0131]本操作結(jié)束。
[0132]這里需要指出的是,校驗(yàn)值的算法可以有多種形式,不受本文內(nèi)容的限制,本文采用的是CRC-16。校驗(yàn)值存放的寄存器地址也不限于本文所用地址的寄存器(寄存器地址83FEh),可根據(jù)情況選擇使用。
[0133]本發(fā)明實(shí)施例的裝置如圖3所述,包括傳輸模塊和校驗(yàn)及決策模塊,其中傳輸模塊主要用于在主機(jī)與光模塊之間互傳所述幀,即用于發(fā)送至少一個(gè)幀,主機(jī)根據(jù)所述幀攜帶的操作碼來(lái)指示對(duì)光模塊執(zhí)行讀數(shù)據(jù)操作或連續(xù)讀數(shù)據(jù)操作或?qū)憯?shù)據(jù)操作。所述校驗(yàn)及決策模塊主要用于在主機(jī)側(cè)或在光模塊側(cè)進(jìn)行針對(duì)幀的校驗(yàn)及決策是否進(jìn)行重新讀數(shù)據(jù)操作,連續(xù)讀數(shù)據(jù)操作及寫(xiě)數(shù)據(jù)操作的處理,即用于所述幀為至少一個(gè),所述幀用于校驗(yàn)時(shí)在所述主機(jī)和所述光模塊側(cè)分別計(jì)算校驗(yàn)值,根據(jù)校驗(yàn)值比對(duì)的結(jié)果判斷校驗(yàn)值的正確與否,決定是否需要進(jìn)行重復(fù)所述讀數(shù)據(jù)操作或連續(xù)讀數(shù)據(jù)操作或?qū)憯?shù)據(jù)操作。
[0134]具體地,分為以下三個(gè)場(chǎng)景分別描述:
[0135]應(yīng)用場(chǎng)景1:執(zhí)行所述讀數(shù)據(jù)操作情況。
[0136]所述傳輸模塊,進(jìn)一步用于所述幀攜帶的操作碼包含第一地址碼時(shí),指示讀操作的第一寄存器地址;所述幀攜帶的操作碼包含第一讀操作碼時(shí),指示讀出第一寄存器數(shù)據(jù);
[0137]相應(yīng)地,所述校驗(yàn)及決策模塊,進(jìn)一步用于在光模塊側(cè)根據(jù)讀取的所述第一寄存器地址和所述第一寄存器數(shù)據(jù)計(jì)算校驗(yàn)值。
[0138]所述傳輸模塊,還用于所述幀攜帶的操作碼包含第二地址碼時(shí),指示讀操作的第二寄存器地址;所述幀攜帶的操作碼包含第二讀操作碼時(shí),指示讀出第二寄存器地址中的所述校驗(yàn)值;
[0139]相應(yīng)地,所述校驗(yàn)及決策模塊,還用于指示讀操作的第二寄存器地址時(shí),光模塊將計(jì)算得到的校驗(yàn)值寫(xiě)入所述第二寄存器地址;在主機(jī)側(cè)將其計(jì)算的校驗(yàn)值與從所述第二寄存器地址讀取的校驗(yàn)值進(jìn)行校驗(yàn)值比對(duì),如果校驗(yàn)值一致,結(jié)束當(dāng)前流程,否則,傳輸有誤,需重復(fù)所述讀數(shù)據(jù)操作。
[0140]應(yīng)用場(chǎng)景2:執(zhí)行所述連續(xù)讀數(shù)據(jù)操作情況。
[0141]所述傳輸模塊,進(jìn)一步用于所述幀攜帶的操作碼包含地址碼時(shí),指示連續(xù)讀操作的寄存器地址;所述幀攜帶的操作碼包含連續(xù)讀操作碼時(shí),指示讀出寄存器數(shù)據(jù);
[0142]相應(yīng)地,所述校驗(yàn)及決策模塊,進(jìn)一步用于主機(jī)直接連續(xù)讀取寄存器數(shù)據(jù)直至后續(xù)幀的操作碼不為所述連續(xù)讀操作碼為止;光模塊在主機(jī)連續(xù)讀取寄存器數(shù)據(jù)同時(shí)根據(jù)每一幀讀取的寄存器地址和寄存器數(shù)據(jù)連續(xù)計(jì)算校驗(yàn)值,每當(dāng)完成一幀的讀取就將計(jì)算得到的校驗(yàn)值寫(xiě)入存放校驗(yàn)值的寄存器地址。
[0143]所述校驗(yàn)及決策模塊,還用于主機(jī)連續(xù)讀操作結(jié)束后,讀取存放校驗(yàn)值的寄存器地址,在主機(jī)側(cè)將其計(jì)算的校驗(yàn)值與從所述存放校驗(yàn)值的寄存器地址讀取的校驗(yàn)值進(jìn)行校驗(yàn)值比對(duì),如果校驗(yàn)值一致,結(jié)束當(dāng)前流程,否則,傳輸有誤,需重復(fù)所述連續(xù)讀數(shù)據(jù)操作。
[0144]應(yīng)用場(chǎng)景3:執(zhí)行所述寫(xiě)數(shù)據(jù)操作情況。
[0145]所述傳輸模塊,進(jìn)一步用于所述幀攜帶的操作碼包含第一地址碼時(shí),指示寫(xiě)操作的第一寄存器地址;所述幀攜帶的操作碼包含第一寫(xiě)操作碼時(shí),指示需寫(xiě)入的第一寄存器數(shù)據(jù);
[0146]相應(yīng)地,所述校驗(yàn)及決策模塊,進(jìn)一步用于指示需寫(xiě)入的第一寄存器數(shù)據(jù);在光模塊側(cè)根據(jù)所述第一寄存器地址和所述第一寄存器數(shù)據(jù)計(jì)算校驗(yàn)值。
[0147]所述傳輸模塊,還用于所述幀攜帶的操作碼包含第二地址碼時(shí),指示第二寄存器地址,所述第二寄存器地址為主機(jī)計(jì)算得到校驗(yàn)值存放的寄存器地址;所述幀攜帶的操作碼包含第二寫(xiě)操作碼時(shí),指示將主機(jī)計(jì)算得到校驗(yàn)值寫(xiě)入第二寄存器地址中;
[0148]相應(yīng)地,所述校驗(yàn)及決策模塊,還用于在光模塊側(cè)將其計(jì)算