关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > BRDF测量系统中高速串行接口的设计

BRDF测量系统中高速串行接口的设计

作者:时间:2008-04-23来源:网络收藏
摘要:本文探讨了中利用串行接口芯片EZ-USBFX2实现PC机与光谱仪之间的通讯。给出了系统组成原理,USB接口芯片EZ-USBFX2CY7C68013的功能介绍和基于“SlaveFIFOs”方式实现通讯的软硬件设计方法。
关键词串口通讯光谱仪EZ-USBFX2

Abstract: The paper primarily discusses high-speed serial communication between personal computer and radiometer based on serial interface EZ-USB FX2 in measuring system. System principle,the description of EZ-USB FX2 CY7C68013, the hard ware design and the software design have been present.

Key Words: BRDF,Serial Communication,Radiometer,EZ-USB FX2

1. 引言

在遥感领域中,遥感信息定量化及多角度遥感的发展都要求获取测量目标的BRDF(双向反射比分布函数)。这就需要一种可同时测量阳光入射辐照度和样品反射辐亮度的,而一个好的通讯将会在很大程度上提高整个系统的工作效率,也会给使用者带来极大方便。传统的主机与外设的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线插拔麻烦,且扩展槽有限(一般为5~6个),ISA总线存在同样的问题,RS-232C串行总线传输速度慢(56kbps),且主机的串口数目也有限。通用串行总线(Universal Serial Bus,简称USB)具有安装方便、高带宽、易扩展等优点。本文探讨一下在BRDF中利用EZ-USB FX2实现通讯的软硬件设计方法。

2. 系统组成

2.1 测量系统的特点

测量系统可以在室外自然条件下完成样品上半球BRDF数据的测量和采集。模块化设计,使其可拆卸运输,组装方便。系统中的光谱辐亮度计和辐照度计均可作为独立的仪器使用,配备主动光源后,可在室内进行BRDF测量。它可同时测量阳光入射辐照度和样品反射辐亮度,显著降低测量周期内太阳高度角和大气条件改变对测量结果的影响,提高了测量精度。

2.2系统总体框图

图1测量系统总体框图

测量系统总体框图如图1所示。该系统由光学探测头和控制箱两个主要部分组成,光学探测头安装于天顶弧小平台上,二者由电缆进行连接。测量系统工作时,光辐射信号经光栅分光后,由线阵探测器接收所得到的在一定波长范围内的光谱辐射信号,转换成相应大小的模拟电信号。所得到的模拟电信号通过长电缆传输至控制箱里,再由单片机控制进行A/D转换、多条曲线平均、插值等处理,完成后将多条光谱数据存入大容量的静态存储器中。最后,控制箱再通过USB2.0高速串行接口将数据传输至系统控制主机(PC机)。

3. 通讯接口硬件设计方案

3.1 EZ-USB FX2 CY7C68013功能介绍

EZ-USB FX2 CY7C68013是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。该芯片的结构图如图2所示。

图2 EZ-USB FX2模块

FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。

其主要特性如下:

●带有加强的8051内核性能,可达到标准8051的5~10倍,且与标准8051的指令完全兼容;

●集成度高,芯片内部集成有微处理器、RAM、SIE(串行接口引擎)等多个功能模块,从而减少了多个芯片接口部分需要时序配合的麻烦;

●具有易用的软件开发工具,该芯片开发系统的驱动程序和固件的开发和调试相互独立,可加快开发的速度。

3.2 方案选择

FX2有三种可用的接口模式:端口模式、GPIF主控模式和Slave FIFOs模式。

在“端口”模式下,所有I/O引脚都可作为8051的通用I/O口。“GPIF主控”接口模式使用PORTB和PORTD构成通向四个FX2端点FIFO( EP2 EP4?EP6 EP8)的16位数据接口。GPIF作为内部的主控制器与FIFO直接相连,并产生用户可编程的控制信号与外部接口进行通信。同时,GPIF还可以通过RDY引脚采样外部信号并等待外部事件。在Slave FIFOs模式下,外部逻辑或外部处理器直接与FX2端点FIFO相连。在这种模式下,GPIF不被激活,因为外部逻辑可直接控制FIFO。这种模式下,外部主控端既可以是异步方式,也可以是同步方式,工作时钟可选为内部产生或外部输入,其它控制信号也可灵活地设置为高有效或低有效。为了充分利用EZ-USB FX2内部的特殊机制来达到更高的传输速率,我们采用Slave FIFO模式。在整个传输过程中,并不要求8051对数据进行处理,采用自动打包的方式(置AUTOIN=1),数据经过FIFO直接发送到PC机。图3所示是EZ-USB FX2在Slave FIFOs模式下与外部电路连接的示意图。

