【正文】
數(shù)值entity fir_lw is ――實(shí)體說明 port( cp,reset:in std_logic。 ――時(shí)鐘信號(hào)和復(fù)位信號(hào) sample: in unsigned(11 downto 0)。 ――采樣信號(hào) result: out unsigned(19 downto 0) ――計(jì)算的結(jié)果 )。end fir_lw 。architecture beh of fir_lw is ――對(duì)實(shí)體的描述begin fir_main:process(cp) type shift_arr is array(16 downto 0) of unsigned (11 downto 0)。 ――定義子類型 variable tmp,old:unsigned(11 downto 0)。――定義變量tmp中保留當(dāng)前采樣值old中保留上次采樣值 variable h1,h2:unsigned(7 downto 0)。 ――中間變量 variable pro:unsigned(19 downto 0)。―― 一次計(jì)算所得的乘積數(shù)值 variable acc:unsigned(19 downto 0)。 ―― 多次乘積累加后所得數(shù)值 variable shift:shift_arr。 ――定義一個(gè)移位數(shù)組 begin if reset=39。139。 then ――執(zhí)行復(fù)位 for i in 0 to 15 loop shift(i):=000000000000。 end loop。 result=(others=39。039。)。 elsif cp39。event and cp=39。139。 then tmp:=sample。 ――保留當(dāng)前的采樣數(shù)值 h1:=rom(0)。 pro:=mul(tmp,h1)。――計(jì)算當(dāng)前采樣數(shù)值與h(0)的乘法 acc:=pro。 for i in 15 downto 0 loop ――計(jì)算其他16點(diǎn)的乘積,并累加求卷積 old:=shift(i)。 h2:=rom(i+1)。 pro:=mul(old,h2)。 acc:=acc+pro。 shift(i+1):=shift(i)。 end loop。 shift(0):=tmp。 ――將本次采樣數(shù)值送給移位寄存器,以便進(jìn)行下次計(jì)算 result=acc。 ――結(jié)果輸出 else null。 end if。 end process。end beh。程序說明:用硬件電路實(shí)現(xiàn)FIR濾波器也就是完成以下運(yùn)算Y(n)=當(dāng)計(jì)算好單位沖擊響應(yīng)h(n)后,剩下的就是進(jìn)行卷積運(yùn)算了。卷積運(yùn)算最主要的就是乘法運(yùn)算。我們知道在VHDL語言中沒有乘法指令,所以可以通過移位相加來完成乘法運(yùn)算()。下面簡(jiǎn)單的介紹一下程序設(shè)計(jì)思想。由圖看出,可以先計(jì)算當(dāng)前采樣數(shù)值sample,然后算出它與h(0)的乘積。在shift寄存器中我們?cè)诔绦蜷_始的時(shí)候就已經(jīng)全部賦值為0。在計(jì)算其他數(shù)值乘積時(shí)候,由于要進(jìn)行移位操作,所以從高位s(15)開始計(jì)算,即:s(15)*h(16)+s(14)*h(15)+…+s(0)*h(1)+sample*h(0),每計(jì)算完一次卷積運(yùn)算shift寄存器就移位一次。Sample中保存著當(dāng)前采樣值,而s(0)…s(15)中保留著以前的采樣值,s(16)中是移出丟棄的數(shù)值。圖33 FIR 運(yùn)算結(jié)果圖1圖34 FIR 運(yùn)算結(jié)果圖2由圖可以看出當(dāng)?shù)谝粋€(gè)上升沿到來的時(shí)候,采樣結(jié)果是0,第二個(gè)上升沿到來的時(shí)候采樣結(jié)果是2,此時(shí)0+2=2,當(dāng)?shù)谌齻€(gè)上升沿到來時(shí)采樣結(jié)果是4,所以2+4=6,以此類推,當(dāng)復(fù)位信號(hào)reset等于1時(shí),卷積移位寄存器清零,從新開始卷積運(yùn)算。 單片機(jī)軟件設(shè)計(jì)在開發(fā)一個(gè)單片機(jī)應(yīng)用系統(tǒng)時(shí),系統(tǒng)程序的編寫效率在很大程度上決定了目標(biāo)系統(tǒng)的研制成效。早期在研制單片機(jī)應(yīng)用系統(tǒng)時(shí),大多以匯編語言作為軟件工具。匯編語言程序能夠直接操作機(jī)器硬件,指令的執(zhí)行速度快。但由于匯編語言不是一種結(jié)構(gòu)化語言,匯編語言程序較難編寫和調(diào)試,程序本身的編寫效率較低。隨著單片機(jī)硬件性能的提高,其工作速度越來越快,目前80C51單片機(jī)的最高時(shí)鐘頻率可達(dá)40MHz以上。因此在編寫單片機(jī)應(yīng)用系統(tǒng)程序時(shí),更著重于程序本身的編寫效率。為了適應(yīng)這種要求,現(xiàn)在的單片機(jī)開發(fā)系統(tǒng),除了配備有匯編語言軟件之外,很多還配備了高級(jí)語言軟件,如C5PLM51等。在本設(shè)計(jì)中使用C51語言,它的特點(diǎn)如下面所述。 動(dòng)態(tài)稱重儀表的數(shù)學(xué)模型圖35 汽車動(dòng)態(tài)稱重儀的數(shù)學(xué)模型當(dāng)汽車以15km/h通過400mm的傳感器測(cè)量板時(shí)需要96ms。如圖417所示,在t0~t1約20ms的時(shí)間段內(nèi),由于應(yīng)變片剛一受力無法回至平衡,所以此時(shí)的峰值高于真實(shí)軸重值,這段數(shù)據(jù)在實(shí)際測(cè)量中可以不考慮。而只是對(duì)后面t1~t2的數(shù)據(jù)進(jìn)行濾波處理。由于在汽車運(yùn)動(dòng)中采集數(shù)據(jù),所以相對(duì)于靜態(tài)稱重來說干擾比較嚴(yán)重。采用模擬方法濾波時(shí),參數(shù)不能過大,否則將產(chǎn)生過大的延遲不能實(shí)現(xiàn)實(shí)時(shí)處理。這樣濾波后的信號(hào)仍然含有想當(dāng)一部分的噪聲。所以此時(shí)必須通過數(shù)字濾波消除干擾。關(guān)于FIR數(shù)字濾波的內(nèi)容請(qǐng)參考第五章。流程圖說明:程序開始的時(shí)候就采集并顯示數(shù)據(jù),如果這個(gè)數(shù)據(jù)大于門限值IAUTO則證明此時(shí)已經(jīng)有車進(jìn)入軸重臺(tái),如果不大于這個(gè)門限證明沒有車進(jìn)入軸重臺(tái),所以實(shí)時(shí)顯示當(dāng)前采集數(shù)據(jù)。判斷出車輛進(jìn)入軸重臺(tái)后,繼續(xù)采集數(shù)據(jù)并求出此時(shí)數(shù)據(jù)的最大值,我們把此值作為軸重的真實(shí)結(jié)果。但此時(shí)顯示的仍然是當(dāng)前采集值,如果當(dāng)前數(shù)值小于下車門限OAUTO,證明車輛此時(shí)已經(jīng)行駛過軸重臺(tái),這時(shí)判斷是前輪還是后輪通過軸重臺(tái),如果是前輪我們就將所求最大數(shù)值顯示出來,這就是前輪稱量的軸重值。如果是后輪就把兩次結(jié)果累加并顯示。這樣就完成了一個(gè)流程,等下一輛車進(jìn)入軸重臺(tái)時(shí)開始新的流程。圖318 單片機(jī)主程序流程圖 第4章 結(jié)論 實(shí)驗(yàn)數(shù)據(jù)分析,而此時(shí)的軸重信號(hào)為1,這將嚴(yán)重影響測(cè)量精度。濾波后我們看到情況得到了明顯的改善,這就大大改善了信噪比,提高了測(cè)量精度。 汽車動(dòng)態(tài)稱重的其主要特點(diǎn)是節(jié)省時(shí)間,效率高,使得稱重時(shí)不至于造成對(duì)正常交通的干擾。這對(duì)公路建設(shè)與管理有著極為重要的意義,同時(shí)對(duì)車輛運(yùn)輸現(xiàn)代化管理也有較大的促進(jìn)作用。在以前的車輛稱重系統(tǒng)中,處理器單純的使用單片機(jī)。由于速度有限,這樣只能實(shí)現(xiàn)簡(jiǎn)單的濾波算法。主要濾波還得需要由硬件電路實(shí)現(xiàn)。本文在總結(jié)前人的經(jīng)驗(yàn)基礎(chǔ)上,提出了一種新式動(dòng)態(tài)稱重?cái)?shù)據(jù)處理方式。采用FPGA實(shí)現(xiàn)FIR數(shù)字濾波,提高了處理速度,滿足了汽車動(dòng)態(tài)稱重的實(shí)時(shí)性的要求,并且使測(cè)量精度得到很大的提高。FPGA芯片完成數(shù)字濾波后,將數(shù)據(jù)傳送到單片機(jī),單片機(jī)輔助FPGA芯片完成控制與顯示的任務(wù)。這樣處理比簡(jiǎn)單的依靠單片機(jī)來完成設(shè)計(jì)要實(shí)用的多。當(dāng)然,本設(shè)計(jì)中還存在著許多不足之處,算法方面還有待于繼續(xù)完善,硬件部分還有很大的改善空間。本設(shè)計(jì)使用的傳感器仍然是靜態(tài)稱重中使用的傳感器,它反應(yīng)速度不是很快,如果以后出現(xiàn)合適的動(dòng)態(tài)傳感器應(yīng)用到本系統(tǒng)中,那么效果會(huì)更好。 第5章 展望和不足 以后的動(dòng)態(tài)稱重系統(tǒng)將向著小型化便攜式發(fā)展,而且稱重傳感器也向小型化反應(yīng)快速性發(fā)展(比如光線傳感器)。智能化、集成化也是此系統(tǒng)發(fā)展的必然趨勢(shì),相信在不久的將來這種稱重儀表會(huì)廣泛應(yīng)用各種稱重場(chǎng)合。現(xiàn)代社會(huì)是一個(gè)信息社會(huì),實(shí)現(xiàn)信息共享是社會(huì)發(fā)展的必然趨勢(shì)和必然要求,因此對(duì)系統(tǒng)的開放性進(jìn)行有益的研究,使高速公路動(dòng)態(tài)稱重系統(tǒng)成為ITS(intelligent transport systems智能交通系統(tǒng))的一部分實(shí)現(xiàn)稱重、計(jì)價(jià)、管理一體化,實(shí)現(xiàn)交通管理流程自動(dòng)化,有著建設(shè)性的現(xiàn)實(shí)意義。參考文獻(xiàn)[1] 許云飛 關(guān)于采取切實(shí)有效措施治理汽車、拖拉機(jī)超載運(yùn)輸?shù)慕ㄗh,山東政協(xié)八屆四次會(huì)議提案 [2] 第十屆國(guó)際計(jì)量技術(shù)聯(lián)合會(huì)力與質(zhì)量計(jì)量會(huì)議論文選,北京:中國(guó)計(jì)量出版社,1986[3] 凌杰,公路動(dòng)態(tài)稱重系統(tǒng)的設(shè)汁理論研究:[學(xué)位論文],西安:長(zhǎng)安大學(xué),2000[4] Standard specification for highway weighinmotion (WIM) systems with user requirements and test method, ASTM CommitteeE17 on VehiclePavement Systems, ASTM Designation 1994, E 941318[5] 宋爽、宋惠改、般亮,動(dòng)態(tài)稱重技術(shù)的應(yīng)用與展望,河北冶金,2000(3):55~56[6] 邊潤(rùn)強(qiáng)、陳長(zhǎng)清、吳馴一,動(dòng)靜態(tài)兩用電子軌道衡,儀器儀態(tài)學(xué)報(bào),1998,19(2):203~206[7] 楊衛(wèi)東,動(dòng)態(tài)稱重系統(tǒng)儀器軟硬件設(shè)計(jì),交通與汁算,1995,13(6):45~48[8] 楊德華,汽車檢測(cè)與診斷技術(shù),江蘇科學(xué)技術(shù)出版社,[9] 張建俊,汽車診斷與檢測(cè)技術(shù),人民交通出版社,[10] Advantech Corp.,Total Solution for PCbased Industrial Automation,1996.[11] Advantech Corp.,PCLabCard User’sManual,29致謝由衷感謝我的指導(dǎo)老師陳廣秋老師,本論文在陳老師的悉心指導(dǎo)下完成的,在畢業(yè)設(shè)計(jì)期間,陳老師淵博的知識(shí)、嚴(yán)禁的治學(xué)態(tài)度、實(shí)事求是的科研精神使我收益非淺,特別在最后撰寫論文過程中所受的鍛煉,已經(jīng)為我今后的學(xué)習(xí)、工作打下了堅(jiān)實(shí)的基礎(chǔ)?! ⊥瑫r(shí),向所有幫助過我的老師、同學(xué)們表示衷心的感謝!1