国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA和ARM的線陣CCD信號采集器的設(shè)計

2015-05-21 03:59苗長云楊彥利李現(xiàn)國
儀表技術(shù)與傳感器 2015年5期
關(guān)鍵詞:采集器電平脈沖

董 杰,苗長云,楊彥利,李現(xiàn)國

(天津工業(yè)大學(xué)電子與信息工程學(xué)院,天津 300387)

0 引言

線陣CCD以其視場大、分辨率高、價格低廉的特點,已被廣泛應(yīng)用于工業(yè)上動態(tài)、非接觸測量和監(jiān)測[1]。CCD正常工作需要特定的、精確的驅(qū)動脈沖。傳統(tǒng)的驅(qū)動方法一般采用分立式器件實現(xiàn),調(diào)試?yán)щy、靈活性差,而單片機驅(qū)動方式雖然編程較為靈活,但驅(qū)動頻率較低,往往不能滿足實際要求[2]。

由于工業(yè)現(xiàn)場環(huán)境的差異,需要調(diào)節(jié)CCD的某些特定參數(shù)。以單個FPGA作為核心處理器的CCD信號采集系統(tǒng)往往不能滿足較為復(fù)雜的人機交互需求。現(xiàn)場采集的CCD數(shù)據(jù)需要遠(yuǎn)距離傳輸,而目前大多數(shù)線陣CCD信號采集系統(tǒng)多采用USB接口傳輸,不能組成網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸[1]。

本設(shè)計研制了一種基于FPGA和ARM的線陣CCD信號采集器,實現(xiàn)了線陣CCD信號的采集、存儲、處理,以及通過以太網(wǎng)傳輸?shù)缴衔粰C的功能,具有采集信號質(zhì)量好、可靠性高、傳輸速率高、人機交互好、組網(wǎng)方便等優(yōu)點。

1 線陣CCD信號采集器的設(shè)計方案

采用以FPGA和ARM聯(lián)合作為中央處理器的方案。FPGA選用的是XC3S500E,內(nèi)部含有10476個邏輯單元、1164個可配置邏輯模塊、73Kb分布式RAM、360Kb塊RAM、20個可選擇的18*18的乘法器、232個用戶接口和92對差分接口[3]。ARM選用S3C2440芯片,這是一款低功耗、低成本、高性能的精簡指令集微處理器。通過ARM強大的片內(nèi)功能和良好的人機交互能力,可實現(xiàn)數(shù)據(jù)的高速傳輸和復(fù)雜指令的接收處理。

線陣CCD信號采集器是由線陣CCD,電平匹配模塊,模擬前端處理模塊、FPGA采集存儲模塊、ARM處理傳輸模塊和網(wǎng)絡(luò)接口組成,其組成框圖如圖1所示。

圖1 采集器組成框圖

選用TCD1209D線陣CCD為本采集器的圖像傳感器,F(xiàn)PGA采集存儲模塊為其提供驅(qū)動脈沖時序。CCD輸出信號進入模擬前端處理模塊,由此輸出的數(shù)字信號按照奇偶幀,分別寫入FPGA的2個雙口RAM中。ARM處理傳輸模塊通過由FPGA采集存儲模塊產(chǎn)生的2個中斷信號分別讀取2個雙口RAM中的數(shù)據(jù),并通過網(wǎng)絡(luò)接口將數(shù)據(jù)發(fā)送至上位機。

2 采集器硬件電路設(shè)計

2.1 線陣 CCD

采集器選用TCD1209D線陣CCD。它具有2 048個有效像素,最高驅(qū)動頻率可達(dá)20 MHz[4]。正常工作時,需要外部為其提供準(zhǔn)確、特定、嚴(yán)格的驅(qū)動時序,分別為轉(zhuǎn)移脈沖SH、相位脈沖Q1、Q2和Q2B、復(fù)位脈沖RS和鉗位脈沖CP等6路脈沖信號。

采用現(xiàn)場可編程門陣列和外部電平匹配電路驅(qū)動線陣CCD工作。通過XC3S500E芯片的通用輸入輸出管腳為CCD提供驅(qū)動脈沖信號。這種通過FPGA為線陣CCD提供驅(qū)動脈沖信號方法在硬件上連接簡單,在軟件上調(diào)試容易、靈活性高、移植方便。

2.2 電平匹配電路設(shè)計

