<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ppp="http://blog.sohu.com/rss/module/ppp/"
	>

	<channel>
		<title>哈尔滨工程大学萧萧创新工作室</title>
		<link>http://wemake.blog.sohu.com/</link>
		<description><![CDATA[哈尔滨工程大学萧萧创新工作室]]></description>
		<pubDate>Fri, 12 Oct 2007 14:26:20 +0800</pubDate>
		<generator>搜狐博客</generator>
		<ppp:ebi>a2e30d3792</ppp:ebi>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>基于AT89C2051的多路舵机控制器设计</title>
			<link>http://wemake.blog.sohu.com/54071883.html</link>
			<comments>http://wemake.blog.sohu.com/54071883.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Fri, 12 Oct 2007 14:26:20 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/54071883.html</guid>
			<description><![CDATA[<p><strong>摘要</strong>&nbsp; 舵机是机器人、机电系统和航模的重要执行机构。舵机控制器为舵机提供必要的能源和控制信号。本文提出一种以外部中断计数为基础的PWM波形实现方法。该方法具有简单方便，成本低，可实现多路独立PWM输出的优点。<br /><b>关键词</b> AT89(：205l 舵机控制器 外部中断PWM </p>
<p>&nbsp;&nbsp;&nbsp; 舵机是一种位置伺服的驱动器。它接收一定的控制信号，输出一定的角度，适用于那些需要角度不断变化并可以保持的控制系统。在微机电系统和航模中，它是一个基本的输出执行机构。<br /><b><br />1 舵机的工作原理<br />&nbsp;&nbsp;&nbsp; </b>以日本FUTABA-S3003型舵机为例，图1是FUFABA-S3003型舵机的内部电路。</p>
<p align="center"><img height="245" src="http://www.21ic.com/info/images/dpj/200608/17/17a.jpg" width="467" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp; 舵机的工作原理是：PWM信号由接收通道进入信号解调电路BA66881。的12脚进行解调，获得一个直流偏置电压。该直流偏置电压与电位器的电压比较，获得电压差由BA6688的3脚输出。该输出送人电机驱动集成电路BA6686，以驱动电机正反转。当电机转速一定时，通过级联减速齿轮带动电位器R。，旋转，直到电压差为O，电机停止转动。舵机的控制信号是PWM信号，利用占空比的变化改变舵机的位置。</p>
<p><b>2 舵机的控制方法<br />&nbsp;&nbsp;&nbsp; </b>标准的舵机有3条导线，分别是：电源线、地线、控制线，如图2所示。</p>
<p align="center"><img height="161" src="http://www.21ic.com/info/images/dpj/200608/17/17b.jpg" width="154" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源．电压通常介于4～6V，一般取5V。注意，给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号，方波脉冲信号的周期为20 ms(即频率为50 Hz)。当方波的脉冲宽度改变时，舵机转轴的角度发生改变，角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用围3来表示。</p>
<p align="center"><img height="277" src="http://www.21ic.com/info/images/dpj/200608/17/17c.jpg" width="327" border="0" /></p>
<p><b>3 舵机控制器的设计<br />(1)舵机控制器硬件电路设计<br />&nbsp;&nbsp;&nbsp; </b>从上述舵机转角的控制方法可看出，舵机的控制信号实质是一个可嗣宽度的方波信号(PWM)。该方波信号可由FPGA、模拟电路或单片机来产生。采用FPGA成本较高，用模拟电路来实现则电路较复杂，不适合作多路输出。一般采用单片机作舵机的控制器。目前采用单片机做舵机控制器的方案比较多，可以利用单片机的定时器中断实现PWM。该方案将20ms的周期信号分为两次定时中断来完成：一次定时实现高电平定时Th；一次定时实现低电平定时T1。Th、T1的时间值随脉冲宽度的变换而变化，但，Th+T1=20ms。该方法的优点是，PWM信号完全由单片机内部定时器的中断来实现，不需要添加外围硬件。缺点是一个周期中的PWM信号要分两次中断来完成，两次中断的定时值计算较麻烦；为了满足20ms的周期，单片机晶振的频率要降低；不能实现多路输出。也可以采用单片机+8253计数器的实现方案。该方案由单片机产生计数脉冲(或外部电路产生计数脉冲)提供给8253进行计数，由单片机给出8253的计数比较值来改变输出脉宽。该方案的优点是可以实现多路输出，软件设计较简单；缺点是要添加l片8253计数器，增加了硬件成本。本文在综合上述两个单片机舵机控制方案基础上，提出了一个新的设计方案，如图4所示。</p>
<p align="center"><img style="CURSOR: hand" src="http://www.21ic.com/info/images/dpj/200608/17/17d.jpg" width="600" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 该方案的舵机控制器以AT89C2051单片机为核心，555构成的振荡器作为定时基准，单片机通过对555振荡器产生的脉冲信号进行计数来产生PWM信号。该控制器中单片机可以产生8个通道的PWM信号，分别由AT89C2051的P1．0～Pl.7(12～19引脚)端口输出。输出的8路PWM信号通过光耦隔离传送到下一级电路中。因为信号通过光耦传送过程中进行了反相，因此从光耦出来的信号必须再经过反相器进行反相。方波信号经过光耦传输后，前沿和后沿会发生畸变，因此反相器采用CD40106施密特反相器对光耦传输过来的信号进行整形，产生标准的PWM方波信号。笔者在实验过程中发现，舵机在运行过程中要从电源吸纳较大的电流，若舵机与单片机控制器共用一个电源，则舵机会对单片机产生较大的干扰。因此，舵机与单片机控制器采用两个电源供电，两者不共地，通过光耦来隔离，并且给舵机供电的电源最好采用输出功率较大的开关电源。该舵机控制器占用单片机的个SCI串口。串口用于接收上位机传送过来的控制命令，以调节每一个通道输出信号的脉冲宽度。MAX232为电平转换器，将上位机的RS232电平转换成TTL电平。<br /><b><br />(2)实现多路PWM信号的原理</b><br />&nbsp;&nbsp;&nbsp; 在模拟电路中，PWM脉冲信号可以通过直流电平与锯齿波信号比较来得到。在单片机中，锯齿波可以通过对整型变量加1操作来实现，如图5所示。假定单片机程序中设置一整型变量SawVal，其值变化范围为O～N。555振荡电路产生的外部计数时钟信号输入到AT89C2051的INTO脚。每当在外部计数时钟脉冲的下降沿，单片机产生外部中断，执行外部中断INT0的中断服务程序。每产生一次外部中断，对SawVal执行一次加1操作，若SawVal已达到最大值N，则对SawVal清O。SawVal值的变化规律相当于锯齿波，如图5所示。若在单片机程序中设置另一整型变量DutyVal，其值的变化范围为O～N。每当在SawVal清0时，DulyVal从上位机发送的控制命令中读入脉冲宽度系数值，例如为H(0&le;H&le;N)。若DutyVal&ge;SawVal，则对应端口输出高电平；若DutyVal&lt;Sawval，则对应端口输出低电平。从图5中可看出，若改变DutyVal的值，则对应端口输出脉冲的宽度发生变化，但输出脉冲的频率不变，此即为PWM波形。</p>
<p align="center"><img height="274" src="http://www.21ic.com/info/images/dpj/200608/17/17e.jpg" width="449" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 设外部计数时钟周期为TINT0，锯齿波周期(PWM脉冲周期)为TPWM，PWM脉冲宽度占空比为D，由图5可得出如下关系：</p>
<p>&nbsp;&nbsp;&nbsp; <img height="190" src="http://www.21ic.com/info/images/dpj/200608/17/17f.jpg" width="416" border="0" /><br />&nbsp;&nbsp;&nbsp; 由式(3)可知，PWM波形的周期TPWM一旦确定下来，只须选定计数最大值N，就可以确定外部时钟脉冲所需周期(频率)。外部时钟脉冲周期TINT0显然是PWM脉冲宽度变换的最小步距，即调节精度。由式(4)可知，N越大，步距所占PWM周期的百分比越小，精度越高。例如，若采用8位整型变量，最大值N=28-1=255，则精度为1／(255+1)=1／255；若采用16位整型变量，最大值N=216-1=65535，则精度为1／65536。文中计数变量SawVal采用8位整型变量，因此N=255。对于一般应用，其精度已足够。就舵机而言，要求TPWM=20ms，则可算得外部时钟周期为：</p>
<p>&nbsp;&nbsp;&nbsp; <img height="51" src="http://www.21ic.com/info/images/dpj/200608/17/17g.jpg" width="423" border="0" /><br />&nbsp;&nbsp;&nbsp; 因此，设计555振荡电路时，其输出脉冲的频率应为：</p>
<p>&nbsp;&nbsp;&nbsp; <img height="64" src="http://www.21ic.com/info/images/dpj/200608/17/17h.jpg" width="397" border="0" /><br />&nbsp;&nbsp;&nbsp; 当有多个变量与SawVal比较，将比较结果输出到多个端口时。就形成了多路PWM波形。各个变量的值可以独立变化，因此各路PWM波形的占空比也可以独立调节，互不相干。多路PWM波形的产生如图6所示。图中以3路PWM波形为例。</p>
<p align="center"><img height="254" src="http://www.21ic.com/info/images/dpj/200608/17/17i.jpg" width="457" border="0" /></p>
<p><b>4 舵机控制器软件的设计<br />&nbsp;&nbsp;&nbsp; </b>舵机控制器的控制核心为单片机AT89C2051。文中，程序用C5l编写，工作方式为前后台工作方式。单片机程序包括系统初始化程序、串口通信程序、上位机命令解释与PWM脉宽生成程序和多路PWM波形输出程序。串行通信程序和多路PWM波形输出程序采用中断方式。串口通信格式为渡特率9600bps、8位数据位、1位停止位、无校验、ASCII码字符通信。串口通信程序用于接收上位机发送过来的控制命令。控制命令采用自定义文本协议，即协议内容全部为ASCII码字符。通信协议格式如图7所示。</p>
<p align="center"><img height="184" src="http://www.21ic.com/info/images/dpj/200608/17/17j.jpg" width="221" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 例如，要控制通道1的PWM脉宽，脉宽系数为25，则通信协议内容为&ldquo;#&rdquo;&ldquo;1&rdquo;&ldquo;0&rdquo;&ldquo;2&rdquo;&ldquo;5&rdquo;&ldquo;!&rdquo;这6个字符。这时通道l的PWM占空比为25／256=O．098。一个通道号对应一个PWM脉冲输出端口。本设计为8个通道，号码为l～8，对应单片机的P1．o～P1．7。起始符和终止符起到帧同步的作用。串口通信程序流程如图8所示。</p>
<p align="center"><img style="CURSOR: hand" src="http://www.21ic.com/info/images/dpj/200608/17/17k.jpg" width="600" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 图8中，CHNo存放的是PWM通道号ASCII码，Dutyl00、DutylO、Duoyl分别存放的是脉宽系数的百位数、十位数和个位数的ASCII码(注意，若高位数为O，则该位的字符应为&ldquo;0&rdquo;，不能省略。如25，完整字符应为&ldquo;O&rdquo;&ldquo;2&rdquo;&ldquo;5&rdquo;。CharNo为信号量，用于对串口接收的字符顺序以及串口中断与上位机命令解释程序之间进行同步。</p>
<p><br /><b>5 舵机控制器实验<br />&nbsp;&nbsp;&nbsp; </b>图9为舵机控制板输出的其中一路PWM波形(带舵机负载)。<br />&nbsp;&nbsp;&nbsp; 从图9中可看出，舵机控制器输出的PWM波形稳定、干净，符合设计要求。</p>
<p align="center"><img height="249" src="http://www.21ic.com/info/images/dpj/200608/17/17l.jpg" width="326" border="0" /></p>
<p><b>6 结论</b><br />&nbsp;&nbsp;&nbsp; 本文提出的多路舵机控制器设计方法，以单片机AT89C2051为核心，由外部振荡电路提供PWM脉冲的定时基准，控制部分与舵机驱动部分由两个电源供电，两者电气隔离。这种设计方案的优点是：<br />&nbsp;&nbsp;&nbsp; ①PWM波形由外部振荡电路提供定时基准，与单片机内部振荡器的频率无关，不影响串口通信、定时器等参数的配置。<br />&nbsp;&nbsp;&nbsp; ②PWM波形的调整精度可任意确定。<br />&nbsp;&nbsp;&nbsp; ③本没计思路可应用于任意多路的PWM输出，只要单片机能提供足够多的输出端口，例如将AT89C2051换成AT89S5l，就可以提供至少24路的PWM输出(P0、Pl、P2)。<br />&nbsp;&nbsp;&nbsp; ④控制参数由SCI串口输入，适应面广，上位机可以是PC机、单片机或是PLC。<br />&nbsp;&nbsp;&nbsp; ⑤本方法具有一般性，任何单片机只要能提供SCI中断、外部中断就可以应用本方法</p>]]></description>
		</item>
		    
		
		<item>
			<title>基于LMD18245型驱动器的二相步进电机细分驱动器设计</title>
			<link>http://wemake.blog.sohu.com/52072685.html</link>
			<comments>http://wemake.blog.sohu.com/52072685.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Fri, 12 Oct 2007 14:23:09 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/52072685.html</guid>
			<description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font size="4">基于LMD18245型驱动器的二相步进电机细分驱动器设计</font></p>
<p><b>摘要：</b>给出一种基于LMDl8245型驱动器的二相步进电机细分驱动器的设计方法．着重介绍LMD-18245的工作原理以及系统的硬件连接和软件设计。 </p>
<p>&nbsp;&nbsp;&nbsp; <b>关键词：</b>LMDl8245；步进电机；细分驱动</p>
<p><b>引言</b></p>
<p>步进电机在电脑绣花机等纺织机械设备中有着广泛的应用，这类步进电机的特点是保持转矩不高，频繁启动反应速度快、运转噪音低、运行平稳、控制性能好、整机成本低。目前用于电脑绣花机的步进电机多数为五相混合式步进电机，目的是通过采用高相数的步进电机来减小步矩角和提高控制精度，但是采用该种方式获得的性能上的提高是有限的．而且成本也相对较高。采用细分驱动技术可以大大改善步进电机的运行品质，减少转矩波动，抑制振荡，降低噪音，提高步矩分辨率。若采用反应式步进电机，在性能明显提高的同时还能大大降低产品的成本。<br /><img height="398" src="http://www.21ic.com/info/images/iie/200512/11a.gif" width="549" border="0" /><br /><font size="3">&nbsp;&nbsp;&nbsp; </font>笔者采用美国国家半导体公司的LMDl8245型步进电机专用驱动电路设计了一种二相步进电机的细分驱动器。</p>
<p><b>1 LMDl2845的特点及功能</b></p>
<p>LMDl2845是二相步进电机专用驱动电路，其全桥功率驱动器集成了双极性步进电机驱动和控制电流所需的全部电路，并通过相同单稳态结构上的DMOS功率开关在同一器件上构建双极CMOS控制和电流保护等功能的组合，同时采用创新的电流检测方式，基本消除了功率损耗。一个LMDl8245能够驱动一相双极性步进电机绕组．当其工作电压达55V时，电流可达3A(峰值为6A)，其内置的4位数／模转换器提供了一种对电机电流的数字化控制，从而简化了步进电机全步、半步及细分驱动的实现方式，而对于要求更高的细分驱动应用还可以通过外扩DAC来实现。</p>
<p>1．1主要特点</p>
<p>●工作电压可达55V，电流在3A连续可调；</p>
<p>●每个功率开关管具有很低的RDS(on)(通常为 0．312)；</p>
<p>●内置箝位二极管；</p>
<p>●低损耗电流检测方式；</p>
<p>●电机电流用数字或模拟控制；<img height="304" src="http://www.21ic.com/info/images/iie/200512/11b.gif" width="278" border="0" /></p>
<p>OTI'[．及CMOS输入兼容；</p>
<p>●在Ti=155~C~于自动关断；</p>
<p>●过流保护；</p>
<p>●消除浪涌电流；</p>
<p>●采用15引脚TO一220封装。</p>
<p>1．2功能原理</p>
<p>LMDl8245主要由断路放大器、电流感应放大器、4位DAC、比较器、单稳态及保护电路等部分组成，其功能和连接框图如图1所示。下面简单介绍主要模块的工作原理。</p>
<p>(1)断路放大器</p>
<p>断路放大器通过管理功率桥中的反馈驱动开关来控制和限制电机线圈中的电流。功率桥由4个固态功率开关管(S1，S2，S3，S4)和4个H配置连接的二极管组成，如图2所示。控制电路检测电机线圈电流并和门限电流相比较。当电机线圈电流保持在门限电流以下时，桥对面的一个源开关和一个关断开关使得供电电压加在线圈上，同时线圈电流快速增加到1／cc／R(R为线圈电阻)。一旦线圈电流超过门限电流，控制电路就关闭关断开关一个固定的关断时间。在关断期间源开关和对面上位二极管将线圈短路，同时线圈电流续流并以指数衰减到零．在关断时间的最后，控制电路将另一关断开关打开．并且线圈电流再次快速增加到I／cc／R。重复上述过程可以实现电流浪涌动作，从而将线圈电流限制在门限电流．且只有当线圈电流达到门限电流时浪涌电流才会发生。</p>
<p>(2)数／模转换器(DAC)</p>
<p>DAC的作用是在VOACREFD／16处浪涌设置门限电压，其中D是与加在M4一M1上的二进制数相等的十进制数，M4是最高位。在要求更高的应用中，外部：DAC能够驱动DAC REF输入。DAC REF的最大直流电压是12V，VDAC REF的合适电压范围是0V~5V。</p>
<p>（3）比较器、单稳态及线圈电流浪涌门限</p>
<p>引脚CS OUT上电压超出DAC的输出电压时，比较器触发单稳态，单稳态一旦被触发就给控制逻辑提供关断脉冲。在关断脉冲期间，功率轿使电机线圈短路，从而引起线圈中的电流续流并衰减到零，通过连接在RC和地之间的一个并行阻容网络，可将关断及脉冲时间设置为1.1RC秒。综上所述不难得出线圈电流约为（（VDAC REF D/16）/250&times;10-6&times;RS）时发生浪涌。<b><br /><br /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://117.img.pp.sohu.com/images/blog/2007/6/23/21/7/113f1a15b5b.jpg" border="0" /><br /><br />2 驱动系统设计</b></p>
<p>通过以下不同组合方式配置M4-M1端口，LMD18245可以工作在单相运行全步、双相运行全步、不加转矩补偿的半步驱动、加转矩补偿的半步驱动、1/4细分驱动、1/8细分驱动、1/10细分驱动、1/16细分驱动等驱动方式下。不同驱动方式下。不同驱动方式可以通过调整外部跳线实现，也可以通过在线编程软件实现。这里介绍最常用的，性能较好的10细分驱动的原理及应用，系统原理图如图3所示。该电路主要由一个AT80C2051和二个LMD18245及外围电路组成。</p>
<p>2.1 系统供电</p>
<p>系统由二路电源供电，一路采用8~12V DC给LM7805供电，输出5V标准电压，作为系统的信号电源；由于LM18235F型驱动器的额定输入电压最大值为55V DC，因此，当使用超过45V DC的电源时，将会产生由电机减速所带来的反电动势，可能会使供电电压增加并超出55V额定电压的限制。为加强保护，可放置一个适当的齐纳二极管将电压限制在55V以下，也可在电机供电端接入一个低于2.5A的保险丝。由此可见，用一个标准24V交流变压器即可，因为经过二极管整流和电容器滤波可以产生接近35V DC的电压来实现电源供电。该系统采用未稳压的线性电源。而如果采用开关电源，则要在输出端放置一个大电容器（10000&mu;F或更大）。</p>
<p>2.2 步进/方向连接</p>
<p>AT89C2051的（T0）P3.4和（T1）P3.5口均定义为GPIO口并分别接二个驱动器的DIR输入端，P3.4和P3.5的输出由程序控制。步进电机的实际运转方向通过改变INT1(P3.3)输入电平来实现，INT0（P3.2）作为步进脉冲输入口，步进和方向信号均设置为&ldquo;低有效&rdquo;，它们和BREAK信号均来自上位机，有时可能需要光电隔离，并且引脚脉宽至少应为2ms。该系统的最大步进频率为45kHz，在1/8细分驱动模式下，1.8o步矩角的步进电机转速可以接近1700rpm。</p>
<p>2.3BRAKE的连接</p>
<p>LMD18245驱动器的一个设计特点是具有BRAKE（刹车）引脚，是用来关断步进电机的电源。</p>
<p>该引脚为逻辑高电平时会使能刹车并制动步进电机。正常操作时，BRAKE引脚为低电平或接地。在该系统中，BRAKE引脚接收上位机的信号来实现电机的实时关断。<img height="332" src="http://www.21ic.com/info/images/iie/200512/11d.gif" width="305" border="0" /></p>
<p>2.4限流电阻的设置</p>
<p>LMDl8245驱动步进电机的电流达到3A／相．最大驱动电流输出由电阻器R5和R7设置。电流检测电阻可以采用以下公式计算：R=20000／A(其中R的单位是欧姆，A的单位为安培)。电阻器。R5和R7的典型值如表1所示，要求使用l／4W电阻并且阻值不能低于6.6k&Omega;。二个LMDl8245型驱动器必须设置为相同的电流输出门限，R5和R7采用相同的阻值。不要使驱动器的输出超过3A，否则将会出现问题。若要灵活改变电流输出，可以采用两个最大阻值为25k&Omega;的可变电阻器分别替换R5和R7，但为安全起见，还是建议采用R5和R7。</p>
<p>2.5驱动方式选择</p>
<p>在不同的步进阶段给LMDl8245的M4-M1端口加载一定序列的二进制数可以非常容易地实现二相步进电机全步驱动、半步驱动、1/4细分驱动、1/8细分驱动、l/10细分驱动和l／16细分驱动等驱动方式，可以设置外部的跳线开关给SELl、SEL2、SEL3端口加载不同的值并通过相应的软件确定具体以何种方式驱动步进电机。</p>
<p><b>3 驱动系统软件设计</b></p>
<p>该系统采用AT89C2051作为主控制器，其指令系统与5l指令集完全兼容。根据二相双极型步进电机均匀细分时的电流变化规律公式：IA=Im-cos&theta;，IB=Imsin&theta;，可以计算出1／10细分驱动时电机中的相电流比及其对应的M4一Ml上的二进制等量数值。将该等量数值用数组表示为：</p>
<p>PDAC [40] =fob000011 11，0b001011 11，0bolollll O，0b01111101，&hellip;，0b00101111}；<br /><br /><b>表1 限流电阻及输出电流门限</b></p>
<p>
<table border="1">
<tbody>
<tr>
<td align="middle">R5和R7的阻值/k&Omega;</td>
<td align="middle">输出电流门限/A</td></tr>
<tr>
<td align="middle">20</td>
<td align="middle">1</td></tr>
<tr>
<td align="middle">10</td>
<td align="middle">2</td></tr>
<tr>
<td align="middle">8</td>
<td align="middle">2.5</td></tr>
<tr>
<td align="middle">6.6</td>
<td align="middle">3</td></tr></tbody></table></p>
<p>PDIR[40]={0b00110000,0b00110000,0b00110000，0b00110000，&hellip;，0b00010000 l；</p>
<p>由此得出二相步进电机驱动控制软件流程如图4所示，其中初始化设置要定义各端口的功能,设置INT0为边沿触发，其余均为GPIO口：初始化电机主要是运行前设置端口的I／O方向，确定所选择的细分驱动方式，关断所有线圈电源并记录正确的步进位置；在中断服务程序中判断步进方向并计算步进位置，根据步进位置在数组PDAC[401]及：PDIR[40]中选取正确的值送到AT89c2051的P1和P3口完成一个微步进过程；最后由用户中止程序运行。</p>
<p><b>4 结束语</b></p>
<p>笔者设计的二相步进电机细分驱动器在低头数电脑绣花机中得到较好的应用，工作过程中运转噪声低、运行平稳、控制性能较好、使用方便、整机设计简洁、价格低廉，是一种性价较高的二相步进电机驱动器</p>]]></description>
		</item>
		    
		
		<item>
			<title>六足爬虫机器人设计</title>
			<link>http://wemake.blog.sohu.com/49462610.html</link>
			<comments>http://wemake.blog.sohu.com/49462610.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Thu, 7 Jun 2007 15:53:19 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/49462610.html</guid>
			<description><![CDATA[&nbsp; 
<p align="center"><font size="6">六足爬虫机器人设计</font></p>
<p align="center">&nbsp;</p>
<p align="center"><font size="6"></font>&nbsp;</p>
<p align="center"><font size="6">&nbsp; </font></p>
<p><a name="_Toc84859256"><font size="3">（一）、机器人的大脑</font></a></p>
<p><font size="2">它可以有很多叫法，可以叫做：可编程控制器、微控制器，微处理器，处理器或者计算器等，不过这都不要紧，通常微处理器是指一块芯片，而其它的是一整套控制器，包括微处理器和一些别的元件。任何一个机器人大脑就必须要有这块芯片，不然就称不上机器人了。在选择微控制器的时候，主要要考虑：处理器的速度，要实现的功能，ROM和RAM的大小，I/O端口类型和数量，编程语言以及功耗等。</font></p>
<p><font size="2">其主要类型有：单片机、PLC、工控机、PC机等。</font></p>
<p><font size="2">单有这些硬件是不够的，机器人的大脑还无法运行。只有在程序的控制下，它才能按我们的要求去工作。可以说程序就是机器人的灵魂了。而程序是由编程语言所编写的。</font></p>
<p><font size="2">编程语言是一个控制器能够接受的语言类型，一般有C语言，汇编语言或者basic语言等，这些通常能被高级一点的控制器直接执行，因为在高级控制器里面内置了编译器能够直接把一些高级语言翻译成机器码。微处理器将执行这些机器码，并对机器人进行控制。</font></p>
<p><a name="_Toc84859257"><font size="2">（二）、机器人的眼睛耳朵</font></a></p>
<p><font size="2">传感器，是机器人的感觉器官，是机器人和现实世界之间的纽带，使机器人能感知周围的环境情况。其主要有：光电传感器、红外传感器、力传感器、超声波传感器、位置和姿态传感器等等。下面我将就几种常用传感器进行介绍：</font></p>
<p><font size="2">1、光电传感器：光电传感器的原理是光电效应。其主要用途是颜色识别（机器人就可以沿着地上的线条行进了）和光电编码等。</font></p>
<p><font size="2">2、红外传感器：红外传感器是用来测量距离和感知周围情况的。因为发射出去的红外信号在一定距离内遇到物体就会反射回来。通过发送红外线信号，并接收反射回来的信号，机器人就可以感知前方或身体周围的情况，做出相应的调整（如：倒退或绕行等）。</font></p>
<p><font size="2">3、力传感器：力传感器是用来检测碰撞或者接触信号的，比如机械手的应用，当你放一个东西到机械手的时候，机械手自动抓住它，它就需要力传感器检测东西抓的紧不紧。典型的力传感器是微动开关和压敏传感器。微动开关其实就是一个小开关，通过调节开关上的杠杆长短，能够调节触动开关的力的大小。用来做碰撞检测这是最好不过了。但是这种传感器必须事先确定好力的阀值，也就是说只能实现硬件控制（开还控制）。而压敏传感器是能根据受力大小，自动调节输出电压或者电流，从而可以实现软件控制（闭环控制）。</font></p>
<p><font size="2">4、超声波传感器：超声波传感器是从蝙蝠那里学来的，通过把发射出的信号与接收到的信号进行对比，就可以测定周围是否有障碍物，及障碍物的距离，也属于距离探测传感器，能提供交远的探测范围，而且还能提供在一个范围内的探测而不是一条线的探测。</font></p>
<p><font size="2">5、位置和姿态传感器：机器人在移动或者动作的时候必须时时刻刻知道自己的姿态动作，否则就会产生控制中的一个开环问题，没有反馈，无法获知运动是否正确。 位置传感器和姿态传感器就是用来解决这个问题的。常用的有光电编码器，由于机器人的执行机构一般是电机驱动，通过计算电机转的圈数，可以得出电机带动部件的大致位置，编码器就是这样一种传感器，它一般和电机轴或者转动部件直接连接，电机或者转动部件转了多少圈或者角度能够通过编码器读出，控制软件再根据读出数据进行位置估计计算。还有一种是陀螺仪，这是利用陀螺原理制作的传感器，主要可以测得移动机器人的移动加速度，转过的角度等信息。</font></p>
<p><a name="_Toc84859258"><font size="2">（三）、</font></a><font size="2">机器人的腿&mdash;&mdash;驱动器与驱动轮</font></p>
<p><font size="2">驱动器就是驱动机器人的动的部件。最常用的是电机了。当然还有液压，气动等别的驱动方式。一个机器人最主要的控制量就是控制机器人的移动，无论是自身的移动还是手臂等关节的移动，所以机器人驱动器中最根本和本质的问题就是控制电机，控制电机转的圈数，就可以控制机器人移动的距离和方向，机械手臂的弯曲的程度或者移动的距离等。所以，第一个要解决的问题就是如何让电机能根据自己的意图转动。一般来说，有专门的控制卡和控制芯片来进行控制的。有了这些控制卡和芯片，我们所要做的就是把微控制器和这些连接起来，然后就可以用程序来控制电机了。第二个问题是控制电机的速度，在机器人上的实际表现就是机器人或者手臂的实际运动速度了，机器人走的快慢全靠电机的转速，这样，我们就要求控制卡对电机有速度控制。电机目前常用的有两种，步进电机和直流电机。下面我将就这两种电机进行介绍：</font></p>
<p><font size="2">1、直流电机：这是最最普通的电机了。直流电机最大的问题是你没法精确控制电机转的圈数，也就前面所说的位置控制。你必须加上一个编码盘，来进行反馈，来获得实际转的圈数。但是直流电机的速度控制相对就比较简单，用一种叫PWM（脉宽调速）的调速方法可以很轻松的调节电机速度。现在也有很多控制芯片带调速功能的。选购时要考虑的参数是电机的输出力矩，电机的功率，电机的最高转速。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; 2、步进电机：看名字就知道了，它是一步一步前进的。也就是说，它可以一个角度一个角度旋转，不象直流电机，你可以很轻松的调节步进电机的转角位置，如果你发一个转10圈的指令，步进电机就不会转11圈，但是如果是直流电机，由于惯性作用，它可能转11圈半。步进电机的调速是通过控制电机的频率来获得的。一般控制信号频率越高，电机转的越快，频率越低，转的越慢。选购时要考虑的参数是电机的输出力矩，电机的功率，每个脉冲电机的最小转角。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; 还有就是关于输出的动力，要说明一下：一般情况下，电机都没法直接带动轮子或者手臂，因为速度过高力矩不够大，所以我们需要加上一个减速箱来增加电机的输出力矩，但是代价是电机速度的减小，比如一个1：250的齿轮箱，会让你电机的输出力矩增大250倍，但是速度只有原来的1/250了。首先计算出机器人所需要的速度与力矩大小，然后根据速度与力矩去选择电机与减速器。</font></p>
<p><a name="_Toc84859259"><font size="2">（四）、机器人的手臂&mdash;&mdash;机械传动专制</font></a></p>
<p><font size="2">机械传动专制就是，由电机驱动的一些杆件和机构（如：凸轮机构、螺杆机构等），用以实现机械手臂的上升、下降、伸缩、弯曲等动作。通常运用的机构有四杆机构、凸轮机构、螺杆机构、摇臂等。</font></p>
<p><a name="_Toc84859260"><font size="2">（五）、机器人的心脏&mdash;&mdash;电池</font></a></p>
<p><font size="2">电池为机器人的控制系统与驱动系统提供能源供应。主要有：电瓶及可充电电池、电池。</font></p>
<p><font size="2">前面介绍了机器人的一些基本知识，但这是远远不够的。机器人学科，是在多学科基础上发展起来的综合性技术。机器人技术涉及机械、电子、计算机、语言学和人工智能等许多学科。现在机器人已经应用在人类社会生活的各个领域，发挥着越来越重要的影响。</font></p>
<p><font size="2">我利用暑假的时间设计了一个六足爬虫机器人，用日立（HITACHI）的录像机遥控器来对它进行控制。基本原理是：遥控器发出红外学号，机器人通过红外接收器接收倒红外信号后，对信号进行解码，并以存储的代码进行比较，确定指令的含义，后可以实现前进、后退、左转、右转及发声等功能。控制系统我使用的是AT89S51单片机，编程语言使用的是汇编语言，动力系统使用的是微型伺服马达，能源系统使用的是9V电池。下面我将就具体设计进行介绍。</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&nbsp;</font></p>
<h3><a name="_Toc84859261"></a><a name="_Toc84856884"><font size="2">一、AT89S51</font></a><font size="2">单片机简介</font></h3>
<p><font size="2">AT89S51 为 ATMEL 所生产的可电气烧录清洗的 8051 相容单芯片，其内部程序代码容量为4KB</font></p>
<p><font size="2">&nbsp;</font></p>
<p><a name="_Toc84859262"><font size="2">（一）、AT89S51</font></a><font size="2">主要功能列举如下：</font></p>
<p><font size="2">1、为一般控制应用的 8 位单芯片</font></p>
<p><font size="2">2、晶片内部具时钟振荡器（传统最高工作频率可至 12MHz）</font></p>
<p><font size="2">3、内部程式存储器（ROM）为 4KB</font></p>
<p><font size="2">4、内部数据存储器（RAM）为 128B</font></p>
<p><font size="2">5、外部程序存储器可扩充至 64KB</font></p>
<p><font size="2">6、外部数据存储器可扩充至 64KB</font></p>
<p><font size="2">7、32 条双向输入输出线，且每条均可以单独做 I/O 的控制</font></p>
<p><font size="2">8、5 个中断向量源</font></p>
<p><font size="2">9、2 组独立的 16 位定时器</font></p>
<p><font size="2">10、1 个全多工串行通信端口</font></p>
<p><font size="2">11、8751 及 8752 单芯片具有数据保密的功能</font></p>
<p><font size="2">12、单芯片提供位逻辑运算指令</font></p>
<p><font size="2">&nbsp;</font></p>
<p><a name="_Toc84859263"><font size="2">（二）、AT89S51</font></a><font size="2">各引脚功能介绍：</font></p>
<p><font size="2">VCC：</font></p>
<p><font size="2">AT89S51 电源正端输入，接+5V。</font></p>
<p><font size="2">VSS：</font></p>
<p><font size="2">电源地端。</font></p>
<p><font size="2">XTAL1：</font></p>
<p><font size="2">单芯片系统时钟的反相放大器输入端。</font></p>
<p><font size="2">XTAL2：</font></p>
<p><font size="2">系统时钟的反相放大器输出端，一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了，此外可以在两引脚与地之间加入一 20PF 的小电容，可以使系统更稳定，避免噪声干扰而死机。</font></p>
<p><font size="2">RESET：</font></p>
<p align="center"><font size="2">AT89S51的重置引脚，高电平动作，当要对晶片重置时，只要对此引脚电平提升至高电平并保持两个机器周期以上的时间，AT89S51便能完成系统重置的各项动作，使得内部特殊功能寄存器之内容均被设成已知状态，并且至地址</font></p>
<p align="center"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://118.img.pp.sohu.com/images/blog/2007/6/7/15/9/1139d9c6b7a.jpg" border="0" /></p>
<p align="center">&nbsp; </p>
<p>0000H处开始读入程序代码而执行程序。</p>
<p>EA/Vpp：</p>
<p>&quot;EA&quot;为英文&quot;External Access&quot;的缩写，表示存取外部程序代码之意，低电平动作，也就是说当此引脚接低电平后，系统会取用外部的程序代码（存于外部EPROM中）来执行程序。因此在8031及8032中，EA引脚必须接低电平，因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时，此引脚要接成高电平。此外，在将程序代码烧录至8751内部EPROM时，可以利用此引脚来输入21V的烧录高压（Vpp）。</p>
<p>ALE/PROG：</p>
<p>ALE是英文&quot;Address Latch Enable&quot;的缩写，表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器（如74LS373），将端口0的地址总线（A0～A7）锁进锁存器中，因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6，因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时，此引脚会被当成程序规划的特殊功能来使用。</p>
<p>PSEN：</p>
<p>此为&quot;Program Store Enable&quot;的缩写，其意为程序储存启用，当8051被设成为读取外部程序代码工作模式时（EA=0），会送出此信号以便取得程序代码，通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM，使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。</p>
<p>PORT0（P0.0～P0.7）：</p>
<p>端口0是一个8位宽的开路汲极（Open Drain）双向输出入端口，共有8个位，P0.0表示位0，P0.1表示位1，依此类推。其他三个I/O端口（P1、P2、P3）则不具有此电路组态，而是内部有一提升电路，P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时（即取用外部程序代码或数据存储器），P0就以多工方式提供地址总线（A0～A7）及数据总线（D0～D7）。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0～A7，再配合端口2所送出的A8～A15合成一完整的16位地址总线，而定址到64K的外部存储器空间。</p>
<p>PORT2（P2.0～P2.7）：</p>
<p>端口2是具有内部提升电路的双向I/O端口，每一个引脚可以推动4个LS的TTL负载，若将端口2的输出设为高电平时，此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外，若是在AT89S51扩充外接程序存储器或数据存储器时，也提供地址总线的高字节A8～A15，这个时候P2便不能当做I/O来使用了。</p>
<p>PORT1（P1.0～P1.7）：</p>
<p>端口1也是具有内部提升电路的双向I/O端口，其输出缓冲器可以推动4个LS TTL负载，同样地若将端口1的输出设为高电平，便是由此端口来输入数据。如果是使用8052或是8032的话，P1.0又当做定时器2的外部脉冲输入脚，而P1.1可以有T2EX功能，可以做外部中断输入的触发脚位。</p>
<p>PORT3（P3.0～P3.7）：</p>
<p>端口3也具有内部提升电路的双向I/O端口，其输出缓冲器可以推动4个TTL负载，同时还多工具有其他的额外特殊功能，包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。</p>
<p>其引脚分配如下：</p>
<p>P3.0：RXD，串行通信输入。</p>
<p>P3.1：TXD，串行通信输出。</p>
<p>P3.2：INT0，外部中断0输入。</p>
<p>P3.3：INT1，外部中断1输入。</p>
<p>P3.4：T0，计时计数器0输入。</p>
<p>P3.5：T1，计时计数器1输入。</p>
<p>P3.6：WR：外部数据存储器的写入信号。</p>
<p>P3.7：RD，外部数据存储器的读取信号。</p>
<p>&nbsp;</p>
<p>&nbsp; </p>
<h3 style="TEXT-ALIGN: center"><a name="_Toc84859264"></a><a name="_Toc84856885"><span style="mso-bookmark: _Toc84859264"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">二、控制系统电路图</span></span></a></h3>
<p><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://117.img.pp.sohu.com/images/blog/2007/6/7/15/11/1139da697aa.jpg" border="0" /></p>&nbsp; 
<h3 style="TEXT-ALIGN: center"><a name="_Toc28085346"></a><a name="_Toc84859265"></a><a name="_Toc84856886"><span style="mso-bookmark: _Toc84859265"><span style="mso-bookmark: _Toc28085346"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">三、微型伺服马达原理与控制</span></span></span></a><span style="mso-bookmark: _Toc28085346"></span></h3>
<p><span style="mso-bookmark: _Toc28085346"><a name="_Toc84859266"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（一）、微型伺服马达内部结构</span></a></span></p>
<p><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个微型伺服马达内部包括了一个小型直流马达；一组变速齿轮组；一个反馈可调电位器；及一块电子控制板。其中，高速转动的直流马达提供了原始动力，带动变速（减速）齿轮组，使之产生高扭力的输出，齿轮组的变速比愈大，伺服马达的输出扭力也愈大，也就是说越能承受更大的重量，但转动的速度也愈低。</span></p>
<p><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://116.img.pp.sohu.com/images/blog/2007/6/7/15/13/1139da56a8f.JPG" border="0" /></span></p>
<p><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&nbsp; </span></p>
<p><a name="_Toc84859267"></a><a name="_Toc28085347"><span style="mso-bookmark: _Toc84859267"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（二）、微行伺服马达的工作原理</span></span></a><span style="mso-bookmark: _Toc84859267"></span><span style="mso-bookmark: _Toc28085347"></span><span style="LINE-HEIGHT: 133%; mso-bidi-font-size: 14.0pt"></span></p>
<p><span style="#">一个微型伺服马达是一个典型闭环反馈系统，其原理可由下图表示<img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://118.img.pp.sohu.com/images/blog/2007/6/7/15/14/1139da063ac.jpg" border="0" /></span></p>
<p><span style="#">&nbsp; </span></p>
<p><font size="2">减速齿轮组由马达驱动，其终端（输出端）带动一个线性的比例电位器作位置检测，该电位器把转角坐标转换为一比例电压反馈给控制线路板，控制线路板将其与输入的控制脉冲信号比较，产生纠正脉冲，并驱动马达正向或反向地转动，使齿轮组的输出位置与期望值相符，令纠正脉冲趋于为0，从而达到使伺服马达精确定位的目的。</font></p>
<p><a name="_Toc84859268"></a><a name="_Toc28085348"><font size="2">（三）、伺服马达</font></a><font size="2">的控制</font></p>
<p><font size="2">标准的微型伺服马达有三条控制线，分别为：电源、地及控制。电源线与地线用于提供内部的直流马达及控制线路所需的能源，电压通常介于4V&mdash;6V之间，该电源应尽可能与处理系统的电源隔离（因为伺服马达会产生噪音）。甚至小伺服马达在重负载时也会拉低放大器的电压，所以整个系统的电源供应的比例必须合理。</font></p>
<p><font size="2">输入一个周期性的正向脉冲信号，这个周期性脉冲信号的高电平时间通常在1ms&mdash;2ms之间，而低电平时间应在5ms到20ms之间，并不很严格，下表表示出一个典型的20ms周期性脉冲的正脉冲宽度与微型伺服马达的输出臂位置的关系：</font></p>
<p><font size="2"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://116.img.pp.sohu.com/images/blog/2007/6/7/15/15/1139da70148.JPG" border="0" /></font></p>
<p><font size="2">&nbsp; </font></p>
<p><a name="_Toc84859269"><font size="2">（四）、选用的伺服马达</font></a></p>
<p><font size="2">我选用的伺服马达为TowPro的，型号为SG303。其主要技术参数如下：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 转速：0.23秒／60度。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 力矩：3.2kg&middot;cm。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 尺寸：40.4mm&times;19.8mm&times;36mm。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重量：37.2g。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5V电源供电。</font></p>
<p><font size="2">控制周期脉冲宽度为20ms。送出不同的正脉冲宽度是，就可以得到不同的控制效果。控制正脉冲宽度如下：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正脉冲宽度为0.3ms时，伺服马达反转。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正脉冲宽度为2.5ms时，伺服马达正转。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正脉冲宽度为1.4ms时，伺服马达回到中点。</font></p>
<h3><a name="_Toc84859270"></a><a name="_Toc84856887"><font size="2">四、红外遥控</font></a></h3>
<p><font size="2">家中许多的电器产品都有遥控的功能，例如电视机、录像机、VCD、空调等家电产品，它们都是以红外遥控的方式进行遥控。<b></b></font></p>
<p><a name="_Toc84859271"><font size="2">（一）、 </font></a><font size="2">红外遥控系统</font></p>
<p><font size="2">通用红外遥控系统由发射和接收两大部分组成，应用编/解码专用集成电路芯片来进行控制操作，如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器；接收部分包括光、电转换放大器、解调、解码电路。</font></p>
<p><a name="_Toc84859272"></a><font size="2">（二）、 遥控发射器及其编码</font></p>
<p><font size="2">遥控发射器专用芯片很多，根据编码格式可以分成两大类，这里我们以运用比较广泛，解码比较容易的一类来加以说明，现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后，即有遥控码发出，所按的键不同遥控编码也不同。这种遥控码具有以下特征：</font></p>
<p><font size="2">采用脉宽调制的串行码，以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的&ldquo;0&rdquo;；以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的&ldquo;1&rdquo;，其波形如图2所示。</font></p>
<p><font size="2"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://115.img.pp.sohu.com/images/blog/2007/6/7/15/16/1139d9b5c99.JPG" border="0" /></font></p>
<p><font size="2">&nbsp; </font></p>
<p><font size="2">上述&ldquo;0&rdquo;和&ldquo;1&rdquo;组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率，达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。</font></p>
<p><font size="2">遥控编码是连续的32位二进制码组，其中前16位为用户识别码，能区别不同的电器设备，防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H；后16位为8位操作码（功能码）及其反码。UPD6121G最多额128种不同组合的编码，如图3所示。</font></p>
<p><font size="2">遥控器在按键按下后，周期性地发出同一种32位二进制码，周期约为108ms。一组码本身的持续时间随它包含的二进制&ldquo;0&rdquo;和&ldquo;1&rdquo;的个数不同而不同，大约在45～63ms之间，图4为发射波形图。</font></p>
<p><a name="_Toc84859273"><font size="2">（三）、红外接收模块</font></a></p>
<p><font size="2">左图为一常用的红外接收模块。其内部含有高频的滤波电路，专门用来滤除红外线合成信号的载波信号（38KH），并送出接收到的信号。当红外线合成信号进入红外接收模块，在其输出端便可以得到原先发射器发出的数字编码，只要经过单片机解码程序进行解码，便可以得知按下了哪一个按键，而做出相应的控制处理，完成红外遥控的动作。</font></p>
<p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>
<p><font size="2">红外接收模块</font></p></div></td></tr></tbody></table><font size="2">&nbsp;</font></p>
<p><font size="2">&nbsp;<img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://118.img.pp.sohu.com/images/blog/2007/6/7/15/17/1139da326fc.jpg" border="0" /></font></p>
<p><br /><font size="2">&nbsp;</font></p>
<p><a name="_Toc84859274"><font size="2">（四）、红外解码程序设计</font></a></p>
<p><font size="2">红外解码程序主要工作为等待红外线信号出现，并跳过引导信号，开始收集连续32位的表面数据，存入内存的连续空间。位信号解码的原则是：以判断各个位的波宽信号来决定高低信号。位解码原理如下：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解码为0：低电平的宽度0.56ms+高电平的宽度0.56ms。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解码为1：低电平的宽度1.68ms+高电平的宽度0.56ms。</font></p>
<p><font size="2">程序中必须设计一精确的0.1ms延时时间作为基础时间，以计数实际的波形宽度，若读值为5表示波形宽度为0.5ms，若读值为16表示波形宽度为1.6ms，以此类推。高电平的宽度1.12ms为固定，因此可以直接判断低电平的宽度的计数值5或时16，来确定编码为0或是1。程序中可以减法指令SUBB来完成判断，指令&ldquo;SUBB&nbsp; A，R2&rdquo;中若R2为计数值，A寄存器设为8，就可如下：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当&ldquo;8－R2&rdquo;有产生借位，借位标志C=1，表示编码为1。</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当&ldquo;8－R2&rdquo;无产生借位，借位标志C=0，表示编码为0。</font></p>
<p><font size="2">将借位标志C经过右移指令&ldquo;RRC&nbsp; A&rdquo;转入A寄存器中，再经由R0寄存器间接寻址存入内存中。</font></p>
<p><font size="2">详细解码程序请参看&ldquo;红外遥控爬虫机器人ASM程序&rdquo;中的&ldquo;红外解码子程序&rdquo;。</font></p>
<p><font size="2"><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://116.img.pp.sohu.com/images/blog/2007/6/7/15/18/1139da9fec7.JPG" border="0" /></font></p>
<p><font size="2">&nbsp; </font></p>
<h3><a name="_Toc84859275"></a>&nbsp;</h3>
<p>&nbsp;<img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://115.img.pp.sohu.com/images/blog/2007/6/7/15/19/1139d9df80c.jpg" border="0" /></p>]]></description>
		</item>
		    
		
		<item>
			<title>实用的步进电机驱动电路(图)</title>
			<link>http://wemake.blog.sohu.com/48055136.html</link>
			<comments>http://wemake.blog.sohu.com/48055136.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Tue, 29 May 2007 18:10:37 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/48055136.html</guid>
			<description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="5"> 实用的步进电机驱动电路(图)</font></p>
<p><font size="4">步进电机是一种将电脉冲转化为角位移的执行机构，可以通过</font><a title="控制" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77645.aspx"><font size="4">控制</font></a><font size="4">脉冲个数来控制角位移量，从而达到准确定位的目的；同时可以通过控制脉冲频率来控制电机转动的速度和加速度，从而达到调速的目的。 </font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;目前，对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计选用第三种方案，用PMM8713三相或四相步进电机的脉冲分配器、SI-7300A两相或四相功率驱动器，组成四相步进电机功率驱动</font><a title="电路" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77647.aspx"><font size="4">电路</font></a><font size="4">，以提高集成度和可靠性，步进电机控制框图见图1。</font></p>
<p align="center"><font size="4"><img style="WIDTH: 300px; HEIGHT: 75px" height="75" alt="图1  步进电机控制系统框图" src="http://www.cechinamag.com/images/Article/39089821-26c4-4c1d-aa7e-af697fafb986/221.gif" width="300" border="0" /></font></p>
<p align="center"><font size="4">图1&nbsp; 步进电机控制系统框图</font></p>
<p><strong><font size="4">硬件简介</font></strong></p>
<p><strong><font size="4">● PMM8713原理框图及功能</font></strong></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PMM8713是日本三洋电机公司生产的步进电机脉冲分配器，适用于控制三相或四相步进电机。控制三相或四相步进电机时都可以选择3种励磁方式，每相最小吸入与拉出电流为20mA，它不仅满足后级功率放大 </font>
<table align="left">
<tbody>
<tr>
<td><font size="4"></font></td></tr></tbody></table><font size="4">器的输入要求，而且在其所有输入端上均内嵌施密特触发电路，抗干扰能力强，其原理框图如图2所示。</font></p>
<p align="center"><font size="4"><img style="WIDTH: 372px; HEIGHT: 339px" height="365" alt="图2  PMM8713的原理框图" src="http://www.cechinamag.com/images/Article/39089821-26c4-4c1d-aa7e-af697fafb986/222_new.gif" width="400" border="0" /></font></p>
<p align="center"><font size="4">图2&nbsp; PMM8713的原理框图</font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在PMM8713的内部电路中，时钟选通部分用于设定步进电机的正反转脉冲输入发。PMM8713有两种脉冲输入法：双脉冲输入法和单脉冲输入法。采用双脉冲输入法时，CP、CU两端分别输入步进电机正反转的控制脉冲。当采用单脉冲输入时，步进电机的正反转方向由U/D的高、低电位决定。</font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 激励方式控制电路用来选择采用何种励磁方式。激励方式判断电路用于</font><a title="输出" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77646.aspx"><font size="4">输出</font></a><font size="4">检测；而可逆环形计数器则用于产生步进电机在选定的励磁方式下的各相通断时序信号。</font></p>
<p><strong><font size="4">● SI-7300A的结构及功率驱动原理</font></strong></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SI-7300A是日本三青公司生产的高性能步进电机集成功率放大器，该器件为单极性四相驱动，采用SIP18封装。</font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 步进电机功率驱动级电路可分为电压和电流两种驱动方式。电流驱动方式最常用的是PWM恒流斩波驱动电路，也是最常用的高性能驱动方式，其中一相的等效电路图如图3所示。</font></p>
<p align="center"><font size="4"><img style="WIDTH: 400px; HEIGHT: 183px" height="183" alt="图3  LM331电压/频率变换电路" src="http://www.cechinamag.com/images/Article/39089821-26c4-4c1d-aa7e-af697fafb986/223_new.gif" width="400" border="0" /></font></p>
<p align="center"><font size="4">图3&nbsp; LM331电压/频率变换电路</font></p>
<p><strong><font size="4">● LM331芯片</font></strong></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LM331是美国国家半导体公司生产的双列直插式8脚芯片，只需接入几个外部元件就可以方便地构成电压/频率(V/F)变换电路，电路如图4所示。</font></p>
<p align="center"><font size="4"><img style="WIDTH: 500px; HEIGHT: 251px" height="251" alt="图4  四相步进电机功率驱动电路" src="http://www.cechinamag.com/images/Article/39089821-26c4-4c1d-aa7e-af697fafb986/224_new.gif" width="500" border="0" /></font></p>
<p align="center"><font size="4">图4&nbsp; 四相步进电机功率驱动电路</font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LM331的输出频率和输入电压存在如下关系：f0=Vi/(IRt1RL)，其中t1由外接的定时元件Rt和Ct决定，t1＝1.1RtCt，IR由内部精密电流源提供，IR＝1.9V/RS。故f0=ViRS/(2.09RtRLCt)。RS为可调电阻，它的作用是调整LM331的增益偏差。Ct为滤波电容，一般为&nbsp; 0.01～0.1&mu;F，在滤波效果较好的情况下，可使用1&mu;F的电容。为了提高精度和稳定度，组容元件选用低温度系数的器件。</font></p>
<p><strong><font size="4">应用举例</font></strong></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用PMM8713步进电机环形分配器与</font><a title="SI7300A" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77643.aspx"><font size="4">SI7300A</font></a><font size="4">步进电机功率放大器设计了一个四相步进电机功率驱动电路，PMM8713采取单脉冲输入、1-2相励磁方式，电路如图5所示。图中PD控制端为SI7300A的输入电流I0调节端，可悬空或接高电平，接高电平时可适当提高SI7300A的输出电流I0，在本应用系统中悬空使用。图中PMM8713的时钟脉冲输入信号由LM331(V/F)输出，方向控制信号和步进电机的起停信号由窗口比较电路给出。</font></p>
<p align="center"><font size="4"><img style="WIDTH: 500px; HEIGHT: 313px" height="313" alt="图5  窗口比较电路" src="http://www.cechinamag.com/images/Article/39089821-26c4-4c1d-aa7e-af697fafb986/225_new.gif" width="500" border="0" /></font></p>
<p align="center"><font size="4">图5&nbsp; 窗口比较电路</font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 窗口比较电路为步进电机提供方向控制信号和步进电机的起停控制信号，电路如图6所示。其中，U1、U2为数控等离子切割机弧压的上、下限电压，Ui为检测到的弧压。当Ui&gt;U1，V3输出为高电平，V4输出为低电平，V5输出为高电平；当U2&lt;Ui&lt;U1，V3和V4输出均为高电平，V5输出为低电平；当Ui&lt;U</font></p>
<p><font size="4">2，V3</font><a title="输出" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77646.aspx"><font size="4">输出</font></a><font size="4">为低电平，V4输出为高电平，V5输出为高电平。将V3输出或V4输出作为步进电机的方向</font><a title="控制" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77645.aspx"><font size="4">控制</font></a><font size="4">信号，V5作为步进电机的起停控制信号。脉冲控制信号由LM331输出信号提供。 </font></p>
<p><font size="4"></font></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方向控制信号V3或V4输出端接PMM8713的C/D，控制步进电机的正反转；U5输出端接PMM8713的复位端R，控制步进电机的起停。LMM331(V/F)输出端f0接PMM8713的CK，为步进电机提供脉冲控制信号。由此可见，当U2&lt;Ui&lt;U1时，V5输出为低电平，步进电机不运动；当Ui&gt;U1或者Ui&lt;U2时，V5输出为高电平，步进电机运动(步进电机的正反转由方向控制信号控制)至U2&lt;Ui&lt;U1的范围内，从而保证Ui始终位于U2&lt;Ui&lt;U1范围内。</font></p>
<p><strong><font size="4">结束语</font></strong></p>
<p><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该驱动</font><a title="电路" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/77647.aspx"><font size="4">电路</font></a><font size="4">被用于数控等离子切割机弧压自动调高系统中，系统中的电机是42BYG009型混合式步进电机，驱动电压为直流24V。通过实践证明该步进电机功率驱动电 </font>
<table align="left">
<tbody>
<tr>
<td><font size="4"></font></td></tr></tbody></table><font size="4">路控制系统结构简单、性能稳定、效率高、矩频特性好，可广泛应用于小型机电一体化设备中。<br /></font></p>]]></description>
		</item>
		    
		
		<item>
			<title>双DSP电机控制数字平台设计</title>
			<link>http://wemake.blog.sohu.com/41055794.html</link>
			<comments>http://wemake.blog.sohu.com/41055794.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Sat, 7 Apr 2007 17:23:53 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/41055794.html</guid>
			<description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font size="5">双DSP电机控制数字平台设计 </font></p>
