Gerber文件简介

Gerber Format是电子业之间通用的资料格式,而它是被用于设计完成与上线制造PCB(Printed Circuit Board印刷电路板)的中间媒介,就像土木或机械五金业常用的Autocad软件所输出的DXF或HPGL格式一般,当设计师把图稿设计完成后所产生的与其它系统连结的工作资料档。这本是美国Gerber公司自行制定出来给该公司所生产的光学绘图机来使用的,也因此而称为Gerber data,但因为该格式颇能符合电子业间的需求,也因此大家广泛使用久而久之演变成一种业界标准的资料格式。Gerber格式是EIA标准RS一274D的子集。扩展Gerber格式是EIA标准RS一274D格式的超集,又叫RS一274X。RS一274X增强了处理多边形填充,正负图组合和自定义D码及其它功能。它还定义了Gerber数据文件中嵌入光圈表的规则。为了能够准确分析Gerber文件的数据格式,下文将先简析矢量光绘机的工作原理。

矢量光绘机工作原理

​矢量光绘机是在光源与胶片之间使用不同形状的曝光孔/符号盘/光圈(Aperture),从而在胶片上得到不同形状的图素。在光绘机上有一个光孔轮,一般是个小圆盘,上面排布着一圈曝光孔,数量为24~70。光绘机在绘图时,光头行走到指定位置,光孔轮旋转到期望的曝光孔正好出现在光源与胶片之间,然后光线穿过曝光孔在底片上曝光。将光孔轮上的曝光孔旋转到指定位置上的命令称为D码(图样码/设计图码)。曝光孔可制作成任何形状,曝光孔制作很麻烦,是一件很费时的工作,因此多数厂家都使用一种标准光孔轮。矢量光绘机在曝光焊盘时采用闪光曝光(Flash)方式,即光绘机在曝光该焊盘的瞬间静止不动,停留在焊盘所在坐标位置上,快门开启,光源闪亮曝光。而在曝光线条时,使用移动曝光方式,光绘机在线条的起始位置打开快门,开始曝光,同时光绘机按一定的速率移动至线条结束位置,关闭快门,结束曝光。光斑在底片上的移动轨迹形成线条。光绘机的移动速度和光源亮度决定了底片的感光量。在曝光焊盘时使用闪光曝光,光源开闭频繁,且曝光时间短,因此要求光源亮度高,可靠耐用;而在曝光线条时,光绘机的移动速度相对较慢,要求亮度较低,所以光绘机通常使用不同的光源分别曝光焊盘和线条,如使用高压氙灯做焊盘的曝光 光源,使用钨灯作为线条的曝光光源。

Gerber文件的数据格式

从某种意义上来说,RS-274X文件(一般后缀为GBX,GBR等)是一种脚本文件,它用于指示光绘机进行各种绘制或运动形为。

一、数据块(Data Blocks)

RS-274X 文件是由数据块组成的,每个数据块都是以(*) 结尾,每个数据块都包括了一个或多个参数,如示例:

X0Y0D02*
X10000Y0DO1*

为了增强可读性,建议相关的数据块在一行(因为一个数据块可以在多行),

二、数据类型

数据类型主要包括以下几种类型,坐标数据(Coordinate Data),功能指令(Function Codes) ,参数(Parameters)

三、坐标数据

坐标数据主要是定义在平面的中点数据,在RS274D的术语中称为地址。
坐标数据可能是:

  • 1)X和Y坐标定义的点,
  • 2)相对于X,Y方向的便移量数据,称为I,J数据
    FS(Format Specification) 格式定义指示了数字如何被解释的。
    坐标系采用右手坐标系。
    坐标是模态(modal) 的,如果一个X被忽略,则X将保留上一次的X坐标值,如果在当前层的第一个X被忽略,因为没有上一次的X的坐标值,那么X坐标将被视为零。类似地,Y坐标也是这样处理的。
    偏移量不是模态上的,如果I或J被忽略,则缺省值为零。

注意:
GERBER的读者有时候会错误地处理缺省值零。为了清晰和鲁棒性,推荐总是显式地指定第一个坐标(即便就是零,也显式指定),这样就不用考虑缺省的零。

示例:

1:  X100Y200*	点(+100, +200)
2:  Y-300*	点(+100, -300)
3:  I200J100*	平移(+200, +100)
4:  X300Y200I150J50*	点(+300,+200)且平移(+150,+50)
5:  X+100I-50*	点(+100,+200)且平移(-50,0)

四、功能指令(Function Codes):

功能指令描述的是如何解析相关联的坐标数据。如,画一条线或画一个圆。(通常,但不是所有,这些代码是延续已经过时的RS-274D的格式,它们被称为字(words)或代码(codes))。

G74*

每个指令都会影响到其后的数据块,直到遇到另外一个相同类型的代码或生成新层时结束。我们称这种持续性的活动为模态(modal)。例如G02指示的是顺时针圆弧插补(CCI, clockwise circular interpolation)。在遇到另外一个插补指令或生成新层之前,该指令后的所有坐标数据都被解释为顺时针圆弧插补。指令的细节描述后序再讨论。

五、参数 (Parameters)

参数定义了整个图像或单层的各种特征。它们被用于解释其他的数据类型,(通常,这些参数被称为Mass 参数)。控制整个图像的参数通常会放在文件的开始处。产生新层的参数被放置在文件恰当的位置。参数由两个字符加一个或多个紧随其后的可选修改符组成。参数的限定符号为“%”.每个包含在数据块内的参数必须以“*”结束。并且参数限定符必须立即跟在块结束符后面,不允许插入空格。

