硬件

硬件原理图中的“英文缩写”大全

demi的头像

常用控制接口

EN:Enable,使能。使芯片能够工作。要用的时候,就打开EN脚,不用的时候就关闭。有些芯片是高使能,有些是低使能,要看规格书才知道。

CS:Chip Select,片选。芯片的选择。通常用于发数据的时候选择哪个芯片接收。例如一根SPI总线可以挂载多个设备,DDR总线上也会挂载多颗DDR内存芯片,此时就需要CS来控制把数据发给哪个设备。

RST:Reset,重启。有些时候简称为R或者全称RESET。也有些时候标注RST_N,表示Reset信号是拉低生效。

INT:Interrupt,中断。前面的文章提到过,中断的意思,就是你正睡觉的时候有人把你摇醒了,或者你正看电影的时候女朋友来了个电话。

PD:Power Down,断电。断电不一定非要把芯片的外部供电给断掉,如果芯片自带PD脚,直接拉一下PD脚,也相当于断电了。摄像头上会用到这根线,因为一般的摄像头有3组供电,要控制三个电源直接断电,不如直接操作PD脚来的简单。(在USB Type-C接口中有一个Power Delivery也叫PD,跟这个完全不一样,不要看错了。)

常用控制接口

EN:Enable,使能。使芯片能够工作。要用的时候,就打开EN脚,不用的时候就关闭。有些芯片是高使能,有些是低使能,要看规格书才知道。

CS:Chip Select,片选。芯片的选择。通常用于发数据的时候选择哪个芯片接收。例如一根SPI总线可以挂载多个设备,DDR总线上也会挂载多颗DDR内存芯片,此时就需要CS来控制把数据发给哪个设备。

RST:Reset,重启。有些时候简称为R或者全称RESET。也有些时候标注RST_N,表示Reset信号是拉低生效。

INT:Interrupt,中断。前面的文章提到过,中断的意思,就是你正睡觉的时候有人把你摇醒了,或者你正看电影的时候女朋友来了个电话。

PD:Power Down,断电。断电不一定非要把芯片的外部供电给断掉,如果芯片自带PD脚,直接拉一下PD脚,也相当于断电了。摄像头上会用到这根线,因为一般的摄像头有3组供电,要控制三个电源直接断电,不如直接操作PD脚来的简单。(在USB Type-C接口中有一个Power Delivery也叫PD,跟这个完全不一样,不要看错了。)

CLK:Clock,时钟。时钟线容易干扰别人也容易被别人干扰,Layout的时候需要保护好。对于数字传输总线的时钟,一般都标称为xxx_xCLK,如SPI_CLK、SDIO_CLK、I2S_MCLK(Main Clock)等。对于系统时钟,往往会用标注频率。如SYS_26M、32K等。标了数字而不标CLK三个字,也是无所谓的,因为只有时钟才会这么标。

CTRL:control,控制。写CONTROL太长了,所以都简写为CTRL,或者有时候用CMD(Command)。

SW:Switch,开关。信号线开关、按键开关等都可以用SW。

PWM:PWM,这个已经很清晰了。

REF:Reference,参考。例如I_REF,V_REF等。参考电流、参考电压。

FB:Feedback。反馈。升压、降压电路上都会有反馈信号,意义和Reference是类似的,芯片根据外部采集来的电压高低,动态调整输出。外部电压偏低了,就加大输出,外部电压偏高了,就减小输出。

A/D:Analog/Digital,模拟和数字的。如DBB=Digital Baseband,AGNG=Analog Ground。

D/DATA:数据。I2C上叫做SDA(Serial DATA),SPI上叫做SPI_DI、SPI_DO(Data In,Data Out),DDR数据线上叫做D0,D1,D32等。

A/Address:地址线。用法同数据线。主要用在DDR等地址和数据分开的传输接口上。其他的接口,慢的像I2C、SPI,快的像MIPI、RJ45等,都是地址和数据放在一组线上传输的,就没有地址线了。

常用方向的标识

TX/RX:Transmit,Receive。发送和接收。这个概念用在串口(UART)上是最多的,一根线负责发送,一根线负责接收。这里要特别注意,一台设备的发送,对应另一台设备就是接收,TX要接到RX上去。如果TX接TX,两个都发送,就收不到数据了。

为了防止出错,可以标注为:UART1_MRST、UART1_MTSR。Master RX Slave TX的意思。Master就是主控芯片,Slave就是从设备。TX、RX很容易标错的,尤其是原理图有几十页的情况下。

P/N:Positive、Negative。正和负。用于差分信号线。现在除了DDR和SDIO之外,其他很少有并行数据传输接口了。USB、LAN、MIPI的LCD和Camera、SATA等等,高速数据总线几乎都变成了串行传输数据了。

串行信号线速度很高,随便就上GHz,电压很低只有几百毫伏,因此很容易被干扰,要做成差分信号,即用两根线传一个数据,一个传正的一个传负的。传到另外一边,数据相减,干扰信号被减掉,数据信号负负得正被加倍。

