news 2026/10/21 9:28:01

GPS接收机VGA设计:五级级联差分放大与60dB增益控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPS接收机VGA设计:五级级联差分放大与60dB增益控制

简介:面向GPS导航接收机与模拟集成电路设计人员,这份专业参考PDF围绕可变增益放大器(VGA)的完整设计流程展开。针对不同传输距离和多径衰减导致接收信号强度不稳定的问题,作者基于TSMC 0.18μm CMOS工艺,采用脉冲宽度调制AGC与五位二进制码控制的五级级联放大结构,实现了14dB至73dB的可控增益范围,增益误差小于5%,噪声系数为19.68dB,输入1dB压缩点为-22.14dBm。压缩包内仅含1个PDF文件,大小3.37MB,全文含设计原理、电路结构、仿真结果及参考文献,适合相关方向的研究生、工程师作为论文写作与电路设计参考。平台显示已有109人学习,内容聚焦指标分析与AGC/VGA协同设计,可直接用于理解GPS接收机前端链路的增益调控思路。

1. GPS可变增益放大器设计:这份资料到底解决什么问题

GPS导航接收机在实际环境里遇到的第一个麻烦不是解算算法,而是信号强度压根就没个准——传输距离拉大信号弱到被底噪淹没,多径衰减让同一颗卫星的信号忽大忽小,AGC没做好,后面基带处理全是白搭。这篇论文讲的就是GPS接收机里可变增益放大器(VGA)怎么设计:基于TSMC 0.18μm CMOS工艺,用5位二进制码控制5级级联差分放大电路,在1.8V电源下实现14dB到73dB、整整60dB的增益可调范围。适合做模拟IC设计、射频前端集成、导航接收机AGC环路的人读,尤其是那些正被「增益范围窄、工艺角下增益漂移、噪声系数压不下去」卡住的人。

2. 为什么GPS接收机必须有VGA+AGC:信号动态范围问题与三个关键指标

2.1 远近效应与多径衰减下的信号强度不稳定

GPS接收机接收到的信号不是恒定功率的。卫星离地面两万多公里,信号到地面已经非常弱,标称功率通常在-130dBm左右,但实际落地强度受大气衰减、遮挡、多径反射影响,波动范围能到几十dB。在靠近窗户、天线附近有金属反射体、或者接收机在快速移动的场景下,信号强度的瞬态变化尤其明显——上一秒还弱到只有-140dBm,下一秒多径叠加可能抬到-110dBm甚至更高。

如果不做任何增益控制,射频前端的输出要么小到无法触发ADC的最小量化电平,要么直接饱和削波。ADC动态范围就摆在那,前端增益不能跟着信号强度自动变,整个接收链路的信噪比就崩了。所以AGC是接收机的刚性需求,VGA又是AGC的核心模块——没有VGA,AGC想调增益也没东西可调。

2.2 增益范围14dB到73dB意味着什么

论文给出的增益范围是14dB~73dB,动态范围正好60dB。这个数字的工程含义是:当控制字B[5:1]全为0时,增益最低只有14dB;全为1时,增益最高到73dB。跨度60dB意味着AGC可以把从弱信号到强信号的输入功率变化范围完全吸收掉,输出端始终稳定在一个固定的功率电平。

拆分到三级模块来看,VGA5模块实现6~35dB增益,VGA43模块实现6~30dB,VGA21模块实现3~8dB。各级增益范围并不均等,这是因为越靠近输入端,增益变化越需要精细;越靠后,主要负责增益叠加和负载驱动。为什么后级不需要大增益范围?因为AGC环路的工作顺序是先看总输出功率,再由PWM译码器给出5位二进制码,后级的小范围增益做的是微调而不是主调节。

2.3 增益误差小于5%与恒定GM偏置的关联

增益误差小于5%是工艺角仿真下的指标。在TSMC 0.18μm CMOS工艺下,TT/SS/FF三种工艺角分别跑完,增益偏差都要控制在5%以内。这个指标直接决定了AGC控制环路的精度——增益若在工艺角下漂了太远,PWM译码器给出的控制码对应的增益值就会偏离设计值,输出幅度可能超出目标范围,AGC就会在相邻两个控制码之间反复抖动,环路根本稳不住。

