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

?

基于FPGA的Camera Link接口設(shè)計(jì)

2022-09-02 01:41任麗曄
長春大學(xué)學(xué)報(bào) 2022年4期
關(guān)鍵詞:時(shí)序串口時(shí)鐘

任麗曄,汪 晨

(長春大學(xué) 電子信息工程學(xué)院,長春 130022)

隨著工業(yè)相機(jī)的發(fā)展,為了配合高速、實(shí)時(shí)數(shù)據(jù)量的處理與傳輸,其對圖像接口的要求也變得越來越高。目前,最快的一種工業(yè)相機(jī)輸出接口是Camera Link接口[1]。Camera Link協(xié)議是一種專門針對機(jī)器視覺應(yīng)用領(lǐng)域的串行通信協(xié)議,Camera Link標(biāo)準(zhǔn)中有6對差分信號線,其中4對用于并行傳輸相機(jī)控制信號,另外2對用于相機(jī)和圖像采集卡之間的串行通信[2]。

FPGA開發(fā)所使用的硬件描述語言為Verilog HDL/VHDL,其獨(dú)特的硬件結(jié)構(gòu)和并行處理優(yōu)勢可以大大加強(qiáng)傳輸系統(tǒng)的實(shí)時(shí)性[3]。本研究基于FPGA實(shí)現(xiàn)了Camera Link接口的方法,通過Camera Link接口把實(shí)時(shí)圖像傳輸?shù)紽PGA圖像采集卡中進(jìn)行數(shù)據(jù)實(shí)時(shí)處理,并實(shí)現(xiàn)采集卡和計(jì)算機(jī)之間的通信。

1 Camera Link設(shè)計(jì)方案

設(shè)計(jì)基于主控芯片Spartan-7系列的FPGA芯片。相較于之前的芯片,Spartan-7有更高邏輯與IO比,性能更強(qiáng),也降低了功耗。使用MMCM原語對時(shí)鐘進(jìn)行分頻和倍頻,分別作為圖像傳輸和通信串口的時(shí)鐘輸入。設(shè)置圖像傳輸模塊,分為4個(gè)通道進(jìn)行傳輸,像素為3 000*3 000,在每一次的行信號lval_out下,傳輸1 250個(gè)。最后由圖像的發(fā)送端接收信號后,發(fā)送兩個(gè)通道的信號。設(shè)置串口通信的模塊,由PC端發(fā)送5個(gè)不同的16進(jìn)制數(shù),通過串口返回另外5個(gè)16進(jìn)制數(shù)。最后實(shí)現(xiàn)所有的功能,其具體的流程FPGA模塊框圖如圖1所示。

圖1 FPGA模塊框圖

根據(jù)傳輸?shù)奈粩?shù),選擇使用Camera Link基本模式,即Base模式??偩€發(fā)送端將28位并行數(shù)據(jù)轉(zhuǎn)換為4對LVDS串行差分?jǐn)?shù)據(jù)傳送出去,運(yùn)用 LVDS 串行差分?jǐn)?shù)據(jù)線傳輸圖像數(shù)據(jù)輸出同步時(shí)鐘;總線接收端將串行差分?jǐn)?shù)據(jù)轉(zhuǎn)換成28位并行數(shù)據(jù),同時(shí)轉(zhuǎn)換出同步時(shí)鐘。由于采用串行差分傳輸方式,既減少傳輸線的使用量,又減少傳輸過程中的電磁干擾。

2 邏輯設(shè)計(jì)

2.1 時(shí)鐘分頻

MMCM是混合模擬時(shí)鐘管理器,有強(qiáng)大的時(shí)鐘管理功能,其具體功能分別為時(shí)鐘去歪斜、基于整數(shù)分頻器的數(shù)字效率合成、基于小數(shù)分頻器的數(shù)字頻率合成、抖動(dòng)濾波器和相移。MMCM_BASE是基本時(shí)鐘管理模塊的原語,例化原語可以實(shí)現(xiàn)MMCM的基本功能,調(diào)用全局時(shí)鐘資源[4]。

