课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。
第二课分为三部分:
这篇文章是第二课第二部分的学习笔记:MPT与RLP。
MPT,Merkle Patricia Tree,结合了Merkle Tree(默克尔树)和 Patricia Tree(帕特里夏树)的一种数据结构。
RLP,Recursive Length Prefix,一种编码方法。
这是两个非常重要的数据结构,在以太坊的区块和交易中都有用到。
先分别介绍一下Merkle Tree 和 Patricia Tree。
Merkle Tree 和 Patricia Tree Merkle Tree 和 Patricia Tree
默克尔树的解释:对每一个交易计算其散列值(Hash),再对两个散列值求他们的散列值。如果是奇数个,就把最后一个重复一次。最后得到的一个散列值就是默克尔树根的值。如图,交易1、1、2、3的散列值分别是HASH0、HASH1、HASH2、HASH3。HASH0和HASH1结合在一起计算散列值得HASH01,HASH2和HASH3结合在一起计算散列值得HASH23,接下来HASH01、HASH23结合在一起,计算散列值得HASH0123。
采用默克尔树的好处是可以方便的判断一个交易是否在区块中。
Patricia Tree,可称为压缩前缀树。如上图右半部分。相同的前缀在同一分支中,后面一同的部分分叉出来,如test和toast,都有相同的t,est和oast在两个分支中。
这个结构的好处是节省空间,因为每一级的键值可以是多个字符。
了解了Merkle Tree 和 Patricia Tree后,再来看这两者混合后的产物——MPT。
这里的原理知识单独来看不易理解,和具体的例子结合起来才更容易理解,此处先放上课件截图。在后面的例子中再做说明。
Merkle Patricia Tree 规格 Merkle Patricia Tree 规格
在MPT中,还涉及到三个小的编码标准。主要规则如图。下面结合两个例子说明一下。
三个编码标准 三个编码标准
HEX编码的例子:从ASCII码表中可以查出,b的十六进制编码为62,o的十六进制编码为6F,F在十六进制中就是15的意思。因为这是个叶子节点,最后加上0x10表示结束,也就是16。所以最后的编码为[6 2 6 15 6 2 16]
HEX-Prefix编码的例子:[6 2 6 15 6 2 16],将其最后的0x10去掉,[6 2 6 15 6 2]。前面补一个四元组,其中(倒数)第0位是区分奇偶信息的,[6 2 6 15 6 2]是偶数位,第0位是0;第1位是区分节点类型的,这是叶子节点,第1位是1。所以这个四元组就是0010是2。“如果输入key的长度是偶数则再添加一个四元组0x0在flag四元组之后。”,所以,最终的前缀是0x20。本例最终的结果,[32 98 111 98],即[0x20, 0x62, 0x6F, 0x62]
下面是综合性的例子,通过它可以很方便地理解前面的理论知识。值得多看几篇,仔细休会。
初始的key-value对为:
其中,<>中的数据为key的16进制编码。
MPT.jpg MPT.jpg
因为4组数据都有公共的6,所以这个节点的值为6,长度为1,奇数;节点类型:扩展节点;所以前缀就是0001,即1。
这是个扩展节点,它的值是一个Hashvalue,它指向一个分支节点。Hashvalue,具体指的是分支节点RLP编码的结果的散列值。(RLP见下小节)
分支节点。上面4组数据的第2位是4和8两种情况。在4的位置上存的是下面的扩展节点的散列值,在8的位置上存的是下面的叶子节点的散列值。
叶子节点。以68开头的只有一个了。所以这个节点上的四元组就是6f727365了。它是偶数位。前缀是0x20(同前文HEX-Prefix编码的例子)。这个叶子节点的value值为'stallion'。
扩展节点。在64之后,公共的部分是6f,这个扩展节点的key即为6f,前缀为0000,即00。这个扩展节点的value存放的是一个hashvalue,指向下一个节点,一个分支节点。
分支节点。646f已经表达完,这个节点的value值就是646f对应的值,'verb'。
除此之外,646f之后就是6,所以在这个分支节点的6位置上有一个散列值,指向下一个节点。
扩展节点。在646f6之后,公共的部分是7,其长度为1,奇数。所以前缀为0001。这个节点的value是一个散列值,指向下一个节点。
分支节点。646f67已经表达完,这个节点的value值就是646f67对应的值,'puppy'。
除此之外,646f67之后就是6,所以在这个分支节点的6位置上有一个散列值,指向下一个节点。
叶子节点。key为5,value为'coin'。长度为1,奇数,前缀0011,即3。
整个分析过程结束。可结合上图和前文的理论多加复习。
这小节也是理论性较强,通过例子可以方便理解。先放上课件,再根据我的理解举更多的例子。同样,学习方法也是理论和例子配合学习。其中,list的例子在下篇文章的上机实验部分再列举。 RLP的编码标准 RLP的编码标准 再举几个例子 再举几个例子
(一)晶体管的结构特性1.晶体管的结构 晶体管内部由两PN结构成,其三个电极分别为集电极(用字母C或c表示),基极(用字母B或b表示)和发射极(用字母E或e表示)。晶体管的两个PN结分别称为集电结(C、B极之间)和发射结(B、E极之间),发射结与集电结之间为基区。
根据结构不同,晶体管可分为PNP型和NPN型两类。在电路图形符号上可以看出两种类型晶体管的发射极箭头(代表集电极电流的方向)不同。PNP型晶体管的发射极箭头朝内,NPN型晶体管的发射极箭头朝外。
2.三极管各个电极的作用及电流分配 晶体管三个电极的电极的作用如下:
发射极(E极)用来发射电子;
基极(B极)用来控制E极发射电子的数量;
集电极(C极)用业收集电子。
晶体管的发射极电流IE与基极电流IB、集电极电流IC之间的关系如下:IE=IB+IC
3.晶体管的工作条件 晶体管属于电流控制型半导体器件,其放大特性主要是指电流放大能力。所谓放大,是指当晶体管的基极电流发生变化时,其集电极电流将发生更大的变化或在晶体管具备了工作条件后,若从基极加入一个较小的信号,则其集电极将会输出一个较大的信号。
晶体管的基本工作条件是发射结(B、E极之间)要加上较低的正向电压(即正向偏置电压),集电结(B、C极之间)要加上较高的反向电压(即反向偏置电压)。
晶体管发射结的正向偏置电压约等于PN结电压,即硅管为0.6~0.7V,锗管为0.2~0.3V。集电结的反向偏置电压视具体型号而定。
4.晶体管的工作状态 晶体管有截止、导通和饱和三种状态。
在晶体管不具备工作条件时,它处截止状态,内阻很大,各极电流几乎为0。
当晶体管的发射结加下合适的正向偏置电压、集电结加上反向偏置电压时,晶体管导通,其内阻变小,各电极均有工作电流产生(IE=IB+IC)。适当增大其发射结的正向偏置电压、使基极电流IB增大时,集电极电流IC和发射极电流IE也会随之增大。
当晶体管发射结的正向偏置电压增大至一定值(硅管等于或略高于0.7V,锗管等于或略高于0.3V0时,晶体管将从导通放大状态进入饱和状态,此时集电极电流IC将处于较大的恒定状态,且已不受基极电流IB控制。晶体管的导通内阻很小(相当于开关被接通),集电极与发射极之间的电压低于发射结电压,集电结也由反偏状态变为正偏状态。
(二)高频晶体管
高频晶体管(指特征频率大于30MHZ的晶体管)可分为高频小功率晶体管和高频大功率晶体管。
常用的国产高频小功率晶体管有3AG1~3AG4、3AG11~3AG14、3CG3、3CG14、3CG21、3CG9012、3CG9015、3DG6、3DG8、3DG12、3DG130、3DG9011、3DG9013、3DG9014、3DG9043等型号,部分国产高频小功率晶体管的主要参数。
常用的进口高频小功率晶体管有2N5551、2N5401、BC148、BC158、BC328、BC548、BC558、9011~9015、S9011~S9015、TEC9011~TEC9015、2SA1015、2SC1815、2SA562、2SC1959、2SA673、2SC1213等型号。
2.高频中、大功率晶体管 高频中、大功率晶体管一般用于视频放大电路、前置放大电路、互补驱动电路、高压开关电路及行推动等电路。
常用的国产高频中、大功率晶体管有3DG41A~3DG41G、3DG83A~3DG83E、3DA87A~3DA87E、3DA88A~3DA88E、3DA93A~3DA93D、3DA151A~3DG151D、3DA1~3DA5、3DA100~3DA108、3DA14A~3DA14D、3DA30A~3DA30D、3DG152A~3DG152J、3CA1~3CA9等型号。表5-3是各管的主要参数。
常用的进口高频中、大功率晶体管有2SA634、2SA636、2SA648A、2SA670、2SB940、2SB734、2SC2068、2SC2258、2SC2371、2SD1266A、2SD966、2SD8829、S8050、S8550、BD135、BD136等型号。
(三)超高频晶体管
超高频晶体管也称微波晶体管,其频率特性一般高于500MHZ,主要用于电视、雷达、导航、通信等领域中处理微波波段(300MHZ以上的频率)的信号。
1.国产超高频晶体管 常用的国产超高频晶体管有3AG95、3CG15A~3CG15D、3DG56(2G210)、3DG80(2G211、2G910)、3DG18A~3DG18C、2G711A~2G711E、3DG103、3DG112、3DG145~3DG156、3DG122、3DG123、3DG130~3DG132、3DG140~3DG148、3CG102、3CG113、3CG114、3CG122、3CG132、3CG140、3DA89、3DA819~3DA823等型号。
2.进口超高频晶体管 常用的进口超高频晶体管有2SA130、2SA1855、2SA1886、2SC286~2SC288、2SC464~2SC466、2SD1266、BF769、BF959等型号。
(四)中、低频晶体管
低频晶体管的特征频率一般低于或等于3MHZ,中频晶体管的特征频率一般低于30MHZ。
1.中、低频小功率晶体管 中低频小功率晶体管主要用于工作频率较低、功率在1W以下的低频放大和功率放大等电路中。
常见的国产低频小功率晶体管有3AX1~3AX15、3AX21~3AX25、3AX31、3BX31、3AX81、3AX83、3AX51~3AX55、3DX200~3DX204、3CX200~3CX204等型号,表5-7是各管的主要参数。
常用的进口中、低频小功率晶体管有2SA940、2SC2073、2SC1815、2SB134、2SB135、2N2944~2N2946等型号,各管的主要参数见表5-8。
2.中、低频大功率晶体管 中、低频大功率晶体管一般用在电视机、音响等家电中作为电源调整管、开关管、场输出管、行输出管、功率输出管或用在汽车电子点火电路、逆变器、不间断电源(UPS)等系统中。
常用的国产低频大功率晶体管有3DD102、3DD14、3DD15、3DD52、DD01、DD03、D74、3AD6、3AD30、3DA58、DF104等型号。
常用的进口中、低频大功率晶体管有2SA670、2SB337、2SB556K、2SD553Y、2SD1585、2SC1827、2SC2168、BD201~BD204等型号。
(五)互补对管
为了提高功率放大品的输出功率和效率,减小失真,功率放大器通常采用推挽式功率放大电路,即由两只互补晶体管分别放大一个完整正弦波的正、负半周信号。这要求两只互补晶体管的材料相, ,性能参数(例如耗散功率PCM、集电极电流ICM、反向电压VCBO、电流放大系数hFE、特征频率fT等)也要尽可能一致使用前应进行挑选“配对”。
互补对管一般采用异极性对管,即两只晶体管一只为NPN型管,另一只为PNP型管。
1.大功率互补对管 功率放大器中常用大功率互补对管及其主要参数。
2.中、小功率互补对管 功率放大器等电路中常用的中。
(六)开关晶体管
开关晶体管是一种饱和与截止状态变换速度较快的晶体管,广泛应用于各种脉冲电路、开关电路及功率输出电路中。
开关晶体管分为小功率开关晶体管和高反压大功率开关晶体管等。
1.小功率开关晶体管 小功率开关晶体管一般用于高频放大电路、脉冲电路、开关电路及同步分离电路等。
常用的国产小功率开关晶体管有3AK系列3CK系列和3DK系列,表5-13是各管的主要参数。
2.高反压大功率开关晶体管 高反压大功率开关晶体管通常均为硅NPN型,其反向电压VCBO高于800V,主要用于彩色电视机、电脑显示器中作开关电源管、行输出管或用于汽车电子点火器、电子镇流器、逆变器、不间断电源(UPS)等产品中。
常用的高反压大功率开关晶体管有2SD820、2SD850、2SD1401、2SD1403、2SD1432~2SD1433、2SC1942等型号。
(七)带阻尼行输出管
带阻尼行输出管是将高反压大功率开关晶体管与阻尼二极管、保护电阻封装为一体构成的特殊电子器件,主要用于彩色电视机或电脑显示器中。
带阻尼行输出管有金属封装(TO-3)和塑封(TO-3P)两种封装形式。
(八)差分对管
差分对管也称孪生对管或一体化差分对管,它是将两只性能参数相同的晶体管封装在一起构成的电子器件,一般用在音频放大器或仪器、仪表中作差分输入放大管。
差分对管有NPN型和PNP型两种结构。常见的国产NPN型差分对管有3DG06A~3DG06D等型号。PNP型差分对管有3CSG3、ECM1A等型号。
常见的进口NPN型差分对管有2SC1583等型号,PNP型差分对管有2SA798等型号。
(九)达林顿管
达林顿管也称复合晶体管,具有较大的电流放大系数及较高的输入阻抗。它又分为普通达林顿管和大功率达林顿管。
1.普通达林顿管 普通达林顿管通常由两只晶体管或多只晶体管复合连接而成,内部不带保护电路,耗散功率在2W以下。图5-9是普通达林顿管的基本电路。
普通达林顿管一般采用TO-92塑料封装,主要用于高增益放大电路或继电器驱动电路等。常用的普通达林顿管有PN020、MP-SA6266等型号。
2.大功率达林顿管 大功率达林顿管在普通达林顿管的基础上,增加了由泄放电阻和续流二极管组成的保护电路,稳定性较高,驱动电流更大。
大功率达林顿管一般采用TO-3金属封装或采用TO-126、TO-220、TO-3P等外形塑料封装,主要用于音频功率放大、电源稳压、大电流驱动、开关控制等电路。
(十)带阻晶体管
带阻晶体管是将一只或两只电阻器与晶体管连接后封装在一起构成的,作反相器或倒相器,广泛应用于电视机、影碟机、录像机等家电产品中。其封装外形有EM3、UMT、SST(美国或欧洲SOT-23)、SMT(SC-59/日本SOT-23)、MPT(SOT-89)、FTR和TO-92等,耗散功率为150~400mW。
1.带阻晶体管的电路图形符号及文字符号 带阻晶体管目前尚无统一标准符号,在不同厂家的电子产品中电路图形符号及文字符号的标注方法也不一样。例如,日立、松下等公司的产品中常用字母“QR”来表示,东芝公司用字母“RN”来表示,飞利浦及NEC(日电)等公司用字母“Q”表示,还有的厂家用“IC”表示,国内电子产品中可以使用晶体管的文字符号,即用字母“V”或“VT”来表示。
2.常用的带阻晶体管 常用的进口带阻三极管有DTA系列、DTB系列、DTC系列、DTD系列、MRN系列、RN系列、UN系列、KSR系列、FA系列、FN系列、GN系列、GA系列、HC系列、HD系列、HQ系列、HR系列等多种。常用的国产带阻晶体管有GR系列等。表5-18是带阻晶体管(除GR系列为国产的,其余均为进口的)内部电阻器的电阻值。
(十一)光敏三极管
光敏三极管是具有放大能力的光-电转换三极管,广泛应用于各种光控电路中。
在无光照射时,光敏三极管处于截止状态,无电信号输出。光当信号照射其基极(受光窗口)时,光敏三极管将导通,从发射极或集电极输出放大后的电信号。
1.光敏三极管的外形及符号 光敏三极管在电路中的文字符号与普通三极管相同,用字母“V”或“VT”表示。
光敏三极管有塑封、金属封装(顶部为玻璃镜窗口)环氧树脂、陶瓷等多种封装结构,引脚也分为两脚和三脚型。
2.常用的光敏三极管 常用的国产光敏三极管以硅NPN型为主有3DU11~3DU13、3DU21~3DU23、3DU31~3DU33、3DU51A~3DU51C、3DU51~3DU54、3DU111~3DU113、3DU121~3DU123~3DU131~3DU133、3DU311~3DU333、3DU411~3DU433、3DU80等型号,表5-19是各管的主要参数。
(十二)磁敏三极管
磁敏三极管是一种对磁场敏感的磁-电转换器件,它可以将磁信号转换成电信号。
常见的磁敏三极管有3CCM和4CCM等型号。3CCM采用双极型结构,具有正、反向磁灵敏度极性,有确定的磁敏感面(通常用色点标注)。
磁敏三极管一般用于电动机转速控制、防盗等各种磁控电路中。图5-18是磁敏三极管的应用电路。
(十三)恒流三极管
恒流三极管是一种可以调节和稳定电流的特殊器件。它的三个电极分别是阳极(正极)A阴极(负极)C和控制极G,通过改变恒流三极管控制极的电压,即可调节恒流值的大小。
恒流三极管一般用于限流保护和恒流标准电源,也可在直流电源等电路中作恒流器件。常用的恒流三极管有3DH010~3DH050等型号,其恒流范围为5~500Ma,工作电压为5~80V。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)