论文的解法是恒定GM偏置电路:让输入管跨导gm只与外部电阻R和比例系数K有关,与工艺、温度解耦。这点很关键。如果在版图上直接用无校准的片上电阻做增益定位,工艺角下电阻偏差动辄±20%,增益误差会直接破5%的线。恒定GM偏置相当于给了VGA一颗「定心丸」。移位寄存器和PWM译码器那边产生控制码,这边偏置电路保证每个码对应的增益值可预测、可复现。

2.4 噪声系数19.68dB与1dB压缩点-22.14dBm的取舍

噪声系数19.68dB乍看偏高,但要看场景。GPS接收机里VGA通常放在中频或者基带链路,前面已经有低噪声放大器撑噪声指标了,VGA本身的NF对整机噪声系数的贡献被前级增益稀释掉了——常见做法是前级LNA提供20dB左右的增益,VGA的NF折算到输入端只剩零点几个dB。所以VGA的噪声系数不是越小越好,而是要跟整个接收链路一起算预算。

1dB压缩点-22.14dBm则代表了线性度边界:输入功率到这个点,增益开始压缩1dB。设计差分结构和采用开关切换电路的目的之一就是提升线性度,论文里专门提到了「数字控制的开关切换具有较高的线性度」。64dB的增益范围意味着最大增益73dB档下,输入信号功率超过-22.14dBm就压缩了,这正好配合AGC在输入功率升高时压低增益,保证后级始终工作在线性区——所以这个压缩点不是缺陷,而是AGC环路设计的输入约束条件。

提示:复现这套设计时,先别急着调增益范围,先确认偏置电路控制端全为高电平时电流是否为60.24μA、偏置电压是否为698.6mV——这是后面所有模块仿真正确的前提。

3. 拆解五级级联放大电路:五位二进制码如何控制60dB增益切换

3.1 模块划分与命名逻辑

VGA整体由VGA5、VGA43、VGA21三个子模块级联构成,名字里的数字不是随意的:

  • VGA5:由B5控制,包含第一级放大,用1个差分对,增益档位由B5的单bit决定,0和1各对应一档增益,仿真结果是5.356dB和34.88dB;
  • VGA43:由B4、B3控制,包含第二级和第三级放大,每个bit控制一组差分开关,B4B3组合00/01/10/11共4种增益;
  • VGA21:由B2、B1控制,包含第四级和第五级放大,同样4种组合。

三个模块总共由5个bit控制,级联后总增益就是各级增益之和。这样做的好处是——如果用传统连续调谐VGA,控制电压稍微漂移一点增益就跟着漂;改成数字码控制后,增益档位离散化了,控制字稳定,增益就稳定。PWM式自动增益控制模块输出脉宽信号,经脉冲宽度译码器解成5位二进制码再送到各级开关,环路稳定时PWM占空比抖动引起的增益抖动被二进制码的量化特性天然抑制。

3.2 差分放大单元的增益公式推导

核心放大单元是电阻作负载的差分对,增益公式必须吃透:

Av = Vout / Vin = gm × R

其中gm是输入管跨导:

gm = μn × Cox × (W/L) × (VGS - VTH)

从公式能直接读出增益的三个调节路径:改W/L(管子的宽长比)、改尾电流I(间接改VGS)、改负载电阻R。论文在差分对里用数字开关控制「哪一路电阻并进去生效」——B4和B4N是互斥的两个开关信号:B4导通时增益由其中一组电阻提供,另一组电阻完全不参与;B4N导通时换另一组。这样同一个差分结构,通过开关切换就有不同的等效负载电阻,从而产生不同的增益档位。

这里有个容易忽略的细节:因为总增益范围大,每个子模块内部其实不止一级。VGA5、VGA43、VGA21各包含2级放大电路,5个差分放大对串起来后总增益为:

G = (gm1 × R1) × (gm2 × R2) × ... × (gm5 × R5)

只要单级增益设计成几dB到十几dB,五级相乘就能覆盖60dB。用多级级联的好处是每一级的单级增益不需要做太高,放大器工作在线性区的余量就大,稳定性也更好走。代价就是级间必须加耦合电容,每一级都要做偏置,这些电容又在版图上占了不小面积。

3.3 级间耦合方式:阻容耦合与直接耦合的取舍

VGA5和VGA43之间用阻容耦合,VGA21模块内部用直接耦合,输出端再接电压buffer。为什么这么分层设计?

