kl800.com省心范文网

电子工程师应掌握的知识


多电子工程师在某个方面精深钻研,成为某一个特殊领域的专家,从一开始的养家糊口、慢慢小 有收益、最后宝马豪宅,也是有的;这些电子工程师可能没有全面掌握这些知识,因为这些行业 用不上,例如,液晶显示器,很多行业就不需要;但是,对于一个初学者,我认为,这个提纲是 切合实际的,对于面向控制而言,已经基本够用了;对于初学者,全面地掌握这些知识是很有必 要的,因为你不知道今后需要使用什么哪些知识,而这些知识, 80%以上你会在今后的工作中使 用上,因为这是都是最基本的。熟练掌握这些知识和应用,根据不同的地区、行业和老板,月薪 应该可以在 3000 元~5000 元之间,甚至更高。 其实,可能有些你用不上,但是知道了也没有坏处;所谓书到用时方很少,又有谓艺不压身。知 识=月薪=年薪=金钱=香车宝马=…….. ,呵呵。 为什么要掌握这些知识? 实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分离时 无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂、成本越低、市场上对相应的 东东的需求越大,就越成功。这就是电子工程师的自身的价值。从成本到产品售出,之间的差价 就是企业的追求。作为企业的老板,是在市场上去寻找这样的应用;对电子工程师而言,是将老 板提出的需求或者应用按照一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大 等)在最短的时间内完成。最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有 关。这就是电子工程师的价值。 将电子产品抽象成一个硬件的模型,大约有以下组成: 1) 输入 2) 处理核心 3) 输出 输入基本上有以下的可能: 1) 键盘 2) 串行接口(RS232/485/can bus/以太网/USB) 3) 开关量(TTL,电流环路,干接点) 4) 模拟量(4~20ma、 0~10ma、0~5V(平衡和非平衡信号)) 输出基本上有以下组成: 1) 串行接口(RS232/485/can bus/以太网/USB) 2) 开关量(TTL、电流环路、干接点、功率驱动) 3) 模拟量(4~20ma, 0~10ma,0~5V(平衡和非平衡信号)) 4) LED 显示:发光管、八字 5) 液晶显示器 6) 蜂鸣器 处理核心主要有: 1) 8 位单片机,主要就是 51 系列 2) 32 位 arm 单片机,主要有 atmel 和三星系列 51 系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一的一件事情, 做多了,不如使用 arm 来做;还可以在 arm 上加一个操作系统,程序既可靠又容易编写。

1

最近三星的 arm 受到追捧,价格便宜,以太网和 USB 的接口也有,周立功的开发系统也便宜,作 为学习 ARM 的产品来说,应该是最好的;作为工业级的控制,是不是合适,在网友中有不同的看 法和争议。本公司使用 atmel ARM91 系列开发的 1 个室外使用的产品,在北京室外使用,没有任 何的通风和加热的措施,从去年的 5 月份到现在,运行情况良好。已经有个成功应用的案例。 但对于初学者来说,应该从 51 着手,一方面,51 还是入门级的芯片,作为初学者练手还是比较好 的,可以将以上的概念走一遍;很多特殊的单片机也是在 51 的核的基础上增加了一些 I/O 和 A/D、D/A;也为今后学习更高一级的单片机和 ARM 打下基础。再说了,哪个老板会将 ARM 级 别的开发放在连 51 也没有学过的新手手中? 在 51 上面去做复杂的并行扩展是没有必要的,比如,扩展 I/O 口和 A/D、D/A 等等,可以直接买 带有 A/D、D/A 的单片机;或者直接使用 ARM,它的 I/O 口线口多。可以使用 I2C 接口的芯片, 扩展 I/O 口和 A/D、D/A,以及 SPI 接口扩展 LED 显示,例如:MAX7219 等芯片。 市面上一些比较古老的书籍中还有一些并行扩展的例子,如:RAM、EPROM、A/D、D/A 等,我 觉得已经没有必要去看了,知道历史上有这些一回事就行了; 这些知识,是所有产品都具备的要素。所以要学,再具体应用。 说一个小的故事:野人献曝。 从前,有一个农民,冬天干了活后,休息晒太阳。好舒服呀。 他想,这么舒服的享受,我要献给国王,让他也能得到享受。 于是他兴冲冲地到了王宫,将他的宝贵经验献给了国王。 我现在就象这个农民,把自己认为很宝贵的经验献给大家。希望大家多提宝贵意见;拍板砖也可 以,骂我也无所谓,呵呵,随便。 第一课:51 单片机最小系统 实际上,51 单片机核心外围电路是很简单的,一个单片机+一个看门狗+一个晶振+2 个磁盘电 容; 1. 单片机:atmel 的 89C51 系列、winbond 的 78E52 系列,还有 philips 的系列,都差不多;现在 有一些有 ISP(在线下载的),就更好用了; 2. 看门狗:种类很多,我常用的有 max691/ca1161 和 DS1832 等,具体看个人习惯、芯片工作电 压、封装等。Max 系列和 DS 系列,还有 IMP 公司的,种类很多,一般只需要有最基本的功能就 可以了;原来我使用 max691,但是 max691 比较贵,因为它有电池切换功能,后来新设计电路 板,就都采用 ca1161 了。 很早以前的电路设计中,现在可能还有人使用,使用一个电阻和一个电容达成的上电复位电路; 但是,这样的复位电路一个是不可靠,为什么不可靠,网络上能找得到专门论述复位电路的文 章;更重要的是,51 系列的单片机比较容易受到干扰;没有看门狗电路是不行的,当程序跑飞 时,回不来了,死在那里。 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程 序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系 统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了 一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"

2

看门狗电路电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片 机的一个 I/O 引脚相连,该 I/O 引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低 电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞 后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就 会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片 机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位.

如上图:电路工作的时候只要定时给 CD4060 复位脉冲,就能保证 Q1 处于截至状态,从而使受控 的 NMOS 管处于导通状态给处理器电路系统供电。 该电路的优点是定时的时间可以比较长,几分钟都没问题,可以给那些需要较长时间初始化的 系统足够的时间进行初始化工作。脉冲触发喂狗,上电时通过 R2、C1、R3 自动给计数器一个复 位脉冲,确保 Vout 有输出。电路成本也低廉。 该电路的最大缺点是喂狗脉冲要求比较宽。 对于该电路还有什么地方可以改善的欢迎各位大虾提出宝贵的意见。 一个看门狗电路-电路图站一个看门狗电路一个看门狗电路 常规的做法是买一个专门的看门狗电路,完成复位电路和看门狗电路的功能。 这些芯片的资料很容易在网络上找到,通常使用百度搜索就可以了;看见有 PDF 的字样,就点击 下载;使用网际快车 flashget 下载也是最好的; 这些资料通常是 pdf 格式的文件,所以,还需要一个 pdf 的阅读器。 百度网址:http://ww.baidu.com/ 网际快车下载网址:http://www.skycn.com/soft/879.html PDF 阅读器下载网址:http://www.chinapdf.com/download.htm 实际上,有了百度和其它的搜索引擎,很方便下载到这些芯片的资料,比光盘还方便,不需要去 到处找。

3

单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境,可以试试选 用不同品牌的单片机;原来我在一个光电所,做 YAG 激光治疗机的控制部分,脉冲激光机的电源 放电的时候,能量是很大的,在采取了所有能够想到的光电隔离等措施之后,还是不行;后来, 选用了 intel 的 8031,就可以了。小声的说:当时的 philips 的单片机抗干扰性能是最差的,可能 跟 Philips 主要是用在民用领域有关。现在不知道怎么样了,有人知道的话告诉我。 单片机的输入输出口线是最容易引进干扰的地方;在严重干扰的情况下,需要将所有的口线光电 隔离。 3. 晶振:一般选用 11.0592M,因为可以准确地得到 9600 波特率和 19200 波特率;也可以使用 36.864M,这个频率是 1.8432M 的 20 倍,看别人的电路板上用过,我也没有用到。这 2 种晶振很 容易买到,价钱跟 12M 的一样。书上说,12M 的晶振也能得到 9600 的波特率,但是,实际用的 时候,会每隔一段时间就出错一次,好像累积误差一样,比较奇怪。 即使你的单片机系统不使用 RS232 接口,也可以做一个 Rs232,留着做测试,或者预留等等,没 有坏处。除非你的单片机系统的口线不够用了。 4. 磁盘电容:22pf~30pf,可以在有些书上找到什么晶振频率对应什么容量的磁盘电容,但是,我 都是随便拿来使用,反正在 11.0592M 下,都没有问题;如果你用到了更高的频率,最好还是找找 资料看看。 参见以下电路图: 如果你的单片机系统没有工作,检查步骤如下: 1. 查看门狗的复位输出,可能的话在电路板上加一个 LED,下拉,这样看起来就更方便;要是看 门狗复位信号有,往下; 2. 查单片机,看看管脚有没有问题;一般编程器能够将程序写入,说明单片机是好的;最好手头 上准备一个验证过的单片机,内部有一个简单的程序,比如,在某个口线上输出 1 个 1 秒占空比 的方波等,可以使用万用表测量。 加一句:设计产品时,要在关键的地方:电源、串口、看门狗的输出和输入、I/O 口等加不同颜色 的 LED 指示,便于调试;作为批量大的产品,可以去掉部分 LED,一方面是降低成本、一方面是 流程保密; 3. 再查磁盘电容,有些瓷片电容质量不行,干脆换了;顺便说一下,换器件最好使用吸锡带,将 焊盘内的锡吸干净,再将器件拔出,这样不会损伤焊盘内的过孔;再将新的瓷片电容焊接上去的 时候,用万用表量量是好的再焊; 4. 最后只有换晶振了;切记要买好的晶振,有些品牌质量比较好。 5. 以上按照以上步骤检测时,将无关的外围芯片去掉;因为有一些是外围器件的故障导致单片机 最小系统没有工作。 我准备写的有以下几课: 第二课 基本的芯片和分立器件 2.1 简述 2.2 74 系列

4

2.3 CD4000 系列 2.4 光耦与光电管 2.5 三极管 2.6 电容电阻 2.7 固态继电器 2.8 继电器 2.9 变压器和三端稳压器 2.10 开关电源芯片 2.11 封装知识、芯片批号等 2.12 接插件 2.13 器件选购的知识 第三课 数字量的输入输出 第四课 单片机的通讯接口 第五课 单片机系统设计的硬件构思 第六课 单片机程序的框架(汇编版本) 第七课 模拟量的输入输出 …… 各位多提宝贵意见。 保证实用。如果程序里面有一些例程,也是已经经过测试可以拿来就用的;实际上是我早年的一 些产品的程序的一部分;不好意思,都是汇编的。 写的时间只有周末会多一些,可以保证做到一周一课;尽量能够提前,但是这要看看工作忙不忙 了。 坊间有一些参考书,准备今天上午到北京中发市场转了一圈,我记得以下参考书目较好: 1. 周航慈:《单片机程序设计》 2. 徐涵芳:《MCS-51 单片机结构与设计》 3. 何立民:《……》 有了这些就基本够用了;其它的很多都是资料的翻译;如果英文不好,可以看看;英文好的话, 可以不必了,省电钱买开发系统和编程器、开发板什么的,需要什么资料直接下载 PDF 文件好 了。 要想成为电子工程师,需要宽带,在家里安装包月的 adsl 或者长宽,绝对值得。 实际上,网络上什么都有了,就是一个网络数据库,要好好利用。 网上自有黄金屋,网上自有颜如玉…… 第二课 基本的芯片和分立器件 2.1 简述 有必要对以下系列的芯片和分立器件进行介绍。 除了单片机作为控制器的核心外,作为一个产品,由很多东西构成;所以,在讲系统之前,先将 这些零零碎碎的东西一并交待。就好像一栋房子,有各种各样的构件组成,下面的这些东东就像 砖瓦一样,没有不行。 2.2 74 系列芯片 74 系列的芯片的下载地址: http://www.dainau.com/TTLDATASHEET.htm http://www.100y.com.tw/asp/class36_40.htm http://www.mcu51.com/download/digitpdf/74xx/default.htm 74 系列的芯片是古老的一族,大部分的芯片现在均已不用了,但是,实际上,在目前的系统中, 还能看到一些芯片,有些芯片现在还在系统中使用,例如: 1、 7404 – 6 个反相门

5

下载地址: http://www.hqew.com/document.detail.asp?pdid=125533 将输入的 TTL 逻辑反相,如:0->1,1->0 2、 7407 – 6 个集电极开路门 下载地址: http://www.hqew.com/document.detail.asp?pdid=125518 由于集电极开路门可以外接高电压,可以最高到 DC30V,电流最大到 39mA,通常我用它驱动 8 字数码管和继电器等大电流的负载;开路门内部结构是达林顿管的,输出的逻辑是正的; 与其类似的芯片是 7406,只不过是反相开路门。 3、 74LS573 与 74LS373 – 8 数据锁存器 74LS373 下载地址: http://www.hqew.com/document.detail.asp?pdid=129171 74LS573 下载地址: http://www.yddz.net/yddzsourse/pdf/74hc573.pdf 引入几个概念: 1. 真值表 参见 74LS373 的 PDF 的第 2 页: Dn LE OE On HHLH LHLL X L L Qo XXHZ 这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。 每个芯片的数据手册(datasheet)中都有真值表。 布尔逻辑比较简单,在此不赘述; 2. 高阻态 就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联 输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁; 高阻态的概念在 RS232 和 RS422 通讯中还可以用到。 3. 数据锁存 当输入的数据消失时,在芯片的输出端,数据仍然保持; 这个概念在并行数据扩展中经常使用到。 4. 数据缓冲 加强驱动能力。74LS244/74LS245/74LS373/74LS573 都具备数据缓冲的能力。 OE:output_enable,输出使能; LE:latch_enable,数据锁存使能,latch 是锁存的意思;

6

Dn:第 n 路输入数据; On:第 n 路输出数据; 再看这个真值表,意思如下: 第四行:当 OE=1 是,无论 Dn、LE 为何,输出端为高阻态; 第三行:当 OE=0、LE=0 时,输出端保持不变; 第二行第一行:当 OE=0、LE=1 时,输出端数据等于输入端数据; 结合下面的波形图,在实际应用的时候是这样做的: a. OE=0; b. 先将数据从单片机的口线上输出到 Dn; c. 再将 LE 从 0->1->0 d. 这时,你所需要输出的数据就锁存在 On 上了,输入的数据在变化也影响不到输出的数据了; 实际上,单片机现在在忙着干别的事情,串行通信、扫描键盘……单片机的资源有限啊。 在单片机按照 RAM 方式进行并行数据的扩展时,使用 movx @dptr, A 这条指令时,这些时序是 由单片机来实现的。 后面的表格中还有需要时间的参数,你不需要去管它,因为这些参数都是几十 ns 级别的,对于单 片机在 12M 下的每个指令周期最小是 1us 的情况下,完全可以实现;如果是你自己来实现这个逻 辑,类似的指令如下: mov P0,A 将数据输出到并行数据端口 clr LE setb LE clr LE 上面三条指令完成 LE 的波形从 0->1->0 的变化 74ls573 跟 74LS373 逻辑上完全一样,只不过是管脚定义不一样,数据输入和输出端各在一侧, PCB 容易走线;所以大家都喜欢使用这个芯片。 4、 74LS244 – 数据缓冲器 下载地址: http://www.mcu51.com/download/digitpdf/74xx/74F244.pdf 数据输出能力比较强,输出电流可以到 40mA 以上; 4 个缓冲器分成 2 组,具有高阻态控制端口 5、 74LS245 – 总线缓冲器 http://www.mcu51.com/download/digitpdf/74xx/74F245.pdf 双向数据接口,通常在 ISA 板卡上可以看到; 早期的 51 系统中,为了扩展 RAM、eprom、A/D、D/A、I/O 等经常可以看到这个片子; 为了增强驱动能力,有时是为了隔离输入和输出,主要是布线方便,象 74LS573 一样,输入、输 出在一侧,经常用到这个片子 6、 74LS138 – 三-八译码器 http://www.mcu51.com/download/digitpdf/74xx/74F138.pdf 在早期的 51 系统的扩展中,作为地址选通的片子,可以经常看到。 另外一个类似的芯片是 74LS154,是 4-16 译码器,现在更是少见了。

7

有兴趣的可以研究一下何立民的经典著作中的有关章节。 知道有这么一个芯片就可以了。 2.3 CD4000 系列 CD4000 系列的芯片,除了跟 74 系列的电气特性有所区别外,例如: 1) 电压范围宽,应该可以工作在 3V~15V,输入阻抗高,驱动能力差外,跟 74 系列的功能基本没 有区别; 2) 输入时,1/2 工作电压以下为 0,1/2 工作电压以上为 1; 3) 输出时,1=工作电压;0=0V 4) 驱动能力奇差,在设计时最多只能带 1 个 TTL 负载; 5) 如果加上拉电阻的话,至少要 100K 电阻; 6) 唯一现在使用的可能就是计数器,CD4060 的计数器可以到 14 级二进制串行计数/分频器,这个 74 系列的做不到这么; 下载地址: http://www.100y.com.tw/asp/class36_40.htm http://www.100y.com.tw/pdf_file/CD4060.PDF 2.4 ULN2003/ULN2008 它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电 动势的二极管。ULN2003 的输出端允许通过 IC 电流 200mA,饱和压降 VCE 约 1V 左右,耐压 BVCEO 约为 36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流 大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。 经常在工控的板卡中见到这个芯片。 有个完全一样的型号:MC1413,不过现在好像不怎么见到这个型号了,但是管脚与 2003 完全兼 容。 ULN2003 可以驱动 7 个继电器;ULN2008 驱动 8 个继电器。 ULN2003 下载地址: http://www.hqew.com/document.detail.asp?pdid=148212 ULN2008 下载地址: 没有找到。奇怪啊。 2.5 光耦 光耦是做什么用的?光耦是用来隔离输入输出的,主要是隔离输入的信号。 在各种应用中,往往有一些远距离的开关量信号需要传送到控制器,如果直接将这些信号接到单 片机的 I/O 上,有以下的问题: 1) 信号不匹配,输入的信号可能是交流信号、高压信号、按键等干接点信号; 2) 比较长的连接线路容易引进干扰、雷击、感应电等,不经过隔离不可靠 所以,需要光耦进行隔离,接入单片机系统。 常见的光耦有: 1) TLP521-1/ TLP521-2/ TLP521-4,分别是 1 个光耦、2 个光耦和 4 个光耦,HP 公司和日本的东 芝公司生产。

8

