原创 2006-1-2到2007-2-2的日志.

2007-4-17 21:41 3390 5 5 分类: MCU/ 嵌入式
日志标题:好好工作,天天进步!
发表时间:2006-8-26 14:54:00
face7.gif 好好工作,天天进步!
 


日志标题:P89LPC932的几种ISP编程方法
发表时间:2006-12-22 8:41:00

  LPC900系列Flash单片机提供从8脚到28脚的封装形式,可以满足各种对成本和电路板空间有限制而又要求高性能、高可靠性的应用需要,同时具有高速率(6倍于传统MCS51单片机),低功耗(完全掉电模式下耗电低于1 μA),高稳定性,小封装,多功能(内嵌众多流行的功能模块)等特点。P89LPC932就是该家族中的重要一员,其集成了8 KB的Flash程序存储器、512B的静态数据存储器、512B的E2PROM、I2C总线、SPI总线、增强型UART接口、模拟比较器、看门狗、4个中断优先级、双DPTR,并支持ISP/IAP编程等功能。


1 P89LPC932进行ISP编程的基本方式


1.1内部程序存储器的三种编程方式


  P89LPC932内部集成的8 KB程序存储器编程的三种方式分别是:在系统编程(ISP);程序运行时编程(IAP);通过并行方式编程。


  一般来说,ISP编程是指依靠某种外部工具(除了常规的并行编程器以外)去直接给处理器内部集成的程序存储器编程。这里所指的外部工具常见的有很多种,不同的处理器供应厂商可能提供不同的方案。例如,根据编程接口的不同,就有JTAG、单线、串口、SPI口等多种方式。尽管编程方式有所不同,但其原理都是类似的,就是依靠外部条件触发处理器,令其脱离正常执行的内部常规用户应用程序代码的进程,转而执行保存在其程序存储空间内某个固定位置处的控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式,将用户指定的某个在PC上编译完成的嵌入式处理器可运行的二进制代码文件编程入嵌入式处理器内的程序存储器。这种编程方式只需要常规的硬件配置(某些处理器可能需要某些叫做下载线的简单硬件电路)支持,而不需要特别的编程器(指并行编程器)支持,所以即使处理器芯片已经焊接到了电路板上也可以实现编程,这也就是ISP的真实含义。P89LPC932是利用其自身的异步串行口来实现ISP编程的,不需要特别的下载线或下载器,触发LPC932进入ISP编程模式的方法将在下文详细解释。


  IAP编程方式与ISP编程方式类似,但它不是由外部条件来触发的,而是在处理器正常执行用户设计的应用程序代码时,直接调用执行擦除及编程功能的固化例程。和ISP编程方式一样,IAP编程方式也只需要常规的硬件配置来支持。P89LPC932的ISP编程实际上就是通过调用芯片的IAP服务子程序实现编程的,其IAP服务子程序保存在FF00H~FFFFH地址空间中,不占用用户程序空间。


  并行方式编程需要使用一台外部专业编程设备。换句话说,这种编程环境并不是用户最终应用时的硬件环境。用户在使用这种编程方式时,通常必须将处理器芯片单独放到并行编程器上进行编程(如果处理器芯片已经焊接到电路板上,则必须先将处理器芯片从电路板上取下来)。处理器芯片编程完成后才能放回到电路板上,再上电令处理器运行,才能看到用户新写入代码的运行结果。这是最传统的编程方式(经典的AT89C51就主要使用这种方式编程),但它既繁琐,又不能满足现今远程升级的实际需求,因而已逐渐被方便快捷的ISP、IAP等在线编程方式所取代。


  综合来说,ISP模式是最容易使用的,因为它允许处理器在被焊接到用户目标电路板上再进行编程,也不需要复杂的代码设计,该特性允许用户在生产出硬件产品后再升级产品软件。一般来说,增加校准信息数据和现场安装最新的软件版本是较常见的升级操作。不仅如此,ISP编程还特别适用于用户产品研发阶段。显然,用户可以非常方便快捷地更改自己的程序代码并立即看到新代码的运行结果。P89LPC932使用串口作为ISP编程模式的主通信接口,使得这一系列处理器较那些依靠JTAG、SPI等通信接口作ISP编程接口的处理器要方便。因为一般的嵌入式系统都会配置异步串行口,这样,在系统编程就不需要特殊的ISP编程器,而JTAG、SPI等及其类似的编程方式一般都需要专用的接口适配器或下载线来配合,这些都可能会增加用户的投资和成本。   P89LPC932芯片实现ISP编程是依靠在出厂时预置的一段启动代码,这段代码存储在P89LPC932代码空间内7号扇区的高端512B地址处(P89LPC932内部的8 KB程序存储器被组织成8个扇区,每个扇区有1 KB)。这段代码提供了设备底层操作代码(执行如擦除、编程等操作)和串口通信之间的接口。如果用户需要使用ISP编程模式,则必须注意,千万不要擦除或覆盖包含ISP预置代码的那个扇区,也就是7号扇区(1C00~1FFFH),因为P89LPC932的擦除操作是以扇区为基本单位的。


  如图1所示,用P89LPC932实现ISP的硬件连接很简单,它只需使用VDD电压即可执行擦除和编程算法,不需要特殊的高编程电压,所以,芯片外部只需要1片TTL和RS232电平相互转换的芯片(常见的芯片包括Maxim的MAX202、MAX232等,其他公司如TI、Sipex、Linear都有类似功能的芯片产品)即可实现P89LPC932内异步串行口和用户个人计算机上的RS232串口的连接。在用户个人计算机上运行一个简单的终端仿真程序就可以实现ISP编程,不过还有一种更简单的方法,就是运行一个现成的免费程序,比如Flashmagic,就可以实现这个目的,这个程序集成了所有针对Philips LPC900系列处理器的ISP功能。P89LPC932内部的ISP代码能够自动检测其片上异步串行口与用户个人计算机通信的波特率,进而实现在用户个人计算机控制下的代码下载及编程。综上所述,P89LPC932的这种ISP编程模式不需要外部编程器,但是需要一定的外部电路(串口通信电路),需要保留ISP驻留代码,需要在用户的应用程序代码中添加ISP引导初始化程序(如中止控制符检测初始化),且ISP加密字的第2位(禁止ISP/IAP擦除)不能置位。



xsj053122_1.jpg

1.2进入ISP模式的方法


  触发P89LPC932进入ISP模式的4种方法分别是:通过检测状态位触发进入ISP模式(全新芯片最初上电时的默认状态);通过检测中止控制符信号触发复位后进入ISP模式(最实用而且常用的方法);上电时在复位引脚上检测到特定脉冲后触发进入ISP模式(即硬件激活进入ISP模式);直接调用ISP代码实现进入ISP模式。


1.2.1通过检测状态位触发进入ISP模式


  P89LPC932复位时,是否进入ISP模式会受一个状态位的控制,这个状态位保存在Flash存储器里的一个保留位置,不过这个位置并不在P89LPC932可以寻址的程序存储器空间内。在复位信号的下降沿,处理器将检查该状态位的值,如果其值为0,处理器将从地址0000H处开始取指令执行,这里通常存储着用户的应用程序代码。如果该状态位的值不是0,则处理器将从另一个确定的地址处开始执行此处的代码,这个地址(16位)的高8位由复位向量指定,低8位固定为00H。也就是说,引导向量的值将作为程序计数器(PC)的高字节,低字节为00H。如果用户使用的是一片新芯片,芯片中的状态位值在出厂时就被设置为1,而启动向量被预编程为1EH。因此,新芯片在复位后将直接从1E00H地址处开始执行代码。因为从1E00H开始处的代码,正好就是Philips公司给芯片预置的ISP启动代码。如果用户希望从0000H地址处开始执行代码,则状态位的值可以通过并行编程器去清零。实际上,通过ISP代码的自身功能也可以给状态位清零;如果用户往P89LPC932内部的程序存储器写入自己的应用程序代码后给状态位清零,则下次芯片复位后处理器将直接执行用户代码。另外,ISP代码也有修改启动向量值的功能,用户可以修改它的值,也就是把芯片复位后取代码执行的地址修改了(假如LPC932被触发进入ISP模式的话),而用户自己编写的启动代码就放在那里,这种设计通常是用来执行某些特殊功能的。不过,如果用户修改了启动向量的值,使它不再是1EH,则用户就再也不能使用LPC932出厂时预置的启动代码了。如果启动向量被修改而指向一个不包括任何启动代码的地址,用户则不得不使用一台并行编程器来给这枚芯片编程,以恢复它的启动向量值;否则,用户将无法再使用这种ISP编程方法。


1.2.2通过检测中止控制符信号触发芯片复位后进入ISP模式


  通过异步串行口检测到中止控制符信号触发芯片复位后进入ISP模式是进入ISP模式的第二种方式。中止控制符信号就是指在异步串行口的接收脚上出现长达一帧长度的低电平,这里一帧的长度与异步串行口的工作模式有关。例如,在异步串行口的“模式一”中,一帧相当于10个比特的传输时间。一般地,当一个中止控制符信号发出时,异步串行口的接收脚将会持续相当于很多帧时间的低电平。不过,在第一帧的时候,中止控制符信号就会被检测到。注意,如果用一个机械开关来拉低异步串行口的接收脚,以创造一个中止控制符信号,同时,处理器被配置为允许串行中断,则异步串行口的接收中断标志必须在其中断服务全程中被处理,否则,处理器将进入一种不确定的状态。


  这种方式要求驻留在P89LPC932程序存储器内部的用户应用程序代码必须包括初始化异步串行口的代码。换句话说,用户必须使能异步串行口,同时,特殊功能寄存器AUXR1中的允许中止控制符信号位(EBRR)必须被置1,以允许在检测到中止控制符信号时触发处理器复位。此外,启动向量配置字节须保证为1EH(使用P89LPC932内预置的ISP代码),状态字为00H(以使用户应用代码得以执行),且1E00H~1FFFH的Flash程序存储器不要使用或擦除。这样配置完成后,只要异步串行口的接收脚检测到中止控制符信号后,处理器就会复位,复位后LPC932将从由启动向量指定的地址处取指令执行。
有两个问题在使用这种触发方式的时候应该了解。一是某些USB转RS232的转换器无法发出中止控制符信号,所以无法使用检测中止控制符信号的方式触发处理器复位并进入ISP模式;二是中止控制符信号在正常的串口通信不会出现,所以用户可以放心使用这种触发方式。


1.2.3硬件激活进入ISP模式


  使用这种模式的好处在于,不论处理器内部原来存储着什么用户代码,也不论状态位的值是什么,ISP模式总是可以进入的(不过有一点还是必须得到保证,就是处理器里原来的启动代码未被擦除或覆盖,而默认的启动向量1EH也没有修改过)。由于P89LPC932引脚数比较少,而且内置了程序存储器,又没有传统的用于外扩总线的P0、P2口和PSEN引脚,所以依靠硬件方式触发芯片进入ISP模式的方法与传统MCS-51芯片有所不同。


  上电后,如果处理器在复位脚上检测到如图2所示的脉冲波形,则处理器将从启动向量指定的地址处取指令运行,也就是进入ISP模式,而不是从0000H处取指令执行。其实,这种进入方式的结果和有一个非零的状态字节有着相同效果。不过要注意的是,产生的脉冲数目只允许有3个,多于或少于3个脉冲都不能触发处理器进入ISP模式。



xsj053122_2.jpg

可以利用一枚外部的微处理器来产生这3个脉冲,同时它还控制一枚电源芯片来产生P89LPC932需要的电源电压。这种方法的原理很容易弄明白,笔者在此不再赘述。另外,还有一种更简单的方法,就是由用户PC机上的异步串行口加上部分硬件电路来直接产生所需的时序,具体介绍可以参看参考文献1。


1.2.4直接调用法触发处理器执行ISP代码


  P89LPC932的ISP模式的预置启动向量为1EH,所以其ISP驻留代码首地址为1E00H,要进入ISP,直接调用1E00H处的代码就可以了。在C代码中,程序通过函数指针的方式就可以调用ISP驻留代码(即进入ISP模式)。


1.3在P89LPC932上使用Flashmagic


  Flashmagic是一个免费的软件工具,可以为Philips的许多处理器作ISP编程,包括P89LPC932。Flashmagic启动时将试图连接用户选择的器件,不过通常在这里都会报错,因为并没有任何处理器处于ISP模式,又或者还有什么其他的设置需要更改。请选择Flashmagic控制的PC机上的正确串行口,同时选择目标器件为P89LPC932,如图3所示。然后使这片P89LPC932进入ISP模式(如果



xsj053122_3.jpg

这是一枚全新的处理器,则它这时已经处于ISP模式了)。如果这不是一枚全新的处理器(状态位不是1),那么必须使用硬件方式激活处理器进入ISP模式,或用检测中止控制符信号的方式触发处理器复位并进入ISP模式。


  如果使用检测中止控制符信号的方式触发处理器复位并进入ISP模式,如图4所示,则应当配置Flashmagic,以使用这种方式来初始化ISP模式。首先,检查“options”菜单下的“advanced options”选项,在弹出的对话框的“hardware config”页上应该取消“Use DTR and RTS to enter ISP mode”选择框中的选择(注:FlashMagic可以记住你的各种设置,下次你再次使用,如果不需要其他设置,可不再设置它即可使用)。然后,从“ISP”菜单下选择选项“start bootrom”,并从弹出的对话框中选择“send break condition”按钮,Flashmagic可以通过PC机串行口直接向P89LPC932发出中止控制符信号。一般来说,这时P89LPC932就应该处于ISP模式下了。不过,Flashmagic不会自动校验P89LPC932是否已经真正进入了ISP模式,这个工作需要由用户自己来做。如果P89LPC932未处于ISP模式,若干个Flashmagic的菜单是无法使用的
(即使用户选择这些菜单,Flashmagic也会报错而不会有执行结果),用户可以通过选择这些菜单来检验P89LPC932是否已经处于ISP模式下了,例如“ISP”菜单下的“Blank Check…”选项。当然,P89LPC932未进入ISP模式时,对它的编程是无法进行的,从这层意义上说,同样也可以知道P89LPC932并未处于ISP模式下。



xsj053122_4.jpg

Flashmagic的缺省设置是自动保护P89LPC932中扇区7内高端512字节的启动代码,不过用户可以在“options-advanced options-security”对话框中关闭这个保护功能。不过,并不推荐用户这么做,因为这会提高误操作对覆盖ISP启动代码的可能性。


  注意,有些菜单选项在新版Flashmagic的位置可能与本文中提及的不同。本文使用的是1.74版的Flashmagic,至截稿时止,Flashmagic已升级至2.07版。


2 总结


  Philips P89LPC932是一种功能全面、使用简单、性能可靠、性价比较高的高速51兼容微处理器,适用于产品研发、小批量产品试制、高校科研等诸多领域。本文对P89LPC932进行ISP编程的具体方法和技巧进行了详述,希望读者们能充分利用P89LPC932的优秀在线编程特性。



日志标题:protel 各个层!
发表时间:2006-12-23 15:49:00
Mechanical 机械层:定义整个PCB板的外观,即整个PCB板的外形结构

    Keepoutlayer 禁止布线层:定义在布电气特性的铜一侧的边界。也就是说先定义了禁止布线层后,在以后的
布过程中,所布的具有电气特性的线不可以超出禁止布线层的边界

    Topoverlay 顶层丝印层 & Bottomoverlay 底层丝印层:定义顶层和底的丝印字符,就是一般在PCB板上看到
的元件编号和一些字符

    Toppaste 顶层焊盘层 & Bottompaste 底层焊盘层:指我们可以看到的露在外面的铜铂
 face1.gif
    Topsolder 顶层阻焊层 & Bottomsolder 底层阻焊层:与toppaste和bottompaste两层相反,是要盖绿油的层

    Drillguide 过孔引导层

    Drilldrawing 过孔钻孔层

    Multiplayer 多层:指PCB板的所有层



日志标题:可控硅
发表时间:2006-12-26 14:30:00
 可控硅是可控硅整流元件的简称,是一种具有三个PN 结的四层结构的大功率半导体器件。实际上,可控硅的功用不仅是整流,它还可以用作无触点开关以快速接通或切断电路,实现将直流电变成交流电的逆变,将一种频率的交流电变成另一种频率的交流电,等等。可控硅和其它半导体器件一样,其有体积小、效率高、稳定性好、工作可靠等优点。它的出现,使半导体技术从弱电领域进入了强电领域,成为工业、农业、交通运输、军事科研以至商业、民用电器等方面争相采用的元件。 

一、 可控硅的结构和特性 

■可控硅从外形上分主要有螺旋式、平板式和平底式三种(见图表-25)。螺旋式的应用较多。 

■可控硅有三个电极----阳极(A)阴极(C)和控制极(G)。它有管芯是P 型导体和N 型导体交迭组成的四层结构,共有三个PN 结。其结构示意图和符号见图表-26。 

■从图表-26中可以看到,可控硅和只有一个PN 结的硅整流二极度管在结构上迥然不同。可控硅的四层结构和控制极的引用,为其发挥“以小控大”的优异控制特性奠定了基础。在应用可控硅时,只要在控制极加上很小的电流或电压,就能控制很大的阳极电流或电压。目前已能制造出电流容量达几百安培以至上千安培的可控硅元件。一般把5安培以下的可控硅叫小功率可控硅,50安培以上的可控硅叫大功率可控硅。 

■可控硅为什么其有“以小控大”的可控性呢?下面我们用图表-27来简单分析可控硅的工作原理。 

■首先,我们可以把从阴极向上数的第一、二、三层看面是一只NPN 型号晶体管,而二、三四层组成另一只PNP 型晶体管。其中第二、第三层为两管交迭共用。这样就可画出图表-27(C)的等效电路图来分析。当在阳极和阴极之间加上一个正向电压Ea ,又在控制极G和阴极C之间(相当BG1 的基一射间)输入一个正的触发信号,BG1 将产生基极电流Ib1 ,经放大,BG1 将有一个放大了β1 倍的集电极电流IC1 。因为BG1 集电极与BG2 基极相连,IC1 又是BG2 的基极电流Ib2 。BG2 又把比Ib2 (Ib1 )放大了β2 的集电极电流IC2 送回BG1 的基极放大。如此循环放大,直到BG1 、BG2 完全导通。实际这一过程是“一触即发”的过程,对可控硅来说,触发信号加入控制极,可控硅立即导通。导通的时间主要决定于可控硅的性能。 

■可控硅一经触发导通后,由于循环反馈的原因,流入BG1 基极的电流已不只是初始的Ib1 ,而是经过BG1 、BG2 放大后的电流(β1 *β2 *Ib1 )这一电流远大于Ib1 ,足以保持BG1 的持续导通。此时触发信号即使消失,可控硅仍保持导通状态只有断开电源Ea 或降低Ea ,使BG1 、BG2 中的集电极电流小于维持导通的最小值时,可控硅方可关断。当然,如果Ea 极性反接,BG1 、BG2 由于受到反向电压作用将处于截止状态。这时,即使输入触发信号,可控硅也不能工作。反过来,Ea 接成正向,而触动发信号是负的,可控硅也不能导通。另外,如果不加触发信号,而正向阳极电压大到超过一定值时,可控硅也会导通,但已属于非正常工作情况了。 

■可控硅这种通过触发信号(小的触发电流)来控制导通(可控硅中通过大电流)的可控特性,正是它区别于普通硅整流二极管的重要特征。 

二、可控硅的主要参数 

可控硅的主要参数有: 

1、 额定通态平均电流IT在一定条件下,阳极---阴极间可以连续通过的50赫兹正弦半波电流的平均值。 

2、 正向阻断峰值电压VPF 在控制极开路未加触发信号,阳极正向电压还未超过导能电压时,可以重复加在可控硅两端的正向峰值电压。可控硅承受的正向电压峰值,不能超过手册给出的这个参数值。 

3、 反向阴断峰值电压VPR当可控硅加反向电压,处于反向关断状态时,可以重复加在可控硅两端的反向峰值电压。使用时,不能超过手册给出的这个参数值。 

4、 控制极触发电流Ig1 、触发电压VGT在规定的环境温度下,阳极---阴极间加有一定电压时,可控硅从关断状态转为导通状态所需要的最小控制极电流和电压。 

5、 维持电流IH在规定温度下,控制极断路,维持可控硅导通所必需的最小阳极正向电流。 

■近年来,许多新型可控硅元件相继问世,如适于高频应用的快速可控硅,可以用正或负的触发信号控制两个方向导通的双向可控硅,可以用正触发信号使其导通,用负触发信号使其关断的可控硅等等。


日志标题:PCB板铜箔载流量
发表时间:2006-12-29 11:51:00
PCB板铜箔载流量
          铜箔厚度
