關 閉

        新聞中心

        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)。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洪江市| 资源县| 容城县| 阿勒泰市| 沙雅县| 余庆县| 五常市| 奉节县| 台东县| 达拉特旗| 郁南县| 宝鸡市| 铁岭县| 抚松县| 集贤县| 辽阳县| 武强县| 肥乡县| 崇信县| 礼泉县| 江津市| 修水县| 汪清县| 察雅县| 吴堡县| 富源县| 邵阳县| 盘锦市| 江油市| 海门市| 长寿区| 双城市| 汉川市| 佛教| 太和县| 会同县| 马关县| 迭部县| 佛学| 乌兰浩特市| 上饶市|