下载地址: http://www.100y.com.tw/pdf_file/TLP521-1-2,4.PDF 发光管的工作电流要在 10mA 时,具有较高的转换速率; 在 5V 工作时,上拉电阻不小于 5K,一般是 10K;太小容易损坏光耦; 2) 4N25/4N35,motorola 公司生产 下载地址: http://www.100y.com.tw/pdf_file/4N25-8,35-7,H11A1-5.PDF 隔离电压高达 5000V; 3) 6N136,HP 公司生产 下载地址: http://www.100y.com.tw/pdf_file/6N135-6.PDF 要想打开 6N136,需要比较大的电流,大概在 15~20mA 左右,才能发挥高速传输数据的作用。 如果对速率要求不高,其实 TLP521-1 也可以用,实际传输速率可以到 19200 波特率。 选择光耦看使用场合,tlp521-1 是最常用的,也便宜,大概 0.7~1 元; 要求隔离电压高的,选用 4N25/4N35,大概在 3 元左右; 要求在通讯中高速传输数据的,选用 6N136,大概在 4 元左右。 光耦应用的原理框图如下所示: 1. 输入干接点隔离 2. 输入 TTL 电平隔离 3. 输入交流信号隔离 4. 输出 RS232 信号隔离 5. 输出 RS422 信号隔离 光耦除了隔离数字量外,还可以用来隔离模拟量。将在今后的章节中描述。 2.6 三极管 2.7 光电管 2.8 电容 2.9 电阻 2.10 固态继电器 2.11 继电器 2.12 变压器与整流桥 2.13 三端稳压器 2.14 开关电源芯片 2.15 封装知识、芯片批号等 2.16 接插件 2.17 器件选购的知识 2.6 三极管

9

2.6.1 三极管的 4 种工作状态 1) 饱和导通状态 饱和导通=0 2) 截止状态 饱和导通=1 3) 线性放大状态 作为低频放大器时使用,具体的可参见有关电子线路的书籍; 4) 非线性工作状态 在无线电通信系统中,作为混频器等使用。具体的可参见有关电子线路的书籍; 愚记得南京工学院也就是现在的东南大学在 80 年代初期有一套《电子线路》5 本,是电子专业的 书籍,比较难懂;现在,即使是在电子专业的学生中,也应该降低了对三极管的哪些复杂的参数 的要求了吧;在实际使用时,即使是模拟电路、非线性电路,也都是集成电路了,谁还使用三极 管自己做呢?如果万一需要,现学也来得及。这套书很强的。编写人在那个年代肯定都是牛人。 学三极管这些参数很繁琐的,要是现在的非电子类的大学生或者大专生们还学这些玩意,我只能 说是学校在误人子弟了。 好多学校都在扩招,很多学生念了 4 年下来,学了一堆过时的理论,跟实际的东西一点没有接 轨,不知道 7407 是干什么用得,不知道三极管的几个状态;我只能无话可说。 所以,念了 4 年下来,跟企业的需求还有一段距离,还需要从头来过;聪明的学生赶紧抓住机会 去学习,去实习,这样,还可以赶紧补上实际应用的这一课。 言归正传。 参见下图: 当单片机的口线输出电平为 1 时,三极管的 be 结导通,ce 结导通,输出的电压值为 0V; 当单片机的口线输出电平为 0 时,三极管的 be 结不导通,ce 结截止,输出的电压值为 5V; 在这种数字电路的应用中,相当于三极管是一个反相开路门。 计算是否导通,公式如下: I=B(放大倍数,希腊字母的贝塔)× Ibe 当 Ice<I 时,即为饱和导通;< p="" /> 相差越大,饱和程度越深,Vce 越小,三极管的输出内阻越小; 这个概念要用到光电管中。

10

设计使用时大概算算,心里有个数;在电路板上试试,行的通,那就是它了。可以测量 Vce 值, 至少要小于 0.1V 就可以了。 常用的 PNP 三极管是 2N5551,驱动 40mA 的 LED(电压在 24V)、蜂鸣器等均没有问题。 2.6.2 三极管的具体应用 实际上,已经有象 7407、ULN2003 可以取代三极管在数字电路中的作用;但是,有时是受到 PCB 面积的制约,有时是为了降低成本,有时是因为布局方便,在 1~2 个输出点时,还是可以使用三 极管来做驱动的。 例如:驱动一个蜂鸣器;往往系统中的蜂鸣器跟其它驱动设备,继电器等,距离较远;这时,没 有必要使用一片 7407,或者 ULN2003 来驱动;驱动的接口如下: 上午赶紧到中发去转了一圈,看了看单片机方面的书,让我失望。 这些书的大部分内容还都是将 51 的技术资料美捶?胍幌拢?由弦恍┎⑿薪涌诘男酒 ? ? ?255/8155/8253/AD0809/DAC0832 等等,就是一本单片机的书籍了。还挺贵。可怜的学生花 了几十大元买来,学到的是陈旧的知识。 看了又看,想了再想,老树买了 2 本: 1)MCS-51 系列 单片机应用系统设计 系统配置与接口技术 何立民编著 北京航空航天大学出版社 35 元人民币 2)单片机外围电路设计 沙占友等编著 电子工业出版社 23 元人民币 何立民先生的巨著影响了看来不止是一代人,至少是 2 代人、三代人以上。主要的好处是体系比 较完整,包括了单片机的核心、芯片的时序与扩展、输入与输出(在何老师的编著中叫前向、后 向、人机、相互通道,只是说法的不同),应用程序设计、抗干扰技术,应该是,是一个大全 了。 愚斗胆建议何老师将该巨著修改如下: 1) 将并行扩展的有关内容以及一些现在不用的内容,如 GP16 打印机等,放在新编着的书的光盘 内容中,这样篇幅可以减少,又不至于查询不到;这些内容,在书中一带而过; 2)新增:I2C 的数字和模拟的扩展内容和相应的用单片机口线模拟 I2C 总线的程序; 3)新增:电源部分,包括:DC/DC 模块,MAXIM、LINEAR 公司的 step-up/step-down 等芯片的 内容,还有开关电源、线性电源等内容; 这样,就能焕发出更新的活力。 沙占友的书中有一些新的内容,象时钟电路 SD2000、电源部分,都是愚所激赏的,跟别的书籍相 比,内容新,基本没有重复的地方。 如果初学者能买到周航慈的《单片机软件设计技术》,再下载一套 89C51 或者 78E52 的数据手 册,随便从哪里找一本详细讲 51 语言的书,也就行了。这样的书,最好从图书馆借来看看。何老

11

师的书中也有一部分内容,讲程序设计的,没有详讲语言。其实最好的就是原来徐涵芳老师编著 的那本小册子,好像是《51/96 单片机设计技术》。好在是原汁原味,篇幅小而精干,也不贵。 手边的参考书有以上三位老师的编著就可以了,其它的,随便看看,如果有用,记住器件的名 字,从网络上下载下来看看就行了。 2.5 光电管 我这里所谓的光电管有 2 种: 1) 反射型光电管 2) 对射型光电管 这 2 种产品在市场上又可分为调理好的和没有调理好的; 这 2 种光电管在电子产品世界和电子技术应用杂志上都有大量的广告。随便找一本都有。 我所说的调理好的指的是内部已经加了限流电阻和输出的放大驱动电路了。它的特点是只有 3 根 线,电源 2 根,输出信号一根,TTL 电平的;但是,有时受到某种限制,需要使用没有调理好 的,怎么办呢? 参见下图:光电管原理框图 这种没有调理好的光电管在使用时,需要做一块小的电路板,在发光管加限流电阻,在光电三极 管的集电极加上拉电阻到 5V,如下图所示:光电管工作框图 1。 但是,在使用中我发现,输出的信号不稳定,尤其是在使用比较长的电缆传输到单片机的时候; 究其原因,我认为是由于反射或者对射的红外光落在光电三极管的靶面上,光强未能导致光电三 极管深度饱和,使得输出的内阻偏大,肪车脑肷?偷缋碌母扇判藕湃菀自谙呗飞系?拥脑倒 剩?br> 为了可靠工作,仿照达林顿管的结构,在光电三极管的输出端加一个限流电阻接到 NPN 的 B 结, 当无光的时候,2N5551 饱和导通,输出电压为 0V;实际测量小于 0.1V;当有光,甚至是弱光 时,2N5551 截至,输出电压为 5V。将 3K 电阻换成更大或更小的电阻,可以调整光电三极管的输 出的灵敏度。 具体工作过程可以自行分析,做个实验。 2.6 电容 2.6.1 电容的主要种类 电容有以下几大类: 1) 电解电容 2) 独石电容 3) 磁盘电容 4) 胆(左金右旦)电解电容 5) 涤纶电容等

12

电容的指标是:耐压值和电容容量。例如:220u/50V,就是说,这个电解电容耐压值为 50V,容 量为 220u。 电容的容量跟电容的介质有关。 顾名思义: 电解电容为电解质作为介质的,铝作为电极; 独石电容是使用石头作为介质的; 磁盘电容是磁盘作为介质的; 胆(左金右旦)电解电容使用电解质作为介质,但是,电极采用胆(左金右旦)金属。 涤纶电容采用涤纶作为介质。 有兴趣的网友可以拆一个电容看看。 2.6.1 电容的使用场合 1. 电源稳压和波 电解电容主要是用来稳压和低频交流滤波的;高频滤波是使用磁盘电容和独石电容。 当电解电容作为稳压时,接在整流桥和三端稳压器的输出端,起到稳定电压的作用。其工作机理 相当于一个水库,从上游来的带有波浪的水到了水库,就变的平滑了。 但是,铝电解电容的电解质随着时间的推移会干涸,所以在设计时需要留有余量,保证系统正常 工作到它的寿命。 有些远端供电的直流电源,接到电路板的输入端时,需要在电路板的电源输入端加一个大的电解 电容,通常可以是 220u/25V,这样,这块电路板需要供电时,不是直接从电源处取,而是从电容 中取电,可以得到稳定的电流供给; 但是,电解电容只能滤除低频的波动;对于直流电源中的高频波动,可以加一个 0.1u 或 0.01u 的 独石电容或者磁盘电容。 很多教科书都指出,在每一个芯片的电源和地两端接一个 0.1u 或 0.01u 的独石电容或者瓷片电 容,解决芯片的供电过程中,由于电路板的走线电感产生的电源开关噪声尖峰。这种作用下的电 容叫去耦电容。这是电路板的常规的设计; 2. 定时参数 对于象 555 这样需要外接电容产生稳定的脉冲的器件,涤纶电容是首选。可以想象,涤纶一层又 一层缠绕,受到温度变化引起的涤纶的面积的变化的相对值要远远小于独石电容的介质石头受到 温度变化而引起的变化值。 3. 产生其它电压

13

有些需要从单一电压产生其它的电压的芯片,如:max232,需要外接电容才能实现。 参见 max232 技术资料。 外接 01.u 的胆电容。 2.6.2 电容的封装 电容有直插和表面贴的不同封装。 电解电容表面贴封装的通常耐压值不超出 25V,电容值不超出 100u。再大,就只好使用直插的 了。其它的电容,磁盘和独石都有表面贴封装的。 2.7 电阻和缥黄?br> 2.7.1 电阻的种类 2.7.1.1 普通电阻 电阻种类按照工艺可以分为碳膜电阻和金属膜电阻; 按照功率可以分为小功率电阻和大功率电阻,大功率电阻通常是金属电阻,实际上应该是在金属 外面加一个金属(铝材料)散热器,所以可以有 10W 以上的功率;在电子配套市场上专门卖电阻 的市场上可以很容易地看到。 金属电阻通常是作为负载,或者作为小设备的室外加热器,如,在 CCTV 的一些解码器箱和全天 候防护罩中可以看到。 电阻在电路中起到限流、分压等作为。通常 1/8W 电阻已经完全可以满足使用。但是,在作为 7 段 LED 中,要考虑到 LED 的压降和供电电压之差,再考虑 LED 的最大电流,通常是 20mA(超高 亮度的 LED),如果是 2× 6(2 排 6 个串联),则电流是 40mA。 不同厂家选用不同材料的,压降有所不同。所以,需要加上电试一下,但是,不要让 Led 的电流 超出 20mA(单只 LED),这时加大电流亮度也不会增加,但是 LED 的寿命会下降,限流电阻的 大小就是压降除以电流。电阻的功率随之可以算出。 这个使用初中的知识就够用了。 2.7.1.2 电位器 电位器就是可调电阻。在初中学物理时,中学老师拿一个很大的圆筒状的东东,上面有一个滑 杆,跟这个东西很类似。 它的阻值在 1~n 之间变化。 N=102、502、103…… 102=10*10 的 2 次方,也就是 1000 欧姆,1K 同理,502=5K。 这种表示的方法跟电容是一样的。 电容 104=10*10 的 4 次方 pf,电容的基本单位是 pf,1u=1000000pf,所以,104=100000pf=0.1u;

14

电位器又分单圈和多圈电位器。 单圈的电位器通常为灰白色,面上有一个十字可调的旋纽,出厂前放在一个固定的位置上,不在 2 头; 多圈电位器通常为蓝色,调节的旋纽为一字,一字小改锥可调; 多圈电位器又分成顶调和侧调 2 种,主要是电路板调试起来方便。 有些是仪器仪表设备,通常是模拟电路,有一些不确定的因素,需要调节才能达到最理想的效 果;有些是设备本身就需要输出一个可变的东东,如电压和电流,也需要一个电位器。 2.7.1.3 排电阻 是 sip n 的封装,比较常用的就是阻值 502 和 103 的 9 脚的电阻排;象 sip9 就是 8 个电阻封装在一 起,8 个电阻有一端连在一起,就是公共端,在排电阻上用一个小白点表示。排电阻通常为黑色, 也有黄色;51 系统的 P0 需要一个排电阻上拉,否则,作为输入的时候,不能正常读入数据;作为 输出的时候,接 7407 是可以的,不需要上拉电阻;但是,接其它的芯片,还是不行。有兴趣可以 看看 51 的 P0 的结构;没有兴趣,依葫芦画瓢,照做没错。 2.7.1.4 光敏电阻 当照在光敏电阻上的光强变化时,电阻值也在变化。显然这是半导体材料的特性。 使用光敏电阻可以检测光强的变化。 思考题 1: 有一个 LED 显示设备,要求,当光强变化的时候,LED 的亮度随着光强变化;光线越强,LED 越亮;反之亦然。怎么使用单片机实现此项功能?可以是多级调光,如 8 级调光;也可以做成无 级调光。 2.7.2 电阻的封装 电阻的封装有表面贴和轴向的封装。 轴向封装有:axial0.4、axial0.6、axial0.8 等等;axial 在英语中就是轴的意思; 表面贴电阻的封装最常用的就是 0805;当然还有更大的;但是更大的电阻我想就不是很常用了。 电位器的封装在 protel 的书种可以很方便地找到。但是如果直接使用,可能会有一些偏差。老树 早期就犯过这种错误,导致电位器旁边的器件安装费劲。 搞硬件和软件是有所不同的,搞硬件的人,一定要精确。 在硬件上的一个小的错误,都会造成这块板的推倒重来;因为产品是不能有飞线的;而这个小小 的错误相当于软件上的一条语句,在软件调试阶段悄悄改掉,可以神不知鬼不觉;在 PCB 上,特 别恶心。而且谁都知道-老板最知道。 什么是精确呢? 1. 对你所要实现的工作的目标理解准确;

15

2. 对你的电路图要清楚每一个器件在其中所起的作用;如果不明白,可以找一个专家问问,得到 确认;如果不清楚,可以先试试; 3. 对每一个器件的封装要严格把握,该是什么形状、外形一定要完全一致;还有考虑到空间是不 是对其它的板卡器件有影响;对边缘连接器件与电路板的边缘之间的距离、ISA 和 PCI 的边缘连 接件与挡板之间的关系要完全把握才能去做电路板;否则只是浪费金钱和时间; 对边缘器件与边缘之间的距离要是不能有把握的话,可以找 3 个人,每个人都计算一遍,取个平 均值,基本上就差不多了。 4. 对单片机的资源能不能作成这件事情一定要有把握,CPU 运算速度和字长、内存够不够大、 程序存储器够不够大,需要仔细的规划; 5. 原理图经过专家认可无误后,画出来的 PCB 需要做网络检查,做到与原理图完全一致; 精确,实际上是敬业的精神。 2.8 继电鳌⒐烫?痰缙?br> 2.8.1 继电器 继电器,就是利用继电器的线包在加电后产生的磁力,将 2 个电极吸合在一起;初中还是高中的 物理有它的原理。有兴趣可以打开一支看看,很好玩的。 继电器有: 1) 公共端:COM 2) 常开:normal open,NO 3) 常闭:normal close,NC 继电器主要指标: 工作电压: 工作电压有直流和交流的 2 种; 在 PCB 上,通常是直流的;交流的继电器通常是 AC24V 的居多,当然,还有 AC220V 的。交流 的继电器国产的比进口的,比如,idec,OMRON,fujitsu 便宜很多,当然,质量也差一些。 可以在百度上专门搜索一下继电器,上面有一些厂家产品的介绍。 常用的小功率的继电器是 national 的居多,OMRON 也有,便宜一些,一盒 50 只。 常用的电压有: DC5V/DC9V/DC12V/DC24V 等; 根据触点数量,可以分为: 单刀单掷/SPST 单刀双掷/SPDT

16

双刀双掷/DPDT 四刀双掷等/? 还要根据触点容量来分。 一般的都是 DC30V/1A 或者 DC30V/2A,AC110V/0.2A,再大,就不能使用继电器了,因为在触 点切换,电流通过的瞬间,会产生拉弧,烧毁触点,使得切换不可靠;这是,可以使用固态继电 器。 实际上,在 PCB 上的继电器的任务就是给出一个干接点信号,作为控制信号使用,传递的是一个 信号,而不是能量。或者控制一个大功率的开关等,让大功率的开关去控制功率的传递;但是, 后者也不如固态继电器来得方便。 继电器的封装通常是 DIP16 或者以上;也有更小的继电器,但是,价钱跟 DIP16 的差不多。 注意:DIP16 的继电器只有 8 个管脚;所以设计封装时,不要图省事直接使用 DIP16,这样容易 在焊接的时候焊反了,导致出错。要专门设计继电器的封装,该有几个脚就使用几个脚。 2.8.2 固态继电器 固态继电器,说白了,就是使用发光管触发的过零触发的可控硅。 可以说,跟光耦很相似,也是 4 个管脚,只是区别在: 4) 直接使用直流电压控制;可以认为内部已经有了一个限流电阻; 5) 接收光信号的一端是过零触发的可控硅; 可以说是一个电子开关,无触点的继电器。 因为无触点,所以可以通过大电流而不产生拉弧,工作寿命与开关次数无关。 触点作为信号使用的继电器的时间的工作寿命是 100 万次到 300 万次,可以查看技术手册; 固态继电器可以认为是无限次的,所以在大电流和频繁开关的场合,使用固态继电器。 固态继电器触点通过的信号通常是交流电压,但是也有直流电压的。 固态继电器可以通过 AC220V 或者 AC380V 以下的交流电;它的 2 个指标: 1) 工作电压,通常为 DC5V 和 DC12V,也有 DC24V 的; 2) 工作电流:AC220V/1A/2A/4A 不等。 国产的固态继电器质量不错,跟进口的没有区别,就是封装的质量太差,一批买回来,个个都不 一样,焊在电路板上东倒西歪,不美观;至于小功率的国产的继电器市场上比较少见,有也不敢 使。 进口的固态继电器有美国的和日本的,4A 以上的比较贵,日本的 OMRON 的固态继电器 2A 的才 卖 8 元,侃侃价估计还能便宜,体积小,封装绝对的准确,可以很整齐地在电路板上排列,不占 地方;

