目录
小型团队硬件设计之元器件管理
问题现象:
1, 硬件设计完成后, BOM表的输出很费时间, 需要人工一项一项确认;
2,经常出现的购买器件的参数和设计不相符合的情况;
3,元器件的封装和实物不匹配;
4,焊接时发现某种器件没有购买,因为没有在BOM表上;
5,因为上述原因造成在焊接时,需要和焊接公司反复沟通解决问题;
如果有类似的问题, 请继续阅读。
问题原因:
在硬件设计的过程中, 设计人员经常为了图省事或者是为了所谓的赶进度,在设计中任意修改参数,造成后续数据不一致。
解决问题的总体思路:
1, 元器件需要一套机制和流程来管理;
2, 器件需要有单独的数据库来保存,同时要保证数据有备份,不易被删改;
3,所有的参数修改必须在数据库中执行,不能在其他步骤中任意修改。
4,原理图设计中使用到的器件必须从数据库中调取。 在原理图中不能轻易更改原件参数。
这些参数包括元器件型号, 封装, 供应商等等。
5,最后的购买清单和焊接BOM都必须从原理图中直接产生,不能由其他文件产生,特别不能从PCB文件中导出产生。
解决问题的的具体执行步骤:
为了方便说明, 本人上传了一个DemoPackage,在阅读的过程中需要参看DemoPackage中的文件. 请感兴趣的读者先下载,并解压到C:\Demo目录下. 当然也可以解压到任意文件夹下,这里统一目录一个原因是方便在后文中的解释和说明, 另一个原因是减少使用DemoPackage时因目录出错的概率。
下载地址: https://download.csdn.net/download/dylanZheng/13204525
1,选定硬件设计工具和版本管理工具
本人公司一直使用Altium designer和SVN, 所以在此设定:
硬件工具:Altium desinger 18.01
版本控制: SVN
对于其他的硬件设计工具,需要确保能够连接外部数据库。
版本控制工具也可以使用其他的,例如git。
2,数据库的建立
Altium designer支持很多种数据库类型。有条件的建议将数据库搭建在服务器上 一般用户通过浏览器进行数据的操作和维护。
在本文档,我将直接使用excel来实现数据库的功能, 这样的优点是:
(1), 简单,容易上手。
(2),容易演示,读者也比较容易跟着步骤学习。
缺点也很明显:不能多人同时操作文件,数据容易破坏。最大的弊端是Altium designer在工作时,不能对Excel文件(数据库文件)不能进行写操作。
2.1 Excel文件格式
首先新建一个excel文件并添加多个表单。
可以参见DemoPackage中的 C:\Demo\DemoPackage\db\DB.xls文件.
在此本人先粘贴出其中的一个截图。
图一 数据库excel文件
在excel中, 不同的表单代表的是元器件分类。在上图的左下角, 分别使用200来代表电阻, 201来代表电容。。。
具体的分类方法根据需要可以自行定义,本人可以给一个参考的分类:
200 电阻
201 电容
202 电感
203 二极管
204 三极管
205 保险丝
206 晶振
207 IC芯片
208 连接器
209 模组
210 按键
211 LCD
212 线缆 螺丝垫片等安装相关
。。。。
注意在DemoPackage中的excel文件只新建了部分表单, 不包含完整表单分类。.
每一个表单中的第一行都是相同的。具体的意义如下:
图二 数据库文件的格式
StockCode: 这个是数据库的唯一键值,必须保证唯一。 它是Altium Designer用来寻找唯一器件的依据。
stockCode的格式采用的是3位+四位数字的格式。 前3位标示元器件的类别, 后四位标示元件 的顺序编号, 例如200-0001 标示是电阻(200)类的第一个元器件,200-0002标示是电阻(200)类的第二个元器件。如果要添加新的器件按照顺序往下顺排即可。例如在图二中我们要增加新的电阻器件, 它的编号就是200-0003.
Value:这个器件对应的值, 电阻类是对应的电阻值, 电容类对应的容值, IC类则是器件型号等等。 Value的内容一般比较简短, 因为它是可以显示在原理图中的。
Library Ref:这是器件对应的元件库中的名字, 必须和库文件中的名字一样,否则在原理图中添加该器件会因为找不到器件而出错;
Library Path:库文件路径。
Footprint Ref: 封装名字;
Footprint Path: 封装库文件路径;
Manufature: 制造商;
Manufacture part: 元器件的厂家型号;
Supplier1: 1号供应商;
Suppiler1 part:1号供应商的供货型号;
Supplier2和Suppiler2 part 则是2号供应商名字和型号。 一般在数据库中只提供一个供应商即可。2号供应商作为备份;
Unit price: 元器件的价格。一般价格会随数量变化, 因此这里填入的一般为100个时的价格。这样在小批量生产中计算成本价格会比较准确。
Description:元器件的详细描述。
2.2 Altium designer 的数据库文件
DemoPackage中的数据库文件是C:\Demo\DemoPackage\db\DB.Dblib文件。
打开后的内容如下
图三 ALtium designer数据库文件
由图三可以看出Altium designer使用的是microsoft excel的数据库类型,连接的数据库文件是C:\Demo\DemoPackage\db\DB.xls。
在它的左侧列出了所有的表单例如200 Resistors 等等
而在图的中下部分则是表单里面的具体内容, 也即是上节中Excel格式内容。
读者可以使用DemoPackage中的DB.Dblib文件或者自己新建一个DBfile。 新建DB文件的主要步骤如下:
(1),新建一个“Database Library“后保存为DB.DbLib。
图四 新建DB文件
(2),选定数据库的类型为Microsoft Excel。
数据库(Excel文件)路径C:\Demo\DemoPackage\db\DB.xls。DemoPackage解压在不同的路径下,该路径必须相应修改。
图五 连接数据库
然后点击connect. 正常情况下都能够连接成功。
(3),保证左侧的所有表单都使能(enable)。
图六 使能表单
(4),最后还有非常重要的一步是必须为每一个表单选择唯一的键值StockCode.
具体操作:
1,单击左侧的表单200 Resistors 确保表单200被选中;
2, 分别选择 Database field和Part parameter为 StockCode
图七 StockCode lookup
3,依次单击左侧的其他表单, 继续步骤1和2 ;
2.3 安装db库
点击Altium designer的Panels->Libraries->Libraries… 将弹出库文件安装对话框:
图八 库文件安装操作
选择DB文件C:\Demo\DemoPackage\db\DB.DbLib后可以看到文件已经安装完成。
图九 库文件安装完成
点击Close后发现Library的下拉菜单中已经有各种元件了。恭喜,元件库已经安装成功了。
图十 元件库的下拉列表
3, 新建工程
可以新建一个工程或者直接打开DemoPackage中的工程C:\Demo\DemoPackage\project\Components Demo.PrjPCB.
图十一 Demo工程
4, 解决问题
让我们来体验该方法的优越性:
1, 查看元器件的属性
在文件DemoCircuit .SchDoc中双击J1
图十二 元器件的属性
可以看见:
1)在General选项卡中Description, Design ID和Footprint中的内容来自Excel表格中的内容(黄色部分)。
2)如果点击comment的“可见按钮”, 在原理图中可以看到显示出“3.5mm 4x1 vertical Header”, 即excel表格中的value选项内容。
3)如果点击Parameter选项卡, 则原件型号,产商,供应商,价格等等都有显示。
结论:原理图中的元件属性包含有所有来自数据库(excel表格)的内容。
只要人为强制不允许在原理图中修改任何的参数属性, 则所有器件的参数都来自数据库, 不会造成不一致, 解决本人开头的问题2和3.
2 BOM的输出
现在来解决问题1, 即导出和准备BOM清单。
打开原理图DemoCircuit .SchDoc,然后点击菜单reports-> Bill of materials
图十三 BOM对话框
勾选上左下角的“Include Parameters From Database”, 然后在“All Columns”选择相应要导出的选项, 并将SotckCode和Comment拖曳到Grouped Columns, 如下图。
图十四 BOM导出内容选项
BOM的列顺序可以通过拖曳来安排。一般建议StockCode为第一列,然后点击StockCode旁边的三角形可以按照stockCode的大小顺序来排列BOM的行。
图十五 BOM导出的内容
点击Export将BOM导出为excel文件。
图十六 BOM导出操作
图十七 BOM文件的截图
这里BOM格式没有使用模板,如果想让BOM看起来更专业, 可以选择各种模板。这里不详细说明模板的使用。
图十八 BOM文件的模板
BOM导出只有第一次需要上述步骤的配置,当第一次导出后, 保存工程文件。以后对原理图进行增加器件,删除器件, 更换器件等等操作后,不需要再次配置, 只需要直接点击Export按钮即可。
如果生产部门或者采购部门需要BOM时,只要(也是必须)从相应的原理图中导出即可,能够保证原理图和BOM一直一致。
回到第一个问题:“ 硬件设计完成后, BOM表的输出很费时间, 需要人工一项一项确认”:
1),按照上述步骤, 只需要点击Export按钮就能得到BOM,非常简单。
2),因为在原理图的设计过程中完全没有修改过任何器件的任何参数信息, 所以导出的BOM一定是和数据库信息一致的,导出的BOM不需要人工一项一项确认信息。
3 问题4的解决技巧:
如果认证阅读DemoCircuit .SchDoc, 会发现原理图中存在器件SK1和Cab1, 这两个器件只有原理图符号,而没有封装信息的。因为它们是连接器的母插头和连接线, 不会体现在PCB中的。但是它们必须出现在BOM中, 所以在数据库中也为它们创建了相应的行并且也添加到了原理图中。这样在从原理图导出的BOM中就包含了它们的信息, 从而在购买器件时不会漏掉它们。
图十九 BOM中的非PCB元件
总结:
- 通过数据库的方式管理元器件,将元器件的参数从原理图中剥离的同时, 也保证了元器件的参数完全一致(所有的器件都有相同的内容选项)。
- 在执行的过程中有两个必须:
A: 必须保证所有的器件来自数据库,元件的属性不能在原理图中修改;
B:BOM的导出必须以原理图为基准。
3, 通过实践证明这种方法能够有效对元器件进行管理,大大减少BOM出错的概率。