对于RESET_N这样的信号来讲,只起到重点标注的作用,表示这个RESET信号是拉低才生效的。大部分设备都是低有效的RESET,偶尔会有一些设备拉高RESET。

L/R:Left、Right。通常用于音频线,区分左右。有些时候如喇叭的信号是通过差分来传输的,就是SPK_L_N、SPK_L_P这样的标识。

如下图,某2.1声道智能音箱音频输出(喇叭连接器端)。TAS5751是音频功放,HF是高频High frequency(2.1音响有专门的低频输出)。P和N用 和-代替。

常用设备缩写

BB:Baseband,基带处理器。十几年前的的手机芯片只有通信功能,没有这么强大的AP(跑系统的CPU),手机里的主芯片都叫做Baseband基带芯片。后来手机性能强大了,还是有很多老工程师习惯把主芯片叫做BB,而不是叫CPU。

P(GPIO):很多小芯片,例如单片机,接口通用化比较高,大部分都是GPIO口,做什么用都行,就不在管脚上标那么清楚了,直接用P1,P2,P1_3这样的方式来标明。P多少就是第多少个GPIO。P1_3就是第1组的第3个GPIO。(不同组的GPIO可能电压域不一样)

BAT:Battery,电池。所有的电池电压都可以叫做VBAT。

CHG:Charge,充电。

CAM:Camera,摄像头。

LCD:显示器。

TP:Touch Panel,触摸屏。(注意不要和Test Point测试点搞混了)

DC:Direct Current,直流电。用在设备上通常用作外部直流输入接口,而不是指供电方式或者供电电压什么的,例如VCC_DC_IN的含义,就是外部DC接口供电。

来源:博客园isAndyWu

围观 365

常用控制接口

EN:Enable,使能。使芯片能够工作。要用的时候,就打开EN脚,不用的时候就关闭。有些芯片是高使能,有些是低使能,要看规格书才知道。

CS:Chip Select,片选。芯片的选择。通常用于发数据的时候选择哪个芯片接收。例如一根SPI总线可以挂载多个设备,DDR总线上也会挂载多颗DDR内存芯片,此时就需要CS来控制把数据发给哪个设备。

RST:Reset,重启。有些时候简称为R或者全称RESET。也有些时候标注RST_N,表示Reset信号是拉低生效。

INT:Interrupt,中断。前面的文章提到过,中断的意思,就是你正睡觉的时候有人把你摇醒了,或者你正看电影的时候女朋友来了个电话。

PD:Power Down,断电。断电不一定非要把芯片的外部供电给断掉,如果芯片自带PD脚,直接拉一下PD脚,也相当于断电了。摄像头上会用到这根线,因为一般的摄像头有3组供电,要控制三个电源直接断电,不如直接操作PD脚来的简单。(在USB Type-C接口中有一个Power Delivery也叫PD,跟这个完全不一样,不要看错了。)

CLK:Clock,时钟。时钟线容易干扰别人也容易被别人干扰,Layout的时候需要保护好。对于数字传输总线的时钟,一般都标称为xxx_xCLK,如SPI_CLK、SDIO_CLK、I2S_MCLK(Main Clock)等。对于系统时钟,往往会用标注频率。如SYS_26M、32K等。标了数字而不标CLK三个字,也是无所谓的,因为只有时钟才会这么标。

CTRL:control,控制。写CONTROL太长了,所以都简写为CTRL,或者有时候用CMD(Command)。

SW:Switch,开关。信号线开关、按键开关等都可以用SW。

PWM:PWM,这个已经很清晰了。

REF:Reference,参考。例如I_REF,V_REF等。参考电流、参考电压。

FB:Feedback。反馈。升压、降压电路上都会有反馈信号,意义和Reference是类似的,芯片根据外部采集来的电压高低,动态调整输出。外部电压偏低了,就加大输出,外部电压偏高了,就减小输出。

A/D:Analog/Digital,模拟和数字的。如DBB=Digital Baseband,AGNG=Analog Ground。

D/DATA:数据。I2C上叫做SDA(Serial DATA),SPI上叫做SPI_DI、SPI_DO(Data In,Data Out),DDR数据线上叫做D0,D1,D32等。

A/Address:地址线。用法同数据线。主要用在DDR等地址和数据分开的传输接口上。其他的接口,慢的像I2C、SPI,快的像MIPI、RJ45等,都是地址和数据放在一组线上传输的,就没有地址线了。

常见硬件原理图中的“英文缩写”大全,只看名字就能看懂原理图!

常用方向的标识

TX/RX:Transmit,Receive。发送和接收。这个概念用在串口(UART)上是最多的,一根线负责发送,一根线负责接收。这里要特别注意,一台设备的发送,对应另一台设备就是接收,TX要接到RX上去。如果TX接TX,两个都发送,就收不到数据了。

