BRDF測(cè)量系統(tǒng)中高速串行接口的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞: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. 引言
在遙感領(lǐng)域中,遙感信息定量化及多角度遙感的發(fā)展都要求獲取測(cè)量目標(biāo)的BRDF(雙向反射比分布函數(shù))。這就需要一種可同時(shí)測(cè)量陽光入射輻照度和樣品反射輻亮度的測(cè)量系統(tǒng),而一個(gè)好的通訊接口的設(shè)計(jì)將會(huì)在很大程度上提高整個(gè)系統(tǒng)的工作效率,也會(huì)給使用者帶來極大方便。傳統(tǒng)的主機(jī)與外設(shè)的通訊接口一般是基于PCI總線、ISA總線或者是RS-232C串行總線。PCI總線插拔麻煩,且擴(kuò)展槽有限(一般為5~6個(gè)),ISA總線存在同樣的問題,RS-232C串行總線傳輸速度慢(56kbps),且主機(jī)的串口數(shù)目也有限。通用串行總線(Universal Serial Bus,簡稱USB)具有安裝方便、高帶寬、易擴(kuò)展等優(yōu)點(diǎn)。本文探討一下在BRDF測(cè)量系統(tǒng)中利用EZ-USB FX2實(shí)現(xiàn)高速串行通訊的軟硬件設(shè)計(jì)方法。
2. 系統(tǒng)組成
2.1 測(cè)量系統(tǒng)的特點(diǎn)
測(cè)量系統(tǒng)可以在室外自然條件下完成樣品上半球BRDF數(shù)據(jù)的測(cè)量和采集。模塊化設(shè)計(jì),使其可拆卸運(yùn)輸,組裝方便。系統(tǒng)中的光譜輻亮度計(jì)和輻照度計(jì)均可作為獨(dú)立的儀器使用,配備主動(dòng)光源后,可在室內(nèi)進(jìn)行BRDF測(cè)量。它可同時(shí)測(cè)量陽光入射輻照度和樣品反射輻亮度,顯著降低測(cè)量周期內(nèi)太陽高度角和大氣條件改變對(duì)測(cè)量結(jié)果的影響,提高了測(cè)量精度。
2.2系統(tǒng)總體框圖
圖1測(cè)量系統(tǒng)總體框圖
測(cè)量系統(tǒng)總體框圖如圖1所示。該系統(tǒng)由光學(xué)探測(cè)頭和控制箱兩個(gè)主要部分組成,光學(xué)探測(cè)頭安裝于天頂弧小平臺(tái)上,二者由電纜進(jìn)行連接。測(cè)量系統(tǒng)工作時(shí),光輻射信號(hào)經(jīng)光柵分光后,由線陣探測(cè)器接收所得到的在一定波長范圍內(nèi)的光譜輻射信號(hào),轉(zhuǎn)換成相應(yīng)大小的模擬電信號(hào)。所得到的模擬電信號(hào)通過長電纜傳輸至控制箱里,再由單片機(jī)控制進(jìn)行A/D轉(zhuǎn)換、多條曲線平均、插值等處理,完成后將多條光譜數(shù)據(jù)存入大容量的靜態(tài)存儲(chǔ)器中。最后,控制箱再通過USB2.0高速串行接口將數(shù)據(jù)傳輸至系統(tǒng)控制主機(jī)(PC機(jī))。
3. 通訊接口硬件設(shè)計(jì)方案
3.1 EZ-USB FX2 CY7C68013功能介紹
EZ-USB FX2 CY7C68013是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。該芯片的結(jié)構(gòu)圖如圖2所示。
圖2 EZ-USB FX2模塊
FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56Mbytes/s,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以處理許多USB1.1和USB2.0協(xié)議,從而減少了開發(fā)時(shí)間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。
其主要特性如下:
●帶有加強(qiáng)的8051內(nèi)核性能,可達(dá)到標(biāo)準(zhǔn)8051的5~10倍,且與標(biāo)準(zhǔn)8051的指令完全兼容;
●集成度高,芯片內(nèi)部集成有微處理器、RAM、SIE(串行接口引擎)等多個(gè)功能模塊,從而減少了多個(gè)芯片接口部分需要時(shí)序配合的麻煩;
●具有易用的軟件開發(fā)工具,該芯片開發(fā)系統(tǒng)的驅(qū)動(dòng)程序和固件的開發(fā)和調(diào)試相互獨(dú)立,可加快開發(fā)的速度。
3.2 方案選擇
FX2有三種可用的接口模式:端口模式、GPIF主控模式和Slave FIFOs模式。
在“端口”模式下,所有I/O引腳都可作為8051的通用I/O口。“GPIF主控”接口模式使用PORTB和PORTD構(gòu)成通向四個(gè)FX2端點(diǎn)FIFO( EP2 EP4?EP6 EP8)的16位數(shù)據(jù)接口。GPIF作為內(nèi)部的主控制器與FIFO直接相連,并產(chǎn)生用戶可編程的控制信號(hào)與外部接口進(jìn)行通信。同時(shí),GPIF還可以通過RDY引腳采樣外部信號(hào)并等待外部事件。在Slave FIFOs模式下,外部邏輯或外部處理器直接與FX2端點(diǎn)FIFO相連。在這種模式下,GPIF不被激活,因?yàn)橥獠窟壿嬁芍苯涌刂艶IFO。這種模式下,外部主控端既可以是異步方式,也可以是同步方式,工作時(shí)鐘可選為內(nèi)部產(chǎn)生或外部輸入,其它控制信號(hào)也可靈活地設(shè)置為高有效或低有效。為了充分利用EZ-USB FX2內(nèi)部的特殊機(jī)制來達(dá)到更高的傳輸速率,我們采用Slave FIFO模式。在整個(gè)傳輸過程中,并不要求8051對(duì)數(shù)據(jù)進(jìn)行處理,采用自動(dòng)打包的方式(置AUTOIN=1),數(shù)據(jù)經(jīng)過FIFO直接發(fā)送到PC機(jī)。圖3所示是EZ-USB FX2在Slave FIFOs模式下與外部電路連接的示意圖。
圖3 EZ-USB FX2在“Slave FIFOs模式”
4. 系統(tǒng)軟件設(shè)計(jì)
4.1 設(shè)備固件(Firmware)設(shè)計(jì)
CYPRESS公司的EZ-USB FX2開發(fā)套件提供給用戶一個(gè)固件函數(shù)庫(Ezusb.lib)和固件框架(Frame work),兩者均是基于KEIL C51進(jìn)行開發(fā)的。固件函數(shù)庫提供了一系列的函數(shù)來加速USB固件程序的開發(fā),使用時(shí)只需在程序中包含EZUSB.H和EZREGS.H兩個(gè)頭文件,并在項(xiàng)目中鏈接Ezusb.lib就可以直接使用固件庫中的各個(gè)函數(shù)了。
在使用固件框架來進(jìn)行特定的固件開發(fā)時(shí),固件框架已經(jīng)幫我們實(shí)現(xiàn)了初始化、重枚舉、源管理等功能。對(duì)用戶而言,只需要在固件架構(gòu)的預(yù)留位置處添加代碼,就可以完成特定的功能,從而開發(fā)出一個(gè)功能完善的USB外設(shè)。在TD_init()函數(shù)中添加功能代碼,完成初始化以及端點(diǎn)配置等工作,并在TD_poll()函數(shù)中添加其它代碼來完成各種輔助功能。
固件初始化代碼如下:?
void TD_Init(void)
{
CPUCS = ((CPUCS &bmCLKSPD) | bmCLKSPD1) ; //設(shè)置CPU時(shí)鐘為48Mhz
EP2CFG = OxAO; // EP2為bulk傳輸方式,方向OUT,尺寸512,4倍緩沖
EP4CFG = 0x00; // EP4 未使用
EP6CFG = OxEO; // EP6為bulk傳輸方式,方向IN,尺寸512,4倍緩沖
FIFORESET=0x80;//設(shè)置NAKALL bit
FIFORESET=0x02;
FIFORESET=0x06;//復(fù)位EP6 FIFO
FIFORESET=0x00;//清空NAKALL位,恢復(fù)至一般操作模式
EP2FIFOCFG=0x01;//設(shè)置EP2 FIFO
EP2FIFOCFG = 0x11; //設(shè)置EP2 FIFO自動(dòng)輸出模式
EP6FIFOCFG = 0x09; //設(shè)置EP6 FIFO自動(dòng)輸入模式
EP6AUTOINLENH=0x06;//EP6每次自動(dòng)傳輸1024字節(jié)
……
}
void TD_Poll(void)
{
//因?yàn)樵O(shè)置為自動(dòng)傳輸模式,所以此函數(shù)中不必添加任何代碼
}
4.2主機(jī)應(yīng)用程序設(shè)計(jì)
應(yīng)用程序設(shè)計(jì)由兩個(gè)部分組成:動(dòng)態(tài)鏈接庫和應(yīng)用程序。動(dòng)態(tài)鏈接庫負(fù)責(zé)與內(nèi)核態(tài)的USB功能驅(qū)動(dòng)程序通信并接收應(yīng)用程序的各種操作請(qǐng)求,而應(yīng)用程序則負(fù)責(zé)對(duì)所采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示、分析和存盤。應(yīng)用程序使用VC++6.0進(jìn)行開發(fā)。
EZ-USB FX2開發(fā)套件提供了主機(jī)端驅(qū)動(dòng)程序(ezusb.sys),可適用于絕大多數(shù)實(shí)際應(yīng)用。在編寫主機(jī)應(yīng)用程序的時(shí)候,只需調(diào)用相應(yīng)的WIN32 API函數(shù)向驅(qū)動(dòng)程序提交各種申請(qǐng),就能由驅(qū)動(dòng)程序來完成相應(yīng)的讀、寫數(shù)據(jù)等各種功能。
void TransferThread(PTHREAD_CONTROL threadControl)
{
threadControl->status = DeviceIoControl (threadControl->hDevice,
threadControl->Ioctl,
threadControl->InBuffer,
threadControl->InBufferSize,
threadControl->OutBuffer,
threadControl->OutBufferSize,
&threadControl->BytesReturned,
NULL);
// 調(diào)用DeviceIocontrol()函數(shù)
if (threadControl->completionEvent)
SetEvent(threadControl->completionEvent);
return;
}
應(yīng)用程序首先調(diào)用API函數(shù)Createfile()打開設(shè)備,并返回設(shè)備的句柄,然后調(diào)用DeviceIocontrol()函數(shù),通過返回的句柄把申請(qǐng)服務(wù)的代碼(IOCTL)和相應(yīng)的輸入輸出緩沖區(qū)提交給驅(qū)動(dòng)程序,由驅(qū)動(dòng)程序完成相應(yīng)的服務(wù)。
5. 結(jié)論
本文介紹了BRDF測(cè)量系統(tǒng),給出了在此系統(tǒng)中利用串行接口芯片EZ-USB FX2實(shí)現(xiàn)PC機(jī)與光譜儀之間高速串行通訊的軟硬件設(shè)計(jì)方法。經(jīng)調(diào)試運(yùn)行證明,該設(shè)計(jì)方案可以實(shí)現(xiàn)PC機(jī)與光譜儀之間的高速串行通訊。
本文作者創(chuàng)新點(diǎn):
BRDF測(cè)量系統(tǒng)對(duì)遙感信息定量化及多角度遙感的發(fā)展都有很大幫助.在此系統(tǒng)中,利用Cypress公司提供的開發(fā)套件開發(fā)USB2.0高速串行接口可以在很大程度上節(jié)省學(xué)習(xí)時(shí)間,加快開發(fā)速度。所開發(fā)的高速串行接口具有可靠性高、抗干擾性強(qiáng)、連接簡單,便于數(shù)據(jù)傳輸和處理等優(yōu)點(diǎn),因而具有良好的應(yīng)用前景和很大的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 栗兆劍,高岳,白力?;赩isual C++.NET的照度信號(hào)串口通信[J].微計(jì)算機(jī)信息, 2004,20-8:66-67,32。
[2] 馬明建。數(shù)據(jù)采集與處理技術(shù)[M].西安交通大學(xué)出版社。2005(3)。
[3] 龔建偉,熊光明。Visual C++/Turbo C串口通信編程實(shí)踐[M].電子工業(yè)出版社。2004(10)
[4] 王宇明.遙感技術(shù)及其應(yīng)用[M].人民交通出版社。1991(7)。