一种实现8通道高速高精度光功率计的方案设计
2022-03-26尚创波范修宏
尚创波,范修宏
(西安奇芯光电科技有限公司,陕西 西安 710119)
0 引言
随着光通信行业的不断发展,对长距离传输的需求越加迫切,在无法短时间内降低传输过程中的传输损耗的情况下,各家半导体激光器厂商都不约而同地通过增大最大发射光功率的方式来延长传输距离,就使得光功率计的探测范围要求越来越高,而在激光器器件的生产过程中,为了避免热效应导致的激光器发光Ith点偏移,就需要在极短时间内扫描完整个激光器器件的PIV曲线,因此对光功率计的高速采样就提出了要求,同时为了准确描绘出激光器器件的发光特性,对光功率计的精度也提出了要求,而为了提高效率,又对多通道也提出了要求,因此一款拥有高速、高精度、大范围[1]、多通道的光功率计就显得尤为重要,此设计就是基于此目的而提出。
1 主要芯片介绍
本系统采用ST(意法半导体)公司推出的一款基于高性能ARMCorex-M4 32位RISC内核的MCU STM32F405作为主控MCU,工作频率高达168MHz,内核具有一个浮点单元(FPU)单精度,支持所有ARM单精度数据处理指令和数据类型,拥有两条APB总线、三条AHB总线和一个32位多AHB总线矩阵。
ADS1278是TI推出的8通道24BIT工业模数转换器(ADC),内部集成多个独立的高斩波稳定调制器和FIR数字滤波器,可实现8通道同步采样,拥有高达128 kSPS的数据传输速率,支持高速、高精度采样模式[2]。
2 系统综述
该方案上位机系统通过串口实现对整个系统的控制,控制系统以STM32F405作为主控MCU,通过高速SPI接口与ADS1278通信,读取所有8通道的ADC采样数据,通过THS4521实现对单端信号的差分转换,以更好地连接ADS1278,该系统提供了多种采样方式,有高速实时采样模式、累积采样模式、外部trigger信号触发采样模式,并可单独对某一通道监控功率选择dBm/Mw单位,并通过自定义协议与外部上位机进行数据交互。
主要控制模块:上位机模块、串口模块、MCU主控制模块、SPI通信模块、ADC转换模块、存储管理模块、ADS1278控制模块、外部触发信号采样模块、实时高速采样模块、累积数量采样模块、告警指示模块等,物理机构如图1[3]所示。
图1 物理机构图
本系统总共有12大子系统,分别是:上位机系统、串口通信系统、初始化设备模块系统、初始化内存系统、ADC(模数转换)系统、SPI通信系统、数据存储管理系统、ADS1278控制系统、外部触发信号采样系统、实时高速采样系统、累积数量采样系统、告警指示系统[4]。
上位机系统用于人机交互,提供控制接口,下发控制指令;串口通信系统提供系统的通信功能,此系统为独立实现的系统模块,有相关硬件设备予以支持;ADC转换系统用于监控系统内核温度,供电电压等;SPI通信系统用于实现MCU与ADS1278之间的通信,ADS1278控制系统用于实现对ADS1278采集到的数据进行滤波、校准、单位转换等操作;外部触发信号采样系统用于检测外部trigger信号,根据信号高低进行采样;实时高速采样系统用于实时采样并上传至通信系统发出;累积数量采样系统可以根据上位机下发的采样次数进行累积采样最后整体上传至通信系统发出;告警指示系统用于实时监控SPI及温度,供电电压,以及ADS1278的工作状态,一旦出现异常即可实时发出告警指示。
3 系统组成
3.1 硬件系统
硬件电路部分如图2所示,STM32F405作为主控MCU,采用SPI与ADS1278进行通信,读取相关监控,采用串口与上位机通信,从而实现对整个底层系统的控制,ADS1278工作于SPI高频模式,MCU工作于168MHZ最高频率,以提高数据的刷新率。
图2 硬件电路MCU 控制部分
3.2 上位机系统
用于实现人机交互,提供控制接口,下发控制指令,读取监控值,控制UI界面如图3所示。
图3 控制UI 界面
3.3 串口通信系统
用于实现上位机系统与控制系统之间的通信,通过专用的串口芯片实现数据的接受与发送,从而实现数据转发,此模块为独立的硬件设备来实现,如图4所示。
图4 串口通信模块
3.4 底层控制系统
3.4.1 初始化
(1)设备初始化。初始化设备模块系统用于初始化ADC模块、串口模块、外部中断模块及定时器等。
(2)下载初始化。通过读取FLASH某一指定地址的值是否为指定值来判断是否为烧录程序后第一次上电;若不是,则初始化存放在FLASH中的8个通道分别对应的校准数据,并将此指定地址的值更新为指定值,若不是,则跳过初始化,直接使用FLASH中存放的数据来初始化8个通道分别对应的校准数据等相关参量。
(3)内存系统初始化。将相应数据放入Flash中对应数据段。初始化内存系统通过第一次上电初始化FLASH中的校准数据;上电时,用FLASH表中对应地址的数据初始化RAM表中的值。
3.4.2 主循环
当系统初始化之后,系统根据需要对系统的工作状态及数据进行监控,并根据上位机下发的指令去执行相应的操作,同时主循环也执行对下发命令的解析操作。以下将根据系统主循环流程,从实时数据监控、实时状态监控、命令解析、数据通信系统以及数据标定系统五部分详细说明。
(1)实时数据监控。对系统内核温度,供电电压等参量,以及ADS1278的8个通道的监控值量进行实时数据监控。
(2)状态监控。对内核温度状态、ADS1278的工作状态、供电状态、串口通信状态、SPI通信状态、FLASH操作异常状态进行实时监控。
(3)命令解析。此功能用于对串口下发的所有命令进行校验、解析、判断,并根据命令调用不同的功能模块来执行相应操作,并将执行结果返回至通信系统。
(4)数据通信系统。①串口通信:采用串口与上位机进行通信,上位机通过中断方式对下位机进行读写操作,将接收到的命令转发至命令解析系统,将命令解析系统返回的数据转发至上位机;②数据的读取与写入:底层驱动上电时会从FLASH中加载出存储的数据并显示,同时会根据上位机下发的操作将需要的数据保存至FLASH。
(5)数据标定系统。本功率计支持850nm、980nm、1270nm、1300,1310nm、1490nm、1550nm、1577等多种波长的功率监控,因此标定时针对每个波长分别标定,同时为了在较小功率时也能保证较高的监控精度,因此将-40dBm作为分段点,大于-40dBm的功率采用线性标定,小于-40dBm的功率采用二次曲线标定,从而保证了监控精度[5]。
3.4.3 部分代码示例
图5为底层进行8路功率ADC数据采集以及标定转换的部分代码。
图5 部分底层控制代码
4 实验结果分析
通过增加衰减器,控制光源输出功率为5.6dBm左右,并以此为基准,每衰减10dB,记录一次8个通道的监控数据,从图6所示UI界面读取数据并记录,最终形成表1的数据表格。
图6 测试效果展示
表1 光源发光与功率计测试结果对比
从表1测试数据可以看出,此方案有良好的监控精度,经过精确标定后,监控误差可控制在0.1dBm以内。
5 结语
本系统通过高达168MHz主频的STM32F405与24Bit最高采样速率达128ks/s的ADS1278的组合,能快速、精确地监控出高达8路的光功率[6],且经过详细标定后,监控精度表现良好,经过功能测试、性能评测和负载测试等方面的测试,各项指标都完好。整个系统操作简单,占用资源少,已经达到了批量化生产的要求。