为了防止出错,可以标注为:UART1_MRST、UART1_MTSR。Master RX Slave TX的意思。Master就是主控芯片,Slave就是从设备。TX、RX很容易标错的,尤其是原理图有几十页的情况下。
P/N:Positive、Negative。正和负。用于差分信号线。现在除了DDR和SDIO之外,其他很少有并行数据传输接口了。USB、LAN、MIPI的LCD和Camera、SATA等等,高速数据总线几乎都变成了串行传输数据了。

串行信号线速度很高,随便就上GHz,电压很低只有几百毫伏,因此很容易被干扰,要做成差分信号,即用两根线传一个数据,一个传正的一个传负的。传到另外一边,数据相减,干扰信号被减掉,数据信号负负得正被加倍。

对于RESET_N这样的信号来讲,只起到重点标注的作用,表示这个RESET信号是拉低才生效的。大部分设备都是低有效的RESET,偶尔会有一些设备拉高RESET。

L/R:Left、Right。通常用于音频线,区分左右。有些时候如喇叭的信号是通过差分来传输的,就是SPK_L_N、SPK_L_P这样的标识。

如下图,某2.1声道智能音箱音频输出(喇叭连接器端)。TAS5751是音频功放,HF是高频High frequency(2.1音响有专门的低频输出)。P和N用 和-代替。

常见硬件原理图中的“英文缩写”大全,只看名字就能看懂原理图!

常用设备缩写

BB:Baseband,基带处理器。十几年前的的手机芯片只有通信功能,没有这么强大的AP(跑系统的CPU),手机里的主芯片都叫做Baseband基带芯片。后来手机性能强大了,还是有很多老工程师习惯把主芯片叫做BB,而不是叫CPU。

P(GPIO):很多小芯片,例如单片机,接口通用化比较高,大部分都是GPIO口,做什么用都行,就不在管脚上标那么清楚了,直接用P1,P2,P1_3这样的方式来标明。P多少就是第多少个GPIO。P1_3就是第1组的第3个GPIO。(不同组的GPIO可能电压域不一样)

常见硬件原理图中的“英文缩写”大全,只看名字就能看懂原理图!

BAT:Battery,电池。所有的电池电压都可以叫做VBAT。
CHG:Charge,充电。
CAM:Camera,摄像头。
LCD:显示器
TP:Touch Panel,触摸屏。(注意不要和Test Point测试点搞混了)
DC:Direct Current,直流电。用在设备上通常用作外部直流输入接口,而不是指供电方式或者供电电压什么的。例如VCC_DC_IN的含义,就是外部DC接口供电。

来源:网络

围观 502

做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。

下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。

一、电平(Level)
在数字电路中,1表示高电平,0表示低电平,一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0。

二、总线(Bus)
将每个外设采用独立的信号线连到处理器不可行,且处理器在单一时间内只会对一个外设进行访问,那么久采用共享的信号线将所有的芯片连在一起呢?这就是总线概念的由来。

对于总线,我们往往说总线是处理器的,而其它的外设是挂在总线上的。那有一个问题,我们每一时间只能访问挂在总线上的一个外设,那如何区分这些外设呢?和我们的路一样,我们需要用地址来区分每一个家庭,在总线上,也是采用地址来进行区分的。这样,总线就根据其功能分为两类了。一类是地址总线,这一总线上的数据只会是从处理器向外设“流”,是单向的。另一类则是数据总线,用来将数据从处理器传送到外设(从处理器的角度来说是写操作)或者是将数据从外设传送到处理器(从处理器的角度来说是读操作),显然,数据总线是双向的。也就是说,在我们的嵌入式系统中同时存在地址总线和数据总线将所有需要与处理器进行通讯的芯片连在一起的。

总线是有宽度的,正如我们的路分为“三车道”或是“四车道”,我们说32位处理器,是指其数据总线宽度是32位,也就是“有32辆车能同时跑”,显然,宽度越是宽我们的处理器速度就越是快,因为我们从外设芯片存取数据的速度会更快,这就是为什么我们的计算机向64位发展的原因。同样的,地址总线也是有宽度的,对于32位处理器其最大宽度也就是32位。

总线的概念有了,那接下来的一个问题是,即使是每一个外设都有一个地址,那这一地址记在哪里呢?是放在外设芯片上吗?如果这样的话,那就有一个问题,每一类外设的地址必须是不能重叠的,而当一个产品中需要两块一样的芯片的话,两块芯片的地址就无法区分了,看来这样操作存在问题。还有,如果这样的话每一个外设也得与(比如,32根)数据总线完全相连,并监听数据线以了解处理器是不是在“叫”自己,这样很是复杂。此外,地址也有可能因为外设种类的增多而用光。总的来说地址不能存放在外设芯片,那如何让外设知道,此时它是被处理器招换从而需要进行读写访问的呢?答案就是芯片的片选(CS, chip select)信号,或者又号使能(ENable)信号。

