(转)【PCB布局布线】之差分布线和阻抗匹配

2024-08-22 01:58

本文主要是介绍(转)【PCB布局布线】之差分布线和阻抗匹配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【PCB布局布线】之差分布线和阻抗匹配(转)

 

一、PCB 差分布线操作

参看:Altium Designer -- 精心总结

PCB 差分布线已经讲的很清楚了,在此不做介绍。

二、差分布线优缺点

参看:实际运用中差分信号线的分析和 LAYOUT 

参看:差分信号 -- 维基百科

(1) 差分信号

首先来看一下什么是差分信号吧。

1、差分信号

差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的是逻辑0还是逻辑1。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。

一般类型有:USB、以太网、PCIE、SATA、RS485、RS422、HDMI、LVDS

常用对有:+/-    PM/PN  TXN/TXP 

2、差分信号与单端走线的比较

差分信号与传统的一根信号线一根地线(即单端信号)走线的做法相比,其优缺点分别是:
优点:
抗干扰能力强。干扰噪声一般会等值、同时的被加载到两根信号线上,而其差值为0,即,噪声对信号的逻辑意义不产生影响。
能有效抑制电磁干扰(EMI)。由于两根线靠得很近且信号幅值相等,这两根线与地线之间的耦合电磁场的幅值也相等,同时他们的信号极性相反,其电磁场将相互抵消。因此对外界的电磁干扰也小。
时序定位准确。差分信号的接收端是两根线上的信号幅值之差发生正负跳变的点,作为判断逻辑0/1跳变的点的。而普通单端信号以阈值电压作为信号逻辑0/1的跳变点,受阈值电压与信号幅值电压之比的影响较大,不适合低幅度的信号。
缺点:
若电路板的面积非常吃紧,单端信号可以只有一根信号线,地线走地平面,而差分信号一定要走两根等长、等宽、紧密靠近、且在同一层面的线。这样的情况常常发生在芯片的管脚间距很小,以至于只能穿过一根走线的情况下。

(So,差分信号要优先布线)

 

(2)关于差分的五个常见误区

 

误区一:认为差分信号不需要地平面作为回流路径,或者认为差分走线彼此为对方提供回流途径。造成这种误区的原因是被表面现象迷惑,或者对高速信号传输的机理认识还不够深入。虽然差分电路对于类似地弹以及其它可能存在于电源和地平面上的噪音信号是不敏感的。地平面的部分回流抵消并不代表差分电路就不以参考平面作为信号返回路径,其实在信号回流分析上,差分走线和普通的单端走线的机理是一致的,即高频信号总是沿着电感最小的回路进行回流,最大的区别在于差分线除了有对地的耦合之外,还存在相互之间的耦合,哪一种耦合强,那一种就成为主要的回流通路。

在PCB 电路设计中,一般差分走线之间的耦合较小,往往只占10~20%的耦合度,更多的还是对地的耦合,所以差分走线的主要回流路径还是存在于地平面。当地平面发生不连续的时候,无参考平面的区域,差分走线之间的耦合才会提供主要的回流通路。尽管参考平面的不连续对差分走线的影响没有对普通的单端走线来的严重,但还是会降低差分信号的质量,增加EMI,要尽量避免。也有些设计人员认为,可以去掉差分走线下方的参考平面,以抑制差分传输中的部分共模信号,但从理论上看这种做法是不可取的,阻抗如何控制?不给共模信号提供地阻抗回路,势必会造成EMI 辐射,这种做法弊大于利。
所以要保持PCB地线层返回路径宽而短。尽量不要跨岛(跨过相邻电源或地层的分隔区域)。比如主板设计中的USB和SATA及PCI-EXPRESS等最好不要有跨岛的做法。保证这些信号的下面是个完整地平面或电源平面。

误区二:认为保持等间距比匹配线长更重要。在实际的PCB 布线中,往往不能同时满足差分设计的要求。由于管脚分布,过孔,以及走线空间等因素存在,必须通过适当的绕线才能达到线长匹配的目的,但带来的结果必然是差分对的部分区域无法平行,其实间距不等造成的影响是微乎其微的,相比较而言,线长不匹配对时序的影响要大得多。再从理论分析来看,间距不一致虽然会导致差分阻抗发生变化,但因为差分对之间的耦合本身就不显着,所以阻抗变化范围也是很小的,通常在10%以内,只相当于一个过孔造成的反射,这对信号传输不会造成明显的影响。而线长一旦不匹配,除了时序上会发生偏移,还给差分信号中引入了共模的成分,降低信号的质量,增加了EMI。