FPGA的I/O提供的是LVCMOS電平信號,而TCD1209D需要5 V的驅(qū)動脈沖,因此需要在兩者之間加一級電平匹配。本設(shè)計選用的電平匹配芯片是74VHCT04A。

74VHCT04A是一款融合了亞微米硅柵與雙層金屬布線C2MOS技術(shù)的高速CMOS反相器。芯片提供了6路反向輸出,可將LVCMOS電平轉(zhuǎn)化為CMOS電平,恰好滿足本設(shè)計中線陣CCD所需的6路驅(qū)動信號。信號在芯片中的傳播時延典型值(1 MHz頻率下)為4.7 ns,可以滿足TCD1209D的驅(qū)動信號頻率要求。

2.3 模擬前端處理電路設(shè)計

TCD1209D輸出的是模擬圖像信號,目前一般采用集成的模擬前端處理芯片對線陣CCD的輸出信號做相應(yīng)處理。采集器所選的芯片為AD9945。

AD9945是一款應(yīng)用于電荷耦合器件的模擬信號處理芯片,最高采樣頻率為40MHz。芯片內(nèi)部主要由相關(guān)雙采樣(CDS)、10位可調(diào)增益放大器(VGA)、低噪聲黑電平鉗位電路和12位A/D轉(zhuǎn)換器組成[5]。通過為AD9945提供驅(qū)動信號可完成芯片的配置,其主要的驅(qū)動時序包括:串行數(shù)字接口(SCK、SDATA、SL),用于配置操作寄存器、控制寄存器、電平鉗位寄存器、可調(diào)增益放大寄存器和啟動寄存器;相關(guān)雙采樣信號SHP、SHD,數(shù)據(jù)鎖存信號DATACLK;暗電平鉗位脈沖CLPOB、預(yù)置零脈沖PBLK。

2.4 網(wǎng)絡(luò)接口電路設(shè)計

為了通過以太網(wǎng)實現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸,本設(shè)計選用的網(wǎng)絡(luò)接口芯片是DM9000。這是一款擁有通用處理器接口、10/100M自適應(yīng)功能和4K雙字節(jié)SRAM的以太網(wǎng)控制器芯片,支持8位、16位、32位不同方式訪問。

硬件上DM9000與S3C2440 ARM處理傳輸模塊的控制總線、地址總線、數(shù)據(jù)總線相連,同時需要連接以太網(wǎng)接頭RJ45。連接示意圖如圖2所示。

3 采集器軟件設(shè)計

3.1 FPGA軟件功能實現(xiàn)

FPGA是采集器中核心處理器之一,主要功能包含驅(qū)動線陣CCD工作,配置模擬前端處理芯片,完成數(shù)據(jù)“乒乓”存儲。

圖2 DM9000連接示意圖[6]

3.1.1 線陣CCD驅(qū)動設(shè)計

采集器中FPGA所用外部晶振頻率為50 MHz,通過內(nèi)部鎖相環(huán)將其倍頻到80 MHz。CCD所需脈沖信號全部通過80 MHz時鐘脈沖計數(shù)器CNT得到。由CNT控制時鐘脈沖信號周期得到SH脈沖信號。將80 MHz的信號八分頻為10 MHz,同時由CNT控制與SH周期關(guān)系就可得到Q1脈沖信號。將Q1反向得到Q2和Q2B。通過另一計數(shù)器控制占空比,同時由CNT控制周期,得到滿足要求的RS與CP脈沖信號。

需要注意的是,在2 048個有效像元輸出之前會有32個啞元輸出,有效像元輸出之后會有8個啞元輸出。這一現(xiàn)象不僅會影響以后相關(guān)雙采樣信號與CCD輸出信號的關(guān)系,而且會對雙口RAM存儲信號造成影響。

3.1.2 模擬前端處理芯片配置

FPGA需要為模擬前端處理芯片AD9945提供8路配置信號。

內(nèi)部寄存器配置:對80 MHz基準(zhǔn)信號8分頻可以得到SCK;當(dāng)SL為低電平時,應(yīng)對SDATA寫入配置數(shù)據(jù),配置數(shù)據(jù)可通過數(shù)據(jù)手冊得到。

采樣信號及時鐘配置:數(shù)據(jù)鎖存時鐘DATACLK必須與TCD1209D像素輸出嚴(yán)格同步,調(diào)試時可通過修改FPGA中的代碼,同時觀察示波器中CCD輸出信號完成配置。SHP、SHD占空比為3∶1,利用8分頻器中0~7的不同組合得到SHP和SHD。