三、片选(CS 或EN)
片选信号对于外设芯片来讲,就是一个(也是一根)通知信号,告诉芯片“嘿,请开门,我要放些东西进来,或是拿些东西走”,这里的东西只能是数据,不可能是玉米棒什么的。那有个问题,这个信号源从哪里来呢?显然,只能从处理器来。那是不是也是像总线那样,每一个芯片都共用一根线连在一起呢?如果这样,可能处理器“一叫开门”所有的芯片都将“门”打开了。如果是处理器写数据,那可能所有的芯片都被写入同样的数据。而取数据时,每个外设芯片都向外“扔”数据,这一定会造成数据总线冲突,因为有的芯片向总线上“扔”1,有的则“扔”0,这种情况下处理器一定会“发疯”的,因为它不知道应当得到1还是0。

即然这样,那显然不能将所有的片选信号连在一起了,只能是各芯片的片选信号独立。前面提到了地址总线,我们是采用一根地址线连一个外设芯片呢?还是采用其它的方法。如果采用一根地址线连一个外设芯片,那可能最多只能挂接32个芯片了,这显然不行。其实,在现实中,是采用32位的数字来表示一个外设芯片的地址的,比如1可以表示芯片A,而6534可以表示另外一个芯片B,等等。由此看来,理论上我们可以表示2的32次方(4294967296)个设备,之所以说理论上,是因为有的设备要占用大量的地址。即然这样,那还有一个问题,如果将32位的地址总线转换成芯片的一根片选信号呢?这需要引入译码(器)的概念。

四、译码(器)
译码器将一个数据转换成一根信号线上的信号,比如3/8译码器,可以将一个位宽是3位的数据转换成8根(2的3次方)完全独立的信号线,当向数据侧写入二进制的011时,对应的是8根线的第3根,当输入二进制的111时,对应的是8根线中的最后一根。有了译码器,处理器的地址线就简化了,只要32根地址线加上外面的译码器,就可以访问大量的外设芯片了。外部设备的选择问题,我们已经解决了,现在还得回头看一看数据总线。

学习嵌入式不可不知的十六个硬件概念,你知道几个?

在嵌入式系统中,所有芯片的数据总线可以理解成是直接相连的。之所以用了“可以理解”一词,是因为为了提高总线的负载能力,其中会加入总线驱动器。为了理解,我们看一看我们生活中的自来水,比如,在北京理论上可能所有的水管是连在一起的,但中间可能为了提高水压,存在很多小的水站用来增加供水压力,而不可能全北京所有的自来水自接来自一个水厂。即然所有的数据总线是连在一起的,那就可能会有问题。当向外部设备写数据时,处理器先向地址总线输送目标外设的地址,地址译码器将其转换成一根信号的片选信号送到了目标外设,目标外设收到这一信号后,将“门”打开。接下来处理器将要传送到外设的数据往数据总线上一放,由于只有目标外设芯片打开了“门”,所以数据只会进入到目标外设,而其它的外设什么也不会收到。很好!处理器向外写数据应当没有问题,我们接下来看一看读。读的话,由于数据是从外设输送到处理器的,尽管我们采用和写一样的方法打开目标外设的“门”,但此时,其它的外设也在数据总线上,它们有可能处于1也可能处于0,是不是会影响处理器读取目标外设的数据呢?结果当然不会,但我们得引入另一个概念:高阻态。

五、高阻态
很显然,当处理器从目标外设读数据时,我们希望其它没有被选上的芯片的数据总线不会对目标外设所要传送的数据有影响,那怎么办呢?实际上,当芯片没有被选中时,其数据总线都处于高阻态。所谓的高阻态,我们可以理解成这一管脚在外设芯片内部是断开的,如此一来,显然不会对处理器从目标外设读取数据造成任何的影响了。我们说当一个芯片没有被选中或是没有被使能时,其数据总线一定是处于高阻态的。前面用了“门”的开和关来打比方,那“门”是指什么呢?是指外设的数据总线,片选信号的作用就是控制将外设的数据总线与处理器的数据总线相连或是断开。

六、驱动
总线上的数据是谁放上去的我们就说谁是那一时刻的驱动者。也就是说,当处理器向外设写数据时,它是在驱动数据总线的,而当处理器从目标外设读取数据时,目标外设是在驱动数据总线的。对于地址总线,因为只可能从处理器向目标外设写,所以地址总线永远是由处理器驱动的。当一个芯片没有被选中时,我们说它并不驱动数据总线。

七、三态门
前面我们说到外设芯片的数据总线在没有被选中时其处于高阻态,当被选中时,其电平可能是高(1)或是低(0)。如此一来,我们说外设的数据总线其芯片管脚是属于三态门的,即存在高电平、低电平和高阻态,三个状态。更多的关于三态门的讲解可参看前面写的文章《高阻态和三态门》。

