欧洲成人午夜精品无码区久久_欧美日韩精品_国产麻豆天美果冻无码视频_人人妻人人澡人人爽人人精品电影

探傷

設備 超聲波探傷設備型號
探傷設備生產廠家
探傷設備案例
綜合實力
合作單位
探傷知識
招聘信息
聯系方式
當前位置:首頁 >> 探傷知識

八通道探傷設備實時報警設計

發布時間:2024/1/4 9:26:31

八通道超聲波探傷設備都具備實時報警功能,超聲波探傷波形的實時報警有進波報警和失波報警兩種方式。報警閘門分為進波閘門(A 門)和失波閘門(B 門)兩種。當探傷波形高于進波閘門,系統進行進波報警。當波形低于失波閘門時,系統進行失波報警。


為了提高系統的性能,八通道實時報警功能的算法模塊由 FPGA 實現,控制功能在應用軟件中實現。FPGA 中,一共使用了使用了 16 個 FIFO。其中八個 gate_fifo 存放閘門數據用于進行實時比較,八個 alarm_fifo 用于存儲報警后的最大波形數據幀。FPGA 中還使用了一個八位狀態寄存器 reg_state 用于指示八個通道的報警狀態,一個十六位寄存器 alarm_sel 用于存放八通道的報警方式。當開啟閘門報警功能時,FPGA 對采樣數據進行非均勻壓縮,生成一幀實時波形顯示數據。然后將波形顯示數據與 gate_fifo 中的閘門數據進行逐點比較,當出現連續若干幀數據超過報警閘門數據時,FPGA 則驅動 LED 顯示燈和蜂鳴器進行實時聲光報警,并對狀態寄存器 reg_state 的相關位進行設置。當波形數據正常后,FPGA 將記錄到的報警包絡數據存儲到alarm_fifo 中,并向 ARM 子系統發送報警中斷,請求讀取存儲的報警數據。


八通道實時報警模塊驅動程序在應用程序的系統調用下,需要完成以下功能:1.軟件同步讀取硬件實時報警的狀態并進行顯示處理。2.FPGA 發送報警中斷后,應用程序通過驅動程序從 alarm_fifo 中讀取報警通道的存儲數據并進行處理。


應用程序通過輪詢的方式,調用本驅動程序的 ioctl()方法讀取實時報警狀態。以重復頻率50Hz 為例,應用程序每隔 20ms 調用一次本驅動程序的 ioctl()方法,將 reg_state 狀態寄存器中的數據讀取到內核空間,再復制到相應的用戶空間的變量中。通過判斷 reg_state 相應的位是否置位來確定各通道的報警情況。


驅動程序中對 FPGA 的報警中斷進行注冊,并且實現了中斷服務子程序。當操作系統接收到中斷后,將調用該中斷服務子程序進行中斷處理。在中斷處理程序中,首先讀取 reg_state 確定哪幾個通道有報警數據,然后通過 insw()內核調用,將 alarm_fifo 中的已報警通道的數據讀取到內核空間。接著采用與探傷數據實時傳輸驅動程序相同的異步通信機制,向應用程序進程發送 SIGIO 信號,通知上層應用程序報警已結束,報警數據已經準備好。由于兩個驅動中都發送了相同的 SIGIO 信號,需要通過一個內核靜態變量 flag_fpga 進行區分。應用程序接收到報警中斷后,通過調用 read() 方法將各通道的報警數據從內核空間復制到用戶空間進行處理和存儲。


經過實機測試,八通道超聲波探傷儀在同時使用八個通道進行探傷時,當其中任意通道出現缺陷數據時,系統都能夠進行實時的蜂鳴器報警,并且反饋到顯示屏上,成功實現了報警功能。