17

什么时候国货也能象日本的那样好? 什么时候所有的中国人都能象日本人那样的敬业? 这个论坛不是骂日本人的地方,所以不往下说了;老树愿意将自己的一点微薄的经验献给大家。 在电子产品应用的中端低端市场将外国产品赶出中国市场我想中国人还是可以做到吧。</P 2.9 线性电源:变压器、整流桥与三端稳压器 什么是线性电源?为什么叫线性?老树查了网络上的资料,也没有答案,只好等待高明教我。 PCB 上需要供电,就需要电源。电源分 2 种,一种是线性电源,象 7805,就是线性电源; 一种是开关电源,是将 AC220V 直接整流滤波成高压,推动功率管工作在 100Khz 以上,再整流 滤波成低压。 开关电源的工作原理可以通过百度查到。 线型电源需要工频变压器,将 AC220V 变换成低压,经过全桥的整流,和大电容的滤波,成为脉 动的直流,再经过三端稳压器,输出直流电压。 输出端还需要大的电解电容滤波。注意这时要选用足够大的电容容量和耐压值的电解电容。耐压 值不够,你就等着听响吧。电容容量不够,整流输出的电压和输出的电压的压差不够,输出电压 会有纹波,单片机系统工作不正常。 通常电路板上需要的是 DC5V,一般来说,现在的电路板,一片 7805,再加散热片也基本够用 了。功率越大,散热片也越大。 变压器有多种规格: 1、 普通 E 型矽钢片绕制的变压器,现在最大量的是广西普宁雄英出的变压器,通过了长城认 证,质量是不错的,最大的好处是便宜,现货量大;通常的规格是单 9V、12V,双 9V、12V 等; 可能这个地方出矽钢片,有这样的矿藏。 2、 环型变压器,象个椭圆型; 3、 最近好像圆形的变压器也多起来了,后 2 种变压器应该是漏磁小、发热少、效率高,大功率的 整流时使用,当然单位瓦数也贵啊,按照 1 元/W 计算预算应该差不多了。 这 2 种变压器都需要定制,可以定制各种规格的。 4、 焊在电路板上的变压器,比较有名的是兵字品牌。在《电子技术应用》和《电子产品世界》上 常年做广告。秦皇岛也有一家,好像叫耀华。 怎么计算变压器需要多大的功率? 首先,计算功耗。比如:Dc5V/0.25A,也就是 1.25W 的功耗。 7805 效率 50%,变压器效率 50%,就是说,需要 6W 的变压器。

18

Dc5V/0.25A 的输入压差大概在 3V,6V 的变压器整流出来的电压是大约 6× 1.4=8.4V,也差不多 了。所有选用 AC6V/6W 的变压器。再到市场上找一个差不多的变压器用上就行了。 注意:电流越大,压差越大;在电路工作的时候,可以拿示波器看看电源的波形是不是平稳。 78 系列的芯片做的比较多而好的是美国国家半导体公司(national semiconductor)的 LM780X 和 摩托罗拉公司 MC780X 等 2 大系列。 78 系列是高压差的稳压芯片,现在有低压差的稳压芯片,其机理参见沙占友老师的书籍。有 LM2930、LM2937、LM2940C、LM2990 等 4 个系列。 如果需要更大的电源供给,或者使用开关电源,或者去买成品的线性电源,象辽宁朝阳 4NIC 的电 源,质量不错,价格也不错。 附:在网络上找到的一篇文章: 开关电源和线性电源的区别 线性电源的调整管工作在放大状态,因而发热量大,效率低(35%左右),需要加体积庞大的散 热片,而且还需要同样也是大体积的工频变压器,当要制作多组电压输出时变压器会更哟蟆?? 氐缭吹牡髡?芄ぷ髟诒ズ秃徒刂磷刺? ? 蚨?⑷攘啃。? ? 矢撸?5%以上)而且省掉了大体积的 变压器。但开关电源输出的直流上面会叠加较大的纹波(50mV at 5V output typical),在输出端 并接稳压二极管可以改善,另外由于开关管工作是会产生很大的尖峰脉冲干扰,也需要在电路中 串连磁珠加以改善。相对而言线性电源就没有以上缺陷,它的纹波可以做的很小(5mV 以下)。 对于电源效率和安装体积有要求的地方用开关电源为佳,对于电磁干扰和电源纯净性有要求的地 方(例如电容漏电检测)多选用线性电源。另外当电路中需要作隔离的时候现在多数用 DC-DC 来做对隔离部分供电(DC-DC 从其工作原理上来说就是开关电源)。还有,开关电源中用到的高 频变压器可能绕制起来比较麻 2.10 开关电源芯片 相对于线性稳压器来说,开关电源在计算机主板上、工控机主板和各种各样的电路板上起着电压 变换的作用。例如:将低电压,比如:电池转换成稳定的 3.3V 或者 5V,或者将高电压转化成 DC5V、DC3.3V,或者将 DC5V 转换成 3.3V 和 1.8V,例如,ARM 的电路板就需要这样的芯片, 3.3V 给 ARM 供电,1.8V 给 arm 的 core 供电。以上 由于采用了开关电路,电源芯片的工作频率高,发热小,效率高。 同样的,还是芯片的巨头,MAXIM、LINEAR 和 TI 等公司在电源转换芯片上是最为卓越,无论 从产品的种类,还是质量都是上佳的; 经常看电子产品世界和电子技术应用的网友一定对 maxim 的电源芯片印象巨深。五花八门的电源 芯片,让你无法选择到底选用那种是自己的所需要的。 在 maxim 的产品树中,对电源是这样分类的: Power Supplies and Battery Management tchmode DC-DC Power Supplies 408 Isolated Power Supplies 22 Low-Dropout Linear Regulators 75 White LED Drivers 13 Low-Side MOSFET Drivers 14

19

High-Side MOSFET Drivers 6 ORing MOSFET Controllers 2 Battery Chargers 36 Battery Protectors, Selectors and Monitors 17 Regulator + Reset Circuits 4 Current Sense Amplifiers 22 LCD/ECB/CCFL Display Bias Supply 87 ALSO SEE: Hot-Swap and Powertching ALSO SEE: Voltage References 我们经常使用到的 tchmode DC-DC Power Supplies ,这里有分成 n 种。老树比较熟悉的是 stepdown 电源芯片,也就是所谓的从高电压下降到低的电压的芯片;从低到高,当然是 step-up 电源 芯片。 象 philips 的电动剃须刀,里面肯定有电源管理芯片,当电池电压下降,但是,电池又有电的时 候,能够输出恒定的电压,榨干电池内的最后一点电能,能够舒适地使用一段很长的时间。 比如,你的电路板上只有 DC24V 电压,但是,还需要 Dc5V/2A 的电源,这么高的压降,使用线 性稳压器显然不合适,如果使用 DC/DC 模块,成本太高,体积也比较大,所以,得选用一款芯片 完成这个功能。 按照 maxim 给出的复杂的选择,根据你的要求,多选择几项,maxim 会给出一个清单,在清单中 去选择你最适合你的需求的芯片。 老树原来使用过的完成此项功能的芯片是:MAX724、LT1076;这 2 款芯片需要 1 个 50uH 的电 感才能输出 Dc5V 电源;但是,这种开关电源芯片有个好处,就是输入只要在它的允许的范围内波 动,或者负载在变化,输出 DC5V 电源十分稳定。 电源的范围从 Dc10V~DC40V,max724 均能输出 5A 的 DC5V 电源。 Maxim724 下载连接地址: http://www.hqew.com/document.detail.asp?pdid=153160 LT1076 下载链接地址: http://www.hqew.com/document.detail.asp?pdid=157742 在 ARM 上使用的电源芯片是 TI 公司的 TPS767D318。 下载链接: http://www.hqew.com/document.detail.asp?pdid=122122 在沙老师的书中,也介绍了几款电源转换芯片,可供参考。 如果是作为隔离电压产生,例如:5V 转换成隔离的 5V,用在光耦、通讯等电路中,去自己做隔 离电路就有点划不来,不如去买现成的 DC/DC 模块。这点国产的模块做的不错,象老树常用的 Dc12V/DC5V500mA 的模块,大约 30 元,质量还是不错的。 比较有名的电源转换模块,如:

20

如果是作为隔离电压产生,例如:5V 转换成隔离的 5V,用在光耦、通讯等电路中,去自己做隔 离电路就有点划不来,不如去买现成的 DC/DC 模块。这点国产的模块做的不错,象老树常用的 Dc12V/DC5V500mA 的模块,大约 30 元,质量还是不错的。 老树常用的电源转换模块,如: 北京星原丰泰电子技术有限公司的 SAPS 系列 DC/DC 模块,这种模块很多厂家都是兼容的; 电源转换模块还有 AC/DC、DC/AC 等不同;具体不同可以参看厂家网站。 厂家链接: http://www.saps-bj.com/index.htm 另外一家生产微电源模块的厂家是:深圳市顺源科技有限公司。 厂家链接: http://www.mornshine.com/index105.htm 这种电源模块国产的质量不错了,完全可以取代进口产品。 DC/DC 模块完全可以将输入输出的电源地连接在一起,作为普通的非隔离的电源转换器使用。 2.11 器件选购、芯片批号、封装知识等 在市场上买芯片,千万注意不要买到旧片、拆机片;旧片、拆机片有些凑合能用,有些干脆不 行;即使现在能用,寿命肯定有限; 旧的就是旧的,肯定瞒不过有心人;主要是从芯片的管脚的崭新程度、芯片印刷的质量等仔细观 察。 旧的芯片往往管脚参差不齐、搪锡发乌、包装的管子不够新;而且往往是芯片的表面发白,那是 因为被打磨过了,然后重新丝网印刷上厂家名称、批号等; 所以最好是买激光打标的器件,激光打标的产品肯定是新货,或者没有使用过的货;而且买的时 候需要注意,器件的批号最好是最近当年的或者是最近几个星期的产品;总而言之,别花冤枉 钱,还影响产品的质量。 同样的产品,不同厂家的质量也不一样。我比较喜欢的是美国 TI、摩托罗拉 MC、MAXIM、 LINEAR 的产品;假的也少; 例如,max7219 芯片上有一下标志: MAXIM MAX7219CNG 0323PY MAXIM 就是芯片的厂家; MAX7219CNG 是厂家的型号,CNG 跟封装和 7219 这个系列产品的细微的差别有关; 03 是指 2003 年;23 是指该年的第 23 周;一年是 52 周,所以这个数字不会超出 52;

21

激光打标是在芯片上形成一个暗色的与芯片表面有一个明显对比的标志;中关村的大恒公司就有 激光打标机的业务;但是未必是在芯片上打标; 有时,激光打标会产生类似暗黄色的标志,这跟激光器功率和芯片封装材料有关。 关于 CA1161 看门狗的原理和应用参见以下链接: http://www.zlgmcu.com/catalyst/wdteeprom/shouce/CAT1161_cn.pdf http://www.zlgmcu.com/catalyst/yingrong/CAT24Cxx1_1.pdf 关于电源监控和看门狗的原理,参见以下链接: http://www.icbase.com/newweb1/commend/uP/zongshu.asp#μP 监控 http://www.icbase.com/newweb1/commend/uP/application3.asp#μP 监控电路 http://www.icbase.com/newweb1/commend/uP/application3.asp#常见问题解答 第三课 合格电子工程师是怎样炼成的? 不意思,第二课没有写完,又开一课–老树当过老师,有毁人不倦的习惯,再者,这个问题想了很 久了,也基本想通了。 在网络上很多初学者在问:怎样成为一个合格的电子工程师? 这个问题有很多答案。老树谈谈自己的看法。 第一步 入门-51 核心和基本电路 中国人有 10 亿啊,每年有多少大学生毕业呢?我不知道。但是我看到有一张照片,招聘会上熙熙 攘攘,人来人往,十分震撼。从来没有一个时刻让我感觉到中国的人力资源是如此的丰富。但 是,从现在的大学毕业出来的学生学到了什么东西呢?一些理论,跟实际脱钩的理论。有没有用 呢?有点用。但是,在企业中,需要的是实际干点事情出来,实际解决问题。所以说,很多企业 不想要大学本科出来的大学生,说动手,没有动手能力,不知道电阻电容长得什么样子,能够做 什么?但是又自视甚高,对工资的期望值比较高。等到能够干点事情了,又拍拍跑了。所以企业 现在喜欢使用大专中专甚至是职业学校培训出来的小孩,至少这些孩子们知道自己的份量,能够 实实在在地做事。要知道,他们很多人的天赋并不差,有些人甚至可以说聪明,只是因为很多人 是家庭条件不好,打小就是苦孩子,没有条件接受良好的教育。一旦给机会,他们都比较珍惜。 现在的大学,误人子弟甚多。扩招是没有错,但是,实验室扩了吗?教室扩了吗?教师扩了吗? 至少实验室是没有扩。老树认得的一个研究生说,只有到了一个阶段,才能到实验室作实验。很 多导师就是把学生当奴隶一样干活,要是在干活中能够学到东西那就算是运气好的;运气不好 的,直接就是导师的廉价的劳力了,学不到东西,活倒干了不少。 但是,既然学生要拿文凭,要应付考试,没有办法,那怎么自救? 如果励志要做一名出色的电子工程师,老树可以谈谈自己的看法。 做一个电子工程师,先从 51 学起,这是得到公认的。不需老树饶舌。

22

首先,去买一个开发板,越便宜的越好,在上面可以练练 keil C。最好再买一个仿真器,这样调试 的效率高。当然这个不便宜,但是我觉得可以志同道合的哥几个合买。反正 1 天 24 小时,每人 8 个小时轮流上,有个几个月,C51 语言也就差不多了。 其次,看看老树的文章,看看需要学点什么基本的东西。北京的大学生有福啊,没事到中发去转 转,认认老树的文章上说得哪些电阻、电容、三极管、芯片、接插件什么的,看看自己的电脑上 的主板、网卡、声卡、显卡是怎么画的,找找感觉,这些板卡都是高手的杰作啊。 构思一个小的产品,按照老树文章上的思考题,找本 protel99se 的书,从每个菜单练起,循序渐 进,从单片机最小系统->输入->LED->RS232/RS422/RS485->固态继电器、继电器等原理图画起, 边画边学,一点一点做,做好了,最好找个高手看看,找出毛病在哪里,再反复改进。在这样的 模拟实战中找到感觉。 推荐老虎工作室的 protel 99 系列 4 本,写的还是循序渐进的,当然不便宜;咬咬牙,可以合买一 套,轮着看。 顺便说一句我对市场上的开发板的看法,这些开发板当然都不错,但是,只能学到语言,不能教 你画原理图和 PCB,实际做的时候,还是需要高手带一带是最快的。我就是一个朋友教我的,也 就半天的功夫,就会了。当时还是 DOS 下的 protel 3.16 版本。 以战养战。找个公司、企业,帮他们做个小产品,既能得到公司的高手的指点,又能赚到一笔费 用,岂不甚佳?这时,你的开发板、仿真器的费用就出来了。从原理图->PCB->C51,单片机也入 门了。 第二步:登堂入室-掌握系统的电路知识 这时,需要对电子技术的所有东东进行全面的了解,主要是看看杂志、BBS、网站上的技术文 章、何立民先生主持编著的《单片机应用技术大全》系列,将单片机和它的配套的电路,输入输 出、通讯等等做一个全面的了解。目标是为什么?系统的技术储备。知道什么问题可以使用什么 方法解决,可能在什么地方找到解决的方法,这对你以后走上工作岗位,解决实际问题是非常有 好处的。如果你真能这么做,那么,你今后肯定比单位中的老同志还要棒。 老树在国营研究所的时候,曾经有一段时间无所事事,就是在那一两年的时间内将研究所的技术 杂志看了一遍,尤其是《电子技术应用》。打下了一个良好的基础。 这时,争取机会,学习高手们的硬件设计。一个比较快的办法就是到工控机的厂家那里,看看工 控机的板卡和调理板是怎样设计的,都使用了哪些东西。记得老树第一次看到国外的一个器件, 到处去问,也不知道是什么东东。后来在四通工控那里看到了,原来是固态继电器。这时,脑子 里关于固态继电器的知识都冒出来了。再一看,配套市场大把的。 什么东西就是这样,你要是不知道它是干什么的,你天天看见,也熟视无睹。 有心人就是这样,在什么样的情况下,都能慢慢积蓄知识和力量。毕竟一个产品,不是只会单片 机就可以了,还是需要很多的外围电路,按照何老师的分类,前向、后向、人机、互相通道等, 才能做成一件产品的。 这个时候,抓住任何机会,去参与一个大型产品开发,在其中做一件事情,你可以学到沟通、协 作、界面等产品开发的一些要素。 第三步:勤奋至卓越

23

中国人多啊,每个人都是智商 100,谁比谁傻啊。凭什么你比别人强?你能有好的工作、好的收 入,你能香车宝马,醇酒美人?老树认为,没有别的办法,就是靠勤奋。 勤奋学习-这个道理大家知道,知识就是金钱啊; 勤奋工作-想比别人多赚钱,在智商相同的情况下,就是靠多付出时间干活,再提高工作效率。别 人 5× 小时工作,你是 7× 小时,再提高工作效率一倍,你不久赚了比别人多 5 倍的钱吗?老树 8 16 公司有 2 个员工,原来在老家种苹果,没有赚到钱,到老树的公司中干活,计件,活忙的时候, 早晨 8:00 起来,晚上 12:00 收工,年底也赚了一笔钱回家,高高兴兴,老树也开心,原来一屋 子人干的活,现在 2 个人干了,公司管理省事了,员工也赚到了钱。 开发也是一样。当然,这个需要你的公司有这个机制,多劳多得的机制。但是,要是现在没有, 你要不要这样干呢? 我认为,需要。一方面,干别人的活,练自己的技术,长自己的本事。另一方面,多干活,才能 快速增长本事,技术才能跃变、突破,登堂入室,再得心应手、出神入化。至少,熟练工种是没 有问题的吧。 就象一壶水,老是小火,烧了半天,也是温吞水;可是大火一上,一会就开了,就是这个意思。 你看《射雕英雄转》中的郭靖,没有别的本事,就是傻练,有一天开窍了,如有神助。技术这个 东西就是这样,突破了门槛,就是坦途。需要勤奋勤奋再勤奋。有一天这个日子来了,你就苦尽 甘来了。 勤奋还有另外一个含意,就是天道酬勤。其实是每个人看见勤奋的人,都会给他机会的,觉得帮 助这样的人,高兴;把事情放在他的手里,也放心。 还有一个含意是触类旁通。知识需要很多的参照物,去比较、联想、萃取、升华。换句话,你可 能付出的是其他人的 n 倍的努力,可是你得到的是 n 倍以上的回报,你的知识已经不是简单的累 加了,已经质变了。 如果你在这个单位,勤奋了,也出成果了,就是没有得到公平的待遇,也没有关系。换一个环境 就是了,总有人会欣赏你的。再说了,付出总有回报。 有些人习惯怨天尤人,没有好的老爸老妈,没有好的老师,没有好的同伴,没有好的环境,没有 好的老板。这些人需要去看看周立功的文章,看看周老师怎样一步步成长的。 第四步:沟通、协作 原来还有,现在越来越少,做一个小的产品,就可以生活无忧。 现在这种情况越来越少了。在任何一个单位,将一个产品做好,都需要与同伴主动沟通,与不同 部门的人互相协作。经常是跟不同单位的人沟通完成意见事情。 第五课 单片机系统设计初探 5.1 概述 所谓系统,就是说,除了单片机之外,还需要有:

24

1) 输入 2) 输出 输入和输出按照第一课的定义,包含了范围: 输入基本上有以下的可能: 1) 键盘 2) 串行接口(RS232/485/can bus/以太网/USB) 3) 开关量(TTL,电流环路,干接点) 4) 模拟量(4~20ma、 0~10ma、0~5V(平衡和非平衡信号)) 输出基本上有以下组成: 1) 串行接口(RS232/485/can bus/以太网/USB) 2) 开关量(TTL、电流环路、干接点、功率驱动) 3) 模拟量(4~20ma, 0~10ma,0~5V(平衡和非平衡信号)) 4) LED 显示:发光管、八字 5) 液晶显示器 6) 蜂鸣器 处理核心主要有: 1) 8 位单片机,主要就是 51 系列 2) 32 位 arm 单片机,主要有 atmel 和三星系列 3) 还有一些专用的单片机,例如:MPS430,水表、电表、洗衣机、空调的单片机等等 所谓系统,也就是说,作为一个电子工程师,需要掌握以上所有方面的知识,才能做到兵来将 挡,水来土掩,无论设计任务有什么样的需求,都能应付自如,有多种方法可以实现同样的目 标,从中找到一个成本最低、质量最高、可靠性最好的解决方案。 实际上,无论从事任何一种工作,对于本行业所需要掌握的知识应该是全面而系统的;一开始, 由于工作经历的欠缺,没有实际的经验,但是,可以通过广泛的阅读构成系统的知识框架;形成 这个框架后,在工作中亲身实践,和阅读其他工程师的作品,再往里填充各种各样的细节,使之 不断丰满、充实、正确。 5.2 任务分析 5.2.1 初步判断采用何种单片机完成此项任务

25

http://img8.photo.163.com/hxm0902/1330137/16437844.jpg 1)干接点 就是类似于机械接点,最简单的就是按键,一般来说是输入、输出的继电器的接点信号;无源; 2)平衡信号: 类似 RS422、RS485 信号,是信号之间相互比较,来判断是数字信号的 1 还是 0;不容易收到干 扰,传输距离远;但是,最好使用双绞线来传输; 3)非平衡信号: 单端接地的信号,如:TTL 电平、RS232 等都是,特点是有一个公共的参考电压,容易受到干 扰,传输距离近; 平衡是强化噪讯时重要的性质,传输信号必需有往与返两条信号线,处理信号必需在信号线途径 插入电子组件,形成所谓的「电子电路」,该电路同样必需设置可以使信号折返原点的结构。如 图 1 所示由信号线与电子组件构成的电路,它的往与返任何定义下都是对等时称为「平衡」。

图 1 平衡的定义 在平衡电路如果有非对等部位时称为「不平衡」,不平衡的电路则称为「不平衡电路」。上述平 衡与不平衡属于模拟性概念,所有平衡的程度具有所谓的「平衡度」问题。世间并没有完全的平 衡,完全平衡物理上必需通过相同场所,这种情况实际上不可能存在。实际上被视为平衡的情况 概称为平衡,实用上如果被认为欠缺平衡度时,就成为不平衡。 电子电路内的一般信号线的信号折返线,通常都使用共通的大地线(ground line),由于「往线」独 立,「返线」共通,因此大地线属于「不平衡」,信号线为「平衡」,所以信号线必需有往与返 2 条线的结构。图 2 是平衡与不平衡具体实例,图 2(a)是一般 RC 滤波器,它的「往」设有电阻,因 此属于不平衡;图 2(b)的「往」与「返」对等,因此属于平衡。 噪讯对策用滤波器的噪讯与信号频宽非常接近时,滤波器必需要有敏锐(sharp)的特性与极高的精 度,不过一般噪讯对策用滤波器,却不要求敏锐的特性与精确的特性值。插入滤波器的部位要求 高平衡时,基于提高平衡度的考虑,「往」与「返」的阻抗值必需一致,相同理由第 2 章信号模 式的图 7 一般模式消除用滤波器,同样为了提高一般模式的消除率,因此要求极高的平衡度。

平衡的定义 平衡是强化噪讯时重要的性质,传输信号必需有往与返两条信号线,处理信号必需在信号线途径 插入电子组件,形成所谓的「电子电路」,该电路同样必需设置可以使信号折返原点的结构。如

26

图 1 所示由信号线与电子组件构成的电路,它的往与返任何定义下都是对等时称为「平衡」。

图 1 平衡的定义 在平衡电路如果有非对等部位时称为「不平衡」,不平衡的电路则称为「不平衡电路」。上述平 衡与不平衡属于模拟性概念,所有平衡的程度具有所谓的「平衡度」问题。世间并没有完全的平 衡,完全平衡物理上必需通过相同场所,这种情况实际上不可能存在。实际上被视为平衡的情况 概称为平衡,实用上如果被认为欠缺平衡度时,就成为不平衡。 电子电路内的一般信号线的信号折返线,通常都使用共通的大地线(ground line),由于「往线」独 立,「返线」共通,因此大地线属于「不平衡」,信号线为「平衡」,所以信号线必需有往与返 2 条线的结构。图 2 是平衡与不平衡具体实例,图 2(a)是一般 RC 滤波器,它的「往」设有电阻,因 此属于不平衡;图 2(b)的「往」与「返」对等,因此属于平衡。 噪讯对策用滤波器的噪讯与信号频宽非常接近时,滤波器必需要有敏锐(sharp)的特性与极高的精 度,不过一般噪讯对策用滤波器,却不要求敏锐的特性与精确的特性值。插入滤波器的部位要求 高平衡时,基于提高平衡度的考虑,「往」与「返」的阻抗值必需一致,相同理由第 2 章信号模 式的图 7 一般模式消除用滤波器,同样为了提高一般模式的消除率,因此要求极高的平衡度。

图 2 滤波器的平衡与不平衡 平衡的特性 接着探讨平衡时的效应。此处假设来自外部的噪讯,被施加于平衡的信号线,根据上述定义所谓 平衡是指 2 条线对等,因此等值的噪讯等于同时渗透到 2 条线内(图 3),此时噪讯变成一般模式噪 讯(common mode noise)。

图 3 外来噪讯 来自外部的噪讯被施加于不平衡的信号线时,随着不平衡的差异,渗透的噪讯大小也不相同,亦 即除了一般模式噪讯之外,标准模式噪讯(normal mode noise)也会渗透至信号线内部。由于标准模 式噪讯性并不比一般模式噪讯好,因此「平衡」反而比较有利。 至于平衡度,根据使用目的与用 途定义即可,并没有特定的定义规范,通常平衡度被定义成如下: 「承受来自外部的噪讯,在渗透的噪讯之中,假设标准模式成份为 EN,一般模式成份为 EC 的 话,平衡度=EC/(EC+EN)」

27

如图 4 与图 5 所示,一般模式信号在平衡电路中,直接以一般模式传输,?如果是平衡时,由于阻 抗(impedance)为 Z1=Z2,因此阻抗造成的电压下降相同,成为 V3=V4,维持一般模式。 如果不平衡时,由于 Z1≠Z2,因此阻抗造成的电压下降值相异,成为 V3≠V4,该差异成份则转化 成标准模式。 如果是平衡时,由于阻抗为 Z3=Z4,因此 V3=V4,维持一般模式。 如果不平衡时,由于 Z3≠Z4,V3≠V4,部份化为标准模式。 由此可知不平衡时,一般模式会转化成标准模式,不过一般都不希望发生这种情况。

图 4 平衡与不平衡时的传输比较(串联电路)

图 5 平衡与不平衡时的传输比较(并联电路)

可以通过网络来查询准确的解释。 4)线性电路 类似于音频放大电路就是,特点是: 要求输入和输出形成了一个线性对应的关系; 5)非线性电路 比如无线电电路中的混频器,将 2 个频率合在一起,生成第三个频率,就是非线性电路。 好像还没有听说线性信号和非线性信号。只有模拟量和数字量信号; 6)模拟量和数字量 模拟量是连续变化的信号,如:0~5V,4~20mA 等;

28

数字量是只有 0、1 两种情况。 5.2 51 单片机系统的构思? ?p> 1. 选用何种单片机 在我们的这个课程中,当然是选用 51 系列的 CPU 了; 实际上,可以选用的 CPU 的种类很多,从处理能力来说: 1) 4 位单片机 2) 8 位单片机 3) 16 位单片机 4) 32 位 ARM 就 8 位单片机,有专用的、通用的;也有高速的,还有的单片机具有 A/D、D/A 等各种资源; 需要根据你的任务,选用合适的单片机完成任务。 对初学者而言,我们考虑的仅仅是如何使用 51 系列的单片机,如:89C51/52/54/58、 78E52/54/58、77E58(双串口)来完成设计任务。 2. 初步设计-写出任务书 1) 按照表格,对任务进行分析,判断单片机的资源是否够,如:运算速度,是否需要扩展、是否 需要串口、是否需要实时时钟等;选用什么调理电路,等等; 2) 在确认单片机能够胜任工作后,对单片机的资源进行规划: 1. 内存分配 2. I/O 口分配 3. 定时器分配工作 4. 外部中断分配 3) 单片机外围电路确认-开关量输入和输出调理电路(模拟量电路暂时不考虑) 4) 在以上分析的基础上,设计单片机硬件框图 5) 形成任务书初稿 6) 讨论-修改-通过 3. 详细设计

29

1) 原理图 2) 有 3.3V 和 5V 的混合逻辑设计吗? 3) PCB 尺寸、定位孔和安装方式 1. 是正方形、长方形、圆形、三角还是其它的特殊形状? 2. 是 ISA 总线吗? 3. 是 PCI 总线吗? 4. 是欧标的板卡吗? 4) 电源(AC220V/DC5V/DC12V,是否需要隔离) 5) 接插件封装: 1. 采用直插、弯针? 2. 3.81 间距、5.08 还是 2.54 间距(对应于:150mil/200mil/100mil) 3. 采用 DB9/DB25/DB37/DB62?直的还是弯的?孔的还是针的 4. 有边缘器件吗? 6) 基本布局 是否合理?考虑到散热了吗?考虑到机箱内是否有打架的地方? 7) 器件选型 尽量选用著名品牌中的价格便宜的兼容器件; 8) 器件的冗余度 需要考虑到功耗、耐压值和接口器件的可靠性; 例如: 1. 功耗,需要计算电阻、变压器的功耗,适当留有 50%以上的余量; 2. 电解电容的耐压值等:留有 100%以上的余量,如:在 DC5V 电压下,选用耐压值 25V 的电 容; 3. 接口器件:对于接口器件,尽量使用 DIP 封装的,便于更换; 9) 成本分析(包括制版费、器件费和焊接、调试费用),作出预算,尽量降低成本,选用功能满 足价格便宜的器件,不同厂家之间的同样的芯片价格相差比较远

30

10) 电路板与机箱之间的安装关系 11) 形成详细设计初稿 12) 讨论-修改-通过 4. 在大脑中模拟电路板的外形、几何尺寸和功能 就好像是三维动画一样,电子工程师需要在大脑中,在设计的整个过程中,对电路板的外形、接 口、几何尺寸、功能等反复在从各个角度去观察、构思,就好像有一个实际的电路板在脑子里一 样,谋定而后动;当然,这不是一蹴而就的。 附:电子工程师培训大纲(200403110041) 愚以为,掌握了一下的硬件和软件知识,基本上就可以成为一个合格的电子工程师: 第一部分:硬件知识 一、 数字信号 1、 TTL 和带缓冲的 TTL 信号 2、 RS232 和定义 3、 RS485/422(平衡信号) 4、 干接点信号 二、 模拟信号视频 1、 非平衡信号 2、 平衡信号 三、 芯片 1、 封装 2、 7407 3、 7404 4、 7400 5、 74LS573 6、 ULN2003 7、 74LS244 8、 74LS240 9、 74LS245 10、 74LS138/238 11、 CPLD(EPM7128) 12、 1161 13、 max691 14、 max485/75176 15、 mc1489 16、 mc1488 17、 ICL232/max232 18、 89C51 四、 分立器件 1、 封装 2、 电阻:功耗和容值 3、 电容 1) 独石电容 2) 瓷片电容 3) 电解电容

31

4、 电感 5、 电源转换模块 6、 接线端子 7、 LED 发光管 8、 8 字(共阳和共阴) 9、 三极管 2N5551 10、 蜂鸣器 五、 单片机最小系统 1、 单片机 2、 看门狗和上电复位电路 3、 晶振和瓷片电容 六、 串行接口芯片 1、 eeprom 2、 串行 I/O 接口芯片 3、 串行 AD、DA 4、 串行 LED 驱动、max7129 七、 电源设计 1、 开关电源:器件的选择 2、 线性电源: 1) 变压器 2) 桥 3) 电解电容 3、 电源的保护 1) 桥的保护 2) 单二极管保护 八、 维修 1、 电源 2、 看门狗 3、 信号 九、 设计思路 1、 电源:电压和电流 2、 接口:串口、开关量输入、开关量输出 3、 开关量信号输出调理 1) TTL―>继电器 2) TTL―>继电器(反向逻辑) 3) TTL―>固态继电器 4) TTL―>LED(8 字) 5) 继电器―>继电器 6) 继电器―>固态继电器 4、 开关量信号输入调理 1) 干接点―>光耦 2) TTL―>光耦 5、 CPU 处理能力的考虑 6、 成为产品的考虑: 1) 电路板外形:大小尺寸、异形、连接器、空间体积 2) 电路板模块化设计 3) 成本分析 4) 器件的冗余度 1. 电阻的功耗 2. 电容的耐压值等 5) 机箱

32

6) 电源的选择 7) 模块化设计 8) 成本核算 1. 如何计算电路板的成本? 2. 如何降低成本?选用功能满足价格便宜的器件 十、 思考题 1、 如何检测和指示 RS422 信号 2、 如何检测和指示 RS232 信号 3、 设计一个 4 位 8 字的显示板 1) 电源:DC12 2) 接口:RS232 3) 4 位 3‖8 字(连在一起) 4) 亮度检测 5) 二级调光 4、 设计一个 33 位 1‖8 字的显示板 1) 电源:DC5V 2) 接口:RS232 3) 3 排 11 位 8 字,分 4 个、3 个、4 个 3 组,带行与行之间带间隔 4) 单片机最小系统 5) 译码逻辑 6) 显示驱动和驱动器件 5、 设计一个 PCL725 和 MOXA C168P 的接口板 1) 电源:DC5V 2) 接口:PCL725/MOXA 8 个 RS232 1. PCL725,直立 DB37,孔 2. MOXA C168P,DB62 弯 3) 开关量输出信号调理:6 个固态继电器和 8 个继电器,可以被任何一路信号控制和驱动,接口: 固态继电器 5.08 直立,继电器 3.81 直立 4) 开关量输入调理:干接点闭合为 1 或 0 可选,接口:3.81 直立 5) RS232 调理: 1. LED 指示 2. 前 4 路 RS232 全信号,后 4 路只需要 TX、RX、0 3. 无需光电隔离 4. 接口形式:DB9(针)直立 第二部分:软件知识 一、 汇编语言 二、 C51 该部分可以从市场上买到的 N 种开发板上学到,至于第一部分,需要人来带吧 作者:南方的老树

表单的顶端 错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到 引用源。错误!未找到引用源。错误!未找到引用源。

33

表单的底部 Trackback 你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2419776

RS-232-CRS-232-C 是美国电子工业协会 EIA(Electronic Industry Association)制定的一种串行 物理接口标准。RS 是英文―推荐标准‖的缩写,232 为标识号,C 表示修改次数。RS-232-C 总线标 准设有 25 条信号线,包括一个主通道和一个辅助通道。 在多数情况下主要使用主通道,对于一般 双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C 标准规 定的数据传输速率为每秒 50、75、100、150、300、600、1200、2400、4800、9600、19200 波 特。RS-232-C 标准规定,驱动器允许有 2500pF 的电容负载,通信距离将受此电容限制,例如, 采用 150pF/m 的通信电缆时,最大通信距离为 15m;若每米电缆的电容量减小,通信距离可以增 加。传输距离短的另一原因是 RS-232 属单端信号传送,存在共地噪声和不能抑制共模干扰等问 题,因此一般用于 20m 以内的通信。 2、RS-485RS-485 总线,在要求通信距离为几十米到上千米 时,广泛采用 RS-485 串行总线 RS-485 采用平衡发送和差分接收,因此具有抑制共模干扰的能 力。加上总线收发器具有高灵敏度,能检测低至 200mV 的电压,故传输信号能在千米以外得到恢 复。 RS-485 采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能 信号加以控制。RS-485 用于多点互连时非常方便,可以省掉许多信号线。应用 RS-485 可以联网 构成分布式系统,其允许最多并联 32 台驱动器和 32 台接收器。3、RS-422RS422 总线,RS485 和 RS422 电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。差动工作是同速率条 件下传输距离远的根本原因,这正是二者与 RS232 的根本区别,因为 RS232 是单端输入输出,双 工工作时至少需要数字地线 。发送线和接受线三条线(异步传输),还可以加其它控制线完成同 步等功能。RS422 通过两对双绞线可以全双工工作收发互不影响,而 RS485 只能半双工工作,发 收不能同时进行,但它只需要一对双绞线。RS422 和 RS485 在 19kpbs 下能传输 1200 米。用新型 收发器线路上可连接台设备。

34