八、电平的有效性
前面我们了解了什么是片选信号,也讲到了三态门,需要指出的是片选信号通常不是三态门,其只存在两个状态,即高电平或是低电平。前面我们也说了,片选信号是用来“开门”的,而片选信号又有高和低电平,那到底是高电平表示“开门”呢?还是低电平?对于这一问题,我们称如果一个电平对于一个片选信号表示“开门”那么它就是这一信号的有效电平。比如,对于一个片选信号,如果低电平表示“开门”,那么我们说这个片选信号是低电平有效的。虽然,在这里我们用片选信号来解释电平的有效性,但是很多信号都存在有效性的问题,比如,后面我们将要谈的读信号和写信号都存在有效性问题。

九、时序
在前面我们说到当处理器要向外设芯片写数据时,需要先将所需访问的外设的地址放在地址总线上,然后,由译码器将地址总线上的数据转换成片选信号,片选信号则使能目标外设芯片,接下来处理器写数据到数据总线上,从而完成一个写操作。显然,在处理器将数据写到数据总线之前地址线上的数据必须一直保留一段时间,否则的话译码器不能长时间的使片选信号有效。当完成了数据的写操作后,处理器就不需要保证地址总线上的地址有效了。我们可以看出,这一系列的操作都有一定严格的时间顺序的,这称之为时序。时序描述了处理器与外部设备的交互信号 “规程”,大家只有按照这一“规程”来操作,才能保证处理器与外部设备之间能正常的通讯。这好比,我们的道路上的红绿灯,如果我们行人和车辆不按照其指示来通行的话,就会出现事故。通常,采用时序图来描述芯片之间通讯的信号“规程”。

学习嵌入式不可不知的十六个硬件概念,你知道几个?
图2 读时序图

学习嵌入式不可不知的十六个硬件概念,你知道几个?
图3 读时序图

从图中我们可以看出ADDRESS是表示地址总线的,DQ是表示数据总线的,CE是片选信号,且是低电平有效,其宽度要保证在进行读操作时总是有效的。学会看时序图对于做嵌入式系统开发非常有帮助,因为我们不可避免的要与芯片打交道。在时序图中,通常会标识很多的时间需求信息。在写启动代码时需要初始化各地址空间的片选地址寄存器和读写时序,时序的配置依据就是来自于外设芯片的时间需求,这是芯片手册很重要的一部分内容。当一个地址空间中存在多个外设芯片时,我们需要考虑到其中最慢的外设芯片的时间需求,否则的话有的芯片就不能正常工作。

十、读信号
当处理器需要从外设芯片读取信号时,除了需要产生片选信号外,还需要告诉外设芯片这是一个读操作,而不是一个写操作,这是通过读信号来实现的。

十一、写信号
前面讲了读信号,我想对于写信号也就不难理解了,这个信号用于告诉外设芯片,这是一个向外设芯片写数据的操作。

十二、I/O端口
前面提到了外设(芯片)),现在是对外设进行分类的时候了。大体上外设分为两类,一类是存储器外设,而另一类是非存储器外设,后者常被称之为I/O设备,这里的I/O是Input/Output的简写,即输入、输出。可见,I/O外设是一个非常宽泛的概念。对于存储器外设,其特点是,它所占用的空间是连续的一片。比如,SDRAM内存就是属于存储器外设,如果其容量是8M字节,那么其占用的地址空间也会是8M的。与存储器外设所不同的是,I/O外设所点用的地址一般都很少。比如一个I/O外设可能存在多个控制寄存器,这些控制寄存器从处理器来看就是多个I/O端口(地址),向这个地址写数据就是向外设所对应的寄存器写数据,反之,也可以是读。比如,一个串口芯片可能存在多个寄存器,一个用来查询芯片的状态,一个用来设置芯片的功能,另一个用来读取芯片从串口线所收到的数据,最后,还有一个用来向芯片写数据以向串口线上发送数据。对于这一串口芯片的寄存器,从处理器的角度来看,都是独立的I/O端口。

I/O端口存在读、写性问题,有的端口是只读的,有的端口是只写的,还有的端口是即可读也可写,其读写性是由外设芯片的寄存器所决定的,在芯片的数据手册中能找到。需要指出的是,有些存储器外设也存在I/O端口,以对其进行一定的控制。从I/O端口这一名字来看,对于处理器来说,就是对从外面读入数据或是向外面输出数据的一个接口总称。

十三、中断
中断从硬件的角度来看就是一个能产生高、低电平的一根信号线,但理解它需要从处理器的角度出发。我们说过了,处理器从微观上看,所做的工作是按顺序进行的,其对程序的处理只能是一条指令一条指令的执行。如果存在需要对外设芯片进行访问,而有可能从处理器发出读、写命令后,由于外设通常比处理器慢很多,所以外设芯片需要一些时间来准备好所需的数据。在这种情况下,如果处理器一直等外设芯片的返回数据再执行后续的指令的话,将耗费宝贵的时间,这些时间完全可以用来做其它的工作。别忘了,从宏观上看来处理器常常是多任务的,任务是指操作系统所提供的调度单位。当一个任务因为等待外设芯片的数据而阻塞时,我们可以切换到另外的任务,从而提高处理效率。这就有一个问题,当处理器去处理另一个任务时,如果外设芯片的数据好了的话,如果告诉处理器呢?对了!就是通过中断信号。中断信号的高、低电平可以用来表示是否有中断需要处理器注意以处理特定的事件(比如,外设数据准备好了的事件)。

