摘 要: 在直徑為10 cm的受光面上均勻分布有256個光電探測器,需要將這些探測器所反映的激光能量分布及變化情況的數據即時采集并傳送到上位機實時顯示。以數據采集和快速傳輸為目的,介紹了以W77E58為CPU的256點快速采集系統構成及工作原理,討論了以FT245BM為核心構成的USB接口電路進行實時傳送的電路原理及實現過程,較好地解決了對多個監測點實時快速采集和快速傳送問題。
關鍵詞: 信號采集; USB; 光電探測
一束激光投射到物體表面時,要獲得物體受光面接收到的激光能量分布及隨時間變化情況,需在對應的位置設置激光探測系統。根據被測激光束形成的光斑直徑實際情況,在受光面上等間距分布安裝256只光電探測器,即將具有一定能量的激光脈沖轉換為相對應的電壓信號,該信號能正確反映其能量大小和變化。為了使系統能實時反映光斑各點的能量大小及變化情況,要求每秒采集25幀數據,即每幀的采集時間為40 ms,每個點的平均采集時間約為150 μs。為了保證弱光信號的采樣精度,系統可使用程控放大器,適當增大弱光信號的電壓放大倍數,即每個采樣點有可能采樣兩次。當首次采樣值大于門限值則認為信號足夠強,直接將采樣數據傳送給上位機,當小于該門限值時則改變放大倍數,再采樣一次,然后將結果加上特征碼傳送給上位機。為了保證測試精度,系統使用12位高速A/D芯片進行數據轉換,因此向上位機的數據傳送以串行通信方式分兩幀進行。上位機得到數據后作相應處理,再實時動態顯示在監視器上。上位機的數據處理和圖像顯示本文不作詳細討論,只就信號采集和傳送問題作重點介紹。
1 系統多點采集電路構成及工作原理
圖1為系統構成原理電路圖,只畫出了信號采集部分,其他配屬電路均未畫出。本例設計安裝256個光電探測器。
1.1 CPU的選擇
本系統中CPU選用華邦公司的W77E58,其指令執行速度是51系列單片機的三倍。同樣用12 MHz的晶振,一個機器周期可降低到0.35 μs。如果每次采集和傳送需用40條指令實現,完成每條指令按兩個機器周期計算,要完成兩次采集傳送2 B數據,所用時間完全可以控制在40 μs以內。因此,選用W77E58可保證在每點所限時間范圍內選擇相應的探測器、啟動A/D轉換、完成兩次采集數據、把測試結果以串行通信兩幀數據的格式傳送給上位機。
1.2 多點探測器選擇的實現
多點探測器選擇電路由1片74LS574、1片CD4515、CD4067(I)和16片CD4067(Ⅱ)構成。74LS574用于鎖存8個控制信號,它們分別為A、B、C、D和A′、B′、C′、D′;4515和4067(I)的通道選通控制端并聯,4515的16個輸出通道中的某一個通道輸出為低電平“0”,這16個輸出作為16片4067(Ⅱ)的使能端;16片4067(Ⅱ)的通道選擇控制端A′、B′、C′、D′并聯,其256個輸入通道對應256套光電探測器電壓信號輸出端。
因此,控制信號A、B、C、D決定選哪一片4067(Ⅱ),而A′、B′、C′、D′決定選其對應的16個探測器中的某一個。4067(I)的16個輸入通道分別對應16片4067(Ⅱ)的16選1的輸出通道。
1.3 程控放大器和模數轉換
程控放大器選用單電源供電形式,其增益帶寬大于10 MHz,因此可設計成同相輸入運算放大器的形式。Rf1取9.1 k?贅,R2為精密電位器,其值為10 k?贅,Rf2取100 k?贅,放大倍數調整為兩檔:10倍和100倍。為了防止模擬開關對放大信號的影響,將其接成反饋電路串入模擬開關,再接到運算放大器的反相輸入端,這樣模擬開關的導通電阻就不會對放大倍數造成影響。模擬開關選用CD4053,該芯片為3個二選一開關,選其第三個開關,由W77E58的P3.0控制。當P3.0為1時,指向低放大倍數檔;當P3.0為0時,則指向高放大倍數。模數轉換器采用AD678,它是12 bit AD芯片,不需外部時鐘和外部基準電壓,速度較快,5.0 μs完成一次轉換。AD678與CPU接口簡單,只相當于CPU的兩個外部存儲單元。
2 通信電路構成及工作原理
系統要求對256個探測器進行循環采集,每40 ms掃描一遍,因此每個探測器占用時間約為156.25 μs。由于執行數據采集與控制等指令需占用一定的時間,故用于通信的時間遠小于156.25 μs。本系統中使用的是12 bit的AD芯片,所以每個點需以兩幀數據的格式傳送,設每幀10 bit,則每個點有效數據就需占用20 bit,加上必要的間隔及指令執行時間,每個探測器占用的時間遠高于傳送20 bit數據所占用的時間。若按每幀數據平均12.5 bit,每幀允許使用時間50 μs,4 μs 1 bit,則波特率高達250 kHz以上,這樣高的速率就單片機的異步串行通信而言是不可能實現的,而USB則可以勝任,因此本系統選用了由FT245BM芯片構成的USB總線接口電路,其原理如圖2所示。
2.1 USB接口芯片FT245BM
本系統的USB通信接口芯片使用FTDI(Future Technology Devices Intl.Ltd)公司生產的FT245BM。FT245BM支持USB協議與并行I/O協議之間的轉換,其主要功能是進行USB和并行I/O口之間的協議轉換。芯片一方面可從主機接收USB數據,并將其轉換為并行I/O口的數據流格式發送給外設;另一方面外設可通過并行I/O口將數據轉換為USB的數據格式傳回主機。中間的轉換工作全部由芯片自動完成,開發者無需考慮固件的設計。
FT245BM通過FIFO控制器實現與單片機的接口,借助8根數據線D0~D7及讀寫控制線(RD、WR、RXF和TXE)完成與單片機的數據交互。其內部包含兩個FIFO數據緩沖區,一個是128 B的接收緩沖區,另一個是384 B的發送緩沖區。它們均用于USB數據與并行I/O口數據的交換緩沖區。
另外,FT245BM還包括1個內置的3.3 V的穩壓器,1個6 MHz的振蕩器、8倍頻的時鐘倍頻器、USB鎖相環和EEPROM接口。FT245BM采用32腳的PQFP封裝,體積小巧,易于和外設做到一塊板上。
2.2 電路工作原理
該電路將W77E58對256個光電探測器循環測得的數據通過并行接口傳送給FT245BM,相當于將FT245BM當作一個8 bit隨機存儲器對待,將數據寫入FT245BM,然后執行下一個點的數據采集處理。只要USB接口波特率可以達到300 kHz以上,兩點采集處理間隔能在100 μs以上,系統就能可靠工作。
3 數據采樣和傳送程序示例
mov A,#00H
mov DPTR,#2000H
movx @DPTR,A
mov DPTR,#4000H
movx @DPTR,A
mov R1,#08H
djnz R1,$
movx A,@DPTR
mov 20H,A
inc DPTR
mov A,@DPTR
mov 21H,A
mov A,20H
cjnz A,#1fH,Loop2
Loop2: jc,Loop3
Ajmp Loop
Loop3: clr P3.0
mov DPTR,#2000H
movx @DPTR,A
mov DPTR,#4000H
movx @DPTR,A
mov R1,#10H
movx A,@DPTR
mov 20H,A
inc DPTR
movx A,@DPTR
mov 21H,A
Loop: mov DPTR,#6000H
mov A,20H
movx @DPTR,A
mov A,21H
movx @DPTR,A
setb P3.0
END
采用USB接口從根本上解決了多點快速數據采集系統的大數據采集量和高速度傳送的矛盾,系統要求整個采集時間為3 min左右,在這段時間里,上位機將系統通過USB接口傳送過來的約5 MB的數據經過處理和修正后即時顯示在計算機監視器上,可方便地觀察幾分鐘內激光發射時間里受光表面得到的能量分布和隨時間變化的過程。系統把數據處理及圖形顯示交給計算機,而把多點采集驅動交給單片機完成,由USB接口負責快速信息傳遞,發揮各自優勢完成。該方案對多點高速采集系統具有普遍的應用意義,如果設計合理,監測點可以達到1 000個以上。
參考文獻
[1] 張景悅,王明磊.USB接口芯片FT245BM的功能及其應用[J].世界電子元器件,2004(4):63-64.
[2] 林水明,章堅武,駱懿.基于FT245BM的簡易USB接口開發[J]. 單片機與嵌入式系統應用,2003(6):38-40.
[3] 趙霞,閆英敏,等.雙串口CPU在“某型號導彈發射車電量測試系統”中的應用[J]. 微計算機信息,2006,22(5-2):82-83.
[4] 余善恩,尚群立.RS232設備到USB設備的升級及USB設備的開發[J].計算機工程,33(3):256-258.