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

?

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

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

王曉君,孫梓林,王雁

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

0 引言

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

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

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

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

整體系統(tǒng)由圖像采集模塊、圖像傳輸存儲模塊以及液位檢測算法處理模塊三部分構成。在圖像采集模塊中,首先OV5640 驅動IP 核將采集到的圖像數(shù)據(jù)轉為視頻流數(shù)據(jù),將視頻流數(shù)據(jù)傳 入Video in to AXI4-stream IP 核中完成AXI-Stream 格式的數(shù)據(jù)流轉換,然后通過VDMA將AXI-Stream 格式數(shù)據(jù)流轉為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ù)進行圖像處理,完成液位測量,并通過串口與上位機通信,實時顯示目前罐體內部的液位高度。液位檢測系統(tǒng)總體設計如圖1 所示。

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

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

■2.1 OV5640 電路設計

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

圖2 OV5640電路設計

■2.2 硬件平臺設計

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

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

2.2.1 圖像采集模塊

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

圖4 自定義OV5640 驅動IP 核

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

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

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

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

2.2.2 圖像緩存模塊

圖像緩存模塊采用Video in to AXI4-Stream 以及VDMA IP 核,將視頻流數(shù)據(jù)轉為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 圖像緩存模塊設計

2.2.3 時鐘及復位設計

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)復位設計采用兩個Processor System Reset IP核用來控制同域的AXI 接口復位以及AXI_Lite 接口的外設復位。攝像頭OV5640 的復位設計采用GPIO IP 核,通過AXI4_Lite 接口實現(xiàn)PS 對攝像頭復位的控制。

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

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

■3.1 初始化配置

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

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

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

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

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

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

■3.3 SD 卡圖像存儲

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

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

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

3.3.2 BMP 圖像存儲

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

■3.4 液位檢測算法測試

3.4.1 液位測量原理

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

3.4.2 液位檢測算法

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

圖8 液位檢測算法流程圖

3.4.2.1 圖像預處理

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

3.4.2.2 邊緣檢測

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

3.4.2.3 形態(tài)學處理

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

3.4.2.4 標桿測量

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

圖9 液位檢測算法測試

4 實驗結果分析

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

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

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

5 結語

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

猜你喜歡
液位時鐘模塊
28通道收發(fā)處理模塊設計
“選修3—3”模塊的復習備考
別樣的“時鐘”
古代的時鐘
基于STM32燃氣熱水鍋爐液位控制系統(tǒng)設計與實現(xiàn)
測控技術(2018年9期)2018-11-25 07:45:00
石油儲罐液位開關的應用分析
有趣的時鐘
時鐘會開“花”
選修6 第三模塊 International Relationships
寶馬530車冷卻液液位過低報警
偃师市| 鄂托克旗| 定边县| 新密市| 册亨县| 五指山市| 泸州市| 石屏县| 许昌市| 霸州市| 电白县| 乌鲁木齐市| 新邵县| 新巴尔虎左旗| 广平县| 榕江县| 漾濞| 鄂伦春自治旗| 绥江县| 新绛县| 呼伦贝尔市| 九江市| 棋牌| 东海县| 同仁县| 新竹市| 荔波县| 巴青县| 安陆市| 武义县| 呼玛县| 湖州市| 伊宁县| 浦北县| 电白县| 佛教| 思茅市| 鹿泉市| 界首市| 普陀区| 宁河县|