10614 - 200620703027梁璨 - 2003 - 下载本文

电子科技大学硕士学位论文

存储电路用于保存AD9224的输出数据,并通过数据总线与系统交换数据,这里选用静态存储器IS61LV6416-10作为大容量随机存储器,和先进先出存储器FIFO相比,读写控制电路设计相对复杂一些,但是解决了大容量快速存储和价格昂贵等问题。IS61LV6416-10的读写周期为10ns,能够满足40MSPS采样速率的要求。

为了实现采集数据自动存储,在FPGA内部设计了地址发生器和时序控制器,其基本思路如下:系统采样时钟上升沿作为A/D转换器的工作时钟,同时这个上升沿也作为地址发生器的时钟信号,也就是在采样量化的同时地址发生器输出地址增加一个单位。

2.5通信接口设计

该模块负责整个测试平台与计算机之间的数据通信,包括计算机对测试平台控制参数的传递,信号源波形数据的传递和采集数据的回传。最初在设计通信平台时,是以并口模式设计的,但现在具有并口的计算机越来越少,取而代之的是用USB接口,因此我们也需要对平台的通信模式采取一定程度的改变以适应现代计算机的发展。另一方面,暂时为了不让测试平台有太大的变化(平台数据都是以并行传递的),因此我们在这里采用了一个USB转并口的芯片来实现平台与计算机的通信。这里选用的USB转并口的转换芯片是CH341,通过它来实现串行到并行通信方式的转换。

2.5.1 USB串行转并行接口

我们选用的CH341转接芯片,成本低,USB转EPP通信接口模式也易于实现,并且它还具有转换成多种通信接口方式的能力,如转换为异步串口、并口以及常用的2线和4线等同步串行接口。

在异步串口方式下,CH341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。

在打印口方式下,CH341提供了兼容USB相关规范和Windows操作系统的标准USB打印口,用于将普通的并口打印机直接升级到USB总线。

在并口方式下,CH341提供了EPP方式或MEM方式的8位并行接口,用于在不需要单片机/DSP/MCU的环境下,直接输入输出数据。

16

第二章 虚拟频谱仪硬件电路设计

除此之外,CH341芯片还支持一些常用的同步串行接口,例如2线接口(SCL线、SDA线)和4线接口(CS线、CLK线、DIN线、DOUT线)等,如图2-10所示

异步串口/RS232/RS485/RS422计算机或其它主机CH341D+转换并口打印机USB打印机D-转接芯片 图2-10 CH341常用的几种转换方式 CH341的特点[4]:

? 全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。 ? 可选:通过外部的低成本串行EEPROM定义厂家ID、产品ID、序列号等 ? 低成本,直接转换原串口外围设备、原并口打印机、原并口外围设备。 ? 采用SOP-28封装,串口应用还提供小型的SSOP-20封装。

? 由于是通过USB转换的接口,所以只能做到应用层兼容,而无法绝对相同。

2.5.2 通信接口的软硬件设计

在设计这个USB转并口的通信方式中,软件和硬件设计都相对比较简单,它的硬件主要是通过转换芯片CH341附加加相应的外围电路就能够实现,而软件部分则是通过LabVIEW来调用芯片CH341自带的DLL动态链接库来实现编程。

2.5.2.1通信接口的硬件设计

CH341芯片主要通过SCL和SDA引脚配置芯片的功能,它主要有两种模式:直接组合配置和外部芯片配置。

直接组合配置是将SCL引脚和SDA引脚进行连接组合,配置CH341的功能。外部芯片配置是由SCL引脚和SDA引脚组成两线同步串口,连接外部的串行EEPROM配置芯片,通过EEPROM芯片定义芯片功能、厂商ID、产品ID等。我

17

USBEPP并口和MEM并口常用的2线和4线串口 电子科技大学硕士学位论文

这里芯片配置方式选用的是直接组合配置方式。其特点是:无需增加额外成本,但是只能使用默认的厂商ID和产品ID等信息(如表2-2)。在直接组合配置下,除了产品ID之外,其它信息与外部芯片配置的默认值相同。

表2-2 SDA和SCL的不同组合方式 SCL和SDA的引脚状态 SDA悬空,SCL悬空 SDA接低电平,SCL悬空 SDA和SCL直接相连 芯片功能 USB转异步串口,仿真计算机串口 USB转EPP/MEM并口及同步串口 转换并口打印机到标准USB打印机 默认的产品ID 5523H 5512H 5584H 在本课题中,主要是通过CH341芯片来转接EPP并口方式,而EPP并口的主要引脚包括WR#引脚、DS#引脚、AS#引脚、WAIT#引脚。

