英语原文共 221 页,剩余内容已隐藏,支付完成后下载完整资料
第9章
外部设备
到目前为止,重点一直放在微控制器内部的外围设备上。这一切都很好,但是单独的微控制器,没有外部设备,不能运行。本章将涵盖几种外部类型设备,包括电机,舵机和各种传感器。
9.1电机
电机是控制运动的标准之一,可用选项反映这一点。整本书都有很多写下他们之间的差异。因此,这应该限制自己到直流电机的控制。即使电压并不重要,如它只会改变控制界面中使用的特定设备而不是使用的设备类型。
9.1.1线性驱动器
有两种主要的方法来为DC供电和控制电源发动机;一个可变直流电压或最大连续脉冲序列电压变化。本节讨论前者。
大多数直流电机可以通过一定的电压电平供电水平; 12V或24V是适用和家用电机的。在电机输出轴上没有负载,并且施加了这个最大电压时,电机将以最大额定速度旋转,以每转的旋转速度测量分钟(RPM),或者如果它保持静止,它将提供其额定失速转矩。但是,如果。施加一些较低的电压,然后施加最大速度并失速转矩将线性减小到o rpm,在o伏附近无转矩。在实践小电压可以提供给电机没有任何运动的电动机由于扭矩不足以克服内部摩擦。
这就成为了挑战:设计一个提供变量的方法直流电压从0V直到电机可以充分使用的最大电压。回顾电压和电流一般情况下的微芯片的功能,特别是ATMega644p的功能。在第3章中,微控制器通常不能提供电压或电压来满足目前需要。当推动时,甚至可以提供许多由于没有内置数字模拟转换器(DAC)而导致电压变化。
假设已经选择了所需的电机和微控制器,并假设微控制器没有DAC外设,即外部DAC需要被选择。DAC选择时需要注意三点。首先是它如何与微控制器进行交互。这涉及到通信协议(一般为SPI或TWI / 12C)和信号触发电平(运行在3.3V的微控制器可能没有输出电压DAC识别高位)。第二点值得关注的是决议DAC。分辨率中的位数决定了多少个人DAC可输出的电压值,因此也是每个DAC之间的距离值。要查找以伏特为单位的DAC分辨率,请除以最大输出范围增加2,等于比特数减1。
例如:
在具有12位分辨率的0-5V DAC上,电压分辨率为:
他关心的最后一点是输出范围。虽然这可能会影响到对于电机驱动器其余部分所需的计算复杂性,任何范围都可以在不费力的情况下工作。仅输出范围影响达到所需电压所需的放大器范围和电流大小。
线性电机驱动器中唯一的其他主要组件是可操作的放大器,通常称为运算放大器。这里没有时间来解释运作或使用它们的方式,而只是具体的将讨论在此使用的配置。有许多来源可用有关运放的更多信息。维基百科有一篇长篇文章(运算放大器),运算放大器的历史和操作,以及另一篇文章(运算放大器应用)在各种应用上和配置。另一个网站www.rfcafe.com也有简要说明和几个配置。
该电路的运算放大器的功能必须匹配或超过该电路无论是在电压还是电流方面,都要求电机。此外,为了在两个方向上运行电机,运算放大器必须能够处理电机的电压正负极方向。
一旦主要组件(微控制器,DAC,运算放大器和电机)被选中,可以开始组合它们的过程。 几个电阻也会是必需的,尽管目前还不知道大小。
举个例子
在这个例子中,要使用的组件是ATmega644p,一个DAC7554来自德州仪器的12位DAC,来自德州仪器的OPA548T运算放大器德州仪器和Faulhaber 1524T012SR 12V直流电机。 DAC可以通过SPI运行,并可以在与ATmega644p相同的5V下运行。 它的输出是一个OV 到 5V信号,最大电流为50mA。 这需要由运算放大器转换成-12V 到12V信号。 虽然有几个可能的方式来配置两个电压范围之间的转换,即转换并获得收益。 因为在转换之前获得收益比较容易
电路转换应该看起来像这样:
图9.1显示了一个差分放大器,可以用来产生这个方程。 这种配置的输出方程的完整形式是:
然而,这种设计通常与V3接地(OV)一起使用如果V3连接到2.5V电源,这种情况下的计算就容易得多而Vi接地。剩下的就是找出电阻值R1到R4,导致增益项尽可能接近 4.8。如果增益稍大,这意味着可能达到最大电压在DAC的最高价值之前。只要电源电压为运算放大器限于 12V,这是电机的极限。
由于有无数的方法可以与电阻达到理想的组合,没有单一的正确答案。相反,它最好决定。总的来说,第一个目标应该是最少的数目,在这种情况下是4,第二个应该是限制数量不同。仔细查看方程,可以发现如果R3和R4是相同的值,那么分母等于2和分子可以设计为9.6的值,或者R_2 / R_1 = 8.6。其中之一值是任意的,所以让Ri为10kOmega;电阻。 R2可以是82kOmega;或者一个91kOmega;的电阻。前者不允许全部12V到达电机,所以后者是更好的选择。
最后,保持数量不同的元件低,Ri和R2都可以选用10kOmega;电阻所以,从10Omega;到 22MOmega;的10个倍数中都有类似的电阻。
为什么选择10kOmega;?这种选择有点武断,但它们通常是满足最低要求的值。这个最小值源于V2和V3之间的电压差以及DAC的最大电流可以提供(50mA)。电阻器Ri和R2的和必须是这样的他们将电流限制在2.5V的差值以下,低于50mA相当于至少50Omega;。选择这些电阻和接地后Vi,原理图和方程如图9.2所示。未连接的引脚插入原理图用于电源,使能引脚和限流器。更多信息可以在数据表中找到。
9.1.2 PWM电机驱动器
与改变电机输入电压的线性电机驱动器相反,改变速度,通过一个PWM信号运行一个电机来控制速度改变电动机通电的时间量。这有好处增加扭矩,因为全电压,因此全扭矩是可用的部分时间。这允许更大的负载而不会在不运行时停止在全力量。PWM驱动器通常使用H桥。一座H桥,因其而被称为在原理图中使用四个开关,无论是机械还是晶体管允许电流沿任一方向流过电机(见图9.3)。虽然H桥很容易搭建,但有很多芯片可以搭配一个这些芯片可能需要外部控制所有四个开关,但很多只需要两个输入。为这些输入中的一个供电。
而另一个较低则会导致电机朝一个方向旋转,反之亦然换另一个方向。一些H桥可以支持使用一个输入作为方向另一个作为低电平有效脉冲,但这会损坏或破坏一些脉冲必须注意H桥,以确保不会发生。
例
鉴于线性驱动器的大部分复杂性在设计运算放大器电路和代码只是通过SPI设置DAC,这里只是对面。有问题的H桥是STMicroelectronics生产的L6205仅需要来自微控制器的两条线作为输入,并且两条线需要电机作为输出。电源需要一些额外的电路并启用,但是有一个如何在数据表中执行此操作的示例为H桥。这种权衡是通过增加复杂性来实现的码。直到下一次设置SPI并忘记它速度需要变化,微控制器必须不断产生一个PWM信号位于两个引脚之一,另一个引脚为低电平。谢天谢地,这是可能的有一个定时器,没有中断。
回想一下8.2节讨论了定时器o的寄存器。在对TCCROA和TCCROB的描述中提到时钟可以切换外部引脚。 ATmega644p上的每个时钟都有两个外部引脚时钟可以控制。引脚OCOA和OCOB,也被称为PB3和PB4分别),可以分别设置。清除,或当TCNTO匹配时切换相应的比较寄存器(OCROA或OCROB)。
由于电机的初始方向未知,因此应设置定时器不启用任何引脚。 因为最终都需要这两者,所以都不是寄存器可以用来细化PWM信号的频率,选择是有点更有限。 此外,波形生成模式选项被缩小到只有模式3,这是TCNT复位的快速PWM以最大值而不是比较匹配。
为了安全地设定速度和方向,必须完成几项任务 在这个列表之后将阻止两个输入到H桥同时高电平,以及防止任何脉冲比期望。
〜禁用时钟
。 清除输出引脚
。 如果改变方向,禁用以前的引脚
*如果改变方向,则启用新的引脚排列
。 设置新的比较值。 两个比较寄存器都可以设置为相同
价值。
。 清除TCNT(可选)
〜启用时钟。
9.2伺服器
另一种创建和控制运动的流行选择是伺服。不像一个电动机,根据负载和速度确定速度/转矩组合电力供应,舵机有错误纠正的负面反馈导致他们寻求他们被指示的具体速度或位置至。 大多数舵机运动范围有限,通常受限在输出轴处旋转180度或更少,以及位置
他们移动到由输入信号设置。舵机将尽其所能达到那个设定点并且抵抗任何有用的力量许多应用。有一些提供连续旋转的舵机与速度控制,而不是位置,但他们不太常见和接受相同类型的信号,所以现在应该忽略它们。 舵机有三根电线,电源,地线和控制器。控制线是只有一个需要连接到微控制器。舵机解决了一个问题PWM信号,尽管占空比不在0-100Vo范围内。而不是看着占空比,伺服器会查看脉冲的宽度(或持续时间)。一个1.5毫秒的脉冲将导致伺服器移动到其中性位置,这是它的运动范围的中心。虽然运动和时间的范围有所不同从模型到模型,这种关系是线性的,并会出现在数据表中。舵机至少每20ms预计一次这个控制脉冲。
对于某些应用,舵机有几个优点。如果,因为实例中,只需要小动作或特定位置就可能有伺服由于内置纠错功能,因此更好的选择。用于连续运动诸如驱动器,电机等应用仍然是更好的选择。另一个好处的舵机是减少所需组件的数量。其实大部分舵机只需要一个能够提供电压的电源和它需要的电流,以及微控制器的功能。没有额外的接口组件是必需的。将此与定时器的PWM功能结合起来在许多微控制器上,伺服控制变得比任何东西都简单。
9.3传感器
控制环境的能力都很好,但不是如果没有能力知道实际发生了什么,这两者都是非常有用的作为所述控制的结果和外部影响的结果。为此在那里无数传感器:温度,光线,位置,距离,名单上。从微控制器的角度来看,实际上只有四种类型:那些使用通信协议,模拟信号,一位数字信号(开或关)或一系列脉冲。
数字信号
一位数字信号有两种可能的状态:开或关。这通常涉及到交换机或给定设备是否通电。这是深入的在第3章的数字输入部分。
模拟传感器
很多传感器都是模拟的。这些包括热电偶,光敏电阻电路和大多数测距仪等等。而来自每个数据意味着不同的事物,一旦转化为微控制器可以交流的信号,cept(需要的任何放大或电流限制),微控制器看到他们一样多的设备;一个发送到ADC的模拟信号。它是直到开发人员和代码来解释数据的含义。因此,请参阅第4章和传感器使用这些传感器的数据表。该数据手册将解释电压的含义以及所需的任何方程式将电压转换为有意义的结果。传感器使用串行通信任何模拟传感器都可以变成通过一些传感器进行通信的传感器通过使用外部ADC的串行形式,并且许多都具有这些ADC内置的。这些可以通过串行的各种方法进行通信通信,但SPI或TWI是最常见的。请参阅章节7了解更多关于串行通信的信息。
编码器
编码器是提供距离信息的传感器,盟友或线性。旋转编码器由一系列圆盘制成孔和可以检测这些孔的传感器。每次出现这些漏洞之一被检测到一个脉冲被发送到微控制器。计数时,这些脉冲可以翻译成一个距离。然而,基本编码器使用一条信号线这只允许覆盖总距离的信息,并不提供有关方向的任何信息。有编码器提供这个额外的信息(正交编码器)通过稍微提供第二组脉冲偏移量,但是这对控制器来说更难解释。
许多微控制器都有一个可选择使用的定时器/计数器外设一个外部时钟信号(例如ATmega644p中的定时器2)。当使用基本编码器,编码器可以用作时钟信号和编码器的数量可以从计数器的数据寄存器中读取发生的滴答。使用的正交编码器排除了这种方法的使用。每次打勾发生在其中一个通道上,必须检查第二个通道。这是地位(高或低)确定方向,然后计数器可以递增或根据需要递减。这可以通过使用单个引脚来实现,更改中断和软件计数器。额外的准确性可以达到通过查看信号的上升沿和下降沿,看一个两个信号的边沿或两个信号的两个边沿。前两个选项加倍测量每个距离的蜱数量,而第三个选项使其增加一倍再次。
当使用高精度编码器和高速电机时,通过占用所有处理器时间或者丢失,中断可能会导致问题中断。这种情况也会导致计数器过快地过度在8 甚至16位系统上读取,导致数据丢失。如果这是一个问题,有专用的编码器计数器可以使用更大的计数器和旨在处理高速滴答。这些甚至可以处理正交计算,然后通过微控制器进行通信
9.4结论
这只涵盖了可用的传感器和执行器中的一小部分。 COM的到目前为止,完全没有提到的是惯性导航传感器(陀螺仪,ac-celerometers)7个气动执行机构等等。本章不打算列出可用的东西,但要提供一个如何使用任何东西的起点可能是需要的。
第10章
实时操作系统
实时操作系统(RTOS)是可以实时处理的任何操作系统应用程序请求。对于运行OS等个人计算机Windows,Mac OS这需要在两者之间来回切换
线程作为各种正在运行的应用程序需要处理器时间或用户通过鼠标或键盘发出请求。在微控制器的情况下RTOS通常确保一组给定的任务在适当的情况下完成时间量并尝试阻止这些任务消耗处理器时间或外部资源过多。有两大类RTOS,抢先式调度程序和协作式调度程序。
10.1抢先式调度程序
抢先调度器是其中之一可以抢占低优先级进程控制软件。调度程序允许运行更高优先级的进程当运行多个任务或进程时,调度程序维护一个优先级列表包含每个过程及其优先级。当一个进程的优先级超过当前正在执行的进程的调度程序中断进程,保存其当前状态并允许新过程运行。正确执行,这确保所有进程至少获得一些CPU时间,重点关注那些更重要的。如果调度程序使用计时器实现这可能会迫使进程之间的变化花费更多的时间预计可以
全文共45236字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[10912],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。