您当前的位置:五五电子网电子知识电子学习基础知识电路基础知识计算机与微控制器的连接方法 正文
计算机与微控制器的连接方法

计算机与微控制器的连接方法

点击数:7461 次   录入时间:03-04 11:41:32   整理:http://www.55dianzi.com   电路基础知识

  假设信号的电压范围为10伏,用8位(即1个字节)来表示这个电压的各种电平。8位有256个可能的组合,这意味着10伏的电压范围将用256个不同的二进制数值来代表。10伏和8位的转换表明ADC系统的分辨率为0 039伏(39毫伏)每级。显然,电压范围越小或位数越多,转换分辨率就越高。例如,10位转换有1024个可能的位组合,即大约0.009伏(9毫伏)每级。

  2.逐次逼近式ADC原理
  
  模数转换器的结构有许多种,包括逐次逼近式、单斜率、△一∑式和闪速式。最常用的结构可能是逐次逼近式,它以系统化的“20个问题”逐次用2除电压区间,每次都使可能的结果趋近答案。

  ADC中的比较器电路确定输入电压是高于还是低于内部的基准值。如果高于,则ADC“分出”一组二进制数值;如果低于,则ADC分出另一组二进制值。

  虽然这听起来像是一个绕来绕去的方法,但整个转换过程只需几微秒。

  逐次逼近法(和一些其他ADC方案)的一个缺点是,如果在转换完成之前输入值已发生改变,则转换结果是不准确的。因此,大多数现代模数转换器采用内部的“采样保持”电路(通常是准确的电容和电阻)来临时存储取样值,直到转换完成为止。

  3.模数转换IC
  
  您可以用分立逻辑芯片来组装模数转换器电路——基本上是由许多比较器组合在一起。但比较容易的方法是使用专用的ADC集成电路。这些芯片不但转换方法不同(如逐次逼近法等),而且形式多种多样。

  ■单输入或多输入。单输入ADC芯片如ADC0804只能接收一个模拟输入。多输入ADC芯片如ADC0809或ADC0817可以接收多于1个(通常为4、8或16个)的模拟输入。ADC芯片上的控制电路使您可以选择您要转换的任一输入。

  ■位分辨率。基本的ADC芯片具有8位分辨率(以前讲过的ADC08xx集成电路都是8位)。10位和12位芯片可以达到更高的分辨率。16位模数转换器IC很少,但它们没有广泛应用于机器人。最常用的一种12位ADC芯片是Ll℃1298.它可以把输入电压(通常为O~5伏)转换为4096位。

  ■并行输出或串行输出。并行输出的ADC为每一位提供单独的数据线(10位和12位转换器仍可能只有8位数据线,转换后的数据必须分两段读出)。串行输出的ADC只有一个输出端每次发送1位的数据。在使用输入/输出线很少的微控制器时,串行输出ADC正好合乎需要。在最常见的方案中,在微控制器或计算机上运行的程序按照时钟的节奏每次处理一个数据位,最后输出转换后的数值。ADC08XX芯片配备并行输出,12位的LTC1298配备串行输出。

  4.集成微控制器内置ADC
  
  许多微控制器和单板计算机都内置了一个或多个模数转换器。与单独把ADC芯片与机器人连接在一起相比,这样做节省了时间和费用,也不会遇到麻烦。因为所有数据操作都在内部完成,所以您不必考虑ADC芯片是以串行或并行方式提供。您只需告诉系统读取模拟输入,它就把所得的数字结果告诉您。

  从缺点上说,大多数位于微控制器上的ADC与单独的ADC相比一般功能比较有限。例如,您可以对大多数单独的ADC设定一个特定的电压范围,如2至4.5伏,而不是通常的0至5伏;接着把全部的位区间(8位、10位、12位等)应用于这个狭窄的电压范围。由于相同的位数被用于较小的电压范围,所以分辨率自然提高。微控制器和计算机中内置的大多数ADC无法改变电压区间,限定区间的转换必定精确度较差。此外,您虽然无法改变微控制器或计算机内置ADC的分辨率。但如果芯片采用8位分辨率,而您需要10位或12位,您可以另外增加独立的转换器。

  5.取样电路
  
  下图是使用ADC0809的基本电路,其中有8个模拟输入,并提供8位的转换分辨率。您想测试的输入可以由3位的控制输入来选择-000代表测试模拟输入,001代表测试模拟输入2,其余类推。请注意,约500kHz的时基可以来自陶瓷谐振器或其他的时钟源,或来自阻容( RC)时间常数。如果您需要精密的模数转换,您应当选用非RC电路的更精确时钟。

  下图表示流行的ADC0804的引脚图,这是只有一个模拟输入的8位逐次逼近或模数转换集成电路。