可以这么说,PCB 差分走线的设计中最重要的规则就是匹配线长,其它的规则都可以根据设计要求和实际应用进行灵活处理。同时为了弥补阻抗的匹配可以采用接收端差分线对之间加一匹配电阻。 其值应等于差分阻抗的值。这样信号品质会好些。

所以建议如下两点:
(A)使用终端电阻实现对差分传输线的最大匹配,阻值一般在90~130Ω之间,系统也需要此终端电阻来产生正常工作的差分电压;
(B)最好使用精度1~2%的表面贴电阻跨接在差分线上,必要时也可使用两个阻值各为50Ω的电阻,并在中间通过一个电容接地,以滤去共模噪声。

通常对于差分信号的CLOCK等要求等长的匹配要求是+/-10mils之内。

误区三:认为差分走线一定要靠的很近。让差分走线靠近无非是为了增强他们的耦合,既可以提高对噪声的免疫力,还能充分利用磁场的相反极性来抵消对外界的电磁干扰。虽说这种做法在大多数情况下是非常有利的,但不是绝对的,如果能保证让它们得到充分的屏蔽,不受外界干扰,那么我们也就不需要再让通过彼此的强耦合达到抗干扰和抑制EMI 的目的了。如何才能保证差分走线具有良好的隔离和屏蔽呢?增大与其它信号走线的间距是最基本的途径之一,电磁场能量是随着距离呈平方关系递减的,一般线间距超过4 倍线宽时,它们之间的干扰就极其微弱了,基本可以忽略。此外,通过地平面的隔离也可以起到很好的屏蔽作用,这种结构在高频的(10G 以上)IC 封装PCB 设计中经常会用采用,被称为CPW 结构,可以保证严格的差分阻抗控制(2Z0)。
差分走线也可以走在不同的信号层中,但一般不建议这种走法,因为不同的层产生的诸如阻抗、过孔的差别会破坏差模传输的效果,引入共模噪声。此外,如果相邻两层耦合不够紧密的话,会降低差分走线抵抗噪声的能力,但如果能保持和周围走线适当的间距,串扰就不是个问题。在一般频率(GHz 以下),EMI也不会是很严重的问题,实验表明,相距500Mils 的差分走线,在3 米之外的辐射能量衰减已经达到60dB,足以满足FCC 的电磁辐射标准,所以设计者根本不用过分担心差分线耦合不够而造成电磁不兼容问题。

 

误区四:差分曼切斯特编码并不是差分信号的一种,它指的是用在每一位开始时的电平跳变来表示逻辑状态“0”,不跳变来表示逻辑状态“1”。但每一位中间的跳变是用来做同步时钟,没有逻辑意义。

误区五:双绞线上面走的不一定是差分信号,单端信号在双绞线上的电磁辐射也比平行走线的辐射小。

三、差分布线的布线要求

根据上面的误区,总结一下差分布线的布线要求。

(1)差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。

如果等长和等距不能同时满足,则 PCB 差分走线的设计中最重要的规则就是匹配线长。同时为了弥补阻抗的匹配可以采用接收端差分线对之间加一匹配电阻。 其值应等于差分阻抗的值。差分走线也可以走在不同的信号层中,但一般不建议这种走法。因此尽量少跨层和走过孔,尽量少走弯路。

(2)差分线对之间要有 GND 隔离,或者保持距离,不要太近。

增大差分信号与其它信号走线的间距,或者通过 GND 隔离。

(3)差分线要优先布线

四、举个栗子

(1)Hi3516A 用户手册上,USB PCB 设计建议

为了保证良好的信号质量, USB 2.0 端口数据信号线按照差分线方式走线。为了达到USB 2.0 高速 480MHz 的速度要求,建议 PCB 布线设计采用以下原则:

差分数据线走线尽可能短、直,差分数据线对内走线长度严格等长,走线长度偏差控制在±5mil 以内。
差分数据线控制 90±10%的均匀差分阻抗。
差分数据线走线尽可能在临近地平面的布线层走线且不要换层。
差分数据线走线应有完整的地平面层作为参考平面,不能跨平面分割。
差分数据线走线应尽量用最少的过孔和拐角,拐角可考虑用圆弧或者 135 度角,避免直角,以减少反射和阻抗变化。
避免邻近其它高速周期信号和大电流信号,并保证间距大于 50mil,以减小串扰。
此外,还应远离低速非周期信号,保证至少 20mil 的距离。
REXT 电阻应该尽可能靠近 Hi3516A 侧。

(2)图文说明

参看:USB PCB布线经验教训--“血训”

USB是一种快速、双向、同步传输、廉价、方便使用的可热拔插的串行接口。由于数据传输快,接口方便,支持热插拔等优点使USB设备得到广泛应用。目前,市场上以USB2.0为接口的产品居多,但很多硬件新手在USB应用中遇到很多困扰,往往PCB装配完之后USB接口出现各种问题
比如通讯不稳定或是无法通讯,检查原理图和焊接都无问题,或许这个时候就需怀疑PCB设计不合理。绘制满足USB2.0数据传输要求的PCB对产品的性能及可靠性有着极为重要的作用。
USB协议定义由两根差分信号线(D+、D-)传输数字信号,若要USB设备工作稳定差分信号线就必须严格按照差分信号的规则来布局布线。根据笔者多年USB相关产品设计与调试经验,总结以下注意要点:
1. 在元件布局时,尽量使差分线路最短,以缩短差分线走线距离(√为合理的方式,×为不合理方式);

2. 优先绘制差分线,一对差分线上尽量不要超过两对过孔(过孔会增加线路的寄生电感,从而影响线路的信号完整性),且需对称放置(√为合理的方式,×为不合理方式);

3. 对称平行走线,这样能保证两根线紧耦合,避免90°走线,弧形或45°均是较好的走线方式(√为合理的方式,×为不合理方式);

4. 差分串接阻容,测试点,上下拉电阻的摆放(√为合理的方式,×为不合理方式);

5. 由于管脚分布、过孔、以及走线空间等因素存在使得差分线长易不匹配,而线长一旦不匹配,时序会发生偏移,还会引入共模干扰,降低信号质量。所以,相应的要对差分对不匹配的情况作出补偿,使其线长匹配,长度差通常控制在5mil以内,补偿原则是哪里出现长度差补偿哪里;

五、阻抗匹配

(1)阻抗计算工具

上面一直提到,差分阻抗。这个怎么计算呢?推荐一款阻抗计算工具  Polar CITS25

1、软件下载

下载:Polar CITS25 阻抗计算工具下载

举个例子:

我们用一对 0.006 英寸宽, 1/2 盎司铜厚,间距为 0.01 英寸, FR4 材料作衬底,离地线层 0.005 英寸 (微带方式)的差分信号走线的差分阻抗计算作为例子,铜的厚度 T 为 0.7/1000 英寸。下图显示了各参数。

(单位换算:1Mil=千分之一英寸,约等于0.0254毫米;1 盎司 = 0.0014 英寸=0.7 mil)

 

H:介质厚度(PP片或者板材,不包括铜厚)  (5)
W:阻抗线下线宽(W2=W1-0.5MIL)  (6)
W1:阻抗线上线宽(客户要求的线宽)  (6)
S:阻抗线间距(客户原稿)  (10)
T:成品铜厚  (0.7)
Er1:PP片的介电常数(板材为:4.5 P片4.2)  (4.2)

2、软件各个界面含义

该软件跟上面软件不同,但是参数差不多,仅供参考。

如果想下载下面的软件,参看:PCB特征阻抗计算神器Polar SI9000安装及破解指南

1. 外层单端:Coated Microstrip 1B

H1:介质厚度(PP片或者板材,不包括铜厚)
Er1:PP片的介电常数(板材为:4.5 P片4.2)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
T1:成品铜厚
C1:基材的绿油厚度(我司按0.8MIL)
C2:铜皮或走线上的绿油厚度(0.5MIL)
Cer:绿油的介电常数(我司按3.3MIL)
Zo:由上面的参数计算出来的理论阻值 

