智能仪器中数据高速传输的USB实现

本文介绍了philips公司的pdiusbd12芯片和maxim公司的ds87c520芯片,提出了基于usb1.1协议的pc和现场智能仪器之间的高速数据传输的解决方案。

  关键词:pdiusbd12;ds87c520;双数据指针

  引言

  在高速的数据采集系统中,需要pc和现场智能仪器之间进行大量的数据交换,这就要求pc机和现场之间必须拥有高速的数据传输通讯接口,才能保证系统的实时性和可靠性。新一代通用串行总线接口usb的优良特性给我们提供了极佳的解决方案。在高速数据传输过程中,由于采样频率较高,尤其频率在1mhz以上的应用,普通单片机是无法胜任的。maxim公司的ds87c520就能够达到高速数据传输的要求。

  pdiusbd12简介

  philips公司提供的pdiusbd12芯片是一款性价比很高的usb器件,它通常用作微机控制器进行通讯的高速通用并行接口,pdiusbd12完全符合usb1.1版的规范,也符合大多数器件的分类规格。pdiusbd12所具有的低挂起功耗连同lazyclock输出可以满足使用acpi、onnow和usb电源管理的要求。低的操作功耗可以应用于使用总线供电的外设。此外,它还集成了许多特性,包括softconnet、goodlink、可编程时钟输出、低频晶振和终止寄存器集合,支持本地的dma传输。d12芯片给我们提供了3个端点,每个端点都有输入和输出端点各一个,同时端点2还提供了4种方式的数据传输方法,本系统采用的是非同步模式,usb的端点结构见表1。

  pdiusbd12的端点1进行命令的传输和应答,而端点2进行数据的高速传输和海量传输。端点1每次接收计算机发送过来的2个字节指令,每接收2组后为一个完整的命令。通过一个校验位来判断命令字是否正确,如果命令字正确,则通过端点2发送或接收数据。而usb的传输速率可以达到12mbps,比rs-232的传输速率提高了100倍,这样,usb以12mbps与采样系统进行数据交换,需要1000k/12000k=0.08s的传输时间,因此,pc机可以实现和智能仪器的高速数据交换。

表1 非同步模式图

图1 硬件原理图

图2 软件流程图

  ds87c520简介

  ds87c520是maxim公司生产的一种新型高速全静态cmos单片机,它与8051单片机的管脚和指令集完全兼容。ds87c520的处理器核心经过重新设计,一个机器周期只占4个时钟周期。实际应用表明,若晶振频率相同,执行相同指令的速度是8051的1.5到3倍。ds87c520最高时钟频率为33mhz,执行一个单字节指令的速度最快可达到121ns。除此之外,还具有两个新型全双工串行口,13个中断,双数据指针,电源电压下降自动复位,可编程看门狗定时器,电源电压下降中断功能等。双数据指针使数据块传送速度得到提高。dptr0(82h,83h)和8051的dptr用法相同,用于访问片外ram或外设。dptr1(84h,85h)是新增的数据指针。dptr选择位(dps)通过设置sfr的寄存器86h的低位实现,通过使用inc指令,就可以切换dptr的选择。所有与dptr有关的指令都使用当前选择的dptr。因此,只需要用一条指令就可从源地址切换到目的地址。ds87c520与8051单片机最突出的区别就是速度的提高,这样,在高速的数据传输过程中就可以解决智能仪器采样频率低的问题了。

  系统的工作原理

  根据usb协议,任何传输都是由主机(host)开始的,单片机ds87c520的前台工作就是等待工作。主机pc首先要发送令牌包给usb, pdiusbd12接收到令牌包就给单片机发中断,单片机ds87c520进入中断服务程序。首先读pdiusbd12的中断寄存器,判断usb令牌包的类型,然后执行相应的操

  • 智能仪器中数据高速传输的USB实现已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计