由此看来,中断的引入能大大的提高处理器的运用效率。为了使用处理器上的中断,一开始我们需要初始化好处理器的中断控制器,比如安装好所需的中断服务程序或称之为ISR(Interrupt Service Routine),然后,打开中断屏蔽位。

中断服务程序中需要做如下的操作:

1 从外设读入或向外设写数据。读还是写通常需要读取外设的中断状态寄存器来决定。

2 清除外设的中断信号。我们知道,中断信号是由外设芯片驱动的,为了告诉外设芯片,处理器已经处理完了所需做的工作,那么处理器需要通过一定的方式通知外设芯片。这种方式就是向外设芯片的寄存器中的某一位写入一个数据,比如,可能是写入1表示清中断,也可能是写入0表示清中断,这通常在外设的数据手册中能查到。当外设收到了处理器的清中断请求后,其就会驱动中断线使其无效。比如,一个外设的中断线是当其为低电平表示有中断,将其从低电平变为高电平就是驱动为无效。

3 清除处理器的中断信号标识。处理器中往往也会保存外部中断信号是否发生过,当我们处理完了外设芯片的中断时,我们也需要清除处理器上的标识,从而为下一次中断做准备。需要注意的是,清外设的中断必须发生在请处理器中断标识之前!

中断还存在一个触发方式问题。有两种触发方式 ,一种是电平触发,另一种是沿触发。电平触发是指电平的高低表示外设是否有中断,而沿触发则是能过中断线上的电平的升或降来表示的,显然,存在两种沿触发方式。一种是中断线从低电平变为高电平,我们称之为上升沿触发,另一处是中断线从高电平转换为低电平,我们称之为下降沿触发。总的来说中断的触发方式有电平触发、上升沿触发和下降沿触发。电平触发方式中处理中中断设置很重要的一个步骤。

十四、万用表
万用表通常是用来查看电平的高低、电阻的大小等的,是常用且必不可少的工具之一。在嵌入式系统开发中,我们常用的是数字万用表。

十五、示波器
在嵌入式系统开发中,我们不可避免的要与外设芯片打交道。调试驱动程序时,除了需要完全看明白芯片的数据手册,且在软件高度的过程中,还需要看我们所期望的信号电平是否发生在芯片上。比如,我们在写驱动程序时,需要通过写I/O端口来对外设芯片进行操作,当写相应的I/O端口时,我们知道所对应芯片的片选信号应当有效,有时,我们需要验证是否按预期发生了,这就需要用到示波器。一般的示波器是能同时观测两个信号线的信号状态的。示波器都提供一定的功能,比如设置信号扑捉的方式等等。示波器很重要的一个参数据是其采集频率,根据Nyquist采集定理,如果我们想用示波器查看频率是100M赫兹的信号,那么其采样频率必须至少是其两倍,即200M赫兹。有人可能会问:为什么不用万用表来看呢?因为万用表的采集频率很底,无法采集到很快的信号变化。

十六、逻辑分析仪
简单的说逻辑分析器就是具有很多信号通道的示波器。通过逻辑分析仪,我们可以看到地址总线和数据总线上的数据。逻辑分析仪都提供一定的编程能力,用于编程什么时候开始对总线上的数据进行采集。

来源:网络

围观 389

芯片在电子学中是一种把电路小型化的方式,主要包括半导体设备,也包括被动组件等,并通常制造在半导体晶圆表面上。

前述将电路制造在半导体芯片表面上的集成电路又称薄膜集成电路;另有一种厚膜混成集成电路是由独立半导体设备和被动组件,集成到衬底或线路板所构成的小型化电路。

集成电路产业的特色是赢者通吃,像Intel这样的巨头,巅峰时期的利润可以高达60%。那么,相对应动辄几百、上千元的CPU,它的实际成本到底是多少呢?

先来看看制造过程

芯片制作完整过程包括芯片设计、晶片制作、封装制作、成本测试等几个环节,其中晶片制作过程尤为的复杂。 精密的芯片其制造过程非常的复杂首先是芯片设计,根据设计的需求,生成的“图样”。

1、芯片的原料晶圆

晶圆的成分是硅,硅是由石英沙所精练出来的,晶圆便是硅元素加以纯化(99.999%),接着是将些纯硅制成硅晶棒,成为制造集成电路的石英半导体的材料,将其切片就是芯片制作具体需要的晶圆。晶圆越薄,生产的成本越低,但对工艺就要求的越高。

2、晶圆涂膜

晶圆涂膜能抵抗氧化以及耐温能力,其材料为光阻的一种。

3、晶圆光刻显影、蚀刻