规格 RS232 RS422 R485 工作方式 单端 差分 差分 节点数 1 收 1 发 1 发 10 收 1 发 32 收 传输电缆 50 英尺 400 英尺 400 英尺 传输速率 20Kb/S 10Mb/s 10Mb/s 输出电压 +/-25V -0.25V~+6V -7V~+12V 驱动器负载阻抗(Ω) 3K~7K 100 54 摆率(最大值) 30V/μs N/A N/A 接收器输入电压范围 +/-15V -10V~+10V -7V~+12V 接收器输入门限 +/-3V +/-200mV +/-200mV 接收器输入电阻(Ω) 3K~7K 4K(最小) ≥12K 驱动器共模电压 N/A -3V~+3V -1V~+3V 接收器共模电压 N/A -7V~+7V -7V~+12V

什么是 RS-232-C 接口?采用 RS-232-C 接口有何特点?传输电缆长度如何考虑? 答: 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由 于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被 广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来 进行通讯。 RS-232-C 接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用 于串行通讯的标 准。它的全名是―数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数 据交换接口技术标准‖该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容 加以规定,还对各种信 号的电平加以规定。般只使用 3-9 条引线。RS-232-C 最常用的 9 条引线的信号 内容见附表 1 所示 (2)接口的电气特性 在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻 辑―1‖,5— -15V;逻辑―0‖ +5— +15V 。噪声容限为 2V。即 要求接收器能识别低至+3V 的信号作为逻辑 ―0‖,高到-3V 的信号 作为逻辑―1‖ 附表 1 引脚序号 信号名称 符号 流向 功能 2 发送数据 TXD DTE→DCE DTE 发送串行数据 3 接收数据 RXD DTE←DCE DTE 接收串行数据 4 请求发送 RTS DTE→DCE DTE 请求 DCE 将线路切换到发送方式 5 允许发送 CTS DTE←DCE DCE 告诉 DTE 线路已接通可以发送数据 6 数据设备准备好 DSR DTE←DCE DCE 准备好

35

7 信号地 信号公共地 8 载波检测 DCD DTE←DCE 表示 DCE 接收到远程载波 20 数据终端准备好 DTR DTE→DCE DTE 准备好 22 振铃指示 RI DTE←DCE 表示 DCE 与线路接通,出现振铃 (3) 接口的物理结构 RS-232-C 接口连接器一般使用型号为 DB-25 的 25 芯插头座,通常插头在 DCE 端,插座在 DTE 端. 一些设备与 PC 机连接的 RS-232-C 接口,因为不使用对方的传送控制信号,只需三条 接口线,即―发送数据‖、―接收数据‖和―信号地‖。所以采用 DB-9 的 9 芯插头座,传输线采用屏蔽双绞 线。 (4)传输电缆长度 由 RS-232C 标准规定在码元畸变小于 4%的情况下,传输电缆长度应为 50 英 尺,其实这个 4%的码元畸变是很保守的,在实际应用中,约有 99%的用户是按码元畸变 10-20%的 范围工作的,所以实际使用中最大距离会远超过 50 英尺,美国 DEC 公司曾规定允许码元畸变为 10% 而得出附表 2 的实验结果。其中 1 号电缆为屏蔽电缆,型号为 DECP.NO.9107723 内有三对双绞线, 每对由 22# AWG 组成,其外覆以屏蔽网。2 号电缆为不带屏蔽的电缆。型号为 DECP.NO.9105856-04 是 22#AWG 的四芯电缆。 附表 2 DEC 公司的实验结果 波特率 1 号电缆传输距离(英尺) 2 号电缆传输距离(英尺) 110 5000 3000 300 5000 3000 1200 3000 3000 2400 1000 500 4800 1000 250 9600 250 250 2. 什么是 RS-485 接口?它比 RS-232-C 接口相比有何特点? 答: 由于 RS-232-C 接口标准出现较早,难免有不足之处,主要有以下四点: (1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与 TTL 电平不兼容故需使用电平 转换电路方能与 TTL 电路连接。 (2) 传输速率较低,在异步传输时,波特率为 20Kbps。 (3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共 模干扰,所以抗噪声干扰性弱。 (4) 传输距离有限,最大传输距离标准值为 50 英尺,实际上也只能 用在 50 米左右。 1. RS-485 的电气特性:逻辑―1‖以两线间的电压差为+(2—6) V 表示;逻辑―0‖以两线间的电压 差为-(2—6)V 表示。接口信号电平比 RS-232-C 降低了,就不易损坏接口电路的芯片, 且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。 2. RS-485 的数据最高传输速率为 10Mbps 3. RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。 4. RS-485 接口的最大传输距离标准值为 4000 英尺,实际上可达 3000 米,另外 RS-232-C 接口在 总线上只允许连接 1 个收发器, 即单站能力。而 RS-485 接口在总线上是允许连接多达 128 个收发 器。即具有多站能力,这样用户可以利用单一的 RS-485 接口方便地建立起设备网络。因 RS-485 接口具 有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为 RS485 接口组成的半双工网络,一般只需二根连线,所以 RS485 接口均采用屏蔽双绞线传输。 RS485 接口连接器采用 DB-9 的 9 芯插头座,与智能终端 RS485 接口采用 DB-9(孔),与键盘连接的键盘接 口 RS485 采用 DB-9(针)。 3. 采用 RS485 接口时,传输电缆的长度如何考虑? 答: 在使用 RS485 接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最 大电缆长度是数据信号速率的函数,这个 长度数据主要是受信号失真及噪声等影响所限制。下图所示 的最大电缆长度与信号速率的关系曲线是使用 24AWG 铜芯双绞电话电缆(线 径为 0。51mm),线 间旁路电容为 52。5PF/M,终端负载电阻为 100 欧 时所得出。(曲线引自 GB11014-89 附录 A)。由 图中可知,当数据信 号速率降低到 90Kbit/S 以下时,假定最大允许的信号损失为 6dBV 时, 则电缆 长度被限制在 1200M。实际上,图中的曲线是很保守的,在实 用时是完全可以取得比它大的电缆长 度。 当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例 如:当数据信号速率为 600Kbit/S 时,采用 24AWG 电缆,由图可知最 大电缆长度是 200m,若采用 19AWG 电缆(线径为

36

0。91mm)则电缆长 度将可以大于 200m; 若采用 28AWG 电缆(线径为 0。32mm)则电缆 长度只 能小于 200m。

电子负载可以模拟真实环境中的负载(用电器),一般对电源要求比较严格的厂家都 会用电子负载来检测电源的好坏。它有好多功能,可以调节负载大小,以及短路,过流, 动态等等,应该说所有的电源厂家都会有用,而且也必须有。 电子负载的原理是控制内功率 MOSFET 或晶体管的导通量(量占空比大小),靠功率管的耗 散功率消耗电能的设备,它能够准确检测出负载电压,精确调整负载电流,同时可以实现模拟 负载短路,模拟负载是感性阻性和容性,容性负载电流上升时间.......一般开关电源电源的调试 检测是不可缺少的. 剖析散热设计关键议题

陈生源 效能、轻薄与散热是电子产品演进时无可避免面临的冲突,本文将从高功耗的源头谈起,进而带到机 构设计、风扇控制乃至于 Intel 先进热量管理等技术层面,逐步剖析散热设计最关键的基本议题。 功能提升与兼顾散热的两难 在电子产品的设计中,必然会追求更强大的效能,但在效能的背后往往不可避免的得受到一些因素的 限制,尤其是成本、尺寸与功耗。从元件到成品的功耗问题已愈来愈受到重视,对于手机、PDA 等便 携式产品来说,系统功耗是影响电池续航力的主因;对于 PC、电视等固装式产品来说,高功耗会带 来系统过热的问题。 从 Intel CPU 在发展蓝图上的转弯,我们可以清楚感受到效能与功耗之间的矛盾性。Intel 过去一向以 时脉做为 CPU 效能的判断指标,并不断地推出更高时脉的产品。不过,Intel 在 2004 年准备推出新一 代的 Prescott Pentium 4 时,却不得不向现实低头,因为此一时脉高达 4GHz 的芯片,其耗电量动辄超 过 100W,甚至可达 200W。这种高功耗是市场上所无法接受的,更遑论高达 5GHz 的 Tejas 和超过 6GHz 的 Nehalem 等 CPU 系列。请参考(图一)。

37

图一

Intel Pentium 系列的功耗密度随制程而愈来愈接近核反应堆

在此窘境下,Intel 也不得不承认自己的发展策略错误,进而转向拥抱多核心的新 CPU 架构。目前双 核心的 CPU 系列证实能有效降低其耗电性,耗电率的降幅可达 28%,这也支持 Intel 继续开发下一代 的四核心 CPU。不过,只要电子产品的功能一直被要求提升,因功耗而产生的问题始终还是存在。

高功耗的发生源头 在 2005 年的 ITRS(International Technology Roadmap for Semiconductors)会议中,其发展蓝图报 告指出,耗电的增加来自于更高的芯片作业频率、更高的互连总体电容及电阻,以及由级数成长的芯 片中晶体管增加的电路闸泄漏,并预估到了 2008 年时,高效能芯片的电路闸长度(gate length)等实 体性参数将会比 2005 年时的数值缩减一半,同时这些芯片的供电需求将达 200W。 这些造成耗电的因素可分为静态功耗(Static Power)和动态功耗(Dynamic Power)两类,其中静态 功耗是元件处于待机状态时,因电流泄漏而产生的功耗;动态功耗则是在运作状态下因负载电容充放 电、电流切换和电阻耗热所产生的功耗,其公式如下: Pdynamic = Capacitance ×Voltage2 × Frequency 从这里可以看出,由于电压和功耗是平方关系,对功耗的影响最大;频率则与功耗成正比关系。因此 要降低动态功耗,就得从降低电压和时脉来下手,这也是为什么 Intel 得放弃「主频挂帅」政策的原 因。其实降低功耗的一大原则,就是为工作中的单位提供够用的频率及时脉就好,而对于用不到的单 位,就让它们进入待机的状态。Intel 也为此推出多种技术,例如智慧性调频率的增强型 Intel SpeedStep 技术(Enhanced Intel SpeedStep Technology)、进阶电源控制 (Advanced Power Gating)、智能型快取存储器 (Smart Cache)、动态电源管理技术 (Dynamic Power Coordination),和可动态调整快取存储器的增强型进阶休眠 (Enhanced Deeper Sleep with Dynamic Cache Sizing)等技术。

散热基本策略

38

虽然有了上述多种降低功耗的技术,但因功耗而产生热量仍是无可避免的使用现象。当系统过热时, 对于笔记型计算机等用户来说,将出现难以操作的不适感;对于元件本身来说,则容易因过热而造成 运作失常的状况。每个元件都有其正常运作的温度范围,以 CPU 来说,当在室温约 35℃时,Intel 或 AMD 会要求 CPU 的内部不能超过 100℃的安全工作范围,而系统厂商会进一步要求以更低的温度为 控制规格(如 95℃)以确保产品的稳定性。 在此前提下,制造商就得对关键性的元件进行温度监控,并搭配散热片(heat sink)、热导管(Heat Pipe)等传导方式将芯片发出的热带出,再经由风扇将热吹到空气中,最后再经空气的对流将热气带 出机壳。其中传导属于被动的散热方式,风扇的强制对流(Forced Convection)作法则属于主动散热 方式,两者虽都属于热力学的范畴,但在实现上的技术差异颇大。传导作法主要靠的是材料特性,风 扇的设计则着重机构的规划与电子技术的控制,两种技术都不断在进步中。

图二

Intel 的 CPU 散热模块,包括散热片和风扇

目前常见的散热片是采用高热传导系数的铝(Al)、铜(Cu)所组成,而热管则是藉由液、气相间的 相变化(phase change)吸收热量,并以气体分子来传输热量,因此可得到高于铝、铜近五十倍的热 传导系数,具有更佳的传热效果。此外,在一些服务器及 Apple 的 PowerMac 中也可见到水冷 (Liquid cooling)式回路散热器,但它需要有一个热交换器和一个大风扇。 在早期的 Pentium 时代,由于 CPU 产生的热量较少,只要利用散热片、鯺片(Fin)和热管的被动散 热设计即可解决散热需求;演变到今日,系统商往往得为高效能的 CPU 搭配散热风扇才行,不过,仅 采用热交换器和自然对流的无风扇计算机仍然存在。此作法虽然不会造成风扇噪音的问题,但此类计 算机的尺寸必然较大,通常是效能较低的低阶计算机。 在风扇方面,则可分为轴流式风扇(axial fan)和径流式风扇(radial fan)两大型式,前者用于尺寸 较大的 PC、服务器,后者则适用于扁平造型、空间有限的笔记型计算机。风扇的使用效率与马达控 制密切相关,目前多数风扇采用的是无刷式(brushless)的 DC 马达,它整合了一个马达控制驱动 器,此驱动器能接收数位及类比 PWM 讯号,进而提供准确的空气流动和噪音控制。至于在风扇的输

39

出输入(IO)控制上,目前已从只具有接地(GND)和电压(12V)两个接脚的二线风扇,进步到能 传输转速计(tachometer;tach)讯号的三线风扇,以及还能传输 PWM 输入值的四线风扇。

从机构面看散热问题 若从机构面来看风扇的对流问题,就能更清楚感受到今日计算机在散热设计上的难处。大家都知道 CPU 很热,但其实 CPU 只是计算机机壳内的热源之一,其他会产生高热的元件或组件还包括硬盘、 绘图芯片/绘图卡、存储器和电源供应器等,其中硬盘的温度甚至可能达到 50?C,比起 CPU 还要更 热。这些元件或组件必须透过适当的散热规划,才不致于造成操作上的不适或系统的不稳定性。 以 PC 的机构规格来说,从 AT 到 ATX(Advanced Technology eXpanding),再到新一代的 BTX (Balanced Technology Extended)架构,其改革的重要推力之一,就是要解决系统散热的问题。相较 于 ATX,BTX 为 PC 的内部配置做了更佳化的调整,也就是将 CPU 散热模块规划在冷空气进入的最 前方位置,让 CPU 优先获得降温,空气再向后进一步带走南北桥芯片和显示卡的热量,最后从后方的 散热孔排出热空气,请参考(图三);电源供应器仍在原来的位置,另配有散热风扇来将其产生的热 量及机壳内部的部分余热带到机壳外。此做法让风扇的需求数目降低,但又能获得更佳的散热效率。

图三 BTX 在许多重要的区域提供平行的空气流动

风扇控制管理技术 就如同电源管理在运作和待机两种状态下,还可以细分出多层次的供电与频率调整策略, 风扇的控制管理也是如此。也就是透过精确的温度监视,加上智慧性的个别及群组性风扇 控制策略,以达到最佳化的系统散热成效,这些都属于电子技术的建置领域。目前市场上 的解决方案,有的从感测角度下手,有的专注于系统控制,但最好的方式是将感测功能与 具有马达控制功能的可调变风扇整合在一起,进而改善系统效能和增加可靠性。 ■1. 精确温度量测 这种进阶式热量管理技术的基础,就在于精确的温度感测。一般的温度传感器,其误差可 以达到± C,这对于保护频带(guardband)的两端,也就是风扇启用的低温区及特别需 6° 要保护的高温区来说,都会造成系统的问题。在(图四)的红色区域显示低温区因采用不 准确的温度感测而导致过早打开风扇,这会造成过度的耗电以及风扇的噪音;在高温区的

40

感测误差则会造成对 CPU 的不恰当保护,进而让处理器愈来愈热、消耗愈多的能量,也缩 减了使用寿命;此外,过热的系统会产生当机现象或损毁资料及其他元件。

图四 温度量测的精确性对 CPU 温度及风扇速度的 Guardband 冲击

针对系统或元件进行温度量测的方式有很多,包括热电偶(thermocouple)、热敏电阻 (thermistor)、温度阻抗型装置(resistance temperature device;RTD)和半导体传感器 等。透过一些技术能将温度传感器的灵敏度加以提升,例如类比能带间隙(bandgap)的建 置、用于量测远端温度的 delta VBE 技术、内部资料路径转换方法学,以及为了在更广的 温度范围内确保量测的准确性而开发的平顺运算法则等。高准确度温度感测能做到± C 的 1° 准确性,采用此类的传感器能降低风扇至少 70%的运作,进而减少约 2W 的耗电以及约 15 dBA 的风扇噪音。 ■2. 最佳化风扇控制 有了精确的温度感测数据后,才能进一步对风扇做最佳化的控制。这又可以分成系统控制 和马达控制两个层面来看。在系统控制上,Intel 为计算机系统中的 CPU 及其他热源的散热 议题提出了一套自动风扇速度控制运算法,基于此运算法,系统设计师可以很容易地在温 度及风扇速度之间建立起控制关系,进而能建置一套可调变速度的线性化解决方案,请参 考(图五)。再加上风扇转速计的闭路回馈,此系统能基于初始设定的热管理参数而自行 进行调节控制。

41

图五 可变速风扇控制系统建置(以 Andigilog aSC7512 为例)

不过,此一控制运算法必须仰赖先进的热管理系统控制器来达成,这些硬件监控设备必须 支援多组风扇的转速及电压监控,并对不同的温度区域下达脉冲宽度调变(Pulse-width Modulation, PWM)的指派。此控制器会透过内含的数位滤波器来提供更稳定的温度读取 值,并在温度超过预设值时通知系统做因应。其它的重要功能还包括多重系统警示以及用 来测量风扇转速的风扇转速表输入。 在马达控制方面,这部分的控制除了与系统的散热息息相关外,也是决定风扇噪音量的关 键。在多数的使用环境中,计算机中风扇的噪音已是必须被妥善处理的议题。先进的马达 风扇控制器具备内建的智慧能力,能够分析一个以上的资料点,知道该如何以正确的气流 量来维持安全及安静的操作,这种智能型冷却也能明显地降低风扇的噪音。 当我们意欲对风扇进行实时性的转速控制时,来自 PWM 的大量指令步骤容易造成难受的 噪音,这时就得透过一些先进的技术来消除噪音,例如采用可适性、无重叠(nonoverlapping)的马达转换技术,透过自动化的变异延迟能防止两组马达线圈的同时运转。 其他的先进马达控制技术还包括高效率转速控制的可选择式斜率 (selectable slope)、可程 序最小转速设定、霍尔放大器 (Hall amplifier) 和专属的噪声消除电路以及最适合行动应 用的可选择式自动低电流关机模式等。 Intel 先进热量管理规格 随着热量管理成为计算机设计的核心议题后,Intel 已投入极大的心力去发展配套的新技术 规格,包括简单序列传输(Simple Serial Transport, SST)总线、数位温度传感器(Digital Thermal Sensor, DTS),以及平台环境式控制界面(Platform Environmental Conrtol Interface, PECI),这些规格都被应用在 Intel 采用双核心运算的核心微架构(Core Microarchitecture)中,也是实现智慧性的自动化风扇控制的基础。 其中 SST 总线是针对 SMBus 总线所提出的革新技术,它能有效解决 SMBus 在传输速度上 太慢、噪讯问题严重以及传送的信息不够准确等问题。不仅如此,SST 还具有很大的发展 潜力,透过 SST 能够将系统中包括 CPU、硬盘、绘图卡、电源供应器等热源的温度感测值 传回给控制中心,并由控制中心对各个热源进行整体性的最佳化风扇转速控制,进而能达 到智慧性风扇系统的理想境界。 PECI 是 SST 协定的一个精简版总线协定,它专门用来报告 CPU 的温度。DTS 则是置于