铜箔宽度        70um        50um        35um
2.50mm        6.00A        5.10A        4.50A
2.00mm        5.10A        4.30A        4.00A
1.50mm        4.20A        3.50A        3.20A
1.20mm        3.60A        3.00A        2.70A
1.00mm        3.20A        2.60A        2.30A
0.80mm        2.80A        2.40A        2.00A
0.60mm        2.30A        1.90A        1.60A
0.50mm        2.00A        1.70A        1.35A
0.40mm        1.70A        1.35A        1.10A
0.30mm        1.30A        1.10A        0.80A
0.20mm        0.90A        0.70A        0.55A
0.15mm        0.70A        0.50A        0.20A
注1 用铜皮作导线通过大电流时铜箔宽度的载流量应参考表中的数值降额50%去选择考虑。
1、        由于敷铜板铜箔厚度有限,在需要流过较大电流的条状铜箔中,应考虑铜箔的载流量问题。仍以典型的0.03mm
厚度的为例,如果将铜箔作为宽为W(mm),长度为L(mm)的条状导线, 其电阻为0.0005*L/W 欧姆。另外,铜箔的载流量还与印
刷电路板上安装的元件种类,数量以及散热条件有关。在考虑到安全的情况下, 一般可按经验公式0.15*W(A)来计算铜箔的
载流量。
2、        一般PCB板的铜箔厚度为35um,线条宽度为1mm时,那末线条的横切面的面积为0.035平方毫米,通常取电流密度
30A/平方毫米,所以,每毫米线宽可以流过1A电流。


日志标题:Protel软件在高频电路布线中的技巧
发表时间:2006-12-30 20:08:00
Protel软件在高频电路布线中的技巧
数字器件正朝着高速、低耗、小体积、高抗干扰性的方向发展,这一发展趋势对印刷电路板的设计提出了很多新要求。
Protel软件在国内的应用已相当普遍,然而,不少设计者仅仅关注于Protel软件的“布通率”,对Protel软件为适应器件特
性的变化所做的改进并未用于设计中,这不仅使得软件资源浪费较严重,更使得很多新器件的优异性能难以发挥。本文拟在
简介高频电路布线一般要求的同时,以Protel for Windows V1.5软件为例来介绍一下高频电路布线时Protel软件能提供的一
些特殊对策。
  (1)高频电路往往集成度较高,布线密度大,采用多层板既是布线所必须的,也是降低干扰的有效手段。 Protel for
Windows V1.5能提供 16个铜线层和4个电源层,合理选择层数能大幅度降低印板尺寸,能充分利用中间层来设置屏蔽,能更
好地实现就近接地,能有效地降低寄生电感,能有效缩短信号的传输长度,能大幅度地降低信号间的交叉干扰等等,所有这
些都对高频电路的可靠工作有利。有资料显示,同种材料时,四层板要比双面板的噪声低20dB。但是,板层数越高,制造工
艺越复杂,成本越高。
  (2)高速电路器件管脚间的引线弯折越少越好。高频电路布线的引线最好采用全直线,需要转折,可用45度折线或圆弧转
折,这种要求在低频电路中仅仅用于提高钢箔的固着强度,而在高频电路中,满足这一要求却可以减少高频信号对外的发射
和相互间的耦合。用Protel布线时可在以下两处预先设置,一是在“Options”菜单的“Track Mode”子菜单中预约以 45/
90 Line或 90 Arc/Line方式布线,二是在“Auto”菜单的“Setup Autorouter…”项所打开的Routing Passes”对话框中
选定“Add Arcs”,以便自动布线结束时使转角圆弧化。
  (3)高频电路器件管脚间的引线越短越好。Protel满足布线最短化的最有效手段是在自动市线前对个别重点的高速网络进
行“布线”预约。首先,打开“Netlst”菜单的“Edit Net”子菜单,会出现一个“Change Net”对话框,把此对话框中的
“OptimizeMethod(布线优化模式)”选为“Shortest(最短化)”Rp可。其次,从整体考虑,元件布局时用“Auto”中
Placement Tools-Shove’和“Auto”中的“Density(密度检查)”来对比调整,使元件排列紧凑,并配合“Netlist”菜单
中的“Length”功能和“Info”菜单中的Lengthof selection”功能,对所选定的需最短化的重点网络进行布线长度测量。
  (4)高频电路器件管脚间的引线层间交替越少越好。所谓“引线的层间交替越少越好”是指元件连接过程中所用的过孔
(Via)越少越好,据测,一个过孔可带来约0.5 pF的分布电容,减少过孔数能显著提高速度。Protel软件专门提供了这一功
能,它在 Auto菜单的Setup Autorouter…”项所打开的Routing Passes”对话框中,有一个“Advanced”栏目,把其中的
“Smoothing”设为接通即可。
  (5)高频电路布线要注意信号线近距离平行走线所引入的“交叉干扰”,若无法避免平行分布,可在平行信号线的反面
布置大面积“地”来大幅度减少干扰。同一层内的平行走线几乎无法避免,但是在相邻的两个层,走线的方向务必取为相互
垂直,这在Protel中不难办到但却容易忽视。在“Auto”菜单的“Setup Autorouter…项所打开的Routing Lagers对话框中
允许对每一层的走线方向进行预定,供预选的方向有三种:“Horizontal、Vertical和 No Prefer-ence”,不少用户习惯
选用“No Preference(无特定取向)”,认为这样布通率高,但是,在高频电路布线中最好在相邻层分别取水平和竖直布线
交替进行。同一层内的平行走线无法避免,但可以在印板反面大面积敷设地线来降低干扰(这是针对常用的双面板而言,多
层板可利用中间的电源层来实现这一功能),Protel软件过去只提供了简单的“Fill”功能来应付这种需求,现在Windows下
的Protel除此之外还在“Edit”菜单的“Place”选项中提供了更强大的放置“Polygon Plane”的功能,即:多边形栅格
(条)铜箔面,如果在放置它时就把多边形取为整个印板的一个面,并把此栅格(条)与电路的GND网络连通,那么,该功能
将能实现整块电路板的某一面的“铺铜”操作,经过“铺铜”的电路板除能提高刚才所讲的高频抗干扰能力外,还对散热、
印板强度等有很大好处,另外,在电路板金属机箱上的固定处若加上镀锡栅条,不仅可以提高固定强度,保障接触良好,更
可利用金属机箱构成合适的公共线。在软件菜单中打开此功能后可见到一个“Place Polygon Plane对话框,它会问你是否要
把所放置的多边形栅格(条)与网络接通(connect net),若接通该项,退出对话框时将提示你给出欲接通的网络名,给定
接通GND网络将能起到屏蔽层的作用。同时还会问你“铺铜”的图案是用水平条(horizonta)、竖直条(vertica)还是栅格
(两者都选即可)。选用栅格将会有较好的屏蔽效果,同时,栅格网的尺寸(习惯称作为“目”)确定依据所要重点屏蔽的
干扰频率而定。
  (6)对特别重要的信号线或局部单元实施地线包围的措施。该措施在Protel软件中也能自动实现,它就是“Edit”菜单
的“Place”下的“Outline Select-ed Items”,即:绘制所选对象的外轮廓线。利用此功能,可以自动地对所选定的重要
信号线进行所谓的“包地”处理,当然,把此功能用于时钟等单元局部进行包地处理对高速系统也将非常有益。
  (7)各类信号走线不能形成环路,地线也不能形成电流环路。Protel自动布线的走线原则除了前面所讲的最短化原则
外,还有基于X方向、基于Y方向和菊花状(daisy)走线方式,采用菊花状走线能有效避免布线时形成环路。具体可打开
‘Netlist”菜单的“Edit Net”子菜单,出现一个“Change Net”对话框,把此对话框中的“Optimize Method(布线优化
模式)”选为“Daisy Chain”即可。
  (8)每个集成电路块的附近应设置一个高频退耦电容。由于Protel软件在自动放置元件时并不考虑退耦电容与被退耦的
集成电路间的位置关系,任由软件放置,使两者相距太远,退耦效果大打折扣,这时必须用手工移动元件(“ Edit”、“
Move”“component”)的办法事先干预两者位置,使之靠近。
  (9)模拟地线、数字地线等接往公共地线时要用高频扼流环节。在实际装配高频扼流环节时用的往往是中心孔穿有导线
的高频铁氧体磁珠,在电路原理图上对它一般不予表达,由此形成的网络表(netlist)就不包含这类元件,布线时就会因此
而忽略它的存在。针对此现实,可在原理图中把它当作电感,在PCB元件库中单独为它定义一个元件封装,布线前把它手工移
动到靠近公共地线汇合点的合适位置上。


日志标题:PCB设计中的注意事项
发表时间:2006-12-30 20:09:00
PCB设计中的注意事项
作为一个电子工程师设计电路是一项必备的硬功夫,但是原理设计再完美,如果电路板设计不合理性能将大打折扣,严重时
甚至不能正常工作。根据我的经验,我总结出以下一些PCB设计中应该注意的地方,希望能对您有所启示。
    不管用什么软件,PCB设计有个大致的程序,按顺序来会省时省力,因此我将按制作流程来介绍一下。(由于pro
tel界面风格与windows视窗接近,操作习惯也相近,且有强大的仿真功能,使用的人比较多,将以此软件作说
明。)
    原理图设计是前期准备工作,经常见到初学者为了省事直接就去画PCB板了,这样将得不偿失,对简单的板子,如果
熟练流程,不妨可以跳过。但是对于初学者一定要按流程来,这样一方面可以养成良好的习惯,另一方面对复杂的电路也只
有这样才能避免出错。
在画原理图时,层次设计时要注意各个文件最后要连接为一个整体,这同样对以后的工作有重要意义。由于,软件的差别有
些软件会出现看似相连实际未连(电气性能上)的情况。如果不用相关检测工具检测,万一出了问题,等板子做好了才发现
就晚了。因此一再强调按顺序来做的重要性,希望引起大家的注意。
原理图是根据设计的项目来的,只要电性连接正确没什么好说的。下面我们重点讨论一下具体的制板程序中的问题。
l、制作物理边框
    封闭的物理边框对以后的元件布局、走线来说是个基本平台,也对自动布局起着约束作用,否则,从原理图过来的元件
会不知所措的。但这里一定要注意精确,否则以后出现安装问题麻烦可就大了。还有就是拐角地方最好用圆弧,一方面可以
避免尖角划伤工人,同时又可以减轻应力作用。以前我的一个产品老是在运输过程中有个别机器出现面壳PCB板断裂的情
况,改用圆弧后就好了。
2、元件和网络的引入
    把元件和网络引人画好的边框中应该很简单,但是这里往往会出问题,一定要细心地按提示的错误逐个解决,不然后面
要费更大的力气。这里的问题一般来说有以下一些:
    元件的封装形式找不到,元件网络问题,有未使用的元件或管脚,对照提示这些问题可以很快搞定的。
3、元件的布局
    元件的布局与走线对产品的寿命、稳定性、电磁兼容都有很大的影响,是应该特别注意的地方。一般来说应该有以下一
些原则:
3.l放置顺序
    先放置与结构有关的固定位置的元器件,如电源插座、指示灯、开关、连接件之类,这些器件放置好后用软件的LOC
K功能将其锁定,使之以后不会被误移动。再放置线路上的特殊元件和大的元器件,如发热元件、变压器、IC等。最后放置
小器件。
3.2注意散热
    元件布局还要特别注意散热问题。对于大功率电路,应该将那些发热元件如功率管、变压器等尽量靠边分散布局放置,
便于热量散发,不要集中在一个地方,也不要高电容太近以免使电解液过早老化。
4、布线
    布线原则
走线的学问是非常高深的,每人都会有自己的体会,但还是有些通行的原则的。
    ◆高频数字电路走线细一些、短一些好
    ◆大电流信号、高电压信号与小信号之间应该注意隔离(隔离距离与要承受的耐压有关,通常情况下在2KV时板上要距
离2mm,在此之上以比例算还要加大,例如若要承受3KV的耐压测试,则高低压线路之间的距离应在3.5mm以上,许多情
况下为避免爬电,还在印制线路板上的高低压之间开槽。)
◆两面板布线时,两面的导线宜相互垂直、斜交、或弯曲走线,避免相互平行,以减小寄生耦合;作为电路的输人及输出用
的印制导线应尽量避兔相邻平行,以免发生回授,在这些导线之间最好加接地线。
◆走线拐角尽可能大于90度,杜绝90度以下的拐角,也尽量少用90度拐角
◆同是地址线或者数据线,走线长度差异不要太大,否则短线部分要人为走弯线作补偿
◆走线尽量走在焊接面,特别是通孔工艺的PCB
◆尽量少用过孔、跳线
◆单面板焊盘必须要大,焊盘相连的线一定要粗,能放泪滴就放泪滴,一般的单面板厂家质量不会很好,否则对焊接和RE
-WORK都会有问题
◆大面积敷铜要用网格状的,以防止波焊时板子产生气泡和因为热应力作用而弯曲,但在特殊场合下要考虑GND的流向,
大小,不能简单的用铜箔填充了事,而是需要去走线
◆元器件和走线不能太靠边放,一般的单面板多为纸质板,受力后容易断裂,如果在边缘连线或放元器件就会受到影响
◆必须考虑生产、调试、维修的方便性
    对模拟电路来说处理地的问题是很重要的,地上产生的噪声往往不便预料,可是一旦产生将会带来极大的麻烦,应该未
雨绸缎。对于功放电路,极微小的地噪声都会因为后级的放大对音质产生明显的影响;在高精度A/D转换电路中,如果地
线上有高频分量存在将会产生一定的温漂,影响放大器的工作。这时可以在板子的4角加退藕电容,一脚和板子上的地连,
一脚连到安装孔上去(通过螺钉和机壳连),这样可将此分量虑去,放大器及AD也就稳定了。
    另外,电磁兼容问题在目前人们对环保产品倍加关注的情况下显得更加重要了。一般来说电磁信号的来源有3个:信号
源,辐射,传输线。晶振是常见的一种高频信号源,在功率谱上晶振的各次谐波能量值会明显高出平均值。可行的做法是控
制信号的幅度,晶振外壳接地,对干扰信号进行屏蔽,采用特殊的滤波电路及器件等。
    需要特别说明的是蛇形走线,因为应用场合不同其作用也是不同的,在电脑的主板中用在一些时钟信号上,如 PCIC
lk、AGP-Clk,它的作用有两点:1、阻抗匹配 2、滤波电感。
    对一些重要信号,如 INTELHUB架构中的HUBLink,一共13根,频率可达233MHZ,要求必须严格
等长,以消除时滞造成的隐患,这时,蛇形走线是唯一的解决办法。
    一般来讲,蛇形走线的线距>=2倍的线宽;若在普通PCB板中,除了具有滤波电感的作用外,还可作为收音机天线的电
感线圈等等。
5、调整完善
    完成布线后,要做的就是对文字、个别元件、走线做些调整以及敷铜(这项工作不宜太早,否则会影响速度,又给布线
带来麻烦),同样是为了便于进行生产、调试、维修。
    敷铜通常指以大面积的铜箔去填充布线后留下的空白区,可以铺GND的铜箔,也可以铺VCC的铜箔(但这样一旦短
路容易烧毁器件,最好接地,除非不得已用来加大电源的导通面积,以承受较大的电流才接VCC)。包地则通常指用两根
地线(TRAC)包住一撮有特殊要求的信号线,防止它被别人干扰或干扰别人。
如果用敷铜代替地线一定要注意整个地是否连通,电流大小、流向与有无特殊要求,以确保减少不必要的失误。
6、检查核对网络
    有时候会因为误操作或疏忽造成所画的板子的网络关系与原理图不同,这时检察核对是很有必要的。所以画完以后切不
可急于交给制版厂家,应该先做核对,后再进行后续工作。
7、使用仿真功能
完成这些工作后,如果时间允许还可以进行软件仿真。特别是高频数字电路,这样可以提前发现一些问题,大大减少以后的
调试工作量。


日志标题:BGA封装
发表时间:2006-12-30 20:10:00
BGA封装
BGA技术(Ball Grid Array Package)即球栅阵列封装技术。该技术的出现便成为CPU、主板南、北桥芯片等高密度、高性
能、多引脚封装的最佳选择。但BGA封装占用基板的面积比较大。虽然该技术的I/O引脚数增多,但引脚之间的距离远大于
QFP,从而提高了组装成品率。而且该技术采用了可控塌陷芯片法焊接,从而可以改善它的电热性能。另外该技术的组装可用
共面焊接,从而能大大提高封装的可靠性;并且由该技术实现的封装CPU信号传输延迟小,适应频率可以提高很大。
BGA封装
  BGA封装具有以下特点:
I/O引脚数虽然增多,但引脚之间的距离远大于QFP封装方式,提高了成品率
虽然BGA的功耗增加,但由于采用的是可控塌陷芯片法焊接,从而可以改善电热性能
信号传输延迟小,适应频率大大提高
组装可用共面焊接,可靠性大大提高
CPGA也就是常说的陶瓷封装,全称为Ceramic PGA。主要在Thunderbird(雷鸟)核心和“Palomino”核心的Athlon处理器上
采用。

FC-PGA2 封装
FC-PGA2 封装与 FC-PGA 封装类型很相似,除了这些处理器还具有集成式散热器 (IHS)。集成式散热器是在生产时直接安装
到处理器片上的。由于 IHS 与片模有很好的热接触并且提供了更大的表面积以更好地发散热量,所以它显著地增加了热传
导。FC-PGA2 封装用于奔腾 III 和英特尔赛扬处理器(370 针)和奔腾 4 处理器(478 针)。

CuPGA封装
CuPGA是Lidded Ceramic Package Grid Array的缩写,即有盖陶瓷栅格阵列封装。其与普通陶瓷封装最大的区别是增加了一
个顶盖,能提供更好的散热性能以及能保护CPU核心免受损坏。目前AMD64系列CPU采用了此封装。

FC-PGA封装是反转芯片针脚栅格阵列的缩写,这种封装中有针脚插入插座。这些芯片被反转,以至片模或构成计算机芯片的
处理器部分被暴露在处理器的上部。通过将片模暴露出来,使热量解决方案可直接用到片模上,这样就能实现更有效的芯片
冷却。为了通过隔绝电源信号和接地信号来提高封装的性能,FC-PGA 处理器在处理器的底部的电容放置区域(处理器中心)
安有离散电容和电阻。芯片底部的针脚是锯齿形排列的。此外,针脚的安排方式使得处理器只能以一种方式插入插座。FC-
PGA 封装用于奔腾 III 和英特尔 赛扬 处理器,它们都使用 370 针。

mPGA,微型PGA封装,目前只有AMD公司的Athlon 64和英特尔公司的Xeon(至强)系列CPU等少数产品所采用,而且多是些高
端产品,是种先进的封装形式。

OOI 是 OLGA 的简写。OLGA 代表了基板栅格阵列。OLGA 芯片也使用反转芯片设计,其中处理器朝下附在基体上,实现更好
的信号完整性、更有效的散热和更低的自感应。OOI 有一个集成式导热器 (IHS),能帮助散热器将热量传给正确安装的风扇
散热器。OOI 用于奔腾 4 处理器,这些处理器有 423 针。

OPGA(Organic pin grid Array,有机管脚阵列)。这种封装的基底使用的是玻璃纤维,类似印刷电路板上的材料。 此种封
装方式可以降低阻抗和封装成本。OPGA封装拉近了外部电容和处理器内核的距离,可以更好地改善内核供电和过滤电流杂
波。AMD公司的AthlonXP系列CPU大多使用此类封装。

OPGA封装
该技术的英文全称为Plastic Flat Package,中文含义为塑料扁平组件式封装。用这种技术封装的芯片同样也必须采用SMD技
术将芯片与主板焊接起来。采用SMD安装的芯片不必在主板上打孔,一般在主板表面上有设计好的相应管脚的焊盘。将芯片各
脚对准相应的焊盘,即可实现与主板的焊接。用这种方法焊上去的芯片,如果不用专用工具是很难拆卸下来的。该技术与上
面的QFP技术基本相似,只是外观的封装形状不同而已。
PFP封装的80386

 该技术也叫插针网格阵列封装技术(Ceramic Pin Grid Arrau Package),由这种技术封装的芯片内外有多个方阵形的插
针,每个方阵形插针沿芯片的四周间隔一定距离排列,根据管脚数目的多少,可以围成2~5圈。安装时,将芯片插入专门的
PGA插座。为了使得CPU能够更方便的安装和拆卸,从486芯片开始,出现了一种ZIF CPU插座,专门用来满足PGA封装的CPU在
安装和拆卸上的要求。该技术一般用于插拔操作比较频繁的场合之下。

PLGA是Plastic Land Grid Array的缩写,即塑料焊盘栅格阵列封装。由于没有使用针脚,而是使用了细小的点式接口,所以
PLGA封装明显比以前的FC-PGA2等封装具有更小的体积、更少的信号传输损失和更低的生产成本,可以有效提升处理器的信号
强度、提升处理器频率,同时也可以提高处理器生产的良品率、降低生产成本。目前Intel公司Socket 775接口的CPU采用了
此封装。

“PPGA”的英文全称为“Plastic Pin Grid Array”,是塑针栅格阵列的缩写,这些处理器具有插入插座的针脚。为了提高
热传导性,PPGA 在处理器的顶部使用了镀镍铜质散热器。芯片底部的针脚是锯齿形排列的。此外,针脚的安排方式使得处理
器只能以一种方式插入插座。

