<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>
<![CDATA[zhuhaiting520的博客]]></title>
 <link>
http://zhuhaiting520.blogcn.com</link>
<description>
<![CDATA[null]]></description>
<managingEditor>
<![CDATA[zhuhaiting520]]></managingEditor>
<dc:creator>
<![CDATA[zhuhaiting520]]></dc:creator>
<blogcn_uid>
zhuhaiting520</blogcn_uid>
<blogcn_hits>
256</blogcn_hits>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[开关电源PCB排版基本要点]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17376841.shtml</link>
<description>
<![CDATA[<P><STRONG>摘要</STRONG>：开关电源PCB排版是开发电源产品中的一个重要过程。许多情况下，一个在纸上设计得非常完美的电源可能在初次调试时无法正常工作，原因是该电源的PCB排版存在着许多问题．详细讨论了开关电源PCB排版的基本要点，并描述了一些实用的PCB排版例子。<BR><STRONG>关键词</STRONG>：PCB排版；开关电源 
<P><B>O 引言</B><BR>&nbsp;&nbsp;&nbsp; 为了适应电子产品飞快的更新换代节奏，产品设计工程师更倾向于选择在市场上很容易采购到的AC／DC适配器，并把多组直流电源直接安装在系统的线路板上。由于开关电源产生的电磁干扰会影响到其电子产品的正常工作，正确的电源PCB排版就变得非常重要。开关电源PCB排版与数字电路PCB排版完全不一样。在数字电路排版中，许多数字芯片可以通过PCB软件来自动排列，且芯片之间的连接线可以通过PCB软件来自动连接。用自动排版方式排出的开关电源肯定无法正常工作。所以，没计人员需要对开关电源PCB排版基本规则和开关电源工作原理有一定的了解。</P>
<P><B>1 开关电源PCB排版基本要点<BR>l.1 电容高频滤波特性</B></P>
<P><B>&nbsp;&nbsp;&nbsp; </B>图1是电容器基本结构和高频等效模型。</P>
<P align=center><IMG height=212 src="http://www.21ic.com/info/images/pst/200509/5/5a.jpg" width=345 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电容的基本公式是</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=45 src="http://www.21ic.com/info/images/pst/200509/5/5b.jpg" width=255 border=0><BR>&nbsp;&nbsp;&nbsp; 式(1)显示，减小电容器极板之间的距离(d)和增加极板的截面积(A)将增加电容器的电容量。<BR><BR>&nbsp;&nbsp;&nbsp; 电容通常存在等效串联电阻(ESR)和等效串联电感(ESL)二个寄生参数。图2是电容器在不同工作频率下的阻抗(Zc)。</P>
<P align=center><IMG height=292 src="http://www.21ic.com/info/images/pst/200509/5/5d.jpg" width=351 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 一个电容器的谐振频率(fo)可以从它自身电容量(C)和等效串联电感量(LESL)得到，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=50 src="http://www.21ic.com/info/images/pst/200509/5/5c.jpg" width=287 border=0><BR>&nbsp;&nbsp;&nbsp; 当一个电容器工作频率在fo以下时，其阻抗随频率的上升而减小，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=58 src="http://www.21ic.com/info/images/pst/200509/5/5e.jpg" width=302 border=0><BR>&nbsp;&nbsp;&nbsp; 当电容器工作频率在fo以上时，其阻抗会随频率的上升而增加，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=34 src="http://www.21ic.com/info/images/pst/200509/5/5f.jpg" width=310 border=0><BR>&nbsp;&nbsp;&nbsp; 当电容器工作频率接近fo时，电容阻抗就等于它的等效串联电阻(RESR)。<BR><BR>&nbsp;&nbsp;&nbsp; 电解电容器一般都有很大的电容量和很大的等效串联电感。由于它的谐振频率很低，所以只能使用在低频滤波上。钽电容器一般都有较大电容量和较小等效串联电感，因而它的谐振频率会高于电解电容器，并能使用在中高频滤波上。瓷片电容器电容量和等效串联电感一般都很小，因而它的谐振频率远高于电解电容器和钽电容器，所以能使用在高频滤波和旁路电路上。由于小电容量瓷片电容器的谐振频率会比大电容量瓷片电容器的谐振频率要高，因此，在选择旁路电容时不能光选用电容值过高的瓷片电容器。为了改善电容的高频特性，多个不同特性的电容器可以并联起来使用。图3是多个不同特性的电容器并联后阻抗改善的效果。</P>
<P align=center><IMG height=340 src="http://www.21ic.com/info/images/pst/200509/5/5g.jpg" width=313 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电源排版基本要点1 旁路瓷片电容器的电容不能太大，而它的寄生串联电感应尽量小，多个电容器并联能改善电容的高频阻抗特性。<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; 图4显示了在一个PCB上输入电源(Vin)至负载(RL)的不同走线方式。为了降低滤波电容器(C)的ESL，其引线长度应尽量减短；而Vin。正极至RL和Vin负极至R1的走线应尽量靠近。</P>
<P align=center><IMG height=300 src="http://www.21ic.com/info/images/pst/200509/5/5h.jpg" width=296 border=0></P>
<P><B>1．2 电感高频滤波特性</B><BR>&nbsp;&nbsp;&nbsp; 图5中的电流环路类似于一匝线圈的电感。高频交流电流所产生的电磁场R(t)将环绕在此环路的外部和内部。如果高频电流环路面积(Ac)很大，就会在此环路的内外部产生很大的电磁干扰。</P>
<P align=center><IMG height=288 src="http://www.21ic.com/info/images/pst/200509/5/5i.jpg" width=327 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电感的基本公式是</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=52 src="http://www.21ic.com/info/images/pst/200509/5/5j.jpg" width=272 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 从式(5)可知，减小环路的面积(Ac)和增加环路周长(lm)可减小L。<BR><BR>&nbsp;&nbsp;&nbsp; 电感通常存在等效并联电阻(EPR)和等效并联电容(Cp)二个寄生参数。图6是电感在不同工作频率下的阻抗(ZL)。</P>
<P align=center><IMG height=292 src="http://www.21ic.com/info/images/pst/200509/5/5k.jpg" width=363 border=0></P>
<P><BR>&nbsp;&nbsp;&nbsp; 谐振频率(fo)可以从电感自身电感值(L)和它的等效并联电容值(Cp)得到，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=58 src="http://www.21ic.com/info/images/pst/200509/5/5l.jpg" width=319 border=0><BR>&nbsp;&nbsp;&nbsp; 当一个电感工作频率在fo以下时，电感阻抗随频率的上升而增加，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=32 src="http://www.21ic.com/info/images/pst/200509/5/5m.jpg" width=279 border=0><BR>&nbsp;&nbsp;&nbsp; 当电感工作频率在fo以上时，电感阻抗随频率的上升而减小，即</P>
<P>&nbsp;&nbsp;&nbsp; <IMG height=53 src="http://www.21ic.com/info/images/pst/200509/5/5n.jpg" width=285 border=0><BR>&nbsp;&nbsp;&nbsp; 当电感工作频率接近fo时，电感阻抗就等于它的等效并联电阻(REPR)。<BR><BR>&nbsp;&nbsp;&nbsp; 在开关电源中电感的Cp应该控制得越小越好。同时必须注意到，同一电感量的电感会由于线圈结构不同而产生不同的Cp值。图7就显示了同一电感量的电感在二种不同的线圈结构下不同的Cp值。图7(a)电感的5匝绕组是按顺序绕制。这种线圈结构的Cp值是l匝线圈等效并联电容值(C)的1／5。图7(b)电感的5匝绕组是按交叉顺序绕制。其中绕组4和5放置在绕组1、2、3之间，而绕组l和5非常靠近。这种线圈结构所产牛的Cp是1匝线圈C值的两倍。</P>
<P align=center><IMG height=441 src="http://www.21ic.com/info/images/pst/200509/5/5o.jpg" width=363 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 可以看到，相同电感量的两种电感的Cp值居然相差达数倍。在高频滤波上如果一个电感的Cp值太大，高频噪音就会很容易地通过Cp直接耦合到负载上。这样的电感也就失去了它的高频滤波功能。<BR><BR>&nbsp;&nbsp;&nbsp; 图8显示了在一个PCB上Vin通过L至负载(RL)的不同走线方式。为了降低电感的Cp,电感的二个引脚应尽量远离。而Vin正极至RL和Vin负极至RL的走线应尽量靠近。</P>
<P align=center><IMG height=349 src="http://www.21ic.com/info/images/pst/200509/5/5p.jpg" width=286 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电源排版基本要点2 电感的寄生并联电容应尽量小，电感引脚焊盘之间的距离越远越好。<BR><B><BR>1.3 镜像面</B><BR>&nbsp;&nbsp;&nbsp; 电磁理论中的镜像面概念对设计者掌握开关电源的PCB排版会有很大的帮助。图9是镜像面的基本概念。</P>
<P align=center><IMG height=588 src="http://www.21ic.com/info/images/pst/200509/5/5q.jpg" width=304 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 图9(a)是当直流电流在一个接地层上方流过时的情景。此时在地层上的返回直流电流非常均匀地分布在整个地层面上。图9(h)显示当高频电流在同一个地层上方流过时的情景。此时在地层上的返回交流电流只能流在地层面的中间而地层面的两边则完全没有电流。 一日．理解了镜像面概念，我们很容易看到在图10中地层面上走线的问题。接地层(Ground Plane)，没汁人员应该尽量避免在地层上放置任何功率或信号走线。一旦地层上的走线破坏了整个高频环路，该电路会产牛很强的电磁波辐射而破坏周边电子器件的正常工作。<BR><BR>&nbsp;&nbsp;&nbsp; 电源排版基本要点3 避免在地层上放置任何功率或信号走线。<BR><B><BR>1．4 高频环路<BR>&nbsp;&nbsp;&nbsp; </B>开关电源中有许多由功率器件所组成的高频环路，如果对这△环路处婵得不好的话，就会对电源的正常工作造成很大影响。为了减小高频环路所产生的电磁波噪音，该环路的面积应该控制得非常小。如图l1(a)所示，高频电流环路面积很大，就会在环路的内部和外部产生很强的电磁于扰。同样的高频电流，当环路面积设计得非常小时，如图11(b)所示，环路内部和外部电磁场互相抵消，整个电路会变得非常安静。<BR><BR>&nbsp;&nbsp;&nbsp; 电源排版基本要点4 高频环路的面积应尽可能减小。</P>
<P align=center><IMG height=389 src="http://www.21ic.com/info/images/pst/200509/5/5r.jpg" width=304 border=0></P>
<P><B>1.5 过孔和焊盘放置</B><BR>&nbsp;&nbsp;&nbsp; 许多设计人员喜欢在多层PCB卜放置很多过孔(VIAS)。但是，必须避免在高频电流返同路径上放置过多过。否则，地层上高频电流走线会遭到破坏。如果必须在高频电流路径上放置一些过孔的活，过孔之间可以留出一空间让高频电流顺利通过，图12显示了过孔放置方式。</P>
<P align=center><IMG height=151 src="http://www.21ic.com/info/images/pst/200509/5/5t.jpg" width=405 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电源排版基本要点5 过孔放置不应破坏高频电流在地层上的流经。<BR><BR>&nbsp;&nbsp;&nbsp; 设计者同时应注意不同焊盘的形状会产生不同的串联电感。图13显示了儿种焊盘形状的串联电感值。</P>
<P align=center><IMG height=215 src="http://www.21ic.com/info/images/pst/200509/5/5u.jpg" width=359 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 旁路电容(Decouple)的放置也要考虑到它的串联电感值。旁路电容必须是低阻抗和低ESL乩的瓷片电容。但如果一个高品质瓷片电容在PCB上放置的方式不对，它的高频滤波功能也就消失了。图14显示了旁路电容正确和错误的放置方式。</P>
<P align=center><IMG height=308 src="http://www.21ic.com/info/images/pst/200509/5/5v.jpg" width=404 border=0></P>
<P><B>1．6 电源直流输出</B><BR>&nbsp;&nbsp;&nbsp; 许多开关电源的负载远离电源的输出端口。为了避免输出走线受电源自身或周边电子器件所产生的电磁下扰，输出电源走线必须像图l5(b)那样靠得很近，使输出电流环路的面积尽可能减小。</P>
<P align=center><IMG height=258 src="http://www.21ic.com/info/images/pst/200509/5/5w.jpg" width=289 border=0></P>
<P><B>l.7 地层在系统板上的分隔</B><BR>&nbsp;&nbsp;&nbsp; 新一代电子产品系统板七会同时有模拟电路、数字电路、开关电源电路。为了减小丌关电源噪音对敏感的模拟和数字电路的影响，通常需要分隔不同电路的接地层。如果选用多层PCB，不同电路的接地层可由不同PCB板层来分隔。如果整个产品只有一层接地层，则必须像图16中那样在单层中分隔。无论是在多层PCB上进行地层分隔还是在单层PCB 上进行地层分隔，不同电路的地层都应该通过单点与开关电源的接地层相连接。<BR><BR>&nbsp;&nbsp;&nbsp; 电源排版基本要点6 系统板七不同电路需要不同接地层，不同电路的接地层通过单点与电源接地层相连接。</P>
<P align=center><IMG height=330 src="http://www.21ic.com/info/images/pst/200509/5/5x.jpg" width=401 border=0></P>
<P><B>2 开关电源PCB排版例子</B><BR>&nbsp;&nbsp;&nbsp; 压式开关电源原理图。设汁人员应能在此线路图上区分出功率电路中元器件和控制信号电路中元器件。如果设计者将该电源中所有的元器件当作数字电路中的元器件来处理，则问题会相当严重。通常首先需要知道电源高频电流的路径，并区分小信号控制电路和功率电路元器件及其走线。一般来讲，电源的功率电路主要包括输入滤波电容、输出滤波电容、滤波电感、上下端功率场效应管。控制电路主要包括PWM控制芯片、旁路电容、自举电路、反馈分压电阻、反馈补偿电路。<BR><B><BR>2.l 电源功率电路PCB排版</B><BR>&nbsp;&nbsp;&nbsp; 电源功率器件在PCB上正确的放置和走线将决定整个电源工作是否正常。设计人员首先要对开关电源功率器件上的电压和电流的波形有一一定的了解。</P>
<P align=center><IMG height=491 src="http://www.21ic.com/info/images/pst/200509/5/5y.jpg" width=845 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 图18显示一个降压式开关电源功率电路元器件卜的电流和电压波形。由于从输入滤波电容(Cin)，上端场效应管(S1)和F端场效应管(S2)中所流过的电流是带有高频率和高峰值的交流电流，所以由Cin-S1-S2所形成的环路面积要尽量减小。同时由S2，L和输出滤波电容(Cout)所组成的环路面积也要尽量减小。</P>
<P align=center><IMG height=621 src="http://www.21ic.com/info/images/pst/200509/5/5z.jpg" width=403 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 如果设汁者未按本丈所述的要点来制作功率电路PCB，很可能制作出网19所示的电源PCB，图19的PCB排版存在许多错误：第一，由于Cin有很大的ESL，Cin的高频滤波能力基本上消失；第二，Cin-S1-S2和S1-LCout环路的面积太大，所产生的电磁噪音会对电源本身和周边电路造成很大于扰；第三，L的焊盘靠得太近，造成Cp太大而降低了它的高频滤波功能；第四，Cout焊盘引线太长，造成FSL太大而失去了高频滤波线。 Cin-S1-S2和S2-L-Cout环路的面积已控制到最小。S1的源极，S2的漏极和L之问的连接点是一整块铜片焊盘。由于该连接点上的电压是高频，S1、S2和L需要靠得非常近。虽然L和Cout之间的走线上没有高峰值的高频电流，但比较宽的走线可以降低直流阻抗的损耗使电源的效率得到提高。如果成本上允许，电源可用一面完全是接地层的双面PCB，但必须注意在地层卜尽量避免走功率和信号线。在电源的输入和输出端口还各增加了一个瓷片电容器来改善电源的高频滤波性能。<BR><B><BR>2.2 电源控制电路PCB排版</B><BR>&nbsp;&nbsp;&nbsp; 电源控制电路PCB排版也是非常重要的。不合理的排版会造成电源输出电压的漂移和振荡。控制线路应放置在功率电路的边上，绝对不能放在高频交流环路的中间。旁路电容要尽量靠近芯片的Vcc和接地脚(GND)。反馈分压电阻最好也放置在芯片附近。芯片驱动至场效应管的环路也要尽量减短。<BR><BR>&nbsp;&nbsp;&nbsp; 电源排版基本要点7 控制芯片至上端和下端场效应管的驱动电路环路要尽量短。</P>
<P align=center><IMG height=243 src="http://www.21ic.com/info/images/pst/200509/5/5a1.jpg" width=388 border=0></P>
<P><B>2.3开关电源PCB排版例1</B><BR>&nbsp;&nbsp;&nbsp; 图21是图17 PCB的元器件面走线图。此电源中采用了一个低价PWM控制器(<A href="http://www.chinaicmart.com/series-SEM/SEMTECH.html" target=_blank>SEMTECH</A>型号SCIIO4A)。PCB下层是一个完整的接地层。此PCB功率地层与控制地层之间没有分隔。可以看到该电源的功率电路由输入插座(PCB左上端)通过输入滤波电容器(C1，C2，)，S1，S2，L1，输出滤波电容器(C10,C11,C12,C13)，一直到输出插座(PCB右下端)。SCll04A被放置在PCB的左下端。因为，在地层上功率电路电流不通过控制电路，所以，无必要将控制电路接地层与功率电路接地层进行分隔。如果输入插座是放置在PCB的左下端，那么在地层上功率电路电流会直接通过控制电路，这时就有必要将二者分隔。</P>
<P align=center><IMG height=289 src="http://www.21ic.com/info/images/pst/200509/5/5a2.jpg" width=393 border=0></P>
<P><BR><B>2．4开关电源PCB排版例2</B><BR>&nbsp;&nbsp;&nbsp; 图22是另一种降压式开关电源，该电源能使12V输入电压转换成3．3V输出电压，输出电流可达3A。此电源上使用了一个集成电源控制器(<A href="http://www.chinaicmart.com/series-SEM/SEMTECH.html" target=_blank>SEMTECH</A>型号<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>)。这种控制器将一个功率管集成在电源控制器芯片中。这样的电源非常简单，尤其适合应用在便携式DVD机，ADSL，机顶盒等消费类电子产品。<BR><BR>&nbsp;&nbsp;&nbsp; 同前面例子一样，对于这种简单开关电源，在PCB排版时也应注意以下几点。&nbsp;<BR>&nbsp;&nbsp;&nbsp; 1)由输入滤波电容(C3)，<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>的接地脚(GND)，和D2所围成的环路面积一定要小。这意味着C3及D2必须非常靠近<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>。<BR>&nbsp;&nbsp;&nbsp; 2)可采用分隔的功率电路接地层和控制电路接地层。连接到功率地层的元器件包括输入插座(VIN)，输出插座(VOUT)，输入滤波电容(C3)，输出滤波电容(C2)，D2，<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>。连接到控制地层的元器件包括输出分压电阻(R1，R2)，反馈补偿电路(R3，C4，C3，)，使能插座(EN)，同步插座(SYNC)。</P>
<P align=center><IMG height=386 src="http://www.21ic.com/info/images/pst/200509/5/5a3.jpg" width=762 border=0></P>
<P align=center><IMG height=561 src="http://www.21ic.com/info/images/pst/200509/5/5a4.jpg" width=378 border=0></P>
<P><BR>&nbsp;&nbsp;&nbsp; 3)在<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>接地脚的附近加 个过孔将功率电路接地层与控制信号电路接地层单点式的相连接。<BR><BR>&nbsp;&nbsp;&nbsp; 图23是该电源PCB上层排版图。为了力便读者理解，功率接地层和控制信号接地层分别用不同颜色来表示。在这里输入插座被放置在PCB的上方，而输出插座被放置在PCB的下方．滤波电感(L1)被放在PCB左边并靠近功率接地层，而对于噪音较敏感的反馈补偿电路(R3，C4，C5)则被放存PCB右边并靠近控制信号接地层。D2非常靠近<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>的脚3及脚4。图24是该电源PCB下层排版图。输入滤波电容(C3)被放置在PCB下层并非常靠近<A href="http://www.chinaicmart.com/series-SC4/SC4519.html" target=_blank>SC4519</A>和功率接地层。<BR><B><BR>2.5开关电源PCB排版例3</B><BR>&nbsp;&nbsp;&nbsp; 最后讨论一种多路输出开关电源PCB排版要点。此电源有3组输入电压(12V，5V和3.3V)，4组输出电压(3.3v，2.6V，1.8V，1.2V)。该电源使用了，一集成多路开关控制器(Serotech型号SC2453)。SC2453提供了4.5V～30V的宽输入电压范围，两个高达700kHz开关频率和高达15A输出电流，以及低至0.5V输出电压的同步降压转换器。它还提供了一个专用可调配正压线性调节器和一个专用可调配负压线性调节器。TSSOP-28封装减小了所需线路板面积。两个异相降压转换器可以减小输入电流纹波。图25是这种多路开关电源的原理图。其中3.3V输出由5V输人产生，l.2V输出由12V输入产生，2.6V和1.8V输出由3.3V输入产生。由于该电源上所有元器件都必须被放置在一个面积较小的PCB上，为此必须将电源的功率地层和控制信号地层分隔开来。参照前面几节中讨论过的要点，首先将图25中连接到功率地层的元器件和连接到控制信号地层的元器件区分开来，然后将控制信号元器件放在信号地层上并靠近SC2453控制信号地层与功率地层通过单点相连接。这连接点通常会选择在控制芯片的接地脚(SC2453中的脚21)。图26详细描述了该电源排版方式。</P>
<P align=center><IMG height=492 src="http://www.21ic.com/info/images/pst/200509/5/5a5.jpg" width=800 border=0></P>
<P>&nbsp;&nbsp;&nbsp; 电源排版基本要点8 开关电源功率电路和控制信号电路下的元器件需要连接不同的接地层，这二个地层一般都是通过单点相连接。</P>
<P align=center><IMG height=739 src="http://www.21ic.com/info/images/pst/200509/5/5a6.jpg" width=441 border=0></P>
<P><B>3 结语</B><BR>&nbsp;&nbsp;&nbsp; 开关电源PCB排版的8个要点：<BR>&nbsp;&nbsp;&nbsp; 1)旁路瓷片电容器的电容不能太大，而它的寄生串联电感应尽量小，多个电容并联能改善电容的阻抗特性；<BR>&nbsp;&nbsp;&nbsp; 2)电感的寄生并联电容应尽量小，电感引脚焊盘之间的距离越远越好；<BR>&nbsp;&nbsp;&nbsp; 3)避免在地层上放置任何功率或信号走线；<BR>&nbsp;&nbsp;&nbsp; 4)高频环路的面积应尽可能减小；<BR>&nbsp;&nbsp;&nbsp; 5)过孔放置小应破坏高频电流在地层上的路径；<BR>&nbsp;&nbsp;&nbsp; 6)系统板上一小同电路需要不同接地层，小同电路的接地层通过单点与电源接地层相连接；<BR>&nbsp;&nbsp;&nbsp; 7)控制芯片至上端和下端场效应管的驱动电路环路要尽量短；<BR>&nbsp;&nbsp;&nbsp; 8)开关电源功率电路和控制信号电路元器件需要连接到小同的接地层，这二个地层一般都是通过单点相连接。</P>]]></description>
<pubDate>
2008-07-02 15:55:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17376841.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17376841.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[铁电存储器FM3808在TMS320VC5402系统中的应用]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17351646.shtml</link>
<description>
<![CDATA[<STRONG>&nbsp;&nbsp;&nbsp;&nbsp;摘要：</STRONG>FM3808是Ramtrom公司生产的新型超低功耗非易失铁电存储器，该器件可支持对存储区的高速读写，并可进行近乎无限次的写入。FM3808内部除具有256kB的存储阵列外还集成了实时时钟和系统监控模块，因而功能十分强大。文中介绍了FM3808的性能特点、内部结构和工作原理，分析了<A href="http://www.chinaicmart.com/series-TMS/TMS320VC5402.html" target=_blank>TMS320VC5402</A> DSP的并行引导装载模式。给出了DSP与FM3808组成的并行引导接口方案。 
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; <B>关键词：</B></SPAN>铁电存储器 数字信号处理器 并行引导装载模式 FM3808</P>
<P style="TEXT-INDENT: 0px"><B>1 引言</B></P>
<P style="TEXT-INDENT: 30px">铁电存储器（FRAM）是Ramtron公司近年推出的一款掉电非易失性存储器，它的核心技术是铁电晶体材料。这一特殊材料的运用使铁电存储器可以同时拥有随机存储记忆体（RAM）和非易失存储器的综合特性。与EEPROM相比，FRAM可以总线速度写入数据，且在写入之后不需要任何延时等待。面EEPROM的慢速和大电流写入使其需要用高出FRAM2500倍的能量去写入每个字节。同时，FRAM有近乎无限次的写入寿命，而且价格比相同容量的不挥发锂电SRAM低很多，因此，FRAM特别适合那些对数据采集、写入时间要求很高的场合。自FRAM问世以来，已凭借其各种优点被广泛应用于测量和医疗仪表、航空航天、门禁系统和汽车黑匣子等系统之中。<B><BR><BR>2 主要特性有内部结构</B></P>
<P style="TEXT-INDENT: 30px">FM3808是一款存储容量为32k×8bits的新型FRAM（减16字节），它具有高速读写、超低功耗和无限次读写等特性。其主要特点如下：</P>
<P style="TEXT-INDENT: 30px">*采用32752×8位存储结构；</P>
<P style="TEXT-INDENT: 30px">*读写次数高达10 11次，具有10年的数据保存能力；</P>
<P style="TEXT-INDENT: 30px">*最快并行读取速度为70ns，写入无延时；</P>
<P style="TEXT-INDENT: 30px">*具有实时时钟和日历功能，时钟寄存器在地址空间的最上16字节处；</P>
<P style="TEXT-INDENT: 30px">*外部供给后备电源，提供32.768kHz的时间记录晶振；</P>
<P style="TEXT-INDENT: 30px">*具有可编程的实时、日历时钟和报警时间；</P>
<P style="TEXT-INDENT: 30px">*可编程的看门狗定时器；</P>
<P style="TEXT-INDENT: 30px">*可编程的电源监控模块。</P>
<P style="TEXT-INDENT: 30px">FM3808芯片上集成了了三种不同的功能：32k×8B的存储单元、实时时钟、日历功能、系统监控功能。其结构框图如图1所示。<B><BR><BR>3 FM3808功能说明</B></P>
<P style="TEXT-INDENT: 30px">3．1 FM3808实时时钟操作</P>
<P style="TEXT-INDENT: 30px">实时时钟（RTC）由晶体振荡器、时钟分频器和一个系统寄存器组成。晶体振荡只有在控制寄存器器（7FF8h）的第7位设置为0时才能开始工作，时钟分频器将32.768kHz的信号分频成1kHz，并以秒为单位来计数，可以用标志寄存器（7FF0h）并通过设置R和W来对各实时钟寄存器进行读和写。实时时钟需要提供电源才能工作，当供电电压VDD下降到低于补给电压VBAK时，实时时钟电源由VBAK供给。对于FM3808来说，用户可以选择用电流做电源，也可以选择用电容来完成供电。使用<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>μF的电容时，其供电时间可达30分钟，若使用0.4μF的电容，则供电时间可长达240小时。</P>
<P style="TEXT-INDENT: 30px">当标志寄存器的第2位（CAL）设置成1时，实时时钟进入校准模式。在校准栻上，INT引脚将输出512Hz的方波，用户可以通过测量INT脚偏离512Hz的误差来进行时钟校准，校准误差由用户写入到7FF8h单元。在进行完时钟校准以后，在校准温度下每月的最大误差为±4.34ppm分，通过置CAL位为0可退出时钟校准模式。</P>
<P style="TEXT-INDENT: 30px">3．2 FM3808监控操作</P>
<P style="TEXT-INDENT: 30px">系统监控主要包括：报警功能、看门狗定时器、电源监控器和系统中断。</P>
<P style="TEXT-INDENT: 30px">报警功能是把应用编程写入的时间值和系统相应的值进行对比，如果匹配，就通过INT产生中断并设置相应的标志位AF为1。报警功能提供有四种匹配值，分别为秒、分、时、日，通过设置相应的位为0可选择对比位。</P>
<P style="TEXT-INDENT: 30px">看门狗定时器由可装载计数器和自由运行的计数器组成，看门狗定时器的工作频率为32Hz，此时晶振OSCEN必须设置为0。定时器溢出值存放在7FF7h。系统上电时会自动将溢出值加载到装载寄存器，此时自由运行计数器开始计时。当计数器的值与装载值之前，可以通过设置WDS位为1来重新装载溢出值，而此时不会有中断产生。<BR><BR><FONT size=3>&nbsp;&nbsp;&nbsp; </FONT><SPAN class=main1>电源监控功能是将VDD与三个门电压相比比较。这三个门电压分别为中断门电压VINT、存储器停止门电压VLO、外部供给电压VBAK。当VDD达到不同的电压门限时，FM3808内相应的功能将停止工作。FM3808共可产生四个外部中断：看门狗中断、报警时钟中断、电源低电压中断和供给电源中断。</P>
<P style="TEXT-INDENT: 30px">3．3 FM3808存储器操作</P>
<P style="TEXT-INDENT: 30px">FM3808逻辑上可以分成<A href="http://www.chinaicmart.com/series-327/32768.html" target=_blank>32768</A>×8位存储结构，最上面的16字节分给了实地时钟的寄存器。FM3808通过并行口与外部微处理器进行接口，其操作与SRAM十分类似。FM3808半存储单元分成32个块，每块由256行和4列即1k×8的结构组成。其中A0~A7为行选择线，A8~A9为列选择线，A10~A14为块选择线。FM3808芯片的CE不能接地，这与普通SRAM不同。FM3808的读取过程是这样的：在CE的下降沿，地址信号被锁存，并启动一个读周期，此后即使CE发生变化也不会影响这个周期的完成。由于FM3808需要在CE的下降沿才能锁存地址信号，所以不能被CE接地，有效读时序如图2所示。</P>
<P style="TEXT-INDENT: 30px">在读时间数据之前，需把7FF0.0设置为“1”，读出时间数据后，应将7FF0.0设置为“0”。在读数据时，当地址信号锁存后，在OE允许的情况下，DQ0~DQ7输出数据。FM3808共有两种写工作模式，一种是由WE来控制，另一种是由CE控制。由WE控制的写时序如图3所示。</P>
<P style="TEXT-INDENT: 30px">虽然FM3808要求在CE下降之间，地址信号要存在5ns的时间，但实际应用证明，同时输出CE与地址信号的接法也是可以的。由于FRAM的读写过程会对内部存储单元造成改变，因此在一次读或写后，要很快对原有的数据进行“修补”。“修补”的过程在CE为高电平时进行，所以在一次读写的操作中，CE为低的时间不能太长，否则FM3808将来不及“修补”原有数据而造成数据丢失。FM3808规定CE为低的时间不超过10μs。</P>
<P style="TEXT-INDENT: 0px"><B>4 与TMS320C5402的引导接口</B></P>
<P style="TEXT-INDENT: 30px">TMS320C5402上电后将首先检查MP/MC引脚的状态，若该脚为低电平，说明DSP被设置为微计算机模式，从片内ROM的0FF80h地址开始执行程序。在TMS320C5402的0FF80h地址处，存放着一条跳转至0F800h处执行DSP自引导装载（Bootloader）程序的指令。当TMS320C5402的Bootloader程序时，它将会按HPI装载模式→串行EEPROM装载程序→并行装载模式→标准串行口装模式→I/O口装载模式的顺序循环检测，以决定执行哪种启动模式。<BR><BR></SPAN><FONT size=3>&nbsp;&nbsp;&nbsp; </FONT><SPAN class=main1>对以TMS320C5402为核心的数字信号处理系统来说，并行引导装载模式是最适用的。TMS320C5402的并行引导装载模式是将程序代码从外界存储器所对应的DSP数据导域区中加载到片内DARAM中。TMS320C5402的并行 装载流程如图4所示。</P>
<P style="TEXT-INDENT: 30px">采用并行装载模式对程序进行加载国时，要根据并行装载的格式来配置Flash的程序数据存储空间。可先在DSP对应的数据空间FFFEH和FFFFH地址内写入要存放程序的地址，然后根据并行装载的数据流，将标识控制字、各个寄存器的初始化值、装载后的起始运行地址、程序段的大小和装载地址依次写入Flash存储程序的地址中，电子最后写入编写的程序。</P>
<P style="TEXT-INDENT: 30px">FM3808与TMS320C5402的并行接口设计如图5所示，由于FM3808的工作电源为5V，因而系统中使用了SN74LVTH6244和SN74LVTH2245来完成接口设计。又由于TMS320C5402数据的寻址范围最大为64k字，而在自己不编写Bootloader程序的情况下，并行引导装载模式最大只能装载32k字的程序或数据。因此，若程序数据大于32k，就需要重新设计。</P>
<P style="TEXT-INDENT: 30px">TMS320C5402上电复位装载时，由于Bootloader程序已在初始化时将XF设置为高电平，因而在通过EPM3202总的逻辑后，TMS320C5402可以将FM3808 08000h-0FFFFh单元中的数据读到TMS320C5402对应于000h-3FFFh寻址区的片内DARAM中。而在系统进入并行引导装载模式后，TMS320C5402会从数据寻址为0FFFFh的单元（A15=1，选中Flash）中读取将要载入的程序存储区首地址，然后从程序存储首地址处将标识控制字、各个寄存器的初始化值、装载后的起始运行地址、程序段的大小，装载地址依次装载到片内DRAM中。</P>
<P style="TEXT-INDENT: 30px">若程序较大，而系统中还要有其它数据存储器来存放数据，那么就需要让出FM3808所占用的数据空间，此时可在EPM3202逻辑控制中使用XF。并可用主处理程序的第一条语句RSBX XF来置XF引脚为低电平，同时使CE片选无效，从而让出数据空间。若程序较小，而FM3808还需做为数据存储单元，那么可设置XF为高，然后通过CPLD中的逻辑程序来控制数据的写入和读出。CPLD的内部逻辑如图6所示。<B><BR><BR>5 设计中应注意的问题</B></P>
<P style="TEXT-INDENT: 30px">（1）该设计方案在TMS320C5402执行Bootloader程序时所能寻址的并行接口FRAM的最大空间为32k字节，如果脱机独立运行系统的程序超过了32k字节，则只能采用另外的替代方法。</P>
<P style="TEXT-INDENT: 30px">（2）FM3808中的程序数据流要严格按照并行装载的数据流来编写，以确保并行装载的成功。对FM3808数据的写入和读出应通过设置SN74LVTH2245的OE和DIR来共同完成，本系统就是通过CPLD来进行逻辑控制的，实际上也可用VHDL语言来编写逻辑。</P>
<P style="TEXT-INDENT: 30px">（3）在设计过程中，可以利用FM3808中的看门狗电路来对系统运行进行监控。系统必须使用FM3808的低电压检测功能，在检测到掉电后，CPU应立即把CS端的电平置“1”，以防止在上电或掉电时FM3808中的数据发生改变。</P>
<P style="TEXT-INDENT: 0px"><B>6 结语</B></P>
<P style="TEXT-INDENT: 30px">FM3808是拥有高速读写，超低功耗和无限次写入等特性的高性能并口存储器，它内部集成了实时时钟和系统监控功能，具有很强的实用性。通过FM3808与TMS320C540组成的硬件系统，可完成证实系统的稳定性和FM3808的性能优势。FRAM以其快速写入、抗干扰、低功耗等优点，必须成为一种颇具竞争力的存储器。</P></SPAN>]]></description>
<pubDate>
2008-07-01 15:03:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17351646.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17351646.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[Linear USB电源管理器和36V电池充电器]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17242514.shtml</link>
<description>
<![CDATA[<P>凌特公司（<A href="http://www.chinaicmart.com/series-LIN/LINEAR.html" target=_blank>LINEAR</A> <A href="http://www.chinaicmart.com/series-TEC/TECHNOLOGY.html" target=_blank>TECHNOLOGY</A> Corporation）推出 LTC4089 和 LTC4089-5，这两款器件都具有自主电源管理器、理想二极管控制器和独立高压开关电池充电器以用于便携式 USB 装置。就高效率充电而言，它们的开关拓扑考虑了各种输入情况，包括高达 36V（40V 最大值）的高压电源，如 12V AC-DC 交流适配器、FireWire 端口或汽车电池。此外，它们也接受低压电源，如 5V 交流适配器或 USB 输入以及单节锂离子/锂聚合物电池。LTC4089/-5 具有电源通路（PowerPathTM）控制，可用 USB 总线或交流适配器电源为 USB 外围设备供电，并为该外围设备的单节锂电池充电，而且在电池耗尽或缺少电池的情况下还允许即时接通操作。为了满足 USB 限流规格要求，LTC4089/-5 在系统负载电流增大时自动降低电池充电电流。为了确保一个满充电电池在连接总线时处于满充电状态终止，IC 将通过 USB 总线向负载输送功率，而不是从电池吸取功率。一旦所有电源都去掉，电流就通过内部 <A href="http://www.chinaicmart.com/series-200/200M.html" target=_blank>200M</A>Ω 低损耗理想二极管从电池流向负载，最大限度地减小了压降和功耗。提供用于驱动一个可选外部 PFET 的板载电路，以便在应用需要的情况下把理想二极管的总阻抗降至 50mΩ以下，从而实现较高的工作效率。 <BR><BR>LTC4089 的开关稳压器具有电池跟踪（Bat-TrackTM）自适应输出控制功能，在该开关稳压器的输出电压自动跟踪电池电压的时候，极大地提高了能达到 1.2A 的电池充电器的效率。LTC4089-5 从高压输入产生一个固定的 5V 输出，为单节锂离子/锂聚合物电池充电。该电池充电器的浮动电压预置为 4.2V，在 0oC 至 85oC 的温度范围内保证 1.0% 的准确度。充电电流非常容易用单个电阻编程。在电池预查验和限定资格情况下，自动地以 10% 的编程电流对完全放电的电池进行涓流充电，直到电池电压超过 2.9V 为止。到充电终止时的总充电时间由外部电容器编程设定，提供 C/10 充电电流检测输出。其它功能包括热调节、NTC 热敏电阻输入用于合格温度的充电、电池自动再充电、反向电流隔离和欠压闭锁。 <BR><BR>LTC4089/-5 采用扁平（0.75mm）纤巧 22 引脚 6mm x 3mm DFN 封装，在 -40oC 至 85oC 的温度范围内工作是有保证的。以 1,000 片为单位批量购买，每片起价为 2.95 美元。 <BR><BR>性能概要：LTC4089 和 LTC4089-5 <BR><BR>· 单片集成电路包括 USB 电源管理器、理想二极管控制器和高压电池充电器 <BR>· 在输入电源之间无缝转换：锂离子电池、USB 和 6V~36V（40V 最大值）外部高压电源 <BR>· 独立高效率 1.2A 电池充电器 <BR>· 电池跟踪自适应输出控制（LTC4089） <BR>· 固定 5V 输出（LTC4089-5） <BR>· 不存在外部电源/USB 时，<A href="http://www.chinaicmart.com/series-200/200M.html" target=_blank>200M</A>Ω 的内部理想二极管加上可选外部理想二极管控制器提供低损耗电源通路 <BR>· 从 USB 输入进行与负载有关的充电确保了电流规格的相符性 <BR>· 热调节最大限度地提高了充电速率并防止过热 <BR>· 从 USB 输入可选 100% 或 20% 限流（500mA/100mA） <BR>· 以 0.8% 的初始准确度预置 4.2V 充电电压 <BR>· 用 C/10 充电电流检测输出实现定时器终止 <BR>· NTC 热敏电阻输入用于实现合格温度的充电 <BR>· 紧凑型扁平（0.75mm）6mm x 3mm DFN-22 封装 <BR><BR></P>]]></description>
<pubDate>
2008-06-28 14:20:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17242514.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17242514.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[用PIC12F675实现直流电机控制]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17242321.shtml</link>
<description>
<![CDATA[<FONT color=#000000>当前小型要求不太高的调速装置，如晒图机，用可控硅相位控制，供给直流电机。还使用双基极管，以产生脉冲。用一片单片机取代上述控制现在成为可能。生产中不用调试，增加许多功能，如零位起动（去掉了外部硬件连锁）、可选速度上升时间等功能。使系统操作维修方便，运行可靠。<BR><BR></FONT><A href="http://www.chinaicmart.com/series-PIC/PIC12F675.html" target=_blank><FONT color=#000000>PIC12F675</FONT></A><FONT color=#000000> 有6个I/O，现用4个。设定GP1为A/D输入，作为速度给定口，现用电位器0-5V输入。设零中断输入口，接产生过零脉冲A到GP2。设定GP3和GP5为一般I/O，GP3为开停机输入口，接到开关上。GP5为脉冲输出口，经电阻接到触发三极管基极上。 </FONT>
<P></P>
<P><FONT color=#000000>触发的控制方法：在全波整流器输出端，电容滤波前，用三极管取出过零脉冲。GP2中断，对半周波记时器（相角计数器）清零。表示相角计数器从零开始，再使用TMR0溢出100祍中断（当然也可以再小些，以增加角度的分辨率），在中断中对半周波计时器加1，和比较相角的给定，是否相等？如相等，发脉冲的允许信号为ON，脉冲一直发到半周波结束。发多脉冲的原因，是直流电机的特殊要求。在0?0度相角，反电势大于电源电压时，发触发脉冲也触发不了可控硅。用一个脉冲触发不了可控硅。必须等到电机速度下降，反电势小于电源电压时才能触发可控硅，产生电流跳动，转速跳动。用多脉冲触发时，第一个不能触发第二个第三个…自适应有效的触发。<BR>速度上升时间控制：用一个跟随量与半周波记时器比较如相等，发脉冲的允许信号为ON，跟随量跟随速度给定。跟随的方法是按照用户的要求设定，定时的大小，定时进入比较，对跟随量加减1控制。<BR>还可以设定起始的爬行速度，高速度限幅等。此电路应用于晒图机，去掉了外部硬件零位起动连锁，起动时间符合要求，运行平稳。<BR>天津集成飞星复印机械技术有限公司经过多次实验准备小量投入试生产。此系统造价低，易于生产调试，设定好速度以后可不再设，软件缓启动，不会伤硬件，运行可靠。</FONT></P>]]></description>
<pubDate>
2008-06-28 14:11:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17242321.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17242321.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[打开virtuoso的一些功能]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17213214.shtml</link>
<description>
<![CDATA[打开virtuoso的一些功能<BR><BR>一、Connectivity --&gt; Mark net<BR><BR></A><BR><BR>如图所示，此功能就是可以选中相关连的层(通常大家会采用skill 来达到这一功能)，这里讲的是<BR>调用tech file来完成的。<BR>定义名为marknet.tf文件，内容如下：<BR>layerRules(<BR>viaLayers(<BR>(ploy cont metal1)<BR>(metal1 via metal2)<BR>));<BR><BR>保存后在CIW--&gt;<A href="http://www.chinaicmart.com/series-TEC/TECHNOLOGY.html" target=_blank>TECHNOLOGY</A> file -&gt;load -&gt; layerRules 中进行调用 (注意 与原来的tech file 进行merge 操作)<BR>如果点击metal1，就会显示相连接的poly和metal2层，以方便大家查找某个net的走向。<BR><BR>二、打开cadence 特有的stroke 功能<BR><BR></A><BR><BR>此功能就是只采用鼠标即可完成命令的调用。(用最右边的按键，按住后绘出相应的笔划，即可<BR>得到相应的命令)。具体笔划如下：<BR><BR></A><BR><BR>启动这一功能在CIW中输入或写入.cdsinit文件中<BR><BR>load(prependInstallPath("etc/sted/stroke.il"))<BR>load(prependInstallPath("etc/sted/defstrokes.il"))<BR>hiLoadStrokeFile("def.strokes" "Layout")<BR><BR>]]></description>
<pubDate>
2008-06-27 14:35:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17213214.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17213214.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[MSC1202Y3RHHT的技术参数]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17176018.shtml</link>
<description>
<![CDATA[产品型号:<A href="http://www.chinaicmart.com/series-MSC/MSC1202Y3RHHT.html" target=_blank>MSC1202Y3RHHT</A><BR>工作电压 (V):2.7-5.5<BR>速度/频率(MHz):33<BR>Flash (字节):8K<BR>RAM(字节):256<BR>定时器/WDT:2/Y<BR>A/D:16BitΣ-ΔADC<BR>I/O:16<BR>串行通讯:SPI/ UART/I2C<BR>封装/温度(℃):36QFN/-40~85<BR>描述:带8KB FLASH和16bit ADC的<A href="http://www.chinaicmart.com/series-805/8051.html" target=_blank>8051</A> 单片机<BR><BR>]]></description>
<pubDate>
2008-06-26 15:04:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17176018.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17176018.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[以PLD器件实现自动扫描去抖的编码键盘设计]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17118341.shtml</link>
<description>
<![CDATA[1 GAL6002芯片简介
<P>　　GAL6002是<A href="http://www.chinaicmart.com/series-LAT/LATTICE.html" target=_blank>LATTICE</A>公司研制的电可擦除、可重复编程的高性能PLD器件，图1所示是其引脚排列。GAL6002具有78×64×36 FPLA结构，可提供78×64的可编程与阵列和64×36的可编程或阵列。它具有10个输出宏单元、8个隐埋宏单元及20个输入和I／O宏单元。它的两个独立输入时钟可分别用于输入和输出宏单元的控制。其输出宏单元和隐埋宏单元的寄存器共用一个高有效复位乘积项。每个寄存器复位为“0”。输出宏单元和输出脚之间均有一个反相缓冲器，每个输出缓冲器的使能可由单独的乘积项来控制。</P>
<P>　　2 设计原理</P>
<P>　　直接访问方式下的接口电路如图2所示。以下分别从去抖电路、自动扫描电路和接口电路三方面来描述该自动扫描去抖编码键盘电路的设计原理。</P>
<P>　　2．1去抖电路</P>
<P>　　去抖电路用来执行两个功能：其一是当按键按下时产生一个“冻结”信号FREZ，以用来停止并“冻结”扫描状态机直到按键被释放。它的ABEL方程为：</P>
<P>FREZ：＝!（COL3＆COL2＆COL1＆COL0）；</P>
<P>其二是当输出保持低电平达两个（或更多）相邻时钟周期时产生一个中断INT。其ABEL方程为：</P>
<P>　　INT：＝FREZ＆！（COL3＆COL2＆COL1＆COL0）；</P>
<P>　　2．2 自动扫描电路</P>
<P>　　自动扫描电路的软件定义如下：</P>
<P>R OWREG＝［ROW3，ROW2，ROW1，ROW0］；</P>
<P>扫描状态机在输入时钟的上升沿依次向键盘行线发送“0”电平以扫描键盘，如果FREZ信号被使能，则“冻结”状态机。该操作在ABEL文件中的状态图描述如下：<BR></P>
<P>2．3 接口电路</P>
<P>　　在该电路的ABEL文件中，可由真值表界定按键的行列位置与输出值D3～D0的对应关系，其中数值1～16分别对应于16个按键，即编码键盘的键值。从<A href="http://www.chinaicmart.com/series-LAT/LATTICE.html" target=_blank>LATTICE</A>公司的工具软件ispDesignEXPERT8．2对ABEL文件的编译结果来看，当有多键同时按下时，D3～D0的输出亦为“0”，因此在51汇编程序中应对“0”号键进行适当取舍。</P>
<P>通过输出缓冲器可使输出管脚设置成高阻态，因此输出管脚可以直接和单片机的数据总线连接。本设计中，D3～D0输出缓冲器由CS和RD两个信号控制。其ABEL方程为：</P>
<P>采用间接控制方式读取键值的接口电路如图3所示。</P>
<P>　　3 ABEL文件清单</P>
<P>　　下面给出KEY44．ABL文件的具体程序清单，其编译工具为<A href="http://www.chinaicmart.com/series-LAT/LATTICE.html" target=_blank>LATTICE</A>公司的ispDesignEXPERT8．2。</P>]]></description>
<pubDate>
2008-06-24 15:02:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17118341.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17118341.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[POSCAP在DC/DC转换器中的应用]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17088463.shtml</link>
<description>
<![CDATA[<P>POSCAP的结构</P>
<P>“POSCAP”是“聚合物有机半导体固态电解电容器”的英文缩写。大部分POSCAP的阳极是烧结钽，仅少部分的阳极为铝箔，其介质分别为氧化钽(Ta2O5)及氧化铝(Al2O3)，而电解质(阴极)都是固态的、导电性能良好的高分子聚合物。由于采用了导电性能好的固态高分子聚合物作电解质，使它们具有尺寸小而电容量大、极低的ESR(等效串联电阻)及很大的允许纹波电流的特点。POSCAP是小尺寸贴片式封装的，其内部结构如图1及图2所示。</P>
<P></P>POSCAP的特点及特性 
<P>POSCAP的主要特点：有适合不同要求的系列(如表4所示)；最小的封装尺寸为0805；ESR低及允许纹波电流大，如型号为2R5TPD680M5的POSCAP，其额定电压为2.5V、电容量为680μF，最大的ESR仅为5mΩ，允许最大的纹波电流为6100mA；额定电压范围2.5～25V；电容量范围5.6～<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>μF；允差为±20%(M极）；损耗因数在8%～15%范围内；漏电流≤0.1CV；有极好的吸收噪声的特性；有极好的频率特性(在10kHz～10MHz范围内）；有较好的温度特性；能承受20A瞬态冲击电流；寿命长，在105℃时可达<A href="http://www.chinaicmart.com/series-200/2000.html" target=_blank>2000</A>小时；工作温度范围-55～+105℃(有一些品种的最高温度为+85℃，TH系列可工作在125℃的环境温度，见表4）；出现故障时不会爆炸、燃烧，比一般的钽电解电容器安全；无铅封装。</P>
<P>典型的POSCAP的ESR与阻抗的频率特性如图3所示，蓝色的是2R5TPD 470M5(2.5V/470μF)、紫色的是2R5TPD680M5(2.5V/680μF）；实线是阻抗的频率特性，虚线是ESR的频率特性。从图3中可看出：在10～<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>kHz范围内，ESR特性十分平坦(即ESR变化不大)，并且其ESR值小于5mΩ。</P>
<P></P>典型的POSCAP的ESR温度特性及电容量与温度的特性如表1所示。 
<P></P>允许的纹波电流值与频率及温度有关，工作在不同频率范围及温度范围时，要乘以频率补偿系数及温度补偿系数，如表2及表3所示。 <BR>
<P></P>POSCAP各系列主要参数如表4所示。 
<P></P>POSCAPD在DC/DC转换器中的应用 
<P>近年来，电子产品的工作电压不断降低，从5V降到3V，甚至降到1.0V以下，相反的是输出电流在增加，为此开发出很多高效率、低电压、大电流降压式DC/DC转换器，以满足市场的需求。</P>
<P>这些DC/DC转换器电路的工作温度范围为-40～+85℃，开关频率主要在300kHz～1.5MHz范围内，输入电压几V到几十V；输出电压一般从0.6～3.3V，输出电流从几A到几十A，甚至上百A。</P>
<P>典型的同步整流降压式DC/DC转换器的输入及输出部分电路简图如图4所示。它是由DC/DC控制器、开关管Q1、同步整流管Q2、驱动高端功率MOSFET(Q1)的自举式升压电路(由CBOOST及D1组成)、电流检测电阻RCS、决定输出电压的R1、R2，电感器L1、输入电容器CIN及输出电容器COUT组成。</P>
<P></P>生产DC/DC转换器的公司在数据资料中给出参数齐全的典型应用电路，用户可按电路图组成完整的电源。不少DC/DC转换器生产商为了帮助用户开发新产品，还专门提供评估板，可加速开发的周期。如果用户的使用条件(如开关频率、输入电压、输出电压、输出电流)与典型应用电路有差别，则电路中的有关元器件的参数也要做相应的改变，这是经常会碰到的。 
<P>本文介绍在使用条件改变时，如何确定电感器L1值及输出电容COUT值的简单计算方法，并举一些实例说明其应用。</P>
<P>简单的计算公式</P>
<P>使用条件改变后，原典型应用电路中的电感器L1及输出电容器COUT的值可能要改变，可根据新的使用条件进行计算。计算前要已知的条件是，输入电压VIN、输出电压VOUT、最大输出电流IOUT(max)及开关频率fsw。计算公式及步骤如下：</P>
<P>1、初步估算电路上的纹波电流 △I'OUT</P>
<P>在初步估算△I'OUT时，可取IOUT(max)的20%～40%，即</P>
<P>(1)　△I'OUT=(0.2-0.4)IOUT(max)</P>
<P>在fsw高、IOUT(max)大时取小值，反之取大值。</P>
<P>2、电感器L1的计算</P>
<P>电感器L1可按下式计算：</P>
<P>(2)　L1=(VIN-VOUT)×VOUT/(△I'OUT×fsw×VIN )</P>
<P>计算后的L1值应按相近的标准系列值选取，如计算出来的L1=2.06μH，可取标准值2.2μH，取实际电感值LACT=2.2μH。所选的电感器L1的饱和电流应大于电感器的峰值电流ILP-P。</P>
<P>ILP-P可按ILP-P=1.2×IOUT(max)估算。</P>
<P>3、纹波电流△IOUT的复算</P>
<P>可根据LACT来复算纹波电流△IOUT</P>
<P>(3)　△IOUT=(VIN-VOUT)×VOUT/(fsw×LACT×VIN )</P>
<P>4、选择合适的POSCAP电容器</P>
<P>根据已知的VOUT及计算出的△IOUT，按POSCAP样本选择合适的输出电容器COUT。要满足两个条件：VOUT=(0.8～ 0.9)VRATED(VRATED为电容器的额定电压）；△IOUT(ALLOW)&gt;△IOUT(△IOUT(ALLOW)是电容器的最大允许纹波电流)。</P>
<P>若所选的单个电容器的△IOUT(ALLOW)不能满足大于△IOUT的要求，则可用几个同型号的电容器并联，使满足下式： (4)　△IOUT(ALLOW)×N&gt;△IOUT</P>
<P>式中N为并联的电容器数。</P>
<P>5、最大的输出纹波电压△IOUT计算</P>
<P>在选定电容器后，可知道该型号电容器的最大ESR值，则最大输出纹波电压△VOUT为：</P>
<P>(5)　△VOUT=△IOUT×ESR/N</P>
<P>如果按式(5)计算出来△VOUT不能满足使用上的要求，则需要再选择ESR更低的(如低ESR系列)或增加N值来解决。</P>
<P>要保证电路的稳定，其输出电容的电容量是不大的，采用电容量大、ESR小的电容器的目的是减小输出纹波电压及改善负载瞬态响应。这里采用POSCAP电容器是充分发挥它的特长，若采用其他电解电容器则往往需要更大的电容量或更多的并联数。近年来，不少DC/DC控制器生产厂家在其典型应用电路及评估板上都采用了POSCAP。</P>
<P>计算实例</P>
<P>1、LM2745(国家半导体公司)</P>
<P>由LM2745高速同步整流降压式控制器组成的降压式DC/DC转换器电路如图5所示。该电路输入电压VIN=3.3V、VCC=3.3V(VCC是给LM2745内部电路供电的)、输出电压VOUT=1.2V、最大输出电流IOUT(max)=16A、开关频率fsw=<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>kHz。现计算其电感器L1及CO1(图5中CO1、2是CO1与CO2并联，CO2是0.1μF、16V的多层陶瓷电容器)。</P>
<P></P><BR>(1)△I'OUT的估算 
<P>因开关频率较高，输出电流IOUT(max)较大，采用20%的系数，则有：</P>
<P>△I'OUT=20%IOUT(max)=0.2×1.6A=3.2A</P>
<P>(2)电感器L1的计算</P>
<P>L1=(VIN-VOUT)VOUT/(△I'OUT×fsw×VIN )<BR>=(3.3V-1.2V)×1.2V/(3.2A×<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>kHz×3.3V)<BR>=0.24μH</P>
<P>L1取0.22μH标准值，即LACT= 0.22μH</P>
<P>(3)纹波电流的复算</P>
<P>△IOUT=(VIN-VOUT)VOUT/(fsw×LACT×VIN )<BR>=(3.3V-1.2V)×1.2V/(<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>kHz×0.22μH×3.3V)<BR>=3.4A</P>
<P>(4)选合适的POSCAP电容器</P>
<P>按POSCAP样本选额定电压6.3V的6TPD470M，其电容量为470μF，ESR为10mΩ(max)，△IOUT(ALLOW)为4400mA，满足选择电容量的两个条件。</P>
<P>(5)输出纹波电压的计算</P>
<P>△VOUT=△IOUT×ESR<BR>=3.4A×10mΩ=34mV</P>
<P>由LM2745组成的DC/DC转换器评估板如图6所示。图中圆圈中的电容器即6TPD470M。<BR>如果在图5的电路上改变使用条件：VIN=5V、VOUT=2.5V、VCC=5V、IOUT(max)=2A、fsw=300kHz，则电感L1及输出电容CO1作如何改动，计算如下。</P>
<P></P>(1)△I'OUT的估算 
<P>△I'OUT=0.4 IOUT(max)=0.4×2A=0.8A</P>
<P>(2)L1的计算</P>
<P>L1=(VIN-VOUT)VOUT/(△I'OUT×fsw×VIN )<BR>=(5V-2.5V)×2.5V/(0.8A×300kHz×5V)<BR>=5.2μH</P>
<P>L1取标准电感值6.8μH，即LACT=6.8μH</P>
<P>(3)△IOUT的计算</P>
<P>△IOUT=(VIN-VOUT)VOUT/(fsw×LACT×VIN )<BR>=(5V-2.5V)×2.5V/(300kHz×6.8μH×5V)<BR>=0.61A</P>
<P>(4)选POSCAP电容器</P>
<P>选型号为<A href="http://www.chinaicmart.com/series-10T/10TPC68M.html" target=_blank>10TPC68M</A>，其额定电压为10V、电容量为68μF，ESR为45mΩ，△IOUT(ALLOW)为1.7A。符合选择电容器的两个条件。</P>
<P>(5)△VOUT的计算</P>
<P>△VOUT=△IOUT×ESR<BR>=0.61A×45 mΩ=27.4mV</P>
<P>计算的结果是，L1=6.8μH，CO1取<A href="http://www.chinaicmart.com/series-10T/10TPC68M.html" target=_blank>10TPC68M</A>，输出纹波电压△VOUT =27.4mV。</P>
<P>2、<A href="http://www.chinaicmart.com/series-UCC/UCC2891.html" target=_blank>UCC2891</A>(德州仪器公司)</P>
<P><A href="http://www.chinaicmart.com/series-UCC/UCC2891.html" target=_blank>UCC2891</A>是一种正激式降压型DC/DC控制器，其组成的电路如图7所示。</P>
<P></P>使用条件：VIN=36～75V、VOUT= 3.25～3.35V(固定电压)、IOUT(max)=32A、fsw=275～325kHz。现设定VIN=48V、VOUT=3.3V、IOUT(max)=30A、fsw=300kHz，确定其电感器L1及COUT(图中C19、C20)。计算如下： 
<P>(1)△I'OUT的计算(取系数为20%)</P>
<P>△I'OUT=0.2×IOUT(max)=0.2×30=6.0A</P>
<P>(2)L1的计算</P>
<P>L1=(VIN-VOUT)VOUT/(△I'OUT×fsw×VIN )<BR>=(48V-3.3V)3.3V/(6.0A×300kHz×48V)<BR>=1.7μH</P>
<P>取LACT=2μH</P>
<P>(3)△IOUT复算</P>
<P>△IOUT=(VIN-VOUT)VOUT/(LACT×fsw×VIN )<BR>=(48V-3.3V)3.3V/(2μH×300kHz×48V)<BR>=5.1A</P>
<P>(4)选择POSCAP电容器</P>
<P>选择<A href="http://www.chinaicmart.com/series-6TP/6TPD330M.html" target=_blank>6TPD330M</A>，其ESR=10mΩ，允许纹波电流△IOUT(ALLOW)=4.4A(额定电压6.3V、电容量330μF)。取两个<A href="http://www.chinaicmart.com/series-6TP/6TPD330M.html" target=_blank>6TPD330M</A>并联，△IOUT(ALLOW)=2× 4.4A=8.8A，满足电容器的两个条件。</P>
<P>(5)△VOUT计算</P>
<P>△VOUT=△IOUT×ESR/N<BR>=5.1A×10mΩ/2=25.5mV</P>
<P>查<A href="http://www.chinaicmart.com/series-UCC/UCC2891.html" target=_blank>UCC2891</A>原文资料，计算结果与原文资料相符。</P>
<P>若使用条件改成VIN=72V，L1、 IOUT(max)、fsw、VOUT不变，计算结果： △IOUT=5.24A，仍取两个<A href="http://www.chinaicmart.com/series-6TP/6TPD330M.html" target=_blank>6TPD330M</A>作输出电容。同时也证明了输入电压由48V升到72V时，对△IOUT影响不大，可以不改变原有的电容器。</P>
<P>由<A href="http://www.chinaicmart.com/series-UCC/UCC2891.html" target=_blank>UCC2891</A>组成的评估板如图8所示。</P>
<P></P>3、MAX8720(美信公司) 
<P>MAX8720是同步整流降压式控制器，由它组成的DC/DC转换器电路如图9所示。输入电压VIN=7～28V、输出电压VOUT=0.27～1.85V、输出电流 IOUT(max)=15A、开关频率fsw有4种：200kHz、300kHz、550kHz和<A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank>1000</A>kHz。</P>
<P></P>现设定使用条件：VIN=12V、VOUT=1.2V、IOUT(max)=15A、fsw=300kHz，计算L1及COUT。计算如下： 
<P>在△I'OUT的估算时，系数取0.3，得4.5A；计算L1得0.8μH，LACT取0.8μH；计算△IOUT得4.5A；选择<A href="http://www.chinaicmart.com/series-2R5/2R5TPE470M9.html" target=_blank>2R5TPE470M9</A>×2(其参数：额定电压为2.5V、电容量为470μF、最大ESR为9mΩ，最大允许纹波电流为3.9A)，可满足电容器的两个要求。</P>
<P>△VOUT计算得20.3mV。图9中采用3×<A href="http://www.chinaicmart.com/series-2R5/2R5TPE470M9.html" target=_blank>2R5TPE470M9</A>，这可能考虑满足不同使用条件及改善负载瞬态响应及减小输出纹波电压。</P>
<P>图9的电路上，COUT还并联一个 10μF的多层陶瓷电容器。由MAX8720组成的评估板如图10所示。</P>
<P></P>4、LTM4600(凌特公司) 
<P>LTM4600是一种输出10A的微型DC/DC模块，只要外接CIN、COUT及一个确定输出电压的电阻，即组成完整的降压式DC/DC转换器。其输入电压范围4.5～20V，输出电压范围0.9～5V，典型应用电路如图11所示。</P>
<P></P>现使用条件为VIN=12V、VOUT= 2.5V、fsw=800kHz、工作温度-40～+85℃、IOUT(max)=10A，确定其输出电容器COUT(电感L1已做在模块中了)。其计算如下： 
<P>(1)△I'OUT=0.3 IOUT(max)=0.3×10A=3A</P>
<P>(2)L1=(VIN-VOUT)VOUT/(△I'OUT×fsw×VIN )<BR>=(12V-2.5V)×2.5V/(3A×800kHz×12V)<BR>=0.82μH，取LACT=0.8μH</P>
<P>(3)△IOUT=(VIN-VOUT)VOUT/(fsw×LACT×VIN )<BR>=(12V-2.5V)×2.5V/(800kHz×0.8μH×12V)<BR>=3.1A</P>
<P>(4)选择型号为4TPE470MCL的电容器，其额定电压为4V、电容量为470μF，ESR为12mΩ，允许纹波电流为3.5A，满足对电容器的两个要求。</P>
<P>(5)△VOUT=△IOUT×ESR<BR>=3.1A×12mΩ=37.2mV</P>
<P>图11中COUT还并联了22μF/6.3V×3的陶瓷电容器(MLCC)。</P>
<P></P>
<P>计算说明</P>
<P>以上的计算举例是根据各厂家的数据资料中的典型应用电路为基础进行计算的，计算结果与数据资料的参数相符或十分接近，说明这种计算有一定的实用价值。另外，以上计算是一种简易计算，没有考虑电容器的允差及温度对ESR及电容量的影响。最后需要通过实验来证实或修改(如增加小容量的MLCC)。</P>
<P>使用POSCAP有一些注意事项，请参看POSCAP样本。</P>]]></description>
<pubDate>
2008-06-23 14:12:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17088463.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17088463.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[基于80C196KC&amp;PSD4235G2在线编程的实现]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,17023197.shtml</link>
<description>
<![CDATA[<P>随着MCU的广泛应用，其性能不断提高，集成度也日益提高。传统的MCU系统设计，在选好MCU后还要采购大量的分离器件(如地址锁存器、译码器、扩展芯片、RAM，EPROM，PLD等)，使系统复杂度高、可靠性低，且调试繁琐、效率低下，造成设计复杂，印制板面积增大。还要考虑到各种干扰，总线竞争等很多因素，系统常常不稳定。<BR><BR>本文介绍一种基于闪烁存储器的在线可编程微处理器外围器PSD4235G2组成的MCU系统。即通过计算机串口将程序代码在线远程下载到MCU系统的存储器中，实现IAl)的功能。<BR><BR>1 PSD4235G2的性能特点<BR><BR>PSD4235G2(ProgrammableSystemDevices)是ST公司设计生产的一种基于闪烁存储器·的在线可编程外围器件。他将MCU系统外围器件高度集成在一起，并与MCU进行无缝连接，只需用2颗芯片MCU+PSD即可代替众多的外围器件组成一套完整的MCU系统；他还集成了优化的"微控制器宏单元"逻辑结构，使系统地址／数据总线可以与内部寄存器直接互连，简化了控制总线的设计。PSD产品以其设计灵活、资源丰富和极高的性价比在嵌入式系统应用领域得到广泛应用。此外，PSD4235G2还具有以下特性：<BR><BR>(1)采用多路复用或非多路复用的16位总线为控制器的简单接口。总线接口逻辑使用地址译码和读写时由微控制器自动产生的控制信号，可方便地与1 6位单片机<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>直接相连。<BR><BR>(2)4Mb主Flash，被分为8个大小相同的块，由用户规定的地址访问；256kb次Flash，具有在更新闪烁存储的同时执行代码的能力；<BR>64kbSRAM通过连接外部可保护SRAM的内容使之免受电源故障的影响。<BR>(3)主Flash和次Flash可同时编程，即在执行来自一个存储器的代码时可同时对另一个存储器编程。<BR><BR>(4)器件PSD4235G2包括2个PLD块，译码PLD(DPLD)和复合PLD(CPI．D)。DPLD用于地址译码并产生内部存储器和寄存器的芯片选择信号；CPLD实现用户定义的逻辑功能。这些逻辑由16个输出宏单元和24个输入宏单元?quot;与"阵列构成。<BR><BR>(5)52个单独可配置的I／O端口引脚，配置成MCUI／O，PLDI／O，锁存MCU地址输出·；特殊功能I/O，极开路输出的I／O端口。<BR><BR>(6)具有可编程电源管理功能(PMU)，支持掉电模式的低功耗模式，使5V待机状态的电流低至50uA；另外还具有自动检测控制器工作的功能。<BR>(7)内置JTAG的串行接口，使系统具有整个芯片系统内编程的能力。利用这个功能，用户可以对空的器件编程或现场对器件重新编程。<BR><BR>2 系统设计<BR><BR>整个系统是由<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>单片机，PSD4235G2，D／A转换器和LCD显示器等构成，并通过上位机对其进行远程编程。其系统结构如图1所示。<BR></P>
<P><A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>内部集成10位的A／D转换器，因而模拟量可以直接输入MCU。PSD4235G2具有2块大容量Flash、16个输出宏单元和24个输入宏单元，因而在与单片机组成系统时，很少需要外围分立器件，多数通过PSD4235G2中的宏单元逻辑组合产生与单片机连接的地址总线、数据总线、控制总线；同时，通过内部的逻辑译码产生3块独立存储区片选信号，即主Flash片选FSi、次Flash片选CSBOOTi和SRAM片选RS0。并且PSD4235G2与LCD、D／A电路的接口直接用其PA、PB口连接，只需在软件设计和单片机程序中相应设计为I／O模式或地址锁存模式。<BR><BR>系统由复位电路对<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>和PSl)4235G2进行复位， 主程序放入PSD4235G2中。程序升级时，上位机与<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>进行联络，联络成功后由上位机将升级程序发送下去，调制后送到该远程系统，而将数据解调后，通过SOCl96KC接口写到PSD4235G2的数据存储区。当接到上位PC机的切换命令后，<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>向PSD4235G2的寄存器中送一个状态值，由PSD4235G2的PLD对程序存储区和数据存储区进行切换，再加上其他的功能电路，就构成了一个完整的可远程程序升级的系统。80Cl96KC，PSD4235G2和串口的接口电路如图2所示。<BR></P>
<P>3 1AI'(在线编程)设计<BR><BR>PSD4235G2有2个内部寄存器：页寄存器(page)和VM寄存器。3位的页寄存器可使MCU的寻址空间扩大Z56倍，他的内容可以由MCU来读写。页寄存器可直接参与PSD内部存储器的地址选择，在作为页寻址时写入要访问的页地址，PSD内部地址译码逻辑就立刻选中目标存储器空间。另外，在页寄存器实现分页存储时，应该设置一个公共存储器区，即程序在任何页面位置执行时都能访问到的空间(或者说是与页不相关的地址空间)，用于放置初始化程序、中断服分程序、页切换程序以及物理设备驱动程序等重要子程序，同样，重要样，重要数据也应当在任何页都可以访问，例如PSD控制寄存器、I／O、用于保存堆栈和全局变量的系统RAM等。VM寄存器用来分开程序空间和数据空间，并把PSD4235G2中主Flash、次Flash和SRAM设置在不同空间。<BR><BR>在进行在线编程时，首先将PSD的次Flash存储器映射到<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>的程序存储区，将PSD的主Flash存储器映射到<A href="http://www.chinaicmart.com/series-80C/80C196KC.html" target=_blank>80C196KC</A>的数据存储区，系统从PSD的次Flash启动，执行引导／下载程序，如果需要的话从上位机下载程序到PSD的主Flash存储器；然后，再通过PSD中的VM寄存器，将主Flash存储器存储空间从数据存储区跳变到程序存储区，转而执行Flash存储器中的程序，从而实现对原程序的升级 <BR>系统的运行有2个基本模式：一个是引导／下载模式；另一个是正常运行模式。系统启动时从引导／下载模式到正常运行模式转换过程中系统存储器的变化步骤为：<BR><BR>(1)上电时系统存储器映射<BR>上电时系统开始执行次Flash中的程序，检查是否要通过MCU对主Flash中的程序进行升级。此时，PSD中主Fla；h存储器存储空间都处于MCU的数据空间，而次Fl，sh存储空间则处于MCU的程序空间。<BR><BR>(2)主Flash存储空间从数据空间移至程序空间 在完成对Flash中程序升级或不需要升级时，写VM寄存器为06H，将主Flash的存储空间从MCU的数据空间眵到程序空间。<BR><BR>(3)切换主Flash和次Flash存储空间<BR>MCU从PSD次Flash中运行程序跳到主Flash中的运行程序。在程序写1到'swap'位(上电时'swap'的值是0)进行地址"切换"，程序就进入主Flash中运行了。 </P>
<P></P>
<P>(4)次Flash存储空间移至数据空间程序已经在PSD的主Flash中运行，写0CH到VM寄存器。把次Flash的存储空间从MCU的程序空间移到数据空间。并且，MCU转跳到在PSD的主Flash的复位入口地址，用户的程序开始真正执行。用户程序启动模块的流程如图3所示。<BR></P>
<P>结 语<BR><BR>PSD4235G2的独特结构简化了硬件接口电路，为嵌入式MCU系统提供了简单灵活的解决方案：其tAP功能使产品可以在应用中编程和测试，并远程升级程序代码，缩短了产品开发周期，降低了产品维护和升级成本，抢先占领市场。<BR></P>]]></description>
<pubDate>
2008-06-20 16:06:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,17023197.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,17023197.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[用虚拟I2C总线技术实现SAA7111的初始化]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,16565834.shtml</link>
<description>
<![CDATA[<FONT color=#000000>　　介绍了虚拟I2C总线技术的特点，描述了用单片机（C51）的普通I/O口以及对DSP（</FONT><A href="http://www.chinaicmart.com/series-TMS/TMS320VC5402.html" target=_blank><FONT color=#000000>TMS320VC5402</FONT></A><FONT color=#000000>）的McBSP口和HPI-8口模拟I2C总线接口的设计方案，最后给出了对</FONT><A href="http://www.chinaicmart.com/series-SAA/SAA7111.html" target=_blank><FONT color=#000000>SAA7111</FONT></A><FONT color=#000000>进行初始化的方法。</FONT> 
<P class=MsoNormal><FONT color=#000000>&nbsp;&nbsp;&nbsp; </FONT><FONT color=#000000>ＳＡＡ７１１１是Ｐｈｉｌｉｐｓ半导体公司生产的一种视频输入处理器（ＶＩＰ），在视频采集系统中，通常需要诸如ＳＡＡ７１１１之类的视频解码器作为模拟视频前端，而视频解码器的初始化主要通过Ｉ２Ｃ总线接口来完成。然而，目前的单片机和ＤＳＰ器件大多都不带有Ｉ２Ｃ总线接口，为此，本文提出了用虚拟总线技术来模拟实现Ｉ２Ｃ总线功能，利用ＤＳＰ的多功能Ｉ／Ｏ口和单片机的普通Ｉ／Ｏ口模拟Ｉ２Ｃ总线接口设计，从而实现ＤＳＰ和单片机对ＳＡＡ７１１１的初始化与控制的新方法。</FONT></P>
<P style="TEXT-INDENT: 0px"><B><FONT color=#000000>１　虚拟Ｉ２Ｃ总线技术</FONT></B></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>１．１ 多主方式下的Ｉ２Ｃ总线虚拟</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>Ｉ２Ｃ总线是Ｐｈｉｌｉｐｓ公司推出的一种连接ＩＣ器件的二线制总线，它既可以用于构成多主系统，又可工作在单主方式下。因为多主方式下会出现多主竞争的复杂状态，此时如果系统中没有带Ｉ２Ｃ总线接口的主控制器，那么要构成多主系统的虚拟Ｉ２Ｃ总线，就必须在虚拟Ｉ２Ｃ总线中解决多主竞争状态，而这几乎是不可能的，鉴于此，多主Ｉ２Ｃ总线系统必须使用带Ｉ２Ｃ总线接口的控制器。<BR><BR><FONT size=3>&nbsp;&nbsp;&nbsp; </FONT>１．２ 单主方式下的Ｉ２Ｃ总线虚拟</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>当Ｉ２Ｃ总线中只有一个主器件时，Ｉ２Ｃ总线系统的工作方式称为单主方式。在单主方式下，由于Ｉ２Ｃ总线上只有一个主器件成为主节点，因此，该主器件会永远占据总线，而不会出现总线竞争，此时的主节点也不必有自己的节点地址。在这种情况下，主器件若没有Ｉ２Ｃ总线接口，就可以用主控制器的Ｉ／Ｏ口来模拟Ｉ２Ｃ总线接口。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>目前，许多视频、音像电器中都采用了虚拟Ｉ２Ｃ总线技术。ＳＡＡ７１１１的初始化控制操作就工作在单主方式下，因此可以用虚拟Ｉ２Ｃ总线技术来实现ＳＡＡ７１１１的初始化控制。下面分别以单片机和ＤＳＰ为例来说明虚拟Ｉ２Ｃ总线技术的实现方法。<BR><BR><B>２　用单片机普通Ｉ／Ｏ模拟Ｉ２Ｃ总线接口</B></FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>用单片机普通Ｉ／Ｏ口模拟Ｉ２Ｃ总线接口时，其硬件配置非常简单，因为单片机的Ｉ／Ｏ口很多，并且大多Ｉ／Ｏ口都是双向的，因此可以直接用两个Ｉ／Ｏ口线作为Ｉ２Ｃ总线的串行时钟线ＳＣＬ和串行数据线ＳＤＡ。图１所示为Ｃ５１ 单片机与ＳＡＡ７１１１的硬件连接图。 当硬件配置完成后，根据Ｉ２Ｃ总线的时序特性可用软件编程来模拟Ｉ２Ｃ总线接口。图２为Ｉ２Ｃ总线的起始信号（Ｓ），它表示在ＳＣＬ为高电平期间，数据线ＳＤＡ由高电平向低电平变化将启动Ｉ２Ｃ总线。下面是相应的汇编程序。其它子程序可以参考Ｉ２Ｃ总线时序来实现，这里就不一一给出了。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>启动Ｉ２Ｃ总线：</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＳＥＴＢ Ｐ１．０ ； ＳＤＡ＝１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＳＥＴＢ Ｐ１．１ ； ＳＣＬ＝１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＣＡＬＬ ＤＥＬＡＹ ；保持数据时间，ＤＥＬＡＹ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>为延迟子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＣＬＲ Ｐ１．０ ； ＳＤＡ＝０</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＣＡＬＬ ＤＥＬＡＹ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＣＬＲ Ｐ１．１ ；钳定总线，开始发送数据</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＲＥＴ</FONT></P>
<P style="TEXT-INDENT: 0px"><B><FONT color=#000000>３ 用ＤＳＰ外围接口模拟Ｉ２Ｃ总线接口</FONT></B></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>由于ＴＭＳ３２０ＶＣ５４０２只有两个通用的Ｉ／Ｏ引脚，且都是单向的，而在Ｉ２Ｃ总线中，ＳＤＡ必须是双向的，因此必须借助于其它总线接口。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>３．１ 用ＭｃＢＳＰ口模拟Ｉ２Ｃ总线接口</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>首先，通过配置串口控制寄存器ＳＰＣＲ１和ＳＰＣＲ２以及引脚控制寄存器ＰＣＲ的禁用ＭｃＢＳＰ功能，以将ＭｃＢＳＰ引脚（包括ＣＬＫＸ、ＣＬＫＲ、ＤＸ、ＤＲ、ＦＳＸ、ＦＳＲ、和ＣＬＫＳ）作为通用Ｉ／Ｏ口。现以发送器为例，当ＳＰＣＲ２的ＸＲＳＴ＝０、ＰＣＲ的ＸＩＯＥＮ＝１时，串口发送器无效，ＦＳＸ、ＣＬＫＸ用作通用Ｉ／Ｏ引脚。ＦＳＸ和ＣＬＫＸ作为通用Ｉ／Ｏ端口的引脚设置情况如表１所列。以ＭｃＢＳＰ０为例，也可以从ＦＳＸ０和ＣＬＫＸ０引出两条线分别表示ＳＤＡ线和ＳＣＬ线。</FONT></P><FONT color=#000000 size=2>
<P><B>表1 将FXS和CLKX作为通用I/O的设置方法</B></P></FONT><TBODY><SPAN class=main1><FONT color=#000000><FONT size=3>引脚 </FONT><FONT size=2><FONT size=2>FSX数据方向</FONT> <FONT size=2>CLKX数据方向</FONT> <FONT size=2>FSX输出值</FONT> <FONT size=2>CLKX输出值</FONT> <FONT size=2>FSXM</FONT> <FONT size=2>CLKXM</FONT> <FONT size=2>FSXP</FONT> <FONT size=2>CLKXP</FONT> <FONT size=2>0</FONT> <FONT size=2>1</FONT> <FONT size=2>0</FONT> <FONT size=2>1</FONT> <FONT size=2>0</FONT> <FONT size=2>1</FONT> <FONT size=2>0</FONT> <FONT size=2>1</FONT> <FONT size=2>FSX</FONT> <FONT size=2>输入</FONT> <FONT size=2>输出</FONT> <FONT size=2>-</FONT> <FONT size=2>-</FONT> <FONT size=2>-</FONT> <FONT size=2>1</FONT> <FONT size=2>-</FONT> <FONT size=2>-</FONT> <FONT size=2>CLKX</FONT> <FONT size=2>-</FONT> <FONT size=2>-</FONT> <FONT size=2>输入</FONT> <FONT size=2>输出</FONT> <FONT size=2>-</FONT> <FONT size=2>-</FONT> <FONT size=2>0</FONT> <FONT size=2>1</FONT> </TBODY></FONT></FONT>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>注：“-”表示无影响</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>图３为Ｉ２Ｃ总线的结束信号时序，下面是相应的程序：</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＃ｄｅｆｉｎｅ ＳＰＳＡ０ ０ｘ００３８ ／／ＳＰＳＡ０指向ＭｃＢＳＰ０子地址寄存器</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＃ｄｅｆｉｎｅ ＳＰＳＤ０ ０ｘ００３９ ／／ＳＰＳＤ０指向ＭｃＢＳＰ０</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>子区数据存储器</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＃ｄｅｆｉｎｅ ＰＣＲ０ ‘０ｘ０００Ｅ ／／ＰＣＲ０代表子地址</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>０ｘ０００Ｅ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>结束Ｉ２Ｃ总线：</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ｖｏｉｄ ｓｔｏｐ   </FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＊ｓｈｏｒｔ ＊ＳＰＳＡ０＝ＰＣＲ０； ／／ＳＰＳＡ０指向子</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>地址ＰＣＲ０</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＊ｓｈｏｒｔ ＊ＳＰＳＤ０＝０ｘ２Ａ０２ ／／初始化ＰＣＲ０，</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>令ＦＳＸ０＝０，ＣＬＫＸ＝１。即ＳＤＡ＝０，ＳＣＬ＝１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ｄｅｌａｙ ； ／／延时。Ｄｅｌａｙ（）为延时子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>＊ｓｈｏｒｔ ＊ＳＰＳＤ０＝０ｘ２Ａ０Ａ； ／／令ＦＳＸ０＝１，</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＣＬＫＸ＝１。即ＳＤＡ＝１，ＳＣＬ＝１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>}</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>３．２ 用ＨＰＩ－８口模拟Ｉ２Ｃ总线接口</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>同样，首先必须禁用ＨＰＩ－８的功能，这可通过设置ＨＰＩ－８控制寄存器（ＨＰＩＣ）的ＨＰＩＥＮＡ为０来完成。当ＨＰＩ－８工作在通用Ｉ／Ｏ端口（ＧＰＩＯ）方式时，通过通用Ｉ／Ｏ控制寄存器（ＧＰＩＯＣＲ）和通用Ｉ／Ｏ状态寄存器（ＧＰＩＯＳＲ）可以控制ＧＰＩＯ方式下的ＨＰＩ－８数据引脚。ＧＰＩＯＣＲ的ＤＩＲｘ（ｘ＝０～７）位为低电平表明ＨＤｘ引脚为输入，高电平表明ＨＤｘ为输出。 ＧＰＩＯＳＲ的Ｄ／Ｏｘ位则反映了引脚ＨＤｘ的逻辑值，Ｄ／Ｏｘ为低电平表明ＨＤｘ输入／输出为０，Ｄ／Ｏｘ为高电平表明ＨＤｘ输入／输出为１。因为在ＧＰＩＯ方式下，ＨＤｘ为双向Ｉ／Ｏ端口，因此可以任意选择一个ＨＤｘ（如ＨＤ０）作为ＳＤＡ，再用另外一个ＨＤｘ（ＨＤ１）作为ＳＣＬ以实现Ｉ２Ｃ总线接口的模拟。<BR><BR><B>４ ＳＡＡ７１１１的初始化</B></FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＳＡＡ７１１１内部有３２个寄存器（Ｓｕｂａｄｄｒｅｓｓ００～１ＦＨ），其中２２个是可编程的。００Ｈ、１Ａ～１ＣＨ、１ＦＨ是只读寄存器，其中００Ｈ描述的是芯片版本信息；１Ａ～１ＣＨ是文本信息检测和解码寄存器，一般很少用到；１ＦＨ用来描述芯片的状态。０２Ｈ～１２Ｈ是可读写寄存器，其中０２Ｈ～０５Ｈ是模拟输入控制寄存器，０２Ｈ用于设置模拟视频信号输入方式（共８种），０３Ｈ～０５Ｈ用于设置增益控制方式， ０６Ｈ～１２Ｈ主要用于设置解码方式，通过配置这些寄存器可以设置行同步信号的开始和结束位置，并可确定亮度、色度、饱和度的大小以及输出图像数据信号的格式。 ０１Ｈ、１３Ｈ～１９Ｈ、１ＤＨ～１ＥＨ寄存器保留使用。需要注意的是，在读００Ｈ寄存器前，必须将它初始化为０。在对多个连续的寄存器进行操作时，寄存器地址有自动加１功能。内部寄存器控制位的功能含义详见参考文献。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>可以采用上面任何一种方法来模拟Ｉ２Ｃ总线接口，只是具体的编程方法应视不同的控制器而异。但软件编程具有相同之处，首先必须根据Ｉ２Ｃ总线的原理写出启动、结束、发送应答信号及读、写一个字节的程序，然后根据ＳＡＡ７１１１的寄存器操作格式写出读、写寄存器的程序，最后根据以上子程序写出初始化ＳＡＡ７１１１的程序段。ＳＡＡ７１１１的初始化流程如图４所示。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>以单片机为例，硬件连接见前文图１所示，其中ＩＩＣＳＡ是ＳＡＡ７１１１的读写控制位，ＩＩＣＳＡ＝０表示ＳＡＡ７１１１的写地址为４８Ｈ。这里把ＳＡＡ７１１１初始化设定为：一路模拟视频信号输入（ＡＩ１２）、自动增益控制、６２５行５０Ｈｚ ＰＡＬ制式、ＹＵＶ ４２２ １６位数字视频信号输出、设置默认的图象对比度、亮度及饱和度。相应的寄存器初始化值如表２所列。下面是向ＳＡＡ７１１１的１９个连续的子地址寄存器（００Ｈ～１２Ｈ）写入一组数据的的程序。</FONT></P><FONT size=2>
<P><B><FONT color=#000000>表2 寄存器初始化值</FONT></B></P><TBODY><FONT color=#000000><FONT size=2>SubAddress</FONT> <FONT size=2>Data</FONT> <FONT size=2>SubAddress</FONT> <FONT size=2>Data</FONT> <FONT size=2>00H</FONT> <FONT size=2>00H</FONT> <FONT size=2>01H</FONT> <FONT size=2>00H</FONT> <FONT size=2>02H</FONT> <FONT size=2>C1H</FONT> <FONT size=2>03H</FONT> <FONT size=2>33H</FONT> <FONT size=2>04H</FONT> <FONT size=2>00H</FONT> <FONT size=2>05H</FONT> <FONT size=2>00H</FONT> <FONT size=2>06H</FONT> <FONT size=2>EBH</FONT> <FONT size=2>07H</FONT> <FONT size=2>E0H</FONT> <FONT size=2>08H</FONT> <FONT size=2>88H</FONT> <FONT size=2>09H</FONT> <FONT size=2>01H</FONT> <FONT size=2>0AH</FONT> <FONT size=2>80H</FONT> <FONT size=2>0BH</FONT> <FONT size=2>47H</FONT> <FONT size=2>0CH</FONT> <FONT size=2>40H</FONT> <FONT size=2>0DH</FONT> <FONT size=2>00H</FONT> <FONT size=2>0EH</FONT> <FONT size=2>01H</FONT> <FONT size=2>0FH</FONT> <FONT size=2>00H</FONT> <FONT size=2>10H</FONT> <FONT size=2>40H</FONT> <FONT size=2>11H</FONT> <FONT size=2>1CH</FONT> <FONT size=2>12H</FONT> <FONT size=2>03H</FONT> 　　</TBODY></FONT></FONT><FONT color=#000000 size=3> </FONT>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>入口参数：ＳＡＡ７１１１写地址４８Ｈ、子地址００Ｈ、发送数据缓冲区ＤＢＵＦ、发送字节数１９。</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＷＮＢＹＴＥ：ＭＯＶ Ｒ３，１９ ；发送字节数１９送入Ｒ３</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＳＴＡＲＴ ；调用启动子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＭＯＶ Ａ，＃４８Ｈ ；ＳＡＡ７１１１写地址送入Ａ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＷＢＹＴＥ ；调用写一个字节子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＣＨＥＣＫ ；调用检查应答位子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＪＢ Ｆ０，ＮＥＸＴ０ ；有应答，转到ＮＥＸＴ０，其</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>中Ｆ０为应答标志位，Ｆ０＝１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>表示有应答</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＡＪＭＰ ＷＮＢＹＴＥ ；无应答，重新发送</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＮＥＸＴ０：ＭＯＶ Ａ， ００Ｈ ；ＳＡＡ７１１１子地址送入Ａ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＷＢＹＴＥ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＣＨＥＣＫ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＪＢ Ｆ０，ＮＥＸＴ１</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＡＪＭＰ ＳＴＡＲＴ<BR><BR></FONT></SPAN><FONT color=#000000><FONT size=3>&nbsp;&nbsp;&nbsp; </FONT>ＭＯＶ Ｒ２，＃ＤＢＵＦ ；发送数据缓冲区首地址</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>送入Ｒ２</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＮＥＸＴ１：ＭＯＶ Ａ， ＠Ｒ２ ；发送数据缓冲区数据送</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>入Ａ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＷＢＹＴＥ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＬＣＡＬＬ ＣＨＥＣＫ</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＪＮＢ Ｆ０，ＷＮＢＹＴＥ ；未应答，重新发送</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＩＮＣ Ｒ２</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＤＪＮＺ Ｒ３，ＮＥＸＴ１ ；发送完否未完，继续发送</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＥＸＩＴ： ＬＣＡＬＬ ＳＴＯＰ ；发送完毕调用结束子程序</FONT></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>ＲＥＴ</FONT></P>
<P style="TEXT-INDENT: 0px"><B><FONT color=#000000>５　结束语</FONT></B></P>
<P style="TEXT-INDENT: 30px"><FONT color=#000000>对一个典型的以ＤＳＰ为核心处理器的视频采集系统而言，用单片机普通Ｉ／Ｏ口模拟Ｉ２Ｃ总线接口的编程比较简单，操作也很方便，但是相应的会增加设计成本，因为系统要额外的增加一片单片机。而用ＤＳＰ的ＭｃＢＳＰ口或者ＨＰＩ－８口模拟Ｉ２Ｃ总线接口，虽然不必考虑成本问题，但是必须要禁用ＭｃＢＳＰ或者ＨＰＩ－８的功能，这对系统中ＤＳＰ功能的扩展来说是不利的。 </FONT></P>]]></description>
<pubDate>
2008-06-05 15:43:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,16565834.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,16565834.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[陀螺供电电源设计]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,16534633.shtml</link>
<description>
<![CDATA[<P><FONT color=#000000>陀螺供电电源一般为中频(常用的为400Hz)的单相或者三相变频电源。同时，这类电源广泛应用于航空航天、舰船、机车、感应加热以及雷达、通信交换机等设备中。因此，对此类电源的研究具有很高的工程实用价值。本文以某型导弹中半液浮速率陀螺为研究对象，利用SPWM技术给出了半液浮速率陀螺电源的解决方案。同时，提出了基于时序实现逆变电源的三相任意角度差的方法，大大化简了实现角度差。</FONT></P><BR>
<P><FONT color=#000000>l 半液浮速率陀螺电源设计方案</FONT></P><BR>
<P><FONT color=#000000>本文研究的半液浮速陀螺电源的具体技术指标如表1所列。</FONT></P><BR>
<P><FONT color=#000000>1．1 SPWM原理及基本方案</FONT></P><BR>
<P><FONT color=#000000>SPWM技术是一种先进的调制技术，其内涵就是通过按一定的规律控制开关器件的通断，从而获得一组等幅不等宽的矩形脉冲波形，用来产生所需频率的正弦电压波。采用该技术开发研制的400Hz中频电源，技术先进，其所达到的电性能指标及可靠性都将大大优于以往多环节的中频电源。SPWM的实现方式通常有两种：一是模拟法，二是数字法。模拟法电路较复杂，有温漂现象，影响精度，限制了系统的性能；数字法按照不同的数字模型用计算机算出各切换点，将其存人内存，然后通过查表及必要的计算产生SPWM波。但数字法受内存影响较大，不能保证系统的精度。Mitel公司生产的SA系列PWM波形发生器具有精度高、抗干扰能力强、外围电路简单等优点，其中</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>系列SPWM发生器，可与微处理器连接，完成外围控制功能，使系统智能化，微处理器只用很少的机时去控制它，因而有能力进行整个系统的检测、保护、控制等。基于上述原因，我们决定采用</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>为核心来研制SPWM中频电源。</FONT></P><BR>
<P><FONT color=#000000>1．2 半液浮速率陀螺电源系统设计框图</FONT></P><BR>
<P><FONT color=#000000>其系统的基本工作原理为：直流电源经过SPWM全桥逆变、滤波隔离后输出，系统采用幅值反馈和频率反馈实现陀螺供电电源的幅值和频率的稳定。CPU采用</FONT><A href="http://www.chinaicmart.com/series-INT/INTEL.html" target=_blank><FONT color=#000000>INTEL</FONT></A><FONT color=#000000>公司生产的</FONT><A href="http://www.chinaicmart.com/series-89S/89S52.html" target=_blank><FONT color=#000000>89S52</FONT></A><FONT color=#000000>单片机；SPWM信号发生器采用</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>；混合集成驱动电路</FONT><A href="http://www.chinaicmart.com/series-EXB/EXB841.html" target=_blank><FONT color=#000000>EXB841</FONT></A><FONT color=#000000>构成隔离驱动保护电路；逆变器主电路采用</FONT><A href="http://www.chinaicmart.com/series-IGB/IGBT.html" target=_blank><FONT color=#000000>IGBT</FONT></A><FONT color=#000000>模块。</FONT></P><BR>
<P><FONT color=#000000>2 硬件电路设计</FONT></P><BR>
<P><FONT color=#000000>2．1 SPWM波形发生器</FONT></P><BR>
<P><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>是Mitel公司专为三相逆变电路设计的SPWM波形发生器，它能产生纯正弦波，尤其与CPU组成的系统操作数字化，抗干扰能力强，接口简单，通用性好，可以与不同接口的微控制器相连。在电路不变的情况下，通过软件修改，就可改变逆变器的性能指标，大大提高了调试效率，降低了产品成本。其主要特点如下所述。</FONT></P><BR>
<P><FONT color=#000000>1)全数字化 </FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>与微处理器的连接，适用多种微处理器，接口电路简捷。</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>与单片机</FONT><A href="http://www.chinaicmart.com/series-89S/89S52.html" target=_blank><FONT color=#000000>89S52</FONT></A><FONT color=#000000>接口电路如图2所示。</FONT></P><BR>
<P><FONT color=#000000>2)工作方式灵活 </FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>有6个标准的TEL电平输出，用来驱动逆变器的6个功率开关器件。可以直接通过软件写寄存器R0、R1、R2、R3、R4、R14、R15设定载波频率、调制频率、凋制比、最小脉宽、死区时间、幅值等工作参数，无需任何外接电路。</FONT></P><BR>
<P><FONT color=#000000>3)工作频率范围宽、精度高 三角载波频率可调，载波频率最高可达24kHz，输出调制频率最高可达4 kHz，输出频率的分辨率可达16位字长；全数字化的脉冲输出有很高的精度和温度稳定性。</FONT></P><BR>
<P><FONT color=#000000>2．2隔离驱动电路</FONT></P><BR>
<P><A href="http://www.chinaicmart.com/series-IGB/IGBT.html" target=_blank><FONT color=#000000>IGBT</FONT></A><FONT color=#000000>的栅极驱动方法有很多，本方案采用日本富士公司推出的混合式集成化</FONT><A href="http://www.chinaicmart.com/series-IGB/IGBT.html" target=_blank><FONT color=#000000>IGBT</FONT></A><FONT color=#000000>专用驱动模块</FONT><A href="http://www.chinaicmart.com/series-EXB/EXB841.html" target=_blank><FONT color=#000000>EXB841</FONT></A><FONT color=#000000>。它是EXB系列驱动器中高速、大容量器件之一，集隔离、驱动和保护于一身，性能优越，充分体出了“最优驱动和分散保护”两原则。具体应用电路如图3所示。</FONT></P><BR>
<P><FONT color=#000000>2．3 单片机最小系统及外围扩展芯片</FONT></P><BR>
<P><A href="http://www.chinaicmart.com/series-89S/89S52.html" target=_blank><FONT color=#000000>89S52</FONT></A><FONT color=#000000>单片机最小系统及少量的扩展外围芯片和SAZ4828三相PWM发生器构成本系统控制电路。单片机完成对</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>的初始化、输出脉宽控制、频率控制，同时完成开环和闭环控制算法的运算及数据处理、模拟信号与数字信号的检测、保护功能和逻辑判断等。</FONT><A href="http://www.chinaicmart.com/series-89S/89S52.html" target=_blank><FONT color=#000000>89S52</FONT></A><FONT color=#000000>单片机有40条引脚，共分为端口线、电源线、控制线3类。其中端口线分为4组即P0，P1，P2，P3，系统中仅用P0口和P1口进行数据交换，P0口主要用于</FONT><A href="http://www.chinaicmart.com/series-ADC/ADC0809.html" target=_blank><FONT color=#000000>ADC0809</FONT></A><FONT color=#000000>之间进行数据交换，构成电压反馈。P1口主要用于给</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>传输初始化数据，并根据运算的结果调整</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>的输出。P3、4口与</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>的引脚21构成频率反馈。</FONT></P><BR>
<P><FONT color=#000000>3 </FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>工作原理和系统软件设计</FONT></P><BR>
<P><FONT color=#000000>3.1 </FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>内部结构和工作原理</FONT></P><BR>
<P><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>内部结构和工作原理框图如图4所示，</FONT></P><BR>
<P><FONT color=#000000>它按X(t)=Asinωt来产生SPWM波形。由于</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>的主要工作原理大部分与SA8282类似，这里不再赘述。现将</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>特殊的原理解释如下。</FONT></P><BR>
<P><FONT color=#000000>1)3种不同波形的选择主要是通过给初始化寄存器和控制寄存器传输命令，来设置三相波形ROM。它分别为正弦、增强、高效3种波形，使之能应用于各种特殊的场合。</FONT></P><BR>
<P><FONT color=#000000>2)“看门狗”电路 </FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>在接收单片机发出的命令时，一旦出现问题，总线控制会发出复位“看门狗”信号，使“看门狗”延时关断输出驱动信号。</FONT></P><BR>
<P><FONT color=#000000>3)8个寄存器单元为了提高频率精度，以及能独立控制三相波形幅值，</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>增设了8个寄存器单元，单元地址及说明见表2。</FONT></P><BR>
<P><FONT color=#000000>在传输初始化命令时，写入以R5为“看门狗”延时控制字。当传输控制命令时，写入R0、R1为16位频率控制字，写入R3、R4、R5分别为三相输出波形幅值控制字。上述设置和调整，均通过地址／数据总线、寄存器单元，存人初始化寄存器和控制寄存器来完成。</FONT></P><BR>
<P><FONT color=#000000>3．2 软件设计</FONT></P><BR>
<P><FONT color=#000000>软件程序设计是整个逆变器控制的核心，它决定逆变器的输出特性，如电压、频率范围及稳定度、谐波含量、保护功能的完善，可靠性等。图5为本系统的程序流程图。</FONT></P><BR>
<P><FONT color=#000000>&nbsp;主程序中，</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>初始化命令和控制命令的参数计算及设置，主要用于确定频率调节范围、死区时间、输出电压幅值、中心频率、幅值等。</FONT></P><BR>
<P><FONT color=#000000>由陀螺电源技术要求(表1)知，陀螺电机供电电源要求A、B两相相位差90度。这里，采用软件延时方法实现。即当A相输出后延时O．625 ms，B相输出，实现A、B两相相位差90度。</FONT></P><BR>
<P><FONT color=#000000>这里提出了基于时序方法实现三相电源中任意两相的任意角度差。解决了逆变电源中难于实现任意两相实现任意角度差的难题。大大简化了逆变电源中任意两相实现任意角度差的繁琐工作和大量的外围电路。但是，带来若干好处的同时也带来了一些问题。譬如，本系统中需要2片</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>实现A、B两相相位差90度，一定程度上提高了系统的成本。但是，由于</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>目前的应用较为广泛，其市场的价格也是比较低廉的。综合考虑，利用</FONT><A href="http://www.chinaicmart.com/series-SA4/SA4828.html" target=_blank><FONT color=#000000>SA4828</FONT></A><FONT color=#000000>软件延时功能实现逆变电源中任意两相任意角度差仍然是最佳的选择方案。 </FONT></P><BR>
<P><FONT color=#000000>4 实验结果和结语</FONT></P><BR>
<P><FONT color=#000000>实验结果表明，系统方案设计较好地实现了半液浮速率陀螺对供电电源的要求。实现了三相频率稳定度为O.l％、幅值稳定度O．1％的高精密中频电源。利用软件延时的方法，实现了A、B两相相位差90度。同时，系统采用</FONT><A href="http://www.chinaicmart.com/series-89S/89S52.html" target=_blank><FONT color=#000000>89S52</FONT></A><FONT color=#000000>单片机和SA8282信号发生器后，正弦波控制电路大为简化，元器件减少，结构紧凑，降低了成本，提高了可靠性。通过实际测试，取得了比较理想的结果，完全符合实际系统的要求。 </FONT></P>]]></description>
<pubDate>
2008-06-04 15:50:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,16534633.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,16534633.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[无线接口电路设计及其在TPMS中的应用]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,16493566.shtml</link>
<description>
<![CDATA[<FONT color=#000000>　　新世纪伊始，由于凡世通轮胎(Fire-tone)的质量问题，大量的爆胎和翻车事故造成了超过100人的死亡和400人的受伤，引起了汽车行业和美国政府的关注。大量数据表明，对轮胎正确充气会大大降低爆胎的可能性。为了解决这个问题，轮胎压力监测系统(TPMS)的研究开始受到重视。汽车轮胎压力监测系统(TPMS)主要用于汽车行驶时对轮胎气压进行实时自动监测，对轮胎漏气和低气压进行报警，以保障行车安全。目前最流行的PSBTPMS系统(又称直接系统)，是利用安装在每一个轮胎里的压力传感器来直接测量轮胎气压的，并对各轮胎气压进行显示及监视。当轮胎气压太低或有渗漏时，系统会自动报警。就TPMS系统构造而言，其采集的温度压力数据需要通过一种无线方式进行发送和接收，而且该收发电路要安装在轮胎里。这就必须要求其组成电路的芯片能够耐高温。要解决这两个问题，可以利用Motorola公司研制的发射芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>和接收芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>。该两款芯片都达到了汽车级温度(发射芯片为125℃，接收芯片为105℃)完全可以解决耐高温的问题，且工作性能极好。它们与单片机一起构成的接口电路成为TPMS系统中无线数据传输的重要组成部分。 </FONT>
<P><BR><FONT color=#000000><B>1 TPMS系统总体设计<BR>1.1系统工作原理</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;TPMS系统主要由安装在汽车轮胎内的压力、温度传感器，信号处理单元、RF发射器组成的TPMS发射模块，安装在汽车驾驶台上的包括数字信号处理单元的RF接收器以及LCD组成。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般情况下，一辆轿车需要4个TPMS发射模块和1个TPMS接收器；而一辆卡车需要6～12个TPMS发射模块。为了提高系统的接收能力和抗干扰能力，系统安装时需要在汽车底盘安装接收天线。由</FONT><A href="http://www.chinaicmart.com/series-SP1/SP12.html" target=_blank><FONT color=#000000>SP12</FONT></A><FONT color=#000000>传感器、微控制器、</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>发射模块、</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>接收模块等主要芯片组成的TPMS系统方案结构框图如图1所示。</FONT></P>
<P align=center><FONT color=#000000><IMG height=134 src="http://www.21ic.com/info/images/dpj/200507/6/6a.jpg" width=449 border=0></FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图1中，温度压力传感器将采集到的温度压力数据通过I2C总线或</FONT><A href="http://www.chinaicmart.com/series-RS2/RS232.html" target=_blank><FONT color=#000000>RS232</FONT></A><FONT color=#000000>接口送到单片机，单片机发送一使能信号ENABLE给发射器。当为高电平时，发射机开始工作，产生一个数据时钟信号给单片机，用于信号的同步。此时，单片机发送数据给发射机，发射机将得到的数据通过天线发射出去。接收机通过天线接收到信号后，首先置RESET引脚(用于设置主从模式)为一低电平，此时微控制器为主机，通过MOSI线来设置作为从机的接收器内的寄存器，设置好以后置RESET脚为高电平。此后微控制器为从机，而接收器就变为主机。它产生时钟信号，通过MOSI线将接收到的数据发送给单片机。此时单片机(带有SPI接口)通过SPI接口与PC机实现简单的连接，以达到在PC机上显示报警的作用。<BR><B>1．2系统设计的几点考虑</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;①由于TPMS发射模块工作在剧烈振动、环境温差变化大和不便于即时检修的条件下，因此要求所有的器件要有很好的可靠性和稳定性，能适应工作在-40～+125℃温度范围。为了缩小TPMS发射模块的体积、节省功耗和增强功能，需要尽可能地选用具有多种功能的小型射频收发芯片。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ②随着能源问题越来越被重视，系统节能成为本设计考虑的一个重点问题。为了提高TPMS发射模块在一节锂电池下的工作时间，应该在大多数时间内让系统进入睡眠状态。唤醒TPMS系统中的发射部分，可采用这样一种方法：在传感器模块中增加加速度传感器，利用其对运动的敏感性，实现汽车启动时自动开机进入系统自检；汽车高速行驶时按运动速度自动智能确定检测时间周期，利用软件设定安全期、敏感期和危险期，以逐渐缩短巡回检测周期和提高预警能力。唤醒TPMS系统的接收部分，可以利用接收机的一个引脚STROBE。在一个周期内，当检测到有效的ID时，STROBE置高电平，此时接收芯片就由休眠状态转为运行状态。</FONT></P>
<P><BR><FONT color=#000000><B>2 系统硬件组成及电路设计<BR>2. 1 TPMS系统主要硬件组成</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;TPMS系统主要由TPMS传感器、微控制器和无线射频收发模块几个部分组成。<BR><B>(1) TPMS传感器</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TPMS传感器是一个集成了半导体压力传感器、温度传感器、数字信号处理单元和电源管理器的SoC模块。为了强化胎压检测功能，有不少TPMS传感器模块内还增加了加速度传感器、电压检测、内部时钟、看门狗和带12位ADC、4KB Flash、2KB ROM、128 B RAM、128 BEEPROM及其他功能的ASIC数字信号处理单元。这些功能单元使得TPMS传感器不仅能实时检测汽车开动中的轮胎压力和胎内温度的变化，而且还能实现汽车移动即时开机、自动唤醒和省电等功能。<BR><B>(2)微控制器</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里微控制器采用</FONT><A href="http://www.chinaicmart.com/series-ATM/ATMEL.html" target=_blank><FONT color=#000000>ATMEL</FONT></A><FONT color=#000000>公司推出的一种小型单片机89C205l，片内含有2KB的Flash程序存储器和128 B的片内 RAM。</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>共20引脚。其中P1口8脚，可以作为一般的准双向端口，在引脚的驱动能力上，具有很强的下拉能力。工作电压为2.7～6V。当工作电压在3V时，电流相当于6V工作时的1／4，空闲时为1mA，掉电时仅为20mA。这样小的功耗很适合于电池供电的小型控制系统。主要特点为采用Flash存储器技术，其软件、硬件与MCS-5l完全兼容。其片内程序的电可擦写特性，使得开发与试验比较容易。<BR><B>(3)无线射频发射芯片<A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank>MC33493</A></B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 摩托罗拉的</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>器件是高温集成UHF无线电发送模块。可进行OOK(On-Off Keying)或者FSK(Frequency Shift Keying)两种调制方式。该芯片采用TSSOP-14封装，工作在300～450 MHz频段；具有FSK和OOK调制和解调能力，抗干扰能力强，适合工业控制应用；采用PLL频率合成技术，频率稳定性好；具有较小的发射功率，最大发射功率达O.18mW；数据速率可达9.6kb／s；1.9～3.6V低工作电压；功耗低，发射时电流11.6mA，发射待机状态仅为O.8μA(工作温度在125℃)。<BR><B>(4)无线射频接收芯片<A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank>MC33594</A></B><BR>&nbsp;&nbsp;&nbsp; &nbsp; 摩托罗拉的</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>器件是高温集成UHF超外差无线电接收模块。该芯片采用LQFP-24封装，工作频率在300～450MHz频段，电压在4.5～5.5V范围内；接收灵敏度高达-103dBm。芯片最大的特点是带有一串行外设接口SPI(Serial Peripheral Intelface)。通过SPI，它允许CPU与各种外围接口器件以串行方式进行通信，交换信息。SPI接口使用四条线：串行时钟线(SCK)，主机输入／从机输出数据线MISO，主机输出／从机输入数据线MOSI和低电平有效的从机选择线RESET。</FONT></P>
<P align=center><FONT color=#000000><IMG height=435 src="http://www.21ic.com/info/images/dpj/200507/6/6b.jpg" width=731 border=0></FONT></P>
<P><FONT color=#000000><B>2．2 TPMS系统中的无线接口电路硬件设计</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TPMS系统设计中较关键的一点是数据的传输部分。整个数据传输部分由两部分组成：一是驾驶室中的无线接收部分，另外一部分是轮胎中的无线发射部分。这两部分数据传输的准确性、稳定性，将是系统优良性能的重要体现。<BR><B>(1)无线发射接口电路设计</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;无线发射电路由发射芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>、AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机和电平转换电路构成，如图2所示。发射模块中，引脚3(BAND引脚)接3V高电平，表示系统发射频率为434MHz，用于选择工作频率；引脚14(MODE引脚)接高电平，表示系统选择FSK调制模式。FSK调制方式定义为一个信号的两个不同的频移值分别表示数字高、低两种电平。在这个系统中，低频移表示数字高电平，高频移表示数字低电平。发射芯片的FSK调制方式由与晶振串联的下拉负载电容C1来实现。与CFSK引脚相连的有一内部开关，用以选通下拉电容C1。当DATA=O时(MODE引脚置高电平)，开关关闭，此时输出高频移；当DATA=1时，开关接通，此时输出低频移，这就实现了FSK调制方式，也就是说，如果载波频率是433.92MHz而且总的频偏是士△f(MHz)，则数字高电平表示为433.92MHz-△f，数字低电平表示为433.92 MHz+△f。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由于</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>工作电平最大为3V，而微控制器</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>工作电平最大为5V，要实现连接就必须进行电平转换。系统供电为5V，通过电平转换电路为发射芯片供电。其发射芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>通过电平转换芯片与单片机相连，实现数据的双向传送。它与</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机及接收机一起构成无线数据发射系统。<BR><B>(2)无线接收接口电路设计</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 无线接收接口电路主要由接收芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>与AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机构成，如图3所示。接收芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>通过SPI接接口与单片机AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>的I／O口相连。该电路中，利用AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机的I／O口模拟SPI接口，通过用软件控制的方式来进行数据的传送；<BR>利用并口P1.1来模拟SPI的SCK输出端，P1.2模拟MCU的数据输出端(MOSI)，P1.3模拟SPI的数据输入端(MISO)，P1.4模拟SPI的从机选择端RESET。在接收之前，首先置RESET引脚为低电平，使接收机变为从机，而单片机变为主机。单片机通过MOSI信号线将单片机内的程序写入接收机的配置寄存器里对接收机进行配置，配置好后再置：RESET引脚为高电平。此时单片机变为从机，而接收机变为主机，它产生时钟信号，同时数据由RFIN端接入，经低噪声放大器放大后送入混频器，使其变换成中频。在中频级，经变换的信号在送入解调器之前被放大和滤波。</FONT></P>
<P align=center><FONT color=#000000><IMG height=549 src="http://www.21ic.com/info/images/dpj/200507/6/6c.jpg" width=660 border=0></FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了与</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>接收机所设定的SPI工作状态在逻辑时序上协调一致，要使串行时钟输出P1.1的初始状态为1，在选通<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>后，置P1.1为O。此时AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机输出1位SCK时钟，同时，使</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>串行左移，从而输出1位数据至AT80C2051单片机的P1.3(模拟MCU的MISO线)，再置Pl.1为1，使AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机从P1.O输出1位数据(先为高位)至AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机。至此模拟1<BR>位数据输入输出完成。以后再置P1.1为0，模拟下一位的输入输出。依此循环8次，可完成1次通过SPI传输8位数据的操作。其程序包括MCU串行输入、串行输出和串行输入／输出3个子程序。MCU串行输入是从接收机的MISO线上接收8位数据并放入寄存器R0中；串行输出是将AT80C51单片机中R0寄存器的内容传送到接收机的MOSI线上；串行输入／输出将AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>单片机R0寄存器的内容传送到</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>的MOSI线上，同时从</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>的MISO线上接收8位数据。由MOSI引脚将接收到的数据送入到单片机，这样数据就可以在PC机上进行显示了。</FONT></P>
<P><BR><FONT color=#000000><B>3 系统软件流程设计<BR>3. 1通信协议</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;为了实现4个轮胎模块与中央接收模块进行无线通信的目的，发射机和接收机都需要按要求支持一个简单的通信协议。数据以9600bps的速率传送，采用FSK调制时，其发射方必须采用曼彻斯特编码方式，只有这样的码型接收机才能够接收。曼彻斯特编码就是一个数字信号值在每一个比特位周期内作高、低电平之间切换。前半周期低电平后半周期高电平表示数字O，而先高后低表示数字1。轮胎模块以数据包(帧)的形式发送数据，当轮胎模块中的MCU决定要发送数据(由传感器采集到的温度、压力数据)时，通过发送数据帧的前导位唤醒接收模块，随后发送数据帧，其数据帧格式如下：</FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;①前导位。前同步码的长度为16位位且总设置为0xFB86。这样处理有三个目的：<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;◇0xF(</FONT><A href="http://www.chinaicmart.com/series-111/1111.html" target=_blank><FONT color=#000000>1111</FONT></A><FONT color=#000000>)——Romeo2至少需要4位的前同步码来唤醒它，并让它的内部电路稳定。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ◇0xB8(</FONT><A href="http://www.chinaicmart.com/series-110/1100.html" target=_blank><FONT color=#000000>1100</FONT></A><FONT color=#000000> </FONT><A href="http://www.chinaicmart.com/series-100/1000.html" target=_blank><FONT color=#000000>1000</FONT></A><FONT color=#000000>)——Rome02中的寄存器2被编程为0xB8，这样使前同步码中的0xB8数据被验证并接通数据管理器。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ◇0x6(0110)——Romeo2中报头被使能，它指示有实际的数据跟随(以设备ID开始)。<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;②设备ID。设备ID长度为32位。当每一个TPM轮胎模块MCU(RF2)被刷新，设备ID被编程地址为0x7800～0x7803。这个lD在实际中有很多用处，比如制造商的信息等；但是在这个演示模块中，它仅被用来专门表示辨认轮胎的信息，所以ID的4个字节在每一个数据帧接收后都要被检测。如果ID不匹配，数据帧就会被忽略。当接收机发现某个ID匹配，它就修改状态字节来指示轮胎的位置。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ③压力值。压力数据占8位，代表测量的轮胎压力值。<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;④温度值。温度数据占8位，代表被测量的轮胎温度值。<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;⑤状态位。状态位长度为8位，用以表示轮胎模块的电源电压的变化及对应轮胎ID匹配的位，目的是不需要接收机的MCU重复检查轮胎ID。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ⑥校验和。校验和长度为8位，它的内容取决于传输数据，主要是为了提高传输数据的可靠性。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ⑦停止位。停止位的长度为2位，用来指示数据帧的结束。</FONT></P>
<P><FONT color=#000000><B>3. 2轮胎模块传输程序流程</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为轮胎模块要适应长期工作，考虑到轮胎运转的平衡等因素又不能选择大的电池，因此轮胎模块传输程序的算法选择不但要保证数据的可靠传输，同时还要保证最低的电能消耗。<BR><B>(1)发射模块发射程序流程</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭中断后，进行电源检测。若压力差值△1大于存储在ROM里设定的最大压差值△2，则说明轮胎的压力超限，需要报警。此时为增加接收机接收数据的可靠性，连续发送255帧。若其△1&lt;△2，只发送1次数据帧。发射程序流程如图4所示。</FONT></P>
<P><FONT color=#000000><B>(2)接收模块接收程序流程</B><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;接通电源后，接收机先后自行初始化和配置。一旦确认接收机配置完成，所有的LED就闪烁一次告知使用者模块准备就绪。在收到一个数据帧后，就要重新计算校验并与已经接收到的数据帧进行比较。数据帧经过确认后，某个轮胎和ID则要与存储在KX8存储器中的4个ID值比较。如果发现一个相配的ID，则数据就被处理并点亮相应的LED。最后，数据帧通过串行口发送出去以供外部数据接收和存储。接收程序流程如图5所示。</FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;由于每个轮胎模块要发送相同格式的数据，接收机控制器能在收到全部数据帧后中断，这样它可以在大部分时间都处于低<BR>能耗睡眠状态。它还有许多节能选项，即使汽车停很长时间，也不会消耗完一块电池。<BR><B>4&nbsp; 结论</B><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 轮胎压力和温度的实时监测与报警系统将成为汽车安全系统必备的功能之一。本文中通过对Motorola发射芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33493.html" target=_blank><FONT color=#000000>MC33493</FONT></A><FONT color=#000000>、接收芯片</FONT><A href="http://www.chinaicmart.com/series-MC3/MC33594.html" target=_blank><FONT color=#000000>MC33594</FONT></A><FONT color=#000000>以及微控制器芯片AT</FONT><A href="http://www.chinaicmart.com/series-89C/89C2051.html" target=_blank><FONT color=#000000>89C2051</FONT></A><FONT color=#000000>等器件的应用，得出一套较为完整的TPMS的原理和设计方案。该系统在低功耗、收发距离与可靠性以及安全性方面具有明显的优势。此外，也可用于单片机数据采集、遥测遥控、监测等系统中，如远距离无线抄表、无线钥匙等。</FONT></P>]]></description>
<pubDate>
2008-06-03 11:42:00.0</pubDate>
<guid>
http://zhuhaiting520.blogcn.com/diary,16493566.shtml</guid>
<comments>
http://zhuhaiting520.blogcn.com/diary,16493566.shtml#comment</comments>
</item>
<item>
<blogcn_uid>
<![CDATA[200442992]]></blogcn_uid>
<title>
<![CDATA[深入探讨《Small RTOS51中消息队列的一处隐患》]]></title>
<link>
http://zhuhaiting520.blogcn.com/diary,16329604.shtml</link>
<description>
<![CDATA[<FONT color=#000000>　贵刊</FONT><A href="http://www.chinaicmart.com/series-200/2005.html" target=_blank><FONT color=#000000>2005</FONT></A><FONT color=#000000>年第7期《Small RTOS51中消息队列的一处隐患》一文，对Small RTOS51V1.12.1版本的消息队列机制进行了周密的分析，不但找出了问题所在，也提出了相应的两种解决方法\[1\]。实时嵌入式系统对于安全性有很高的要求，作为实时嵌入式系统的内核，不但要求精简高效，更要加强安全，防止因操作系统出错而在应用领域导致灾难性的后果。因此原文作者所做的工作极有价值，同时也感谢贵刊对这一领域的高度重视。<BR><BR>　　因为这一问题涉及到内核的等待与唤醒机制，并且正是由于对内核的等待与唤醒机制的理解与运用不同，才导致了问题的出现，所以本文从操作系统理论的高度以及目前主流的实时内核的实现方法两方面入手论述这一问题，并揭示如何才能完美实现原文的第2种方法。<BR><BR><STRONG>1 内核唤醒机制的三种模型</STRONG><BR><BR>　　当利用系统调用接口获取资源时，如果资源不满足，系统调用可以返回错误，也可以根据选项悬挂等待；当有任务释放资源从而资源可以满足时，就要将资源等待队列中的相关任务唤醒。唤醒模型有三种\[2\]：<BR>第1种，将该资源等待队列中的任务全部唤醒，让这些任务与系统中的其他任务平等竟争资源。这种策略会使系统在一段时间内繁忙，因为最终只有一个任务获取到资源，其他任务可能将经历一个从就绪态到运行态再到阻塞态的过程。这种现象在操作系统理论上称为“千军万马奔腾”。就目前的一些主流实时内核VxWorks、Nucleus、uC/OSII等来讲，都没有采用这种策略。<BR><BR>　　第2种，将该资源等待队列中的一个任务唤醒，依据所采用的策略不同，可以是等待任务中优先级最高的，也可以是第1个进入等待队列中的任务。这个任务被唤醒后将和系统中的其他任务一起竞争这个资源。如果这个任务最终没有竞争到这个资源，它将再次进入该资源的等待队列并进行任务调度。<BR><BR>　　第3种，将该资源等待队列中的一个任务唤醒，依据所采用的策略不同，可以是等待任务中优先级最高的，也可以是第1个进入等待队列中的任务，这点和第2种方法是一样的。和第2种情况不同的是，这个任务被指定为资源的获得者。主流实时内核VxWorks、Nucleus、uC/OSII等都采用这种策略。以VxWorks为例，其内核文档指出\[3\]：“任务或ISR调用msgQSend()向消息队列发送消息。此时如果没有任务在等待该队列中的消息，那么该消息进入消息队列的缓冲；如果有任务等待该队列的消息，那么这个消息立即提交给第1个等待的任务。”这段话有两方面的含义：① 明确指出第1个等待的任务获得资源；② 第1个等待的任务获得资源的方式是直接从消息的发送者那里获得，也就是说这个消息将不进入消息队列进行缓冲，消息在发送者和接收者之间进行手把手的传递。对于这种机制的实现，可以以著名的源代码公开的实时嵌入式操作系统Nucleus为例。下面是Nucleus内核关于接收消息的一段精彩的代码：<BR>else {<BR>　　/* 消息队列为空，决定是否悬挂等待*/<BR>　　if (suspend) {<BR>　　　　/* 增加等待该消息队列的任务数量 */<BR>　　　　queue -&gt; qu_tasks_waiting++;<BR>　　　　/* 填充悬挂块数据结构并且悬挂该任务*/<BR>　　　　suspend_ptr =&amp;suspend_block;<BR>　　　　suspend_ptr -&gt; qu_queue=queue;<BR>　　　　suspend_ptr -&gt; qu_suspend_link.cs_next=NU_NULL;<BR>　　　　suspend_ptr -&gt; qu_suspend_link.cs_previous=NU_NULL;<BR>　　　　suspend_ptr -&gt; qu_message_area=<BR>　　　　　　　　　　　　　　(UNSIGNED_PTR) message;<BR>　　　　suspend_ptr -&gt; qu_message_size=size;<BR>　　　　task=(TC_TCB *) TCT_Current_Thread();<BR>　　　　suspend_ptr -&gt; qu_suspended_task=task;<BR>　　　　/* 判断该消息队列的等待方式是先进先出还是按任务<BR>　　　　的优先级 */<BR>　　　　if (queue -&gt; qu_fifo_suspend) {<BR>　　　　　　/* 是先进先出等待方式，将悬挂块链入消息队列<BR>　　　　　　的等待链表 */<BR>　　　　　　CSC_Place_On_List((CS_NODE **) <BR>　　　　　　　　　　&amp;(queue -&gt; qu_suspension_list),<BR>　　　　　　　　　　&amp;(suspend_ptr -&gt; qu_suspend_link));<BR>　　　　}<BR>　　　　else {<BR>　　　　　　/* 按优先级方式将悬挂块链入任务等待链表的<BR>　　　　　　合适位置 */<BR>　　　　　　suspend_ptr -&gt; qu_suspend_link.cs_priority =<BR>　　　　　　　　　　　　　　TCC_Task_Priority(task);<BR>　　　　　　CSC_Priority