咨詢電話
ENGLISH0755-88840386發(fā)布時(shí)間:2020-11-30 11:25:02 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
傳統(tǒng)的汽車稱重方案主要是地磅、動(dòng)態(tài)稱重即WlM(Weighting—in—Motion)技術(shù)、便攜式軸重儀。這些方案的缺點(diǎn)是不言而喻的,如安裝維護(hù)困難、費(fèi)用昂貴,不能覆蓋全路段,稱重精度與車輛通行速度之間存在矛盾等。本文提出一種全新的方案— — 車載動(dòng)態(tài)稱重,該系統(tǒng)能夠?qū)崟r(shí)測(cè)量貨物重量,并通過GPS把重量數(shù)據(jù)傳回給遠(yuǎn)方的監(jiān)控平臺(tái)并且安裝維護(hù)簡(jiǎn)單、快速,對(duì)速度沒有限制,在全程對(duì)車輛進(jìn)行監(jiān)控真正實(shí)現(xiàn)動(dòng)態(tài)稱重,從源頭上杜絕超載。
1 稱重原理的概述
本方案則對(duì)車輛車架用解析法及有限元CAD方法建立車架承載力學(xué)模型,并經(jīng)對(duì)比、驗(yàn)證理論計(jì)算與實(shí)測(cè)應(yīng)力的準(zhǔn)確性(誤差達(dá)5%以內(nèi))。以車架當(dāng)秤架,選擇車架合適的測(cè)點(diǎn)的位置,進(jìn)行應(yīng)力測(cè)量,最終可按力學(xué)模型給出承載總重量數(shù)值。下面以六軸車為例來說明該原理是如何應(yīng)用的。六軸車的力學(xué)抽象示意圖如圖1所示。
在圖中標(biāo)注的測(cè)點(diǎn)位置上安裝應(yīng)變傳感器,在靜態(tài)下進(jìn)行標(biāo)定,用來確定各個(gè)傳感器的輸出在總重中所占的權(quán)重。具體做法是:把后三軸傳感器的信號(hào)合并成1路,在磨盤兩側(cè)各安裝1路傳感器,總共三路信號(hào),由下面的式子來確定各路信號(hào)對(duì)總重的權(quán)重,即各個(gè)系數(shù)。
式中A0、B0、C0是傳感器在沒有加載標(biāo)定砝碼時(shí)的初始輸出,?為誤差。Ai、Bi、Ci 為每次標(biāo)定是各個(gè)傳感器輸出值,yi為每次標(biāo)定所加的砝碼重量。通過多次標(biāo)定得到多組A 、B 、C.、Y.值,根據(jù)最小二乘法擬合求出各個(gè)系數(shù)k。主要過程如下:
3)令上面三個(gè)偏導(dǎo)數(shù)為O,聯(lián)立求解各個(gè)系數(shù):k1,、k2,、k3 。在求出上面的系數(shù)后,把系數(shù)置入儀表,當(dāng)再次加裝貨物時(shí),儀表就能根據(jù)表達(dá)式y(tǒng)j=k,△A+ △B+ △C,(AA、AB、AC為各路信號(hào)相對(duì)于零點(diǎn)的變化量)自動(dòng)計(jì)算所加載貨物的重量。
2 車載動(dòng)態(tài)稱重儀表的構(gòu)成
車載動(dòng)態(tài)稱重儀表由主處理器的最小系統(tǒng), 直變傳感器模塊,模擬數(shù)字轉(zhuǎn)換模塊,人機(jī)交互模塊,UART轉(zhuǎn)RS232接口(為上位機(jī)GPS提供接El服務(wù)),停車辨識(shí)電路構(gòu)成。其結(jié)構(gòu)示意圖如圖2所示。
整個(gè)系統(tǒng)的工作過程是:應(yīng)變傳感器將檢測(cè)到的應(yīng)力變化轉(zhuǎn)換成電信號(hào),將該信號(hào)通過電纜傳到模擬數(shù)字轉(zhuǎn)換芯片中,在主處理器的控制下,把原先的電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。通過上述原理處理后就能得到車上的貨物重量。該重量信息顯示在數(shù)碼管上,當(dāng)主處理器收到上位機(jī)GPS發(fā)來的索要數(shù)據(jù)命令后,該重量信息進(jìn)過處理后發(fā)送給GPS,再有GPS傳送到最終的監(jiān)控平臺(tái)上。
3 系統(tǒng)硬件設(shè)計(jì)
3.1主處理器的最小系統(tǒng)
STM32F103最小系統(tǒng)由STM32F103單片機(jī),晶振電路,JTAG接口和復(fù)位電路組成。該系統(tǒng)的中選用的是STM32F103一VBT6的芯片,內(nèi)置20KB SRAM 和128KB Flash,而且內(nèi)部集成了lIC,SPI,CAN,USB等資源,功能十分強(qiáng)大。供電電壓2.0—3.6V, 有睡眠,停止, 待機(jī)這些低功耗模式可選擇。采用32.768kHz和8MHz晶振,分別提供精確時(shí)鐘和工作時(shí)鐘,復(fù)位采用按鍵和上電自動(dòng)復(fù)位相結(jié)合的方式。S丁M32F103芯片的使用,提高了整個(gè)系統(tǒng)的執(zhí)行效率,增強(qiáng)了系統(tǒng)的穩(wěn)定性,降低功耗和成本。
3.2 電源模塊
卡車上的供電電壓24V,而本系統(tǒng)中各個(gè)模塊需要的電壓有5V和3.3V,因此,該系統(tǒng)中首先采用DC/DC轉(zhuǎn)換器,把24V的電壓轉(zhuǎn)換成5V,當(dāng)把這個(gè)5V供給芯片時(shí),還需要在電源引腳附近并聯(lián)1O4電容;在5V的基礎(chǔ)上再通過AS1117穩(wěn)壓芯片,把5V轉(zhuǎn)換成3.3V供給主處理器使用,同樣要在AS1117的輸入和輸出引腳上并聯(lián)上電容,經(jīng)過這樣的處理電源就能滿足系統(tǒng)的需要。
3.3 信息采集部分
這部分主要包括電阻應(yīng)變式傳感器,24位模數(shù)轉(zhuǎn)換芯片HX710。這里的應(yīng)變片是專門制作的避免敏感柵應(yīng)力集中的大焊點(diǎn)、耐疲勞專用應(yīng)變片?;诨菟诡D電橋的應(yīng)變電阻內(nèi)阻350~1000n、工作溫度一40~+100~;,本身精度(0.05~0.1)%。
帶特種防水膠、膠/金屬箔/膠與外殼防護(hù)。HX710與同類相比具有抗干擾性強(qiáng),相應(yīng)速度快,高達(dá)128的輸入放大器增益,滿足系統(tǒng)需求。該ADC僅僅需要兩個(gè)GPIO就能實(shí)現(xiàn)對(duì)ADC的控制,所有控制信號(hào)都由管腳驅(qū)動(dòng),無(wú)需對(duì)芯片編程,也無(wú)需外接任何器件,降低系統(tǒng)的成本并提高了穩(wěn)定性。
把傳感器輸出的差分信號(hào)接到HX710的INF、INP引腳上,將芯片DOUT和PD_SCK接到單片機(jī)的兩個(gè)GPlO 上就能完成信號(hào)采集。為了把外界的干擾降到最小,本部分的傳感器的供電,ADC電源以及它的參考電壓,還有STM32的供電都保持一致。圖3給出傳感器與HX710的連接以及HX710與STM32的GPIO連接方式。
3.4 人機(jī)交互模塊
本系統(tǒng)設(shè)計(jì)6個(gè)按鍵以及兩排總共1O個(gè)數(shù)碼管組成簡(jiǎn)易人機(jī)交互模塊。按鍵示意圖如圖4所示。共占用6個(gè)GPIO,數(shù)碼管顯示部分采用CS5817的專用數(shù)碼管驅(qū)動(dòng)芯片,該芯片與STM32采用llC協(xié)議通信。使用通用IO 口模擬IIC協(xié)議與使用STM 的硬件lIC相比要容易很多,后者配置較復(fù)雜。
3.5接口轉(zhuǎn)換
GPS的提供的接口是RS232, 因此需要使用STM32的一個(gè)USART端口,并通過MAX232進(jìn)行電平轉(zhuǎn)換即可。
3.6 停車辨識(shí)模塊
在這里使用一個(gè)反射式光電開關(guān),把開關(guān)裝在手剎旁,在停車時(shí)手剎拉起來,光電開關(guān)輸出高電平;當(dāng)車開動(dòng)時(shí),手剎拉下去,光電開關(guān)輸出低電平。把這個(gè)輸出信號(hào)接到單片機(jī)的一個(gè)外部中斷。
4 系統(tǒng)軟件設(shè)計(jì)
4.1軟件的總體設(shè)計(jì)
本設(shè)計(jì)在MDK編譯環(huán)境中編寫STM32F103的源程序,經(jīng)過編譯后生產(chǎn)hex文件,用JLink V8將hex文件下載到單片機(jī)的片上Flash中。系統(tǒng)軟件采用前后臺(tái)系統(tǒng),USART的通信放在USART中斷中進(jìn)行,采用一個(gè)定時(shí)器產(chǎn)生10ms的中斷,在這里面處理按鍵掃描。其余的傳感器信號(hào)采集、處理、重量計(jì)算與顯示、菜單設(shè)置,均在后臺(tái)中執(zhí)行。儀表在上電初始化后,進(jìn)行系統(tǒng)自檢,如果發(fā)現(xiàn)有通道沒有接入傳感器信號(hào)或者信號(hào)異常,儀表白動(dòng)報(bào)警;自檢通過后,首先去讀存儲(chǔ)在Flash中的設(shè)置信息,讀到這些信息后進(jìn)人大循環(huán)中采集傳感器數(shù)據(jù),根據(jù)上面的讀到信息進(jìn)行處理、顯示。菜單設(shè)置也在大循環(huán)中執(zhí)行,長(zhǎng)按“設(shè)置鍵”3s,進(jìn)入密碼輸入界面,輸入正確的密碼后,就可以進(jìn)行菜單設(shè)置,在退出菜單時(shí),設(shè)置的參數(shù)被寫到Flash的特定位置。退出菜單后,在大循環(huán)中根據(jù)剛才設(shè)置的參數(shù)處理傳感器采集的數(shù)據(jù)。當(dāng)有中斷到來時(shí),程序到中斷服務(wù)程序執(zhí)行相應(yīng)任務(wù)。主函數(shù)設(shè)計(jì)如下:
Void main()
{
Syslnit();//系統(tǒng)初始化
While(!(SelfTest()))
{
DisplayErr0;//整機(jī)自檢沒有通過,這里顯示出錯(cuò)的地方
}
ReadFromFlash0;//讀取保存在flash中的設(shè)置信息
While(1)
{
CalaWeight();//計(jì)算重量
TraceZer0()://零點(diǎn)跟蹤
ShowDesk0;//最終顯示界面,顯示重量,超載閾值
MenuDesign0;//菜單設(shè)置
l
}
下面主要給出通信協(xié)議的設(shè)計(jì)以及菜單的設(shè)計(jì)細(xì)節(jié)。
4.2通信協(xié)議設(shè)計(jì)
該系統(tǒng)只給GPS返回重量信息。信息幀9個(gè)字節(jié)。主要包含的內(nèi)容有報(bào)文開始字節(jié),符號(hào)位,重量數(shù)據(jù)整數(shù)部分和小數(shù)部分,校驗(yàn)和,報(bào)文結(jié)束字節(jié)。具體內(nèi)容如下:
開始字節(jié):0x0e。
符號(hào)位:0xl0表示正數(shù),0xld表示負(fù)數(shù)。
整數(shù)部分:兩個(gè)字節(jié)。把正數(shù)部分轉(zhuǎn)換成十六進(jìn)制,把該十六進(jìn)制數(shù)拆分成高四位,低四位,分別把他們轉(zhuǎn)換成ASCIl碼,
并用十六進(jìn)制表示。
小數(shù)部分:與整數(shù)部分一致。
校驗(yàn)和:兩個(gè)字節(jié)。首先把符號(hào)位,整數(shù)部分,小數(shù)部分三者進(jìn)行異或運(yùn)算,將得到的數(shù)據(jù)拆分成高四位,低四位,在分別轉(zhuǎn)換成十六進(jìn)制表示的ASCll的形式。
結(jié)束字節(jié):0xfe。
舉例說明:把24.34這個(gè)數(shù)據(jù)轉(zhuǎn)換成該幀格式為:
OxOe 0xl 0 0x31 0x38 0x32 0x32 0x32 0x41 Oxfe
4.3 菜單設(shè)計(jì)
菜單內(nèi)容體現(xiàn)了系統(tǒng)功能的多樣性,該系統(tǒng)共有8個(gè)一級(jí)菜單,其中第五、六兩個(gè)有二級(jí)菜單。當(dāng)輸入密碼正確后就可以進(jìn)入該系統(tǒng)設(shè)置相關(guān)菜單項(xiàng)。密碼初始值12345,進(jìn)入后可以修改密碼。菜單的示意圖如圖5所示。
各個(gè)菜單項(xiàng)的簡(jiǎn)要說明:
F0菜單:查看ADC的內(nèi)碼值,即傳感器輸入的模擬值所對(duì)應(yīng)的數(shù)字值。在該項(xiàng)就能查看各個(gè)傳感器轉(zhuǎn)換后的數(shù)字值,通過按鍵來切換ADC。
F1菜單:小數(shù)點(diǎn)位數(shù)。通過該項(xiàng)可以設(shè)置顯示數(shù)據(jù)的小數(shù)點(diǎn)位置。
F2菜單:顯示分度值。通過該項(xiàng)可以設(shè)置數(shù)據(jù)變化的最小單元。
F3菜單:零點(diǎn)跟蹤。通過該項(xiàng)設(shè)置零點(diǎn)跟蹤的范圍。
F4菜單:超載閾值。通過該項(xiàng)可以設(shè)置最大裝載噸位,超過此值,系統(tǒng)就會(huì)報(bào)警
F5菜單:各個(gè)ADC工作選擇。通過該項(xiàng)可以決定讓某個(gè)ADC工作與否。
F6菜單:系數(shù)設(shè)置。通過該項(xiàng)可以設(shè)置各個(gè)ADC轉(zhuǎn)換后的結(jié)果在總重中的權(quán)重。
F7菜單:回復(fù)出廠設(shè)置。
5 遇到的問題及解決方案
當(dāng)卡車卸載貨物后,車軸不能完全回復(fù)到裝載前的狀態(tài),所以即便是車上已沒有貨物了,但是系統(tǒng)還顯示有重量,如果不處理再次裝載貨物,那么顯示的重量就會(huì)比實(shí)際的多,導(dǎo)致測(cè)量不準(zhǔn)確。針對(duì)該問題,我們采用手動(dòng)清零,即在裝貨前按下清零鍵,給系統(tǒng)一個(gè)準(zhǔn)確的零點(diǎn)。
不同的路況,不同的行駛狀況如上坡、下坡、加速、剎車等也會(huì)使車軸發(fā)生較大的形變,那么傳感器讀回來的信息就包含了貨物之外的因素造成的誤差,這將使測(cè)量不準(zhǔn)確,具體表現(xiàn)在車子行駛過程中數(shù)據(jù)跳動(dòng)很大。針對(duì)該問題,我們采用鎖機(jī)制,根據(jù)停車辨識(shí)電路輸出的高低電平信息,來做相應(yīng)處理。處理的結(jié)果如圖6所示:
圖中①線表示實(shí)際的傳感器輸出的數(shù)據(jù),②線表示經(jīng)過處理后的數(shù)據(jù)與皮重之和。
有時(shí)候會(huì)發(fā)生ADC損壞的硬件問題,于是我們?cè)谠O(shè)計(jì)硬件時(shí)都多設(shè)計(jì)一個(gè)ADC模塊,當(dāng)一個(gè)出現(xiàn)問題時(shí),可以直接把傳感器接到備用模塊上繼續(xù)工作。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請(qǐng)聯(lián)系刪除