由于FPGA輸入的系統(tǒng)時(shí)鐘clk_osc為50 MHz,所以,MMCM_BASE原語的邏輯功能是以50 MHz時(shí)鐘信號為基數(shù)進(jìn)行分頻和倍頻,考慮整個(gè)模塊的時(shí)序與邏輯,對串口通信選擇使用50 MHz的時(shí)鐘輸入clk_sys,圖像傳輸選擇使用210 MHz的時(shí)鐘輸入clk_txg。圖像輸出的模塊需要2個(gè)時(shí)鐘,其中clk_txio時(shí)鐘的大小是clk_txg時(shí)鐘的7倍。像素時(shí)鐘 clk_txg首先經(jīng)過延時(shí)模塊平衡7位數(shù)據(jù)深度的延時(shí)后輸入MMCM,通過數(shù)據(jù)和時(shí)鐘解串輸出clk_txio,所以時(shí)鐘大小為1 470 MHz。這種時(shí)鐘輸入的方式可以保持其相位相同,以便于更好的分析。MMCM時(shí)鐘的時(shí)序圖如圖2所示。

圖2 MMCM時(shí)鐘時(shí)序圖

2.2 圖像傳輸

圖像的傳輸是Camera Link接口中最重要的部分。Camera Link標(biāo)準(zhǔn)使用4對LVDS線纜用來實(shí)現(xiàn)相機(jī)的控制,它們被定義為相機(jī)的輸入信號和圖像采集卡的輸出信號,完整的Camera Link接口包含著發(fā)送端和接收端[5-6]。

利用image_tx_buff模塊發(fā)送相機(jī)的有效數(shù)據(jù),共有4個(gè)通道chan_0_out、chan_1_out、chan_2_out、chan_3_out同時(shí)發(fā)送像素。當(dāng)發(fā)送新的一幀數(shù)據(jù)時(shí)拉高fval_out場信號,代表一幀數(shù)據(jù)的開始;拉低fval_out場信號即代表一幀數(shù)據(jù)的結(jié)束。lval_out行信號代表一行的有效數(shù)據(jù),一行的有效數(shù)據(jù)為1 250個(gè),為了不互相干擾,設(shè)置每行信號之間間隔50個(gè)時(shí)鐘周期。當(dāng)所有像素傳輸完后,同時(shí)拉低場信號和行信號,繼續(xù)等待500個(gè)時(shí)鐘周期后進(jìn)行下一幅圖的傳輸。為了間隔時(shí)鐘周期的正確性,分別添加計(jì)數(shù)器進(jìn)行計(jì)數(shù),每次計(jì)數(shù)完畢后對計(jì)數(shù)器進(jìn)行清零,否則會造成程序的混亂。圖像發(fā)送數(shù)據(jù)的時(shí)序圖如圖3所示,0~1 249代表的是一行中傳輸?shù)臄?shù)據(jù),下一行則從1開始。對于Camera Link標(biāo)準(zhǔn)中的數(shù)據(jù)有效信號DVAL,只有當(dāng)場信號和行信號都為高電平時(shí),拉高DVAL信號則代表數(shù)據(jù)是有效的。利用FPGA直接生成信號,輸出圖像這種方式,考慮到了FPGA的現(xiàn)場可編程特性,使用靈活方便,并且能夠降低硬件電路設(shè)計(jì)難度。

圖3 圖像數(shù)據(jù)時(shí)序圖

在Camera Link標(biāo)準(zhǔn)中,選擇使用Base基本模式對TX/RX端口的28位數(shù)據(jù)信號以抽象化的形式分為Port A、Port B、Port C。具體分配如表1所示。采用Port A和Port B的16位數(shù)據(jù)為圖像的有效數(shù)據(jù),4位Fval、Lval、Dval、Spare為圖像傳輸?shù)耐叫盘枴?/p>

表1 Camera Link接口的端口分配

當(dāng)檢測到image_tx_buff模塊中的圖像信號,image_tx模塊會對圖像信號進(jìn)行發(fā)送,Camera Link 標(biāo)準(zhǔn)中并行數(shù)據(jù)在進(jìn)行發(fā)送時(shí)是按照一定的映射方式將數(shù)據(jù)順序打亂后進(jìn)行傳輸,這個(gè)過程定義為位編碼[7]。位編碼后的數(shù)據(jù)使用OSERDESE原語可以將7bit并行數(shù)據(jù)轉(zhuǎn)換成1bit串行數(shù)據(jù)。OSERDESE原語可以實(shí)現(xiàn)的并轉(zhuǎn)串轉(zhuǎn)換比率包括3種:2∶1、3∶1和4∶1[8]。單個(gè)IOB 模塊最高可以被配置為4∶1串并轉(zhuǎn)換比率,因此,使用兩個(gè)OSERDESE串聯(lián)進(jìn)行,分組后實(shí)現(xiàn)像素?cái)?shù)據(jù)7∶1的串并轉(zhuǎn)換比率。OSERDESE數(shù)據(jù)比率轉(zhuǎn)換需要使用2個(gè)時(shí)鐘:clk_txg 和 clk_txio,分別是高度的串行時(shí)鐘和分頻并行時(shí)鐘,且2個(gè)時(shí)鐘必須相位對齊。