www.55dianzi.com

  八、数据转换用法
  
  数模转换( DAC)是模数转换的逆过程。DAC把数字信号转换为可变的模拟电压。DAC在某些类型的产品中应用广泛,例如音频压缩光盘上刻录的数字信号经数模转换变成悦耳的声音。

  但是,至少在机器人方面,DAC的使用不如ADC广泛,而且在使用时通常只需要较简单的“近似”电路。常用的方法是使用电阻和电容来组成传统的RC时间常数电路。数字设备把周期性的脉冲送经RC电路。电容以更多或少的规定速率放电,在规定的时间内通过的脉冲越多,电容上存储的电压就越高。

  直流电机的转速通常由某种数模转换方式确定。最常用的方法不是直接改变电机上的电压,而是使用脉宽调制( PWM)方法。这种电路给电机施加一连串的脉冲。脉冲处于“通”的时间越长,电机就转动越快。这样做是因为电机会把脉冲“集合为”平均电压,因而完全不必单独进行数模转换。

  您可以利用专门设计的集成电路来进行数模转换。例如DAC08就是廉价的8位数模转换集成电路,它能把8位的数字信号转换成模拟电压。

  九、扩充可用的I/O线
  
  微控制器和计算机控制的机器人的输入/输出脚较少。您的机器人似乎应比计算机或微控制器多一些I/O引脚,因此,您会觉得要么删掉机器人的一两个功能,要么需增加第二个计算机或微控制器。

  幸运的是还有一些别的办法。最容易的做法可能是使用数据信号分离器,这种小器件使您可以把少数的I/O线变成许多I/O线。信号分离器有各种类型,常见的一种提供3条输入线和8条输出线。您给3个输入端施加二进制的控制信号,就可以激活8条输出线中的任一条。下表列出输入控制线的取值与对应的被选中的输出。

  信号分离器包括历史悠久的74138芯片,其设计目标是使被选择的线变为LOW(低),而所有其他输出线均为HIGH(高)。信号分离器的一个特点是任何时候只有一个输出可以被激活。一旦您改变输入控制信号,老的被输出就不被选中,新选中的输出就取代老的。

  避免这种情况的一种方法是使用可选址锁存器如74259;另一种方法是使用串行变并行的移位寄存器如74595。74595芯片使用3个输入(也可再选第4个输入,但从我们的目标来说可以不予考虑),并提供8个输出。通过给74595一个8位的串行字,您可以把您选上的输出变为激活态。例如,


  
    下图说明74595的接口用法。在工作时,机器人的计算机或微控制器向时钟发送8个时钟脉冲。在每个时钟脉冲到来时,数据线发送您想使用的串行字中的一位。当所有8个脉冲都被接收时,锁存线起作用。74595的所有输出从此将一直激活,直到您改变它们为止(或者撤除芯片的电源)。

  如果只是要把三根I/O线变成8,上述做法看起来太费功夫。机器人所用的许多微控制器(和某些计算机)都有一条“移出”( Shift-out)命令来做这件事。例如BasIC Stamp lI(但BasicStamp I不在此列)、BasicX-24和其他几种微控制器就是如此,在使用“移出”命令时,您要指出您想发送的数据以及与74595相连的微控制器的I/O引脚,然后向锁存线发送一个短脉冲,这样您就算做完了! 74595的一个关键优点是它们可以级联起来,进一步扩充I/O选择。

  还有扩充I/O线的其他方法,其中包括串行外围接口( SPI)、Dallas 1线协议,等等。如果您的计算机或微控制器支持一种或更多的这些系统,当您的机器人用完了其上的l/0线,您可能想研究如何使用这些系统。



www.55dianzi.com

  十、位方式的端口编程
  
  控制机器人通常涉及对计算机或微控制器的端口之一个或多个输入/输出线(“位”)进行操控。

  I/O端口的常见格局是8个位,即由8根单独的引脚组成。这与IBM PC兼容式计算机上的并行口的格局是一样的。该平行口提供8根数据线以便把字符发送给打印机或其他设备(还有少数的附加输入线和输出线用于传输控制和状态信息)。典型的微控制器或计算机的设计与相应的常用编程工具不容易直接操控一个端口的个别位。相反地,您必须每次操控整个端口,而且在这样做的时侯希望只改变想改变的一些位。另一种方法是同时向端口发送一个整值,对4位端口是0至15中的某一整值。这个值与您想控制的位正好对应。例如对于一个8位端口,数值54对应于二进制的00110110。

上一页  [1] [2] [3] [4]  下一页


本文关键字:控制器  计算机  电路基础知识电子学习 - 基础知识 - 电路基础知识