这种技术的中文含义叫方型扁平式封装技术(Plastic Quad Flat Pockage),该技术实现的CPU芯片引脚之间距离很小,管
脚很细,一般大规模或超大规模集成电路采用这种封装形式,其引脚数一般都在100以上。该技术封装CPU时操作方便,可靠
性高;而且其封装外形尺寸较小,寄生参数减小,适合高频应用;该技术主要适合用SMT表面安装技术在PCB上安装布线。

QFP封装的80286
S.E.C.C.2 封装与 S.E.C.C. 封装相似,除了S.E.C.C.2 使用更少的保护性包装并且不含有导热镀层。S.E.C.C.2 封装用于
一些较晚版本的奔腾II 处理器和奔腾 III 处理器(242 触点)。

“S.E.C.C.”是“Single Edge Contact Cartridge”缩写,是单边接触卡盒的缩写。为了与主板连接,处理器被插入一个插
槽。它不使用针脚,而是使用“金手指”触点,处理器使用这些触点来传递信号。S.E.C.C. 被一个金属壳覆盖,这个壳覆盖
了整个卡盒组件的顶端。卡盒的背面是一个热材料镀层,充当了散热器。S.E.C.C. 内部,大多数处理器有一个被称为基体的
印刷电路板连接起处理器、二级高速缓存和总线终止电路。S.E.C.C. 封装用于有 242 个触点的英特尔奔腾II 处理器和有
330 个触点的奔腾II 至强和奔腾 III 至强处理器。

“S.E.P.”是“Single Edge Processor”的缩写,是单边处理器的缩写。“S.E.P.”封装类似于“S.E.C.C.”或者
“S.E.C.C.2”封装,也是采用单边插入到Slot插槽中,以金手指与插槽接触,但是它没有全包装外壳,底板电路从处理器底
部是可见的。“S.E.P.”封装应用于早期的242根金手指的Intel Celeron 处理器。


日志标题:电路板布局、布线的的抗ESD设计规则
发表时间:2006-12-30 20:11:00
电路板布局、布线的的抗ESD设计规则
一、概述:
静电释放(ESD)是我们每一个产品设计工程师需要考虑的一个相当重要的问题。大多数电子设备都 处于一个充满ESD的环境之
中,ESD可能来自人体、家具甚至设备本身(内部)。电子设备完全遭受ESD损毁比较少见,然而ESD干扰却很常见,它会导致设
备锁死、复位、数据丢失和不可靠。其结果可能是:在寒冷干燥的冬季里,电子设备经常出现故障现象,但是维修时又显示
正常。
要防止ESD,首先必须知道ESD是什么及ESD进入电子设备的过程。一个充电的导体接近另一个导体时,就可能发生ESD。首
先,在2个导体之间会建立一个很强的电场,产生由电场引起的击穿。当2个导体之间的电压超过它们之间空气和绝缘介质的
击穿电压时,就会产生电弧。在0.7ns~10ns的时间里,电弧电流会达到几十A,有时甚至会超过100A。电弧将一直维持,直
到2个导体接触短路或者电流低到不能维持电弧为止。
1.1 ESD的产生取决于物体的起始电压、电阻、电感和寄生电容:
(1)可能产生电弧的实例有人体、带电器件和机器。
(2)可能产生尖峰电弧的实例有手或金属物体。
(3)可能产生同极性或极性变化的多个电弧的实例有家具等。
1.2 ESD可以通过5种耦合途径进入电子设备:
(1)初始的电场能容性耦合到表面积较大的网络上,并在离ESD电弧100mm处产生高达4000V/m的高压。
(2)电弧注入的电荷/电流可以产生以下的损坏和故障:
a)    穿透元器件内部的薄绝缘层,损毁MOSFET和CMOS元器件的栅极(常见)。
b)CMOS器件中的触发器锁死(常见)。
c)短路反偏的PN结(常见)。
d)短路正向偏置的PN结(少见)。
e)熔化有源器件内部的焊接线或铝线(少见)。
(3)电流会导致导体上产生电压脉冲(V=L×dI/dt,这些导体可能是电源、地或信号线,这些电压脉冲将进入与这些网络相
连的每一个元器件(常见)。
(4)电弧会产生一个频率范围在1MHz~500MHz的强磁场,并感性耦合到临近的每一个布线环路,在离ESD电弧100mm远的地方
产生高达15A/m的电流。
(5)电弧辐射的电磁场会耦合到长的信号线上,这些信号线起到接收天线的作用(少见)。
ESD会通过各种各样的耦合途径找到设备的薄弱点。ESD频率范围宽,不仅仅是一些离散的频点,它甚至可以进入窄带电路
中。为了防止ESD干扰和损毁,必须隔离这些路径或者加强设备的抗ESD能力。

二、抗ESD的布局布线设计
通过PCB印刷电路板的分层设计、恰当的布局布线可以实现PCB的抗ESD设计。要达到期望的抗ESD能力,通常要通过测试、解
决问题、重新测试这样的周期,每一个周期都可能至少影响到一块PCB的设计。在PCB设计过程中,通过预测可以将绝大多数
设计修改仅限于增减元器件。调整PCB布局布线,使之具有最强的ESD范围性能。
2.1 尽可能使用多层PCB:相对于双面PCB而言,地平面和电源平面以及排列紧密的信号线-地线间距能够减小共模阻抗
(common impedance)和感性耦合,使之达到双面PCB的1/10~1/100。尽量地将每一个信号层都紧靠一个电源层或地线层。对
于顶层和底层表面都有元器件、具有很短连接线以及许多填充地的高密度PCB,可以考虑使用内层线。大多数的信号线以及电
源和地平面都在内层上,因而类似于具备屏蔽功能的法拉第盒。
2.2 对于双面PCB来说,要采用紧密交织的电源和地栅格。电源线紧靠地线。在垂直和水平线或填充区之间,要尽可能多地连
接。面的栅格尺寸60mm。如果可能,栅格尺寸应<13mm。
2.3 确保每一个电路尽可能紧凑,尽可能将所有连接器都放在一边。I/O电路要尽可能靠近对应的连接器。在引向机箱外的连
接器(容易直接被ESD击中)下方的所有PCB层上,要放置宽的机箱地或者多边形填充地,并每隔大约13mm的距离用过孔将它们
连接在一起。在连接器处或者离接收电路25mm的范围内,要放置滤波电容。
a)用短而粗的线连接到机箱地或者接收电路地(长度小于5倍宽度,最好小于3倍宽度)
b)信号线和地线先连接到电容再连接到接收电路。
2.4 如果可能,将电源线从卡的中央引入,并远离容易直接遭受ESD影响的区域。
2.5 在卡的边缘上放置安装孔,安装孔周围用无阻焊剂的顶层和底层焊盘连接到机箱地上。在卡的顶层和底层靠近安装孔的
位置,每隔100mm沿机箱地线将机箱地和电路地用1.27mm宽的线连接在一起。与这些连接点的相邻处,在机箱地和电路地之间
放置用于安装的焊盘或安装孔。这些地线连接可以用刀片划开,以保持开路;或用磁珠/高频电容的跳接,以改变ESD测试时
的接地机制。
2.6 PCB装配时,不要在顶层或者底层的焊盘上涂覆任何焊料。
使用具有内嵌垫圈的螺钉来实现PCB与金属机箱/屏蔽层或接地面上支架的紧密接触。PCB要插入机箱内,不要安装在开口位置
或者内部接缝处。如果一个机箱或者主板要内装几个电路卡,应该将对静电最敏感的电路卡放在最中间。
2.7 在每一层的机箱地和电路地之间,要设置相同的"隔离区";如果可能,保持间隔距离为0.64mm。如果电路板不会放入金
属机箱或者屏蔽装置中,在电路板的顶层和底层机箱地线上不能涂阻焊剂,这样它们可以作为ESD电弧的放电棒。
2.8 要以下列方式在电路周围设置一个环形地:除边缘连接器以及机箱地以外,在整个外围四周放上环形地通路。确保所有
层的环形地宽度大于2.5mm。
每隔13mm用过孔将环形地连接起来。将环形地与多层电路的公共地连接到一起。对安装在金属机箱或者屏蔽装置里的双面板
来说,应该将环形地与电路公共地连接起来。不屏蔽的双面电路则应该将环形地连接到机箱地,环形地上不能涂阻焊剂,以
便该环形地可以充当ESD的放电棒,在环形地(所有层)上的某个位置处至少放置一个0.5mm宽的间隙,这样可以避免形 成一个
大的环路。信号布线离环形地的距离不能小于0.5mm
2.9 在能被ESD直接击中的区域,每一个信号线附近都要布一条地线。对易受ESD影响的电路,应该放在靠近电路中心的区
域,这样其它的电路可以为它们提供一定的屏蔽作用.
2.10 通常在接收端放置串联的电阻和磁珠,而对那些易被ESD击中的电缆驱动器,也可以考虑在驱动端放置串联的电阻或磁
珠。通常在接收端放置瞬态保护器。
a)用短而粗的线(长度小于5倍宽度,最好小于3倍宽度)连接到机箱地。
b)从连接器出来的信号线和地线要直接接到瞬态保护器,然后才能接电路的其它部分。要注意磁珠下、焊盘之间、可能接触
到磁珠的信号线的布线。有些磁珠导电性能相当好,可能会产生意外的导电路径。
2.11 要确保信号线尽可能短。信号线的长度大于300mm时,一定要平行布一条地线。确保信号线和相应回路之间的环路面积
尽可能小。对于长信号线每隔几厘米调换信号线和地线的位置来减小环路面积。不能将受保护的信号线和不受保护的信号线
并行排列。
2.12 确保电源和地之间的环路面积尽可能小,在靠近集成电路芯片每一个电源管脚的地方放置一个高频电容。在距离每一个
连接器80mm范围以内放置一个高频旁路电容。电源或地平面上开口长度超过8mm时,要用窄的线将开口的两侧连接起来。
2.13 在可能的情况下,要用地填充未使用的区域,每隔60mm距离将所有层的填充地连接起来。确保在任意大的地填充区(大
约25×6mm)的2个相反端点位置处要与地连接。
2.14 要特别注意复位、中断和控制信号线的布线。复位线、中断信号线或者边沿触发信号线不能布置在靠近PCB边沿的地
方。要采用高频滤波,远离输入和输出电路和远离电路板边缘。
2.15 将安装孔同电路公地连接在一起,或者将它们隔离开来。
a)金属支架必须和金属屏蔽装置或者机箱一起使用时,要采用一个0Ω电阻实现连接.
b)确定安装孔大小来实现金属或者塑料支架的可靠安装,在安装孔顶层和底层上要采用大焊盘,底层焊盘上不能采用阻焊
剂,并确保低层焊盘不采用波峰焊工艺焊接