<p>摘要：直接转矩控制目前已经应用到同步机和异步机的各种控制系统中,由于其采用BangBang控制,长控制周期将导致大电流和大的转矩脉动这两个突出问题,要使控制性能更为优越必然对控制周期提出更高的要求。提高控制平台性能是解决这些问题的有效途径之一。TI公司的2000系列DSP是电机控制领域常用芯片,针对电机控制设计的事件管理器具有突出优点。3X系列DSP则是性价比很好的通用芯片,浮点运算,数据处理速度快。为此采用双DSP系统结构,从电机控制领域特点出发,利用TMS320LF2407A控制上的强大功能而专注于控制方面的工作;TMS320VC33浮点运算能力强,则进行数据的分析和处理。使用双口RAMCY7C025实现双机之间的高速数据交流和通信,使得不同MDSP优势充分体现,协同工作,大大提高控制平台的性能。 
</p><p>关键词：电机控制;直接转矩控制;双DSP;双端口RAM;通信 
</p><p>0&nbsp;&nbsp;&nbsp; 引言 
</p><p>&nbsp;&nbsp;&nbsp; 直接转矩控制[1]是目前广为研究的电机控制理论之一,已在异步机上取得了成功,而在同步机方面的应用也已有了一定发展[2]。由于该理论直接对转矩进行控制,故瞬态性能得到了显著的改善。但是,由于其采用的是Bang-Bang控制,控制周期过长会使电流过大;同时大周期会使转矩脉动加大。为了解决这个问题可以从控制策略上加以改进,比如采用SVM-DTC[3]来取代传统DTC方案;也可以在控制平台上加以考虑,提高处理器速度,缩短控制周期。以单个DSP为核心的控制平台（常见的芯片如TI公司的2000系列）,由于既要完成复杂的算法,还要执行数据采集、控制信号输出、系统保护以及人机交互等一系列操作,无法有效地缩短控制周期。在综合考虑了各种数字信号处理器的性能之后,决定采用双DSP并行工作的体系结构;并同时考虑到该控制系统的特点,即在每个控制周期内两个DSP之间交换的信息很少,不同于诸如图像采集系统[4]那样,需要大流量的数据交换。由此采取了一系列特殊的设计思想。首先,在芯片的选型上兼顾了各自不同的特点,即专用于电机控制领域的芯片TMS320LF2407A专注于控制;高速通用数据处理芯片TMS320VC33则着眼于复杂算法的实现,从而充分利用了各自的特点。其次,针对电机控制这一特定领域,需要采集的数据相对较少,同时反馈的也只是计算结果,即PWM波发送策略,并无大量中间结果,因此,需要考虑的重点是控制方法的实现,和数据采集的实现必须占用尽可能少的资源。同时由于数据量较少,可以用较小的代价来实现数据的冗余,使得数据处理时更加灵活和方便,DSP之间并不一定保持同步工作状态。为了实现两个DSP之间的数据交换和通信,选择了双口RAM作为两者之间的媒介。并从硬件和软件上相互配合,避免存储空间争用[5]的同时,使得数据存储过程尽量少耗费各种资源。 
</p><p>1&nbsp;&nbsp;&nbsp; 硬件系统构成 
</p><p>&nbsp;&nbsp;&nbsp; TMS320LF2407A最突出的特点在于其事件管理器模块：共有两个事件管理器EVA及EVB,提供了8个16位脉宽调制（PWM）通道。这些都是针对电机控制而设计的,在PWM波的产生上相当方便可靠;可编程的PWM死区控制可以防止上下桥臂同时输出触发脉冲而导致直通。同时每个模块还提供了两个外部引脚<span style="TEXT-DECORATION: overline">PDPINT<sub>A</sub></span>和<span style="TEXT-DECORATION: overline">PDPINT<sub>B</sub></span>,当该引脚上出现低电平时事件管理器模块将快速关闭相应的PWM通道,起到保护作用。片内模数转换模块为数据采集提供了高性能的A/D转换器,最小转换时间只有500ns。由于转换时间是整个控制周期的组成部分之一,快速A/D对于缩短控制周期是非常有利的。 
</p><p>&nbsp;&nbsp;&nbsp; TMS320C3X系列DSP芯片是一种性能价格比很好的浮点处理芯片,具有很高的数据处理速度。片内部分拥有34K&times;32位的RAM,在程序运行期间,所有的数据都位于其中,从而能够充分发挥哈佛总线结构所带来的数据吞吐量大、运算快的优点。在算法实现上,由于采用了浮点计算格式,将使计算精度得到提高;采用编程语言C会使程序编写效率大大改善,这对于需要用复杂算法实现的控制策略来说是很重要的。 
</p><p>&nbsp;&nbsp;&nbsp; 双口RAM的特点在于具有两组相互独立的地址线、数据线和控制线,片内包含的控制逻辑解决了三个重要的问题：处理器之间的信号关系（中断逻辑）;两个CPU正在使用同一地址时的时间关系（仲裁逻辑）和把一块存储器临时分配到某一边的硬件支持（旗语逻辑）,从而保证双机之间数据、信号交流的正确进行。 
</p><p>&nbsp;&nbsp;&nbsp; 仲裁逻辑（忙逻辑）&nbsp;&nbsp;&nbsp; 每块CY7C025允许两个CPU同时读取任何存储单元（包括同时读同一地址单元）,但是不允许同时写或者一读一写同一地址单元,否则就会发生错误。双口RAM中已经有相应的仲裁逻辑电路来解决这一问题：先行稳定的地址端口通过仲裁逻辑电路优先读写,同时内部电路使另一个端口的<span style="TEXT-DECORATION: overline">BUSY</span>信号有效,并在内部禁止对方访问,直到本端口的操作结束。<span style="TEXT-DECORATION: overline">BUSY</span>信号可以作为CPU<u>RDY</u>信号的来源,从而使得CPU处于等待状态。 
</p><p>&nbsp;&nbsp;&nbsp; 当双口RAM单片使用的时候,问题相对简单,但是,在现代数字系统中,由于数据总线的宽度往往可以达到32位甚至更宽,这就需要多片双口RAM来进行位扩展。此时如果出现同时访问,将有多块双口RAM处于工作状态,如果依然象单片工作时那样,每块双口RAM都使用自己的仲裁逻辑,则很可能出现一种情况,即第一片仲裁使得<span style="TEXT-DECORATION: overline">BUSY<sub>L</sub></span>变低,而第二片仲裁使<span style="TEXT-DECORATION: overline">BUSY<sub>R</sub></span>变低,这样两边的CPU都会处于等待状态。为了避免这种情况的发生（<span style="TEXT-DECORATION: overline">BUSY</span>信号死锁）,可以使用主从模式,使得当多块芯片一起工作时,只使用主片的仲裁逻辑,并迫使从片跟随主片。主从模式的电路连接如图1所示。 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh1.gif" target="_blank"></a><img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_234117.gif" border="0" /></p>
<p align="center"><font color="#0000ff">图1&nbsp;&nbsp;&nbsp; 主从连接电路</font> 
</p><p>&nbsp;&nbsp;&nbsp; 主芯片的<u>BUSY</u>信号接上拉电阻作为输出,从芯片的<span style="TEXT-DECORATION: overline">BUSY</span>信号作为写禁止输入,当主芯片处于<u>BUSY</u>状态时,从芯片接收这个状态,同样处于忙状态,从而避免了死锁的发生。 
</p><p>&nbsp;&nbsp;&nbsp; 中断逻辑&nbsp;&nbsp;&nbsp; 另一个重要的内部电路结构,它允许双CPU通过端口直接进行通信。CY7C025最高位的存储单元1FFF作为右边端口的中断信箱, 
</p><p>&nbsp;&nbsp;&nbsp; 次高位存储单元1FFE作为左边端口的中断信箱。各CPU可以读取双方的中断信箱,但只能写对方的中断信箱。当一端写入对方的中断信箱时,对方就会产生一个中断信号;读自己的中断信箱则清除自己的中断信号,读对方的中断信箱不会清除中断信号。 
</p><p>&nbsp;&nbsp;&nbsp; 旗语通信逻辑&nbsp;&nbsp;&nbsp; 可以使双口RAM暂时指定一块存储区,只供一端的CPU使用,称之为独占模式。CY7C025配置了独立于RAM阵列的8个旗语锁存器,用于标志双口RAM是否处于独占模式。独占模式也可以用来避免地址仲裁问题,因为,它是一种使两边不同时使用同一地址的方法,通常也叫做软件仲裁。 
</p><p>&nbsp;&nbsp;&nbsp; 控制平台结构框图如图2所示。 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh2.gif" target="_blank"></a>&nbsp;<img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_235537.gif" border="0" /> 
</p><p align="center"><font color="#0000ff">图2&nbsp;&nbsp;&nbsp; 双DSP系统结构框图</font> 
</p><p>&nbsp;&nbsp;&nbsp; 电机由IPM来驱动,霍尔元件检测相关物理量,通过信号调理电路给A/D转换器,转换结果由LF2407A存储于双口RAM中,并由VC33读取用于计算。调理的同时保护电路也进行相应的检测,在意外状况发生时随时切断触发信号。VC33将获取的数据进行分析和计算,所有的数据处理都由VC33完成,只将计算结果反馈给LF2407A,并由此产生相应的控制信号,通过接口电路来控制IPM工作。同时预留了D/A及串口输出等相关外围电路,用于实现显示、检测、与其它系统通信等各项功能。LF2407A和VC33优势互补,并行工作,控制周期的长短主要取决于算法实现时间。原有的控制软件（以C32为控制平台）需要100&mu;s左右,在采用了新的控制平台后,整个控制周期减小到20&mu;s左右。 
</p><p>2&nbsp;&nbsp;&nbsp; 双端口RAM存储争用解决方案 
</p><p>&nbsp;&nbsp;&nbsp; 在双机的数据交流过程中,存在存储空间争用问题,常见的解决方案有如下几种。 
</p><p>&nbsp;&nbsp;&nbsp; &mdash;&mdash;硬件方案&nbsp;&nbsp;&nbsp; 最简单的方法就是上面提到的使用双口RAM内部的仲裁逻辑,要求两边的CPU都具有<span style="TEXT-DECORATION: overline">RDY</span>引脚,从而插入相应的等待周期。对于8098单片机,DSP都具有这样的资源,而且只需要硬件支持,相对简单。如果不具备<u>RDY</u>引脚,如8031单片机,则不能采用此种方法。 
</p><p>&nbsp;&nbsp;&nbsp; &mdash;&mdash;中断方案&nbsp;&nbsp;&nbsp; 需要硬件和软件的同时支持。将双口RAM的左右中断信号输出引脚和CPU的外部中断输入引脚相连,并编写相应的中断子程序。 
</p><p>&nbsp;&nbsp;&nbsp; &mdash;&mdash;旗语方案&nbsp;&nbsp;&nbsp; 同样需要硬件和软件的同时支持,我们也称之为软件仲裁。其步骤为申请独占区域、判断申请是否成功、释放独占区域。由于两边不同时使用同一地址,所以也可以避免争用的发生。 
</p><p>&nbsp;&nbsp;&nbsp; 本系统设计时综合了各种情况最后选用了硬件方案。这是因为使用中断方案软件编写复杂,频繁中断跳转在算法和控制都较复杂的情况下,对于软件的可靠性和稳定性是不利的;采用旗语方案则控制相对复杂一些;硬件方案具有简单可靠的特点,存储空间的争用完全由硬件解决,即当发生存储空间争用的时候,决定先行稳定的端口优先进行访问,另一端口则插入等待周期。由于DSP的快速性,不同于以往的单片机将产生很长的等待周期。针对本系统考虑,即使是最坏的情况：每个控制周期内传递数据8个,LF2407A一次读/写周期50ns记,共需要0.4&mu;s。当然这完全由硬件来实现,若考虑软件上共同配合,则可以更有效地减少等待时间。而且0.4&mu;s和20&mu;s的控制周期相比,所占的比重非常小,并不会给系统性能带来显著影响,系统可靠性和稳定性也能够得到保证。这也正是本系统的特点所在。 
</p><p>3&nbsp;&nbsp;&nbsp; TMS320C2407A/TMS320VC33与CY7C025之间通信的实现 
</p><p>&nbsp;&nbsp;&nbsp; LF2407A的数据总线宽度和地址总线宽度都是16位,单片CY7C025就足够了。VC33的数据总线宽度是32位,可以采用两片CY7C025以主从模式进行宽度扩展（见图3）,这样每次VC33读取数据时就能一次读入两个LF2407A的采样数据。也可以采用单片CY7C025,虽然没有完全利用VC33的数据宽度,但是,从电路设计上来讲相对简洁。由于本系统双口RAM的作用主要是起到数据传递的作用,不需要保存大量的中间结果以及已经使用过的数据,因此,需要的存储空间不是很大,单片双口RAM就已经足够。具体的接口电路见图3,片选等控制信号由译码电路产生。 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh3.gif" target="_blank"></a>&nbsp;<img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_23564.gif" border="0" /> 
</p><p align="center"><font color="#0000ff">图3&nbsp;&nbsp;&nbsp; 接口电路实现</font> 
</p><p>　 
</p><p>&nbsp;&nbsp;&nbsp; 地址空间分配综合了不同DSP的空间资源分配要求,具体见表1。 
</p><p>表1&nbsp;&nbsp;&nbsp; 地址空间分配表<u> 
<table border="1">
<tbody>
<tr>
　 
起始地址 
终止地址 
</tr><tr>
LF2407A 
0X8000H 
0X9FFFH 
</tr><tr>
VC33 
010000H 
011FFFH </tr></tbody></table></u>　 
</p><p>4&nbsp;&nbsp;&nbsp; 软件功能实现</p>
<p>&nbsp;&nbsp;&nbsp; 双DSP协同工作的关键是相互通信和数据交流上的密切配合,可通过硬件仲裁电路来完成这一任务。但是如果仅仅用硬件完成,如上分析,毕竟等待时间还要0.4&mu;s左右。如果辅以软件配合,则可以有效地减少等待产生的情况。 
</p><p>&nbsp;&nbsp;&nbsp; 首先,冲突可能发生在同时写同一个存储单元。在数据写的时候采用如下措施可以避免这种情况的发生：如图4所示,将读/写的存储空间独立开来,显然LF2407A和VC33在写的时候就不可能产生冲突,避免了等待的发生。 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh4.gif" target="_blank"></a>&nbsp; 
</p><p align="center">&nbsp;<img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_235635.gif" border="0" /> 
</p><p align="center"><font color="#0000ff">图4&nbsp;&nbsp;&nbsp; 读/写存储空间分开</font> 
</p><p>&nbsp;&nbsp;&nbsp; 其次,冲突可能发生在一读一写同一存储单元的情况下。以LF2407A写数据,VC33读数据为例,上面分析的产生0.4&mu;s等待时间的情况是基于如下假设：将8个数据依顺序存储于同一地址单元。即LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,此后LF2407A将第二个数据覆盖前一个数据存储,依次类推得出的结果就是8&times;50ns=400ns。事实是我们有足够的地址空间用来存储每批数据,将8个数据按顺序存放在不同的地址空间,此时的情况如下：LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,与此同时LF2407A也开始写第二个数据于下一个存储单元中。两者同时进行,我们只要保证VC33读完的时候,LF2407A第二个数据已经写完,则不会有冲突发生。针对本例,由于两者时间不同（LF2407A为50ns,VC33为13.3ns）,VC33读得较快,只要在软件编写上增加40ns左右的循环,就能保证如上的要求。当读/写反过来的时候,则不存在这样的情况而能顺利配合。这样,最终的结果是只增加50ns的等待周期,对于本系统完全可以接受。 
</p><p>&nbsp;&nbsp;&nbsp; 由于两个DSP并不同步工作,所以,LF2407A可以采样尽可能多的数据并保存,VC33只选用最新的数据用于计算,这样就能保证数据的冗余。程序流程如图5所示。 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh5a.gif" target="_blank"></a><img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_235725.gif" border="0" />&nbsp;<img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_235712.gif" border="0" /> 
</p><p align="center"><font color="#0000ff">（a）LF2407A流程图</font> 
</p><p align="center"><a href="http://www.china-power.net/dzkw/405/tu/llh5b.gif" target="_blank"></a>&nbsp;<img style="CURSOR: pointer" src="http://www.laogu.com/news/upload/200661_235925.gif" border="0" /> 
</p><p align="center"><font color="#0000ff">(b)VC33流程图</font> 
</p><p align="center"><font color="#0000ff">图5&nbsp;&nbsp;&nbsp; 利用双口RAM进行双机通信流程图</font> 
</p><p>5&nbsp;&nbsp;&nbsp; 结语 
</p><p>&nbsp;&nbsp;&nbsp; 双DSP控制系统综合利用了TMS320LF2407A和TMS320VC33芯片的优势和特长,两者在控制和计算上分工明确,并行工作。利用双口RAM实现数据和信息的交流的时候,针对电机控制系统采样数据相对较少的特点,从硬件和软件上相互配合,在解决存储空间争用的同时,很好地解决了等待时间等资源的浪费,也避免了数据交换时利用中断造成的软件不稳定。实现了两者之间的协调工作,大大缩短了控制周期,提高了控制平台的性能。对于低电感同步电机直接转矩控制时,由于控制周期过长而引起电流上升过大的问题能很好地加以解决,同时也使转矩脉动明显减小。</p>]]></description>
		</item>
		    
		
		<item>
			<title>光电编码器原理及应用电路</title>
			<link>http://wemake.blog.sohu.com/40738404.html</link>
			<comments>http://wemake.blog.sohu.com/40738404.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Thu, 5 Apr 2007 13:17:44 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/40738404.html</guid>
			<description><![CDATA[<div align="center"><font size="4"><strong>光电编码器原理及应用电路</strong></font></div><br /><br />
<div align="left">
<div><font size="4">1.光电编码器原理</font><br /></div>
<div>&nbsp;光电编码器，是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器，光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴，电动机旋转时，光栅盘与电动机同速旋转，经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号，其原理示意图如图1所示；通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外，为判断旋转方向，码盘还可提供相位相差90旱牧铰仿龀逍藕拧</div>
<p><a href="http://www.avrw.com/article/pic/200673191649734.jpg" target="_blank"><img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://www.avrw.com/article/pic/200673191649734.jpg" border="0" /></a></p>
<p>根据检测原理，编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式，可分为增量式、绝对式以及混合式三种。<br /><br />1.1增量式编码器<br />增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相；A、B两组脉冲相位差90海佣煞奖愕嘏卸铣鲂较颍鳽相为每转一个脉冲，用于基准点定位。它的优点是原理构造简单，机械平均寿命可在几万小时以上，抗干扰能力强，可靠性高，适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。<br /><br />1.2绝对式编码器<br />绝对编码器是直接输出数字量的传感器，在它的圆形码盘上沿径向有若干同心码道，每条道上由透光和不透光的扇形区相间组成，相邻码道的扇区数目是双倍关系，码盘上的码道数就是它的二进制数码的位数，在码盘的一侧是光源，另一侧对应每一码道有一光敏元件；当码盘处于不同位置时，各光敏元件根据受光照与否转换出相应的电平信号，形成二进制数。这种编码器的特点是不要计数器，在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然，码道越多，分辨率就越高，对于一个具有 N位二进制分辨率的编码器，其码盘必须有N条码道。目前国内已有16位的绝对编码器产品。<br /><br />绝对式编码器是利用自然二进制或循环二进制（葛莱码）方式进行光电转换的。绝对式编码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形，绝对编码器可有若干编码，根据读出码盘上的编码，检测绝对位置。编码的设计可采用二进制码、循环码、二进制补码等。它的特点是：<br />1.2.1可以直接读出角度坐标的绝对值；<br />1.2.2没有累积误差；<br />1.2.3电源切除后位置信息不会丢失。但是分辨率是由二进制的位数来决定的，也就是说精度取决于位数，目前有10位、14位等多种。<br /><br />1.3混合式绝对值编码器<br />混合式绝对值编码器，它输出两组信息：一组信息用于检测磁极位置，带有绝对信息功能；另一组则完全同增量式编码器的输出信息。<br /><br />光电编码器是一种角度（角速度）检测装置，它将输入给轴的角度量，利用光电转换原理转换成相应的电脉冲或数字量，具有体积小，精度高，工作可靠,接口数字化等优点。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。</p>
<p><font size="4">2. 光电编码器的应用电路</font><br />2.1 EPC－755A光电编码器的应用<br />EPC－755A光电编码器具备良好的使用性能，在角度测量、位移测量时抗干扰能力很强，并具有稳定可靠的输出脉冲信号，且该脉冲信号经计数后可得到被测量的数字信号。因此，我们在研制汽车驾驶模拟器时，对方向盘旋转角度的测量选用EPC－755A光电编码器作为传感器，其输出电路选用集电极开路型，输出分辨率选用360个脉冲/圈，考虑到汽车方向盘转动是双向的，既可顺时针旋转，也可逆时针旋转，需要对编码器的输出信号鉴相后才能计数。图2给出了光电编码器实际使用的鉴相与双向计数电路，鉴相电路用1个D触发器和2个与非门组成，计数电路用3片74LS193组成。<br /><a href="http://www.avrw.com/article/pic/200673191650621.jpg" target="_blank"><img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://www.avrw.com/article/pic/200673191650621.jpg" border="0" /></a></p>
<p>当光电编码器顺时针旋转时，通道A输出波形超前通道B输出波形90&deg;，D触发器输出Q(波形W1)为高电平，Q(波形W2)为低电平，上面与非门打开，计数脉冲通过(波形W3)，送至双向计数器74LS193的加脉冲输入端CU，进行加法计数；此时，下面与非门关闭，其输出为高电平(波形W4)。当光电编码器逆时针旋转时，通道A输出波形比通道B输出波形延迟90&deg;，D触发器输出Q(波形W1)为低电平，Q(波形W2)为高电平，上面与非门关闭，其输出为高电平(波形W3)；此时，下面与非门打开，计数脉冲通过(波形W4)，送至双向计数器74LS193的减脉冲输入端CD，进行减法计数。<br /><br />汽车方向盘顺时针和逆时针旋转时，其最大旋转角度均为两圈半，选用分辨率为360个脉冲/圈的编码器，其最大输出脉冲数为900个；实际使用的计数电路用3片74LS193组成，在系统上电初始化时，先对其进行复位(CLR信号)，再将其初值设为800H，即2048(LD信号)；如此，当方向盘顺时针旋转时，计数电路的输出范围为2048～2948，当方向盘逆时针旋转时，计数电路的输出范围为2048～1148；计数电路的数据输出D0～D11送至数据处理电路。<br /><br />实际使用时，方向盘频繁地进行顺时针和逆时针转动，由于存在量化误差，工作较长一段时间后，方向盘回中时计数电路输出可能不是2048，而是有几个字的偏差；为解决这一问题，我们增加了一个方向盘回中检测电路，系统工作后，数据处理电路在模拟器处于非操作状态时，系统检测回中检测电路，若方向盘处于回中状态，而计数电路的数据输出不是2048，可对计数电路进行复位，并重新设置初值。<br /><br />2.2 光电编码器在重力测量仪中的应用<br />采用旋转式光电编码器，把它的转轴与重力测量仪中补偿旋钮轴相连。重力测量仪中补偿旋钮的角位移量转化为某种电信号量；旋转式光电编码器分两种，绝对编码器和增量编码器。<br /><br />增量编码器是以脉冲形式输出的传感器，其码盘比绝对编码器码盘要简单得多且分辨率更高。一般只需要三条码道，这里的码道实际上已不具有绝对编码器码道的意义，而是产生计数脉冲。它的码盘的外道和中间道有数目相同均匀分布的透光和不透光的扇形区（光栅），但是两道扇区相互错开半个区。当码盘转动时，它的输出信号是相位差为90&deg;的A相和B相脉冲信号以及只有一条透光狭缝的第三码道所产生的脉冲信号（它作为码盘的基准位置，给计数系统提供一个初始的零位信号）。从A，B两个输出信号的相位关系（超前或滞后）可判断旋转的方向。由图3（a）可见，当码盘正转时，A道脉冲波形比B道超前&pi;/2，而反转时，A道脉冲比B道滞后&pi;/2。图3（b）是一实际电路，用A道整形波的下沿触发单稳态产生的正脉冲与B道整形波相&lsquo;与&rsquo;，当码盘正转时只有正向口脉冲输出，反之，只有逆向口脉冲输出。因此，增量编码器是根据输出脉冲源和脉冲计数来确定码盘的转动方向和相对角位移量。通常，若编码器有N个（码道）输出信号，其相位差为&pi;/ N，可计数脉冲为2N倍光栅数，现在N=2。图3电路的缺点是有时会产生误记脉冲造成误差，这种情况出现在当某一道信号处于&lsquo;高&rsquo;或&lsquo;低&rsquo;电平状态，而另一道信号正处于&lsquo;高&rsquo;和 &lsquo;低&rsquo;之间的往返变化状态，此时码盘虽然未产生位移，但是会产生单方向的输出脉冲。例如，码盘发生抖动或手动对准位置时（下面可以看到，在重力仪测量时就会有这种情况）。<br /><a href="http://www.avrw.com/article/pic/200673191650371.jpg" target="_blank"><img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://www.avrw.com/article/pic/200673191650371.jpg" border="0" /></a></p>
<p><a href="http://www.avrw.com/article/pic/200673191650112.jpg" target="_blank"><img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://www.avrw.com/article/pic/200673191650112.jpg" border="0" /></a></p>
<p>&nbsp;图4是一个既能防止误脉冲又能提高分辨率的四倍频细分电路。在这里，采用了有记忆功能的D型触发器和时钟发生电路。由图4可见，每一道有两个D触发器串接，这样，在时钟脉冲的间隔中，两个Q端（如对应B道的74LS175的第2、7引脚）保持前两个时钟期的输入状态，若两者相同，则表示时钟间隔中无变化；否则，可以根据两者关系判断出它的变化方向，从而产生&lsquo;正向&rsquo;或&lsquo;反向&rsquo;输出脉冲。当某道由于振动在&lsquo;高&rsquo;、&lsquo;低&rsquo;间往复变化时，将交替产生&lsquo;正向&rsquo;和&lsquo;反向&rsquo;脉冲，这在对两个计数器取代数和时就可消除它们的影响（下面仪器的读数也将涉及这点）。由此可见，时钟发生器的频率应大于振动频率的可能最大值。由图4还可看出，在原一个脉冲信号的周期内，得到了四个计数脉冲。例如，原每圈脉冲数为1000的编码器可产生4倍频的脉冲数是4000个，其分辨率为0.09&deg;。实际上，目前这类传感器产品都将光敏元件输出信号的放大整形等电路与传感检测元件封装在一起，所以只要加上细分与计数电路就可以组成一个角位移测量系统(74159是4-16译码器)。<br /></p></div>]]></description>
		</item>
		    
		
		<item>
			<title>基于单片机与光电传感器的电动自行车速度与里程表的设计</title>
			<link>http://wemake.blog.sohu.com/40392552.html</link>
			<comments>http://wemake.blog.sohu.com/40392552.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Mon, 2 Apr 2007 20:58:34 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/40392552.html</guid>
			<description><![CDATA[<p><font size="5">基于单片机与光电传感器的电动自行车速度与里程表的设计</font></p>
<p>系统概述 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求；波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号；通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制，这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数；设计中速度显示采用LED模块，通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储，既节省了所需单片机的口线和外围器件，同时也简化了显示部分的软件编程。系统的原理框图如图1所示。&nbsp;<br />&nbsp; </p>
<p align="center"><img height="134" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/1.JPG" width="300" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图1 系统的原理框图 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>工作原理</strong> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该设计能实时地将所测的速度与累计里程数显示出来，主要是将传感器输入到单片机的脉冲信号的频率（传感器将不同车速转变成不同频率的脉冲信号）实时地测量出来，考虑到信号的衰减、干扰等影响，在信号送入单片机前应对其进行放大整形，然后通过单片机计算出速度和里程，再将所得的数据存储到串口数据存储器，并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法（假设在一定时间内自行车是匀速行进，平均速度与时间的乘积即为里程数）。 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设计时，应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度，因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中，误差控制在几米之内，相对于整个里程来说不是很大。为了保证系统的实时性，系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外，还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示，并包含两个小数位。 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> 系统的硬件设计 </strong></p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、脉冲发生源</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本设计采用了ST1101红外光电传感器，进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时，传感器将会输出一个低电平，而当没有物体挡在中间时则输出为高电平，从而形成一个脉冲。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘，在这个铝盘的边沿处挖出若干个圆形过孔，把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候，传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平，即可算出轮子即时的转速。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 铝盘的圆孔的个数决定了测量的精度，个数越多，精度越高。这样就可以在单位时间内尽可能多地得到脉冲数，从而避免了因为两个过孔之间的距离过大，而车子正好在过孔之间或者是在下个过孔之前停止了，造成较大的误差。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本设计在铝盘过孔的设计上采用11个过孔，从而留下了10个同等的间距。这样在以后的软件设计中能够较为方便的计算出速度里程。脉冲发生源的硬件结构图如图2所示。<br />&nbsp;</p>
<p align="center"><img height="182" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/2.JPG" width="400" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图2 脉冲发生源硬件结构图（左为正视图，右为侧视图）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>2、信号预处理电路</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如图3所示，系统的信号预处理电路由二级电路构成，第一级是由开关三极管组成的零偏置放大器，采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时，三极管截止，电路输出高电平；而当输入信号为正电压时，三极管导通，此时输出电压随着输入电压的上升而下降，这使得速度里程表既可以测量任意方波信号的频率，也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求，因此，系统能对任意大于0.5V的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号（如图4所示），同时将输出信号加到单片机的P3.4口上。</p>
<p>&nbsp; </p>
<p></p>
<p align="center"><img height="236" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/3.JPG" width="300" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图3 信号预处理电路图<br />&nbsp;</p>
<p align="center"><img height="170" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/4.JPG" width="300" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图4 施密特触发器对脉冲的整形 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用施密特触发器状态转换过程中的正反馈作用，可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+，即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时，波形的上升沿将明显变坏；当传输线较长，而且接受端的阻抗与传输线的阻抗不匹配时，在波形的上升沿和下降沿将产生振荡现象；当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时，信号上将出现附加的噪声。无论出现上述的那一种情况，都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+和VT-设置得合适，均能受到满意的整形效果。&nbsp;&nbsp; </p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、E2PROM AT24C02的应用</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AT24C02是CMOS 2048位串行E2PROM，在内部组织成256&times;8位。AT24C02的特点是具有允许在简单的二线总线上工作的串行接口和软件协议。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如图5所示，在本设计中<br />用芯片AT24C02的SDA端与单片机的P3.7口相连，SCL端与单片机的P3.5口相连。因为在这个I2C总线上只有一个器件，所以把AT24C02的地址设为000，即把A0、A1、A2都接地。单片机计算出来的里程数据通过SDA、SCL向AT24C02输送数据。单片机首先向AT24C02发送写信号，当确认后从单片机内部的数据储存单元提取数据然后向AT24C02的内部地址传送数据。当显示里程时，单片机首先向AT24C02发送读信号，然后确认后，单片机从AT24C02内部的地址向单片机的读出单元字节读出数据，供显示所用。<br />&nbsp;</p>
<p align="center"><img height="181" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/5.JPG" width="300" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图5 AT24C02与单片机的接口电路图</p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、显示部分</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本设计的显示模块包括MC14511BCP、CD4076、74LS138和6个LED显示管等器件。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MC14511是将锁存、译码、驱动三种功能集于一身的&ldquo;三合一&rdquo;器件。锁存器的作用是避免在计数过程中出现跳数现象，便于观察和记录。用译码器将BCD码转换成7段码，再经过大电流反相器，驱动共阴极LED数码管。译码器属于非时序电路，其输出状态与时钟无关，仅取决于输入的BCD码。</p>
<p>&nbsp;74LS138的作用相当于位选的功能，当C，B，A的输入分别为&ldquo;000、001、010、011、100、101&rdquo;时分别选择不同的MC14511，从而在不同位上显示不同的数字和小数点。CD4076是CMOS 4位三态输出D寄存器,通过74LS138的Y6，Y7来控制其CP的工作，从而使CD4076来控制小数点显示。图6是显示模块框图。<br />&nbsp; </p>
<p align="center"><img height="294" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/6.JPG" width="400" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图6 显示模块框图</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图7为系统显示部分的电路。系统中用74LS138的Y0～Y5选择MC14511以驱动LED显示，Y6、Y7来控制CD40756的CP，从而达到以CD4076的Q1～Q4控制小数点的显示，另一个CD4076只用到其Q1和Q2，图中字符相对应的地方表示其引脚相连。<br />&nbsp;</p>
<p align="center"><img height="329" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/7.JPG" width="500" border="0" /></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;图7 系统显示部分的电路 </p>
<p>&nbsp;&nbsp;&nbsp;<strong>&nbsp;&nbsp;&nbsp; 系统的软件设计 </strong></p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、系统软件框图</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如图8所示，本系统软件采用模块化设计方法。整个系统由初始化模块、频率测量模块、速度，里程计算模块、数据转ＢＣＤ码模块、速度显示模块、里程显示模块、数据存储，读取模块、定时器中断服务模块以及其他功能模块组成。</p>
<p align="center"><img height="274" src="http://www.cechinamag.com/images/Article/207a9fb3-be50-45d4-85f3-30f482631113/8.JPG" width="350" border="0" /></p>
<p><br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图8 系统软件框图</p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、数据处理</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 待测信号经预处理电路后加至单片机的P3.4（T0）引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.4引脚电平来决定是否启动测量频率程序。当该引脚为高电平时，系统处于等待状态，要一直到该引脚出现低电平时才开始测频率。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们可从硬件的铝盘上知道两个过孔之间在圆周上的距离。而这个距离M正好为计算速度和距离起到了基本的数据储备作用。同时可以从TL0寄存器知道在两秒内单片机检测到的N个脉冲。而M&times;N所得到的正是这两秒内铝盘在圆周上所走得距离S。（此时假设在这个两秒内车子是匀速前进的），距离S除以2s的时间，就可以大概的算出这2s内铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度，得到铝盘的线速度与轮子线速度的关系，从而算出自行车在这2s的平均速度。</p>
<p>至于里程的计算，根据速度计算的分析，在得到2s内铝盘在其圆周上走过的距离后。根据它与自行车轮子的圆周走过的距离有一定比例关系（通过两者角速度一样的算法）可以通过单片机的算出自行车在这两秒内走过的路程S1。把这个路程S1与存储器原来的里程数相加即可得到目前的总里程数。通过单片机计算出来的速度和里程的数据，必须通过BCD码的转换才能输出给显示模块。总里程数的显示是设定出现在电动自行车开动，单片机开机经过初始化后显示出来，这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而速度的显示则是在计算出速度里程后立刻显示出来，体现实时性。 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> 结论 <br /></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本设计以AT89C2051为核心，通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度，里程的计算及里程的累计，存储 </p>
<div></div>
<p>，最后用6位的LED能直观的将速度与里程显示给用户，并且在速度高于一定的值时可自动向用户报警，从而达到智能速度里程表。</p>]]></description>
		</item>
		    
		
		<item>
			<title>方便易用的功放集成电路LMD18245</title>
			<link>http://wemake.blog.sohu.com/40305064.html</link>
			<comments>http://wemake.blog.sohu.com/40305064.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Fri, 12 Oct 2007 14:23:40 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/40305064.html</guid>
			<description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="5">方便易用的功放集成电路LMD18245</font></p>