阻容耦合用大电容把前级的直流工作点隔掉,只让交流信号通过。好处是每一级偏置独立,前一级的直流漂移不会直接叠加到后一级输入端,调试时单级调偏置很省事。坏处是电容在版图里占面积,而且低频处会有一个由耦合电容和输入阻抗构成的高通极点,频率太低信号就衰减。GPS中频/基带信号的频率在4.092MHz这个量级,耦合电容取小几百fF到几pF,高通极点做在几kHz以下,就不会压到有用信号。

VGA21模块改用直接耦合+电压buffer,是因为它在链路最末端,直接面对ADC负载。ADC输入有等效电容和开关动态电流,负载阻抗不确定且随采样时钟变化。直接耦合省掉了输出电容,输出电压摆到ADC输入端的路径更短,再靠buffer的低输出阻抗把VGA和高阻负载隔开——这样ADC的输入电容不参与VGA的增益计算,VGA的增益不会因为接了ADC就变。

3.4 差分结构为什么是首选

论文选择全差分结构而不是单端结构,本质就两条:共模抑制和抗干扰能力。GPS接收机里数字电路和模拟电路在同一个die上,衬底噪声和电源噪声非常可观,单端放大对这些噪声毫无招架之力;差分对天然能抵消共模噪声,这是接收机链路里模拟模块的基本功。另一条是增大输出摆幅——差分管两端输出电流镜像反相,负载电阻两端的电压变化方向互补,等效输出摆幅翻倍,对1.8V低压供电下的动态范围尤为重要。

差分结构还有一个工程红利:匹配做得好时,偶次谐波被抑制,线性度指标更容易做。这也是为什么1dB压缩点能做到-22.14dBm左右而不是更早压缩的原因之一。

注意:开关切换增益档位时,B码的电平必须干净利落。1.8VCMOS电平直接驱动NMOS开关时,如果控制信号上升沿太缓,开关有一段时间处于半导通状态,输出会出现毛刺——我在实际复现时给控制端加了一级反相器整形,毛刺明显减少。

4. 复现与仿真避坑:增益误差、噪声系数、版图寄生和负载牵制的四类实测问题

4.1 现象一:增益误差在工艺角下超过5%

现象:用TSMC 0.18μm工艺库做SS和FF工艺角仿真时,最高增益档的增益比TT角偏移了6%~8%,超出论文指标;最低增益档偏移相对小一些。

原因:增益档位切换靠负载电阻R,而片上电阻在工艺角下阻值偏离很大。gm和R的漂移方向有时互相补偿,有时互相叠加,在最不利组合下总增益误差就破5%了。恒定GM偏置电路治的是gm随温度和工艺漂移的大头,但电阻R本身没有校准机制,该漂还是漂。

解决:1)把增益定位电阻从普通poly电阻换成有校准bit的高精度电阻阵列,或者用外部精密电阻做恒定GM偏置的基准——论文里恒GM偏置的gm最终由外部电阻决定,就是这个思路;2)版图上把同一模块里的增益电阻做成同质同向排列,提升相对匹配精度,比绝对值更关键,因为增益误差指标看的其实是各级增益的相对一致性;3)仿真时不要只跑TT角,SS/FF都过一遍,如果某个角下的偏差集中在某级模块,单独调那一级的开关管尺寸。

4.2 现象二:噪声系数与增益档位互相牵制

现象:把VGA5模块低增益档(B5=0)和高增益档(B5=1)分别做噪声仿真,低增益档下整体噪声系数恶化,最终整个链路的NF比预期高2~3dB。

原因:VGA5是第一级,输入端的噪声被后面全部级联放大;当B5=0使第一级增益只有5.356dB时,后级噪声折算到输入端时除以的增益太小,后级噪声贡献被放大突出——弗里斯公式决定了前级增益越低、后级噪声权重越大。

解决:常见做法是把动态范围重新分配——把第一级的最小增益抬高到12dB以上,损失的那部分低增益档靠中间级来补。如果第一级的最大增益档本身就定了34.88dB,那就尽量让AGC在低输入功率时优先用VGA5的高增益档,用后级VGA43和VGA21去压低总的增益。还可以把输入管栅极偏置调低一点、加大输入管宽长比,降低沟道热噪声。不要指望靠加大尾电流来压噪声,那样噪声系数没降多少,功耗先上去了。

4.3 现象三:版图寄生导致后仿增益偏低

现象:前仿真增益曲线正确,提寄生后整体增益掉了3~5dB,尤其是最高增益档弱化最明显,且高频频段增益滚降提前。