日志标题:元件封装小结
发表时间:2006-12-30 20:11:00
元件封装小结
电阻:RES1,RES2,RES3,RES4;封装属性为axial系列
无极性电容:cap;封装属性为RAD-0.1到rad-0.4
电解电容:electroi;封装属性为rb.2/.4到rb.5/1.0
电位器:pot1,pot2;封装属性为vr-1到vr-5
二极管:封装属性为diode-0.4(小功率)diode-0.7(大功率)
三极管:常见的封装属性为to-18(普通三极管)to-22(大功率三极管)to-3(大功率达林顿管
电源稳压块有78和79系列;78系列如7805,7812,7820等
79系列有7905,7912,7920等
常见的封装属性有to126h和to126v
整流桥:BRIDGE1,BRIDGE2: 封装属性为D系列(D-44,D-37,D-46)
电阻:AXIAL0.3-AXIAL0.7  其中0.4-0.7指电阻的长度,一般用AXIAL0.4
瓷片电容:RAD0.1-RAD0.3。  其中0.1-0.3指电容大小,一般用RAD0.1
电解电容:RB.1/.2-RB.4/.8 其中.1/.2-.4/.8指电容大小。一般<100uF用
RB.1/.2,100uF-470uF用RB.2/.4,>470uF用RB.3/.6
二极管:DIODE0.4-DIODE0.7 其中0.4-0.7指二极管长短,一般用DIODE0.4
发光二极管:RB.1/.2
集成块:DIP8-DIP40, 其中8-40指有多少脚,8脚的就是DIP8
贴片电阻
0603表示的是封装尺寸 与具体阻值没有关系,但封装尺寸与功率有关通常来说如下:
0201 1/20W
0402 1/16W
0603 1/10W
0805 1/8W
1206 1/4W
电容电阻外形尺寸与封装的对应关系是:
0402=1.0mmx0.5mm
0603=1.6mmx0.8mm
0805=2.0mmx1.2mm
1206=3.2mmx1.6mm
1210=3.2mmx2.5mm
1812=4.5mmx3.2mm
2225=5.6mmx6.5mm
  零件封装是指实际零件焊接到电路板时所指示的外观和焊点的位置。是纯粹的空间概念因此不同的元件可共用同一零件
封装,同种元件也可有不同的零件封装。像电阻,有传统的针插式,这种元件体积较大,电路板必须钻孔才能安置元件,完
成钻孔后,插入元件,再过锡炉或喷锡(也可手焊),成本较高,较新的设计都是采用体积小的表面贴片式元件(SMD)这种
元件不必钻孔,用钢膜将半熔状锡膏倒入电路板,再把SMD元件放上,即可焊接在电路板上了。
  关于零件封装我们在前面说过,除了DEVICE。LIB库中的元件外,其它库的元件都已经有了固定的元件封装,这是因为这
个库中的元件都有多种形式:以晶体管为例说明一下:
  晶体管是我们常用的的元件之一,在DEVICE。LIB库中,简简单单的只有NPN与PNP之分,但实际上,如果它是NPN的
2N3055那它有可能是铁壳子的TO—3,如果它是NPN的2N3054,则有可能是铁壳的TO-66或TO-5,而学用的CS9013,有TO-92A,
TO-92B,还有TO-5,TO-46,TO-52等等,千变万化。还有一个就是电阻,在DEVICE库中,它也是简单地把它们称为RES1和
RES2,不管它是100Ω还是470KΩ都一样,对电路板而言,它与欧姆数根本不相关,完全是按该电阻的功率数来决定的我们选
用的1/4W和甚至1/2W的电阻,都可以用AXIAL0.3元件封装,而功率数大一点的话,可用AXIAL0.4,AXIAL0.5等等。现将常用的
元件封装整理如下:
  电阻类及无极性双端元件    AXIAL0.3-AXIAL1.0
  无极性电容          RAD0.1-RAD0.4
  有极性电容          RB.2/.4-RB.5/1.0
  二极管            DIODE0.4及 DIODE0.7
  石英晶体振荡器        XTAL1
  晶体管、FET、UJT       TO-xxx(TO-3,TO-5)
  可变电阻(POT1、POT2)    VR1-VR5
  当然,我们也可以打开C:\Client98\PCB98\library\advpcb.lib库来查找所用零件的对应封装。
  这些常用的元件封装,大家最好能把它背下来,这些元件封装,大家可以把它拆分成两部分来记如电阻AXIAL0.3可拆成
AXIAL和0.3,AXIAL翻译成中文就是轴状的,0.3则是该电阻在印刷电路板上的焊盘间的距离也就是300mil(因为在电机领域
里,是以英制单位为主的。同样的,对于无极性的电容,RAD0.1-RAD0.4也是一样;对有极性的电容如电解电容,其封装为
RB.2/.4,RB.3/.6等,其中“.2”为焊盘间距,“.4”为电容圆筒的外径。
  对于晶体管,那就直接看它的外形及功率,大功率的晶体管,就用TO—3,中功率的晶体管,如果是扁平的,就用TO-
220,如果是金属壳的,就用TO-66,小功率的晶体管,就用TO-5,TO-46,TO-92A等都可以,反正它的管脚也长,弯一下也可
以。
  对于常用的集成IC电路,有DIPxx,就是双列直插的元件封装,DIP8就是双排,每排有4个引脚,两排间距离是300mil,焊
盘间的距离是100mil。SIPxx就是单排的封装。等等。
  值得我们注意的是晶体管与可变电阻,它们的包装才是最令人头痛的,同样的包装,其管脚可不一定一样。例如,对于
TO-92B之类的包装,通常是1脚为E(发射极),而2脚有可能是B极(基极),也可能是C(集电极);同样的,3脚有可能是
C,也有可能是B,具体是那个,只有拿到了元件才能确定。因此,电路软件不敢硬性定义焊盘名称(管脚名称),同样的,
场效应管,MOS管也可以用跟晶体管一样的封装,它可以通用于三个引脚的元件。Q1-B,在PCB里,加载这种网络表的时候,
就会找不到节点(对不上)。在可变电阻上也同样会出现类似的问题;在原理图中,可变电阻的管脚分别为1、W、及2,所产
生的网络表,就是1、2和W,在PCB电路板中,焊盘就是1,2,3。当电路中有这两种元件时,就要修改PCB与SCH之间的差异最
快的方法是在产生网络表后,直接在网络表中,将晶体管管脚改为1,2,3;将可变电阻的改成与电路板元件外形一样的1,
2,3即可。


日志标题:PROTEL99的图层设置与内电层分割
发表时间:2006-12-30 20:12:00
PROTEL99的图层设置与内电层分割
PROTEL99的电性图层分为两种,打开一个PCB设计文档按,快捷键L,出现图层设置窗口。左边的一种(SIGNAL
LAYER)为正片层,包括TOP LAYER、BOTTOM LAYER和MIDLAYER,中间的一种(INTERNAL PLANES)为负片层,即
INTERNAL LAYER。这两种图层有着完全不同的性质和使用方法。

正片层一般用于走纯线路,包括外层和内层线路。负片层则多用来做地层和电源层。因为在多层板中的地层和电
源层一般都是用整片的铜皮来作为线路(或做为几个较大块的分割区域),如果用MIDLAYER即正片层来做的画则
必须用铺铜的方式来实现,这样将使整个设计数据量非常大,不利于数据交流传递,且会影响设计刷新速度。而
用负片则只需在外层与内层的连接处生成一个花孔(THERMAL PAD)即可,对于设计和数据传递都非常有利。

内层的添加与删除

在一个设计中,有时会遇到变换板层的情况。如把较复杂的双面板改为四层板,或把对信号要求较高的四层板升
级为六层板等等。这时需要新增电气图层,可以如下*作:

DESIGN-LAYER STACK MANAGER,在左边有当前层叠结构的示意图。点击想要添加新层位置的上面一个图层,如TOP,
然后点击右边的ADD LAYER(正片)或ADD PLANE(负片),即可完成新图层的添加。

注意如果新增的图层使PLANE(负片)层的话,一定要给这个新层分配相应的网络(双击该层名)!这里分配的网络
只能有一个(一般地层分配一个GND就可以了),如果想要在此层(如作为电源层)中添加新网络,则要在后面的
操作中做内层分割才能达到,所以这里先分配一个连接数量较多的网络即可。

如点击ADD LAYER则会新增一个MIDLAYER(正片),应用方法和外层线路完全相同。

如果想应用混合电气层,即既有走线又有电源地大铜面的方法,则必须使用ADD LAYER来生成的正片层来设计(原
因见下)。

内电层的分割

如果在设计中有不只一组电源,那可以在电源层中使用内层分割来分配电源网络。这里要用到的命令是:

PLACE-SPLIT PLANE,在出现的对话框中设定图层,并在CONNECT TO NET处指定此次分割要分配的网络,然后按照
铺铜的方法放置分割区域。放置完成后,在此分割区域中的有相应网络的孔将会自动生成花孔焊盘,即完成了电
源层的电气连接。可以重复操作此步骤直到所有电源分配完毕。当内电层需要分配的网络较多时,做内层分割比
较麻烦,需要使用一些技巧来完成。

此处还需要注意一个问题:PROTEL中有两种大铜皮的电气连接方式(不包括PLACE FILL),一种为POLYGON PLANE,
即普通的覆铜,此命令只能应用于正片层,包括TOP/BOT/MIDLAYER,另一种为SPLIT PLANE,即内电层分割,此命
令只能应用于负片层即INTERNAL PLANE。应注意区分这两个命令的使用范围。

修改分割铺铜的命令:EDIT-MOVE-SPLIT PLANE VERTICES


日志标题:POWER PCB内层属性设置与内电层分割及铺铜
发表时间:2006-12-30 20:13:00
POWER PCB内层属性设置与内电层分割及铺铜
    看到很多网友提出的关于POWER PCB内层正负片设置和内电层分割以及铺铜方面的问题,说明的帖子很多,不
过都没有一个很系统的讲解。今天抽空把这些东西联系在一起集中说明一下。时间仓促,如有错误疏漏指出还请
多加指正!
一 POWER PCB的图层与PROTEL的异同
    我们做设计的有很多都不止用一个软件,由于PROTEL上手容易的特点,很多朋友都是先学的PROTEL后学的
POWER,当然也有很多是直接学习的POWER,还有的是两个软件一起用。由于这两个软件在图层设置方面有些差
异,初学者很容易发生混淆,所以先把它们放在一起比较一下。直接学习POWER的也可以看看,以便有一个参照。
首先看看内层的分类结构图
===================================
软件名   属性   层名         用途
-----------------------------------
PROTEL:  正片   MIDLAYER     纯线路层
                MIDLAYER     混合电气层(包含线路,大铜皮)
         负片   INTERNAL     纯负片    (无分割,如GND)
                INTERNAL     带内层分割(最常见的多电源情况)
-----------------------------------
POWER :  正片   NO PLANE     纯线路层
                NO PLANE     混合电气层(用铺铜的方法 COPPER POUR)
                SPLIT/MIXED  混合电气层(内层分割层法 PLACE AREA)
         负片   CAM PLANE    纯负片    (无分割,如GND)
===================================
    从上图可以看出,POWER与PROTEL的电气图层都可分为正负片两种属性,但是这两种图层属性中包含的图层类
型却不相同。
1.PROTEL只有两种图层类型,分别对应正负片属性。而POWER则不同,POWER中的正片分为两种类型,NO PLANE和
SPLIT/MIXED
2.PROTEL中的负片可以使用内电层分割,而POWER的负片只能是纯负片(不能应用内电层分割,这一点不如
PROTEL)。内层分割必须使用正片来做。用SPLIT/MIXED层,也可用普通的正片(NO PLANE)+铺铜。
    也就是说,在POWER PCB中,不管用于电源的内层分割还是混合电气层,都要用正片来做,而普通的正片
(NO PLANE)与专用混合电气层(SPLIT/MIXED)的唯一区别就是铺铜的方式不一样!负片只能是单一的负片。
(用2D LINE分割负片的方法,由于没有网络连接和设计规则的约束,容易出错,不推荐使用)
    这两点是它们在图层设置与内层分割方面的主要区别。
二 SPLIT/MIXED层的内层分割与NO PLANE层的铺铜之间的区别
1.SPLIT/MIXED:必须使用内层分割命令(PLACE AREA),可自动移除内层独立焊盘,可走线,可以方便的在大片铜
皮上进行其他网络的分割,内层分割的智能化较高。
2.NO PLANEC层:必须使用铺铜的命令(COPPER POUR),用法同外层线路,不会自动移除独立焊盘,可走线,不可
以在大块铜皮上进行其他网络的分割。也就是说不能出现大块铜皮包围小块铜皮的现象。
三 POWER PCB的图层设置及内层分割方法
    看过上面的结构图以后应该对POWER的图层结构已经很清楚了,确定了要使用什么样的图层来完成设计,下一
步就是添加电气图层的操作了。
下面以一块四层板为例:
    首先新建一个设计,导入网表,完成基本的布局,然后新增图层SETUP-LAYER DEFINITION,在ELECTRICAL
LAYER区,点击MODIFY,在弹出的窗口中输入4,OK,OK。此时在TOP与BOT中间已经有了两个新电气图层,分别给这
两个图层命名,并设置图层类型。
    把INNER LAYER2命名为GND,并设定为CAM PLANE,然后点击右边的ASSIGN分配网络,因为这层是负片的整张
铜皮,所以分配一个GND就可以,千万不要分多了网络!
    把INNER LAYER3命名为POWER,并设定为SPLIT/MIXED(因为有多组电源,所以要用到内层分割),点击
ASSIGN,把需要走在内层的电源网络分配到右边的ASSOCIATED窗口下(假设分配三个电源网络)。
    下一步进行布线,把外层除了电源地以外的线路全部走完。电源地的网络则直接打孔即可自动连接到内层
(小技巧,先暂时把POWER层的类型定义为CAM PLANE,这样凡是分配到内层的电源网络且打了过孔的线路系统都
会认为已经连接,而自动取消鼠线)。待所有布线都完成以后即可进行内层分割。
    第一步是给网络上色,以利于区分各个接点位置,按快捷键CTRL+SHIFT+N,指定网络颜色(过程略)。
    然后把POWER层的图层属性改回SPLIT/MIXED,再点击DRAFTING-PLACE AREA,下一步即可绘制第一个电源网络
的铺铜。
    1号网络(黄色):第一个网络要铺满整个板面,然后指定为连接面积最大,数量最多的那个网络名称。
    2号网络(绿色):下面进行第二个网络,注意因为这一网络位于整个板子的中部,所以我们要在已经铺好的
大铜面上切出一块来作为新的网络。还是点击PLACE AREA,然后按照颜色指示绘制切割区域,当双击鼠标完成切
割的时候,系统会自动出现当前所切割网络(1)与当前网络(2)的的区域隔离线(由于是用正片铺铜的方式做
切割,所以不能象负片做切割那样用一条正性线来完成大铜面的分割)。同时分配该网络名称。
    3号网络(红色):下面第三个网络,由于此网络较靠近板边,所以我们还可以用另外一个命令来做。点击
DRAFTING-AUTO PLANE SEPARATE,然后从板边开始画起,把需要的接点包围以后再回到板边,双击鼠标即可完
成。同时也会自动出现隔离带,并弹出一个网络分配窗口,注意此窗口需要连续分配两个网络,一个是你刚刚切
割出来的网络,一个是剩余区域的网络(会有高亮显示)。
    至此已基本完成整个布线工作,最后用POUR MANAGER-PLANE CONNECT进行灌铜,即可出现下图的效果。
第一次切割(Plane Area)绿色网络间距与当前切割的铜皮线宽相同,第二次切割的铜皮间距由PREFERENCE-
SPLIT/MIXED PLANE-AUTO SEPARATE控制,切割前即要设定好尺寸,不要用RULES来限制,否则会与外层铺铜设定
发生干涉。
多层板典型的应用就是四层,六层不过是多加了两个走线层,设置与布线与外层基本相同,只是没有元件焊盘的
阻挡,走线更加通顺。八层则是在六层的基础上多加了一对电源地来提高信号质量。至于十层十二层也只是在六
层地基础上再增加一对走线层和若干电源地而已。
典型的十二层板应用:两个外层放置元件(不走线),四个INNER LAYER用于走线,六层电源地层用于隔离各个走
线层,提高信号质量。


日志标题:可控硅
发表时间:2007-1-5 11:16:00

初学者必修课--电子元件基础教程6

2006-02-25 08:52 类别:默认



第三节 可控硅


可控硅也称作晶闸管,它是由PNPN四层半导体构成的元件,有三个电极,阳极A,阴极K和控制极G 。


可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性好。在调速、调光、调压、调温以及其他各种控制电路中都有它的身影。


可控硅分为单向的和双向的,符号也不同。单向可控硅有三个PN结,由最外层的P极和N极引出两个电极,分别称为阳极和阴极,由中间的P极引出一个控制极。


单向可控硅有其独特的特性:当阳极接反向电压,或者阳极接正向电压但控制极不加电压时,它都不导通,而阳极和控制极同时接正向电压时,它就会变成导通状态。一旦导通,控制电压便失去了对它的控制作用,不论有没有控制电压,也不论控制电压的极性如何,将一直处于导通状态。要想关断,只有把阳极电压降低到某一临界值或者反向。


双向可控硅的引脚多数是按T1、T2、G的顺序从左至右排列(电极引脚向下,面对有字符的一面时)。加在控制极G上的触发脉冲的大小或时间改变时,就能改变其导通电流的大小。


与单向可控硅的区别是,双向可控硅G极上触发脉冲的极性改变时,其导通方向就随着极性的变化而改变,从 而能够控制交流电负载。而单向可控硅经触发后只能从阳极向阴极单方向导通,所以可控硅有单双向之分。


电子制作中常用可控硅,单向的有MCR-100等,双向的有TLC336等。



日志标题:开关电源
发表时间:2007-1-9 11:37:00
凡用半导体功率器件作为开关,将一种电源形态转变成另一形态的主电路叫开关变称器电路;转变时用自动控制闭环稳定输出并有保护环节则称开关电源。
  开关电源就是用通过电路控制开关管进行高速的道通与截止。将直流电转化为高频率的交流电提供给变压器进行变压,从而产生所需要的一组或多组电压!

  转化为高频交流电的原因是高频交流在变压器变压电路中的效率要比50HZ高很多.所以开关变压器可以做的很小,而且工作时不是很热,成本很低。如果不将50HZ变为高频那开关电源就没有意义。

  开关电源大体可以分为隔离和非隔离两种,隔离型的必定有开关变压器,而非隔离的未必一定有。

 

 

 

1.四双向模拟开关CD4066
  CD4066的引脚功能如图1所示。每个封装内部有4个独立的模拟开关,每个模拟开关有输入、输出、控制三个端子,其中输入端和输出端可互换。当控制端加高电平时,开关导通;当控制端加低电平时开关截止。模拟开关导通时,导通电阻为几十欧姆;模拟开关截止时,呈现很高的阻抗,可以看成为开路。模拟开关可传输数字信号和模拟信号,可传输的模拟信号的上限频率为40MHz。各开关间的串扰很小,典型值为-50dB
 

 

模拟开关就是开关晶体管,它在控制信号下开关,因为起开关作用,实际是晶体管所以称模拟开关。


日志标题:PCB布线的地线干扰与抑制
发表时间:2007-1-9 11:54:00



1.地线的定义
什么是地线?大家在教科书上学的地线定义是:地线是作为电路电位基准点的等电位体。这个定义是不符合实际情况的。实际地线上的电位并不是恒定的。如果用仪表测量一下地线上各点之间的电位,会发现地线上各点的电位可能相差很大。正是这些电位差才造成了电路工作的异常。电路是一个等电位体的定义仅是人们对地线电位的期望。HENRY 给地线了一个更加符合实际的定义,他将地线定义为:信号流回源的低阻抗路径。这个定义中突出了地线中电流的流动。按照这个定义,很容易理解地线中电位差的产生原因。因为地线的阻抗总不会是零,当一个电流通过有限阻抗时,就会产生电压降。因此,我们应该将地线上的电位想象成象大海中的波浪一样,此起彼伏。

2.地线的阻抗

谈到地线的阻抗引起的地线上各点之间的电位差能够造成电路的误动作,许多人觉得不可思议:我们用欧姆表测量地线的电阻时,地线的电阻往往在毫欧姆级,电流流过这么小的电阻时怎么会产生这么大的电压降,导致电路工作的异常。要搞清这个问题,首先要区分开导线的电阻与阻抗两个不同的概念。电阻指的是在直流状态下导线对电流呈现的阻抗,而阻抗指的是交流状态下导线对电流的阻抗,这个阻抗主要是由导线的电感引起的。任何导线都有电感,当频率较高时,导线的阻抗远大于直流电阻,表1 给出的数据说明了这个问题。在实际电路中,造成电磁干扰的信号往往是脉冲信号,脉冲信号包含丰富的高频成分,因此会在地线上产生较大的电压。对于数字电路而言,电路的工作频率是很高的,因此地线阻抗对数字电路的影响是十分可观的。
表1 导线的阻抗(Ω):
频率
Hz D = 0.65
10cm 1m D = 0.27
10cm 1m D = 0.065
10cm 1m D = 0.04
10cm 1m 10 51.4m 517m 327m 3.28m 5.29m 52.9m 13.3m 133m 1k 429m 7.14m 632m 8.91m 5.34m 53.9m 14m 144m 100k 42.6m 712m 54m 828m 71.6m 1.0 90.3m 1.07 1M 426m 7.12 540m 8.28 714m 10 783m 10.6 5M 2.13 35.5 2.7 41.3 3.57 50 3.86 53 10M 4.26 71.2 5.4 82.8 7.14 100 7.7 106 50M 21.3 356 27 414 35.7 500 38.5 530 100M 42.6 54 71.4 77 150M 63.9 81 107 115
如果将10Hz时的阻抗近似认为是直流电阻,可以看出当频率达到10MHz 时,对于1米长导线,它的阻抗是直流电阻的1000 倍至10万倍。因此对于射频电流,当电流流过地线时,电压降是很大的。从表上还可以看出,增加导线的直径对于减小直流电阻是十分有效的,但对于减小交流阻抗的作用很有限。但在电磁兼容中,人们最关心的交流阻抗。为了减小交流阻抗,一个有效的办法是多根导线并联。当两根导线并联时,其总电感L为:
L = ( L1 + M ) / 2
式中,L1 是单根导线的电感,M是两根导线之间的互感。从式中可以看出,当两根导线相距较远时,它们之间的互感很小,总电感相当于单根导线电感的一半。因此我们可以通过多条接地线来减小接地阻抗。但要注意的是,多根导线之间的距离不能过近。


3.地线干扰机理

3.1地环路干扰

图1是两个接地的电路。由于地线阻抗的存在,当电流流过地线时,就会在地线上产生电压。当电流较大时,这个电压可以很大。例如附近有大功率用电器启动时,会在地线在中流过很强的电流。这个电流会在两个设备的连接电缆上产生电流。由于电路的不平衡性,每根导线上的电流不同,因此会产生差模电压,对电路造成影响。由于这种干扰是由电缆与地线构成的环路电流产生的,因此成为地环路干扰。地环路中的电流还可以由外界电磁场感应出来。

3.2公共阻抗干扰

当两个电路共用一段地线时,由于地线的阻抗,一个电路的地电位会受另一个电路工作电流的调制。这样一个电路中的信号会耦合进另一个电路,这种耦合称为公共阻抗耦合。
在数字电路中,由于信号的频率较高,地线往往呈现较大的阻抗。这时,如果存在不同的电路共用一段地线,就可能出现公共阻抗耦合的问题。图3 的例子说明了一种干扰现象。图3 是一个有四个门电路组成的简单电路。假设门1的输出电平由高变为低,这时电路中的寄生电容(有时门2 的输入端有滤波电容)会通过门1向地线放电,由于地线的阻抗,放电电流会在地线上产生尖峰电压,如果这时门3 的输出是低电平,则这个尖峰电压就会传到门3的输出端,门4的输入端,如果这个尖峰电压的幅度超过门4 的噪声门限,就会造成门4的误动作。

4.地线干扰对策

4.1地环路对策从地环路干扰的机理可知,只要减小地环路中的电流就能减小地环路干扰。如果能彻底消除地环路中的电流,则可以彻底解决地环路干扰的问题。因此我们提出以下几种解决地环路干扰的方案。
A. 将一端的设备浮地如果将一端电路浮地,就切断了地环路,因此可以消除地环路电流。但有两个问题需要注意,一个是出于安全的考虑,往往不允许电路浮地。这时可以考虑将设备通过一个电感接地。这样对于50Hz的交流电流设备接地阻抗很小,而对于频率较高的干扰信号,设备接地阻抗较大,减小了地环路电流。但这样做只能减小高频干扰的地环路干扰。另一个问题是,尽管设备浮地,但设备与地之间还是有寄生电容,这个电容在频率较高时会提供较低的阻抗,因此并不能有效地减小高频地环路电流。
B. 使用变压器实现设备之间的连接利用磁路将两个设备连接起来,可以切断地环路电流。但要注意,变压器初次级之间的寄生电容仍然能够为频率较高的地环路电流提供通路,因此变压器隔离的方法对高频地环路电流的抑制效果较差。提高变压器高频隔离效果的一个办法是在变压器的初次级之间设置屏蔽层。但一定要注意隔离变压器屏蔽层的接地端必须在接受电路一端。否则,不仅不能改善高频隔离效果,还可能使高频耦合更加严重。因此,变压器要安装在信号接收设备的一侧。经过良好屏蔽的变压器可以在1MHz以下的频率提供有效的隔离。
C. 使用光隔离器另一个切断地环路的方法是用光实现信号的传输。这可以说是解决地环路干扰问题的最理想方法。用光连接有两种方法,一种是光耦器件,另一种是用光纤连接。光耦的寄生电容一般为2pf,能够在很高的频率提供良好的隔离。光纤几乎没有寄生电容,但安装、维护、成本等方面都不如光耦器件。
D. 使用共模扼流圈在连接电缆上使用共模扼流圈相当于增加了地环路的阻抗,这样在一定的地线电压作用下,地环路电流会减小。但要注意控制共模扼流圈的寄生电容,否则对高频干扰的隔离效果很差。共模扼流圈的匝数越多,则寄生电容越大,高频隔离的效果越差。


4.2消除公共阻抗耦合

消除公共阻抗耦合的途径有两个,一个是减小公共地线部分的阻抗,这样公共地线上的电压也随之减小,从而控制公共阻抗耦合。另一个方法是通过适当的接地方式避免容易相互干扰的电路共用地线,一般要避免强电电路和弱电电路共用地线,数字电路和模拟电路共用地线。如前所述,减小地线阻抗的核心问题是减小地线的电感。这包括使用扁平导体做地线,用多条相距较远的并联导体作接地线。对于印刷线路板,在双层板上布地线网格能够有效地减小地线阻抗,在多层板中专门用一层做地线虽然具有很小的阻抗,但这会增加线路板的成本。通过适当接地方式避免公共阻抗的接地方法是并联单点接地,如图4 所示。并联接地的缺点是接地的导线过多。因此在实际中,没有必要所有电路都并联单点接地,对于相互干扰较少的电路,可以采用串联单点接地。例如,可以将电路按照强信号,弱信号,模拟信号,数字信号等分类,然后在同类电路内部用串联单点接地,不同类型的电路采用并联单点接地。

5.小结

地线造成电磁干扰的主要原因是地线存在阻抗,当电流流过地线时,会在地线上产生电压,这就是地线噪声。在这个电压的驱动下,会产生地线环路电流,形成地环路干扰。当两个电路共用一段地线时,会形成公共阻抗耦合。解决地环路干扰的方法有切断地环路,增加地环路的阻抗,使用平衡电路等。解决公共阻抗耦合的方法是减小公共地线部分的阻抗,或采用并联单点接地,彻底消除公共阻抗.



日志标题:合格的电子工程师需要掌握的知识和技能
发表时间:2007-1-9 14:11:00





愚以为,掌握了一下的硬件和软件知识,基本上就可以成为一个合格的电子工程师:
第一部分:硬件知识
一、 数字信号
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) 电解电容
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) 机箱
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种开发板上学到,至于第一部分,需要人来带吧。
为什么要掌握这些知识?
实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这
些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂、
成本越低、市场上对相应的东东的需求越大,就越成功。这就是电子工程师的自身
的价值。从成本到产品售出,之间的差价就是企业的追求。作为企业的老板,是在
市场上去寻找这样的应用;对电子工程师而言,是将老板提出的需求或者应用按照
一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大等)在最短的
时间内完成。最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有
关。这就是电子工程师的价值。
将电子产品抽象成一个硬件的模型,大约有以下组成:
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上加一个操作系统,程序既
可靠又容易编写。
最近三星的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系列的单片机比较容易受到干扰;没


有看门狗电路是不行的,当程序跑飞时,回不来了,死在那里。


常规的做法是买一个专门的看门狗电路,完成复位电路和看门狗电路的功能。
这些芯片的资料很容易在网络上找到,通常使用百度搜索就可以了;看见有PDF的


字样,就点击下载;使用网际快车flashget下载也是最好的;


这些资料通常是pdf格式的文件,所以,还需要一个pdf的阅读器。


百度网址:http://www.baidu.com


网际快车下载网址:http://www.skycn.com/soft/879.html


PDF阅读器下载网址:http://www.chinapdf.com/download.htm


实际上,有了百度和其它的搜索引擎,很方便下载到这些芯片的资料,比光盘还方


便,不需要去到处找。


单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境


,可以试试选用不同品牌的单片机;原来我在一个光电所,做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系列
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个反相门


下载地址:
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
H  H  L  H
L  H  L  L
X  L  L  Qo
X  X  H  Z


这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。
每个芯片的数据手册(datasheet)中都有真值表。
布尔逻辑比较简单,在此不赘述;


2. 高阻态


就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以


多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯


片烧毁;
高阻态的概念在RS232和RS422通讯中还可以用到。


3. 数据锁存


当输入的数据消失时,在芯片的输出端,数据仍然保持;
这个概念在并行数据扩展中经常使用到。


4. 数据缓冲


加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。


OE:output_enable,输出使能;
LE:latch_enable,数据锁存使能,latch是锁存的意思;
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译码器,现在更是少见了。
有兴趣的可以研究一下何立民的经典著作中的有关章节。
知道有这么一个芯片就可以了。


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公司


和***的东芝公司生产。


下载地址:
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 三极管


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时,即为饱和导通;


相差越大,饱和程度越深,Vce越小,三极管的输出内阻越小;


这个概念要用到光电管中。


设计使用时大概算算,心里有个数;在电路板上试试,行的通,那就是它了。可以


测量Vce值,至少要小于0.1V就可以了。


常用的PNP三极管是2N5551,驱动40mA的LED(电压在24V)、蜂鸣器等均没有问题



2.6.2 三极管的具体应用


实际上,已经有象7407、ULN2003可以取代三极管在数字电路中的作用;但是,有


时是受到PCB面积的制约,有时是为了降低成本,有时是因为布局方便,在1~2个输


出点时,还是可以使用三极管来做驱动的。


例如:驱动一个蜂鸣器;往往系统中的蜂鸣器跟其它驱动设备,继电器等,距离较


远;这时,没有必要使用一片7407,或者ULN2003来驱动;驱动的接口如下:



Re:从51初学者到电子工程师(转帖) 



2.7 光电管



我这里所谓的光电管有2种:


1) 反射型光电管
2) 对射型光电管


这2种产品在市场上又可分为调理好的和没有调理好的;


这2种光电管在电子产品世界和电子技术应用杂志上都有大量的广告。随便找一本


都有。