图3 EZ-USB FX2在“Slave FIFOs模式”

4. 系统软件设计

4.1 设备固件(Firmware)设计

CYPRESS公司的EZ-USB FX2开发套件提供给用户一个固件函数库(Ezusb.lib)和固件框架(Frame work),两者均是基于KEIL C51进行开发的。固件函数库提供了一系列的函数来加速USB固件程序的开发,使用时只需在程序中包含EZUSB.H和EZREGS.H两个头文件,并在项目中链接Ezusb.lib就可以直接使用固件库中的各个函数了。

在使用固件框架来进行特定的固件开发时,固件框架已经帮我们实现了初始化、重枚举、源管理等功能。对用户而言,只需要在固件架构的预留位置处添加代码,就可以完成特定的功能,从而开发出一个功能完善的USB外设。在TD_init()函数中添加功能代码,完成初始化以及端点配置等工作,并在TD_poll()函数中添加其它代码来完成各种辅助功能。

固件初始化代码如下:?

void TD_Init(void)

{

CPUCS = ((CPUCS bmCLKSPD) | bmCLKSPD1) ; //设置CPU时钟为48Mhz

EP2CFG = OxAO; // EP2为bulk传输方式,方向OUT,尺寸512,4倍缓冲

EP4CFG = 0x00; // EP4 未使用

EP6CFG = OxEO; // EP6为bulk传输方式,方向IN,尺寸512,4倍缓冲

FIFORESET=0x80;//设置NAKALL bit

FIFORESET=0x02;

FIFORESET=0x06;//复位EP6 FIFO

FIFORESET=0x00;//清空NAKALL位,恢复至一般操作模式

EP2FIFOCFG=0x01;//设置EP2 FIFO

EP2FIFOCFG = 0x11; //设置EP2 FIFO自动输出模式

EP6FIFOCFG = 0x09; //设置EP6 FIFO自动输入模式

EP6AUTOINLENH=0x06;//EP6每次自动传输1024字节

……

}

void TD_Poll(void)

{

//因为设置为自动传输模式,所以此函数中不必添加任何代码

}

4.2主机应用程序设计

应用程序设计由两个部分组成:动态链接库和应用程序。动态链接库负责与内核态的USB功能驱动程序通信并接收应用程序的各种操作请求,而应用程序则负责对所采集的数据进行实时显示、分析和存盘。应用程序使用VC++6.0进行开发。

EZ-USB FX2开发套件提供了主机端驱动程序(ezusb.sys),可适用于绝大多数实际应用。在编写主机应用程序的时候,只需调用相应的WIN32 API函数向驱动程序提交各种申请,就能由驱动程序来完成相应的读、写数据等各种功能。

void TransferThread(PTHREAD_CONTROL threadControl)

{

threadControl->status = DeviceIoControl (threadControl->hDevice,

threadControl->Ioctl,

threadControl->InBuffer,

threadControl->InBufferSize,

threadControl->OutBuffer,

threadControl->OutBufferSize,

threadControl->BytesReturned,

NULL);

// 调用DeviceIocontrol()函数

if (threadControl->completionEvent)

SetEvent(threadControl->completionEvent);

return;

}

应用程序首先调用API函数Createfile()打开设备,并返回设备的句柄,然后调用DeviceIocontrol()函数,通过返回的句柄把申请服务的代码(IOCTL)和相应的输入输出缓冲区提交给驱动程序,由驱动程序完成相应的服务。

5. 结论

本文介绍了BRDF测量系统,给出了在此系统中利用串行接口芯片EZ-USB FX2实现PC机与光谱仪之间高速串行通讯的软硬件设计方法。经调试运行证明,该设计方案可以实现PC机与光谱仪之间的高速串行通讯。

本文作者创新点:

BRDF测量系统对遥感信息定量化及多角度遥感的发展都有很大帮助.在此系统中,利用Cypress公司提供的开发套件开发USB2.0高速串行接口可以在很大程度上节省学习时间,加快开发速度。所开发的高速串行接口具有可靠性高、抗干扰性强、连接简单,便于数据传输和处理等优点,因而具有良好的应用前景和很大的实用价值。

参考文献:

[1] 栗兆剑,高岳,白力。基于Visual C++.NET的照度信号串口通信[J].微计算机信息, 2004,20-8:66-67,32。

[2] 马明建。数据采集与处理技术[M].西安交通大学出版社。2005(3)。

[3] 龚建伟,熊光明。Visual C++/Turbo C串口通信编程实践[M].电子工业出版社。2004(10)

[4] 王宇明.遥感技术及其应用[M].人民交通出版社。1991(7)。



评论


相关推荐

技术专区

关闭