首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
BRDF测量系统中高速串行接口的设计
来源:本站整理  作者:佚名  2008-04-23 09:51:00



摘要:本文探讨了BRDF测量系统中利用串行接口芯片EZ-USB FX2实现PC机与光谱仪之间的高速串行通讯。给出了系统组成原理,USB接口芯片EZ-USB FX2 CY7C68013的功能介绍和基于“Slave FIFOs”方式实现高速串行通讯的软硬件设计方法。
关键词:BRDF    串口通讯       光谱仪   EZ-USB FX2

Abstract:  The paper primarily discusses high-speed serial communication between personal computer and radiometer based on serial interface EZ-USB FX2 in BRDF 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)。

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:128,918.00000 毫秒