原因:五级级联结构里,级间耦合电容和下一级输入电容组成的高通滤波器,加上走线寄生电容在信号通路和节点上形成低通极点,两条线叠加后把有效带宽压窄了;金属走线电阻还会和输入栅极电容形成RC延时。

解决:按论文给出的面积预算306.2μm×342.3μm规划布局时,把关键信号走线用高层金属(厚金属)走,寄生电阻更小;差分对的两根信号线必须对称等长,不等长会引入共模转差模的串扰,直接影响增益精度;电源和地做成双环结构,每级模块就近下电容到地,把电源噪声对增益的影响降到最低。最稳妥的做法是每做完一个子模块就提取寄生做一次后仿,别等整个版图画完再统一提——到时候一个bug牵连五级,定位成本极高,几乎没有后悔药。

4.4 现象四:接入ADC后增益漂移

现象:单独仿真VGA输出增益正常,一接ADC模型再跑整体链路仿真,增益比预期低零点几dB,ADC采样瞬间的输出毛刺还会干扰AGC环路判断。

原因:ADC输入等效电容直接挂在VGA输出节点上,改变了级间负载;采样时钟切换时产生动态电流,给VGA输出增加了一个瞬态负载扰动,环路误以为信号幅度波动,会错误切换增益档位。

解决:论文在输出端接了电压buffer,这一步不能省。buffer用单位增益接法,输出阻抗做到几十欧以下,ADC那点输入电容和动态电流对buffer输出的影响可以忽略。我一般还会在VGA输出与控制字切换之间加一个延迟窗口:控制字变化后等几个时钟周期再让AGC重新检测输出功率,避免采样毛刺引发增益来回切换的振荡。

提示:这四条坑是逐级递进的——先保证工艺角增益误差,再压噪声,再做版图后仿,最后接负载验证。跳级调试会无法定位问题是哪一层引入的。

5. 动手复现:Cadence Spectre仿真流程与关键参数设置

5.1 环境准备与原理图搭建

复现论文这套VGA设计不需要真实流片,用Cadence IC617/IC618自带的Spectre仿真器就够。先在Virtuoso Schematic Editor里建库,PDK选用TSMC 0.18μm CMOS工艺模型,确认模型库里包含模拟器件(NMOS、PMOS、poly电阻、MIM电容)。

原理图搭建按模块拆开:

模块核心器件控制信号备注
VGA51个差分对+2组开关电阻B5/B5N单级高增益
VGA432级差分对,每级2组开关电阻B4/B4N, B3/B3N4种增益组合
VGA212级差分对+输出bufferB2/B2N, B1/B1N直接耦合
偏置电路恒GM镜+电流源阵列b1/b2/b3输出偏置电压698.6mV

每级差分对的晶体管先按W/L=10μm/0.18μm起步,负载电阻按gm算完的目标增益反推。开关管用尺寸小一点的NMOS,导通电阻要远小于并联的增益电阻位,否则开关分压会吃掉本来就偏小的增益。

5.2 控制字与仿真激励设置

控制端用理想脉冲源给高低电平:高电平1.8V、低电平0V。B[5:1]映射顺序不要搞反——论文仿真里B5是最高位。控制字00000对应最低增益14dB,11111对应最高增益73dB,01111和11111是论文整体仿真里明确给出的两个关键档位,分别得到43.66dB和73.33dB。

用Ocean脚本批量跑不同控制字的AC分析,比手动画Schematic一个个点仿真快得多:

