批量读取以太网卡光模块中数字诊断信息的装置及方法

文档序号:9546870阅读:1221来源:国知局
批量读取以太网卡光模块中数字诊断信息的装置及方法
【技术领域】
[0001]本发明涉及光通信技术领域,尤其涉及一种批量读取以太网卡光模块中数字诊断信息的装置及方法。
【背景技术】
[0002]在一块8端口 GE(Gigabit Ethernet,千兆以太网)的上联卡上,有8个光模块,光模块的设备地址是固定的,不可设,即8个光模块拥有相同的I2C设备地址,,每个光模块都通过一个1?接口和主控CPU通信。
[0003]光模块有两个存储区,第一块存储区的I2C设备地址是AOh,简称A0表格,第二块存储的I2C设备地址是A2h,简称A2表格。
[0004]A0表格存储的主要是模块的一些类型信息,比如光模块的封装、发射波长、传输距离、速率、厂家信息、模块型号以及生产日期和序列号等。A0表格还有一些空白保留的字节,这些是留给生产厂家自定义使用以及后续协议增加新的功能使用的。
[0005]A2表格里面的第95至118字节中的内容是光模块的实时数字诊断信息,其中包括5个工作物理量:
[0006]1.工作电压;
[0007]2.工作温度;
[0008]3.激光器偏置电流;
[0009]4模块发射光功率;
[0010]5.模块接收光功率。
[0011]在工作过程中,CPU经常要查询这5个工作物理量来获取光通信的实时信息。
[0012]在一块8端口的GE上联卡上,8个光模块的1?设备地址都是AOh和A2h。CPU要想获取光模块的信息,需不同的I2C总线分别和8个光模块通信。
[0013]目前读取光模块信息时,主要通过CPLD将CPU的I2C接口的串行时钟线SCL的时钟信号分为8个独立的时钟信号后分别送到8个光模块,CPLD内设8比特时钟选通位寄存器,每个寄存器位对应一个光模块的时钟选通信号,当寄存器的选通位为‘1’时,相对应的光模块的时钟信号选通,可对该光模块进行读取操作;当寄存器选通位为‘0’时,相对应的光模块的时钟信号断开,不能对该光模块进行读操作。
[0014]CPU通过高速并行总线来写CPLD的时钟选通位寄存器,当需要访问某个光模块时,将相应的时钟选通位写‘1’,其它时钟选通寄存器位写‘0’,通过I2C节后完成对这个光模块的的操作。
[0015]由于1?总线是低速总线,速率是ΙΟΟΚΗζ和400KHz可选,即在1?器件支持的情况下,最高速率也只有400KHz,即一个时钟周期为2.5uS0 一次I2C总线的操作时序约30个时钟周期。
[0016]CPU读光模块的实时数字诊断信息时,不能直接地同时和8个光模块通信,是轮流将每路光模块的1?时钟选通,分别读出各光模块数据的,系统需要实时地获取光模块诊断信息以了解光模块及光线路上的工作状态,CPU需频繁地操作I2C总线,占用了较多的CPU资源,系统工作效率低下。

【发明内容】