42

CPU 上的数位温度传感器,目前 Intel 在其 CPU 上都安置了 DTS 和传统的温度二极管 (thermal diode, TD),相较于 TD,DTS 被置放于更接近 CPU 上实际热源的位置,因此 能感测到更精确的温度。

图六 双核心 Xeon 5100 系列处理器中的 PECI 拓朴架构 结论 在过去几代的计算机系统中,针对各个热源并没有提出一套整合性的散热管理策略。举例 来说,CPU 风扇只负责将热气从 CPU 处移走,至于热气吹往那里并不考虑,但这会对其他 的区域造成很大的温度冲击。随着今日计算机系统中,CPU、硬盘、绘图芯片控制器、电 源供应器和其他的零件一一成为关键性的热源,迫使我们必须提出更先进的方式来进行散 热管理。 对于具有高度成长潜力的计算机产品类型,如笔记型计算机、娱乐性计算机或新一代的 UMPC 来说,更是如此。这些产品被要求在多样化的强大功能前提下,仍然不能产生烫 手、系统不稳定或噪音的问题。这些都得靠新进的热量管理技术来加以解决。 热量管理的层面很广,涵盖了热传导的热管、散热片等技术,机构的最佳化规划,以及温 度监测及风扇控制的电子技术。本系列将着重在散热电子技术的介绍,在接下来的文章 中,将陆续探讨 Intel 的重要技术规格、温度感测技术、风扇控制技术、智慧性风扇控制, 以及笔记型计算机散热系统设计等议题。唯有在这些技术议题获得到平衡的掌控时,系统 就能运作地更好、更稳定。 (本文作者为 Andigilog 应用工程师,联络方式:KChen@andigilog.com )

43

Core 微架构全解析 这一篇是上一篇的补充,增加了和旧架构的比较 1.前言 近年来,Intel 原本寄以厚望、号称频率将提升至 10GHz 的 NetBurst 微架构屡遭重创。采用 90nm 制造工艺的 Prescott 遭遇功耗过高、散热困难的问题,原定推出的 4GHz 的 Pentium 4 580 被 无限期推迟。而后继产品,原定时脉超过 5GHz 的 Tejas 惨遭腰斩,6GHz 的 Nehalem 也无疾而终。 NetBurst 微架构遭遇无法解决的功耗问题,发展受阻,固然有 90nm 制造工艺漏电严重的影响,但 是 Intel 同样采用 90nm 制造工艺的移动平台的 Dothan 处理器却在功耗方面有良好的表现。这使我 们不得不认为,功耗问题多半是由 NetBurst 微架构先天设计上的缺陷引起的。与此同时,竞争对 手 AMD 的 K8 处理器在性能和功耗两方面都表现良好,正在桌面和服务器平台上侵占原本属 于 Intel 的市场,势头迅猛。这也迫使 Intel 只能选择重新研发兼具高性能与低功耗的微架构。 2006 年 3 月上旬,Intel 于美国旧金山举办了 2006 年度的春季 IDF 大会 (Intel Developer Forum)。在这届 IDF 大会上,有一个万众瞩目的焦点:Intel 宣布下一代处理器 将采用的 Core 微架构。这也使得今年的 IDF 大会成为近几年来最激动人心的一次。在去年秋季 的 IDF 大会的开幕主题演讲中,Intel 的执行长官 Paul Otellini 就曾经指出,未来处理器的技术发展 重点将是―性能功耗比‖(Performance per Watt)。而这届 IDF 大会的主题更加明确:功耗最优化 平台(Power-Optimized Platforms)——与 Core 微架构紧密相关。根据 Intel 的说法,采用新 的 Core 微架构的处理器将在整数性能和商业计算方面得到极大的飞跃,肯定将超过竞争对 手 AMD 的产品。更加美妙的是,拥有这样强悍性能的 Core 微架构在功耗方面将比前任大幅下降, 从而完美的体现了这届 IDF 大会的主题。 Core 微架构是由 Intel 位于以色列海法的研发团队负责设计的。该以色列团队早在 2003 年就因 为设计出兼具高性能与低功耗的 Banias 处理器而闻名天下,Core 微架构也是他们在 Yonah 微架构 之后的最新杰作。Core 微架构很早就出现在 Intel 的计划之中了,早在 2003 年夏天 Intel 就曾经隐 约提到过,原定是 Centrino 平台的第三代 Napa 平台后期和第四代 Santa Rosa 平台所采用的处理 器。没想到由于 NetBurst 微架构的失败,Core 微架构被 Intel 改弦易辙,推上前台,被赋予了取 代 NetBurst 微架构、一统桌面、移动与服务器平台的历史使命。 之前,Intel 最新的 X86 微架构是出自以色列设计团队之手的 Yonah 微架构。而 Yonah 微架构 被认为是从古老的 Pentium Pro 架构(P6 微架构)演变而来的。与之前 Pentium 4 采用 的 NetBurst 微架构发布时提供的详细文档和资料相比,对 Yonah 微架构,Intel 只披露了很少的相 关资料,而且 Intel 很可能将继续对关于 Core 微架构的详细资料守口如瓶。在这种情况下,本文集

44

中了目前可以得到的所有资料,将是业界详细了解 Core 微架构的好机会。

Intel 的新核心已经拥有多个名字。以色列团队在设计之初,采用 Merom 作为开发代号。 Merom 的原意是约旦河附近的一个湖,这也是 Intel 的一个有趣的习惯——采用研发团队居住地附 近的地名作为产品的开发代号。然后,Intel 在 2005 年开始大规模宣传该微架构的时候,把它描述为 ―下一代微架构‖(Next Generation Micro-Architecture,简称 NGMA)。而在今年的 IDF 大会上, Intel 把它正式宣布为―Core 微架构‖(Core Micro-Architecture)。本文也将采用―Core 微架构‖作为 对新核心的正式称谓。 Intel 的 Roadmap 上,―Core 微架构‖的移动平台的产品代号为―Merom‖—— 以色列团队一开始采用的研发代号,桌面平台的产品代号为―Conroe‖,而服务器平台的产品代号为 ―Woodcrest‖。

我们先看一看下面展示的 Core 微架构的桌面产品 Conroe 在 SuperPi 1M 测试中的表现: 3.1GHz 下 16s 时间完成!已经打破之前的世界纪录。采用 NetBurst 微架构的 Pentium 4 处理器超频 到 6GHz 左右,或者 AMD 的 K8 处理器超频到 4GHz 左右,在这个测试中的速度都是 20s 左右。当 然,SuperPi 测试并不能全面反映处理器的性能,而且,在进一步阅读了后面的 Core 微架构的更全 面的测试之后,你会发现 SuperPi 测试算是对 Core 微架构最有利的测试之一。不过,这并不影 响 Core 微架构给我们带来的震撼感。

Conroe 处理器进行 SuperPi 测试 本文中,我们首先将带领读者来了解 Core 微架构的秘密,并对其中各个功能单元进行详细的分 析。为使读者对 Core 微架构的改进有清晰的概念,我们总是把 Core 微架构和 Yonah 微架构以 及 NetBurst 架构放到一起进行对比。 2.关于 Core 微架构 Intel 的 Yonah 处理器是第一个共享式二级缓存的双核处理器设计,然而,共享式二级缓存的优势 在移动平台上却不能完全发挥出来。共享式二级缓存的芯片级多处理器(Chip Multi-Processer,简 称 CMP)设计的最大优势在于它可以不考虑缓存一致性问题,而分别独占二级缓存的多核处理器需 要时刻注意保持缓存一致。这正是工作站和服务器需要面对的一个主要问题,而相比之下移动平台 和桌面平台并不迫切需要解决这个问题。基于这种考虑,采用 Core 微架构的 Woodcrest 处理器将比 之前的服务器芯片有质的提高,因为之前的芯片没有任何一款采用共享式二级缓存的设计。此外, Intel 还表示,Core 微架构可以在两个核心的一级数据缓存之间直接传输数据,但是 Intel 的工程师 拒绝再继续透露更多相关的细节。下面的图片对比了 Yonah 微架构、 Core 微架构和 NetBurst 微架 构的总体架构。

Intel 三代架构总体对比 注:带宽计算,以 woodcrest 为例。片上 cache 和内核间的带宽为 3Gx32B(Cache 行尺寸,也是数 据通路宽度)=96GB/S;前端总线(Core 微架构沿袭了 FSB)带宽=1333Mx64/8=10.6GB/S。

45

从总体架构来看,Core 微架构继承了 Yonah 微架构的设计方式,包括共享式二级缓存和前端总 线。同时,Core 微架构的内部连接单元的带宽与 NetBurst 微架构的连接带宽接近,远远超 过 Yonah 微架构——片上缓存与内核通讯的带宽远超 Yonah 微架构,与外部的连接带宽更是达到 了 Yonah 微架构的 2 倍。跟前面提到的一样,这些改进虽然对移动平台和桌面平台意义不太大,但 是对多路服务器系统来说非常有用。 Intel 将在今年下半年陆续发布 Woodcrest、Conroe 和 Merom,服务器、桌面和移动平台三箭 齐发,其中 Woodcrest 和 Conroe 应该会早一些,Merom 应该到今年第四季度才能看到。为什么这 样说?如果你熟悉目前的处理器市场的情况,你就会知道,在移动平台的市场方面,得益于 Intel 的 极其成功的 Centrino 平台,Intel 占据了绝对主动的地位,并且在短时间内应该不会有什么意外的情 况发生,并且 Yonah 处理器在今年一月份刚刚发布;在服务器平台的市场方面,应该说 Intel 已经 稍微落在了 AMD 的后面;而目前桌面平台的市场是对 Intel 最不利的。所以,对 Intel 来说,更重 要的是尽快发布 Woodcrest 和 Conroe,改变自己在服务器平台和桌面平台的竞争力。至于移动平 台,要排到后面去了。况且,从财政方面考虑,Intel 肯定不愿意 Yonah 处理器的生命周期过短。 3.总体架构 作为 Intel 的新旗舰,Core 微架构拥有双核心、64bit 指令集、4 路超标量体系结构和乱序执行 机制等技术,使用 65nm 制造工艺生产,支持 36bit 的物理寻址和 48bit 的虚拟内存寻址,支 持 Intel 所有的扩展指令集。Core 微架构的每个内核拥有 32KB 的一级指令缓存、32KB 的双端口一 级数据缓存,然后 2 个内核共同拥有 4MB 的共享式二级缓存。Core 微架构在今年内发布的最高频 率将是 Conroe XE 的 3.33GHz。每种产品拥有自己的最高 TDP(Thermal Design Power,热量设计功 耗):Merom 最高 35W,Conroe 最高 65W,Woodcrest 最高 80W。此外,针对不同客户的要求也可 以提供低功耗的版本。例如,低电压版本的 Woodcrest 将会定位于刀片系统,通过降低频率等方法 使 TDP 低达 40W。 下图是 Core 微架构的内核总体架构图。图中各个功能单元用不同的颜色来划分。左上角的紫色 单元是取指单元,负责从指令缓存中取出指令并进行分支预测等工作;橙色的部分是译码单元,负 责把取出的指令译码,并生成微指令;黄色的部分是微指令缓冲区和微指令调度单元;蓝色的部分 是执行单元;绿色的单元是存储单元。 作为比较,Yonah 微架构和 NetBurst 微架构的核心架构图也列在下面。

Core 微架构

Yonah 微架构 NetBurst 微架构 让我们提示一下 Core 微架构中的每个核心在每个周期可以做的工作:在最好的情况下,每周期可 以取指 160bit 以上(Intel 没有透露更具体的数字),解码 5 条 X86 指令,发射 7 条微指令,重排序 和重命名 4 条微指令,发送 6 条微指令至执行单元,完成并退出 4 条微指令。从任何一个方面来 看,这个架构都是比 NetBurst 微架构或者 Yonah 微架构更宽的架构,拥有更宽的流水线、更高的并 行度。 4.流水线级数 Intel 声称 Core 微架构拥有 14 级―有效‖流水线。与 Banias 同出于一个设计团队,Core 微架构 仅有 14 级的整数流水线,并不让人意外。但是,究竟什么是 14 级―有效‖流水线? 然后让我们来了解一下―有效流水线‖的定义,这也是在过去容易造成误解之处。简而言之,所 谓的有效流水线,就是指发生分支预测错误时,所需要重新执行的流水线级数。以采用 NetBurst 微

46

架构的处理器来说,Willamette、Northwood 与 Prescott 核心的有效流水线级数分别是 20、20 和 31,而原始的 P6 微架构的处理器则是 10 级。(注:个人认为有效流水线级数指的是指令流水线的 级数) 不过,对于现代的普遍采用乱序执行方式的 X86 处理器来说,有效流水线级数并不能代表真正 意义上的流水线级数。NetBurst 微架构的处理器仅仅是 Trace Cache 的 Trace 建立过程,就有起码 10 级;P6 微架构的完整流水线级数应该是 12 至 15(10 级有效流水线加上指令执行完毕后 的 Retire 动作,与可能出现的 Reorder Buffer 延迟)。随着乱序执行引擎的工作方式越来越复杂, X86 处理器流水线级数的概念也日益模糊。换言之,Core 微架构真正意义上的流水线级数并不会只 有 14。 Core 微架构的 14 级有效流水线与 Prescott 核心的 31 级有效流水线的对比,也只有参考意义。 那些仅仅根据这个数字的对比就断言 Core 微架构只能达到很低的频率的说法是不具有足够的说服力 的。Conroe XE 3.33GHz 处理器的存在已经让很多相信这个说法的用户大吃一惊。而实际上,已经 有玩家声称,Conroe 处理器可以在风冷的情况下达到 4GHz 以上的频率。Core 微架构的频率到底能 够到达什么样的高度,让我们拭目以待。 接下来,我们将对 Core 微架构的各个功能单元进行更加详细的分析。 5.四组解码单元 首先我们可以明确的指出,毫无疑问,Core 微架构是一个比 NetBurst 微架构或者 Yonah 微架 构更宽的设计。下图是这三代微架构在前端的比较,三者的解码单元的构成可以初步表明这一点: Core 微架构拥有 4 组解码单元,每周期可以生成 7 条微指令;Yonah 微架构拥有 3 组,每周期可以 生成 6 条微指令;而 NetBurst 微架构由于解码方式不同,不容易比较解码单元的数目,但是我们可 以知道,NetBurst 微架构每周期只能生成 3 条微指令。 Intel 三代微架构前端对比 在对 Core 微架构的解码单元进行详细介绍之前,我们先来了解一下 Yonah 微架构的解码单元。 实际上,Yonah 微架构基本上是沿用了古老的 P6 微架构的解码单元设计,采用 3 组解码单元,由 2 组简单解码单元和 1 组复杂解码单元组成。其中 2 个简单解码单元负责处理对应 1 条微指令的简单 X86 指令,而 1 个复杂解码单元负责处理对应 4 条微指令的复杂 X86 指令,这样的解码单元每周期 最多能生成 6 条微指令。P6 微架构的这种历史久远的解码方式被形象的称为―4-1-1‖规则。 实际上,这种把简单指令与复杂指令分而治之的做法,并非是 P6 微架构的专利。从全世界第一 个流水线化的 X86 处理器——80486 开始,为了加速简单指令的执行,这原则就已经开始主导所有 高速 X86 处理器的微架构。就算是号称提供三组―完整解码单元‖的 AMD K7、K8 处理器,实际上 也有类似的限制。 不过,Yonah 微架构在指令解码单元上的改进,以及 SSE 指令解码方式的改变,却带给我们另 一个思考的方向。与原始的 P6 微架构不同,Yonah 微架构的 2 组简单解码器都可以进行 128bit SSE 指令的解码。而在过去,这只有复杂解码单元才能胜任。换言之,如果 Core 微架构的所 有 4 组解码单元都具备了这样的能力,结合更强的微指令融合技术和宏指令融合技术(见后文), Core 微架构的解码单元的实力将几乎等同于―4-2-2-2‖,甚至―4-4-4-4‖。 Core 微架构把解码单元增加到 4 组,这个变化可以说是 Core 微架构最大的特色之一。自 从 AMD 失败的 K5 设计之后,已经有超过十年的时间,X86 处理器的世界再也没有出现过 4 组解码 单元的设计。因为 X86 指令集的指令长度、格式与寻址模式都相当混乱,导致 X86 指令解码器的设 计是非常困难的。Intel 甚至在 NetBurst 微架构的设计中引入 Trace Cache 来取代占用大量晶体管的 复杂解码单元。而增加解码单元,特别是复杂解码单元,固然会大大增强处理器的解码能力,但是 解码单元复杂的电路也必然会提高内核的复杂度和处理器的功耗。 在处理器频率不可能达到 NetBurst 微架构那种高度的前提下,为了能显著提高处理器的性能, 最有效的途径就是增加执行单元的数量。就像你将在后文看到的那样,Core 微架构执行单元的数量 比 Yonah 微架构增加了 50%。而仍然采用与 Yonah 微架构相同的 3 组解码单元是不可能适应这样 庞大的执行资源的。所以,我们甚至可以说,Intel 是―被逼‖选择增加解码单元的数量的。权衡利 弊,Intel 最终选择了增加 1 组简单解码单元的折衷方案。至少从最终的效果来看,这样的选择还不

47