CLPOB和PBLK主要用于消除CCD輸出信號中無效像元的影響,可在TCD1209D輸出32個啞元時將CLPOB和PBLK同時置為低電平,PBLK在芯片配置時是可選的。具體調(diào)試時,可根據(jù)實際情況縮短CLPOB低電平時間,或者不用PBLK功能。

需要注意的是:(1)串行數(shù)字時鐘SCK的最高頻率不得超過10 MHz[7];(2)SHP、SHD的信號頻率應(yīng)與TCD1209D輸出信號頻率相同,并且應(yīng)在輸出32個啞元之后進行相關(guān)雙采樣;(3)輸出的12位數(shù)字信號會比信號輸入時延遲10個像元輸入時間,因此往雙口RAM中寫數(shù)據(jù)的使能信號要推遲10個像元時間。

3.1.3 FPGA中數(shù)據(jù)存儲的實現(xiàn)

由于CCD輸出信號頻率較高,ARM不能對FPGA采集到的數(shù)據(jù)同時讀取。因此,本設(shè)計利用FPGA的內(nèi)部資源,開辟2塊寬度為16 bit,深度為2 048的雙口RAM,分別存儲CCD輸出信號的奇數(shù)幀與偶數(shù)幀數(shù)據(jù)。

如圖3所示,通過data_select模塊實現(xiàn)輸入數(shù)據(jù)的奇偶幀分離。其中ST為數(shù)據(jù)選擇信號,由TCD1209D的轉(zhuǎn)移脈沖SH上升沿判斷得到;datain為輸入的16位數(shù)據(jù)信號,高四位補為0;data16_1、data16_2分別為奇數(shù)幀數(shù)據(jù)、偶數(shù)幀數(shù)據(jù)。

圖3 數(shù)據(jù)選擇模塊

采用乒乓操作,對雙口RAM1存儲奇數(shù)幀數(shù)據(jù)的同時,發(fā)送中斷2信號通知ARM對存儲在雙口RAM2中的偶數(shù)幀數(shù)據(jù)進行讀取;對雙口RAM2存儲偶數(shù)幀數(shù)據(jù)的同時,發(fā)送中斷1信號通知ARM對存儲在雙口RAM1中的奇數(shù)幀數(shù)據(jù)進行讀取。

3.2 FPGA與ARM接口設(shè)計

FPGA與ARM總線接口模塊如圖4所示,arm_hclk為ARM的讀時鐘信號,arm_nOE為ARM的讀使能信號,arm_nGCS為ARM的片選信號,arm_addr_bus為ARM的11位讀地址總線。ram_clk、ram_addr分別連接雙口RAM1的讀時鐘與讀地址總線,ram_data連接雙口RAM1的數(shù)據(jù)輸出,arm_data_bus輸出奇數(shù)幀數(shù)據(jù),為之后與偶數(shù)幀數(shù)據(jù)合并做準(zhǔn)備。waddr11_generator模塊用于產(chǎn)生寫地址信號。偶數(shù)幀數(shù)據(jù)讀取模塊連接方式與奇數(shù)幀相同。

由于ARM計算地址是按8位方式,而此時連接的FPGA是作為一個16位的外部存儲器掛載到ARM的總線上[8],因此要將ARM高一位地址線依次連接到FPGA低一位地址線上,否則輸出的數(shù)據(jù)會間隔一個地址輸出,造成數(shù)據(jù)不能正確讀取。

圖4 FPGA與ARM總線接口模塊(奇數(shù)幀部分)

3.3 ARM系統(tǒng)及網(wǎng)絡(luò)功能的實現(xiàn)

為實現(xiàn)工業(yè)現(xiàn)場設(shè)備組成以太網(wǎng)進行通信的需求,本設(shè)計采用ARM嵌入式系統(tǒng)。ARM嵌入式系統(tǒng)具有良好的人機交互功能,方便擴展參數(shù)控制接口,而且容易實現(xiàn)網(wǎng)絡(luò)通信功能。設(shè)備可通過網(wǎng)絡(luò)接口完成網(wǎng)絡(luò)互聯(lián),既可組成局域網(wǎng),也可連接至互聯(lián)網(wǎng),實現(xiàn)指令和數(shù)據(jù)傳輸。