[0017]本发明的目的是为解决目前CPU读光模块的实时数字诊断信息时,不能直接地同时和多个光模块通信,而需轮流将每路光模块的I2c时钟选通,分别读出各光模块数据,需频繁地操作I2C总线,占用了 CPU资源多,系统工作效率低下的技术问题。
[0018]为了解决上述技术问题,一方面,本发明提供一种批量读取以太网卡光模块中数字诊断信息的装置,所述光模块具有多个,其特征在于,所述装置用于一次同时读取各所述光模块,包括CPU和CPLD,所述CPU具有I2C接口,所述I2C接口的串行数据线连接到各所述光模块的I/o端口,所述I2C接口的串行时钟线连接到所述CPLD,所述CPLD适于将所述串行时钟线上的串行时钟信号转换成多路并行时钟信号,所述多路并行时钟信号分别连接到各所述光模块的时钟信号输入端;所述CPLD适于选通各所述光模块的时钟信号并适于定位各所述光模块的设备地址及光模块的寄存器地址,所述CPU根据所述光模块的设备地址及光模块的寄存器地址同时读取各所述光模块寄存器中的数字诊断信息;
[0019]所述多路并行时钟信号具有同步的写操作时序、异步的写操作应答时序和异步的读操作时序;所述写操作时序为所述CPLD向各所述光模块传送数据的时序,所述写操作应答时序为各所述光模块接收到数据后向所述CPU反馈应答信号的时序,所述读操作时序为所述CPU读取各所述光模块中寄存器数据的时序。
[0020]进一步地,所述CPLD包含存储有光模块设备地址及操作码的寄存器A、存储有光模块寄存器地址的寄存器组B、存储有各光模块时钟信号选通位的寄存器C和光模块并行时钟生成模块;
[0021 ] 所述寄存器A为8位,其中所述光模块设备地址占据高7位,所述操作码位于最低位,所述操作码为读写操作控制码;所述寄存器A通过并行总线连接到所述CPU,所述CPU通过所述I2C接口的串行数据线将所述寄存器A的数据发送至各所述光模块;
[0022]所述寄存器组B包含多个寄存器Bn,各所述寄存器Bn分别存储有不同光模块寄存器的地址;所述光模块寄存器中存储有数字诊断信息;所述寄存器组B通过并行总线连接到所述CPU,所述CPU通过所述I2C接口的串行数据线将所述寄存器组B的数据发送至各所述光模块;
[0023]所述CPU通过并行总线将光模块时钟信号选通位写入所述寄存器C,所述I2C接口的串行时钟线和所述寄存器C分别连接到所述光模块并行时钟生成模块,所述光模块并行时钟生成模块的并行时钟信号输出端连接到各所述光模块的时钟信号输入端。
[0024]另一方面,本发明提供一种批量读取以太网卡光模块中数字诊断信息的方法,所述光模块具有多个,所述方法用于一次同时读取各所述光模块,包括如下步骤:
[0025](1) CPU产生数据传输启动信号;
[0026](2) CPLD通过所述CPU的I2C接口的串行数据线向各所述光模块同时传送光模块的设备地址和读操作的操作码,向各所述光模块传送光模块的设备地址和读操作的操作码使用的时钟信号具有同步的时序;
[0027](3)各所述光模块成功接收所述光模块的设备地址和读操作的操作码后向所述CPU反馈第一应答信号,各所述光模块向所述CPU反馈第一应答信号使用的时钟信号具有异步的时序;
[0028](4)所述CPLD通过所述CPU的I2C接口的串行数据线向各所述光模块同时传送光模块的寄存器地址,向各所述光模块传送光模块的寄存器地址使用的时钟信号具有同步的时序;
[0029](5)各所述光模块成功接收所述光模块的寄存器地址后向所述CPU反馈第二应答信号,各所述光模块向所述CPU反馈第二应答信号使用的时钟信号具有异步的时序;
[0030](6)各所述光模块向所述CPU的I2C接口的串行数据线传送所述光模块的寄存器中的数字诊断信息,各所述光模块向所述CPU传送所述数字诊断信息使用的时钟信号具有异步的时序;
[0031](7)所述CPU成功接收所述数字诊断信息后向各所述光模块反馈第三应答信号;
[0032](8)所述CPU产生数据传输停止信号,完成一次数据读取。
[0033]进一步地,所述步骤(2)中,所述CPU通过I2C接口的串行数据线SDA向各所述光模块同时传送七位设备地址“ 1010001”和一位读操作的操作码“ 1 ”。
[0034]进一步地,所述步骤(3)中,各所述光模块分别在各自时钟的低电平期间,将低电平的所述第一应答信号送到所述i2c接口的串行数据线上。
[0035]进一步地,所述步骤(5)中,各所述光模块分别在各自时钟的低电平期间,将低电平的所述第二应答信号送到所述i2c接口的串行数据线上。
[0036]进一步地,所述步骤(6)中,各所述光模块在各自时钟信号的前8个低电平期间将一个字节的数字诊断信息送到所述CPU的I2C接口的串行数据线SDA上,在各自时钟信号的第9个低电平期间,释放所述数据线SDA。
[0037]进一步地,所述步骤(7)中,所述CPU通过拉低I2C接口的串行数据线SDA上的电平向各光模块反馈所述第三应答信号。
[0038]进一步地,所述步骤⑶中,所述CPU在I2C接口的串行时钟线SCL保持高电平期间,释放串行数据线SDA,使得串行数据线SDA返回高电平,通过串行数据线SDA发生正跳变产生数据传输停止信号。
[0039]本发明利用多个光模块的I2C设备地址相同的特点,通过CPLD中的光模块并行时钟生成模块产生的1?串行时钟时序,该时序能保证多个光模块向同一 I2C串行数据线传送数据的时候时序错开,总线不冲突,实现批量一次同时读取多个光模块的数字诊断信息的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1