qt2025读取光强
Posted xinyin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt2025读取光强相关的知识,希望对你有一定的参考价值。
QT2025基本知识
1、配置OP_MODE_CONFIG(位于Device Configuration Register)为0x7,这样就使得PHY处于SFP+的自行配置模式。在上电、重启或者热插拔事件发生时能够自动识别PHY的类型,并且配置PHY到正确的运行模式。Device Configuration Register的明细如下:
2、当外部没有光模块时,qt2025将进入低功耗模式,此时所有的告诉I/O都被关掉。只有MDIO端口保证正常运行。
3、PHY通过读取光模块的A0内存来识别光模块类型,该内存会在光模块插拔或者重启之后进行读取。有一个特殊的bits用来决定模块类型和优先级顺序,如下表所示。
4、PHY也会校验Byte0返回3且Byte1返回4,当返回值都不是这两个值时,表明该光模块类型未识别。
5、能够通过读取寄存器3.D70Ch获得当前PHY运行在哪种模式下,具体如下表所示。该寄存器仅仅在设置为Self-configure 模式时才有效,在其他模式下,该寄存器未初始化,返回随机值。
6、EEPROM_NVR_DATA_REG寄存器:在硬件复位或软复位之后,PHY自动加载连接在EEPROM_I2C总线上的I2C设备的A0地址的数据。 A0地址的数据将被复制到1.8007~1.8106的内存(该内存空间占用的是EEPROM_NVR_DATA_REG寄存器的地址)。同时将占据DOM_CAPABILITY_REG和BOOT_EEPROM_REG寄存器。如果BOOT_EEPROM_REG寄存器被使能,BOOT EEPROM内存将被读取并且任何有效的命令将被读取。
7、DOM_CAPABILITY_REG寄存器:该寄存器使能访问外围的I2C设备,该设备已经存储了诊断光学跟踪数据。寄存器说明如下:
8、在BOOT_CTRL_REG寄存器的DOM_MODE段设置将光模块的A2内存放置到MDIO内存的范围。
2、通过QT2025读取光模块流程
①、模块热插拔自动识别:
当发现插入光模块的时候,无论是在forced mode还是Self-Configure模式,固件都将加载光模块的A0内存和A2内存(如果存在)到QT2025的镜像内存中。该镜像内存能够通过MDIO寄存器访问。A0镜像内存的MDIO地址为3.D000~3.D0FF,A2镜像内存的MDIO地址由DOM_MODE(位于BOOT_CTRL_REG寄存器)的值决定。
A0和A2的内存数据能够通过I2C Hotplug Status Register进行查询,该寄存器仅仅报告光模块的传输状态。该寄存器如下:
LASI中断被用来指明光模块由于插入或者拔出导致的状态变化。这些中断在forced mode和self-configure mode下都能够使用。
特殊情况:如果使能了PMA System Loopback,那么当有光模块插拔时该事件将被固件忽略。
选择和读取光模块数据的细节如下:
DOM Alarm Process
当检测到一个SFP+光模块时,固件将通过I2C总线加载光模块的A2内存到QT2025中。如果DOM_MODE(3.27bit 7)被设置为0,A2内存将被传输到MDIO地址:1.8007~1.8106。如果DOM_MODE设置为1,A2内存将被传输到MDIO地址:1.A000~1.A0FF设备中。
如果A2内存被存储在了1.A000~1.A0FF,光模块状态报告在寄存器1.A070~1.A071,此时该寄存器能够被用来通过寄存器1.9000~1.9007来驱动LASI中断。
为确保LASI alarms能够被传输,固件将按照下表所示修改寄存器设置。设置细节如下表:
DOM周期性更新
寄存器3.D71A控制DOM周期性更新功能,当3.D71A设置为1时DOM的周期性更新被使能。当使能DOM周期性更新时,固件能够周期性的从光模块中读取某个端口的A2内存,同时更新更新QT2025中的内存镜像。数据将每秒钟更新一次并一直延续到该功能被关闭。如果更新使能过程中光模块被移除,周期性的更新将被悬挂。
只有如下A2内存中的15bytes被更新:96~105,110,112~113,116~117。第112和113字节被连接到LASI中断的触发逻辑。
DOM的周期性更新将花费20ms左右的时间。当转换发生时要关闭DOM更新,在DOM的更新功能被完全关闭之前应该至少延时20ms。
②、手动I2C读取光模块
当固件处于acquisition或者tracking状态(UC_STATUS = 0x50或者UC_STATUS = 0x70),能够通过UC_i2C手动操作连接到A0或A2内存单元,此时需要设置FW_I2C_CTL_REG为3.D100。该功能被用来通过手动读取或写QT2025的A0或A2镜像内存修改光模块的特定字节。也能够通过QT2025的A0或A2镜像内存来读写光模块的256字节数据。FW_I2C_CTL_REG寄存器内容如下:
当进行单字节传输时,固件将使用FW_I2C_MIRROR_OFFSET中的特定地址。读操作时光模块寄存器内容的偏移和MDIO寄存器的偏移时相同的,写操作时MDIO寄存器内容的偏移地址指向光模块中相同的寄存器偏移。光模块的I2C读写偏移寄存器偏移如下:
读写举例如下:
3、光模块信息(以FINISAR的10GSFP+光模块为例)
支持2线串行通信,与GBIC标准定义的EEPROM相似,拥有相同的电器特性。通过标准的SFP+串行ID能够访问身份信息,包括光模块性能、标准接口、生产商和其他信息。此外,该光模块提供了增强型的数字诊断监控接口,该接口允许设备实时访问设备运行参数。如光模块温度,当前光偏移量,发射光强,接受光强和光模块提供的电压。同时也提供了精妙的报警系统和警告标识,在用户设定的运行参数超出厂家设定正常范围之后进行提示。
内部定义了一个256字节的内存映射成EEPROM,这样就可以通过两条信号线设定8bit地址为A0h进行访问。数字诊断监控接口使用8bit地址A2h进行访问,这样就保证了原始定义的ID内存单元保持原来的形态进行访问。
以上是关于qt2025读取光强的主要内容,如果未能解决你的问题,请参考以下文章