從ARM的角度看,F(xiàn)PGA是一段地址連續(xù)的16位儲存設(shè)備。在硬件上,F(xiàn)PGA掛載到了 ARM的 BANK3上,因此,在ARM的0X18000000-0X18003FFFF上分別先后存儲了CCD輸出信號的奇數(shù)幀與偶數(shù)幀數(shù)據(jù)。通過編寫ARM裸機程序完成系統(tǒng)初始化、對FPGA總線控制和數(shù)據(jù)讀取,并經(jīng)過DM9000網(wǎng)絡(luò)接口芯片,實現(xiàn)數(shù)據(jù)的以太網(wǎng)傳輸。

設(shè)計所采用的網(wǎng)絡(luò)通信協(xié)議為UDP協(xié)議,其優(yōu)點是[9]:(1)面向無連接的協(xié)議,速度快;(2)可使用廣播方式多地址發(fā)送數(shù)據(jù);(3)所占傳輸網(wǎng)絡(luò)帶寬小。

由于每一幀數(shù)據(jù)是2 048個像素,每個像素是16 bit,因此一幀數(shù)據(jù)的大小為4 kB。而UDP數(shù)據(jù)報的長度最大為1 500 B,因此必須將一幀數(shù)據(jù)拆分成4部分,即512像素點為一包,一共4包,進行數(shù)據(jù)傳輸。同時在數(shù)據(jù)最后加入2 B的數(shù)據(jù)標(biāo)識,1B用作識別是第幾幀數(shù)據(jù);1 B用作是一幀中的第幾包。需要注意的是,每一個像素是16位,在對高8位、低8位拆分并發(fā)送時,大小端格式應(yīng)與網(wǎng)絡(luò)中的格式相匹配。

4 線陣CCD信號采集系統(tǒng)及實驗

4.1 線陣CCD信號采集系統(tǒng)搭建

線陣CCD信號采集系統(tǒng)由線陣CCD信號采集器和上位機測試平臺組成。

上位機測試平臺由Ethereal軟件和基于LABVIEW編寫的上位機兩部分構(gòu)成。Ethereal是一種數(shù)據(jù)包嗅探軟件,可以完成對采集器發(fā)送的UDP數(shù)據(jù)包的抓取?;贚ABVIEW編寫的上位機主要完成將高低8位數(shù)據(jù)重組為原16位數(shù)據(jù)并顯示的任務(wù)。通過將Ethereal抓取到的數(shù)據(jù)導(dǎo)入基于LABVIEW編寫的上位機中,可以完成數(shù)據(jù)的顯示和采集器的測試。

4.2 FPGA程序仿真

XILINX ISE14.1是本采集器中FPGA的開發(fā)環(huán)境,各模塊仿真時序如下所示。圖5為FPGA輸出到反向器的信號,即TCD1209D所需的各個驅(qū)動脈沖的反向信號,其中CLK為系統(tǒng)時鐘,SH為反向轉(zhuǎn)移脈沖,Q1、Q2和Q2B是反向相位脈沖,RS是反向復(fù)位脈沖,CP是反向鉗位脈沖。圖6為AD9945所需的驅(qū)動脈沖信號。圖7為雙口RAM所需的時鐘信號,其中ST為奇數(shù)幀與偶數(shù)幀分離信號,WECLK為雙口RAM寫時鐘信號,F(xiàn)RAME_SYN為幀同步信號,WE1、WE2分別為雙口RAM1、雙口RAM2的寫使能信號,RE1、RE2為通知ARM讀取數(shù)據(jù)的中斷信號。

圖5 TCD1209D反向驅(qū)動時序

4.3 線陣CCD輸出信號實驗

為了驗證 FPGA產(chǎn)生脈沖信號是否正確,需要測試TCD1209D輸出端信號。圖8為TCD1209D輸出的模擬信號,說明了采集器提供的CCD驅(qū)動信號的正確性。

4.4 線陣CCD信號采集系統(tǒng)實驗

圖6 AD9945驅(qū)動時序

圖7 讀寫雙口RAM所需的信號

圖8 CCD信號輸出

通過對線陣CCD信號采集系統(tǒng)進行實驗,可驗證線陣CCD信號采集器能否正常工作。實驗方法是將線陣CCD部分遮擋,觀察傳輸?shù)缴衔粰C數(shù)據(jù)的顯示結(jié)果。圖9為基于LABVIEW編寫的上位機的顯示結(jié)果。通過顯示結(jié)果說明,采集器完成了信號的正確采集、存儲、處理及通過以太網(wǎng)傳輸?shù)裙δ堋?/p>