<p>摘 要 美国NS公司推出的面向中小型直流电机及步进电机的全桥功放集成电路LDM18245只需外接两个电阻和两个电容,即可实现电机的功率驱动、电流控制及多种保护功能。详细介绍了该集成电路的工作原理及典型应用。 </p>
<p>&nbsp;&nbsp;&nbsp; 关键词 电机驱动PWM 功率放大器 功放集成电路LMD18245</p>
<p>&nbsp; 随着集成电路制造技术的发展,集成功率放大器的性能不断提高。当前,出现了许多用于中小型直流电机及步进电机驱动的性能优良的集成电路产品。对于中小型直流电机及步进电机控制电路的设计人员来说,选用性能参数都比较合适的集成功率放大器,与采用分立元件设计的功放电路相比,不但能减小功放电路的体积,提高功放电路的整体性能;而且由于集成功放中设计了多种多样的保护电路,从而可以减少系统发生故障的可能性,提高电路的可靠性。例如,美国国家半导体公司National Semiconductou Inc.)推出的DMOS全桥电机驱动器LMD18245,只需外接两个电阻和两个电容,即可实现电机的全桥驱动、数字电流控制、过流保护、过热保护、欠压保护、防止对管直通等功能,充分体现了集成功放电路外围电路简单、性能稳定可靠、控制功能全面的特点。</p>
<p>&nbsp;&nbsp;&nbsp; LMD18245是为中小型直流电机及两相步进电机设计的功率放大集成电路。NS公司在该种芯片的制造过程中应用了多种技术 以达到在单个芯片上同时集成双极性逻辑电路、CMOS逻辑电路以及DMOS功率开关电路的目的,从而使芯片内部不仅包含了DMOS开关功率放大电路,还包含了直流电机和步进电机驱动及控制所需的所有电路模块,如四位D/A转换器、电机电流传感放大器、比较器、单稳电路、输入及控制逻辑、过流保护、欠压保护、过热保护等。在负载电流的测量上,针对在电机回路中串入传感电阻测量电机电流,将导致较大功率损耗的缺陷,NS公司采用了一种基本上无功率损耗的新型电流传感技术,使低成本下的无功率损耗电流测量成为可能。由于采用了固定切断时间的斩波放大器(Fixed Off-time Chopper)及内置四位D/A转换器,该芯片可以很容易完成电机电流的数字控制,实现步进电机的微步驱动。另外,LMD18245中的全DMOS H－桥功率开关低导通电阻特性,使其具有很高的功放效率。</p>
<p>&nbsp;&nbsp;&nbsp; <b>１主要性能参数及引脚定义</b></p>
<p>&nbsp;&nbsp;&nbsp; <img src="http://www.laogu.com/news/upload/img2/164_52_1.gif" />1.1 LMD18245的主要性能参数</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 工作温度范围： -40℃～+125℃</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 电机电源电压范围：+12V～+55V</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 最大逻辑电压：+12V</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 最大输出持续电流：3A</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 最大输出峰值电流：6A</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 最小输入脉冲宽度：2&mu;s</p>
<p>&nbsp;&nbsp;&nbsp; &middot; 电流传感器最大线性误差（0.5A～3A）：&plusmn;9%</p>
<p>&nbsp;&nbsp;&nbsp; 1.2 LMD18245引脚定义</p>
<p>&nbsp;&nbsp;&nbsp; LMD18245采用15脚TO-220封装,引脚排列如图１所示。各引脚功能如下：</p>
<p>&nbsp;&nbsp;&nbsp; &middot; OUT 1,OUT2: DMOS H－桥功放输出 接负载电机。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; COMP OUT: 比较器输出。当电流传感器引脚CS OUT的电压超过D/A转换器给定电压时,比较器翻转,触发单稳电路工作,切断电机供电电路。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; RC: 单稳电路时间参数引脚。在该引脚与地之间连接一并联RC网络,可以将单稳脉冲的宽度设置为1.1RC秒。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; PGND: 电机电源地。</p>
<p>&nbsp;&nbsp;&nbsp;<img src="http://www.laogu.com/news/upload/img2/164_52_2.gif" /> &middot; M4,M3,M2,M1: D/A转换器的二进制数字输入,其中Ｍ４为最高位。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; Vcc: 电机电源端。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; BRAKE:急停引脚。当该引脚为逻辑高电平输入时,H－桥的两个输入开关迅速将负载短路,从而使负载电流迅速衰减到零,达到&Prime;紧急刹车&Prime;的效果。其真值表见表１。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; DIRECTION 方向逻辑输入引脚,逻辑电平与负载方向的关系见表１。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; SGND: 逻辑电源地。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; CS OUT: 电流传感放大器输出,电流传感器的典型值为每安培负载电流输出250 &mu;A。</p>
<p>&nbsp;&nbsp;&nbsp; &middot; DAC REF: D/A转换器参考电压输入,D/A转换器的输出电压为<img src="http://www.laogu.com/news/upload/img2/164_52_3.gif" />。</p>
<p>&nbsp;&nbsp;&nbsp;<img src="http://www.laogu.com/news/upload/img2/164_52_4.gif" /> <b>２ 工作原理</b></p>
<p>&nbsp;&nbsp;&nbsp; 2.1 LMD18245的工作过程</p>
<p>&nbsp;&nbsp;&nbsp; LMD18245的内部功能框图如图２所示其控制方式采用固定关断时间斩波放大(Fixed Off-time Chooper) 技术,工作过程如下：</p>
<p>&nbsp;&nbsp;&nbsp; 上电后,在BRAKE信号无效,且保护逻辑无输出的情况下 电机按DIRECTION信号的方向转动 电流传感放大器采样电机电枢电流,经13脚的RC网络转换为电压值,与D/A转换输出的预定阀值相比较。如果当前的电流使转换的电压值小于阀值则控制Ｈ－桥输入开关(Source Switch:S1或S2)及对角的输出开关(Sink Switch:S4或S3)保持导通 电源电压全部加在负载上使负载电流通过电源&rarr;S1&rarr;负载&rarr;S4&rarr;地或电源&rarr;S2&rarr;负载&rarr;S3&rarr;地的回路图3a及图3b实线所示),以指数规律增加。 接在CS OUT端的阻容网络上的电压值VCS也随之增长当负载电流增加到或超过阀值电流时VCS随后也达到阀值电压,滞后的时间与阻容网络的时间常数有关,从而使比较器翻转,触发单稳电路翻转,关断输出开关(S4或S3)。此时,电机电枢电流在电枢电感的作用下,通过继流二极管构成的回路,图3a及图3b虚线所示,续沿原方向流动,其大小呈指数规律衰减并趋向于零。输出开关关断的时间即固定关断时间</p>
<p>&nbsp;&nbsp;&nbsp; toff-time由单稳电路的时间常数决定,其计算公式为:&nbsp;&nbsp;<img src="http://www.laogu.com/news/upload/img2/164_52_5.gif" />&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; 其中,R、C分别为引脚3所接的电阻和电容。</p>
<p>&nbsp;&nbsp;&nbsp; 当关断时间到达的时候,则输出开关重新闭合,电枢电流又呈指数规律增长,重复前面的过程,形成电枢电流的固定关断时间斩波控制。</p>
<p>&nbsp;&nbsp;&nbsp; 当DIRECTION信号改变时,系统进入方向转换阶段。首先,所有四个功率开关都被关断,电流通过续流二极管构成的回路（图3c或图3d所示的虚线）向零衰减;在电流接近零时,反向开关闭合,通过反向开关构成的回路（图3c或图3d所示的实线）电流迅速衰减到零,并随后反向增大到目标电流值。</p>
<p>&nbsp;&nbsp;&nbsp;<img src="http://www.laogu.com/news/upload/img2/164_52_6.gif" /> 2.2 LMD18245的电流传感原理</p>
<p>&nbsp;&nbsp;&nbsp; LMD18245中的DMOS功率开关由大量的晶体管单元阵行组成。LMD18245通过独特的低功率损耗的方法,利用两个输入开关(Source Swatch)阵列中的几个单元,得到电机负载电流。LMD18245的电流传感器结构如图４所示。对于每一个输入DMOS开关,都有1X的传感器开关和4000X的功率开关同时工作,由于电流传感放大器的虚短效果,使传感器开关两端的电压与DMOS功率开关两端的电压相同,从而使传感器开关按1/4000负载电流的比例输出传感电流。每输出1A的负载电流,电流传感放大器就会输出250 &mu;A的传感电流。在传感电流的输出端与地之间加入并行阻容网络,一方面将该电流转化为电压信号,与D/A转换输出的阀值电压相比较,触发斩波过程;另一方面通过该低通滤波器可以将电流开关噪声的影响滤除。</p>
<p>&nbsp;&nbsp;&nbsp; 电流传感电阻RS值的选定可以参考以下公式：</p>
<p>&nbsp;&nbsp;&nbsp;<img src="http://www.laogu.com/news/upload/img2/164_52_7.gif" /> 其中,<img src="http://www.laogu.com/news/upload/img2/164_52_8.gif" />为电机负载电流的最大设定值;Rs为电流传感器输出电阻;<img src="http://www.laogu.com/news/upload/img2/164_52_9.gif" />为D/A转换器的参考电压,最大值为12V,建议采用0～5V;D为D/A转换器的输入值,以M4为最高位,M1为最低位,D的取值范围为十进制０～15V,即Rs的值应该使D的变化能够控制<img src="http://www.laogu.com/news/upload/img2/164_52_10.gif" />在负载需要的范围内变化。</p>
<p>&nbsp;&nbsp;&nbsp; 2.3 保护功能的工作原理及应用注意事项</p>
<p>&nbsp;&nbsp;&nbsp; LMD18245具有过流保护、过热保护、欠压保护等多种保护功能,使由该芯片构成的功放系统具有较高的安全性和可靠性。下面分别介绍各保护功能的工作原理及应用时应注意的事项。</p>
<p>&nbsp;&nbsp;&nbsp; 过热保护实际是利用芯片内部的12A电流阀值开关实现的。如果芯片的两个输入开关中的任意一个的电流达到了12A的阀值,LMD18245的内部电路就将开关关闭,并迫使故障电流在大约3 &mu;s的时间内衰减到零。在此之后,芯片自动重新启动。应当注意的是：如果此时电路故障已经排除,自动启动后电路将迅速恢复到正常工作状态;但如果故障没有消除,电流仍然过大,则芯片将反复进入电流通断状态。反复开关如此大的电流,将在电源线上感应出破坏性的电压尖峰脉冲(Spike),如果该脉冲的幅度超过芯片的最大承受电压(60V),则有可能造成芯片永久性损坏。因此,芯片的Vcc端要求必须能可靠滤除电压尖峰脉冲,以保护芯片不被损坏。</p>
<p>&nbsp;&nbsp;&nbsp; 在实际操作过程中,由于电机电流的跳变或换向经常出现,因此电源线上也经常会出现尖峰电压或浪涌电流。在电路实际设计中,常采用在芯片的电源端并联高频陶瓷滤波电容及大容量铝电解电容的方法消除尖峰脉冲及浪涌电流。通常陶瓷电容的容值设定为1 &mu;F左右;铝电解电容的大小设置为每安培负载电流100 &mu;F左右。另外,在布线时应注意：电容距Vcc的距离应在0.5英寸以内,电容的管脚引线应尽量短。</p>
<p>&nbsp;&nbsp;&nbsp; 过热保护是利用芯片内部的结温传感器实现的。当结温超过155℃时,结温传感器将功率开关关闭,当结温下降到阀值以下时,芯片将自动重新启动。</p>
<p>&nbsp;&nbsp;&nbsp; 欠压保护的工作过程为：当电源电压下降到大约5～8V的阀值以下时,内部电路将关闭功率开关;如果电压恢复正常,芯片将重新启动。</p>
<p>&nbsp;&nbsp;&nbsp; <b>３ 典型应用</b></p>
<p>&nbsp;&nbsp;&nbsp; 3.1驱动步进电机</p>
<p>&nbsp;&nbsp;&nbsp; 图5为采用LMD18245的两相步进电机斩波功放应用电路。其固定斩波时间为：</p>
<p><img src="http://www.laogu.com/news/upload/img2/164_52_11.gif" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 步进电机的A、B两相各有一LMD18245控制,两芯片的方向控制端（DIRECTION）、电流控制端（M4～M1）、急停控制端（BRAKE）均与微控制器相连,从而使微控制器能够很方便地控制电机线圈的电流大小及方向,实现步进电机的整步控制、半步控制及细分微步控制等多种驱动方式。电源端并联的1 &mu;F陶瓷电容及100&mu;F电解电容,可有效防止过压脉冲的冲击,防止芯片损坏。20K &Omega;的传感电阻既保证了线圈电流能达到满幅,使电机输出最大力矩,又防止了电流超过满幅电流而烧坏电机。</p>
<p>&nbsp;&nbsp;&nbsp; 3.2 双极性输出方式驱动直流电机</p>
<p>&nbsp;&nbsp;&nbsp; H－桥结构的电机功放电路通常有双极性输出和单极性输出两种控制方式,各有各的特点。下面分别给出其驱动某种直流电机时的电路。</p>
<p>&nbsp;&nbsp;&nbsp; 利用LMD18245实现直流电机的双极性输出的电路结构如图6所示,其固定斩波时间设定为：</p>
<p><img src="http://www.laogu.com/news/upload/img2/164_52_12.gif" /></p>
<p>&nbsp;&nbsp;&nbsp; 由于电机的最大电流为150mA,电流传感电阻的阻值Rs为：</p>
<p><img src="http://www.laogu.com/news/upload/img2/164_53_13.gif" /></p>
<p>&nbsp;&nbsp;&nbsp; 芯片的各控制端连接微控制器,与图5电路不同的是,芯片的DIRECTION端连接微控制器的PWM输出。通过改变PWM脉冲的占空比,可以改变电机的转速和转向。微控制器还可以通过M4～M1端改变电机的最大电流阀值,控制电机的力矩大小,从而方便地实现电机控制。但这种连接方式也有电机电流波动较大的缺点。</p>
<p>&nbsp;&nbsp;&nbsp; 3.3 单极性输出方式驱动直流电机</p>
<p>&nbsp;&nbsp;&nbsp; 采用单极性输出方式驱动直流电机的电路如图7所示,电路参数同上。在微控制器的控制下,电机的转速由PWM脉冲的占空比决定,方向由DIRECTION信号电平决定,该连接方式下电机电流波动小,但由于电机的电流阀值固定,无法通过软件调节。</p>
<p>&nbsp;&nbsp;&nbsp; 利用NS公司的LMD18245全桥电机驱动器,我们已完成了多种机器人的电机驱动电路的设计。使用过程表明,采用该器件不仅可提高设计效率、缩短设计周期,而且可减小功放电路的体积。同时,长时间的实验操作表明,该芯片工作稳定可靠、性能优良,相信会对中小型直流和步进电机驱动电路设计人员有所帮助。</p>
<p><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://116.img.pp.sohu.com/images/blog/2007/5/10/20/8/1130deb4e36.gif" border="0" /><img style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" alt="" src="http://115.img.pp.sohu.com/images/blog/2007/5/10/20/8/1130df51c28.gif" border="0" /></p>
<p>&nbsp;</p>]]></description>
		</item>
		    
		
		<item>
			<title>精密运动控制器LM628的应用设计</title>
			<link>http://wemake.blog.sohu.com/40304612.html</link>
			<comments>http://wemake.blog.sohu.com/40304612.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Fri, 12 Oct 2007 14:24:14 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/40304612.html</guid>
			<description><![CDATA[<p><font color="#e30303">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="5">&nbsp;精密运动控制器LM628的应用设计</font></p>
<p>&nbsp;</p>
<p>&nbsp;引言<br />&nbsp;&nbsp;&nbsp; 神经网络技术是自动控制方法发展的重要方向之一，目前已广泛地应用于过程控制、机器人控制、生产制造、模式识别等领域。由于神经网络理论的计算量较大，对硬件的要求较高，神经网络理论<a title="系统" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/21139.aspx">系统</a>一般十分昂贵。近年来随着集成电路飞速发展，基于神经网络理论的控制系统可以用微处理器和专用的大规模集成电路来实现。这样就大大降低了系统的成本。大规模集成芯片<a title="LM628" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/21136.aspx">LM628</a>是美国国家半导体公司生产的专用精密运动控制器，具有16位的可编程数字PID调节器，可经增量码盘反馈构成<a title="位置" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/21137.aspx">位置</a>闭环，并能对位置误差实行PID运算。利用LM628和微处理器可实现低成本、高精度神经元PID伺服系统。 </p>
<p>&nbsp;&nbsp;&nbsp; LM628主要特点如下：32bit位置、速度、加速度寄存器；16bit的可编程数字化PID调节器；可编程微分采样周期；8bit或12bit DAC<a title="输出" style="COLOR: blue; TEXT-DECORATION: underline" href="http://www.cechinamag.com/word/21138.aspx">输出</a>；8bit PWM输出；内部梯形速度特性产生器；在运动期间速度、目标位置和滤波器参数可以改变；具有位置和速度两种操作模式；实时可编程的中断；8bit异步并行接口；用于积分增量编码器标准脉冲输入接口。</p>
<p>&nbsp;&nbsp;&nbsp; <strong>内部结构及工作机理</strong><br />&nbsp;&nbsp;&nbsp; LM628为28脚双列直插封装形式，引脚功能如表1所示，图1所示为其内部功能框图。</p>
<p align="center"><img height="231" src="http://www.cechinamag.com/images/Article/8d3528b6-739b-4e04-9760-e632ebd90610/5.jpg" width="354" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; LM628通过8bit并行I/O口与微处理器进行数据交换，微处理器可以以命令的形式对LM628的梯形速度特性和PID数字滤波器进行参数设定。用于检测电机旋转位置的增量编码器的输出信号通过编码器输入接口送入LM628，在LM628中与设定的位置信号相减，形成位置误差信号，该信号送入PID数字滤波器进行处理后形成控制信号，通过8bitDAC并行接口以数字化的形式输出，然后就可以通过数模转换器和功率放大电路驱动伺服电机完成精密的运动。</p>
<p>&nbsp;&nbsp;&nbsp; 微处理器通过命令的方式对LM628进行控制和参数设定和读取，在这些命令中，一般可分为两大类，一类只有命令代码，而另一类在命令代码后还要加上相应的数据代码（例如：设定的参数值）。LM628的命令集如表2所示。</p>
<p>&nbsp;&nbsp;&nbsp; LM628主要参数为：最高工作电压7V；最大功耗为605mW；工作温度范围是-40℃～+85℃；电源电压为：4.5～5.5V；存储温度范围为-60℃～+150℃。</p>
<p>&nbsp;&nbsp;&nbsp; <strong>LM628在神经元PID伺服系统中的应用</strong></p>
<p align="center"><strong><img height="213" src="http://www.cechinamag.com/images/Article/8d3528b6-739b-4e04-9760-e632ebd90610/7.jpg" width="316" border="0" /></strong></p>
<p><br />&nbsp;&nbsp;&nbsp; 以89C52单片机为核心的伺服系统如图2所示，在该系统中89C52实现用户的接口，如显示、键盘等，并完成神经元的学习算法及在线调整LM628的参数。LM628作为伺服控制调节器，接收89C52单片机传送的控制指令及位置、速度、加速度三个运动参数和数字滤波器的参数kp，ki，kd，n'(微分采样周期)，同时LM628对码盘输出的信号进行处理，获得位置信号，经数字PID运算后，由DAC端口以8bit方式输出，经数模转换器DAC0800转换为模拟信号，再经LM12CL组成的放大电路输出，用于驱动电动机完成精密的运动。LM628的输出与误差的关系式如下式所示。</p>
<p align="center"><img height="39" src="http://www.cechinamag.com/images/Article/8d3528b6-739b-4e04-9760-e632ebd90610/6.jpg" width="356" border="0" /></p>
<p align="left">　　　<br />&nbsp;&nbsp;&nbsp; 上式中，U(n)为第n个采样周期的控制输出；e(n)为第n个采样周期的位置误差；n为正常采样周期；n'为微分采样周期；kp为比例增益；ki为积分比例增益；kd为微分比例增益。</p>
<p>&nbsp;&nbsp;&nbsp; 比例增益kp提供了一个与位置误差成正比的输出，积分比例增益ki提供了随时间增长的输出，因此保证了静态位置误差为0。微分比例增益kd提供了与位置变化率成正比的输出，起到了超前控制的作用，减小了系统的超调，保证了系统的动态特性良好。式(1)与神经元PID算法的表达形式一致，因此在LM628中实现了神经元的状态量变换，状态量加权求和的功能，也就是实现了神经元PID伺服系统。</p>
<p>&nbsp;</p>
<p><strong>&nbsp;&nbsp;&nbsp; 结束语</strong><br />&nbsp;&nbsp;&nbsp; 本文设计的基于LM628神经元PID伺服系统具有性能稳定可靠，成本低廉等一系列优点。系统的动态性能好，启动速度快，超调良好，具有较高的实用价值。</p>]]></description>
		</item>
		    
		
		<item>
			<title>基于ARM的直流电机调速系统的设计与实现</title>
			<link>http://wemake.blog.sohu.com/40304113.html</link>
			<comments>http://wemake.blog.sohu.com/40304113.html#comment</comments>
			<dc:creator>哈尔滨工程大学萧萧创新工作室</dc:creator>
			<pubDate>Mon, 2 Apr 2007 19:57:06 +0800</pubDate>
			<guid>http://wemake.blog.sohu.com/40304113.html</guid>
			<description><![CDATA[<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="5">基于ARM的直流电机调速系统的设计与实现</font></span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>赵庆松 苏敏</span></p><span>
<p><strong>摘要：</strong>阐述了基于ARM的嵌入式智能小车系统中的直流电机调速子系统,此调速系统主要由S3C44B0X处理器和L298N电机驱动芯片构成，主要功能是驱动小车的两个车轮，调节小车的行驶速度和方向。文中详细介绍了S3C44B0X处理器中的相关寄存器设置及工作方式，给出了系统硬件设计原理图和软件程序代码。 <br /><strong>关键词</strong>：S3C44B0X；&nbsp;L298N；&nbsp;嵌入式；&nbsp;&nbsp;直流电机 <br /></p>
<div>
<p>0&nbsp; <b>引言</b></p>
<p>&nbsp;&nbsp;&nbsp; 在智能小车的研制开发中，很重要的一部分就是智能小车要能根据周围障碍物的情况自主的调节行驶速度和行驶方向。本文中所设计的直流电机调速系统是智能小车的一个重要组成部分，直流电机调速系统主要由S3C44B0X处理器和电机驱动芯片L298N构成，主要功能是驱动