算差。 为了配合这超宽的 4 组解码单元,Core 微架构的取指单元也需要加宽。Intel 没有透露取指单元 的具体宽度,但是我们可以从其它指标中估计出这个数字:Core 微架构每个周期可以解码最多 5 条 指令,而 X86 指令的平均长度大约为 32bit,因此取指单元的宽度至少为 160bit。目前有一种尚未得 到证实的说法声称,Core 微架构取指单元的宽度为 192bit,仅供参考。 取回的指令被送到预解码缓冲区,该缓冲区还存放了关于指令长度和解码边界的信息。预解码 缓冲区至少可以容纳 10 条 X86 指令,很可能可以容纳更多(Intel 也没有透露更加具体的数字)。 现在让我们总结一下 Core 微架构的解码单元:Intel 在 Core 微架构上取消了 NetBurst 微架构 上的有些令人失望的追踪缓存(Trace Cache),而是安置了多达 4 个解码单元,其中,有 3 个简单 解码单元来处理对应 1 条微指令的简单 X86 指令,而 1 个复杂解码单元来处理对应 4 条微指令的复 杂 X86 指令。并且,与 Yonah 微架构一样,所有的 SSE 指令都可以被简单解码单元处理,生成 1 条 微指令。我们可以把解码部分简单的总结为―4-1-1-1‖方式。此外,如果遇到非常复杂的指令,复杂 解码单元还可以借助旁边的微码存储器(Microcode Sequencer),取得微指令序列。 6.微指令融合与宏指令融合 微指令融合(Micro-Op Fusion)是从 Banias 核心开始出现的技术,随后的 Yonah 微架构 和 Core 微架构也都具备该技术,并不断进行改进。该技术通过减少 X86 指令解码后生成的微指令 的数目,来降低乱序执行引擎和执行单元的压力,从而达到提升处理器效率的目的。 首先让我们解释一下什么是微指令(Micro-Op)。由于 X86 指令集的指令长度、格式与寻址模 式都相当复杂,为了简化数据通路(Data Path)的设计,从很久以前开始,X86 处理器就采用了将 X86 指令解码成 1 个或多个长度相同、格式固定、类似 RISC 指令形式的微指令的设计方法,尤其是 涉及存储器访问的 load 及 store 指令。所以,现在的 X86 处理器的执行单元真正执行的指令是解码 后的微指令,而不是 X86 指令。 微指令融合技术,以及 Intel 的专属栈引擎技术(Dedicated Stack Engine),目的都在于减少微 指令的数目。处理器内部执行单元的资源有限,如果可以减少微指令的数目,就代表实际执行的 X86 指令增加了,可以显著提升执行效能。而且,微指令的数目减少还有助于降低处理器功耗,可 谓有益无害。 微指令融合技术所支持的范围,包括了整数运算、浮点运算和 SSE2 指令集等各种扩展指令集。 根据 Intel 的官方说法,通过微指令融合技术,整数运算大约可以提升 5%的性能,浮点运算大约可 以提升 9%的性能。 如今 SSE、SSE2 和 SSE3 等扩展指令集的重要性与日俱增,但是这些 SIMD 指令的存储器访问 操作——尤其是 128bit 的操作——一般都需要解码成多条微指令,造成执行效率不高。在 Yonah 微 架构与 Core 微架构中,这种类型的操作在很多时候可以解码成 1 条微指令,从而降低了后端执行单 元的压力,对提高 SIMD 指令的执行效率有不小的帮助。 细心的读者可能会发现,我们前面曾经提到,Core 微架构每个周期最多可以解码 5 条 X86 指 令。奇怪的是,这里只有 4 个解码单元。那么,怎样才可以做到解码 5 条指令呢?这就需要介 绍 Intel 在 Core 微架构的前端引入的一项新的技术——宏指令融合(Macro-op Fusion)。 所谓宏指令(Macro-Op),即 X86 指令。宏指令融合技术的引入使得 Core 微架构在前端可以 把 2 条宏指令融合为 1 条微指令。例如,X86 指令中的 cmp 指令或者 test 指令可以与 jmp 指令融 合,产生仅 1 条微指令。而宏指令融合技术也可以与程序中常见的 if-then-else 结构很好的配合。还 有传言声称,Core 微架构还可以将某些连接在一起、有依赖关系的浮点乘法与加法指令结合为 1 条 微指令。最后,4 个解码单元中的任何一个都可以执行宏指令融合操作,然而每个周期最多只能有 1 个解码单元执行宏指令融合,所以最大的解码宽度为每周期 5 条 X86 指令。

虽然 Intel 再次拒绝透露宏指令融合技术的具体效果,但是一些估算表明,宏指令融合技术可以把

48

处理器需要执行的微指令的数目降低 10%——已经是非常巨大的提升了。 宏指令融合技术的优点是显而易见的,降低处理器需要执行的微指令的数目可以在两个方面提 高处理器性能。首先,也是十分直观的,执行单元只需执行更少的微指令,直接提高处理器性能。 其次,微指令缓冲区相当于容纳了更多的 X86 指令,乱序执行引擎可以从中更有效的发现能够并行 的指令,也就是说,有利于实现更高的指令级并行度(Instruction Level Parallelism,简称 ILP)。 当然,这些优点与以前 Yonah 微架构就拥有的微指令融合技术(Micro-Op Fusion)十分相似。但 是,同时拥有宏指令融合技术和微指令融合技术使得 Core 微架构可以比 Yonah 微架构节省更多的 执行单元资源和拥有更好的指令级并行度。也许,具有讽刺意义的是,宏指令融合技术和微指令融 合技术正在使得 X86 处理器的内核更加接近 CISC 架构,而不是 RISC 架构。这与 Intel 当年推 出 IA-64 架构的想法正在背道而驰。 结合微指令融合与宏指令融合技术,与之前的 Intel X86 处理器相比较,Core 微架构的解码单 元的实际能力,还要远远大于表面上所看到的 4 组解码单元的数量。 Core 微架构前端的改进还包括分支预测单元。分支预测行为发生在取指单元部分。首先,它使 用了很多人们已经熟知的预测单元,包括传统的 NetBurst 微架构上的分支目标缓冲区 (Branch Target Buffer,简称 BTB)、分支地址计算器(Branch Address Calculator,简称 BAC) 和返回地址栈(Return Address Stack,RAS)。然后,它还引入了 2 个新的预测单元——循环回路 探测器(Loop Detector,简称 LD)和间接分支预测器(Indirect Branch Predictor,简称 IBP), 其中循环回路探测器可以正确预测循环的结束,而间接分支预测器可以基于全局的历史信息做出预 测。Core 微架构在分支预测方面不仅可以利用所有这些预测单元,还增加了新的特性:在之前的设 计中,分支转移总是会浪费流水线的一个周期;Core 微架构在分支目标预测器和取指单元之间增加 了一个队列,在大部分的情况下可以避免这一个周期的浪费。看起来很微不足道?要知道,对微内 核设计来说,节省每一个可以节省的周期就是最大的目标;对已经发展了很多年的设计进行改进也 是非常非常困难的。 7.乱序执行引擎 Core 微架构的乱序执行引擎与 Yonah 微架构的设计类似,但是引入了更多的资源。如下图所示, Core 微架构与 Yonah 微架构在乱序执行引擎方面非常相似,包括寄存器别名表(Register Alias Table),分配器(Allocator)和再定序缓冲区(Reorder Buffer,简称 ROB)。区别在于,所有的 这些单元都被加大加宽,这样才可以配合更强劲的前端,容纳和调度更多的微指令,寻求更高的指 令级并行度。

Intel 三代微架构乱序执行引擎对比 NetBurst 微架构和 Yonah 微架构的最大吞吐量都是每周期 3 条微指令。相比之下,Core 微架构 的最大吞吐量是每周期 4 条微指令。NetBurst 微架构的再定序缓冲区容量是 126 项,对 Yonah 微架 构来说是多于 40 项,而 Core 微架构的再定序缓冲区容量是 96 项。 Core 微架构的保留站(Reservation Station)同样被加大:从 Yonah 微架构的 24 项增大到 32 项。这方面与 NetBurst 微架构的比较有一些困难,因为 NetBurst 微架构采用了分布式调度器 (Distributed Scheduler),而不是保留站。不过我们还是可以了解一些数字:NetBurst 微架构拥有 46 个调度槽(Scheduler Slot),存储单元使用 8 个,执行单元使用 38 个。 8.执行单元 Intel 没有过多的透露关于乱序执行引擎的资料,但是对执行单元子系统的相关资料毫不吝啬, 言之甚详。Core 微架构的执行单元部分拥有 3 个调度端口,通过这 3 个端口来调度执行单元。执行

49

单元包括 3 个 64bit 的整数执行单元(ALU)、2 个 128bit 的浮点执行单元(FPU)和 3 个 128bit 的 SSE 执行单元,或者更准确的说法应该是,矢量执行单元或 SIMD 执行单元。其中,位于端口 1 的 整数执行单元可以处理 128bit 的 Shift 和 Rotate 操作。而 2 个浮点单元和 3 个 SSE 单元共享某些硬 件资源。NetBurst 微架构和 Yonah 微架构的执行单元子系统也在图中列出作为比较。

Intel 三代微架构执行单元对比 很明显,我们首先注意到 Core 微架构拥有 3 个调度端口——比 NetBurst 微架构和 Yonah 微架 构的 2 个端口增加了 1 个。所以,Core 微架构的执行单元子系统每个周期最多可以执行 3 条操作, 而 Yonah 微架构最多只能执行 2 条。需要注意的是,对于 NetBurst 微架构来说,并不是 2 条。 NetBurst 微架构的调度机制使得每个周期最多可以执行 4 条操作,但是这种情况会相当罕见——必 须是 4 个简单的整数单元操作。并且,NetBurst 微架构在执行 64bit 指令时会有额外的延迟。更重要 的是,Core 微架构的功能单元的统筹安排相对平衡,对于整数操作,可以在多个周期内保持单周期 执行 3 个操作的吞吐量。而 NetBurst 微架构在很多情况下只能单周期执行 1 个操作。 Core 微架构所拥有的 3 个 64bit 的整数执行单元并非完全相同。与解码单元部分类似,3 个整数 执行单元也分为 1 个复杂整数执行单元和 2 个简单整数执行单元。不过,Core 微架构是 Intel 的 X86 架构处理器第一次可以在一周期内完成一次 64bit 的整数运算。之前的 NetBurst 微架构虽然也可以 完成 64bit 的整数运算,但是需要 2 个时钟周期。另外,因为 3 个整数执行单元占据了不同的端口, 所以采用 Core 微架构的处理器可以在一周期内最多执行 3 组 64bit 的整数运算。 Core 微构架拥有 2 个浮点执行单元,位于端口 0 的浮点执行单元负责加减等简单的浮点运算, 而端口 1 的浮点执行单元则负责乘除等浮点运算。这样,在 Core 微架构中,浮点加减指令与浮点乘 除指令被划分成两部分,使其具备了在一周期中完成两条浮点指令的能力。 Core 微架构在 SSE 运算方面的性能也比它的前任有很大的提高。它的 3 个 128bit 的 SSE 单元 并不是完全相同的,在移位和乘法的资源方面有微小的差异,但是都可以在单周期内完成 1 个 128bit 的 SSE 操作。相比之下,NetBurst 微架构的 SSE 单元无论在数量上还是质量上都有所不如: 只有 2 个 64bit 的 SSE 单元,需要 2 个周期来执行 1 个 128bit 的操作。Yonah 微架构同样只有 2 个 64bit 的 SSE 单元。从 SSE 指令的执行资源来看,Core 微架构比 NetBurst 微架构和 Yonah 微架构 有 3 倍的提升! 128bit 的 SSE 执行单元有什么样的意义?让我们从 Intel 最初支持 128bit 的矢量执行指令开始说 起。当 Intel 最初兼容 128bit 矢量执行的时候,也就是在 P6 微架构上开始出现 SSE 指令集的时候, P6 微构架的矢量执行单元单周期内只能进行 64bit 的运算,对于处理 128bit 数据的指令,P6 微构架 必须把该指令解码成 2 条处理 64bit 数据的微指令来执行。这样的执行方案一直沿用了下来,包括采 用 NetBurst 微架构的处理器和 Yonah 处理器。 Core 微架构终于拥有了完整的 128bit 的矢量处理单元。配合多达 3 组的执行单元以及 load、 store 存储单元,Core 微架构可在一个时钟周期内,同时执行一个 128bit 乘法操作、一个 128bit 加 法操作、一个 128bit load 操作与一个 128bit store 操作,另外还有可能再加上一条经过宏指令融合的 cmp/jmp 指令——相当于单周期 6 条指令!真是令人叹为观止的指令级并行处理能力。做出如此大 幅改进的 SSE 处理能力,使得 Core 微架构更加有利于多媒体方面的应用。 9.存储访问单元 Core 微架构有着数量众多的执行单元,形成了超乎寻常的处理资源。这庞大的执行单元不仅要

50

求前端提供更多的微指令来满足自己,也对存储单元的处理能力提出了更高的要求。下图是 Core 微 架构、Yonah 微架构和 NetBurst 微架构的存储单元对比,注意 NetBurst 微架构利用―fast ALU‖来计 算存储地址,因此并没有独立的存储地址单元。Core 微架构的存储系统源自 Yonah 微架构的设计, 但是却拥有 NetBurst 微架构的超高带宽,实在是难能可贵。

Intel 三代微架构存储单元对比 Core 微架构和 Yonah 微架构的一级缓存与二级缓存都采用―写回‖(Write Back)方式,以 64 字节为存储单位。而对于 NetBurst 微架构来说,一级数据缓存采用―写直达‖(Write Through)方 式,以 64 字节为存储单位;而二级缓存采用―写回‖的存储方式,以 128 字节(?)为存储单位。 Intel 没有给出 Core 微架构的缓存延迟,但是其一级数据缓存的延迟很可能是 2 个时钟周期, 最多为 3 个时钟周期。并且,Core 微架构中的 2 个核心的一级数据缓存之间有一条附加的数据通 路,使得 2 个核心可以直接交换一级数据缓存中的数据。Intel 仍然没有给出更多的资料,这种数据 交换的发生是否频繁,每次数据交换传输多少数据,一次这种数据交换是否可以替代一次对二级缓 存的访问,这些都还没有答案。 Core 微架构的存储单元还拥有新的预取器设计,协同共享式二级缓存进行工作。每个核心的一 级数据缓存各自拥有多个预取器。而共享式二级缓存自然是共享多个预取器,在运行时,这些预取 器根据改进的―Round-Robin 算法‖把带宽动态分配给 2 个内核。共享的前端总线也采用类似的方法 进行仲裁。 Core 微架构的存储系统还使用了一种新的技术来解决内存混淆问题(Memory Aliasing Problem:存储器引用二义性)。我们将在下面的部分详细介绍关于内存混淆问题和这种新的解决方 案。 10.内存混淆问题与相关性预测 我们首先来解释一下什么是内存混淆问题:采用乱序执行方式的处理器在面对多个 load 和 store 操作的时候也可以进行乱序执行,但是首先需要保证程序进行 load 和 store 操作的正确性。下图是 一个内存混淆现象的例子:第 2 个 store 操作与第 9 个 load 操作针对的是同样的内存地址,因此第 9 个操作不能移动到第 2 个操作之前执行,否则程序会得到错误的结果。但是很明显,第 9 个操作可 以移动到第 8 个操作之前执行,因为它们针对的是不同的内存地址。然后,因为不知道第 5 个操作 针对的内存地址,所以也就不能确定第 9 个操作是否可以移动到第 5 个操作之前执行。

判断 2 个内存操作(通常是一个 load 操作与一个 store 操作:RAW 相关,WAW 相关通过 ROB 已经消除)是否针对同一个内存地址的过程,也就是判断是否会发生内存混淆现象的过程,称 为存储器引用二义性检测(Memory Disambiguation)。如果这 2 个操作针对不同的内存地址,那么 它们就可以乱序执行。看似很简单,但是问题在于:为了对 1 个 load 操作的 RAW 相关性进行预 测,存储单元需要把它与缓冲区内所有的 store 操作队列进行比较,代价十分昂贵。 在古老的 P6 微架构中,这个问题是这样解决的:把 store 操作分成 2 步,首先计算内存地址, 然后再真正存储数据。这样,store 操作的内存地址就可以提前获得,从而可以比较容易的检测内存 混淆问题。P6 微架构的内存再定序缓冲区(Memory Reorder Buffer,简称 MOB)采用如下的规

51

则:如果在乱序执行窗口中存在与某 load 操作内存地址相同的 store 操作,则该 load 操作不能提前 执行;如果在乱序执行窗口中存在内存地址未知的 store 操作,则任何 load 操作不能提前执行;某 store 操作不能提前到另外一个 store 操作之前执行。 这样的规则虽然可以保证程序进行 load 和 store 操作的正确性,但是也丧失了一些本来可以提 高执行效率的机会:比如当某 load 操作之前存在某内存地址未知的 store 操作的时候,很可能内存 地址是不同的,因此该 load 操作本来可以提前执行的。研究表明,实际发生内存混淆现象的概率非 常小。所以,一个更加合理的做法是:假设所有的 load 操作与 store 操作之间都不发生内存混淆现 象,而当错误发生的时候再进行恢复。这样做显然会有更高的效率。 Core 微架构正是采用了这种更加高效的做法:P6 微架构和 NetBurst 微架构中采用的保守的规 则被丢弃了,load 操作可以在内存地址未知的 store 操作之前执行(推断执行,依赖于推断的准确 性,其实这也不是一种新技术)。这样的话,当有错误发生的时候,处理器流水线将不得不暂停运 转。然而就像前面讲到的,这种情况并不多见。为了最大限度的避免这种情况的出现,Core 微架构 加入了一个动态的内存相关性预测器,根据历史信息来预测 load 操作的移动是否可行。据有关人员 透露,该预测器的预测正确率达到 90%以上。 下图的例子说明了 Core 微架构的这种工作方式在多数情况下会带来的性能提升:P6 微架构需 要 9 个时钟周期才能执行完的操作,Core 微架构只需要 5 个时钟周期。

Core 微架构的内存相关性预测 为了使读者真正认识到内存相关性预测和 Core 微架构在内存相关性预测方面的改进的重要意 义,我们举另外一组数据来说明。实际的 X86 程序中,一般有 1/6 左右的操作是 store 操作,1/3 左 右的操作是 load 操作。Core 微架构的乱序执行窗口能容纳 96 个操作,假如没有存储器引用二义性 检测技术,那么,占据乱序执行窗口一半左右的 40~60 个操作将只能顺序执行,这肯定将造成极大 的资源浪费。这个时候,效率良好的内存相关性预测功能将带来本质上的性能提升。 11.新指令集及其它新特性 我们已经看到,Core 微架构的每一个子单元都比以前的架构有很大的提升。除此以外,Core 微 架构还引入了几项新技术,我们再一起来了解一下。 Core 微架构终于加入了对 EM64T 指令集的支持,弥补了 Yonah 微架构的最大缺憾。随着 Windows Vista 的到来以及 Intel、AMD 全面更换到 64bit 处理器,64bit 计算的普及只是时间问题。 Core 微架构支持新的指令集——SSE4 指令集。Intel 原本打算把该指令集用在采用 NetBurst 微 架构的 Tejas 核心上。但是在由于功耗问题取消 Tejas 之后,该指令集出现在了 Core 微架构上。 SSE4 指令集会带来一些性能上的提高,但是可能不会像 SSE2 指令集那样带来巨大的提升,因为 SSE4 指令集其中的大部分指令用于某些特殊的目的。 Core 微架构拥有增强的电源管理功能,并且 2 个核心可以分别进行管理。各功能单元以及内部 总线在电路设计方面也考虑了节电的问题。与 Yonah 微架构一样,Core 微架构中的大部分功能单元 在不使用的时候都可以进入睡眠状态以降低耗电,例如微码存储器等。另外,Core 微架构内部的多 条总线为了提高总的传输带宽,加大了宽度,但是多数情况下并不需要如此大的传输宽度,于是 Intel 的工程师让这些总线平时只开放一般的宽度,甚至在没有信号传输的时候也可以进入睡眠状 态。这种芯片可以部分关闭的能力早已是 Core 微架构整个设计思想的一部分,使得我们只需要为我