该过程使用了对紫外光敏感的化学物质,即遇紫外光则变软。通过控制遮光物的位置可以得到芯片的外形。在硅晶片涂上光致抗蚀剂,使得其遇紫外光就会溶解。

这时可以用上第一份遮光物,使得紫外光直射的部分被溶解,这溶解部分接着可用溶剂将其冲走。这样剩下的部分就与遮光物的形状一样了,而这效果正是我们所要的。这样就得到我们所需要的二氧化硅层。

4、搀加杂质

将晶圆中植入离子,生成相应的P、N类半导体。具体工艺是是从硅片上暴露的区域开始,放入化学离子混合液中。

这一工艺将改变搀杂区的导电方式,使每个晶体管可以通、断、或携带数据。简单的芯片可以只用一层,但复杂的芯片通常有很多层,这时候将这一流程不断的重复,不同层可通过开启窗口联接起来。

这一点类似多层PCB板的制作制作原理。 更为复杂的芯片可能需要多个二氧化硅层,这时候通过重复光刻以及上面流程来实现,形成一个立体的结构。

5、晶圆测试

经过上面的几道工艺之后,晶圆上就形成了一个个格状的晶粒。通过针测的方式对每个晶粒进行电气特性检测。

一般每个芯片的拥有的晶粒数量是庞大的,组织一次针测试模式是非常复杂的过程,这要求了在生产的时候尽量是同等芯片规格构造的型号的大批量的生产。

数量越大相对成本就会越低,这也是为什么主流芯片器件造价低的一个因素。

6、封装

将制造完成晶圆固定,绑定引脚,按照需求去制作成各种不同的封装形式,这就是同种芯片内核可以有不同的封装形式的原因。

比如:DIP、QFP、PLCC、QFN 等等。这里主要是由用户的应用习惯、应用环境、市场形式等外围因素来决定的。

7、测试、包装

经过上述工艺流程以后,芯片制作就已经全部完成了,这一步骤是将芯片进行测试、剔除不良品,以及包装。

芯片的硬件成本构成

芯片的成本包括芯片的硬件成本和芯片的设计成本。

芯片硬件成本包括晶片成本+掩膜成本+测试成本+封装成本四部分(像ARM阵营的IC设计公司要支付给ARM设计研发费以及每一片芯片的版税,但笔者这里主要描述自主CPU和Intel这样的巨头,将购买IP的成本省去),而且还要除去那些测试封装废片。

用公式表达为:

芯片硬件成本=(晶片成本+测试成本+封装成本+掩膜成本)/ 最终成品率

对上述名称做一个简单的解释,方便普通群众理解,懂行的可以跳过。

从二氧化硅到市场上出售的芯片,要经过制取工业硅、制取电子硅、再进行切割打磨制取晶圆。晶圆是制造芯片的原材料,晶片成本可以理解为每一片芯片所用的材料(硅片)的成本。

一般情况下,特别是产量足够大,而且拥有自主知识产权,以亿为单位量产来计算的话,晶片成本占比最高。不过也有例外,在接下来的封装成本中介绍奇葩的例子。

封装是将基片、内核、散热片堆叠在一起,就形成了大家日常见到的CPU,封装成本就是这个过程所需要的资金。在产量巨大的一般情况下,封装成本一般占硬件成本的5%-25%左右,不过IBM的有些芯片封装成本占总成本一半左右,据说最高的曾达到过70%.

测试可以鉴别出每一颗处理器的关键特性,比如最高频率、功耗、发热量等,并决定处理器的等级,比如将一堆芯片分门别类为:I5 4460、I5 4590、I5 4690、I5 4690K等,之后Intel就可以根据不同的等级,开出不同的售价。不过,如果芯片产量足够大的话,测试成本可以忽略不计。

掩膜成本就是采用不同的制程工艺所需要的成本,像40/28nm的工艺已经非常成熟,成本也低——40nm低功耗工艺的掩膜成本为200万美元;28nm SOI工艺为400万美元;28nm HKMG成本为600万美元。

不过,在先进的制程工艺问世之初,耗费则颇为不菲——在2014年刚出现14nm制程时,其掩膜成本为3亿美元(随着时间的推移和台积电、三星掌握14/16nm制程,现在的价格应该不会这么贵);而Intel正在研发的10nm制程。根据Intel官方估算,掩膜成本至少需要10亿美元。

不过如果芯片以亿为单位量产的话(貌似苹果每年手机+平板的出货量上亿),即便掩膜成本高达10亿美元,分摊到每一片芯片上,其成本也就10美元。而这从另一方面折射出为何像苹果这样的巨头采用台积电、三星最先进,也是最贵的制程工艺,依旧能赚大钱,这就是为什么IC设计具有赢者通吃的特性。

像代工厂要进行的光刻、蚀刻、离子注入、金属沉积、金属层、互连、晶圆测试与切割、核心封装、等级测试等步骤需要的成本,以及光刻机、刻蚀机、减薄机、划片机、装片机、引线键合机、倒装机等制造设备折旧成本都被算进测试成本、封装成本、掩膜成本中,就没有必要另行计算了。

