DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1346|回复: 0
打印 上一主题 下一主题

[待整理] 经USB端口的模拟和数字I/O

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 15:29:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本文给出通过计算机USB端口得到16位数字I/O和12位模拟I/O。用Gigatechnology USB 模块和 LTC1286ADC、LTC1451DAC 实现本设计 。  USB模块
  USB模块(图1)接入USB总线,它提供字节宽的双向信号。4个其他信号控制数据流。为了从PC得到数据,等待直到*RXF输出为高态和*RD输入为低态为止,然后数据呈现在双向引脚。在*RD变化状态之后,*RXF输出变高态。重复此过程直到读出所有数据为止。在*WR输入的负沿送数据到PC,*TXE输出应变高态。当它再次变低态时,可以发送更多数据。


  数据输出
  从PC送数据到USB模块,过程为:
  ·打开器件;
  ·从PC发送代表数据的字符串;
  ·关闭器件。
  当从PC发送数据到模块时,Visual Basic程序检测代表数字数据的检查单元中的变化或定义ADC输出的区域中设置变化。程序汇编字符串,每个字符的bit5和bit2表示被发送的模拟和数字数据。Bit3表示选通数据进入74HC595输入寄存器(图2)和LTC1451寄存器的时钟信号(图3)。在数据正确地放送后,后跟两个字符。Bit1选通数据进入74HC595输出并驱动LTC1451门*CS输入。


  尽管DAC是12位器件,但它可以接收16个时钟脉冲,它仍然能正确工作,这是因为恰当地选通*CS输入。因为它首先接收数据MSB,所以,bit0必须在数字输出字bit16相同时间发送,bit11与数字输出字bit4的相同时间发送,这靠软件实现。
ADC具有内部2.048V基准和倍数2放大器,因此,毫伏输出是方便的等效码。
  数据输入
  数据输入过程如下:
  ·打开器件;
  ·从USB模块中读表示数据的字符串;
  ·关闭器件。
  为了从USB模块中读数据到PC,程序汇编锁存在74HC589输入寄存器中的字符中,此时再次用bit1。字符串其后的字符再次选通bit7低态和高态,选通U3a(图1)并送其Q输出为1。U3a的Q和*Q输出信号控制74HC589器件的*SLOAD输入和LTC1286的*CS输入。它也去除来自U4的复位信号,允许工作直到其Q9输出变逻辑1为止,通过U3b复位U3a。当U4工作时,其Q4输出提供16个时钟沿来选通来自LTC1286的数据输入。此信号经反相器也选通74HC589(图2)和USB模块的*WR输入。74HC589和LTC1286 ADC(图3)在时钟沿的不同极性转换数据,而电路能确保USB模块在有效时钟沿之间的中间状态接收数据。
  来自USB模块的模拟和数字数据分别从模块返回字符串中bit6和bit4获得。在*CS有效之后,ADC在第4个时钟脉冲给出其输出的最高有效位(D11),其他位紧随其后,在第15个时时脉冲输出最低有效位(D0)。为了与数字输入具有共性,电路中给出第16个时钟脉冲;在第16个脉冲期间,ADC再一次输出D1。因此,软件除去USB所接收的转换数据最后1位,并转送剩余的其他正确位。
  因为时钟率必须低于单纯数字情况下的时钟率,所以,不需要来自USB模块的*TXE信号。在此采用4MHz振荡器连率,需要选择U4的不同输出以获得ADC所用的低于200KHz时钟率。
  在ADC之前有一个1增益运放,提供高输入阻抗并使ADC所产生的噪声与输入隔离。电位器(图3)补偿放大器漂移并设置到零输入电压时ADC读出零。本文所用ADC是12位器件,其输出码是:4096×Vin/Vref,其中Vref是由LM3852-2.5提供的2.5V电压。
  软件
  软件分为三部分:
  ·专用于本系统的Visnal Basic码;
  ·码编译版本;
  ·包含动态链路数据库(DLL)的.Zip文件,这可使Visual Basic存取需要控制USB模块的函数并能驱动此模块。这可从Future Technology Devices International公司的网站(http://www.ftdichip.com)下载
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-5 23:22 , 耗时 0.110219 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表