引言
在大工業(yè)現(xiàn)場,常常會用到一些大型的吊車調運貨物。這些吊車往往高達十幾米甚至幾十米。通常情況下,吊車司機往往是憑借著經驗來判斷吊鉤所升的高度,或者通過地面上人員的指揮來判斷上升的位置。這樣作的缺點是精度不夠,由于憑借人的肉眼觀測,會出現(xiàn)很大的視覺偏差,同時又要求另外配置人員指揮,增加了不必要的人力資源浪費?;谝陨峡紤],本文設計出一套用于測試吊鉤上升高度的電子測試系統(tǒng)。
根據(jù)現(xiàn)場測量,吊鉤上升的速度較快,并且現(xiàn)場環(huán)境惡劣,用普通的單片機,一方面速度上跟不上,另一方面考慮到系統(tǒng)的穩(wěn)定性,所以就選擇了目前應用越來越廣泛的FPGA來設計。
1、系統(tǒng)的原理:
本系統(tǒng)是利用傳感器檢測脈沖的個數(shù),然后將計數(shù)脈沖轉換為長度單位,來實現(xiàn)對吊鉤實際高度的測量。具體過程如下:
首先由固定在主電動機上的光電碼盤采集吊鉤上升高度所轉的脈沖數(shù),該脈沖信號通過信號線送到FPGA經過處理之后開始計數(shù),然后通過FPGA來完成脈沖到高度的換算,并將吊鉤走的高度顯示出來。系統(tǒng)組成框圖如圖1所示。
FPGA主要完成的任務是:(1)設定高度、主電動機輪的直徑和滑輪組數(shù)。(2)高度測量。(3)顯示實際高度。
高度、直徑和滑輪組的設定是通過波段開關來完成的。脈沖數(shù)的輸入是通過光電碼盤采集到的脈沖直接送入的。顯示是用四位LED進行顯示的。
2、FPGA實現(xiàn)
本文采用的是ALTERA公司的EP1C6Q240C8型號的FPGA,整個體統(tǒng)采用模塊化設計的思想,將各個模塊用VHDL語言描述出來再進行連接。
2.1 參數(shù)設定模塊
該模塊是將輸入的高度、直徑轉換為十進制的高度值和單位脈沖的寬度。用于后面的計算。其中B1[11..0]和B2[11..0]是實際輸入的二進制數(shù),輸入的量分別為高度和主電動機的輪直徑,這些參數(shù)根據(jù)實際情況設定,通過波段開關手動輸入,由于本系統(tǒng)用的是12位的波段開關,所以輸入的最大整數(shù)為4095,直徑的精度可以達到毫米級,高度的精度可以達到厘米級,由于本系統(tǒng)預先設定的高度為20米,所以確定的波段開關為12位,而實際中可以根據(jù)所應用的實際現(xiàn)場來具體設定波段開關的位數(shù)。
輸入的二進制量經過該模塊轉換后變成單位脈沖的寬度(單位是十分之一毫米)和設定的高度值(單位是厘米)。
2.2 脈沖輸入模塊
由于在實際中為了減少電動機的負荷,往往用到一些動滑輪,那么所吊重物所走的實際高度與主電動機所轉的圈數(shù)存在一個倍數(shù)關系,這個系數(shù)與滑輪組的個數(shù)有關,所以實際所計的脈沖數(shù)對應于重物走的高度之間也存在一個倍數(shù)關系,該模塊的功能就是將前面輸入的脈沖寬度和設定高度,以及滑輪組數(shù)通過運算轉換成設定的主電動機所走的脈沖數(shù)。
在該模塊中,在進行脈沖寬度和設定高度向脈沖數(shù)轉換的過程中,由于FPGA不能進行浮點運算,所以要將其中的運算全部轉化為整數(shù)進行運算,在這里我們采用的是最基本的四舍五入的運算方法,即當脈沖個數(shù)的十分之一位大于五時就將設定的脈沖數(shù)加一,若計算的脈沖數(shù)小于五,則舍掉。
2.3 計數(shù)模塊
該模塊是由四個最基本的雙向加減計數(shù)器74193組成,輸出值是16位,最大可以計數(shù)到65535,通過輸入不同的端口來控制脈沖的加減運算,輸入的是設定的脈沖數(shù),是由脈沖輸入模塊輸出,是通過參數(shù)設置而得到的計數(shù)脈沖的個數(shù),實際的高度是這個設定脈沖的基礎上進行相應的加減運算的。
2.3.1 數(shù)字濾波模塊
現(xiàn)場環(huán)境要求信號線的傳輸距離較大(50米),接收到的脈沖信號嚴重畸變,如圖2上面的波形所示。
由于脈沖計數(shù)是對方波的上升沿進行識別的,信號中的毛刺造成FPGA無法準確識別脈沖的個數(shù),所以必須采用一定的濾波方法,傳統(tǒng)的濾波方法多是采用模擬電路完成的,本文是在FPGA中采用數(shù)字電路濾波,真正實現(xiàn)了片上系統(tǒng)。
濾波的原理是采用“移動窗口”的采樣方法,通過設定“窗口”的寬度可以很好地采集到方波的高低電平,將毛刺濾掉。經過濾波后的波形如圖2下面的波形所示,經過波形仿真發(fā)現(xiàn)經過濾波后波形信號明顯變好。同時,該濾波方法可以根據(jù)采集波形的寬度來設定“窗口”寬度,這樣就很好地實現(xiàn)了通用性。
2.3.2 分頻模塊
在濾波的過程中,信號的采樣頻率是很關鍵的,通常的采樣頻率是根據(jù)香農采樣定律來定的,本文是根據(jù)現(xiàn)場要求,為了提高精度,將采樣頻率設定為信號頻率的100倍。系統(tǒng)提供的晶震頻率是50M的,所需要的采樣頻率為10KHZ,所以通過兩個分頻模塊來完成50MHZ的頻率向10KHZ的頻率的轉換,本文是通過兩個分頻模塊來實現(xiàn)分頻,首先是將50MHZ的頻率分為200KHZ的頻率,然后進一步將200KHZ的分為采樣所需要的頻率10KHZ。
2.3.3 方向檢測
由于吊鉤在行進的過程中有可能向上,也可能向下,本系統(tǒng)采用了一個相位檢測系統(tǒng)來檢測吊鉤的運動方向,再根據(jù)加減計數(shù)模塊的特性來進行加減運算。如圖3所示,圖中的輸入量A,B是經過濾波電路之后的脈沖信號。輸出信號AOUT,BOUT是相位檢測的結果,傳感器送來的脈沖信號AB相位差90度,如果首先檢測到的是A相的高電平,那么AOUT輸出的是A相脈沖,BOUT則一直為高電平。反之,如果首先檢測到B相的高電平,那么BOUT輸出為B相的脈沖,AOUT則一直為高電平。將AOUT和BOUT送到計數(shù)模塊就可以完成加減計數(shù)功能了。
2.4 脈沖-高度轉換模塊
該模塊的功能是將實際計算的脈沖數(shù)轉換為對應的實際高度值輸出顯示,輸入量分別為單位脈沖寬度Cn[9..0],滑輪組的數(shù)目n[3..0]和計算的脈沖數(shù)load[15..0]。輸出的是實際高度loadToBCD[13..0],實際的高度是重物所走的高度,而計數(shù)脈沖是主電動機轉過的圈數(shù),它們之間存在一個滑輪組倍數(shù)關系的轉換,也就是:
重物所走距離=(脈沖數(shù)×單位脈沖的寬度)/滑輪組數(shù)
在運算的過程中,為了提高精度,本文同樣采用了四舍五入的算法,但是,精度的提高是建立在增加耗用FPGA中邏輯單元的基礎之上的,同時也影響了運算的速度。
2.5 整數(shù)—BCD碼轉換模塊
實際高度要送到四位LED數(shù)碼管進行顯示,由脈沖-高度轉換模塊輸出的高度數(shù)是一個整數(shù)量,需要轉換為BCD碼之后才能送七段碼驅動電路顯示。
2.6 其他模塊
2.6.1 報警高度設定模塊
在現(xiàn)場為了保證司機在操作吊鉤的過程中不會出現(xiàn)以外情況,常常設有一個報警點,當?shù)蹉^到達這個點時,蜂鳴器會發(fā)出聲音報警提示。本文設定的報警高度是1米,系統(tǒng)可以根據(jù)實際情況任意設定報警點。
2.6.2 報警高度輸出模塊
由于涉及到滑輪組,需要將設定的高度轉換為主電動機所轉的距離,再將這個距離與轉換為相應的脈沖數(shù)alarmout[15..0]輸出。
2.6.3 報警比較模塊
此模塊是將圖12所示的模塊所轉換的脈沖數(shù)與實際所計的脈沖數(shù)進行比較,如果脈沖數(shù)對應的高度到達設定的報警點,蜂鳴器發(fā)出聲音,提醒司機。
3、 結論
本文改變了傳統(tǒng)的設計方法,采用了先進的FPGA設計,很好地解決了軟件設計存在地速度慢,穩(wěn)定性差的特點。將性能好、速度高和靈活性好的FPGA引入到設計中,設計出了一套可以應用于惡劣環(huán)境的位置測量儀。
本文創(chuàng)新點: 采用了先進的FPGA設計,很好地解決了軟件設計存在地速度慢,穩(wěn)定性差的特點。設計出了一套可以應用于惡劣環(huán)境的位置測量儀。
責任編輯:gt
評論
查看更多