做智能车竞赛的同学,十有八九是在嘉立创EDA里画完最后一版PCB,才想起来还有两件事没处理:板卡上的CIVC前缀二维码,和要提交的板卡文档。这两件事看着简单,实际上翻车率极高。我帮好几个队伍做过赛前检查,见过二维码打出来扫不动、丝印层没有码、文档压缩包缺少BOM表、文件命名不带队号。今年嘉立创EDA的智能车竞赛通道对板卡信息提交卡得很细,这篇就把二维码设置和文档提交的完整流程梳理一遍。内容主要基于往年赛事的通行做法和我在嘉立创EDA里的实测,具体规则以你们当届组委会的正式通知为准。
1. 为什么智能车板卡要单独扣一个“CIVC前缀二维码”
1.1 竞赛评审是怎么用这个码的
很多第一次参赛的同学会觉得,二维码是给流水线扫码用的,自己手工焊接几块板子,没必要搞这套。实际正好相反。智能车竞赛里,板卡上的二维码承担的是“身份凭证”功能:评审拿到板卡后,先扫CIVC前缀二维码,确认板卡编号,再对照你提交的板卡文档、工程源文件、BOM表,判断这块板是不是你们队自己设计、自己焊接的。它也是后续故障追溯的入口——如果调试过程中板卡损坏,厂商或组委会可以根据这个编号快速定位到对应版本的设计文件。
二维码不是装饰,更不是“加上去显得专业”的彩蛋。我在实际检查中遇到过一种典型情况:某队把二维码放在板子角落,结果打样回来后发现丝印层根本没有显示出来,因为导出Gerber时丝印层被勾掉了。这种问题在现场非常尴尬,评审只能手动在文档里翻编号,效率低,印象也差。所以QR码和文档提交其实是同一件事的两面:板卡上能扫出编号,文档里能找到对应设计,二者对上,才算完整。
1.2 CIVC前缀的编码格式与设计建议
CIVC前缀的完整编码规则,通常由赛事官方在参赛手册里给出。如果手册只要求“使用CIVC前缀作为板卡标识”,没有规定后面的格式,我建议按这种结构设计:
| 字段 | 示例 | 说明 |
|---|---|---|
| 赛事标识 | CIVC | 固定前缀,统一大写 |
| 年度 | 2025 | 方便区分不同赛季 |
| 队伍编号 | A05 | 使用官方分配的队伍号 |
| 板卡名称 | MAIN | 如主控板、驱动板、电源板,区分单板角色 |
组合起来,推荐格式是CIVC-2025-A05-MAIN。如果组委会要求的是其他格式,以官方为准,但有几条通用原则基本不会错:全部使用大写字母和数字,分隔符用短横线,不要用空格、下划线、中文或特殊符号。原因很简单:二维码对文本的容量有限,中文和空格会让编码长度明显增加,模块变密,同样尺寸下更难扫;下划线和特殊符号在某些扫码软件里会被解析成异常字符,造成前后端编号对不上。
还要注意一点:二维码内容要和提交文档的主文件名保持一致。我见过一队的二维码内容是CIVC-2025-A05-MAIN,但压缩包文件名写成了A05_final_v2,评审手动输入编号时对着半天,最后只能靠队伍名去找。这种低级不一致,直接反映的是项目管理粗心,没有额外分数,只有减分可能。
2. 在嘉立创EDA里设置CIVC前缀二维码,完整操作拆解
2.1 先用可靠方式生成二维码图片
在嘉立创EDA里放二维码,本质上不是“直接画个二维码”,而是把一张二维码图片导入到PCB的丝印层。所以第一步最关键的反而是生成图片。你要保证生成的二维码是黑白纯色、没有渐变、没有圆角、没有中间的Logo,否则丝印出来就是一团黑。
我推荐用Python的qrcode库生成,可控性最强。先安装依赖:
pip install qrcode[pil]然后跑这段代码:
import qrcode data = "CIVC-2025-A05-MAIN" qr = qrcode.QRCode( version=None, error_correction=qrcode.constants.ERROR_CORRECT_Q, box_size=10, border=4, ) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") img.save("CIVC-2025-A05-MAIN.png")参数不用多,但有几个必须提。error_correction建议用Q档,也就是约25%容错。竞赛板卡会经历运输、焊接、贴片,丝印可能被轻微刮花,容错高一点更保险。border=4表示二维码四周留4个模块宽度的白边,这是扫码识别的基本要求,很多人做错就是少了这个白边。box_size只影响输出图片的像素密度,和PCB上的最终物理尺寸没有直接关系,我习惯设为10,然后让图片以300dpi保存。
如果你不会Python,用在线二维码生成器也行。但注意两点:第一,不要选用带“艺术效果”“彩色渐变”“自定义Logo”的模板,丝印层只能输出单色,艺术效果会被简化成无法识别的噪点;第二,生成后检查二维码周围是否有白边,没有的话需要手动加白边,或者用画图工具扩一圈白色像素。
2.2 嘉立创EDA中把图片放到丝印层的正确路径
打开你的PCB工程,在PCB编辑器里找到菜单栏的“放置”(Place),选择“图片”(Image),然后选中刚才生成的PNG文件。放置后图片会跟着鼠标走,点击一个空旷位置放下,再在右侧属性面板里设置所在层。
这里的关键是:图片默认可能放在顶层铜箔层或者顶层丝印层。竞赛板卡需要在丝印层显示二维码,所以你应该把图层手动切换到“顶层丝印层”(TopSilkLayer)。如果板卡背面也要放,就选“底层丝印层”(BottomSilkLayer)。设置完成后,建议把二维码图片锁定,防止后续拖动元件时不小心把它挪走。
我实测的情况是,嘉立创EDA标准版和专业版都可以走这个流程,只是菜单名称略有区别。部分版本在“扩展”或“插件”市场里提供了二维码生成工具,可以直接输入文本生成二维码并插入PCB。有插件当然更方便,但如果没有插件,用图片导入的方式也完全可行,效果是一样的。核心逻辑没有变:图片必须清晰、放在丝印层、尺寸够大。
导入时如果发现图片带白色背景,会显示为一个白底矩形,这在丝印层上是正常的,因为丝印本身是白色。但如果你希望二维码区域只有黑白图案,没有整块白色底,可以先用图片处理软件把白色背景去掉,做成透明背景PNG。否则最终板子上二维码周围会有一块白色丝印区,虽然不是致命问题,但看起来不够干净。
2.3 尺寸、位置、镜像的实用建议
二维码的物理尺寸是最影响扫码成功率的因素。绝大多数车载摄像头和手机扫码器能够稳定识别的最小二维码模块宽度在0.4到0.5毫米左右。一个内容较短、版本为1的二维码是21×21个模块,如果每个模块0.4毫米,整码尺寸大约是8.4×8.4毫米,加上白边约11毫米。这已经是比较极限的尺寸,我建议10毫米以上更稳妥。
| 二维码内容长度 | 建议最小丝印尺寸 | 说明 |
|---|---|---|
| 短文本(如 CIVC-2025-A05) | 10×10 mm | 模块密度低,容易扫 |
| 中等文本(含完整网址) | 14×14 mm 以上 | 模块变密,需要更大面积 |
| 长文本 + 网址 + 参数 | 建议拆分为两个二维码 | 单一码过密,丝印容易糊 |
位置方面,不要放在板子边缘、螺丝孔旁边、V割拼板线附近。板边在分板时容易被切到,螺丝孔附近经常要打螺丝,二维码如果被压在铜柱下面,等于没有。我见过最惨的情况是把二维码放在了电源指示灯旁边,结果焊完灯珠,二维码被灯珠本体挡掉了一半,数据位缺失,扫描直接失败。所以放位置前,先在3D预览里确认一下:二维码上方有没有元件会覆盖它,周围有没有大电流走线从下面穿过。
镜像问题更隐蔽。二维码放在顶层丝印层时,从板卡正面看是正向的,扫码没问题。如果放在底层丝印层,从底层看也是正向的,但如果你把板子翻到正面,透过环氧板想瞄一眼,看到的二维码是镜像的,这时候去扫,大概率扫不出来。嘉立创EDA中选中图片后,属性面板里有“水平镜像”选项。我的建议是:只要允许,优先把二维码放在顶层丝印层,这样最直观;如果必须放在底层,则在文档的板卡照片里额外拍一张底层照片,让评审知道码在哪个面。不要指望评审会主动把板子翻过来找码,尽量降低对方的操作成本。
3. 板卡文档提交,不只是把Gerber传上去
3.1 提交清单:少一个文件就可能被扣分
关于智能车竞赛需要提交哪些板卡文档,不同赛事略有差别,但核心文件基本稳定。这里我按自己的项目经验整理了一份通用清单,可以根据你们当届的要求增删。
| 文件类别 | 具体文件 | 为什么需要 |
|---|---|---|
| 工程源文件 | 嘉立创EDA工程(含原理图和PCB) | 评审需要核对你的设计源文件,确认不是套用别人的板 |
| 原理图 | PDF格式 | 快速阅读电路结构,评审不可能打开工程一个个点 |
| PCB版图 | PDF格式,包含各层打印 | 查看布局布线、丝印、二维码位置 |
| 制造文件 | Gerber文件 + 钻孔文件 | 核对投板文件,部分赛事要求提供工厂审核用的原始文件 |
| BOM表 | Excel/CSV,含位号、封装、参数 | 核对元件清单,排除虚焊、错焊风险 |
| 板卡照片 | 正面、背面高清照片 | 确认实物与设计文件一致,二维码是否清晰 |
| 二维码信息 | 二维码原图 + 内容文本 | 与板卡丝印对应,便于手动输入编号 |
我见过好几个队只交Gerber和原理图,等到赛事方要求补交BOM时手忙脚乱。BOM表不是可选项,它是评审判断你焊接工艺和元件选型是否合理的重要依据。尤其涉及电源板、驱动板这类大电流板卡,评审会直接在BOM里核对电容耐压值和MOS管电流,缺一个关键参数就会影响评分。
3.2 导出操作:嘉立创EDA里每一项都在哪
在嘉立创EDA里,我习惯按以下路径导出文件,具体菜单名称以你当前版本为准:
- 原理图PDF:在原理图编辑器里,选择“文件” → “导出” → “PDF”,或者通过打印功能选择PDF虚拟打印机。
- PCB PDF:在PCB编辑器里,通过打印功能,勾选需要显示的层。这里要特别注意,默认打印可能只显示顶层,你要手动勾选“顶层丝印层”“底层丝印层”等,否则打印出来的PDF里看不到二维码。
- Gerber文件:在PCB编辑器里选择“制造” → “PCB制版文件Gerber”,在弹出的设置里确认勾选了“包含钻孔文件”“包含丝印层”“包含阻焊层”“包含助焊层”。
- BOM表:在原理图编辑器或PCB编辑器里选择“工具” → “BOM表”或“制造” → “BOM”,导出为CSV或Excel。导出后花两分钟检查一下“位号”“封装”“参数”三列是否完整,很多默认导出会把参数列空着,必须人工补。
导出Gerber是重灾区。Gerber本质是一组描述每一层图形的文件,二维码如果在丝印层,但没有勾选丝印层,生成的Gerber里就不会有二维码。更坑的是,在嘉立创EDA的PCB画面上看,二维码还在,只是导出时被丢了。我通常在导出后立刻用一个Gerber在线查看器,把上传的压缩包打开,逐层检查。重点看顶层丝印层里,二维码那几毫米的区域是否有黑白图形。没有就倒回去重新勾选导出。
3.3 命名与打包:别让文件名把评分项丢了
文件内容和文件命名一样重要。赛事方每天面对几十个队伍,压缩包文件名如果写得不清楚,评审根本不想跟你玩猜谜游戏。推荐命名规则是:
CIVC-2025-A05-MAIN_V1.0_20250520.zip含义依次是:CIVC前缀、年度、队伍编号、板卡名称、版本号、日期。这个命名和二维码内容保持了完全统一,评审看到压缩包名,就能知道里面是哪块板、哪个版本。
压缩包内部我也建议分目录管理,不要一股脑把几十个文件全扔在根目录。我常用的一种结构是这样的:
CIVC-2025-A05-MAIN/ ├── 00_README.txt ├── 01_Design_Source/ │ ├── CIVC-2025-A05-MAIN.epro │ └── CIVC-2025-A05-MAIN.pdf ├── 02_Manufacturing/ │ ├── Gerber/ │ └── BOM/ ├── 03_Images/ │ ├── front.jpg │ └── back.jpg └── 04_QRcode/ ├── QR_raw.png └── QR_content.txt压缩包建议用zip格式,不要用rar。zip在Windows、macOS、Linux下都能直接解压,rar在非Windows环境经常缺解压工具,评审现场如果打不开,第一反应不是怪自己电脑,而是觉得你提交的文件有问题。另外别把压缩包再套一层同名文件夹,比如“A05.zip”解压出来又是“A05”文件夹,里面再套一层,评委点进去很烦躁。
4. 二维码扫不出来、文档被拒?这回我把排查顺序写清楚
4.1 二维码扫码失败的现场排查链路
二维码扫不出来,不要慌,按顺序排查。我总结了一套排查链路,可以帮你快速定位问题出在生成端还是制板端。
先扫原始图片。拿出手机对着工程里的二维码图片扫描,如果能正常扫出文本,说明内容和编码没有问题,问题出在PCB丝印环节。如果连原始图片都扫不出来,那就要回头看内容了:文本里是不是混入了不可见字符,或者生成时容错率设得太低、白边被裁剪。
再看打印测试。把二维码图片打印在普通A4纸上,尺寸调到和丝印尺寸差不多,用手机扫。打印的目的是模拟低分辨率下的识别效果,如果打印纸上的二维码扫不出来,说明模块密度太高或者尺寸太小。解决方案很简单:加大物理尺寸,或者缩短编码内容。此时还在电脑阶段,改起来很快,不要等到板子回来了再发现。
最后打样回来后,用手机在自然光下扫描实物。如果实物扫不出来,但打印纸能扫出来,重点检查三件事:第一,丝印层是否被设计规则过滤;第二,二维码区域是否有阻焊颜色干扰,深色阻焊和白色丝印对比度是否足够;第三,是否放反了面,或者二维码被元件遮挡。检查顺序从“最显眼”到“最隐蔽”走,能节省不少时间。
4.2 文档提交被驳回的几种典型理由
我整理过组委会退回文档的常见理由,这里列出来,对照检查:
| 驳回理由 | 问题本质 | 对策 |
|---|---|---|
| 缺少钻孔文件 | Gerber导出时没勾选钻孔选项 | 导出时勾选“包含钻孔文件”,检查压缩包中是否有.drl文件 |
| BOM表与PCB位号不一致 | 导出BOM后没有重新核对 | 用嘉立创EDA导出后,逐项核对位号是否匹配 |
| 压缩包内文件版本混乱 | 同一工程出现多个版本文件 | 删除多余文件,只保留最终版 |
| 二维码内容与文件名不匹配 | 板卡编号未统一 | 设定统一的CIVC编号,文件名、二维码内容、文档三者保持一致 |
| 原理图PDF打印不全 | 打印时未选择全部图纸 | 打印预览里确认所有页面都在 |
| Gerber中看不到二维码 | 丝印层未勾选导出 | 用Gerber在线预览检查丝印层 |
其中“版本混乱”是我遇到最多的。很多同学画线路板时,今天是V1.0,明天改个电阻就另存为V1.1,提交前没有清理目录,导致压缩包里既有main_v1.0.sch,又有main_v1.1.sch。评审打开一看,不知道哪个是最终版,只能按文件名猜。通常文件名里带_final、_new、_last、_最终版这类后缀的,都不是好习惯。正确做法是用日期区分版本,比如V1.0_20250520,提交前把旧版本移到archive目录或者直接删掉。
4.3 我赛前半小时的验收清单
这块是纯经验。我每次在提交前会强制走一遍下面的验收清单,虽然多花半小时,但能避免在截止时间前手忙脚乱:
- 在嘉立创EDA里打开最终工程,确认PCB封装库路径没有红色报错,原理图和PCB能正常同步。
- 用3D预览旋转板卡,从正面和背面各看一遍,确认二维码没有被元件遮挡,丝印文字没有和二维码重叠。
- 导出Gerber后立刻用在线Gerber预览器打开,顶层丝印层放大看二维码区域,确认图形显示完整,白边没有被裁掉。
- 把BOM表打开,对照原理图里用到的所有位号,逐项确认没有遗漏。重点检查电阻电容的封装名字是不是有拼写不一致。
- 拿手机对着电脑屏幕上的二维码原图扫一次,确认内容正确。如果不方便,至少把二维码图片拖到浏览器地址栏直接打开,肉眼确认不是损坏图片。
- 最后把压缩包下载到另一个文件夹,双击解压,按照参赛规则逐项核对文件是否齐全。不要只在自己电脑上解压,因为有些压缩软件做了特殊处理,换个环境就出错。
这套流程跑完,基本不会出现“提交后第二天被驳回”的情况。
5. 二维码内容别再只放一串网址了
5.1 文本型前缀码是竞赛场景最稳的方案
做二维码时,很多人第一反应是放一个网址,比如队伍主页、项目文档链接。但在竞赛板卡这个场景下,我强烈建议把纯文本的CIVC前缀码作为主码,网址码作为辅助。
| 方案 | 优点 | 缺点 |
|---|---|---|
| 纯文本 CIVC-2025-A05-MAIN | 离线可扫、稳定、和文档编号一一对应 | 不能展示额外信息 |
| 网址 | 可以跳转到在线文档,内容更新灵活 | 评审现场可能没有网络,或服务不可用 |
| 文本 + 网址组合 | 信息量最大 | 二维码密度变大,丝印更容易糊 |
评审扫码的诉求很简单:最快速度知道这块板是谁的、是哪个版本。纯文本二维码完美满足这个诉求,不需要联网,不需要加载页面,哪怕评审用的扫码软件非常老旧,也能正确解析。如果评审确实需要查看在线文档,你可以把网址放在文档的README里,或者在板卡另一侧放一个辅助二维码。但不要用网址码替代CIVC前缀码,否则一旦现场网络不稳定,整个验证流程就断了。
这里还要补充一个细节:二维码内容不要带中文。虽然二维码支持中文编码,但中文会让二维码尺寸增大,而且部分扫码软件默认解码方式不同,可能出现乱码。CIVC前缀本身是英文,后续字段也是数字和短横线,是最稳妥的编码内容。
5.2 一个二维码同时带文本和网址?可以但要小心
有些队伍想通过一个二维码既显示文本又跳转链接,做法是在内容里用换行符或分号隔开,比如:
CIVC-2025-A05-MAIN;https://your-team-page.example.com/civc-2025-a05-main这个方案在技术上是可行的,但实际效果取决于扫码软件。有的扫码APP会把整个内容当成纯文本显示,有的会识别到链接并显示可点击的按钮,有的可能因为内容里同时存在文本和URL,出现解析冲突,只显示链接部分。评审现场用什么软件扫,你是没法控制的。所以稳妥起见,主码只放纯文本,辅助码如果需要再放URL。如果没有辅助码的空间,宁可不放网址,也不要强行塞进同一个码里。
两码并排时,注意两个二维码之间要留出足够的间隔。我的经验是两个码间距至少在3毫米以上,中间不要走丝印文字。不然手机取景框同时框住两个码,卡在识别边界,哪个都扫不出来。
5.3 板卡、二维码、在线文档三者怎么联动
既然二维码内容做了统一,文档管理也应当围绕这个统一编号展开。我的习惯是在队伍自己的资料平台里,用CIVC编号作为唯一索引。比如在公开的项目说明页中写:“板卡型号:CIVC-2025-A05-MAIN,扫描板卡丝印二维码可获得该编号,在资料平台搜索此编号可查看原理图、BOM和调试日志。”
这样评审扫码后拿到编号,去资料平台检索,就能看到完整的板卡档案。看似多绕了一步,实际上是有意为之:二维码里放网址,网址失效就什么都没有;二维码里放编号,编码永远有效。你可以在文档侧不断更新链接内容,而不需要重新打板。
我甚至建议队伍在工程目录里维护一个QR_codes文件夹,把每次生成的二维码原图和对应文本都存在一起。这样如果评审要求提供“二维码信息截图”,你不需要重新生成,直接拿原图上传。这个文件夹本身也天然是板卡信息登记表的一部分,方便队伍内部分工协作和后期追溯。
如果你也正在准备智能车竞赛,我建议把二维码和文档提交放在投板之前处理,而不是等板子回来再补。画好PCB后花一个小时,把二维码生成好、放到丝印层、导出Gerber、顺手把文档压缩包做出来,后面会轻松非常多。打样回来后第一时间扫码验证,确认丝印清晰度和位置没问题,再进行焊接。别等到赛前才发现二维码扫不出,那时候只能拿一块光板去现场,解释再多也不如一个能扫的码有说服力。