因此,image_tx模塊中Camera Link接口的發(fā)送端主要分為兩個(gè)部分:第一部分為輸出編碼部分,首先根據(jù)表1數(shù)據(jù)位對應(yīng)關(guān)系,將需要發(fā)送的數(shù)據(jù)映射到16bit數(shù)據(jù)輸出端TX;第二部分為串并轉(zhuǎn)換部分,主要目的是完成由16bit數(shù)據(jù)到兩組并行7位數(shù)據(jù)的轉(zhuǎn)換,同時(shí)完成兩組并行7位數(shù)據(jù)到串行差分?jǐn)?shù)據(jù)的轉(zhuǎn)換;最后通過2個(gè)通道X channel和Y channel進(jìn)行輸出。

2.3 串口通信

串口數(shù)據(jù)的接收相對于PC機(jī)而言,F(xiàn)PGA扮演從機(jī)角色,在固定的波特率下,捕獲主機(jī)發(fā)送的數(shù)據(jù),根據(jù) UART串口發(fā)送時(shí)序,串轉(zhuǎn)并得到發(fā)送的8位數(shù)據(jù)[9]。UART傳輸時(shí)序如圖4所示。從波形上可以看出起始位是低電平,停止位和空閑位都是高電平,利用這個(gè)特點(diǎn)可以準(zhǔn)確接收數(shù)據(jù),當(dāng)一個(gè)下降沿事件發(fā)生時(shí),會將進(jìn)行一次數(shù)據(jù)傳輸。

圖4 UART傳輸時(shí)序圖

通信串口pool_ic模塊主要分成3個(gè)部分:接收數(shù)據(jù)、檢查核實(shí)接收的數(shù)據(jù)是否正確、發(fā)送數(shù)據(jù)。當(dāng)接收模塊檢測到數(shù)據(jù)的下降沿時(shí)會進(jìn)入狀態(tài)機(jī),這是串口的起始位置,等起始位結(jié)束后進(jìn)入數(shù)據(jù)位的接收狀態(tài)。狀態(tài)機(jī)的作用是接收數(shù)據(jù),并將串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù)送入下個(gè)模塊進(jìn)行使用。為避免數(shù)據(jù)出錯(cuò)并滿足采樣定理,設(shè)置一個(gè)關(guān)于波特率的計(jì)數(shù)器cycle_cnt,保證在接受數(shù)據(jù)時(shí)每個(gè)數(shù)據(jù)都在波特率計(jì)數(shù)器的時(shí)間中點(diǎn)進(jìn)行采樣。當(dāng)檢查數(shù)據(jù)的模塊檢測到使能信號rx_data_valid的值為1時(shí),開始接收上一個(gè)模塊的數(shù)據(jù)。檢查傳來的數(shù)據(jù)值是否為01,直到接收到5個(gè)正確的數(shù)據(jù)就進(jìn)入下一個(gè)狀態(tài)機(jī)。將要發(fā)送的第一個(gè)數(shù)據(jù)賦值為89,并且拉高使能信號tx_data_valid,將數(shù)據(jù)傳入發(fā)送模塊。發(fā)送模塊的邏輯設(shè)計(jì)和接收模塊一樣。其具體流程框圖如圖5所示。

圖5 通信串口流程框圖

常見的串口通信波特率有2 400 bps 、9 600 bps、115 200 bps 等,發(fā)送和接收波特率必須保持一致才能正確通信,波特率的大小會影響數(shù)據(jù)的傳輸速率。本研究使用115 200 bps的波特率,代表一個(gè)數(shù)據(jù)位的時(shí)間長度是1/115 200 s。且不設(shè)置奇偶校驗(yàn)位,發(fā)送端發(fā)送數(shù)據(jù)分別是01、02、03、56、45,接收端返還的數(shù)據(jù)為89、67、55、23、aa。如果發(fā)送其他的數(shù)據(jù)和順序時(shí),F(xiàn)PGA將不返還數(shù)據(jù)。

