• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ZYNQ 的罐內(nèi)液位檢測系統(tǒng)設(shè)計

      2023-11-19 09:35:48王曉君孫梓林王雁
      電子制作 2023年21期
      關(guān)鍵詞:液位時鐘模塊

      王曉君,孫梓林,王雁

      (1.河北科技大學(xué),河北石家莊,050000;2.河北科技大學(xué),河北石家莊,050000;3.國藥集團(tuán)威奇達(dá)藥業(yè)有限公司,山西大同,037000)

      0 引言

      青霉素發(fā)酵是青霉素生產(chǎn)中的關(guān)鍵環(huán)節(jié)。在工業(yè)生產(chǎn)中,青霉素發(fā)酵反應(yīng)在罐體中進(jìn)行。由于發(fā)酵反應(yīng)影響,罐體內(nèi)液位會不斷上升,當(dāng)罐內(nèi)液位上升到一定程度時,需要向內(nèi)部添加化學(xué)物質(zhì)使其液位下降,往復(fù)進(jìn)行此過程,最終形成最初狀態(tài)的可食用青霉素[1]。由于在發(fā)酵反應(yīng)過程中,液體性質(zhì)會發(fā)生改變,并且液位會產(chǎn)生波動,現(xiàn)有的液位檢測技術(shù)不能精確地對其液位進(jìn)行測量。目前工廠以人工觀測的方式進(jìn)行液位檢測,這種方式效率低且容易判斷失準(zhǔn),對青霉素產(chǎn)量有著很大的影響。

      針對此種情況,本文基于Xilinx 的ZYNQ-7000 平臺,以視覺傳感系統(tǒng)為核心設(shè)計了一種液位檢測系統(tǒng)。ZYNQ-7000 平臺采用ARM+FPGA 的異構(gòu)架構(gòu),將雙核ARM Cortex-A9 處理系統(tǒng)(PS)和Artix-7 可編程邏輯(PL)結(jié)合在一起。系統(tǒng)采用軟硬協(xié)同的方法,在PL 端搭建視覺傳感系統(tǒng)的硬件環(huán)境,對圖像數(shù)據(jù)進(jìn)行采集與緩存。在PS 端對圖像數(shù)據(jù)進(jìn)行算法處理,實時采集液位高度,并實現(xiàn)視頻傳輸與圖像存儲功能。PL 和PS 兩部分的互聯(lián)由AXI(高級外設(shè)接口)實現(xiàn),這種片內(nèi)互聯(lián)的形式大大降低了ARM 和FPGA 之間的通信開銷[2]。與傳統(tǒng)的液位檢測系統(tǒng)相比具有傳輸實時性高、靈活性高、可重構(gòu)、低功耗等優(yōu)點,能夠較好地完成罐體內(nèi)液位檢測的工作。

      1 系統(tǒng)總體設(shè)計

      系統(tǒng)設(shè)計與驗證采用依元素的EES-288 板卡作為開發(fā)平臺,該平臺采用XC7Z010CLG400-1 作為主控芯片。主芯片內(nèi)部含有集成處理器系統(tǒng)和可編程邏輯資源,在集成處理器系統(tǒng)中集成了兩顆ARM Cortex-A9 核心,同時還包含片上存儲器,外部存儲接口和一組豐富的I/O 外設(shè),并提供了SD 接口、UART 接口以及USB2.0 接口,并提供了一個Ethernet 接口,支持10/100/100M 傳輸速率,能夠?qū)崿F(xiàn)高速數(shù)據(jù)傳輸。液位檢測系統(tǒng)的圖像傳感器選用OV5640 芯片,并設(shè)計了外圍電路模塊。該傳感器具有高性能、高靈敏度和低噪聲等優(yōu)點,能較好地實現(xiàn)圖像數(shù)據(jù)的采集。

      整體系統(tǒng)由圖像采集模塊、圖像傳輸存儲模塊以及液位檢測算法處理模塊三部分構(gòu)成。在圖像采集模塊中,首先OV5640 驅(qū)動IP 核將采集到的圖像數(shù)據(jù)轉(zhuǎn)為視頻流數(shù)據(jù),將視頻流數(shù)據(jù)傳 入Video in to AXI4-stream IP 核中完成AXI-Stream 格式的數(shù)據(jù)流轉(zhuǎn)換,然后通過VDMA將AXI-Stream 格式數(shù)據(jù)流轉(zhuǎn)為AXI4 Memory Map 格式,SmartConnect IP 核將VDMA 與ZYNQ 中AXI_HP 端口相連,實現(xiàn)PS 端對PL 端的數(shù)據(jù)訪問。在圖像傳輸存儲模塊中,采用UDP 協(xié)議完成視頻實時傳輸,然后通過PS 端SD卡控制器將算法處理后的圖像數(shù)據(jù)以BMP 圖像文件格式存入Micro SD 卡中,實現(xiàn)圖像數(shù)據(jù)的存儲。液位檢測算法處理模塊對DDR3 中緩存的圖像數(shù)據(jù)進(jìn)行圖像處理,完成液位測量,并通過串口與上位機通信,實時顯示目前罐體內(nèi)部的液位高度。液位檢測系統(tǒng)總體設(shè)計如圖1 所示。

      圖1 液位檢測系統(tǒng)總體設(shè)計

      2 系統(tǒng)硬件設(shè)計

      ■2.1 OV5640 電路設(shè)計

      OV5640 電路供電設(shè)計采用RT9166A/18、RT9166A/28與RT9166A/15 作為電壓轉(zhuǎn)換芯片,將外部3.3V 電壓轉(zhuǎn)為OV5640 芯片所需的1.8V、2.8V 以及1.5V 電壓。OV5640電路板中兼容MIPI 輸出接口和DVP 輸出接口,當(dāng)選取MIPI 模式時,AVDD 與 DOVDD 分別采用2.8V 和1.8V 供電,DVDD 則由內(nèi)部穩(wěn)壓器供電。當(dāng)選取DVP 模式時,AVDD與 DOVDD 均采用2.8V 供電,DVDD 由外部1.5V 電壓供電,此時斷開電阻R3,短接R1 與R2。電路時鐘設(shè)計采用24MHz 有源晶振作為芯片基本工作時鐘的來源。OV5640電路板采用20 PIN 的插排與開發(fā)板進(jìn)行連接。OV5640 電路設(shè)計如圖2 所示。

      圖2 OV5640電路設(shè)計

      ■2.2 硬件平臺設(shè)計

      基于ZYNQ 液位檢測系統(tǒng)的PL 硬件平臺通過Xilinx 公司的Vivado 開發(fā)工具,以液位檢測系統(tǒng)總體設(shè)計為框架,進(jìn)行系統(tǒng)硬件平臺的搭建。整體硬件平臺由圖像采集、圖像數(shù)據(jù)存儲模塊兩部分組成。液位檢測系統(tǒng)硬件平臺設(shè)計如圖3 所示。

      圖3 液位檢測系統(tǒng)硬件平臺

      2.2.1 圖像采集模塊

      圖像采集模塊主要實現(xiàn)將OV5640 的圖像數(shù)據(jù)轉(zhuǎn)換為視頻流數(shù)據(jù)。由于Xilinx 公司并沒有驅(qū)動OV5640 芯片的IP 核,因此需要單獨編寫驅(qū)動程序,形成相應(yīng)的硬件電路,滿足攝像頭的時序要求[3]。本次設(shè)計中自定義OV5640 驅(qū)動IP 核如圖4 所示。

      圖4 自定義OV5640 驅(qū)動IP 核

      OV5640 驅(qū)動IP 核將OV5640 采集到的圖像數(shù)據(jù)轉(zhuǎn)為了符合Video in to AXI-Stream IP 核輸入端的數(shù)據(jù)格式。本次設(shè)計OV5640 選取DVP 接口,IP 核在輸入端接收OV5640 發(fā)來的VSYNC(場同步信號)、HREF(行同步信號)、PCLK(數(shù)據(jù)像素時鐘)以及采集到的圖像數(shù)據(jù)。IP核內(nèi)部設(shè)計中,將OV5640 數(shù)據(jù)像素時鐘PCLK 作為整體IP 核的工作時鐘。復(fù)位信號采用ZYNQ 輸出的異步復(fù)位信號FCLK_RESET0_N,來實現(xiàn)此IP 核的復(fù)位功能。

      在IP 核輸出端口包含24 bit RGB888 數(shù)據(jù)輸出、場同步信號(RGB_vsync)、時鐘信號(RGB_clk)、時鐘使能信號(RGB_ce),以及數(shù)據(jù)有效信號(RGB_active_video)。本次設(shè)計將OV5640 攝像頭輸出的像素數(shù)據(jù)配置為RGB565 格式,由于在RGB565 格式中OV5640 在一個像素周期內(nèi)傳輸8 bit 數(shù)據(jù),所以將兩次PCLK 時鐘上升沿采集到的8 bit 圖像數(shù)據(jù)進(jìn)行拼接,并采取低位補0 的方式,將RGB565 格式轉(zhuǎn)換為RGB888 格式,通過RGB_data[23:0]端口將數(shù)據(jù)輸出。在行同步有效期間,每個RGB888 格式數(shù)據(jù)的傳輸需兩個像素時鐘周期,所以輸出數(shù)據(jù)是否有效需要RGB_ce 與RGB_active_video 的共同控制。IP 核硬件系統(tǒng)設(shè)計如圖5 所示。

      圖5 OV5640 驅(qū)動IP 核硬件系統(tǒng)設(shè)計

      總體設(shè)計由同步信號延遲模塊、8 bit 轉(zhuǎn)24 bit 模塊、場同步計數(shù)模塊三部分組成。在同步信號延遲模塊中,對同步信號進(jìn)行延遲處理。8 bit 轉(zhuǎn)24 bit 模塊在HERF 為高電平時對數(shù)據(jù)進(jìn)行采集,首先將數(shù)據(jù)從8 bit 轉(zhuǎn)為16 bit,并輸出標(biāo)志位RGB_flag 信號作為數(shù)據(jù)有效信號。場同步計數(shù)模塊對VSYNC 的上升沿計數(shù),當(dāng)計數(shù)器為10 時,給出RGB_start 信號。當(dāng)該信號到來時,各個模塊會輸出相應(yīng)的接口信號。延遲模塊將延遲后的VSYVC、HREF 信號分別在RGB_vsync、RGB_active_video端口進(jìn)行輸出,并通過RGB_active_video與計數(shù)模塊發(fā)出的RGB_start 控制RGB_ce信號。8 bit 轉(zhuǎn)24 bit 模塊將16 bit 數(shù)據(jù)轉(zhuǎn)換為24 bit 數(shù)據(jù)并連接到數(shù)據(jù)輸出端,完成輸出數(shù)據(jù)流到視頻數(shù)據(jù)流格式的轉(zhuǎn)換。

      2.2.2 圖像緩存模塊

      圖像緩存模塊采用Video in to AXI4-Stream 以及VDMA IP 核,將視頻流數(shù)據(jù)轉(zhuǎn)為AXI4 Memory Map 格式,通過AXI SmartConnect IP 核與ZYNQ 中AXI_HP 接口相連,實現(xiàn)對圖像數(shù)據(jù)的緩存。PS 端對VDMA 的配置則是由ZYNQ 上AXI_GP 接口通過AXI SmartConnect IP 核與VDMA 上的AXI4_Lite 接口相連實現(xiàn)。圖像緩存模塊如圖6 所示。

      圖6 圖像緩存模塊設(shè)計

      2.2.3 時鐘及復(fù)位設(shè)計

      ZYNQ 上采用兩個時鐘端口FCLK_CLK0 和FCLK_CLK1,時鐘頻率分別為100MHz 以及150MHz。FCLK_CLK0 為AXI_GP 接口的全局時鐘信號,并作為整體系統(tǒng)中AXI4_Lite 接口時鐘。FCLK_CLK1 為AXI_HP 接口的全局時鐘信號,并為Video in to AXI4-Stream IP 核中AXI4-Stream 時鐘(ack)接口以及VDMA 中AXI VDMA S2MM以及AXI VDMA S2MM AXIS 接口提供時鐘信號。

      系統(tǒng)復(fù)位設(shè)計采用兩個Processor System Reset IP核用來控制同域的AXI 接口復(fù)位以及AXI_Lite 接口的外設(shè)復(fù)位。攝像頭OV5640 的復(fù)位設(shè)計采用GPIO IP 核,通過AXI4_Lite 接口實現(xiàn)PS 對攝像頭復(fù)位的控制。

      3 系統(tǒng)軟件設(shè)計

      系統(tǒng)軟件設(shè)計通過Xilinx SDK軟件實現(xiàn),由初始化配置、Micro SD 卡存儲、以太網(wǎng)數(shù)據(jù)傳輸以及液位檢測算法四部分組成。首先對攝像頭以及VDMA 進(jìn)行初始化配置,其次利用UDP 協(xié)議實現(xiàn)圖像數(shù)據(jù)的網(wǎng)絡(luò)傳輸,實現(xiàn)對罐體內(nèi)的監(jiān)測。然后每間隔10 s 對圖像數(shù)據(jù)進(jìn)行液位檢測算法處理,并將處理后的圖像以BMP 圖像文件格式存入Micro SD 卡中,實現(xiàn)圖像算法處理的可視化。

      ■3.1 初始化配置

      本次設(shè)計中,攝像頭的初始化配置采用ZYNQ 自帶的I2C接口進(jìn)行配置[4],所以需對I2C 進(jìn)行初始化,并根據(jù)手冊對OV5640 的寄存器進(jìn)行配置,攝像頭輸出分辨率太大會影響著算法的處理速率,太小則會影響視頻的清晰度,經(jīng)測試將其輸出分辨率設(shè)置為524×348 時,實驗效果較好。

      VDMA IP 核數(shù)據(jù)緩存地址和VDMA的工作模式由相關(guān)寄存器負(fù)責(zé)控制[5],需要在ARM 端初始化VDMA。在程序中,首先啟動VDMA寫通道;其次分別設(shè)置3 幀緩存的起始地址;然后設(shè)定幀延遲以及一行的字節(jié)數(shù);最后設(shè)定水平方向字節(jié)數(shù)以及豎直方向行數(shù)[6]。

      ■3.2 以太網(wǎng)數(shù)據(jù)傳輸

      本次設(shè)計采用UDP 協(xié)議對視頻數(shù)據(jù)進(jìn)行傳輸,UDP 位于OSI 模型中的傳輸層,其傳輸速度比TCP 協(xié)議快,占用資源比TCP 協(xié)議少[7],很適合視頻實時傳輸這種對輕微數(shù)據(jù)差不敏感的應(yīng)用場景。以太網(wǎng)數(shù)據(jù)傳輸流程圖如圖7 所示。

      圖7 以太網(wǎng)數(shù)據(jù)傳輸流程圖

      首先通過LWIP初始化函數(shù)對開發(fā)板MAC地址、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)信息的設(shè)置;然后對UDP 的應(yīng)用函數(shù)進(jìn)行設(shè)計。在應(yīng)用函數(shù)中利用函數(shù)庫中udp_new 創(chuàng)建一個協(xié)議控制塊結(jié)構(gòu)體并利用udp_bind 函數(shù)綁定地址和端口給結(jié)構(gòu)體,最后利用udp_recv 函數(shù)綁定回調(diào)函數(shù)?;卣{(diào)函數(shù)對上位機UDP 命令進(jìn)行接收,并判斷與自定義的協(xié)議是否一致,當(dāng)上位機發(fā)送控制命令時,發(fā)出攝像頭啟動信號。圖像發(fā)送函數(shù)在收到攝像頭啟動信號后,判斷VDMA 是否寫完一幀圖像,若寫完則開始進(jìn)行數(shù)據(jù)分包并為每組數(shù)據(jù)加入圖像頭發(fā)送給上位機,完成實時視頻顯示。

      ■3.3 SD 卡圖像存儲

      圖像存儲模塊將圖片數(shù)據(jù)轉(zhuǎn)化為BMP 圖像文件格式并存儲到Micro SD 卡中,實現(xiàn)了算法處理后圖像的可視化。整體程序設(shè)計分為FATFS 文件系統(tǒng)掛載與BMP 圖像存儲兩個部分。

      3.3.1 FATFS 文件系統(tǒng)掛載

      FATFS 是一個完全開源免費的FAT 文件系統(tǒng)模塊,專門為小型的嵌入式系統(tǒng)而設(shè)計。它完全用標(biāo)準(zhǔn)C 語言編寫,所以具有良好的硬件平臺獨立性,可以很方便地移植到各種嵌入式處理器中。程序首先對FATFS(文件系統(tǒng))、FIL(文件對象)以及FRESULT(文件操作結(jié)果)進(jìn)行實例化,為之后的函數(shù)調(diào)用提供相對應(yīng)的指針以及獲取返回值,之后通過f_mount 函數(shù)注冊一個工作區(qū),從而對FATFS 系統(tǒng)提供的API 函數(shù)進(jìn)行使用。

      3.3.2 BMP 圖像存儲

      BMP 是Windows 操作系統(tǒng)中的標(biāo)準(zhǔn)圖像文件格式。存儲BMP 圖像時,首先調(diào)用f_open 接口函數(shù)創(chuàng)建一個文件對象,并將f_open 函數(shù)中參數(shù)mode 設(shè)置為FA_WRITE與FA_CREATE_ALWAYS模式,來實現(xiàn)對指定對象的寫訪問。之后通過f_write 函數(shù)將讀寫指針指向的文件偏移量處,將BMP 頭文件以及圖像數(shù)據(jù)寫入文件中,完成BMP 圖像格式的存儲。

      ■3.4 液位檢測算法測試

      3.4.1 液位測量原理

      本次液位檢測采用圖像處理技術(shù)對標(biāo)桿像素數(shù)量進(jìn)行提取,由于成像平面與物體真實長度呈線性關(guān)系,通過對標(biāo)桿長度測量,可實現(xiàn)對罐內(nèi)液位的高度計算。本章將現(xiàn)場拍攝的青霉素發(fā)酵罐液位圖作為算法測試的圖片,通過對該圖像進(jìn)行算法處理,并將處理后圖像存入Micro SD 卡中,實現(xiàn)液位檢測算法的測試工作。

      3.4.2 液位檢測算法

      罐內(nèi)液位檢測系統(tǒng)最重要的是對罐內(nèi)液位圖像的處理與提取,整體液位檢測算法由圖像預(yù)處理、邊緣檢測、形態(tài)學(xué)操作、標(biāo)桿測量四個步驟組成。液位檢測算法流程圖如圖8 所示。

      圖8 液位檢測算法流程圖

      3.4.2.1 圖像預(yù)處理

      圖像預(yù)處理部分首先采用加權(quán)平均法對圖像進(jìn)行灰度化處理,之后進(jìn)行光照補償算法,該算法首先將圖像分割為24 塊區(qū)域,分別計算出每塊區(qū)域的平均灰度值,將其與整體平均灰度值相減并存入數(shù)組中,然后采用雙線性插值將數(shù)組擴(kuò)大到原圖數(shù)據(jù)長度得到光照補償矩陣。最后將原圖像數(shù)據(jù)與光照補償矩陣數(shù)據(jù)相減,完成光照補償處理。程序中可通過修改圖像分割塊數(shù),適應(yīng)不同的光照場景。

      3.4.2.2 邊緣檢測

      邊緣檢測算法采用Canny 檢測算法。Canny 算子是一類具有優(yōu)良性能的邊緣檢測算子[8],它在許多圖像處理領(lǐng)域得到廣泛應(yīng)用。程序中首先對圖像進(jìn)行高斯濾波處理,對圖像進(jìn)行降噪,其次使用Sobel 算子對圖像的梯度幅值以及方向進(jìn)行計算,之后將各點的梯度方向近似量化到0、45、90、135 四個梯度,將當(dāng)前像素的梯度強度與正負(fù)梯度方向上梯度插值點進(jìn)行比較,若當(dāng)前像素大于兩個插值點中最大值,則將該點作為邊緣點,完成非極大值抑制。然后進(jìn)行雙閾值邊緣連接,經(jīng)測試選取最小閾值為20,最大閾值為100 時,可實現(xiàn)本次環(huán)境下邊緣檢測的最優(yōu)處理。最后將標(biāo)桿附近區(qū)域進(jìn)行提取,提高后續(xù)測量的準(zhǔn)確性。

      3.4.2.3 形態(tài)學(xué)處理

      形態(tài)學(xué)處理可對標(biāo)桿位置進(jìn)行突出,提高后續(xù)檢測的準(zhǔn)確率。在程序設(shè)計中,首先對遍歷所有像素點,對圖像進(jìn)行膨脹與腐蝕算法處理,并將膨脹與腐蝕處理后的數(shù)據(jù)相減,實現(xiàn)圖像的形態(tài)學(xué)算法處理。

      3.4.2.4 標(biāo)桿測量

      標(biāo)桿測量采用霍夫變換原理實現(xiàn)對標(biāo)桿長度的檢測。程序設(shè)計中通過霍夫變換將直線從正常坐標(biāo)系轉(zhuǎn)為極坐標(biāo)系再與參數(shù)空間的坐標(biāo)點進(jìn)行轉(zhuǎn)換,然后遍歷每個像素點,找出最大投票值,其中投票值即為最長直線的像素個數(shù),并將這些像素點灰度值設(shè)為100 對直線進(jìn)行標(biāo)記,最后通過串口將直線長度發(fā)送給上位機。液位檢測算法測試如圖9 所示。

      圖9 液位檢測算法測試

      4 實驗結(jié)果分析

      液位檢測系統(tǒng)基于ZYNQ-7000 平臺,在EES-288 板卡上實現(xiàn)了視頻流的采集、傳輸、存儲以及液位的實時檢測。其中系統(tǒng)以太網(wǎng)傳輸視頻的頻率為每秒33 幀且沒有撕裂效果,實現(xiàn)了視頻實時高清顯示,液位檢測算法的測試采用攝像頭現(xiàn)場拍攝的青霉素發(fā)酵罐液位圖進(jìn)行算法檢測,根據(jù)圖14 可得,測試得到液位圖中標(biāo)桿像素點為164,液位的高度為469.1 cm,實驗結(jié)果與實際液位的高度大約存在2 cm 的誤差值,可穩(wěn)定實現(xiàn)液位的精準(zhǔn)檢測。系統(tǒng)測試如圖10 所示。

      圖10 系統(tǒng)測試結(jié)果

      整體系統(tǒng)的功耗僅有1.75 W,其中系統(tǒng)的動態(tài)消耗為1.625 W,靜態(tài)消耗僅為0.126 W,系統(tǒng)滿足低功耗的要求。

      5 結(jié)語

      本文提出了一種基于ZYNQ 的罐內(nèi)液位檢測系統(tǒng),通過軟硬結(jié)合的方式,在PL 端搭建出液位檢測的硬件系統(tǒng),在PS 端完成了軟件系統(tǒng)設(shè)計,實現(xiàn)了圖像數(shù)據(jù)的傳輸和存儲以及液位測量功能。本文設(shè)計的液位檢測系統(tǒng)可通過調(diào)整液位檢測算法的參數(shù)和閾值,以適應(yīng)不同光照下的場景,測量精度雖有限,但大幅提升了液位測量的效率以及系統(tǒng)的靈活性,為罐內(nèi)液位檢測系統(tǒng)提供了一個可行的設(shè)計方案。

      猜你喜歡
      液位時鐘模塊
      28通道收發(fā)處理模塊設(shè)計
      “選修3—3”模塊的復(fù)習(xí)備考
      別樣的“時鐘”
      古代的時鐘
      基于STM32燃?xì)鉄崴仩t液位控制系統(tǒng)設(shè)計與實現(xiàn)
      石油儲罐液位開關(guān)的應(yīng)用分析
      有趣的時鐘
      時鐘會開“花”
      選修6 第三模塊 International Relationships
      寶馬530車?yán)鋮s液液位過低報警
      田东县| 陵水| 荥阳市| 冕宁县| 南陵县| 平凉市| 资溪县| 东平县| 霞浦县| 寿宁县| 静乐县| 通山县| 科技| 梁河县| 桓仁| 武平县| 三河市| 东阳市| 犍为县| 常熟市| 平湖市| 蛟河市| 朔州市| 太谷县| 凉城县| 阳朔县| 怀远县| 红原县| 宝山区| 海晏县| 宁乡县| 沙雅县| 水城县| 达州市| 湖南省| 武隆县| 玛多县| 平谷区| 新津县| 临城县| 东安县|