我所说的调理好的指的是内部已经加了限流电阻和输出的放大驱动电路了。它的特


点是只有3根线,电源2根,输出信号一根,TTL电平的;但是,有时受到某种限制


,需要使用没有调理好的,怎么办呢?


参见下图:光电管原理框图


这种没有调理好的光电管在使用时,需要做一块小的电路板,在发光管加限流电阻


,在光电三极管的集电极加上拉电阻到5V,如下图所示:光电管工作框图1。


但是,在使用中我发现,输出的信号不稳定,尤其是在使用比较长的电缆传输到单


片机的时候;究其原因,我认为是由于反射或者对射的红外光落在光电三极管的靶


面上,光强未能导致光电三极管深度饱和,使得输出的内阻偏大,环境的噪声和电


缆的干扰信号容易在线路上叠加的缘故;


为了可靠工作,仿照达林顿管的结构,在光电三极管的输出端加一个限流电阻接到


NPN的B结,当无光的时候,2N5551饱和导通,输出电压为0V;实际测量小于0.1V;


当有光,甚至是弱光时,2N5551截至,输出电压为5V。将3K电阻换成更大或更小的


电阻,可以调整光电三极管的输出的灵敏度。


具体工作过程可以自行分析,做个实验。



2.8 电容


2.8.1 电容的主要种类


电容有以下几大类:


1) 电解电容
2) 独石电容
3) 磁片电容
4) 胆(左金右旦)电解电容
5) 涤纶电容等


电容的指标是:耐压值和电容容量。例如:220u/50V,就是说,这个电解电容耐压


值为50V,容量为220u。


电容的容量跟电容的介质有关。


顾名思义:


电解电容为电解质作为介质的,铝作为电极;


独石电容是使用石头作为介质的;


磁片电容是磁片作为介质的;


胆(左金右旦)电解电容使用电解质作为介质,但是,电极采用胆(左金右旦)金


属。
涤纶电容采用涤纶作为介质。


有兴趣的网友可以拆一个电容看看。



2.8.2 电容的使用场合


1. 电源稳压和滤波


电解电容主要是用来稳压和低频交流滤波的;高频滤波是使用磁片电容和独石电容



当电解电容作为稳压时,接在整流桥和三端稳压器的输出端,起到稳定电压的作用


。其工作机理相当于一个水库,从上游来的带有波浪的水到了水库,就变的平滑了



但是,铝电解电容的电解质随着时间的推移会干涸,所以在设计时需要留有余量,


保证系统正常工作到它的寿命。


有些远端供电的直流电源,接到电路板的输入端时,需要在电路板的电源输入端加


一个大的电解电容,通常可以是220u/25V,这样,这块电路板需要供电时,不是直


接从电源处取,而是从电容中取电,可以得到稳定的电流供给;


但是,电解电容只能滤除低频的波动;对于直流电源中的高频波动,可以加一个


0.1u或0.01u的独石电容或者磁片电容。


很多教科书都指出,在每一个芯片的电源和地两端接一个0.1u或0.01u的独石电容


或者瓷片电容,解决芯片的供电过程中,由于电路板的走线电感产生的电源开关噪


声尖峰。这种作用下的电容叫去耦电容。这是电路板的常规的设计;


2. 定时参数


对于象555这样需要外接电容产生稳定的脉冲的器件,涤纶电容是首选。可以想象


,涤纶一层又一层缠绕,受到温度变化引起的涤纶的面积的变化的相对值要远远小


于独石电容的介质石头受到温度变化而引起的变化值。


3. 产生其它电压


有些需要从单一电压产生其它的电压的芯片,如:max232,需要外接电容才能实现



参见max232技术资料。
外接01.u的胆电容。


2.8.3 电容的封装


电容有直插和表面贴的不同封装。


电解电容表面贴封装的通常耐压值不超出25V,电容值不超出100u。再大,就只好


使用直插的了。其它的电容,磁片和独石都有表面贴封装的。



2.9 电阻和电位器


2.9.1电阻的种类


2.9.1.1 普通电阻



电阻种类按照工艺可以分为碳膜电阻和金属膜电阻;


按照功率可以分为小功率电阻和大功率电阻,大功率电阻通常是金属电阻,实际上


应该是在金属外面加一个金属(铝材料)散热器,所以可以有10W以上的功率;在


电子配套市场上专门卖电阻的市场上可以很容易地看到。


金属电阻通常是作为负载,或者作为小设备的室外加热器,如,在CCTV的一些解码


器箱和全天候防护罩中可以看到。


电阻在电路中起到限流、分压等作为。通常1/8W电阻已经完全可以满足使用。但是


,在作为7段LED中,要考虑到LED的压降和供电电压之差,再考虑LED的最大电流,


通常是20mA(超高亮度的LED),如果是2×6(2排6个串联),则电流是40mA。


不同厂家选用不同材料的,压降有所不同。所以,需要加上电试一下,但是,不要


让Led的电流超出20mA(单只LED),这时加大电流亮度也不会增加,但是LED的寿


命会下降,限流电阻的大小就是压降除以电流。电阻的功率随之可以算出。


这个使用初中的知识就够用了。


2.9.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;


电位器又分单圈和多圈电位器。


单圈的电位器通常为灰白色,面上有一个十字可调的旋纽,出厂前放在一个固定的


位置上,不在2头;


多圈电位器通常为蓝色,调节的旋纽为一字,一字小改锥可调;


多圈电位器又分成顶调和侧调2种,主要是电路板调试起来方便。
有些是仪器仪表设备,通常是模拟电路,有一些不确定的因素,需要调节才能达到


最理想的效果;有些是设备本身就需要输出一个可变的东东,如电压和电流,也需


要一个电位器。


2.9.1.3 排电阻


是sip n的封装,比较常用的就是阻值502和103的9脚的电阻排;象sip9就是8个电


阻封装在一起,8个电阻有一端连在一起,就是公共端,在排电阻上用一个小白点


表示。排电阻通常为黑色,也有黄色;51系统的P0需要一个排电阻上拉,否则,作


为输入的时候,不能正常读入数据;作为输出的时候,接7407是可以的,不需要上


拉电阻;但是,接其它的芯片,还是不行。有兴趣可以看看51的P0的结构;没有兴


趣,依葫芦画瓢,照做没错。


2.9.1.4 光敏电阻


当照在光敏电阻上的光强变化时,电阻值也在变化。显然这是半导体材料的特性。
使用光敏电阻可以检测光强的变化。


思考题1:


有一个LED显示设备,要求,当光强变化的时候,LED的亮度随着光强变化;光线越


强,LED越亮;反之亦然。怎么使用单片机实现此项功能?可以是多级调光,如8级


调光;也可以做成无级调光。


2.9.2 电阻的封装


电阻的封装有表面贴和轴向的封装。


轴向封装有:axial0.4、axial0.6、axial0.8等等;axial在英语中就是轴的意思



表面贴电阻的封装最常用的就是0805;当然还有更大的;但是更大的电阻我想就不


是很常用了。


电位器的封装在protel的书种可以很方便地找到。但是如果直接使用,可能会有一


些偏差。老树早期就犯过这种错误,导致电位器旁边的器件安装费劲。


搞硬件和软件是有所不同的,搞硬件的人,一定要精确。


在硬件上的一个小的错误,都会造成这块板的推倒重来;因为产品是不能有飞线的


;而这个小小的错误相当于软件上的一条语句,在软件调试阶段悄悄改掉,可以神


不知鬼不觉;在PCB上,特别恶心。而且谁都知道-老板最知道。


什么是精确呢?


1. 对你所要实现的工作的目标理解准确;


2. 对你的电路图要清楚每一个器件在其中所起的作用;如果不明白,可以找一个


专家问问,得到确认;如果不清楚,可以先试试;


3. 对每一个器件的封装要严格把握,该是什么形状、外形一定要完全一致;还有


考虑到空间是不是对其它的板卡器件有影响;对边缘连接器件与电路板的边缘之间


的距离、ISA和PCI的边缘连接件与挡板之间的关系要完全把握才能去做电路板;否


则只是浪费金钱和时间;


对边缘器件与边缘之间的距离要是不能有把握的话,可以找3个人,每个人都计算


一遍,取个平均值,基本上就差不多了。


4. 对单片机的资源能不能作成这件事情一定要有把握,CPU运算速度和字长、内


存够不够大、程序存储器够不够大,需要仔细的规划;


5. 原理图经过专家认可无误后,画出来的PCB需要做网络检查,做到与原理图完


全一致;



2.10 继电器、固态继电器


2.10.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


双刀双掷/DPDT


四刀双掷等/?


还要根据触点容量来分。


一般的都是DC30V/1A或者DC30V/2A,AC110V/0.2A,再大,就不能使用继电器了,


因为在触点切换,电流通过的瞬间,会产生拉弧,烧毁触点,使得切换不可靠;这


是,可以使用固态继电器。


实际上,在PCB上的继电器的任务就是给出一个干接点信号,作为控制信号使用,


传递的是一个信号,而不是能量。或者控制一个大功率的开关等,让大功率的开关


去控制功率的传递;但是,后者也不如固态继电器来得方便。


继电器的封装通常是DIP16或者以上;也有更小的继电器,但是,价钱跟DIP16的差


不多。


注意:DIP16的继电器只有8个管脚;所以设计封装时,不要图省事直接使用DIP16


,这样容易在焊接的时候焊反了,导致出错。要专门设计继电器的封装,该有几个


脚就使用几个脚。



2.10.2 固态继电器


固态继电器,说白了,就是使用发光管触发的过零触发的可控硅。
可以说,跟光耦很相似,也是4个管脚,只是区别在:


4) 直接使用直流电压控制;可以认为内部已经有了一个限流电阻;
5) 接收光信号的一端是过零触发的可控硅;


可以说是一个电子开关,无触点的继电器。


因为无触点,所以可以通过大电流而不产生拉弧,工作寿命与开关次数无关。


触点作为信号使用的继电器的时间的工作寿命是100万次到300万次,可以查看技术


手册;


固态继电器可以认为是无限次的,所以在大电流和频繁开关的场合,使用固态继电


器。


固态继电器触点通过的信号通常是交流电压,但是也有直流电压的。


固态继电器可以通过AC220V或者AC380V以下的交流电;它的2个指标:


1) 工作电压,通常为DC5V和DC12V,也有DC24V的;
2) 工作电流:AC220V/1A/2A/4A不等。


国产的固态继电器质量不错,跟进口的没有区别,就是封装的质量太差,一批买回


来,个个都不一样,焊在电路板上东倒西歪,不美观;至于小功率的国产的继电器


市场上比较少见,有也不敢使。


进口的固态继电器有美国的和***的,4A以上的比较贵,***的OMRON的固态继电


器2A的才卖8元,侃侃价估计还能便宜,体积小,封装绝对的准确,可以很整齐地


在电路板上排列,不占地方;


2.12 线性电源:变压器、整流桥与三端稳压器


什么是线性电源?为什么叫线性?老树查了网络上的资料,也没有答案,只好等待


高明教我。


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的变压器。


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%左右),需要


加体积庞大的散热片,而且还需要同样也是大体积的工频变压器,当要制作多组电


压输出时变压器会更庞大。开关电源的调整管工作在饱和和截至状态,因而发热量


小,效率高(75%以上)而且省掉了大体积的变压器。但开关电源输出的直流上面


会叠加较大的纹波(50mV at 5V output typical),在输出端并接稳压二极管可


以改善,另外由于开关管工作是会产生很大的尖峰脉冲干扰,也需要在电路中串连


磁珠加以改善。相对而言线性电源就没有以上缺陷,它的纹波可以做的很小(5mV


以下)。对于电源效率和安装体积有要求的地方用开关电源为佳,对于电磁干扰和


电源纯净性有要求的地方(例如电容漏电检测)多选用线性电源。另外当电路中需


要作隔离的时候现在多数用DC-DC来做对隔离部分供电(DC-DC从其工作原理上来


说就是开关电源)。还有,开关电源中用到的高频变压器可能绕制起来比较麻烦。


2.14  开关电源芯片


相对于线性稳压器来说,开关电源在计算机主板上、工控机主板和各种各样的电路


板上起着电压变换的作用。例如:将低电压,比如:电池转换成稳定的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  
Switchmode DC-DC Power Supplies 408  
Isolated Power Supplies 22  
Low-Dropout Linear Regulators 75  
White LED Drivers 13  
Low-Side MOSFET Drivers 14  
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 Power Switching  
ALSO SEE: Voltage References  


我们经常使用到的是Switchmode DC-DC Power Supplies ,这里有分成n种。老树


比较熟悉的是step-down电源芯片,也就是所谓的从高电压下降到低的电压的芯片


;从低到高,当然是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元,质量还是不错的。



2.15 器件选购、芯片批号、封装知识等


在市场上买芯片,千万注意不要买到旧片、拆机片;旧片、拆机片有些凑合能用,


有些干脆不行;即使现在能用,寿命肯定有限;


旧的就是旧的,肯定瞒不过有心人;主要是从芯片的管脚的崭新程度、芯片印刷的


质量等仔细观察。


旧的芯片往往管脚参差不齐、搪锡发乌、包装的管子不够新;而且往往是芯片的表


面发白,那是因为被打磨过了,然后重新丝网印刷上厂家名称、批号等;


所以最好是买激光打标的器件,激光打标的产品肯定是新货,或者没有使用过的货


;而且买的时候需要注意,器件的批号最好是最近当年的或者是最近几个星期的产


品;总而言之,别花冤枉钱,还影响产品的质量。


同样的产品,不同厂家的质量也不一样。我比较喜欢的是美国TI、摩托罗拉MC、


MAXIM、LINEAR的产品;假的也少;


例如,max7219芯片上有一下标志:
MAXIM
MAX7219CNG
0323PY


MAXIM就是芯片的厂家;
MAX7219CNG是厂家的型号,CNG跟封装和7219这个系列产品的细微的差别有关;
03是指2003年;23是指该年的第23周;一年是52周,所以这个数字不会超出52;


激光打标是在芯片上形成一个暗色的与芯片表面有一个明显对比的标志;中关村的


大恒公司就有激光打标机的业务;但是未必是在芯片上打标;


有时,激光打标会产生类似暗黄色的标志,这跟激光器功率和芯片封装材料有关


从初学者到电子工程师 第三课 合格电子工程师是怎样炼成的?


不好意思,第二课没有写完,又开一课--老树当过老师,有毁人不倦的习惯,再者


,这个问题想了很久了,也基本想通了。


在网络上很多初学者在问:怎样成为一个合格的电子工程师?


这个问题有很多答案。老树谈谈自己的看法。


第一步 入门-51核心和基本电路


中国人有10亿啊,每年有多少大学生毕业呢?我不知道。但是我看到有一张照片,


招聘会上熙熙攘攘,人来人往,十分震撼。从来没有一个时刻让我感觉到中国的人


力资源是如此的丰富。但是,从现在的大学毕业出来的学生学到了什么东西呢?一


些理论,跟实际脱钩的理论。有没有用呢?有点用。但是,在企业中,需要的是实


际干点事情出来,实际解决问题。所以说,很多企业不想要大学本科出来的大学生


,说动手,没有动手能力,不知道电阻电容长得什么样子,能够做什么?但是又自


视甚高,对工资的期望值比较高。等到能够干点事情了,又拍拍屁股跑了。所以企


业现在喜欢使用大专中专甚至是职业学校培训出来的小孩,至少这些孩子们知道自


己的份量,能够实实在在地做事。要知道,他们很多人的天赋并不差,有些人甚至


可以说聪明,只是因为很多人是家庭条件不好,打小就是苦孩子,没有条件接受良


好的教育。一旦给机会,他们都比较珍惜。


现在的大学,误人子弟甚多。扩招是没有错,但是,实验室扩了吗?教室扩了吗?


教师扩了吗?至少实验室是没有扩。老树认得的一个研究生说,只有到了一个阶段


,才能到实验室作实验。很多导师就是把学生当奴隶一样干活,要是在干活中能够


学到东西那就算是运气好的;运气不好的,直接就是导师的廉价的劳力了,学不到


东西,活倒干了不少。


但是,既然学生要拿文凭,要应付考试,没有办法,那怎么自救?


如果励志要做一名出色的电子工程师,老树可以谈谈自己的看法。


做一个电子工程师,先从51学起,这是得到公认的。不需老树饶舌。


首先,去买一个开发板,越便宜的越好,在上面可以练练keil C。最好再买一个仿


真器,这样调试的效率高。当然这个不便宜,但是我觉得可以志同道合的哥几个合


买。反正1天24小时,每人8个小时轮流上,有个几个月,C51语言也就差不多了。


其次,看看老树的文章,看看需要学点什么基本的东西。北京的大学生有福啊,没


事到中发去转转,认认老树的文章上说得哪些电阻、电容、三极管、芯片、接插件


什么的,看看自己的电脑上的主板、网卡、声卡、显卡是怎么画的,找找感觉,这


些板卡都是高手的杰作啊。


构思一个小的产品,按照老树文章上的思考题,找本protel99se的书,从每个菜单


练起,循序渐进,从单片机最小系统->输入->LED->RS232/RS422/RS485->固态继电


器、继电器等原理图画起,边画边学,一点一点做,做好了,最好找个高手看看,


找出毛病在哪里,再反复改进。在这样的模拟实战中找到感觉。


推荐老虎工作室的protel 99系列4本,写的还是循序渐进的,当然不便宜;咬咬牙


,可以合买一套,轮着看。


顺便说一句我对市场上的开发板的看法,这些开发板当然都不错,但是,只能学到


语言,不能教你画原理图和PCB,实际做的时候,还是需要高手带一带是最快的。


我就是一个朋友教我的,也就半天的功夫,就会了。当时还是DOS下的protel 3.16


版本。


以战养战。找个公司、企业,帮他们做个小产品,既能得到公司的高手的指点,又


能赚到一笔费用,岂不甚佳?这时,你的开发板、仿真器的费用就出来了。从原理


图->PCB->C51,单片机也入门了。


第二步:登堂入室-掌握系统的电路知识


这时,需要对电子技术的所有东东进行全面的了解,主要是看看杂志、BBS、网站


上的技术文章、何立民先生主持编著的《单片机应用技术大全》系列,将单片机和


它的配套的电路,输入输出、通讯等等做一个全面的了解。目标是为什么?系统的


技术储备。知道什么问题可以使用什么方法解决,可能在什么地方找到解决的方法


,这对你以后走上工作岗位,解决实际问题是非常有好处的。如果你真能这么做,


那么,你今后肯定比单位中的老同志还要棒。


老树在国营研究所的时候,曾经有一段时间无所事事,就是在那一两年的时间内将


研究所的技术杂志看了一遍,尤其是《电子技术应用》。打下了一个良好的基础。


这时,争取机会,学习高手们的硬件设计。一个比较快的办法就是到工控机的厂家


那里,看看工控机的板卡和调理板是怎样设计的,都使用了哪些东西。记得老树第


一次看到国外的一个器件,到处去问,也不知道是什么东东。后来在四通工控那里


看到了,原来是固态继电器。这时,脑子里关于固态继电器的知识都冒出来了。再


一看,配套市场大把的。


什么东西就是这样,你要是不知道它是干什么的,你天天看见,也熟视无睹。


有心人就是这样,在什么样的情况下,都能慢慢积蓄知识和力量。毕竟一个产品,


不是只会单片机就可以了,还是需要很多的外围电路,按照何老师的分类,前向、


后向、人机、互相通道等,才能做成一件产品的。


这个时候,抓住任何机会,去参与一个大型产品开发,在其中做一件事情,你可以


学到沟通、协作、界面等产品开发的一些要素。


第三步:勤奋至卓越


中国人多啊,每个人都是智商100,谁比谁傻啊。凭什么你比别人强?你能有好的


工作、好的收入,你能香车宝马,醇酒美人?老树认为,没有别的办法,就是靠勤


奋。


勤奋学习-这个道理大家知道,知识就是金钱啊;


勤奋工作-想比别人多赚钱,在智商相同的情况下,就是靠多付出时间干活,再提


高工作效率。别人5×8小时工作,你是7×16小时,再提高工作效率一倍,你不久


赚了比别人多5倍的钱吗?老树公司有2个员工,原来在老家种苹果,没有赚到钱,


到老树的公司中干活,计件,活忙的时候,早晨8:00起来,晚上12:00收工,年


底也赚了一笔钱回家,高高兴兴,老树也开心,原来一屋子人干的活,现在2个人


干了,公司管理省事了,员工也赚到了钱。


开发也是一样。当然,这个需要你的公司有这个机制,多劳多得的机制。但是,要


是现在没有,你要不要这样干呢?


我认为,需要。一方面,干别人的活,练自己的技术,长自己的本事。另一方面,


多干活,才能快速增长本事,技术才能跃变、突破,登堂入室,再得心应手、出神


入化。至少,熟练工种是没有问题的吧。


就象一壶水,老是小火,烧了半天,也是温吞水;可是大火一上,一会就开了,就


是这个意思。


你看《射雕英雄转》中的郭靖,没有别的本事,就是傻练,有一天开窍了,如有神


助。技术这个东西就是这样,突破了门槛,就是坦途。需要勤奋勤奋再勤奋。有一