5 結(jié)束語

圖9 上位機顯示結(jié)果

本設(shè)計采用了以FPGA和ARM聯(lián)合作為中央處理器的設(shè)計方案。分析了TCD1209D線陣CCD的驅(qū)動時序要求,介紹了使用FPGA產(chǎn)生驅(qū)動的方法和過程。討論了模擬前端處理芯片AD9945的配置方法,闡述了FPGA對信號采集、存儲的實現(xiàn),F(xiàn)PGA和ARM總線接口的實現(xiàn)、ARM系統(tǒng)及網(wǎng)絡(luò)通信功能的實現(xiàn)。結(jié)合網(wǎng)絡(luò)接口技術(shù),采集器實現(xiàn)了人機交互好、組網(wǎng)方便等優(yōu)點,在工業(yè)生產(chǎn)監(jiān)測中有廣闊的應(yīng)用前景。但采集器不能通過環(huán)境的變化,自動調(diào)節(jié)某些CCD參數(shù),完成數(shù)據(jù)的自適應(yīng)采集,需要以后進一步的研究與完善。

[1]何云龍,彭章君,李眾立.基于網(wǎng)絡(luò)的線陣CCD信號采集系統(tǒng)的設(shè)計.儀表技術(shù)與傳感器,2012(4):85-87.

[2]喻依虎,孟麗婭,岳陳平.基于FPGA的高速線陣CCD的驅(qū)動設(shè)計.微型機與應(yīng)用,2013,32(10):26 -28.

[3]孫鑫明.基于以太網(wǎng)的大型鍛件多路超聲檢測器的研究:[學(xué)位論文].天津:天津工業(yè)大學(xué),2013.

[4]王慶友.圖像傳感器應(yīng)用技術(shù).北京:電子工業(yè)出版社,2003.

[5]洪冰心,鄭力新.一種基于FPGA的AD9945驅(qū)動設(shè)計.微型機與應(yīng)用,2011,30(18):23 -25.

[6]李劍雄,張策,楊軍.基于ARM和DM9000的網(wǎng)卡接口設(shè)計與實現(xiàn).微計算機信息,2008,24(14):123 -124;138.

[7]ANALOG DEVICES Corp.AD9945 DATASHEET,2013.

[8]陳曦.基于ARM9和FPGA的高速便攜式數(shù)據(jù)采集前端的設(shè)計:[學(xué)位論文].南京:南京航空航天大學(xué),2010.

[9]孫鑫明,苗長云,白華,等.基于ARM和FPGA的高擴展性超聲波檢測模塊設(shè)計與實現(xiàn).電子技術(shù)應(yīng)用,2012,38(10):26-29.

猜你喜歡
采集器電平脈沖
脈沖離散Ginzburg-Landau方程組的統(tǒng)計解及其極限行為
COVID-19大便標(biāo)本采集器的設(shè)計及應(yīng)用
三電平PWM整流器下的地鐵牽引供電系統(tǒng)探討
三相三電平PFC(VIENNA)控制策略研究
基于Cortex-M4的油氣管道微功耗數(shù)據(jù)采集器軟件設(shè)計應(yīng)用
黃芩苷脈沖片的制備
基于ZigBee的大型公共建筑能耗采集器設(shè)計
基于LabVIEW的多數(shù)據(jù)采集器自動監(jiān)控軟件設(shè)計與開發(fā)
三電平H橋逆變器差模干擾源研究
基于Hopkinson桿的窄脈沖校準(zhǔn)系統(tǒng)
汤原县| 连南| 大宁县| 政和县| 珲春市| 高邑县| 漾濞| 上饶市| 阿合奇县| 富宁县| 石狮市| 张家界市| 报价| 四平市| 开封县| 洪雅县| 自贡市| 德惠市| 牙克石市| 肇州县| 闵行区| 汾西县| 澄城县| 昂仁县| 保德县| 敦煌市| 宁南县| 三门峡市| 平定县| 凤冈县| 图们市| 越西县| 洮南市| 纳雍县| 吴忠市| 洪洞县| 莆田市| 嘉祥县| 汶川县| 赤水市| 五华县|