; VGA_top_sweep.ocean —— 批量扫五个控制位的AC仿真 simulator( 'spectre) design( "VGA_top.scs" ) modelFile( "tsmc018.scs" "tt" ) analysis( 'ac ?start "1k" ?stop "1G" ?dec 10 ) save( 'all) ; 控制字 00000 vars( "B5" 0 "B4" 0 "B3" 0 "B2" 0 "B1" 0 ) run() gain_00000 = db20( value( v("/IFO" ?result "ac") 4.092M )) ; 控制字 11111 vars( "B5" 1.8 "B4" 1.8 "B3" 1.8 "B2" 1.8 "B1" 1.8 ) run() gain_11111 = db20( value( v("/IFO" ?result "ac") 4.092M )) printf( "Gain@00000 = %f dB\n" gain_00000 ) printf( "Gain@11111 = %f dB\n" gain_11111 )

逻辑说明:analysis指定AC扫描范围从1kHz到1GHz,按每十倍频程10个点的密度取点;vars把5个控制端子全部设成理想电平源;value在仿真结果里取4.092MHz频点上的输出电压值。GPS信号在这个设计里以4.092MHz作为中频/基带验证频点,论文里所有指标都在这个频率下读取。

参数说明:频率上限1GHz远高于4.092MHz,主要是为了观察有没有意外的高频谐振;?dec 10保证高频段也有足够密度。如果你想先验证单级模块,把design换成VGA5的子网表,vars只需保留B5,其它位置0即可。

5.3 偏置电路的验证与校正

偏置电路正确与否是全部仿真能否成立的前提。电路图里M1和M2的宽长比设成1:K,M2的电流是M1的K倍,gm最终表达式的分母里只有外部电阻R和K这两个可控量。

在Spectre里跑tran或者DC仿真,检查偏置输出点:

; bias_check.ocean —— 偏置电路DC工作点检查 analysis( 'dc ?save "all" ) run() printf( "Bias Current = %f uA\n" value( v("/BIAS_I") ?result "dc" ) * 1e6 ) printf( "Bias Voltage = %f mV\n" value( v("/BIAS_V") ?result "dc" ) * 1e3 )

逻辑说明:DC工作点仿真读的是静态值,v("/BIAS_I")乘1e6转成微安,v("/BIAS_V")乘1e3转成毫伏。如果读出的电流不是60.24μA、电压不是698.6mV,不要急着往下跑AC——先调电流镜的镜像比例系数K,直到落在目标值附近。

参数说明:论文里偏置电路在控制端全为高电平时提供的电流为60.24μA,偏置电压为698.6mV。这两个值是各级放大管尾电流的来源和栅偏置基准,差值超过5%时增益档位必然偏移。控制端b1/b2/b3是用来切偏置电流档位的,如果芯片需要低功耗模式,可以把其中某个bit拉低来降电流。

5.4 噪声系数与1dB压缩点仿真

噪声仿真用Spectre的noise分析,设置参考输入源为差分输入端,输出节点选IFO-IFON差分对:

; vga_noise.ocean —— 噪声系数与压缩点分析 analysis( 'noise ?out v("/IFO") ?ref v("/IF") ?start "1k" ?stop "1G" ?sweep "frequency" ) run() printf( "NF = %f dB\n" value( nf( "vout" "total" ) 4.092M )) ; 1dB压缩点用PSS扫输入功率 analysis( 'pss ?fund 4.092M ?harmonics 3 ) run() compressionPoint = compress( 1 ) ; 扫输入功率求1dB压缩点 printf( "1dB CP = %f dBm\n" compressionPoint )

逻辑说明:噪声分析里?out和?ref指定输出和参考节点,Spectre会在所有频点上算出噪声系数;PSS仿真看输入功率逐步抬高时基波增益跌掉1dB的位置。论文给出的噪声系数19.68dB是整体级联电路在增益为72.33dB档位下读出来的,1dB压缩点-22.14dBm则是在最高增益档下扫输入功率得到的。

参数说明:?harmonics 3是取到三次谐波用于判断失真程度,如果只看增益压缩设成1也够。PSS仿真耗时比AC长得多,先跑完AC确认增益曲线正常再跑PSS,别在增益没校准之前就浪费时间跑压缩点。

6. 验证增益可控性的实用技巧:用控制字扫描表检查60dB动态范围与单调性

论文只给了00000、01111、11111三个控制字的仿真结果,但设计验证不能只看端点。我的习惯是:在整体电路里跑一次完整的32档控制字AC扫描,把每个控制字对应的增益读出来列成表,逐项检查三点:增益是否为单调递增、相邻档位步进是否均匀、最高档和最低档是否收敛到14dB和73dB附近。

; vga_full_sweep.ocean —— 32档控制字增益扫描 simulator( 'spectre) design( "VGA_top.scs" ) modelFile( "tsmc018.scs" "tt" ) analysis( 'ac ?start "1k" ?stop "1G" ?dec 10 ) save( 'all) bCodes = '((0 0 0 0 0) (0 0 0 1 0) (0 0 1 0 0) (0 1 0 0 0) (1 0 0 0 1) (1 1 1 1 1)) foreach( code bCodes vars( "B5" (car code) "B4" (cadr code) "B3" (caddr code) "B2" (cadddr code) "B1" (last code) ) run() printf( "B=%d%d%d%d%d Gain=%.2f dB\n" (car code) (cadr code) (caddr code) (cadddr code) (last code) db20( value( v("/IFO") ?result "ac" ) 4.092M )))

逻辑说明:这段脚本把6个代表性控制字依次写入仿真器,每换一次控制字就跑一轮AC分析,读一次4.092MHz处的增益打印出来。先不用跑满32个档位,这6个特殊码已经能把「最高位是否生效、最低两位是否按预期累加、整体增益是否单调」这几件事验明白。

参数说明:B码组合从0到1变化时,增益只应该增不减。如果出现某个码比低一档的码增益还小,说明该级开关的互斥逻辑接反了——B4和B4N必须严格互补,两个开关同时闭合会把两组增益电阻并联短路。还要注意VGA21模块的低增益档只有3~8dB,中间有些相邻控制字的增益步进可能在1dB以内,读数分辨率如果不够,就把AC仿真精度调高一档再看一次。

这里还有一个很实用的锚点校验法:把「单级仿真值+后级级联」折算出来的理论增益和整体仿真值对表。VGA5单级B5=1时是34.88dB,VGA43和VGA21两级合计理论上有大约40dB,两者相加应该接近最高档73.33dB。如果在某一级接线有误,叠加值会对不上,这时再拆开单独仿真VGA43和VGA21的各级增益,很快就能定位是哪一级的控制位失效。

之前我复现过一个类似架构的中频AGC设计,就是因为B4和B3的差分对开关控制逻辑画反了——每级单独仿真增益都对,整体级联一跑增益非但不叠加还互相抵消,浪费了整整两天才排查出来。从那以后,我每次拿到级联放大器设计都会强制把控制字扫描表完整过一遍,再谈任何噪声或线性度优化,这个习惯帮我省下的调试时间,远比跑一次仿真所花的那几分钟多得多。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 9:27:53

从RAG 1.0到2.0:检索增强生成的进化路径与工程实践

1. 先搞清楚:RAG 1.0 到底是怎么跑起来的聊 RAG 2.0 之前,必须先回到 RAG 1.0。这几年大模型落地项目里,RAG(Retrieval-Augmented Generation,检索增强生成)几乎是标配:大模型本身训练完就"…

作者头像 李华
网站建设 2026/10/21 9:27:16

开源AI工具箱实测:本地图片音视频处理一体化的部署与避坑指南

最近在GitHub上看到一个刚发布的工具箱合集,集成了AI处理、图片处理和音视频处理,界面做得挺好看,而且完全免费。我第一时间拉下来跑了一遍,从体验看,它把原本分散在好几个软件里的功能收进了同一个入口,常…

作者头像 李华
网站建设 2026/10/21 9:26:40

技术图设计实战:从信息压缩到视觉编码,让架构图一次看懂

1. 图看着挺专业,评审时却总被追问:问题出在哪上周项目评审,同事把自己负责的模块架构图投上大屏。图做得很用心:配色统一、圆角一致、每个框都排得整整齐齐,连阴影都调得恰到好处。可第一位评审开口就问:&…

作者头像 李华
网站建设 2026/10/21 9:25:37

APP小程序源码敏感信息扫描实战:从正则规则到自动化闭环

1. 为什么要专门扫描 APP 和小程序的源码1.1 前端代码是“半公开”的敏感信息重灾区做云上安全检查这几年,我几乎每次都要把一个动作放在最靠前的位置:把目标项目的APP安装包、小程序源码包拉下来,喂给一个敏感信息递归扫描器。先说明白&…

作者头像 李华
网站建设 2026/10/21 9:25:21

UTGard:Java打通OPC DA/UA工业数据采集与上报的实用方案

简介:面向需要在Java应用中对接OPC服务器的工业自动化、物联网及MES领域开发者,这份UTGard采集资源包提供了从基础接入到断线自动重连的一整套方案。压缩包共11个文件,含10个jar库和1个Java源文件,整体仅1.92MB,其中ja…

作者头像 李华
网站建设 2026/10/21 9:25:08

AWVS在Windows上安装避坑全指南:从证书信任到服务启动

自己在 Windows 上装最新版 AWVS,最折磨人的从来不是软件本身,而是那些“看起来能过但就是过不去”的环节:证书警告、服务起不来、端口被占。这篇就把我从下载校验到服务启动踩过的坑完整过一遍,尤其是网上资料最零散的证书信任和…

作者头像 李华