天这个日子来了,你就苦尽甘来了。


勤奋还有另外一个含意,就是天道酬勤。其实是每个人看见勤奋的人,都会给他机


会的,觉得帮助这样的人,高兴;把事情放在他的手里,也放心。


还有一个含意是触类旁通。知识需要很多的参照物,去比较、联想、萃取、升华。


换句话,你可能付出的是其他人的n倍的努力,可是你得到的是n倍以上的回报,你


的知识已经不是简单的累加了,已经质变了。


如果你在这个单位,勤奋了,也出成果了,就是没有得到公平的待遇,也没有关系


。换一个环境就是了,总有人会欣赏你的。再说了,付出总有回报。


有些人习惯怨天尤人,没有好的老爸老妈,没有好的老师,没有好的同伴,没有好


的环境,没有好的老板。这些人需要去看看周立功的文章,看看周老师怎样一步步


成长的。


第四步:沟通、协作


原来还有,现在越来越少,做一个小的产品,就可以生活无忧。



第五步:对某个行业深入理解


每个人生存在这个世界上,大都需要有一门独到的技术;更何况你是这个论坛的读


者;


有的人天生千娇百媚,有的人天生金嗓子,有的人有个好的老爸老妈;这些都不足


为恃,更何况没有这些天赋呢?


当你掌握了单片机、ARM、CPLD/FPGA等高端的技术,应该说,养身立命是没有问题


了,可以解决人生的基本问题了;但是,还想更上一步,就需要对某个行业进入深


入的理解和挖掘。


我认识的靠技术过上宝马豪宅生活的工程师,并不是在技术上一开始就有什么过人


之处,也不是说他的产品一开始就会比别人好很多,而是都是特别有韧性的人,都


在捕捉某个行业的机会,在某个行业内精耕细作,坚持不懈,别人都干其它的去了


,只有他还在这个行业中慢慢来,过上5年或者更多的时间,慢慢得到业内人士的


认可,产品不断改进,慢慢打开了销路,最后站住脚,机会来了,一下发达了。我


的一个朋友,就是这样修炼成了正果。


有个笑话,说:刚刚离开的行业,发展最快。说得就是这个道理。


中国大啊,市场大啊,只要认真耕耘,就会有收获。


所以,在目前的中国,技术人员还是有机会的,再过10年,可能就一点机会都没有


了。


需要去从事多个行业吗?就个体而言,不需要。那个行业都有金子。


就公司而言,需要吗?那要看你的公司有没有这方面的人才;还需要看有没有这个


方面的机制。否则,盲目的进行多个行业的扩展,没有必要。需要做的是至少在某


个行业做到前三名。


你看,原来的LOTUS的notes,卖给了IBM,原来只卖出去300万份,到了IBM,就卖


到了1000万份(大概吧)。产品就是这样,占领市场的同时,利润就有了,规模效


益就有了。一个公司的产品不需要太多,但是要卖的多,才是正路。想想看,同样


是产值100万,一个产品和10个产品的差别那就大了,研发、服务、维修,差的多


呢。


象吉列,就是那么个小刀片,作成这么大的企业,多么舒服。


象GE,每个行业都是业内的翘楚,那是资本主义社会200年的技术积累。在中国,


需要做的是每一个小的公司都是某个产品最突出的。从小的产品做起,做到国内最


好、亚洲最好、世界最好。就行了。中国就强大了。


到那个时候,才有可能出现象GE这样的大公司。才有形成这样的大公司的技术基础



日志标题:嵌入式常用IC芯片索引
发表时间:2007-1-10 8:08:00
《嵌入式常用IC芯片索引》2006-12-30 20:44×     【目录】
×   1.电源变换IC芯片
×   2.数字式传感器,电位器及精密运放芯片
×   3.电机控制及驱动芯片
×   4.数字通信IC芯片及接口
×   5.AD转换芯片
×   6.DA转换芯片
×     【说明】
×    1.“...”表示未完成待补充,因为采用增量模型,所以没有结束的一天。:-)
×    2.全部一个一个敲的,注意版权,引用时注明出处,呵呵 ×
××××××××××××××××××××××××××××××××××××××××
1.电源变换IC芯片
——————————————————————————————
指标:
1.输出电压范围(正/负)
2.输入电压范围
3.输入输出电阻及电流(直流交流)
4.纹波抑制比
5.温漂
6.
7.
...
————————————————————————————————————
7800     三端,固定正电压输出稳压器(块)芯片
7900     三端,固定负电压输出稳压器(块)芯片
AD580    三端,精密电压基准芯片
ADR290/291/292/293  高精度,新型XFET 3端基准电源芯片
D14,D24  DC-DC隔离电源模块
HV-2405E  50mA,5~24V,AC/DC电源IC芯片
HQA-2405E AC/DC电源变换器模块
IMP706  低功耗,uP电源监控IC芯片
LM117/217/317 3端,可调正电压输出稳压芯片
LM137/237/337 3端,可调负电压输出稳压(块)芯片
LM138/238/338 3端,大电流,可调正电压输出稳压(块)芯片
LM150/250/350 3端,大电流,可调正电压输出稳压(块)芯片
LM2930 汽车用3端稳压器芯片
LT108X/SP116XX 3端,低电压,输出可调稳压器芯片
M5236L/37L 灵活方便,低电压差,3端稳压驱动芯片
MAX610  无变压器式,AC/DC电源变换器IC芯片
MAX619  输入2V,输出5V,充电泵DC/DC变换器IC芯片
MAX629  DC/DC转换芯片
MAX638  过低电压检测报警,降压开关型,DC/DC电源变换器IC芯片
MAX639  过低电压检测报警,降压开关型,DC/DC电源变换器IC芯片
MAX682-685  低电压差,微功耗稳压器芯片
MAX706  电压监控芯片
MAX813L  看门狗,电压监控芯片
MAX889   2MHZ稳压型电荷泵,负电压输出,DC/DC变换器芯片
MAX1606  输入5V,输出28V,LCD偏置电源DC/DC芯片
MAX1642/1643  输入电压仅为1V的DC/DC变换器芯片
MAX1692    1.8V,降压型,微型开关,DC/DC芯片
MAX1725/1726  更低功耗,低压差,线性稳压器芯片
MAX1742/1842  内含1A开关,1MHz,降压型DC/DC芯片
MAX1744/1745  36V输入,10W输出,降压型转换器芯片
MAX1730/1759  稳压型,电荷泵,DC/DC芯片
MAX1775    双路,降压型,2A以上,DC/DC芯片
MAX1832/1833/1834/1835   电池反接保护,升压型DC/DC转换器芯片
MAX1864/1865  降压型,DC/DC,5路输出线缆MODEM电源芯片
MAX5130+PIC   精确可编程,8000基准电压值,DC/DC发生器芯片
MAX6125   微封装,微功耗,微漂移,DC/DC芯片
MAX6129   功耗更低,串联型,3端,电压基准芯片
MAX6333   监视电压可低至1.6V的新型单片复位IC芯片
MAX6821-6825   手动复位,“看门狗”定时器,低功耗,UP监控电路芯片
MAX828/829     充电泵,反压型,DC/DC芯片
MAX8880/8881   带有电源好2(POWDWR-OK)输出的DC/DC芯片
MAX8883    双路,低压差,线性稳压器芯片
MC1403    8脚精密电压基准芯片
MIC2141   微功耗,升压型,V0可控,DC/DC变换器芯片
PS0500-5  500mA,超小型,AC/DC电源变换芯片
TOP1xx-2xx  无变压器,5W以上,AC/DC变换式精密开关电源IC芯片
TL499AC     可调线型串联稳压器和升压型开关稳压器(合成稳压器)芯片
TPS7350   5V固定输出,掉电延时复位,低压差稳压器芯片
W431    3端,可调式电压基准芯片
YA-S     AC/DC电源变换器模块
2.数字式传感器,电位器及精密运放芯片
————————————————————————————————————————————
2.1 运放指标:
1.增益大小,是否增益可编程,
2.温漂,低功耗,高精度
3.放大器类型:Rail-Rail放大器,仪表放大器,功率放大器
4.工作频率,增益带宽积,共模抑制比
5.
6.
7.
...
——————————————————————————————————————————————
2.2 数字温度传感器指标:
1.测温范围
2.测温误差
3.转换时间
4.通信方式:并口,IIC,一(二,三)线
5.温度制表达方式:字节数据,脉宽
6.编程告警温度
7.辅助功能:带实时时钟?微处理器核?
8.
9.
...
——————————————————————————————————————————————
AD526  增益可编程运算放大器芯片
AD620  低功耗,高精密度仪器用运放芯片
AD623  单电源Rail-Rail仪表运放芯片
AD625  增益可编程运算放大器芯片
AD626  单电源差分运算放大器芯片
AD7416  带IIC接口,10位低功耗数字温度传感器芯片
AD8571/8572/8574  0温漂,单电源,运算放大器芯片
AD8591/8592/8594  带节能控制端的CMOS,单电源工作,满电源输入输出,运算放大器芯片
DS1620   数字式温度传感器IC芯片
DS1621  数字式温度传感器IC芯片及恒温控制器IC芯片
DS1625  数字温度计和控温器芯片
DS1629  2线接口,带有实时时钟的温度传感器芯片
DS1820  数字式温度传感器IC芯片
ITT2301AF 射频功率放大器芯片
LM76    带数字温度传感器,IIC总线接口,12位信号输出,测温芯片
LM92    数字式温度传感器芯片
MAX54xx 体积更小,256级,数字电位器芯片
MAX4265~4270  超低失真,单+5V,300MHz,运算放大器芯片
MAX4430/4431/4432/4433  高速(280MHz),高精度,宽频带,单/双运算放大器芯片
MAX6627/6628   兼容SPI接口的远端结温检测器芯片
MAX6629/6630/6631/6632  微型SOT封装,+-1摄氏度精度的数字温度传感器芯片
MAX6657/6658/6659    +-1摄氏度的本地和远端结温检测器芯片
OP193/293/493  精密,微功耗,运算放大器芯片
OP177   超精密运算放大器芯片
OP777   精密,微功耗,单电源,运算放大器芯片
MIC91x  高速(100~350MHz)运算放大器芯片
X9241   IIC接口,数字电位器(EEPOT)IC芯片
X9312   数字电位器IC芯片
X9313   数控电位器芯片
X9511   PushPOT按钮控制电位器芯片
3.电机控制及驱动芯片
87C196MC  电机控制专用微处理器芯片
CIPH9803  可编程步进电机控制IC芯片
FR-Z240-7.5K  变频调速器芯片
HEF4752V  PWM大规模集成电路芯片
IR2110    高压浮动MOSFET,栅极步进电机驱动器IC芯片
LM628     直流电机运动控制芯片
LM1542    无刷直流电机控制器芯片
LMD18200  H桥组件电机驱动芯片
MA818     3相PWM,变频调速专用控制器芯片
MAX1749   微型直流电机驱动控制芯片
MC33033   带温度补偿的直流电机控制器芯片
ML4428    无传感器PWM,无刷直流电机控制器芯片
MOC30xx   双向晶闸管电机控制驱动器(双向光电耦合器)IC芯片
MTE1122   智能型电机驱动运放芯片
PA03      大功率(1000w)运放电机驱动芯片
PA21/25/26  双功率电机驱动运放芯片
PA61     大功率运放电机驱动芯片
PA85    高压,高速,大功率,运放驱动芯片
PBL3772/PBM3960   高性能步进电机驱动IC芯片组
PH2083   多模式步进电机控制器IC芯片
PMM8713  步进电机专用控制芯片
SA06     脉宽调制运放,电机驱动芯片
SA60     脉宽调制型功放芯片
SA866    可编程,全数字化,3相PWM,变频调速控制器IC芯片
ST6210   通用电机驱动电路(MCU)IC芯片
TDA1085C  通用电机速度控制器芯片
UCx637XC9536  PWM型直流电机驱动芯片
XC9536  步进电机CPLD控制芯片 4.数字通信IC芯片及接口—————————————————————————————
—————————
数据通信IC芯片指标:
1.支持的协议类型:无线/有线,蓝牙,FSK,RS232,RS485,RS422,EIA/TIA-232
2,全双工/半双工
3.工作频率,是否ESD保护
4.是否为编解码芯片
5.
6.
7.
...
——————————————————————————————————————
5G16C550
ACM1330E/1550D
ACMTX16/ACMRX18
ADM101E
AM7910
Core 01
DS14C232C/232T
DS26F31
DS26C32
DS3695/3696/3697/3698
DS8921
DS8922
DS9637
DS9638
DS14185
DS75176
DS96172/96174
DS96173/96175
HT9200A
ICL232
KX50xx
LM1893
LMx3162
M303S/303R
M-8888
MAX48x/49x
MAX202
MAX202E/211E/213E/232E/241E
MAX214
MAX220/232/232A
MAX250/251
MAX1480A/1480B
MAX3080E-3089E
MAX3082
MAX3100
MAX3140
MAX3222/3232
MAX3224~3227
MAX3238E/3248E
...————————————————————————————————————————
AD/DA芯片指标:
1.几位,几通道
2.低/高速
3.接入方式:并行/串行/IIC
4.是/否内含参考电压源,自校准,片内运放
5.是/否带微处理核
6.辅助功能:温度传感,时钟发生
7.工作频率
8.
9.
10.
...
————————————————————————————————————————
5.AD转换芯片
...6.DA转换芯片


 


日志标题:电容滤波电路
发表时间:2007-1-11 14:43:00

 电容滤波电路<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


滤波原理


u2为正半周并且数值大于电容两端电压uC时,二极管D1D3管导通,D2D4管截止,电流一路流经负载电阻RL,另一路对电容C充电。当uC>u2,导致D1D3管反向偏置而截止,电容通过负载电阻RL放电,uC按指数规律缓慢下降。



点击看大图

u2为负半周幅值变化到恰好大于uC时,D2D4因加正向电压变为导通状态,u2再次对C充电,uC上升到u2的峰值后又开始下降;下降到一定数值时D2D4变为截止,CRL放电,uC按指数规律下降;放电到一定数值时D1D3变为导通,重复上述过程。


RLC对充放电的影响:


电容充电时间常数为rDC,充电速度快;RLC为放电时间常数,放电速度慢。电容C愈大,负载电阻RL愈大,滤波后输出电压愈平滑,并且其平均值愈大。

  ★输出电压平均值


当负载开路,即image002.gif时,image004.gif


RLC=(3~5)T/2时,可取得较好的滤波效果,image006.gif


考虑电网电压波动范围为±10,电容的耐压值应大于image008.gif

  ★脉动系数


image010.gif


整流二极管的导通角


在未加滤波电容之前,整流电路中的二极管导通角θ为π。


加滤波电容后,只有当电容充电时,二极管才导通,因此,每只二极管的导通角均小于π。


RLC的值愈大,滤波效果愈好,导通角θ将愈小。整流二极管承的冲击电流大。


电容滤波电路的输出特性和滤波特性


输出特性:当滤波电容C选定后,输出电压平均值UO(AV)和输出电流平均值IO(AV)的关系称为输出特性。


滤波特性:脉动系数S和输出电流平均值IO(AV)的关系称为滤波特性。如下图所示,曲线表明,C愈大电路带负载能力愈强,滤波效果愈好;IO(AV)愈大(即负载电阻RL愈小),UO(AV)愈低,S的值愈大




点击看大图

小结:电容滤波电路简单,输出电压平均值高,适用于负载电流较小且其变化也较小的场合。


倍压整流电路


倍压整流电路:利用滤波电容的存储作用,由多个电容和二极管可以获得几倍于变压器副边电压的输出电压,称为压整流电路。


利用压整流电路可实现二倍压和多倍压。



936.gif

其它形式的滤波电路


电感滤波电路


电感滤波后,不但负载电流及电压的脉动减小,波形变得平滑,而且整流二极管的导通角增大。L愈大,滤波效果愈好。另外,由于滤波电感电动势的作用,可以使二极管的导通角接近π,减小了二极管的冲击电流,平滑了流过二极管的电流,从而延长了整流二极管的寿命。



938.gif

复式滤波电路


当单独使用电容或电感进行滤波时,效果仍不理想时,可采用复式滤波电路。


点击看大图

各种滤波电路的比较


各种滤波电路性能的比较



类型


性能


电容滤波


电感滤波


LC滤波


RCLCπ型滤波


UL(AV)/U2


1.2


0.9


0.9


1.2


θ






适用场合


小电流负载


大电流负载


适应性较强


小电流负载


点击看大图

copyright@2003 广州民航职业技术学院通讯工程系


日志标题:无题
发表时间:2007-1-11 15:49:00

 -_--------___

_______________|


日志标题:今天学习不努力,明天吃饭是问题!
发表时间:2007-1-12 8:13:00
今天学习不努力,明天吃饭是问题!face3.gif


日志标题:crc教研
发表时间:2007-1-12 11:17:00

循环冗余码校验英文名称为Cyclical   Redundancy   Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error   Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。  
  根据应用环境与习惯的不同,CRC又可分为以下几种标准:  
    ①CRC-12码;  
    ②CRC-16码;  
    ③CRC-CCITT码;  
    ④CRC-32码。  
    CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT码则用是来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。CRC-32码大都被采用在一种称为Point-to-Point的同步传输中。  
  下面以最常用的CRC-16为例来说明其生成过程。  
    CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。  
  Top


2 楼softwarrior(小明)回复于 2003-09-15 16:41:56 得分 0


下面为CRC的计算过程:  
    1.设置CRC寄存器,并给其赋值FFFF(hex)。  
    2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。  
    3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。  
    4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。  
    5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。  
    6.重复第2至第5步直到所有数据全部处理完成。  
    7.最终CRC寄存器的内容即为CRC值。  
  Top


3 楼l1ul1u(apollo)回复于 2003-09-15 16:43:21 得分 0