2.外层差分:Edge-Coupled Coated Microstrip 1B(重点)

H1:介质厚度(PP片或者板材,不包括铜厚)
Er1:PP片的介电常数(板材为:4.5 P片4.2)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
S1:阻抗线间距(客户原稿)
T1:成品铜厚
C1:基材的绿油厚度(我司按0.8MIL)
C2:铜皮或走线上的绿油厚度(0.5MIL)
C3:基材上面的绿油厚度(0.50MIL)
Cer:绿油的介电常数(我司按3.3MIL)

3.内层单端:Offset Stripline 1B1A

H1:介质厚度(PP片或者光板,不包括铜厚)
Er1:H1厚度PP片的介电常数(P片4.2MIL)
H2:介质厚度(PP片或者光板,不包括铜厚)
Er2:H2厚度PP片的介电常数(P片4.2MIL)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
T1:成品铜厚
Zo:由上面的参数计算出来的理论阻值

4.内层差分:Edge-Couled Offset Stripline 1B1A

 

H1:介质厚度(PP片或者光板,不包括铜厚)
Er1:H1厚度PP片的介电常数(P片4.2MIL)
H2:介质厚度(PP片或者光板,不包括铜厚)
Er2:H2厚度PP片的介电常数(P片4.2MIL)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
S1:客户要求的线距
T1:成品铜厚
Zo:由上面的参数计算出来的理论阻值

 

5.外层单端共面地:Coated Coplanar Waveguide With Ground 1B

 

H1:介质厚度(PP片或者板材,不包括铜厚)
Er1:PP片的介电常数(板材为:4.5 P片4.2)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
D1:阻抗线到两边铜皮的距离
T1:成品铜厚
C1:基材的绿油厚度(我司按0.8MIL)
C2:铜皮或走线上的绿油厚度(0.5MIL)
Cer:绿油的介电常数(我司按3.3MIL)
Zo:由上面的参数计算出来的理论阻值 

6.外层差分共面地:Diff Coated Coplanar Waveguide With Ground 1B

 

H1:介质厚度(PP片或者板材,不包括铜厚)
Er1:PP片的介电常数(板材为:4.5 P片4.2)
W1:阻抗线上线宽(客户要求的线宽)
W2:阻抗线下线宽(W2=W1-0.5MIL)
S1:阻抗线间距(客户原稿)
D1:阻抗线到铜皮的距离
T1:成品铜厚
C1:基材的绿油厚度(我司按0.8MIL)
C2:铜皮或走线上的绿油厚度(0.5MIL)
C3:基材上面的绿油厚度(0.50MIL)
Cer:绿油的介电常数(我司按3.3MIL)
Zo:由上面的参数计算出来的理论阻值 

(2)阻抗匹配

 

参看:PCB阻抗设计参考

参看:PCB迹线的阻抗控制技术

参看:PCB阻抗匹配总结

确实,一开始我也以为阻抗是写到 PCB 制版要求里,然后让制版厂来做的。

从上面的例子中就可以看到它与 差分线的线宽、线间距、介质厚度、成品铜厚、介电常数、叠层结构 等有关。

差分线的线宽、线间距,这些都是在 PCB 规则里设置好的。只不过以前不晓得,为什么要设置成线宽 6 mil,间距 8 mil 等等这样的要求,还以为只是与制版价格有关呢。现在看来,它还和阻抗大小有关的!!

1、线宽、线间距规则设置

线宽:(最小线宽 5mil)

差分线间距:(差分线最小间距 10mil)

其他信号线间距:(最小线宽 7.5mil)

2、查看板卡厚度和叠层结构

参看:Altium Designer -- 查看板子厚度

 

在 Design--Layer Stack Manager--thickness

(3)传输线阻抗计算中的有关问题

上面参看的文档,讲的真好,看了一遍受益匪浅。不过内容较多,不一一分析了,下面只看一部分。
结合目前我公司 PCB 板加工厂家的工艺能力,在用 polar 公司阻抗计算器 CITS25 计算PCB 板上迹线特性阻抗时,对影响 PCB 板迹线控制阻抗的几个相关参数分述如下:

1、 铜层厚度

铜层厚度代表了 PCB 迹线的高度 T。内层铜箔通常情况下用到 1 OZ(厚度为 35 微米),也有在电源层要流过大电流时用到 2OZ(厚度为 70 微米)。外层铜箔常用 1/2 OZ(18 微米),但由于经过板镀和图形电镀最终成品外层铜厚将达到48 微米(实际计算时用该值),设计成其他铜厚将较难控制铜厚厚度公差。若外层使用 1OZ铜箔,则最终铜厚将达到 65 微米。

2、 PCB 板迹线的上下线宽

由于侧蚀的影响, PCB 迹线的截面为一梯形,上下线宽差距以 1mil 来计算,其中下线宽=要求线宽,而上线宽=要求线宽-1mil。

3、 阻焊层

阻焊层厚度按 10um 为准(选择盖阻焊模式),但有机印后将会有所增厚,但其变化将基本不会带来阻抗值的变化。

4、 介质厚度

常用板材(芯板): (mm OZ/OZ *表示其数值为不包括铜箔厚度的芯板厚度)
0.13* 1/1 0.21* 1/1 0.25* 1/1 0.36* 1/1
0.51* 1/1 0.71* 1/1 0.80* 1/1
1.0 1/1 1.2 1/1 1.6 0.5/0.5 1.6 1/1 1.6 2/2
2.0 1/1 2.0 2/2 2.4 1/1 3.0 1/1 3.2 1/1 
芯板在计算控制阻抗时的实际厚度: 常用半固化片: (mm/mil)
7628: 0.175/6.9
2116: 0.11/4.3
1080: 0.066/2.6
实际计算厚度时注意半固化片随着两面线路结构不同而有所不同:(mil) 
 
其中 GND 层包括铜面积占 80%以上的线路层。如果介质在 HOZ 和 1OZ 铜箔之间,其厚度按 HOZ 情况计算。

5、 介电常数

● Er 的值是线路板材质的绝缘常数(介电常数), 它对于线路的特性阻抗值而言是一个重要的组成部分。设计厂商因此有时会指定迹线阻抗值并依赖于线路板制造商来控制流程,以使迹线阻抗满足设计厂商指定的技术规范。
● 迹线的控制阻抗与板材介电常数的平房根成反比。
● 通过板材供应商提供的板材阻抗范围为 4.2~5.2,而 POLAR 公司建议单端采用 4.2,而差分若两线间距小会有所影响则建议采用 4.7。
● 根据一年多来各阻抗实验及生产板,我公司选用 4.2 进行计算能符合要求。
● 由于介电常数与板材型号和信号频率有相关性, 请设计人员能充分考虑该影响。如:高频板材有介电常数 2.5 等。 

(4)传输线阻抗控制典型应用总结

 
我们的制版要求,如果需要差分阻抗,一般会有这几个选项:
层数:4
板厚1.6mm,整板喷锡工艺。
阻抗匹配 目录中的图片信号需要100欧姆差分阻抗匹配。
 
严格禁止修改PCB图的任何东西的。
则 1.6mm 厚度的 4 层 PCB 板加工,建议做阻抗设计的时候按照 1.5mm 厚度进行设计,剩下 0.1mm 厚度留给工厂作为其他工艺要求用(后制诚厚度,绿油、丝印等)。
板厚 1.5mm(采用 1.2 35/35 的芯板,其余两个介质层为 2116)。 
L1/L4 层差分信号(阻抗控制为 100Ω)的线宽/间距可以为 5/5、 5/6、 6/7、 6/8、 6/9(mil/mil)
L1/L4 层差分信号(阻抗控制为 75Ω)的线宽/间距可以为 10/7、 10/6、 11/9、 11/10、10/11(mil/mil)①
计算单端阻抗和差分阻抗的界面分别如下图一和图二: 
L1 和 L2 层、 L3 和 L4 层之间的介质层用 2116,模式为 Copper/Gnd(HOZ), 所以 厚度 H=4.6mil,介电常数为 4.5,外层铜厚为 1OZ(1.9mil)。
实际板厚: 0.01+0.048+0.12+1.2+0.12+0.048+0.01=1.556mm。②
注 1:此处差分信号表示方式线宽/间距中的间距指的是两条差分线内侧边到边的距离,在 Allegro 中设置布线规则中也使用内侧边到边的距离, 但在有些参考中用的是两条差分线中心到中心的距离, 在应用时要注意加以区别。 例: 8/8(mil/mil)的差分线如果间距是用内侧边到边的距离表示,则差分线中心到中的间距表示为 8/16(mil/mil)。
注 2: 实际板厚计算中 0.01 代表的时 PCB 板表面的阻焊层, 阻焊层不会影响控制阻抗,单会影响 PCB 板的整体厚度。 
 