52

们使用的那部分电路―付款‖。 Core 微架构开始支持 Virtualization Technology,即 Intel 的硬件虚拟化技术。这项技术为处理 器虚拟化提供了芯片级支持,使得在一个处理器上同时运行多个操作系统成为可能。还有从 Dothan 时代就开始加入的硬件防病毒功能,在采用 Core 微架构的处理器上已经成为必不可少的功能。 Core 微架构内建―数字温度传感器‖(Digital Thermal Sensor),其作用当然是侦测处理器的温 度,保证处理器的安全,与以前的温度二极管的作用一样。此外,还有传言声称,数字温度传感器 如果认为当前的温度并不高,那么有可能会提高处理器的频率以获得更高的性能。是不是与某些显 卡和主板的―OverDrive‖功能很类似?如果这项技术真的实施,那么也可能只是用于 Conroe 和 Woodcrest,而不会用于 Merom,因为用提高功耗的方法来获得更高的性能并不符合移动平台处理 器的设计思想。 Core 微架构针对笔记本电脑提供第 2 代功率状态报告功能(Power Status Indicator 2,简称 PSI-2),可以通知系统现在的耗电状况,从而作为动态调整电压的依据,让系统可以更有效率的节 电。 Core 微架构可以通过平台环境控制接口(Platform Environment Control Interface,简称 PECI)把处理器的实际温度报告给系统,从而作为调整散热风扇运作模式的依据,对控制系统散 热、噪音等方面很有帮助。 12.P6 微架构终极形态? 我们对 Core 微架构的内核单元及其新特性的介绍到这里就结束了。与超长流水线、追求超高频 率、充满争议的 NetBurst 微架构相比,Core 微架构可以说是十分的传统。而如果你仔细看过了前面 的每一张 Core 微架构与 Yonah 微架构的对比图,那么,你一定有和我一样的感受:Core 微架构与 Yonah 微架构的内核构成太相似了——一样的解码流程,一样的简单解码单元与复杂解码单元相配 合的设计,一样的乱序执行的流程,一样的一级指令缓存与一级数据缓存分离的设计,一样的共享 式二级缓存的设计……再看一遍下面的 2 个架构的总体对比图,你会发现抛开解码单元与执行单元 的数量、内部总线的宽度以及各个缓冲区的容量这些数字上的区别,2 个架构的设计可以说是完全相 同的!这与许多媒体不加分辨就宣称―全新架构‖的说法大相径庭。

所以 Core 微架构可以说是 Yonah 微架构的放大版,我们把几个主要指标的大致放大倍数列表 如下。

其中,提升最为明显的是各类执行单元的计算能力,提高都达到 100%以上。配合有史以来最强 大的执行资源,各单元的吞吐量也有了比较大的提升。其中,需要注意的是前端解码部分,4 组解码 单元配合新引入的宏指令融合技术,Core 微架构的指令解码吞吐量的实际增幅远在 16%以上。总体 上,在各单元均比 Yonah 微架构有大幅提升的情况下,Core 微架构的性能提升幅度在 20%以上是 可以预期的。 按照 Intel 的说法,采用 Core 微架构的各个产品都会比其对应的上一代产品有巨大的性能提

53

升:Merom 比 Yonah 提升 20%,Conroe 比 Pentium D 提升 40%,Woodcrest 比 Paxville DP 提升 80%。同时,桌面产品 Conroe 和服务器产品 Woodcrest 的功耗也会比其对应的上一代产品有大幅下 降 30%或者更多:Conroe 的 TDP 是 65W,Woodcrest 的 TDP 是 80W。如果这些数据都没有水分 的话,那么,在 Intel 提出的性能功耗比这项新的衡量处理器优越性的指标上,采用 Core 微架构的 这一代产品将毫无疑问占据最高点。 Yonah 微架构发布后业界就一直流传着这样的看法:Yonah 微架构实际上是在 P6 微架构基础上 发展而来的,其本质与古老的 P6 微架构没有什么不同。Intel 对此不置可否,而这闪闪烁烁的态度 其实已经说明了 Yonah 微架构与 P6 微架构至少有着及其密切的联系。实际上,从 Banias 核心处理 器面世之后,Pentium M 处理器是以色列团队在采用 P6 微架构的 Pentium III 处理器基础上改进而 来的说法就开始流传。时至今日,Intel 已经发布的三代移动核心本质上都是 P6 微架构的延续,已 经算是公开的秘密。既然如此,Core 微架构又与 Yonah 微架构如此相似,把 Core 微架构也归为 P6 微架构是理所应当的事情。不过,拥有宏指令融合、4 组解码单元、庞大执行资源和庞大共享式二级 缓存的 Core 微架构似乎应该拥有一个更响亮的名字,不如叫作―P6 微架构最终形态‖? 虽然笔者一样认为 Core 微架构本质上还是 P6 微架构的一种,但是并不同意某些人的看法,认 为这十年内 X86 处理器的微架构设计没有任何本质的进步,甚至认为重拾十年前的架构是一种倒 退。从头开始进行一个高效的微处理器内核的设计是非常非常困难的,在已有成果的基础上进行改 进是明智的,几乎也是唯一的选择。而且,虽然 Core 微架构还是沿用了 P6 微架构的设计思想,但 是各种各样新加入的技术已经使得它面目全非,其执行效率已经与最初的 P6 微架构不可同日而语。 其功耗最优化的设计思想与电源管理等先进功能更是 P6 微架构不曾考虑过的——试问十年前有谁想 到机箱内的处理器可以关闭部分电路来达到省电的目的?用户需要的不是一个全新的内核,他不会 在意花钱买来的是叫做 NetBurst 的内核还是叫做 Core 的内核,或是什么别的核心,他的要求很简 单:一台快速、省电、静音的电脑。 写到这里,也应该给 Core 微架构的种种特性做一个总结了。Core 微架构是 Intel 的以色列设计 团队在 Yonah 微架构或者说是 P6 微架构基础之上全力改进而来的新一代微架构。它设计之初的目 标就是构建一个高效的双核心架构,因此采取共享式二级缓存设计,2 个核心共享多达 4MB 的二级 缓存。其内核采用高效的 14 级有效流水线设计。每个核心都内建 32KB 一级指令缓存与 32KB 一级 数据缓存,而且 2 个核心的一级数据缓存之间可以直接传输数据。每个核心内建 4 组指令解码单 元,支持微指令融合与宏指令融合技术,每个时钟周期最多可以解码 5 条 X86 指令,并拥有改进的 分支预测功能。每个核心内建 5 个执行单元,执行资源庞大。采用新的内存相关性预测技术。加入 对 EM64T 与 SSE4 指令集的支持。支持增强的电源管理功能。支持硬件虚拟化技术和硬件防病毒功 能。内建数字温度传感器。还可提供功率报告和温度报告等,配合系统实现动态的功耗控制和散热 控制。

是一种矩形波产生电路.这种电路不需要外加触发信号 便能连续地 周期性地自行产生矩形脉冲.该 脉冲是由基波和多次谐波构成 因此称为多谐振 荡器电路. 电路结构 1.路图 2.把双稳态触发器电路的两支电阻耦合支路改为电容耦合支路.那么电路就没有稳 定状态 而成为无 稳电路 3.开机:由于电路参数的微小差异 和正反馈使一支管子饱和另一支截止.出现一个暂 稳态.设 BG1 饱 和 BG2 截止.

54

工作原理 正反馈: BG1 饱和瞬间 VC1 由+EC 突变到接近于零 迫使 BG2 的基极电位 VB2 瞬间下 降到接近EC 于是 BG2 可靠截止. 2.第一个暂稳态: C1 放电: C2 充电: 3.翻转:当 VB2 随着 C1 放电而升高到+0.5V 时 BG2 载始导通 通过正反馈使 BG1 截 止 BG2 饱和. 正反馈: 4.第二个暂稳态: C2 放电: C1 充电: 5.不断循环往复 便形成了自激振荡 6.振荡周期: T=T1+T2=0.7(RB2*C1+RB1*C2)=1.4RB*C 7.振荡频率: F=1/T=0.7/RB*C 8..波形的改善: 可以同单稳态电路 采用校正二极管电路 静电是一种看不见的破坏力,会对电子元器件产生影响。ESD 和相关的电压瞬变都会引起闩锁效 应(latch-up)是半导体器件失效的主要原因之一。如果有一个强电场施加在器件结构中的氧化物 薄膜上,则该氧化物薄膜就会因介质击穿而损坏。很细的金属化迹线会由于大电流而损坏,并会 由于浪涌电流造成的过热而形成开路。这就是所谓的―闩锁效应‖。在闩锁情况下,器件在电源与 地之间形成短路,造成大电流、EOS(电过载)和器件损坏。 CMOS 器件因闩锁效应特别容易损坏,因为电感会在器件的寄生电容中累积。另外,氧化物材 料中任何原子一级的缺陷都会降低氧化物层的介电强度,使器件很容易因静电电压而失效。 电子系统中常见的 ESD 问题是通信接口器件,如 RS-232 驱动器和接收器的失效。这些器件在 ESD 脉冲通过人们频繁插拔的电缆互联传播时,在电缆接触到未端接连接器的带电表面时,就会

55

损坏。当这些 ESD 脉冲的频率超过 1 GHz 时,PC 电路板的印制线和小段电缆就会像天线一样, 接收这些干扰信号。 图 1 示出了最近对一种频繁失效的 CMOS 数据收发器 IC 进行的 ESD 闩锁效应调查的结果: 在某些情况下,IC 封装带电,并烧毁了下面的电路板。为了确定故障的原因,用一台记录仪器监 视电源和 RS-232 收发器的输入端。记录的波形显示出在收发器器件的输入端和电源脚有短时的电 压瞬变。当这些瞬变电压迫使寄生 PN 结构导通时,就发生闩锁效应。一旦寄生的 SCR 导通, SCR 就是电源通过器件到地的一条低阻通路。在这样的条件下,通路中的电流很大,从而导致器 件中因热过载而热耗散异常。过度的热过载会使塑封外壳升温并开裂。

普通的感应电动机是不能用来发电的,因为普通的感应电动机的转子都是鼠笼结构的,本身并没 有磁性,是靠定子的旋转磁场而在转子的鼠笼绕组感应出电流,转子铁芯在此电流磁场下被磁 化,两定子和转子产生的磁场相互作用而使电动机旋转,因为发电机是依靠电磁感应原理制造 的,产生感应电流的条件使闭合电路的部分在磁场中做切割磁感应线运动,既然普通的感应电动 机的转子没有磁性,所以即使在外力的作用下旋转也是不会产生感应电压的,如果想改发电必须 把转子鼠笼绕组改成绕线的励磁绕组才可以用来发电,并且还要有给转动的转子绕组通电的集电

56

环和电刷,所以改造必须要有一定的机械加工设备才能进行,改装电动机做发电机还不如买一个 发电机经济, 可以,电动机和发电机本来就是可逆的. 发电机是以汽机带动转子.转子上由励磁电流建立一磁场.转 子转动时就会使定子上的线圈切割磁场产生电流. 电动机是用电流在定子上建立一个旋转磁场,再与 定子上的固定磁场配合驱动转子转动. 电动机和发电机本来就是电和磁的转换操作.所可以互相改装. 但在改装时会存在一个相位角(电动机改发电机)或转速(发电机改电动机)的问题,这个就要靠其它措 施来弥补了. 以前农村就常有人用柴油机带动电动机的转子,然后在定子上接负荷.把电动机当发电 机用 电厂也有一种事故叫反送电.发电机未开始发电时错负荷开关合上的话,那么电网的电会送向发 电机.发电机就会变成电动机转动. I2S 总线概述 音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消 费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输 结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒 体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免 了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

I2S 总线规范

在飞利浦公司的 I2S 标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I2S 有 3 个主要信号:1.串行时钟 SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据, SCLK 都有 1 个脉冲。SCLK 的频率=2× 采样频率× 采样位数 2. 帧时钟 LRCK,用于切换左右声道 的数据。LRCK 为―1‖表示正在传输的是左声道的数据,为―0‖则表示正在传输的是右声道的数 据。LRCK 的频率等于采样频率。3.串行数据 SDATA,就是用二进制补码表示的音频数据。 有时为了使系统间能够更好地同步,还需要另外传输一个信号 MCLK,称为主时钟,也叫系 统时钟(Sys Clock),是采样频率的 256 倍或 384 倍。 串行数据(SD) I2S 格式的信号无论有多少位有效数据,数据的最高位总是出现在 LRCK 变化(也就是一帧开 始)后的第 2 个 SCLK 脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处 理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多 于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会 造成数据错位。 随着技术的发展,在统一的 I2S 接口下,出现了多种不同的数据格式。根据 SDATA 数据相对 于 LRCK 和 SCLK 的位置不同,分为左对齐(较少使用)、I2S 格式(即飞利浦规定的格式)和 右对齐(也叫日本格式、普通格式)。 为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然, 对 I2S 格式来说数据长度可以不同。 字段(声道)选择(WS) 命令选择线表明了正在被传输的声道。 WS 为―1‖表示正在传输的是左声道的数据。 WS 为―0‖表示正在传输的是右声道的数据。 WS 可以在串行时钟的上升沿或者下降沿发生改变,并且 WS 信号不需要一定是对称的。在 从属装置端,WS 在时钟信号的上升沿发生改变。WS 总是在最高位传输前的一个时钟周期发生改 变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以 及为下次的命令清除空间。 电气规范:

57

输出电压: VL <0.4V VH>2.4V 输入电压 VIL=0.8V VIH=2.0V 注:目前使用的 TTL 电平标准,随着其他 IC(LSI)的流行,其他电平也会支持。 时序要求: 在 I2s 总线中,任何设备都可以通过提供必需的时钟信号成为系统的主导装置,而从属装置通 过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主导装置和数据以及命令选择信 号之间的传播延迟,总的延迟主要由两部分组成: 外部时钟和从属装置的内部时钟之间的延迟 内部时钟和数据信号以及命令选择信号之间的延迟 对于数据和命令信号的输入,外部时钟和内部时的延迟不占据主导的地位,它只是延长了有效 的建立时间(set—up time)。延迟的主要部分是发送端的传输延迟和设置接收端所需的时间。 T 是时钟周期,Tr 是最小允许时钟周期,T>Tr 这样发送端和接收端才能满足数据传输速率的 要求。 对于所有的数据速率,发送端和接收端均发出一个具有固定的传号空号比(mark—space ratio) 的时钟信号,所以 t LC 和 tHC 是由 T 所定义的。 t LC 和 tHC 必须大于 0.35T,这样使信号在从 属装置端可以被检测到。 延迟(tdtr)和最快的传输速度(由 Ttr 定义)是相关的,快的发送端信号在慢的时钟上升沿可能导 致 tdtr 不能超过 tRC 而使 thtr 为零或者负。只有 tRC 不大于 tRCmax 的时候(tRCmax>: 0.15T),发送端才能保证 thtr 大于等于 0。 为了允许数据在下降沿被记录,时钟信号上升沿及 T 相关的时间延迟应该给予接收端充分的 建立时间(set-up time)。 数据建立时间(set-up time)和保持时间(holdtime)不能小于指定接收端的建立时间和保持时间。

I2S 总线结构配置 随着 WS 信号的改变,导出一个 WSP 脉冲信号,进入并行移位寄存器,从而输出数据被激 活。串行数据的默认输入是 0,因此所有位于最低位(LSB)后的数据将被设置为 0。 随着第一个 WS 信号的改变,WSP 在 SCK 信号的下降沿重设计数器。在―1 out of n‖译码器 对计数器数值进行译码后,第一个串行的数据(MSB)在 SCK 时钟信号的上升沿被存放进入 B1,随 着计数器的增长,接下来的数据被依次存放进入 B2 到 Bn 中。在下一个 WS 信号改变的时候,数 据根据 WSP 脉冲的变化被存放进入左(声道)锁存器或者右(声道)锁存器,并且将 B2 一 Bn 的数据 清除以及计数器重设,如果有冗余的数据则最低位之后的数据将被忽略。注意:译码器和计数器 (虚线内的部分)可以被一个 n 比特移位寄存器所代替。 IIS 总线接口可作为一个编码解码接口与外部 8/16 位的立体声音频解码电路(CODEC IC)相 连,从而实现微唱片和便携式应用。它支持 IIS 数据格式和 MSB-Justified 数据格式。IIS 总线接 口为先进先出队列 FIFO 的访问提供 DMA 传输模式来取代中断模式,可同时发送和接收数据,也 可只发送或接收数据。

58


赞助商链接

合格电子工程师需要掌握的技能

合格电子工程师需要掌握的技能_工学_高等教育_教育专区。掌握了一下的硬件和软件知识,基本上就可以成为一个合格的电子工程师: 第一部分:硬件知识 一、 数字信号 ...

电子工程师需要掌握的知识

为什么要掌握这些知识? 实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这 些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、...

电子工程师应具备的知识

电子工程师应具备的知识_从业资格考试_资格考试/认证_教育专区。电子工程师应具备的知识 觉得一个电子工程师/硬件工程师应该有下面的能力: 1、 模拟/数字电路的...

合格电子工程师必须掌握的知识

合格电子工程师必须掌握的知识: 掌握了以下的硬件和软件知识,基本上就可以成为一个合格的电子工程 师。然而,这仅仅是一个电子工程师而已,要想有更大的发展,你...

合格的电子工程师需要掌握的知识和技能

,呵呵。 为什么要掌握这些知识? 实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分 离时无法完成的功能,做成一个成品。所需要的...

合格的电子工程师需要掌握的知识和技能

合格的电子工程师需要掌握的知识和技能 转 2008-11-12 17:21 合格的电子工程师需要掌握的知识 和技能(转) 怎样规划你的毕业后的人生(作者:南方的老树) 怎样...

的电子工程师需要掌握的知识和技能

电子工程师需要掌握的知识和技能_从业资格考试_资格考试/认证_教育专区。的电子工程师需要掌握的知识和技能合格的电子工程师需要掌握的知识和技能电子工程师培训大纲...

电子工程师必备基础知识

电子工程师必备基础知识 - 电子工程师必备基础知识(一) 运算放大器通过简单的外围元件,在模拟电路和数字电路中得到非常广泛的应用。运算放大器有好些个型号,在详细...

电子工程师必须掌握的20种电路七素

电子工程师必须掌握的 20 种电路七素 工程师应该掌握的 20 个模拟电路 对模拟...有了这些电路知识, 您极有可能成长为电子产品和工业控制设备的出色的 维修维护...

合格的电子工程师需要掌握的知识和技能

如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 合格的电子工程师需要掌握的知识和技能 隐藏>> 作者: 来自: 作者:南方...