EPP方式通过WR#、DS#和AS#的逻辑组合执行具体操作。WR#用于指示当前的数据或地址传输方向,对计算机端而言,高电平是对外部电路执行读操作,低电平是对外部电路执行写操作。选通信号是低电平有效的脉冲信号,选通信号包括数据选通DS#和地址选通AS#,DS#有效执行数据操作,AS#有效执行地址操作。CH341支持WAIT#等待信号,在CH341开始输出低电平选通信号后,如果WAIT#为低电平,那么选通信号将继续保持低电平直到WAIT#恢复为高电平才结束输出[4]。

CH341芯片内置了USB上拉电阻,UD+和UD-引脚应该直接连接到USB总线上。 为了在电源上电期间可靠复位并且减少外部干扰,在RSTI引脚与VCC之间跨接一个容量为0.47uF左右的电容。 CH341芯片正常工作时需要外部向XI引脚提供12MHz的时钟信号。一般情况下,时钟信号由CH341内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI和XO引脚之间连接一个12MHz的晶体,并且分别为XI和XO引脚对地连接振荡电容。 CH341芯片使用5V电源电压时,V3引脚应该外接容量为0.01uF左右的电源去耦电容。 具体硬件电路图如图2-11所示

18

第二章 虚拟频谱仪硬件电路设计

图2-11 CH341外部连接电路图

由于我的目的主要是将USB转成EPP的通信方式,并且在电路设计的时候采

用了直接组合的方式,不外加任何的外部芯片,因此从表2-2可以知,在直接组合方式下,采用对SCL和SDA引脚连接方式为SDA接低电平,SCL悬空。X1与X2之间加上一个12M的晶体振荡器,并用两个电容来去交流。 2.5.2.2 通信接口的软件设计

在计算机端的Windows操作系统下,CH341的并口驱动程序和动态链接库DLL向应用程序提供了应用层接口,包括:设备管理API、并口数据传输API、同步串口数据传输API、中断处理API。

API参数的说明可参考CH341DLL.H。这里简单介绍几个API函数 设备管理API,主要是对CH341进行开启关闭的控制函数, CH341OpenDevice( //打开CH341设备,返回句柄,出错则无效

ULONG iIndex); //指定CH341设备序号,0对应第一个设备 将CH341作为设备,使用前必须先打开,然后才能使用 CH341CloseDevice( //关闭CH341设备

ULONG iIndex); //指定CH341设备序号

用完CH341后,或者应用程序退出前,应该关闭CH341设备并口数据传输API,用于数据的传送

CH341InitParallel( // 复位并初始化并口,RST#输出低电平脉冲

ULONG iIndex, //指定CH341设备号

ULONG iMode); //指定并口模式:0为EPP模式,2为MEM模式,

19

电子科技大学硕士学位论文

>=256保持当前模式

在CH341上电时自动化并口,如果需要,也可以重新初始化开口,以清除缓冲区。在初始化话过程中,RST#引脚会输出100us左右宽度的低电平脉冲,用于通知外部设备复位。

CH341EppReadData(//EPP方式读数据:WR#=1,DS#=1,D0-D7=input

ULONG iIndex, //指定CH341设备序号

PVOID obuffer //指向一个足够大的缓冲区,用于保存读取的数据 PULONG iolength;) //指向长度单元,输入时为准备读取的长度,返回

后为实际读取的长度以EPP时序连续读取数据,长度为0到4096字节

CH341EppReadAddr(//EPP方式读地:WR#=1,DS#=1,AS#=0,D0-D7=input ULONG iIndex ,// 指定CH341设备序号

PVOID Obuffer, //指向一个足够大的缓冲区,用于保存读取的地址数据 PULONG ioLength);//指向长度单元,输入时为准备读取的长度,返回

后为实际读取的长度

将上面的函数变为动态链接库函数,用于LabVIEW调用,以此实现通信功能。另外写数据、写地址和读数据、读地址都是相同的[4]。

对于这个转接的通信接口还需要驱动程序,我只需把连接有CH341的电路板DRIVER//目录下的文件即可。安装完成后可在设备管理器里看到外部接口。

在软件编程的时候,把CH341DLL.LIB文件拷到工程目录下,利用LabVIEW调用外部模块的方法,完成对CH341DLL.H中相关函数的调用,以此来实现通信功能。

图2-12是转接芯片CH341的软件设计流程图。如图所示,首先,当启动电源

接到计算机的USB接口时,会提示找到新硬件,然后选择厂家提供CH341PAR//

后,打开接口设备,倘若没打开设备则仍只是处于通电状态,并不能执行数据的传递。当开启设备后,再对设备进行复位操作,这个过程中主要是对设备读写控制方面的复位。当复位完成后对EPP初始化;初始化过后就可以进行写地址和读数据的操作,以此实现数据的通信过程,将送入的数据送入到采集和频谱分析模块当中进行处理,处理完毕后判断是否需要关闭设备,如若不关,则再次对设备复位,继续进行数据读写操作,直到关闭设备为止,整个过程才会结束。

20