其他层自行查看,不过层结构值得看一下:
四层板:最常用的信号叠层顺序为 Sig/Gnd/Power/Sig
六层板:较容易实现阻抗控制的的信号叠层顺序为 Sig/Gnd/Sig/Sig/Power/Sig
六层板:还有一种结构不对称的叠层顺序经常用道: Sig/Gnd/Sig/Gnd/Power/Sig
八层板:对称结构Sig/Gnd/Sig/Gnd/Power/Sig/Gnd/Sig
十层板:信号顺序 Sig/Gnd/Sig/Sig/Gnd/Gnd/Sig/Sig/Gnd/Sig(结构对称)
十二层板:信号顺序Sig/Gnd/Sig/Gnd/Sig/Gnd/Gnd/Sig/Gnd/Sig/Gnd/Sig
或参看:Altium Designer -- PCB 叠层设计

(5)总结

 

阻抗计算参数与阻抗影响关系:

1.  H介质层厚度     H与Zo成正比,H值越大,Zo越大; 2.  W1线宽    W1与Zo成反比,W1值越大,Zo越小; 3.  T 铜厚      T与Zo成反比,T值越大,Zo越小; 4.  Er 介电常数      Er与Zo成反比,Er值越大,Zo越小; 5.  S差动阻抗线间距     S与Zo成正比,S值越大,Zo越大;

 

主要通过下面的途径对阻抗设计进行微调:

◆ 调整阻抗控制线宽、间距; ◆ 调整介质层厚度。

总结:

阻抗控制线宽、间距、叠层结构,这些是硬件工程师在 PCB 设计时设置的,一般制版时要求严格禁止修改PCB图的任何东西的。至于介电常数、介质厚度、成品铜厚,这些是与材质有关,这就是PCB 加工厂家的事了。

 

这篇关于(转)【PCB布局布线】之差分布线和阻抗匹配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094918

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Apache Tiles 布局管理器

陈科肇 =========== 1.简介 一个免费的开源模板框架现代Java应用程序。  基于该复合图案它是建立以简化的用户界面的开发。 对于复杂的网站,它仍然最简单,最优雅的方式来一起工作的任何MVC技术。 Tiles允许作者定义页面片段可被组装成在运行一个完整的网页。  这些片段,或Tiles,可以用于为了降低公共页面元素的重复,简单地包括或嵌入在其它瓦片,制定了一系列可重复使用

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

Allegro PCB--报错

1。 走线上打孔 问题:在走线上打的Via,我通过"Assign net to Via", 给与网络。成功后。 跑Tools\Database check\ Update all DRC(including batch), Via 网络又没有了 原因& 解决方法: VIA没有和走线完全重合 换个方法: 直接在线上打孔 或者走线change成shape, 或者用细导线把孔连到线路上。

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化

html记账本改写:数据重新布局,更好用了,没有localStorage保存版本

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>htm记账本</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid bla

Qt-常用控件(3)-多元素控件、容器类控件和布局管理器

1. 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件.QTableView 自身不持有数据,使用 QTab

【CSS】flex布局 - 左边超过打点, 右边完整展示

场景:宽度一定的情况下右边自适应,左边被挤压。 需要的效果如下: flex 的三个参数分别对应:flex-grow、flex-shrink、flex-basis。 flex-grow:定义项目的放大比例,默认为0。即如果存在剩余空间,也不放大。flex-shrink:定义项目的缩小比例,默认为1。即如果空间不足,该项目将缩小。flex-basis:定义在分配多余空间之前,项目占据的主轴空间。