陳 建,于殿泓,張祖漪,柳禹樸,楊 芳
(西安理工大學(xué)機(jī)械與精密儀器工程學(xué)院,陜西 西安 710048)
隨著我國(guó)公路交通運(yùn)輸業(yè)的快速發(fā)展,運(yùn)輸車輛超限超載現(xiàn)象愈加普遍,這嚴(yán)重影響了公路橋梁的壽命,也給交通安全帶來(lái)了巨大危害[1]。車輛動(dòng)態(tài)稱重系統(tǒng)的發(fā)展不僅可有效治理車輛超限超載,并且隨著動(dòng)態(tài)稱重技術(shù)的不斷提高,將逐步取代傳統(tǒng)的人工及靜態(tài)稱重收費(fèi)模式[2-4]。目前,稱重精度差仍是制約動(dòng)態(tài)稱重系統(tǒng)發(fā)展的主要因素。影響動(dòng)態(tài)稱重精度的主要因素是測(cè)得的軸重信號(hào)中混有許多干擾信號(hào),包括車速、車輛振動(dòng)、輪胎驅(qū)動(dòng)力、路面激勵(lì)以及系統(tǒng)自身產(chǎn)生的測(cè)量干擾等[5]。因此,為了高效和精確地獲取動(dòng)態(tài)稱重的原始信號(hào),信號(hào)采集則顯得尤為重要。近年來(lái),現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片由于其內(nèi)部邏輯電路獨(dú)特的可編程性,有效降低了研發(fā)成本,被廣泛用作數(shù)據(jù)采集的控制芯片[6-8]。FPGA 片上資源不受固化模塊的占用,可被各個(gè)功能模塊調(diào)用,靈活性高。
因此,本文設(shè)計(jì)了一種基于FPGA 的WIM 壓電式車輛動(dòng)態(tài)稱重信號(hào)采集系統(tǒng),其電路部分主要由16 路電荷放大器模塊、16 路AD 采集模塊、1 個(gè)FPGA 芯片和2 個(gè)2 G 的DDR3 存儲(chǔ)芯片組成。研究中,通過(guò)時(shí)序設(shè)計(jì),可以同時(shí)控制16 路AD 采集模塊的信號(hào)采集,并將采集信號(hào)存儲(chǔ)至DDR3 中,之后通過(guò)PCIe 總線將數(shù)據(jù)傳輸至上位機(jī)系統(tǒng)。該信號(hào)采集板卡采用分辨率為16 位,采樣速率為1 MSPS 的AD 轉(zhuǎn)換器,可實(shí)現(xiàn)車輛以0 到120 km/h時(shí)速通過(guò)動(dòng)態(tài)稱重傳感器時(shí),輸出信號(hào)為0~5V 的電壓信號(hào)。
WIM 壓電式車輛動(dòng)態(tài)稱重主要是通過(guò)將動(dòng)態(tài)稱重傳感器嵌入安裝在公路路面,使傳感器的承載表面與公路路面在同一平面上,傳感器安裝示意圖如圖1 所示。
圖1 壓電式車輛動(dòng)態(tài)稱重檢測(cè)原理
WIM 壓電式車輛稱重傳感器主要由石英晶體組成,石英晶體具有壓電效應(yīng),作用在石英晶體上的應(yīng)力可使其產(chǎn)生電荷[9-11]。如圖2 所示,當(dāng)壓電表面受到正壓力或拉力時(shí),傳感器上下表面產(chǎn)生電壓差。
圖2 石英晶體受力圖分析
當(dāng)車輪在傳感器上滾動(dòng)時(shí),它將在輪胎和傳感器之間產(chǎn)生水平、垂直和橫向力,由于采用了特殊的傳感器設(shè)計(jì),僅需要測(cè)量垂直力(FZ),道路和傳感器之間的橫向和水平側(cè)向力(FX和FY)通過(guò)傳感器周圍的特殊彈性材料解耦,不會(huì)對(duì)稱重系統(tǒng)產(chǎn)生影響[12]。當(dāng)對(duì)傳感器中的石英晶體施加垂直力時(shí),壓電石英盤將產(chǎn)生與施加的垂直力FZ成比例的電荷信號(hào),電荷信號(hào)經(jīng)過(guò)電荷放大器轉(zhuǎn)換成精確的比例電壓,根據(jù)WIM 壓電式車輛稱重傳感器的計(jì)算方式即可得到車輛單軸經(jīng)過(guò)時(shí)的重量,對(duì)所有軸重量求和即可得到車輛的實(shí)際負(fù)載重量[13]。圖3 所示為車輛通過(guò)車輛碾壓石英稱重傳感器后,經(jīng)電荷放大器轉(zhuǎn)換得到的電壓信號(hào)。
圖3 壓電信號(hào)示意圖
圖3 為單軸輸出的有效波形示意圖,其中u(t)為車輪行駛通過(guò)傳感器,經(jīng)過(guò)轉(zhuǎn)換得到的電壓信號(hào);r(t)為經(jīng)驗(yàn)閾值;t1-Δt1、t2+Δt2為波形起始和結(jié)束時(shí)刻;t1、t2為閾值所截取的波形有效的起始和結(jié)束時(shí)刻。
通過(guò)經(jīng)驗(yàn)閾值,得到有效波形的起始和結(jié)束時(shí)間信息,對(duì)有效波形做如式(1)的計(jì)算,得到單軸的軸重信息。
式中:W為軸重;V為車速;L為傳感器寬度;S為波形的面積,由t1-Δt1時(shí)刻到t2+Δt2時(shí)刻的波形做面積積分所得;C為標(biāo)定常數(shù)。
汽車的總重量等于汽車各個(gè)軸的重量之和,即:
式中:W_SUM 為車輛總重量,n為車輛的軸數(shù),Wi為單個(gè)軸重量。
本文所研究的動(dòng)態(tài)稱重信號(hào)采集系統(tǒng)的結(jié)構(gòu)如圖4 所示,主要由電荷放大器、A/D 轉(zhuǎn)換電路、FPGA控制模塊組成。
圖4 信號(hào)采集系統(tǒng)結(jié)構(gòu)框圖
電荷放大器主要由電荷放大電路和低通濾波器電路組成,將壓電傳感器輸出的電荷信號(hào)轉(zhuǎn)換為1 V~5 V 的電壓信號(hào),以滿足A/D 輸入端的輸入范圍。A/D 轉(zhuǎn)換電路主要包括由16 路單端轉(zhuǎn)差分電路和A/D 轉(zhuǎn)換器組成,單端轉(zhuǎn)差分電路主要起到增強(qiáng)信號(hào)的抗共模干擾能力。
FPGA 控制電路由FPGA 芯片、2 片DDR3 和Flash 芯片構(gòu)成。其核心芯片選用Xilinx 的Artix-7系列,型號(hào)為xc7a35tfgg484pkg;主控板的時(shí)鐘頻率為100 MHz。DDR3 芯片(型號(hào)為:MT41J128M16JT-125)和Flash 芯片(型號(hào)為:W25Q128FVSSIG)作為存儲(chǔ)芯片與FPGA 相應(yīng)管腳連接。其中,單片DDR3 芯片有2 G 的存儲(chǔ)量,用于臨時(shí)存儲(chǔ)采集的數(shù)據(jù)。Flash芯片用來(lái)存儲(chǔ)編寫的控制程序,確保FPGA 芯片啟動(dòng)時(shí),能夠正常加載芯片代碼,完成FPGA 內(nèi)部控制電路的設(shè)計(jì)。
FPGA 通過(guò)PCIe 總線實(shí)現(xiàn)與上位機(jī)系統(tǒng)的信號(hào)傳輸,上位機(jī)硬件系統(tǒng)搭載有嵌入式操作系統(tǒng),負(fù)責(zé)運(yùn)行系統(tǒng)程序,完成信號(hào)采集的控制和管理;同時(shí),搭載了自主研發(fā)的數(shù)據(jù)處理軟件,完成汽車動(dòng)態(tài)稱重多通道數(shù)據(jù)采集、分析和上報(bào)。
電荷放大器主要由電荷放大電路和二階有源低通濾波電路組成。WIM 壓電石英晶體具備壓電效應(yīng),當(dāng)車輛駛過(guò)時(shí),傳感器受到外力作用,會(huì)產(chǎn)生相應(yīng)的電荷,需要相關(guān)的處理電路將電荷信號(hào)放大,轉(zhuǎn)換為MCU可識(shí)別的模擬信號(hào)。信號(hào)采集板采用LMC660 芯片設(shè)計(jì)電荷放大電路,硬件電路如圖5 所示。
圖5 電荷放大電路
該放大電路的同向輸入端接偏置電壓VREF,反向輸入端接入傳感器信號(hào)輸出端。經(jīng)過(guò)放大電路將電荷轉(zhuǎn)化為電壓VOUT,VOUT通過(guò)反饋電容C3和電荷量Q得到,計(jì)算公式如式(3)所示:
電荷放大電路將與力有關(guān)的電荷輸入轉(zhuǎn)換并放大為與力有關(guān)的電壓輸出,電荷放大電路的范圍通常為6 000 pC/5 V。采集板采用LMC660 芯片設(shè)計(jì)的放大電路,當(dāng)壓電傳感器受到力作用時(shí),該傳感器會(huì)獲得電荷q=d×F,其中d(單位為庫(kù)侖/牛頓,C/N)為壓電傳感器晶體電荷對(duì)力的靈敏度。因此,壓電石英晶體稱重傳感器的穩(wěn)定狀態(tài)電荷靈敏度SF=Δq/ΔF(單位為pC/N)。如果將壓電稱重傳感器與帶反饋電容C3的電荷放大器配合使用,則電容C3上因電荷Δq而形成的電壓為ΔV=Δq/C3。對(duì)應(yīng)的穩(wěn)定狀態(tài)電壓靈敏度為:
則電荷放大器的輸出電壓為:
圖中電阻R4(晶體傳感器為10 GΩ 至10 TΩ)為運(yùn)算放大器提供直流反饋,并提供輸入偏置電流。對(duì)于測(cè)得的最小頻率,該電阻必須盡量小,并決定著頻率輸入范圍的最低限值。在低頻下,轉(zhuǎn)折頻率fCL約為:
將一個(gè)電阻R1(1 kΩ 至10 kΩ)與運(yùn)算放大器反向輸入端串聯(lián),有助于提高穩(wěn)定性和限制意外高輸入電壓導(dǎo)致的輸入電流。進(jìn)一步提高R1會(huì)導(dǎo)致高頻響應(yīng)下降。在高頻下,R1可以與傳感器的阻抗ZS相當(dāng)(1/ωCs,其中Cs為壓電傳感器的電容)。高頻條件下的轉(zhuǎn)折頻率fCH為:
根據(jù)本文使用的Kistler 型9195G 石英稱重傳感器的規(guī)格參數(shù),可得到具體應(yīng)用的電路參數(shù)。對(duì)于VOUT下的輸出電壓擺幅±5 V,可利式(3)計(jì)算得到C3:
選擇R4=10 GΩ 并忽略運(yùn)算放大器的輸入電阻和壓電傳感器的絕緣電阻,低頻條件下的轉(zhuǎn)折頻率為:
選擇R1=10 kΩ 時(shí),高頻條件下的轉(zhuǎn)折頻率為:
由于WIM 壓電式稱重傳感輸出的信號(hào)經(jīng)過(guò)電荷放大電路的信號(hào)轉(zhuǎn)換后,其輸出的直流響應(yīng)差,且存在一定的干擾。因此根據(jù)石英稱重傳感器的要求,針對(duì)輸出電壓為±5 V 的電荷放大電路,在對(duì)轉(zhuǎn)換后的電壓信號(hào)進(jìn)行AD 采集之前,需要設(shè)置一個(gè)具有約500 Hz 的低通截止模擬抗混疊濾波器。同時(shí)也考慮到動(dòng)態(tài)稱重信號(hào)的干擾,因此本文選用OP07D 搭建一個(gè)二階有源低通濾波器,其硬件電路如圖6 所示。
圖6 二階有源低通濾波器
傳遞函數(shù)為:H(s)=,其中自然角頻率為:ωn=,取R1=R2,則傳遞函數(shù)為:H(s)=則截止頻率ωc=,取信號(hào)的截止頻率為fc=500 Hz 時(shí),則R1=R2=390 kΩ,C1=10 nF。
A/D 轉(zhuǎn)換電路主要由電源、單端轉(zhuǎn)差分電路和A/D 轉(zhuǎn)換電路組成。在動(dòng)態(tài)稱重系統(tǒng)中,對(duì)WIM壓電式稱重傳感器,最小測(cè)量點(diǎn)指的是每個(gè)有效信號(hào)的最小采樣點(diǎn)數(shù)量。因此,在不丟失信息的情況下為逼近原始力信號(hào),車輛以最高時(shí)速120 km/h 通過(guò)傳感器時(shí),針對(duì)寬度為0.04 m 的WIM 壓電式稱重傳感器,有效波形的采樣點(diǎn)數(shù)不低于200,AD 采樣位數(shù)需大于等于12 位。故本文A/D 轉(zhuǎn)換芯片采用具有集成式基準(zhǔn)緩沖器和增強(qiáng)性能的ADS8920B,ADS8920B 為基于電荷再分配架構(gòu)的單通道、16 位、采樣率為1 MSPS 的逐次逼近型模數(shù)轉(zhuǎn)換器。支持單極差分輸入,采用增強(qiáng)型SPI 數(shù)字接口,接口SCLK 最高可達(dá)18 MHz。REF5045AIDR 是一款具有低噪聲、低漂移、高精度的電壓基準(zhǔn)芯片,故采用該電源基準(zhǔn)芯片為A/D 轉(zhuǎn)換電路提供干凈、精準(zhǔn)的參考電壓,ADS8920B 硬件電路設(shè)計(jì)如圖7所示。
圖7 ADS8920B 硬件電路
由于ADS8920B 為差分信號(hào)輸入,需要對(duì)經(jīng)過(guò)電荷放大器處理后的單極性信號(hào)轉(zhuǎn)換差分信號(hào)。因此本文選用THS4551 低噪聲精密150 MHz 全差分放大器,實(shí)現(xiàn)將電荷放大器轉(zhuǎn)換的單極性電壓信號(hào)轉(zhuǎn)換為差分信號(hào)傳輸至AD 轉(zhuǎn)換器的輸入端。硬件電路設(shè)計(jì)如圖8 所示。
FPGA 數(shù)據(jù)采集性能測(cè)試主要包括DDR3 數(shù)據(jù)讀寫測(cè)試、PCIe 數(shù)據(jù)傳輸測(cè)試和ADC 數(shù)據(jù)采集。將該采集系統(tǒng)在寧夏某公路線上,進(jìn)行實(shí)地測(cè)試,現(xiàn)場(chǎng)測(cè)試環(huán)境如圖9 所示,該測(cè)試環(huán)境為雙向單車道加單條輔道,在單車道和輔道前后均安裝有兩條交錯(cuò)的WIM 壓電式稱重傳感。
圖9 現(xiàn)場(chǎng)實(shí)驗(yàn)圖
DDR3 數(shù)據(jù)讀寫測(cè)試主要包括DDR3 讀寫測(cè)試和乒乓讀寫測(cè)試。DDR3 讀寫測(cè)試主要測(cè)試數(shù)據(jù)讀寫的準(zhǔn)確性和數(shù)據(jù)讀寫的速度,通過(guò)DDR3 讀寫控制器在頂層模塊設(shè)置一個(gè)定時(shí)器,設(shè)定一定的時(shí)間間隔,通過(guò)循環(huán)讀寫,對(duì)DDR3 進(jìn)行數(shù)據(jù)的讀寫測(cè)試,由定時(shí)器對(duì)每次讀寫測(cè)試進(jìn)行計(jì)時(shí),來(lái)檢測(cè)DDR3 的讀寫速度。同時(shí)在每次對(duì)DDR3 進(jìn)行數(shù)據(jù)讀寫測(cè)試時(shí),將寫入在DDR3 內(nèi)部的數(shù)據(jù)再進(jìn)行數(shù)據(jù)讀出,以驗(yàn)證讀取的數(shù)據(jù)與寫入的數(shù)據(jù)是否一致,統(tǒng)計(jì)讀寫總次數(shù)和錯(cuò)誤次數(shù),用于驗(yàn)證DDR3 讀寫控制器的可靠性。通過(guò)實(shí)驗(yàn)測(cè)試,在計(jì)數(shù)周期為5 ns 時(shí),寫控制器寫入1 G 的數(shù)據(jù)共使用了19 769 431 個(gè)時(shí)鐘周期,讀控制器讀取寫入的1 G 數(shù)據(jù)共使用了21 894 613 個(gè)時(shí)鐘周期,得到讀寫速度測(cè)試結(jié)果如表1 所示。從表中數(shù)據(jù)可以看出,通過(guò)對(duì)讀寫DDR3 的測(cè)試,驗(yàn)證了控制器的讀寫速度均達(dá)到設(shè)計(jì)的高速存取需求。
表1 DDR3 讀寫測(cè)試結(jié)果
乒乓讀寫測(cè)試主要實(shí)現(xiàn)A、B 兩組DDR3 的交叉讀寫操作,通過(guò)該策略來(lái)達(dá)到數(shù)據(jù)緩存單元的同時(shí)讀寫功能。緩存模塊數(shù)據(jù)讀寫的測(cè)試方法如下,在250 MHz 時(shí)鐘域產(chǎn)生128 bit 的順序數(shù)寫入ddc2ddr 異步FIFO 中,然后抓取A、B 兩組數(shù)據(jù)讀寫切換點(diǎn)的時(shí)序,通過(guò)觀察切換點(diǎn)的時(shí)序來(lái)確定交叉讀寫是否成功,另外通過(guò)模塊的輸出數(shù)據(jù)來(lái)驗(yàn)證整個(gè)緩存模塊數(shù)據(jù)讀寫的正確性。
PCIe 接口主要實(shí)現(xiàn)FPGA 數(shù)據(jù)采集卡與x86主板之間的數(shù)據(jù)通訊。相對(duì)于標(biāo)準(zhǔn)編程的數(shù)據(jù)輸入與輸出傳輸,DMA 具有大數(shù)據(jù)傳輸時(shí)高吞吐量以及占用CPU 更低的優(yōu)勢(shì)。因此系統(tǒng)設(shè)計(jì)時(shí)為了提高系統(tǒng)性能選用DMA 傳輸。根據(jù)DMA 控制器的結(jié)構(gòu),將系統(tǒng)功能模塊劃分為2 個(gè)部分:FPGA 端和PC 端。FPGA 端基于Xilinx LogiCore-PCIe IP Core,實(shí)現(xiàn)對(duì)數(shù)據(jù)時(shí)序的控制以及PCIe 事務(wù)的處理;FPGA 端的主要功能模塊包括PCIe IP Core、RX 接收引擎、TX 發(fā)送引擎、寄存器及存儲(chǔ)讀寫、接收發(fā)送的FIFO 控制模塊。PCIe IP Core 用于完成協(xié)議層的配置;TX 發(fā)送引擎用于實(shí)現(xiàn)TLP 數(shù)據(jù)包的發(fā)送和時(shí)序管理;RX 接收引擎用于實(shí)現(xiàn)TLP 數(shù)據(jù)包的接收和時(shí)序管理;寄存器及存儲(chǔ)讀寫模塊用于實(shí)現(xiàn)DMA 的操作和寄存器的管控;TX FIFO 接收外界數(shù)據(jù)并緩存,提交TX 發(fā)送引擎進(jìn)而傳輸至PC 端;RX FIFO 緩存從PC 端接收到的數(shù)據(jù)包,等待用戶調(diào)用。PC 端主要采用WinDriver 生成PCIe 驅(qū)動(dòng),并利用其自帶的API 函數(shù)實(shí)現(xiàn)數(shù)據(jù)接收與發(fā)送的應(yīng)用程序設(shè)計(jì)。
AD 采集模塊使用的ADS8920B 芯片,ADS8920B設(shè)備支持三種功能狀態(tài):RST、ACQ 和CNV。設(shè)備狀態(tài)主要由主機(jī)控制器提供的CONVST 和RST 控制信號(hào)的狀態(tài)決定。RST 為復(fù)位狀態(tài),當(dāng)主機(jī)控制器將RST 引腳拉低并持續(xù)一段時(shí)間低電平,即進(jìn)入RST 狀態(tài);退出RST 狀態(tài)需要將RST 引腳拉高,CONVST 和SCLK 保持低電平,CS 保持高電平狀態(tài),即進(jìn)入ACQ 狀態(tài);當(dāng)引腳CONVST 處于上升沿時(shí)將ACQ 狀態(tài)轉(zhuǎn)換到CNV 狀態(tài),CNV 狀態(tài)即可實(shí)現(xiàn)AD數(shù)據(jù)的轉(zhuǎn)換,SPI 在CNV 狀態(tài)下數(shù)據(jù)傳輸幀時(shí)序如圖10 所示,設(shè)備和主機(jī)控制器之間的數(shù)據(jù)傳輸幀以CS 下降沿和隨后CS 的上升沿為界。
圖10 ADC 讀取時(shí)序圖
編寫 Verilog程序,設(shè)置AD采樣頻率為800 kHz,得到汽車動(dòng)態(tài)稱重原始信號(hào)波形如圖11所示,該信號(hào)為六軸車行駛通過(guò)WIM 壓電式稱重傳感器得到的信號(hào),圖中6 個(gè)尖峰分別對(duì)應(yīng)汽車各個(gè)軸通過(guò)傳感器時(shí)采集得到的波形。該信號(hào)的頻譜圖如圖12 所示,通過(guò)原始信號(hào)的波形和頻譜圖可以看出,該信號(hào)存在一定的低頻噪聲干擾,而高頻信號(hào)的噪聲干擾在經(jīng)過(guò)二階有源低通濾波器得到了改善,主要為低于500 Hz 的噪聲干擾,而主要的噪聲干擾頻段范圍在低于50 Hz。因此,后續(xù)還需要通過(guò)軟件算法消除噪聲信號(hào)對(duì)動(dòng)態(tài)稱重的精度影響。
圖11 動(dòng)態(tài)稱重原始信號(hào)波形
圖12 動(dòng)態(tài)稱重原始信號(hào)頻譜
本文為實(shí)現(xiàn)多通道汽車動(dòng)態(tài)稱重信號(hào)采集,設(shè)計(jì)了一款基于FPGA 的壓電式車輛動(dòng)態(tài)稱重傳感器的多通道高速數(shù)據(jù)采集系統(tǒng),該系統(tǒng)可支持16 通道的信號(hào)采集,為更好地逼近動(dòng)態(tài)稱重的原始信號(hào),采用了16 位、1 MSPS 的AD 轉(zhuǎn)換器,可實(shí)現(xiàn)車輛以0到120 km/h 行駛速度通過(guò)稱重傳感器、輸出信號(hào)為0~5 V 的電壓信號(hào)采集。對(duì)于16 通道的同步數(shù)據(jù),本文選用2 個(gè)2 G 的DDR3 存儲(chǔ)芯片用于實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),并通過(guò)雙DDR3 之間的乒乓操作實(shí)現(xiàn)數(shù)據(jù)的同時(shí)傳輸和存儲(chǔ)。上位機(jī)系統(tǒng)通過(guò)高速PCIe 總線實(shí)現(xiàn)與FPGA 的數(shù)據(jù)傳輸。經(jīng)過(guò)試驗(yàn)驗(yàn)證,該信號(hào)采集系統(tǒng)能夠滿足所設(shè)計(jì)的指標(biāo)要求。