3 仿真結(jié)果與分析

調(diào)用Modelsim仿真軟件進(jìn)行測試,其仿真結(jié)果如圖6所示。由仿真結(jié)果可以看出,時(shí)鐘分頻和倍頻的結(jié)果符合設(shè)計(jì)要求,clk_txg和clk_txio是同相位,且clk_txio是clk_txg的7倍。串口通信模塊接收到了測試文件發(fā)送的01、02、03、56、45這5個(gè)數(shù)據(jù),并且不存在缺少數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)的情況,其輸入的方式是串行輸入。并且經(jīng)過檢查后,輸出89、67、55、23、aa這五個(gè)數(shù),并沒有出現(xiàn)順序上的錯(cuò)誤。根據(jù)串口的協(xié)議,最后并不是8位數(shù)據(jù)并行發(fā)送,而是串行的形式傳輸出去,說明UART串口的收發(fā)模塊通信正常。圖像傳輸模塊由于數(shù)據(jù)過于龐大,會有折疊,但可以清晰地看出與上述邏輯相同。傳輸一行有效數(shù)據(jù)需要25 μs,每一行包含1 250個(gè)像素點(diǎn)。傳輸一幅圖所需要的時(shí)間為78 ms,在1 s中可以傳輸12幅圖。過程中均無缺少像素點(diǎn)的情況發(fā)生,每一行之間時(shí)鐘周期的間隔較大,不會產(chǎn)生干擾。且并轉(zhuǎn)串的過程中沒有發(fā)生錯(cuò)誤,說明圖像傳輸收發(fā)模塊正常。

圖6 仿真結(jié)果圖

4 結(jié)語

本研究主要根據(jù)Camera Link標(biāo)準(zhǔn)協(xié)議,基于FPGA設(shè)計(jì)了3個(gè)模塊來實(shí)現(xiàn)Camera Link接口設(shè)計(jì),分別為時(shí)鐘模塊、圖像傳輸模塊、通信串口模塊。根據(jù)所設(shè)計(jì)的方案,F(xiàn)PGA設(shè)計(jì)的圖像信號結(jié)構(gòu)簡單,實(shí)現(xiàn)方便,而且具有很強(qiáng)的可擴(kuò)展性。通過Camera Link接口和相機(jī)連接,可以從相機(jī)獲得高分辨率的實(shí)時(shí)圖像,并傳輸?shù)紽PGA中進(jìn)行實(shí)時(shí)圖像處理并輸出,實(shí)現(xiàn)采集卡和計(jì)算機(jī)之間的通信,用于相機(jī)功能參數(shù)的設(shè)置。這種簡單可靠的設(shè)計(jì)對FPGA在的Camera Link開發(fā)中具有較強(qiáng)的可操作性和應(yīng)用價(jià)值,為正在研制的實(shí)時(shí)高速圖像采集卡奠定了基礎(chǔ)。

猜你喜歡
時(shí)序串口時(shí)鐘
顧及多種弛豫模型的GNSS坐標(biāo)時(shí)序分析軟件GTSA
清明
基于GEE平臺與Sentinel-NDVI時(shí)序數(shù)據(jù)江漢平原種植模式提取
你不能把整個(gè)春天都搬到冬天來
這個(gè)時(shí)鐘一根針
MCS—51單片機(jī)中的多串口通訊技術(shù)的應(yīng)用
有趣的時(shí)鐘
時(shí)鐘會開“花”
全國計(jì)算機(jī)等級考試機(jī)房準(zhǔn)備工作探討
微機(jī)串口的測試診斷
谷城县| 神木县| 孟州市| 桂林市| 崇明县| 绩溪县| 镇巴县| 东宁县| 苍梧县| 虹口区| 罗平县| 临猗县| 祁阳县| 军事| 太仆寺旗| 晋江市| 新化县| 凌云县| 广水市| 北碚区| 峨眉山市| 丁青县| 安仁县| 廊坊市| 南投县| 淳化县| 炉霍县| 闻喜县| 宕昌县| 天台县| 渝北区| 奇台县| 乐至县| 禄丰县| 巴林右旗| 江西省| 德安县| 临海市| 大安市| 石河子市| 天峨县|