文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.172527
中文引用格式: 花明浩,楊凌輝. 光電掃描測(cè)量網(wǎng)絡(luò)信號(hào)采集模塊設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(1):45-48.
英文引用格式: Hua Minghao,Yang Linghui. Design of signal acquisition module in optical scanning measurement network[J]. Application of Electronic Technique,2018,44(1):45-48.
0 引言
基于光電掃描的坐標(biāo)定位系統(tǒng)是近年來(lái)新興的一種坐標(biāo)測(cè)量方法,具有精確度高、不易受周?chē)h(huán)境干擾等優(yōu)點(diǎn),因此在日本尼康公司生產(chǎn)的室內(nèi)GPS(indoor GPS,iGPS)設(shè)備、天津大學(xué)精密測(cè)試技術(shù)及儀器實(shí)驗(yàn)室研發(fā)的工作空間測(cè)量定位系統(tǒng)(workspace Measuring and Positioning System,wMPS)中都得到了廣泛的應(yīng)用[1]。然而,基于光電掃描的定位系統(tǒng)對(duì)光脈沖信息處理要求的實(shí)時(shí)性極高,如何迅速并準(zhǔn)確地將光脈沖信息轉(zhuǎn)變?yōu)殡娒}沖信息,并從中獲得相應(yīng)光平面的信息,對(duì)保證系統(tǒng)的定位精度有著極為重要的意義。
本文基于Xilinx公司推出的Zynq-7000系列全可編程片上系統(tǒng),采用ARM+FPGA架構(gòu)的Zynq芯片,提出了一種新型的將光平面信息檢測(cè)與區(qū)分的方法,在FPGA中設(shè)計(jì)邏輯電路來(lái)實(shí)現(xiàn)對(duì)光平面的電脈沖信息捕獲與鎖存,并設(shè)計(jì)基于AXI總線協(xié)議的IP核,以此來(lái)對(duì)光平面信息進(jìn)行高效的識(shí)別、處理與傳輸。
1 wMPS基本原理及信號(hào)采集模塊架構(gòu)
1.1 wMPS工作基本原理
wMPS是一種新型的基于光電掃描的測(cè)量系統(tǒng),其組成如圖1所示。
發(fā)射站向四周發(fā)射兩束掃描光以及一束同步光,接收器接收到光脈沖的信息并將其轉(zhuǎn)變?yōu)殡娒}沖,前端處理器接收電脈沖后將其按照周期進(jìn)行區(qū)分,獲得其角度信息,并上傳給計(jì)算機(jī)最終完成坐標(biāo)解算[2]。
當(dāng)系統(tǒng)由兩臺(tái)及以上的發(fā)射站組成時(shí),則可以使用類(lèi)似經(jīng)緯儀的測(cè)量原理來(lái)測(cè)量接收器在全局坐標(biāo)系下的坐標(biāo)[3]。其測(cè)量原理如圖3所示。
當(dāng)空間內(nèi)某一處的接收器Rx:(x,y,z)能同時(shí)接收到兩發(fā)射站Tx1以及Tx2的光信息時(shí),在計(jì)算出接收器在每個(gè)發(fā)射站坐標(biāo)系下的水平角α1、α2與垂直角β1、β2后,假設(shè)已知發(fā)射站的坐標(biāo)為T(mén)x1:(0,0,0)與Tx2:(x,0,0),則可通過(guò)如下公式計(jì)算接收器的坐標(biāo):
在大型測(cè)量網(wǎng)絡(luò)中,接收器常常會(huì)同時(shí)接收多個(gè)發(fā)射站的光信息,其光脈沖示意圖如圖4所示。為了利用光平面的信息解算出接收器的全局坐標(biāo),前端處理器需要記錄每一個(gè)電脈沖上升沿和下降沿到來(lái)的時(shí)間,以脈沖寬度來(lái)區(qū)分出同步光信號(hào)與掃描光信號(hào)[4],最終精確求解接收器的全局坐標(biāo)。
1.2 前端處理器總體架構(gòu)
前端處理器是wMPS測(cè)量系統(tǒng)的最重要的組成部分,它是系統(tǒng)安全、穩(wěn)定、準(zhǔn)確運(yùn)轉(zhuǎn)的重要保證。如何將來(lái)自大尺寸空間中發(fā)射站的光信息如實(shí)地記錄與準(zhǔn)確地區(qū)分,同時(shí)具有一定的擴(kuò)容能力,對(duì)于整個(gè)wMPS系統(tǒng)是至關(guān)重要的。
基于Zynq芯片的wMPS前端處理器主要由兩部分組成:可編程邏輯(Programmable Logic,PL)部分和作為ARM控制的處理系統(tǒng)(Processing System,PS)部分。它們之間通過(guò)AXI總線進(jìn)行通信,PL部分擅長(zhǎng)做邏輯運(yùn)算以及并行性強(qiáng)的任務(wù),而PS部分擅長(zhǎng)做串行以及控制偏多的任務(wù)[5]。因此在PL中設(shè)計(jì)邏輯電路來(lái)實(shí)現(xiàn)信號(hào)的采集與存儲(chǔ),而PS 部分則負(fù)責(zé)后續(xù)對(duì)光平面脈沖的分類(lèi)與處理,使得整個(gè)前端處理器的運(yùn)算效率達(dá)到最大?;赯ynq的前端處理器架構(gòu)如圖5所示。
2 信號(hào)采集模塊邏輯設(shè)計(jì)
在PL部分中的信號(hào)采集模塊劃分如下:
(1)光平面信息檢測(cè)與存儲(chǔ)部分。當(dāng)光電接收單元接收到發(fā)射站的同步光信號(hào)和掃描光信號(hào)時(shí),將轉(zhuǎn)化為相應(yīng)的電脈沖傳遞給PL部分,PL部分通過(guò)3個(gè)狀態(tài)機(jī)將相應(yīng)脈沖的上升沿、下降沿以及對(duì)應(yīng)的時(shí)間記錄,并傳給FIFO進(jìn)行保存。
(2)光平面信息傳輸接口部分。光平面的信息存儲(chǔ)在FIFO邏輯電路中,而PL部分與PS部分的通信基于AXI總線協(xié)議,因此需要設(shè)計(jì)相應(yīng)的邏輯電路來(lái)實(shí)現(xiàn)信息的讀取與傳輸。
IP核是具有知識(shí)產(chǎn)權(quán)的集成電路芯核,是經(jīng)過(guò)反復(fù)驗(yàn)證的具有特定功能的模塊,與芯片制造工藝無(wú)關(guān),可移植到不同的半導(dǎo)體工藝中。Xilinx公司提供了許多免費(fèi)且功能強(qiáng)大的IP核給開(kāi)發(fā)人員使用。在wMPS前端處理的PL部分設(shè)計(jì)中,也采用了許多Xilinx提供的IP核,這使得開(kāi)發(fā)流程簡(jiǎn)潔許多,并且正確性與可靠性得到了保證。其中測(cè)量同步控制模塊采用Xilinx提供的基于AXI總線的GPIO模塊,計(jì)數(shù)器采用Xilinx的二進(jìn)制模塊,以及與上位機(jī)交互的通信模塊。因此關(guān)于這些部分本文不再進(jìn)行討論,主要討論信號(hào)捕捉與計(jì)時(shí)存儲(chǔ)模塊以及基于AXI總線的FIFO接口模塊的IP核設(shè)計(jì)。
2.1 信號(hào)捕捉與計(jì)時(shí)存儲(chǔ)模塊
wMPS前端處理器PL部分最核心的工作就是對(duì)來(lái)自接收器的電脈沖進(jìn)行捕捉以及鎖存時(shí)間值,其主要邏輯結(jié)構(gòu)如圖6所示。通過(guò)3個(gè)協(xié)同工作的狀態(tài)機(jī)來(lái)分別完成捕捉邊沿信號(hào)、產(chǎn)生標(biāo)志位以及鎖存時(shí)間值3個(gè)任務(wù)。
圖7所示為捕捉邊沿信號(hào)的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖。狀態(tài)機(jī)緩沖來(lái)自接收器的電脈沖信號(hào),輸出Trig與Trig_n。Trig_En初始時(shí)為0,進(jìn)入IDLE狀態(tài)。當(dāng)開(kāi)始測(cè)量時(shí),Trig_En被置1,此時(shí)若輸入為0(IN=0),則進(jìn)入REDY狀態(tài)。當(dāng)IN為1時(shí),進(jìn)入上升沿狀態(tài)(POSEDGE_IN),Trig置1。一個(gè)時(shí)鐘周期后將Trig信號(hào)再拉低,進(jìn)入等待(DELAY)狀態(tài)。等到IN為0時(shí),再進(jìn)入下降沿狀態(tài)(NEGEDGE_IN),此時(shí)將Trig_n拉高一個(gè)周期。再根據(jù)輸入IN的狀態(tài)進(jìn)行判斷進(jìn)入空閑狀態(tài)(IDLE)還是上升沿狀態(tài)(POSEDGE_IN)。
圖8所示為脈沖捕捉計(jì)時(shí)狀態(tài)機(jī)轉(zhuǎn)換圖,包含空閑(IDLE)、等待(WAIT)、捕捉(CAPT)3種狀態(tài)。當(dāng)脈沖捕捉狀態(tài)機(jī)沒(méi)有接收到PS部分指令時(shí),處于空閑狀態(tài);當(dāng)收到來(lái)自PS部分指令后,且脈沖捕捉狀態(tài)機(jī)處于非復(fù)位狀態(tài)時(shí),跳轉(zhuǎn)至等待狀態(tài);當(dāng)Trig或者Trig_n輸出有一個(gè)為1時(shí),進(jìn)行信號(hào)捕捉,將FIFO寫(xiě)使能信號(hào)置1,同時(shí)將30位計(jì)數(shù)器的時(shí)間值記錄下來(lái),TP_Capt為計(jì)數(shù)器捕捉瞬間的時(shí)間值,將其寫(xiě)入FIFO存儲(chǔ)。在工作狀態(tài)下(Trig_En=1&&Rst_n=1),每次時(shí)鐘上升沿到來(lái)時(shí),若是Trig或Trig_n中有一個(gè)信號(hào)有輸入,則捕獲信號(hào)觸發(fā)的時(shí)間值(30位),并寫(xiě)入FIFO,否則處于等待期間。
圖9為事件捕捉狀態(tài)機(jī)轉(zhuǎn)換圖,包含空閑(IDLE)、等待(WAIT)、上升沿(RIS)、延遲(DELAY)、下降沿(FAL)沿5種狀態(tài)。當(dāng)接收到PS指令后,從空閑狀態(tài)跳轉(zhuǎn)至等待狀態(tài),TP_Type保持上一狀態(tài)的信號(hào)。當(dāng)來(lái)自邊沿信號(hào)捕捉狀態(tài)機(jī)的輸出Trig為1時(shí),進(jìn)入RIS狀態(tài),TP_Type被標(biāo)記為上升沿(01)。下一時(shí)鐘周期到來(lái)時(shí)對(duì)Trig_n的信號(hào)進(jìn)行判斷,若為1,則TP_Type被標(biāo)記為下降沿(10);否則TP_Type保持住,直到Trig_n信號(hào)為1時(shí)再標(biāo)記為下降沿。而當(dāng)狀態(tài)機(jī)位于下降沿狀態(tài)時(shí),若下個(gè)周期Trig信號(hào)為1,則跳轉(zhuǎn)回上升沿狀態(tài),TP_Type改變相應(yīng)標(biāo)記;否則狀態(tài)機(jī)跳轉(zhuǎn)回等待狀態(tài),TP_Type繼續(xù)保持上一狀態(tài)。
2.2 基于AXI總線的FIFO接口模塊設(shè)計(jì)
為提高wMPS前端處理器的工作效率,本文基于AXI總線通信協(xié)議,定制FIFO的接口模塊,利用硬件邏輯控制讀取工作,縮短讀取時(shí)間來(lái)提高系統(tǒng)的工作效率。
圖10為FIFO接口模塊的內(nèi)部結(jié)構(gòu),它包括以下幾部分:FIFO讀取邏輯、AXI總線接口以及多個(gè)控制寄存器。其中AXI總線接口是Xilinx公司提供的標(biāo)準(zhǔn)通信協(xié)議,該模塊在AXI總線與用戶邏輯之間提供雙向的接口[6]。模塊中有3個(gè)寄存器,其中寄存器0用來(lái)從AXI總線上接收指令,寄存器1與寄存器2分別用來(lái)存儲(chǔ)FIFO存儲(chǔ)的數(shù)據(jù)與FIFO的標(biāo)志位數(shù)據(jù)。使用這樣的方式讀取FIFO中的數(shù)據(jù),僅需2個(gè)時(shí)鐘周期即可完成,極大地提高了前端處理器的工作效率。
3 wMPS前端處理器PL部分邏輯仿真
為了驗(yàn)證前端處理器PL部分的邏輯功能的完整性與可靠性,分別對(duì)設(shè)計(jì)的信號(hào)捕捉與計(jì)時(shí)存儲(chǔ)模塊以及基于AXI總線的FIFO接口模塊進(jìn)行仿真驗(yàn)證。
3.1 信號(hào)捕捉與計(jì)時(shí)存儲(chǔ)模塊仿真
使用Vivado提供的仿真器,輸入信號(hào)為隨機(jī)產(chǎn)生的寬度隨機(jī)的脈沖信號(hào),觀察dout中讀出的數(shù)據(jù)以及相應(yīng)的FIFO標(biāo)志位,驗(yàn)證設(shè)計(jì)的正確性。仿真波形如圖11所示。
由圖11可以清晰地觀察到,輸出的數(shù)據(jù)dout以及FIFO的標(biāo)志位FIFO_Flag均在兩個(gè)時(shí)鐘周期后跳轉(zhuǎn),即系統(tǒng)的延遲僅僅為兩個(gè)時(shí)鐘周期,滿足設(shè)計(jì)需求。
3.2 FIFO接口模塊仿真
由于FIFO接口模塊為基于AXI總線定制,若是直接仿真,不易滿足時(shí)序要求,因此使用Xilinx的ISE,利用總線仿真模型(Bus Function Model,BFM)對(duì)FIFO接口模塊進(jìn)行仿真,通過(guò)FIFO端口寫(xiě)入數(shù)據(jù), 并從寄存器中讀取并觀察輸出信號(hào)。基于BFM的FIFO接口模塊仿真如圖12所示,可以觀察到,用戶IP可以正確輸出讀FIFO時(shí)序,兩個(gè)周期就可以讀出FIFO中的內(nèi)容。因此從接收器檢測(cè)到脈沖信號(hào)到PS部分讀取電脈沖信息,僅需4個(gè)時(shí)鐘周期,延遲極小,滿足系統(tǒng)應(yīng)用要求。
4 結(jié)論
本文提出了一種新型的將電脈沖信息檢測(cè)并區(qū)分的方法,基于Zynq芯片解決了室內(nèi)定位系統(tǒng)中光脈沖信號(hào)難以區(qū)分的難題。仿真驗(yàn)證表明,該設(shè)計(jì)的時(shí)鐘延遲極小,具有很高的精度,可以滿足現(xiàn)有wMPS系統(tǒng)對(duì)測(cè)量精度的要求,同時(shí)在其余基于光電掃描的室內(nèi)定位系統(tǒng)中應(yīng)用前景極高。
參考文獻(xiàn)
[1] 端木瓊,楊學(xué)友,邾繼貴,等.基于光電掃描的三維坐標(biāo)測(cè)量系統(tǒng)[J].紅外與激光工程,2011,40(10):23-24.
[2] 張冀,楊學(xué)友.基于物聯(lián)網(wǎng)技術(shù)的wMPS發(fā)射站控制系統(tǒng)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(10):3174-3175.
[3] 李廣云.非正交系坐標(biāo)測(cè)量系統(tǒng)原理及進(jìn)展[J].測(cè)繪信息與工程,2003,28(1):2097-2098.
[4] 楊凌輝.基于光電掃描的大尺度空間坐標(biāo)測(cè)量定位技術(shù)研究[D].天津:天津大學(xué),2010.
[5] 韓德強(qiáng),楊利平,王宗俠.基于Zynq-7000的寬幅視頻處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(6):59- 62,66.
[6] 何斌,張艷輝.Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2016.