如何快速学会阅读电路原理图

您所在的位置:网站首页 怎么看电路原理图 如何快速学会阅读电路原理图

如何快速学会阅读电路原理图

2024-07-16 14:46| 来源: 网络整理| 查看: 265

https://zhuanlan.zhihu.com/p/25894102

固件工程师负责OS和硬件交接的部分,既要熟悉软件,也要有一定的硬件知识,正所谓上得厅堂,也要下得厨房。阅读电路原理图(Schematics)是必备技能之一,本篇我们争取能快速学会原理图的基本知识,并通过结合一个真实的主板原理图的例子,来一步一步细化这些知识。

什么是原理图?原理图又称作电路原理图,是一种反映电子设备中各元器件的电气连接情况的图纸。电路图由一些抽象的符号、按照一定的规则构成。通过对电路图的分析和研究,我们就可以了解主板的电路结构和工作原理,为enable它打下坚实基础。作为一个固件工程师,我们从一个原理图中我们能读出什么呢?

1. 系统的逻辑框图。一般在原理图的前几页,描述了系统的组成框图,即系统是由哪些大块组成的。

2. 系统的电源、时钟和reset关系图。

3. 主板各个器件的连接关系,器件的型号等等。在我们不清楚具体器件功能时,详细的型号使我们可以在网上搜索到其硬件手册,快速了解其大概功用。

4. GPIO,PCI设备IRQ。PCI设备逐渐被淘汰了,PCIE设备的中断是通过发送消息(msg),由芯片的IRQ Swizzling来决定(不在本文讨论范围内),原理图不再体现这些信息。而GPIO却随着IA32应用范围的扩展,数目变得越来越多,从几十个变成了数百个,从而可以灵活应对各种应用场景。同时为了控制芯片的尺寸,降低引脚数目,GPIO往往和SOC内部的功能模块复用(multiplexed)引脚,正确配置复用(MUX)寄存器是firmware的职责,所需要的信息正是从原理图中来。

5. 跳线(Jumper),PCIE slot的连接关系等等。

原理图所含的信息十分丰富,研习原理图往往是我们enable一个板子的第一步,我们快些开始吧。

构成

一张完整的电路图是由若干要素构成的,这些要素主要包括图形符号、文字符号、连线以及注释性字符等。

1. 图形符号

图形符号是构成电路图的主体。例如小长方形表示电阻器

在这里插入图片描述

两道短杠表示电容器

在这里插入图片描述

连续的半圆形表示电感器

在这里插入图片描述

等等。各个元器件图形符号之间用连线连接起来,就可以反映出电路结构。需要说明的是这是国标GB4728,我们接触的很多是欧美国家的电路图,电阻是

在这里插入图片描述

2. 文字符号

文字符号是构成电路图的重要组成部分。为了进一步强调图形符号的性质,同时也为了分析、理解和阐述电路图的方便,在各个元器件的图形符号旁,标注有该元器件的文字符号。例如“R”表示电阻器,“C”表示电容器,“L”表示电感器,“VT”表示晶体管,“IC”表示集成电路等。

除了规定统一的图形符号和文字符号外,电路图还遵循一定的画法规则。了解并掌握电路图的一般画法规则,对于看懂电路图是必不可少的。

A. 电路图的信号处理流程方向

电路图中信号处理流程的方向一般为从左到右,即将先后对信号进行处理的各个单元电路,按照从左到右的方向排列,这是最常见的排列形式。

B.连接导线

元器件之间的连接导线在电路图中用实线表示。导线的连接与交叉处画有一圆点,表示两导线连接在一起。交点处无圆点,表示两导线交叉而不连接。跨页的连线通常起一个名字,并在旁边有些数字,表明连接到何处。

实例

我们以Intel开源硬件平台Minnowboard MAX的原理图来详细看看具体例子。

MinnowBoard MAX是Intel推出的新一代开放硬件平台,系统从硬件(原理图,BOM),固件到操作系统整体开放源代码,为广大Maker带来了福音。官方网址是:MinnowBoard MAX - MinnowBoard Wiki 从这里

http://www.elinux.org/images/f/ff/002-0004205_reva2_SCH_PUBLIC.pdf

可以下载到原理图,我们以固件工程师的眼光来看看哪些内容我们需要关心。

在这里插入图片描述

1.系统框图从上图中可以看到系统的SOC是Baytrail-I,即e3800。我们以e3800为关键字,可以在Intel的官网上下载到Datasheet。主板上包括一个USB2.0、一个USB3.0的端口;有SD卡读卡器和一个SATA口;有4个DDR3L内存颗粒(具体多大可以按照后面memory页给出的颗粒型号google);提供一个高速扩展槽和一个低速扩展槽;有一个Realtek的板载网络芯片;通过uHDMI显示画面;可以用DediProg烧写固件。

2.GPIO

通常GPIO我们可以通过寄存器设置成 GPI、GPO、GPIO、Tri-State(三态)和Native态。可以设置成native态的GPIO一般是和SOC内部功能共用引脚,有时还不只一个功能。下面我们通过两个例子来分别看看GPIO的共用情况和firmware应该如何处理。例子1如下图:

在这里插入图片描述 这是板载串口的原理图部分。可以看到SOC引脚BD14和BC16,通过TXS0102YZP(电平转换芯片),引到串口J4上。BD14和BC16从图上看是GPIO_S0_SC_57和GPIO_S0_SC_61,是不是用GPIO驱动串口呢(感觉好麻烦)?为什么到了TXS0102YZP上却标明是PCU_UART3_RXD和PCU_UART3_TXD呢?这时我们下载到的芯片datasheet就派上用场了。搜索BD14和BC16,在ball list章节看到原来GPIO_S0_SC_57和PCU_UART3_TXD共用BD14引脚,如下图。BC16类似。 在这里插入图片描述

我们这里要做的就是设置GPIO_S0_SC_57和GPIO_S0_SC_61为native F1。MinnowboardMAX的固件也是open source的,我们可以在Github上EDKII platforms的branch找到它的源程序,设置这两个GPIO的代码在PlatformSecLib.c的EnableInternalUart函数中。

另:图中写了TPxx的小篮圈是Test Point的意思,是为了测试用途而留。

第2个例子是BoardID。我们一个firmware有时要支持多种不同类型的板子,这就要求不同的板子要告诉固件其所属型号。Minnowboard MAX就支持MAX和Turbot两种主板,他们稍有不同,需要固件分别做些不同的处理,固件通过读取boardID了解其运行于何种主板,从而运行不同逻辑。原理图如下:

在这里插入图片描述 注:

DNI的小蓝字是 don’t need install,和我们电路上常用的NC是一个意思,表示此位置不贴元件,悬空。这样BOM_OP3和BOM_OP2接地,BOM_OP1接高电平(知道为什么还要串联个电阻吗?)。BOM_OP3 旁边的小数字表示页码,即连线跨页,可以直接翻到所标注页寻找它连到何处。

这里我们需要设置GPIO_S5_5、GPIO_S5_6和GPIO_S5_7为GPI(输入),这样我们读取他们,分别就会读出0、0、1来,表示这个主板是MAX,不是Turbot。程序在platform.c的DetermineCompatibleBoard函数中。

如此这般,我们可以一个个找到GPIO具体的设置,在MBM中,其他的GPIO的设置大部分可以在boardGpios.h中找到。

3.其他

一些常见电路:

1.电源去藕(降噪)功能

在这里插入图片描述 2. 时钟电路

在这里插入图片描述

3.引脚旁边的小红圈表示低电平有效。

在这里插入图片描述

引脚名称上面的横线也表示低电平有效。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3