例如:

%FSLAX23Y23*%

参数必须是在成对的参数限定符内,限定符内可以放一个或多个参数,两个限定符之间最大的字符数为4096个。

例如:

%SFA1.0B1.0*ASAXBY*%

为了提高可读性,两个参数间允许换行,如:

%SFA1.0B1.0*

ASAXBY*%

当然,为了简化和可读性,推荐每行是只设置一个参数。与参数联合的所有数值都使用显式的小数点,如果不使用小数点,数值应当认为是整数。

参数的语法为:

%参数指令<必选修饰符>[可选修饰符]% 

语法|说明|
---|:--😐---:
参数指令(parameter code)|两个字符的指令,如AD,AM,FS等
必选修饰符(required modifiers)|必须是完整的定义
可选修饰符(optional modifiers)|依赖必选修饰符的定义

PCB各层含义及Gerber

对于不同的PCB设计就有不同的输出Gerber文件数,特别是不同板层的PCB设计差别更大。但是通常来讲有七种板层数据需要输出,这们分别是:

  • (1)Routing(丝印层):如果是两层以上板,将分为上、下或中间走线层

  • (2)Silkscreen(丝印层):多层板有上、下两层,如果底层没有丝印,则不用出;

  • (3)Plane(电源、地平面层):只是针对多层板而言(以负片输出);

  • (4)Paste Mask(SMD贴片层);
    主要针对PCB板上的SMD元件。如果板全部放置的是Dip(通孔)元件,这一层就不用输出Gerber文件了。在将SMD元件贴PCB板上以前,必须在每一个SMD焊盘上先涂上锡膏,在涂锡用的钢网就一定需要这个Paste Mask文件,菲林胶片才可以加工出来。
    Paste Mask层的Gerber输出最重要的一点要清楚,即这个层主要针对SMD元件,同时将这个层与下面即将介绍的Solder Mask作一比较,弄清两者的不同作用,因为从菲林胶片图中看这两个胶片图很相似。

  • (5)Solder Mask(主焊层);
    主要用途是保证被选项(比如元件脚焊盘和某些特殊的铜皮等)在PCB板上不被绿油覆盖而直接以铜皮的形式出现在板上,凡是需要焊接与贴的对象都一定要选择,简单地讲,在设计中如果希望某对象以裸铜的形式出现在板上,那么在输出主焊层就可以把它选上。
    对于主焊层Gerber,输出选项Pads(焊盘)一定需要选择,但是主焊层的Pads(元件脚焊盘)跟PastMask中不一样,它包括了SMD和Dip两种焊盘,而PastMask却只包含SMD焊盘。

  • (6)NC Drill(NC钻孔层);
    对于有通孔的PCB板设计,NC Drill输出文件必不可少的,没有这个文件就没法给PCB板钻孔。

  • (7)Drill Drawing(钻孔参考图层);
    钻孔参考图是为钻孔提供的一个数据参考图。输出该层时要注意在进行选项设置时,有钻孔的对象一般都需要选上,因为它的输出主要就是针对钻孔对象,比如Pads(焊盘)与Vias(过孔)等。

Gerber文件后缀名及含义

Gerber文件本身就是一个文本文件,没有固定的后缀名(像通常的Windows上的文件那样)。但通常Gerber文件还是会约定俗成地附上一个后缀名,下面是一个后缀名及其对应的含义的列表:
后缀名|含义
---|:--😐---:
.APR|光圈文件 Aperture Data
.EXTREP| 额外文件(比如中心点位置)
.REP|光圈表文件
.RUL|规则表
.GKO|Keep Out Layer 禁止布线层(可做板子外形) outline
.GTO|Top Overlay 顶层丝印 silkscreen
.GBO|Bottom Overlay 底层丝印 silkscreen
.GPT|Top Pad Master 顶层主焊盘 Parts
.GPB|Bottom Pad Master 底层主焊盘 Parts
.GTS|Top Solder 顶层阻焊(也叫防锡层,负片) solder mask
.GBS|Bottom Solder 底层阻焊(也叫防锡层,负片) solder mask
.GTL|Top Layer 顶层走线 signal
.GBL|Bottom Layer 底层走线 signal
.GTP|Top Paste 顶层表贴(做激光模板用)
.GBP|Bottom Paste 底层表贴(做激光模板用)
.G1|MidLayer1 内部走线层1
.G2|MidLayer2 内部走线层2
.G3|MidLayer3 内部走线层3
.G4|MidLayer4 内部走线层4
.GP1| lnternal Plane1 内平面1(负片)
.GP2| lnternal Plane2 内平面2(负片)
.GM1|Mechanical1 机械层1
.GM2| Mechanical2 机械层2
.GM3| Mechanical3 机械层3
.GM4|Mechanical4 机械层4
.GD1|Drill Drawing 钻孔数据
.DRL|Drill Data 钻孔数据
.TXT|Drill Position 钻孔位置
.DRR|Drill Tool size 钻孔尺寸
.LDP|Drill Report 钻孔报告

附上一个开源的Gerber渲染库(C++).

posted @ 2021-09-08 14:48  leehsiang  阅读(3079)  评论(0编辑  收藏  举报