DS80C320在高速数据采集中的应用

时间:2007-11-12

  普通的51单片机工作在12MHz时,指令周期为1μs,而访问外部空间需要2μs,实现数据采集时速度不会达到500ksps。DALLAS的 DS80C320与80C32兼容,但速度更快,工作在12MHz时指令周期为1/3μs,而且它的工作频率可达到33MHz,可用于高速数据采集。

1 DS80C320的相关寄存器

  DS80C320内部增加了一些特殊功能寄存器,其中有一个影响着外部数据访问速度:CKCON(8EH)。它的低三位(MD2、MD1、MD0)决定着访问外部数据消耗的时钟数及选通信号的宽度,它们的关系如表1所列。

CKCON(8EH) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
WD1 WD0 T2M T1M T0M MD2 MD1 MD0

表1 

MD2 MD1 MD0 指令周期/个 选通信号时钟数/个 选通信号脉宽/ns
0 0 0 2 2 80
0 0 1 3 4 160
0 1 0 4 8 320
0 1 1 5 12 480
1 0 0 6 16 640
1 0 1 7 20 800
1 1 0 8 24 960
1 1 1 9 28 1120

DS80C320 外部数据访问(MOVX)指令默认为3个指令周期,即上电复位时MD0为1,改变MD2-0的值可以改变访问速度,MD2-0不是直接寻址位,需要对字节(CKCON)进行操作。另外,DS80C320有两个数据指针,通过DPS寄存器的位来选择,进行数据埠移动时很方便。默认的数据批奖勤罚懒为 DPTR(82H,83H)。

2 高速采集应用实例

  图1 所示电路采样速度可达到1Msps,可以以速度连续采集256个数据。采集的数据放入双口RAM,低速总线可以从双口RAM另一端读出数据,因为双口RAM的两个端口可独立操作,故高、低速总线互不影响(这里只谈高速总线的工作情况,故图中没有画出低速部分的电路)。在高速应用时,器件的选择很重要。单片机为DS80C320,工作温度范围为-40~85℃;时钟选用24MHz晶振;A/D器件采用AD7822,为8位,转换时间为 420ns;地址锁存为74F373,D到Q端延时为8ns(74HCT373为44ns);程序存储器为W29C020-90,取数时间为90ns;数据存储器为256字节的双端口RAM DS1609(35ns)。此电路的连线也有些特别;ADC的启动信号与单片机的写信号相连,即单机同执行写操作就开始A/D转换,同时把上次转换的结果写入双口RAM;AD7822的CS端直接接地,免去选通信号(这种用法在AD7822数据手册里有介绍);AD7822的Vmid连接到 Vref(2.5V)上,此时输入电压范围为1.25~3.75V,改变它们的连法可以改变输入电压范围;AD7822的EOC悬空,即不检查忙标志,严格控制时序即可。从时序上可以看到:从启动信号(WR)到读数据(RD)要至少13个振荡周期,对24MHz来说就是520ns,这比AD7822的转换时间要长,因此可以得到有效的数据。

  A/D 转换过程是一个循环过程。首先,执行一条写指令,WR信号触发了A/D转换的开始。然后,用两条NOP指令进行延时,进入循环体后,先读取上次转换的结果,接着保存数据;同时,也启动下转换。接下来的循环控制指令,用来计数,同时改变目的地址,使采集要到的数据从高到低依次放大RAM的256个单元里。采集过程的子程序如下:ADC:MOV DPTR,#0100H

MOVX @DPTR,A ;开始转换

NOP

NOP

LOOP:MOVX A,@DPTR ;读数据

MOVX @DPTR,A ;保存数据,开始下转换

DJNZ DPL,LOOP ;数据指针递减、循环

RET

  若MOVX指令时间为2个周期,则以上循环周期刚好6个指令周期(24个振荡周期),为1μs,即可达到1Msps的采集速度。DS80C320的 MOVX指令时间默认值为3个周期,要改变MD2-0使MOVX指令时间变为2个周期,在执行A/D转换前要对MD2-0进行初始化,执行指令:

ANL 8EH,#11111000B

数据采集过程的时序如图2所示。


  
上一篇:应用RC低通滤波器扩展微处理器输出端口
下一篇:单片机在晶闸管触发电路中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料