晶片的成本

由于在将晶圆加工、切割成晶片的时候,并不是能保证100%利用率的,因而存在一个成品率的问题,所以晶片的成本用公式表示就是:

晶片的成本=晶圆的成本/(每片晶圆的晶片数*晶片成品率)

由于晶圆是圆形的,而晶片是矩形的,必然导致一些边角料会被浪费掉,所以每个晶圆能够切割出的晶片数就不能简单的用晶圆的面积除以晶片的面积,而是要采用以下公式:

每个晶圆的晶片数=(晶圆的面积/晶片的面积)-(晶圆的周长/(2*晶片面积)的开方数)

晶片的成品率和工艺复杂度、单位面积的缺陷数息息相关,晶片的成品率用公司表达为:

晶片的成品率=(1+B*晶片成本/A)的(-A次方)

A是工艺复杂度,比如某采用40nm低功耗工艺的自主CPU-X的复杂度为2~3之间;
B是单位面积的缺陷数,采用40nm制程的自主CPU-X的单位面积的缺陷数值为0.4~0.6之间。

假设自主CPU-X的长约为15.8mm,宽约为12.8mm,(长宽比为37:30,控制一个四核芯片的长宽比在这个比例可不容易)面积约为200平方毫米(为方便计算把零头去掉了)。

一个12寸的晶圆有7万平方毫米左右,于是一个晶圆可以放299个自主CPU-X,晶片成品率的公式中,将a=3,b=0.5带入进行计算,晶片成品率为49%,也就是说一个12寸晶圆可以搞出146个好芯片,而一片十二寸晶圆的价格为4000美元,分摊到每一片晶片上,成本为28美元。

芯片硬件成本计算

封装和测试的成本这个没有具体的公式,只是测试的价格大致和针脚数的二次方成正比,封装的成本大致和针脚乘功耗的三次方成正比。如果CPU-X采用40nm低功耗工艺的自主芯片,其测试成本约为2美元,封装成本约为6美元。


因40nm低功耗工艺掩膜成本为200万美元,如果该自主CPU-X的销量达到10万片,则掩膜成本为20美元,将测试成本=2美元,封装成本=6美元,晶片成本=28美元代入公式,则芯片硬件成本=(20+2+6)/0.49+28=85美元

自主CPU-X的硬件成本为85美元。

如果自主CPU-Y采用28nm SOI工艺,芯片面积估算为140平方毫米,则可以切割出495个CPU,由于28nm和40nm工艺一样,都属于非常成熟的技术,切割成本的影响微乎其微,因此晶圆价格可以依旧以4000万美元计算,晶片成品率同样以49%的来计算,一个12寸晶圆可以切割出242片晶片,每一片晶片的成本为16美元。

如果自主CPU-X产量为10万,则掩膜成本为40美元,按照封装测试约占芯片总成本的20%、晶片成品率为49%来计算,芯片的硬件成本为122美元。

如果该自主芯片产量为100万,则掩膜成本为4美元,按照封装测试约占芯片总成本的20%来,最终良品率为49%计算,芯片的硬件成本为30美元。

如果该自主芯片产量为1000万,则掩膜成本为0.4美元,照封装测试约占芯片总成本的20%来,最终良品率为49%计算,芯片的硬件成本21美元。

显而易见,在相同的产量下,使用更先进的制程工艺会使芯片硬件成本有所增加,但只要产量足够大,原本高昂的成本就可以被巨大的数量平摊,芯片的成本就可以大幅降低。

芯片的定价

硬件成本比较好明确,但设计成本就比较复杂了。这当中既包括工程师的工资、EDA等开发工具的费用、设备费用、场地费用等等。

另外,还有一大块是IP费用——如果是自主CPU到还好(某自主微结构可以做的不含第三方IP),如果是ARM阵营IC设计公司,需要大量外购IP,这些IP价格昂贵,因此不太好将国内外各家IC设计公司在设计上的成本具体统一量化。

按国际通用的低盈利芯片设计公司的定价策略8:20定价法,也就是硬件成本为8的情况下,定价为20,自主CPU-X在产量为10万片的情况下售价为212美元。别觉得这个定价高,其实已经很低了,Intel一般定价策略为8:35,AMD历史上曾达到过8:50.

在产量为10万片的情况下,自主CPU-Y也采用8:20定价法,其售价为305美元;
在产量为100万的情况下,自主CPU-Y也采用8:20定价法,其售价为75美元;
在产量为1000万的情况下,自主CPU-Y也采用8:20定价法,其售价为52.5美元。

由此可见,要降低CPU的成本/售价,产量至关重要,而这也是Intel、苹果能采用相对而昂贵的制程工艺,又能攫取超额利润的关键。

PS:本文参考自作者铁流

(直接点击图片可进入调查页面)

开发板测评图片
围观 680
订阅 RSS - 硬件