一、循环冗余校验码(CRC)  
  CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式,由   。如一个8位二进制数10110101可以表示为:   。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致。  
  采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。  
  CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。CCITT建议:2048   kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验码生成多项式g(x)=   。采用16位CRC校验,可以保证在     bit码元中只含有一位未被检测出的错误   。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,使用CRC-16,其生成多项式g(x)=   ;而在CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用CCITT-16,其生成多项式g(x)=   。CRC-32的生成多项式g(x)=   。CRC-32出错的概率比CRC-16低   倍   。由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所以在通信、计算机等领域运用十分广泛。在一些UART通信控制芯片(如MC6582、Intel8273和Z80-SIO)内,都采用了CRC校验码进行差错控制;以太网卡芯片、MPEG解码芯片中,也采用CRC-32进行差错控制。  
  二、CRC校验码的算法分析  
  CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码。其实现步骤如下:  
  (1) 设待发送的数据块是m位的二进制多项式t(x),生成多项式为r阶的g(x)。在数据块的末尾添加r个0,数据块的长度增加到m+r位,对应的二进制多项式为   。  
  (2) 用生成多项式g(x)去除   ,求得余数为阶数为r-1的二进制多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码。  
  (3) 用   以模2的方式减去y(x),得到二进制多项式   。   就是包含了CRC校验码的待发送字符串。  
  从CRC的编码规则可以看出,CRC编码实际上是将代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式   ,所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。许多CRC的硬件解码电路就是按这种方式进行检错的。同时   可以看做是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。  
  为了更清楚的了解CRC校验码的编码过程,下面用一个简单的例子来说明CRC校验码的编码过程。由于CRC-32、CRC-16、CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样。为了叙述简单,用一个CRC-4编码的例子来说明CRC的编码过程。  
  设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=   ,阶数r为4,即10011。首先在t(x)的末尾添加4个0构成   ,数据块就成了1001000111000000。然后用g(x)去除   ,不用管商是多少,只需要求得余数y(x)。下表为给出了除法过程。  
  除数次数 被除数/   g(x)/结果         余数  
  0   1   001000111000000 100111000000  
    1   0011  
    0   000100111000000  
  1   1   00111000000     1000000  
    1   0011    
    0   00001000000  
  2   1   000000 1100  
    1   0011  
    0   001100  
   
  从上面表中可以看出,CRC编码实际上是一个循环移位的模2运算。对CRC-4,我们假设有一个5   bits的寄存器,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值去掉最高一位就是我们所要求的余数。所以可以将上述步骤用下面的流程描述:  
  //reg是一个5   bits的寄存器  
  把reg中的值置0.    
  把原始的数据后添加r个0.    
  While   (数据未处理完)    
  Begin    
  If   (reg首位是1)    
  reg   =   reg   XOR   0011.    
  把reg中的值左移一位,读入一个新的数据并置于register的0   bit的位置。    
  End  
  reg的后四位就是我们所要求的余数。  
  这种算法简单,容易实现,对任意长度生成多项式的G(x)都适用。在发送的数据不长的情况下可以使用。但是如果发送的数据块很长的话,这种方法就不太适合了。它一次只能处理一位数据,效率太低。为了提高处理效率,可以一次处理4位、8位、16位、32位。由于处理器的结构基本上都支持8位数据的处理,所以一次处理8位比较合适。  
  为了对优化后的算法有一种直观的了解,先将上面的算法换个角度理解一下。在上面例子中,可以将编码过程看作如下过程:  
    由于最后只需要余数,所以我们只看后四位。构造一个四位的寄存器reg,初值为0,数据依次移入reg0(reg的0位),同时reg3的数据移出reg。有上面的算法可以知道,只有当移出的数据为1时,reg才和g(x)进行XOR运算;移出的数据为0时,reg不与g(x)进行XOR运算,相当与和0000进行XOR运算。就是说,reg和什么样的数据进行XOR移出的数据决定。由于只有一个bit,所以有   种选择。上述算法可以描述如下,  
  //reg是一个4   bits的寄存器  
  初始化t[]={0011,0000}  
  把reg中的值置0.    
  把原始的数据后添加r个0.    
  While   (数据未处理完)    
  Begin    
  把reg中的值左移一位,读入一个新的数据并置于register的0   bit的位置。  
  reg   =   reg   XOR   t[移出的位]  
  End  
  上面算法是以bit为单位进行处理的,可以将上述算法扩展到8位,即以Byte为单位进行处理,即CRC-32。构造一个四个Byte的寄存器reg,初值为0x00000000,数据依次移入reg0(reg的0字节,以下类似),同时reg3的数据移出reg。用上面的算法类推可知,移出的数据字节决定reg和什么样的数据进行XOR。由于有8个bit,所以有   种选择。上述算法可以描述如下:  
  //reg是一个4   Byte的寄存器  
  初始化t[]={…}//共有   =256项  
  把reg中的值置0.    
  把原始的数据后添加r/8个0字节.    
  While   (数据未处理完)    
  Begin    
  把reg中的值左移一个字节,读入一个新的字节并置于reg的第0个byte的位置。  
  reg   =   reg   XOR   t[移出的字节]  
  End  
  算法的依据和多项式除法性质有关。如果一个m位的多项式t(x)除以一个r阶的生成多项式g(x),   ,将每一位   (0=<k<m)提出来,在后面不足r个0后,单独去除g(x),得到的余式位   。则将   后得到的就是t(x)由生成多项式g(x)得到的余式。对于CRC-32,可以将每个字节在后面补上32个0后与生成多项式进行运算,得到余式和此字节唯一对应,这个余式就是上面算法种t[]中的值,由于一个字节有8位,所以t[]共有   =256项。多项式运算性质可以参见参考文献[1]。这种算法每次处理一个字节,通过查表法进行运算,大大提高了处理速度,故为大多数应用所采用。  
  三、CRC-32的程序实现。  
  为了提高编码效率,在实际运用中大多采用查表法来完成CRC-32校验,下面是产生CRC-32校验吗的子程序。  
  unsigned   long     crc_32_tab[256]={  
  0x00000000,   0x77073096,   0xee0e612c,   0x990951ba,   0x076dc419,   0x706af48f,   0xe963a535,   0x9e6495a3,0x0edb8832,…,   0x5a05df1b,   0x2d02ef8d  
  };//事先计算出的参数表,共有256项,未全部列出。  
   
  unsigned   long   GenerateCRC32(char   xdata   *   DataBuf,unsigned   long     len)  
  {  
  unsigned   long   oldcrc32;  
  unsigned   long   crc32;  
  unsigned   long   oldcrc;  
  unsigned     int   charcnt;  
                  char   c,t;  
  oldcrc32   =   0x00000000;   //初值为0  
          charcnt="0";  
  while   (len--)   {  
                                  t=   (oldcrc32   >>   24)   &   0xFF;       //要移出的字节的值  
  oldcrc="crc"_32_tab[t];                   //根据移出的字节的值查表  
                                  c="DataBuf"[charcnt];                     //新移进来的字节值  
                                  oldcrc32=   (oldcrc32   <<   8)   |   c;       //将新移进来的字节值添在寄存器末字节中  
                                  oldcrc32=oldcrc32^oldcrc;           //将寄存器与查出的值进行xor运算  
                                  charcnt++;  
  }  
                  crc32=oldcrc32;  
                  return   crc32;  
  }  
  参数表可以先在PC机上算出来,也可在程序初始化时完成。下面是用于计算参数表的c语言子程序,在Visual   C++   6.0下编译通过。  
  #include   <stdio.h>  
  unsigned   long   int   crc32_table[256];  
  unsigned   long   int   ulPolynomial   =   0x04c11db7;  
  unsigned   long   int   Reflect(unsigned   long   int   ref,   char   ch)  
  { unsigned   long   int   value(0);  
  //   交换bit0和bit7,bit1和bit6,类推  
  for(int   i   =   1;   i   <   (ch   +   1);   i++)  
  { if(ref   &   1)  
  value   |=   1   <<   (ch   -   i);  
          ref   >>=   1; }  
  return   value;  
  }  
  init_crc32_table()  
  { unsigned   long   int   crc,temp;  
  //   256个值  
  for(int   i   =   0;   i   <=   0xFF;   i++)  
  {       temp="Reflect"(i,   8);  
  crc32_table=   temp<<   24;  
  for   (int   j   =   0;   j   <   8;   j++){  
            unsigned   long   int   t1,t2;  
    unsigned   long   int   flag="crc32"_table&0x80000000;  
    t1=(crc32_table   <<   1);  
    if(flag==0)  
        t2=0;  
    else  
        t2=ulPolynomial;  
    crc32_table   =t1^t2   ; }  
  crc="crc32"_table;  
  crc32_table   =   Reflect(crc32_table,   32);  
  }  
  }  
  结束语  
          CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段。



日志标题:proteus 仿真库
发表时间:2007-1-12 16:33:00
Proteus 仿真库简介



元件名称中文名说明
7407驱动门
1N914二极管
74Ls00与非门
74LS04非门
74LS08与门
74LS390TTL 双十进制计数器
7SEG4针BCD-LED输出从0-9 对应于4根线的BCD码
7SEG3-8译码器电路BCD-7SEG[size=+0]转换电路
ALTERNATOR交流发电机
AMMETER-MILLImA安培计
AND与门
BATTERY电池/电池组
BUS总线
CAP电容
CAPACITOR电容器
CLOCK时钟信号源
CRYSTAL晶振
D-FLIPFLOPD触发器
FUSE保险丝
GROUND
LAMP
LED-RED红色发光二极管
LM016L2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚)
LOGIC ANALYSER逻辑分析器
LOGICPROBE逻辑探针
LOGICPROBE[BIG]逻辑探针用来显示连接位置的逻辑状态
LOGICSTATE逻辑状态用鼠标点击,可改变该方框连接位置的逻辑状态
LOGICTOGGLE逻辑触发
MASTERSWITCH按钮手动闭合,立即自动打开
MOTOR马达
OR或门
POT-LIN三引线可变电阻器
POWER电源
RES电阻
RESISTOR电阻器
SWITCH按钮手动按一下一个状态
SWITCH-SPDT二选通一按钮
VOLTMETER伏特计
VOLTMETER-MILLImV伏特计
VTERM串行口终端
Electromechanical电机
Inductors变压器
Laplace Primitives拉普拉斯变换
Memory Ics
Microprocessor Ics
Miscellaneous各种器件AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表;
Modelling Primitives各种仿真器件是典型的基本元器模拟,不表示具体型号,只用于仿真,没有PCB
Optoelectronics各种发光器件发光二极管,LED,液晶等等
PLDs & FPGAs
Resistors各种电阻
Simulator Primitives常用的器件
Speakers & Sounders
Switches & Relays开关,继电器,键盘
Switching Devices晶阊管
Transistors晶体管(三极管,场效应管)
TTL 74 series
TTL 74ALS series
TTL 74AS series
TTL 74F series
TTL 74HC series
TTL 74HCT series
TTL 74LS series
TTL 74S series
Analog Ics模拟电路集成芯片
Capacitors电容集合
CMOS 4000 series
Connectors排座,排插
Data ConvertersADC,DAC
Debugging Tools调试工具
ECL 10000 Series


日志标题:电阻分类
发表时间:2007-1-18 14:57:00

电阻分类


1.Wire-绕线电阻
2.Foil-金属箔电阻
3.Metal Film-金属膜电阻
4.Metal Oxide-金属氧化物膜电阻
5.Carbon Film-碳膜电阻
6.Carbon Composition-碳实芯电阻
7.Thick Film-厚膜电阻
8.Thin Film-薄膜电阻
9.Metal Glaze-金属釉质电阻



日志标题:ks0108
发表时间:2007-1-19 11:30:00
,这个程序在我的试验中通过,在这里对他真诚的说一声:谢谢!

12864点阵LCD模块接口功能图表



引脚


定义


说明(以KS0108芯片为例)。


1


VSS-


模块电源地


2


VDD+


模块电源正


3


VO


对比度调节,输入电压 -0 ~ -10V


4


RS


RS=1 时DATA为显示数据; RS="0" 时DATA为指令数据


5


RW


RW=1为读LCD内部数据;RW=0是写数据 到LCD。


6


E


RW=0、E↓时LCD对RS和数据DATA进行取样和执行;

RW=1、RS=0、E↑时LCD输出数据到DATA


7~14


DATA


8位数据


15


CS1


片选择,1有效


16


CS2


片选择,1有效


17


RESET


复位,L-复位,H-正常


18


VEE


负压输出(-10V)


19、20


LED


背光电源



* 12864LCD是小型系统中很常用的显示器,目前的主控芯片常用的有KS0108、ST7920等。KS0108是三星公司的产品,与HD61202控制器完全兼容,不带字库、不支持串口。ST7920是台湾矽创电子公司生产的中文图形控制芯片,自带字库、支持4位、8位并行、2线、3线串行接口方式





日志标题:电容降压原理
发表时间:2007-1-22 8:44:00

电容降压原理
作者:佚名    文章来源:网络    点击数:

86    更新时间:2006-11-01    d.getSelection?d.getSelection():'');void(vivi=window.open('http://vivi.sina.com.cn/collect/icollect.php?pid=2008&title='+escape(d.title)+'&url='+escape(d.location.href)+'&desc='http://blog.21ic.com/+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes'));vivi.focus();">vivi_coop1.gif

  电容降压的工作原理并不复杂。他的工作原理是利用电容在一定的交流信号频率下产生的容抗来限制最大工作电流。
  例如,在50Hz的工频条件下,一个1uF的电容所产生的容抗约为3180欧姆。当220V的交流电压加在电容器的两端,则流过电容的最大电流约为70mA。 虽然流过电容的电流70mA,但在电容器上并不产生功耗,应为如果电容是一个理想电容,则流过电容的电流为虚部电流,它所作的功为无功功率。


  根据这个特点,我们如果在一个1uF的电容器上再串联一个阻性元件,则阻性元件两端所得到的电压和它所产生的功耗完全取决于这个阻性元件的特性。
  例如,我们将一个110V/8W的灯泡与一个1uF的电容串联,在接到220V/50Hz的交流电压上,灯泡被点亮,发出正常的亮度而不会被烧毁。因为110V/8W的灯泡所需的电流为8W/110V=72mA,它与1uF电容所产生的限流特性相吻合。同理,我们也可以将5W/65V的灯泡与1uF电容串联接到220V/50Hz的交流电上,灯泡同样会被点亮,而不会被烧毁。因为5W/65V的灯泡的工作电流也约为70mA。因此,电容降压实际上是利用容抗限流。而电容器实际上起到一个限制电流和动态分配电容器和负载两端电压的角色。


  采用电容降压时应注意以下几点:


1 根据负载的电流大小和交流电的工作频率选取适当的电容,而不是依据负载的电压和功率。


2 限流电容必须采用无极性电容,绝对不能采用电解电容。而且电容的耐压须在400V以上。最理想的电容为铁壳油浸电容。


3 电容降压不能用于大功率条件,因为不安全。


4 电容降压不适合动态负载条件。


5 同样,电容降压不适合容性和感性负载。


6 当需要直流工作时,尽量采用半波整流。不建议采用桥式整流。而且要满足恒定负载的条件。



日志标题:可控硅等!
发表时间:2007-1-22 9:49:00
可控硅知识的问与答
 


 

步进电机14问



日志标题:LDO?
发表时间:2007-1-22 11:22:00

以前经常看见,说什么芯片是LDO的,以为是某一公司的名号。现在才知道,LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与输出的压差只有1.7v,显然是不满足条件的。针对这种情况,才有了LDO类的电源转换芯片。生产LDO芯片的公司很多,常见的有ALPHA, Linear(LT), Micrel, National semiconductor,TI等。


什么是 LDO(低压降)稳压器?
LDO 是一种线性稳压器。线性稳压器使用在其线性区域内运行的晶体管或 FET,从应用的输入电压中减去超额的电压,产生经过调节的输出电压。所谓压降电压,是指稳压器将输出电压维持在其额定值上下 100mV 之内所需的输入电压与输出电压差额的最小值。正输出电压的
LDO(低压降)稳压器通常使用功率晶体管(也称为传递设备)作为 PNP。这种晶体管允许饱和,所以稳压器可以有一个非常低的压降电压,通常为 200mV 左右;与之相比,使用 NPN 复合电源晶体管的传统线性稳压器的压降为 2V 左右。负输出 LDO 使用 NPN 作为它的传递设备,其运行模式与正输出 LDO 的 PNP设备类似。
更新的发展使用 CMOS 功率晶体管,它能够提供最低的压降电压。使用 CMOS,通过稳压器的唯一电压压降是电源设备负载电流的 ON 电阻造成的。如果负载较小,这种方式产生的压降只有几十毫伏。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


LDO VS DCDC


DCDC的意思是直流变(到)直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,
包括LDO。但是一般的说法是把直流变(到)直流由开关方式实现的器件叫DCDC。
    LDO是低压降的意思,这有一段说明:低压降(LDO)线性稳压器的成本低,噪音低,静态电流小,
这些是它的突出优点。它需要的外接元件也很少,通常只需要一两个旁路电容。新的LDO线性稳压
器可达到以下指标:输出噪声30μV,PSRR为60dB,静态电流6μA,电压降只有100mV。LDO线性稳
压器的性能之所以能够达到这个水平,主要原因在于其中的调整管是用P沟道MOSFET,而普通的线
性稳压器是使用PNP晶体管。P沟道MOSFET是电压驱动的,不需要电流,所以大大降低了器件本身消
耗的电流;另一方面,采用PNP晶体管的电路中,为了防止PNP晶体管进入饱和状态而降低输出能力
, 输入和输出之间的电压降不可以太低;而P沟道MOSFET上的电压降大致等于输出电流与导通电阻
的乘积。由於MOSFET的导通电阻很小,因而它上面的电压降非常低。
    如果输入电压和输出电压很接近,最好是选用LDO稳压器,可达到很高的效率。所以,在把锂离子电
池电压转换为3V输出电压的应用中大多选用LDO稳压器。虽说电池的能量最後有百分之十是没有使用
,LDO稳压器仍然能够保证电池的工作时间较长,同时噪音较低。
    如果输入电压和输出电压不是很接近,就要考虑用开关型的DCDC了,应为从上面的原理可以知道,
LDO的输入电流基本上是等于输出电流的,如果压降太大,耗在LDO上能量太大,效率不高。
DC-DC转换器包括升压、降压、升/降压和反相等电路。DC-DC转换器的优点是效率高、可以输出大
电流、静态电流小
。随著集成度的提高,许多新型DC-DC转换器仅需要几只外接电感器和滤波电容
器。但是,这类电源控制器的输出脉动和开关噪音较大、成本相对较高
    近几年来,随著半导体技术的发展,表面贴装的电感器、电容器、以及高集成度的电源控制芯片的
成本不断降低,体积越来越小。由於出现了导通电阻很小的MOSFET可以输出很大功率,因而不需要
外部的大功率FET。例如对于3V的输入电压,利用芯片上的NFET可以得到5V/2A的输出。其次,对于
中小功率的应用,可以使用成本低小型封装。另外,如果开关频率提高到1MHz,还能够降低成本、
可以使用尺寸较小的电感器和电容器。有些新器件还增加许多新功能,如软启动、限流、PFM或者
PWM方式选择等。
    总的来说,升压是一定要选DCDC的,降压,是选择DCDC还是LDO,要在成本,效率,噪声和性能上
比较。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`


LDO体积小,干扰较小,当输入与输出电压差较大的化,转换效率低。
DC-DC好处就是转换效率高,可以大电流,但输出干扰较大,体积也相对较大。


LDO一般是指线性的稳压器--Low Drop Out, 而DC/DC则是线性式和开关式稳压器的总称.
如果你的输出电流不是很大(如3A以内), 而且输入输出压差也不大(如3.3V转2.5V等)就可以使用LDO的稳压器(优点是输出电压的ripple很小). 否则最好用开关式的稳压器, 如果是升压, 也只能用开关式稳压器(如果ripple控制不好,容易影响系统工作).


LDO的选择

当所设计的电路对分路电源有以下要求:
1. 高的噪音和纹波抑制;
2. 占用PCB板面积小,如手机等手持电子产品;
3. 电路电源不允许使用电感器,如手机;
4. 电源需要具有瞬时校准和输出状态自检功能;
5. 要求稳压器低压降,自身功耗低;
6. 要求线路成本低和方案简单;
此时,选用LDO是最恰当的选择,同时满足产品设计的各种要求。


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


LDO的基本原理


低压差线性稳压器(LDO)的基本电路如图1-1所示,该电路由串联调整管VT、取样电阻R1和R2、比较放大器A组成。



EECOL_2006025_TA98_01.JPG0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0">

图1-1 低压差线性稳压器基本电路


取样电压加在比较器A的同相输入端,与加在反相输入端的基准电压Uref相比较,两者的差值经放大器A放大后,控制串联调整管的压降,从而稳定输出电压。当输出电压Uout降低时,基准电压与取样电压的差值增加,比较放大器输出的驱动电流增加,串联调整管压降减小,从而使输出电压升高。相反,若输出电压Uout超过所需要的设定值,比较放大器输出的前驱动电流减小,从而使输出电压降低。供电过程中,输出电压校正连续进行,调整时间只受比较放大器和输出晶体管回路反应速度的限制。


应当说明,实际的线性稳压器还应当具有许多其它的功能,比如负载短路保护、过压关断、过热关断、反接保护等,而且串联调整管也可以采用MOSFET。



日志标题:AT指令介绍及用法
发表时间:2007-1-23 11:02:00

AT指令介绍及用法

2007年01月08日 星期一 15:24



AT 指令
AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,AT指令仅被用于Modem操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制
SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM 研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM 07.05标准以及现在的GSM07.07标准,完全标准化和比较健全的标准。如:对SMS的控制共有3种实现途径:最初的Block Mode;基于AT指令的Text Mode;基于AT指令的PDU Mode。到现在PDU Mode已经取代BlockMode,后者逐渐淡出。GSM 模块与计算机之间的通信协议是一些AT指令
集,AT指令是以AT作首, 字符结束的字符串,AT指令的响应数据包在 中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。
示例:CDMA modem DTE
AT< CR>
< LF> OK < LF>
ATTEST< CR>
< CR> ERROR < LF>
如果AT指令执行成功,“OK”字符串返回;
如果AT 指令语法错误或AT 指令执行失败,
“ERROR”字符串返回。



1.相关的GSM AT指令 
与SMS有关的GSM AT指令(from GSM07.05)如表1所示: 
表1 相关的GSM AT指令


AT 指令 
功 能 


AT+CMGC 
Send an SMS command(发出一条短消息命令) 


AT+CMGD 
Delete SMS message(删除SIM卡内存的短消息) 


AT+CMGF 
Select SMS message formate(选择短消息信息格式:0-PDU;1-文本) 


 


AT+CMGL 
List SMS message from preferred store(列出SIM卡中的短消息PDU/text: 0/“REC UNREAD”-未读,1/“REC READ”-已读,2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部的) 


AT+CMGR 
Read SMS message(读短消息) 


AT+CMGS 
Send SMS message(发送短消息) 


AT+CMGW 
Write SMS message to memory(向SIM内存中写入待发的短消息) 


AT+CMSS 
Send SMS message from storage(从SIN|M内存中发送短消息) 


AT+CNMI 
New SMS message indications(显示新收到的短消息) 


AT+CPMS 
Preferred SMS message storage(选择短消息内存) 


AT+CSCA 
SMS service center address(短消息中心地址) 


AT+CSCB 
Select cell broadcast messages(选择蜂窝广播消息) 


AT+CSMP 
Set SMS text mode parameters(设置短消息文本模式参数) 


AT+CSMS 
Select Message Service(选择短消息服务) 



对短消息的控制共有三种模式: 
Block Mode 


基于AT命令的PDU Mode 


基于AT命令的Text Mode 


使用Block模式需要手机生产厂家提供驱动支持,目前,PDU Mode 已取代 Block Mode, Text Mode比较简单,本文重点介绍模式PDU Mode,以西门子公司的产品TC35T为例。 
2.计算机与TC35T的通信 
(1)RS232串口连接 
由于TC35T自带RS232串口线,故只需将其连接到计算机串口即可。打开超级终端,选择相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、流量控制—硬件。 
(2)连接测试 
输入“AT”然后回车,屏幕上返回“OK”表明计算机与TC35T已连接成功,TC35T能够正常工作。这时就可以测试各类AT命令。 
当测试命令“AT+CMGS=?”时,如果返回“OK”标明TC35T支持该指令。该指令的完整语法如下: 
如果此时TC35T处于PDU Mode(即“AT+CMGF?”返回“0”) 


AT+CMGS=PDU is given<^Z/ESC> 
如果短消息发送成功,则返回“OK”,并显示信息号: 
+CMGS: [,] 
如果短消息发送失败,则返回如下信息号: 
+CMS ERROR: 
如果此时TC35T处于Text Mode(即“AT+CMGF?”返回“1”) 


AT+CMGS=[,toda]text is entered<^Z/ESC> 
如果短消息发送成功,则返回“OK”,并显示信息号: 
+CMGS: [,] 
如果短消息发送失败,则返回如下信息号: 
+CMS ERROR: 
另外,由于使用的是TC35T,当有新的短消息到来时,需要TC35T产生提示,使用指令“AT+CNMI”。该指令的完整语法如下: 
AT+CNMI=[][,][,][,][,] 
如果有新的短消息来到,则TC35T将自动返回下列提示: 
+CMTI: “SM”, 
此时读出,然后用“AT+CMGR”指令即可读出短消息内容。 
3.PDU数据格式分析: 
例如,我们要将字符“Hi”字符发送到目的地“13677328099” 
PDU字符串为: 
08 91 683108701305F0 11 00 0D 91 3176378290F9 00 00 00 02 C834 
⑴08—短信息中心地址长度。指(91)+(683108701305F0)的长度。 
⑵91—短信息中心号码类型。91是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还有其它数值,但91最常用。 
91—10010001 
BIT No. 








Name 

数值类型 
号码鉴别 



数值类型(Type of Number):000—未知,001—国际,010—国内,111—留作扩展; 
号码鉴别(Numbering plan identification):0000—未知,0001—ISDN/电话号码(E.164/E.163),1111—留作扩展; 
⑶683108701305F0—短信息中心号码。由于位置上略有处理,实际号码应为:8613800731500(字母F是指长度减1)。这需要根据不同的地域作相应的修改。 
⑴、⑵、⑶通称短消息中心地址(Address of the SMSC)。 
⑷11—文件头字节。 
11&h=00010001&b 
BIT No. 








Name 
TP-RP 
TP-UDHI 
TP-SPR 
TP-VFP 
TP-RD 
TP-MTI 


value 









应答路径—TP-RP(TP-Reply-Path):0—不设置; 1—设置 
用户数据头标识—TP-UDHL(TP-User-Data-Header-Indicator):0—不含任何头信息; 1—含头信息 
状态报告要求—TP-SPR(TP-Status-Report-Request):0—需要报告; 1—不需要报告 
有效期格式—TP-VPF(TP-Validity-Period-Format):00—不提供(Not present); 10—整型(标准);01—预留; 11—提供8位字节的一半(Semi-Octet Represented) 
拒绝复制—TP-RD(TP-Reject-Duplicates):0—接受复制; 1—拒绝复制 
信息类型提示—TP-MTI(TP-Message-Type-Indicator):00—读出(Deliver); 01—提交(Submit) 
⑸00—信息类型(TP-Message-Reference) 
⑹0B—被叫号码长度。 
⑺91—被叫号码类型(同⑵)。 
⑻3176378290F9—被叫号码,经过了位移处理,实际号码为“13677328099”。 
⑹、⑺、⑻通称目的地址(TP-Destination-Address)。 
⑼00—协议标识TP-PID(TP-Protocol-Identifier) 
BIT No. 









Bit No.7与Bit No.6: 00—如下面定义的分配Bit No.0—Bit No.5;01—参见GSM03.40协议标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配Bit No.0—Bit No.5。 
一般将这两位置为00。 
Bit No.5:0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。 
Bit No.0—Bits No.4:00000—隐含;00001—电传;00010—group 3 telefax;00100—语音;00101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于X.400的公用信息处理系统;10010—Email。 
⑽00—数据编码方案TP-DCS(TP-Data-Coding-Scheme) 
BIT No. 









Bit No.7与Bit No.6 :一般设置为00;Bit No.5:0—文本未压缩,1—文本用GSM标准压缩算法压缩;Bit No.4:0—表示Bit No.1、Bit No.0为保留位,不含信息类型信息,1—表示Bit No.1、Bit No.0含有信息类型信息;Bit No.3与Bit No.2:00—默认的字母表,01—8bit,10—USC2(16bit),11—预留;Bit No.1与Bit No.0:00—Class 0,01—Class 1,10—Class 2(SIM卡特定信息),11—Class 3。 
⑾00—有效期TP-VP(TP-Valid-Period) 
VP value(&h) 
相应的有效期 


00 to 8F 
(VP+1)*5 分钟 


90 to A7 
12小时+(VP-143)*30分钟 


A8 to C4 
(VP-166)*1天 


C5 to FF 
(VP-192)*1 周 



⑿02—用户数据长度TP-UDL(TP-User-Data-Length) 
⒀C834—用户数据TP-UD(TP-User-Data)“Hi” 
4.短消息编码 
设需要发送的短消息内容为“Hi”,使用的GSM字符集为7位编码。首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:H翻译成1001000,i翻译成1101001,显然H的二进制编码不足八位,那么就将i的最后一位补足到H的前面。那么就成了11001000(C8),i剩下六位110100,前面再补两个0,变成00110100(34),于是“Hi”就变成了两个八进制数 C8 34。 
5.短消息的发送与接收案例 
鉴于TC35(T)支持TEXT格式,我们在试验中主要测试该格式。 
(1)设置短消息中心 
AT+CSCA="+8613800731500"(短消息中心); 
(2)设置短消息发送格式 
AT+CMGF=1 (1-TEXT; 0-PDU); 
(3)发送短消息(短消息内容为“test”) 
AT+CMGS="13508485560"(目的地址) 
> test ^z ; 
(4)设置短消息到达自动提示: 设置短消息到达提示当短消息被接收,将获取指令: +CMTI:"SM",INDEX(信息存储位置) 
AT+CNMI=1,1,0,0,1(); 
(5)获取短消息内容(Once more),假设INDEX=8。 
AT+CMGR=8 
返回信息如下: 
+CMGR: "REC UNREAD","+8613508485560",,"01/07/16,15:37:28+32",Once more 
6.注意事项 
(1)短消息中心一般不会改动,如果短消息中心号码改动,在使用“AT+CSCA”语句时,记住TC35要重新启动,否则TC35不能正常工作(TC35T不存在此问题)。 
(2)某些SIM卡带有密码,启动时需要输入密码。



日志标题:RS485传输可靠性(max485)
发表时间:2007-1-24 13:53:00


  您的当前位置:工程师园地专业论文RS485传输可靠性
RS485传输可靠性
浏览次数: 352作 者: 发表时间: 2006-09-05
t3.gif
1 问题的提出


  在工业控制及测量领域较为常用的网络之一就是物理层采用RS-485通信接口所组成的工控设备网络。这种通信接口可以十


分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,RS-485总线通信模式由于


具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控


制、监控报警等领域。但RS485总线存在自适应、自保护功能脆弱等缺点,如不注意一些细节的处理,常出现通信失败甚至系


统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要。

点击看大图



 
                图1RS485通信接口原理图


2 硬件电路设计中需注意的问题


2.1 电路基本原理


  某节点的硬件电路设计如图1所示,在该电路中,使用了一种RS-485接口芯片SN75LBC184,它采用单一电源Vcc,电压在+


3~+5.5 V范围内都能正常工作。与普通的RS-485芯片相比,它不但能抗雷电的冲击而且能承受高达8 kV的静电放电冲击,片


内集成4个瞬时过压保护管,可承受高达400 V的瞬态脉冲电压。因此,它能显著提高防止雷电损坏器件的可靠性。对一些环


境比较恶劣的现场,可直接与传输线相接而不需要任何外加保护元件。该芯片还有一个独特的设计,当输入端开路时,其输出


为高电平,这样可保证接收器输入端电缆有开路故障时,不影响系统的正常工作。另外,它的输入阻抗为RS485标准输入阻抗


的2倍(≥24 kΩ),故可以在总线上连接64个收发器。芯片内部设计了限斜率驱动,使输出信号边沿不会过陡,使传输线上


不会产生过多的高频分量,从而有效扼制电磁干扰。在图1中,四位一体的光电耦合器TLP521让单片机与SN75LBC184之间完全


没有了电的联系,提高了工作的可靠性。基本原理为:当单片机P1.6=0时,光电耦合器的发光二极管发光,光敏三极管导通,


输出高电压(+5 V),选中RS485接口芯片的DE端,允许发送。当单片机P1.6=1时,光电耦合器的发光二极管不发光,光敏


三极管不导通,输出低电压(0 V),选中RS485接口芯片的RE端,允许接收。SN75LBC184的R端(接收端)和D端(发送端)的


原理与上述类似。


2.2 RS-485的DE控制端设计


  在RS-485总线构筑的半双工通信系统中,在整个网络中任一时刻只能有一个节点处于发送状态并向总线发送数据,其他所


有节点都必须处于接收状态。如果有2个节点或2个以上节点同时向总线发送数据,将会导致所有发送方的数据发送失败。因


此,在系统各个节点的硬件设计中,应首先力求避免因异常情况而引起本节点向总线发送数据而导致总线数据冲突。以MCS51


系列的单片机为例,因其在系统复位时,I/O口都输出高电平,如果把I/O口直接与RS-485接口芯片的驱动器使能端DE相连,会


在CPU复位期间使DE为高,从而使本节点处于发送状态。如果此时总线上有其他节点正在发送数据,则此次数据传输将被打断


而告失败,甚至引起整个总线因某一节点的故障而通信阻塞,继而影响整个系统的正常运行。考虑到通信的稳定性和可靠性,


在每个节点的设计中应将控制RS485总线接口芯片的发送引脚设计成DE端的反逻辑,即控制引脚为逻辑“1”时,DE端为


“0”;控制引脚为逻辑“0”时,DE端为“1”。在图1中,将CPU的引脚P1.6通过光电耦合器驱动DE端,这样就可以使控制引脚


为高或者异常复位时使SN75LBC184始终处于接收状态,从而从硬件上有效避免节点因异常情况而对整个系统造成的影响。这就


为整个系统的通信可靠奠定了基础。


  此外,电路中还有1片看门狗MAX813L,能在节点发生死循环或其他故障时,自动复位程序,交出RS-485总线控制权。这样


就能保证整个系统不会因某一节点发生故障而独占总线,导致整个系统瘫痪。


2.3 避免总线冲突的设计


  当一个节点需要使用总线时,为了实现总线通信可靠,在有数据需要发送的情况下先侦听总线。在硬件接口上,首先将


RS-485接口芯片的数据接收引脚反相后接至CPU的中断引脚INT0。在图1中,INT0是连至光电耦合器的输出端。当总线上有数据


正在传输时,SN75LBC184的数据接收端(R端)表现为变化的高低电平,利用其产生的CPU下降沿中断(也可采用查询方式),


能得知此时总线是否正“忙”,即总线上是否有节点正在通信。如果“空闲”,则可以得到对总线的使用权限,这样就较好地


解决了总线冲突的问题。在此基础上,还可以定义各种消息的优先级,使高优先级的消息得以优先发送,从而进一步提高系统


的实时性。采用这种工作方式后,系统中已经没有主、从节点之分,各个节点对总线的使用权限是平等的,从而有效避免了个


别节点通信负担较重的情况。总线的利用率和系统的通信效率都得以大大提高,从而也使系统响应的实时性得到改善,而且即


使系统中个别节点发生故障,也不会影响其他节点的正常通信和正常工作。这样使得系统的“危险”分散了,从某种程度上来


说增强了系统的工作可靠性和稳定性。


2.4 RS-485输出电路部分的设计


  在图1中,VD1~VD4为信号限幅二极管,其稳压值应保证符合RS-485标准,VD1和VD3取12 V,VD2 和VD4取7 V,以保证将信号


幅度限定在-7~+12 V之间,进一步提高抗过压的能力。考虑到线路的特殊情况(如某一节点的RS-485芯片被击穿短路),为


防止总线中其他分机的通信受到影响,在SN75LBC184的信号输出端串联了2个20 Ω的电阻R1和R2,这样本机的硬件故障就不


会使整个总线的通信受到影响。在应用系统工程的现场施工中,由于通信载体是双绞线,它的特性阻抗为120 Ω左右,所以线


路设计时,在RS485网络传输线的始端和末端应各接1个120 Ω的匹配电阻(如图1中的R3),以减少线路上传输信号的反射。


2.5系统的电源选择


  对于由单片机结合RS-485组建的测控网络,应优先采用各节点独立供电的方案,同时电源线不能与RS-485信号线共用同一


股多芯电缆。RS-485信号线宜选用截面积0.75 mm2以上的双绞线而不是平直线,并且选用线性电源TL750L05比选用开关电源更


合适。TL750L05必须有输出电容,若没有输出电容,则其输出端的电压为锯齿波形状,锯齿波的上升沿随输入电压变化而变


化,加输出电容后,可以抑制该现象。


3 软件的编程


  SN75LBC184在接收方式时,A、B为输入,R为输出;在发送方式时,D为输入,A、B为输出。当传送方向改变一次后,如果


输入未变化,则此时输出为随机状态,直至输入状态变化一次,输出状态才确定。显然,在由发送方式转入接收方式后,如果


A、B状态变化前,R为低电平,在第一个数据起始位时,R仍为低电平,CPU认为此时无起始位,直到出现第一个下降沿,CPU才


开始接收第一个数据,这将导致接收错误。由接收方式转入发送方式后,D变化前,若A与B之间为低电压,发送第一个数据起


始位时,A与B之间仍为低电压,A、B引脚无起始位,同样会导致发送错误。克服这种后果的方案是:主机连续发送两个同步


字,同步字要包含多次边沿变化(如55H ,0AAH),并发送两次(第一次可能接收错误而忽略) ,接收端收到同步字后,就可以


传送数据了,从而保证正确通信。


  为了更可靠地工作,在RS485总线状态切换时需要适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将


控制端置“1”,延时0.5 ms左右的时间,再发送有效的数据,数据发送结束后,再延时0.5 ms,将控制端置“0”。这样的处


理会使总线在状态切换时,有一个稳定的工作过程。数据通信程序基本流程图如图2所示。

按此在新窗口浏览图片



            
              图2数据通信程序基本流程图


  单片机通信节点的程序基本上可以分为6个主要部分,分别为预定义部分、初始化部分、主程序部分、设备状态检测部


分、帧接收部分和帧发送部分。预定义部分主要定义了通信中使用的握手信号,用于保存设备信息的缓冲区和保存本节点设备


号的变量。设备状态检测部分应能在程序初始化后,当硬件发生故障时,作出相应的反应。主程序部分应能接收命令帧,并根


据命令的内容作出相应的回应。为缩短篇幅,这里仅给出主程序部分的代码。如下所示:


  /* 主程序流程 */
  while(1) {         //主循环
    if(recv_cmd(&type)==0) //发生帧错误或帧地址与本机
                //地址不符,丢弃当前帧后返回
  continue;
  switch(type) {
    case __ACTIVE_:    //主机询问从机是否存在
      send_data(__OK_, 0,dbuf);//发送应答信息
      break;
    case __GETDATA_:
      len = strlen(dbuf);
      send_data(__STATUS_, len,dbuf);//发送状态信息
        break;
    default:
        break;    //命令类型错误,丢弃当前帧后返回
    }
  }


4 结论


  RS-485由于使用了差分电平传输信号,传输距离比RS-232更长,最多可以达到3000 m,因此很适合工业环境下的应用。但


与CAN总线等更为先进的现场工业总线相比,其处理错误的能力还稍显逊色,所以在软件部分还需要进行特别的设计,以避免


数据错误等情况发生。另外,系统的数据冗余量较大,对于速度要求高的应用场所不适宜用RS-485总线。虽然RS-485总线存


在一些缺点,但由于它的线路设计简单、价格低廉、控制方便,只要处理好细节,在某些工程应用中仍然能发挥良好的作用。


总之,解决可靠性的关键在于工程开始施工前就要全盘考虑可采取的措施,这样才能从根本上解决问题,而不要等到工程后期


再去亡羊补牢。



日志标题:关于指针函数的范例 !多级菜单和按键
发表时间:2007-1-24 14:02:00

关于指针函数的范例 作者[xiaoqi]?

--- 斑竹编写 ---



#define ubyte unsigned char
#define uint unsigned int
#define ulong unsigned long

ubyte kbCode; // 按键编码纪录
ubyte kbStatus; // 键盘当前状态,可以理解为菜单层次

// 按键的四种不同工作状态对应的函数指针对照表,每三字节对应一个按键
// 每一项包含三个字节,分别代表按键码,键盘状态,对应处理程序编号
// 本表对应于日常操作,不是修改状态
ubyte code TAB0[46]={
0x11,0x00,0x01, // 按键'1' func1
0x12,0x00,0x01, // 按键'2' func1
0x14,0x00,0x01, // 按键'3' func1
0x1a,0x00,0x01, // 按键'4' func1
0x2a,0x00,0x01, // 按键'5' func1
0x4a,0x00,0x01, // 按键'6' func1
0x01,0x00,0x01, // 按键'7' func1
0x02,0x00,0x01, // 按键'8' func1
0x04,0x00,0x01, // 按键'9' func1
0x10,0x00,0x01, // 按键'0' func1
0x20,0x00,0x01, // 按键'.' func1
0x08,0x00,0x02, // 按键'Clear' func2
0x18,0x00,0x03, // 按键'U/D' func3
0x8a,0x01,0x04, // 按键'shift' func4
0x40,0x02,0x05, // 按键'last' func5
0x00}; // 本表结束标志

ubyte code TAB1[40]={
0x12,0x03,0x06, // 按键'2' func6
0x14,0x03,0x07, // 按键'3' func7
0x2a,0x03,0x08, // 按键'5' func8
0x4a,0x03,0x09, // 按键'6' func9
0x01,0x03,0x12, // 按键'7' func18
0x8a,0x03,0x14, // 按键'shift' func20
0x11,0x01,0x0a, // 按键'1' func10
0x1a,0x01,0x0b, // 按键'4' func11
0x04,0x01,0x0c, // 按键'9' func12
0x10,0x01,0x0d, // 按键'0' func13
0x80,0x01,0x0e, // 按键'Enter' func14
0x08,0x00,0x02, // 按键'Clear' func2
0x20,0x03,0x13, // 按键'.' func19
0x00}; // 本表结束标志

ubyte code TAB2[7]={
0x40,0x02,0x0f, // 按键'last' func15
0x08,0x00,0x02, // 按键'Clear' func2
0x00}; // 本表结束标志

ubyte code TAB3[40]={
0x11,0x03,0x10, // 按键'1' func16
0x12,0x03,0x10, // 按键'2' func16
0x14,0x03,0x10, // 按键'3' func16
0x1a,0x03,0x10, // 按键'4' func16
0x2a,0x03,0x10, // 按键'5' func16
0x4a,0x03,0x10, // 按键'6' func16
0x01,0x03,0x10, // 按键'7' func16
0x02,0x03,0x10, // 按键'8' func16
0x04,0x03,0x10, // 按键'9' func16
0x10,0x03,0x10, // 按键'0' func16
0x20,0x03,0x10, // 按键'.' func16
0x08,0x00,0x02, // 按键'clear' func2
0x80,0x01,0x11, // 按键'Enter' func17
0x00}; // 本表结束标志

ubyte code *TAB[4]={TAB0,TAB1,TAB2,TAB3}; // 总指针表

// 指针函数列表
code void(code *KeyProcTab[])()={
NoKey, /*0# (00H)#*/
func1, /*1# (01H)#*/
func2, /*2# (02H)#*/
func3, /*3# (03H)#*/
func4, /*4# (04H)#*/
func5, /*5# (05H)#*/
func6, /*6# (06H)#*/
func7, /*7# (07H)#*/
func8, /*8# (08H)#*/
func9, /*9# (09H)#*/
func10, /*10# (0AH)#*/
func11, /*11# (0BH)#*/
func12, /*12# (0CH)#*/
func13, /*13# (0DH)#*/
func14, /*14# (0EH)#*/
func15, /*15# (0FH)#*/
func16, /*16# (10H)#*/
func17, /*17# (11H)#*/
func18, /*18# (12H)#*/
func19, /*19# (13H)#*/
func20 /*20# (14H)#*/
};

void NoKey()
{
return;
}

void func0()
{
;
}
void func1()
{
;
}
....................
void func20()
{
;
}


//////////////////////////////////////////////////////////////////////
// 键盘监控,根据当前状态特征指向不同的指针表,并调用相应的函数 //
//////////////////////////////////////////////////////////////////////
void mon(ubyte key)
{
ubyte code *data pTab;
kbCode="key";
pTab=*(TAB+kbStatus); // 根据当前状态特征指向分指针表
while(*pTab != key && *pTab != 0) // 按照按键代码查表
{
pTab += 3; // 查表
}
if(*pTab!=0){
pTab++;
kbStatus=*pTab; // 取状态特征字节
pTab++; // 指向执行函数
(*KeyProcTab[*pTab])(); // 指针函数调用
}
}

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条