系統(tǒng)如何低成本升級(jí)?ARM工控機(jī)替換X86實(shí)戰(zhàn))
上個(gè)月我接到一個(gè)商業(yè)體停車場(chǎng)的升級(jí)需求物業(yè)經(jīng)理的原話是“出口一到六點(diǎn)就堵到坡道上抬桿慢識(shí)別不出牌業(yè)主天天投訴?!蔽毅@進(jìn)設(shè)備間看了一眼機(jī)柜里躺著一臺(tái)落了灰的X86工控機(jī)Windows系統(tǒng)開機(jī)要兩分多鐘風(fēng)扇呼呼轉(zhuǎn)硬盤已經(jīng)報(bào)過兩次壞道。這種情況在存量停車場(chǎng)改造里太典型了前端道閘、相機(jī)其實(shí)都還新就是主控主機(jī)拖了后腿。我最后給出的方案不是重做整套停車場(chǎng)系統(tǒng)而是用瑞迅科技的高性價(jià)比ARM工控機(jī)MPC-1903替換核心主機(jī)把原有外設(shè)盡量利舊。這篇就把這次改造的選型邏輯、現(xiàn)場(chǎng)替換過程和上線后的實(shí)測(cè)數(shù)據(jù)完整記錄下來給正在糾結(jié)停車場(chǎng)系統(tǒng)怎么升級(jí)的朋友做個(gè)參考。1. 老舊停車場(chǎng)系統(tǒng)卡在哪改造前先盤點(diǎn)問題清單1.1 不只是硬件老是整個(gè)架構(gòu)的瓶頸停車場(chǎng)出入口系統(tǒng)的結(jié)構(gòu)其實(shí)不復(fù)雜前端是道閘、車牌識(shí)別相機(jī)、LED顯示屏、語音對(duì)講后端是管理主機(jī)一般就是一臺(tái)工控機(jī)或者服務(wù)器跑收費(fèi)軟件和數(shù)據(jù)庫?,F(xiàn)在很多存量停車場(chǎng)的問題恰恰出在后端主機(jī)上。很多項(xiàng)目建成時(shí)間在2015到2018年之間當(dāng)時(shí)配的是X86架構(gòu)的工控機(jī)裝Windows XP或者Windows 7用機(jī)械硬盤存數(shù)據(jù)。跑四五年之后問題開始集中爆發(fā)機(jī)械硬盤壞道、風(fēng)扇積灰導(dǎo)致過熱死機(jī)、系統(tǒng)盤碎片化嚴(yán)重、殺毒軟件后臺(tái)掃描占用資源。最關(guān)鍵的是原來的車牌識(shí)別算法和收費(fèi)軟件已經(jīng)很難升級(jí)新版本軟件對(duì)硬件要求更高老主機(jī)帶不動(dòng)。前端設(shè)備看著沒問題整套系統(tǒng)卻卡得要命。1.2 我盤出來的幾個(gè)典型癥狀這次進(jìn)場(chǎng)之前我專門花了一天時(shí)間做現(xiàn)場(chǎng)巡檢把問題一條條記下來出口高峰期道閘從識(shí)別完成到抬桿實(shí)測(cè)延時(shí)接近3秒后面車排隊(duì)按喇叭。識(shí)別率不穩(wěn)定逆光、夜間和雨天的誤識(shí)別率明顯偏高每天要人工輸入車牌十幾次。主機(jī)開機(jī)慢設(shè)備間斷電重啟后要等兩三分鐘系統(tǒng)才起來期間出入口處于半癱瘓狀態(tài)。設(shè)備間沒有空調(diào)夏天機(jī)柜內(nèi)溫度超過40度X86主機(jī)風(fēng)扇噪音大機(jī)箱摸上去燙手。數(shù)據(jù)備份形同虛設(shè)物業(yè)從來沒做過數(shù)據(jù)庫導(dǎo)出歷史停車記錄和收費(fèi)流水一旦硬盤損壞就全沒了。這些問題單看都是小毛病合在一起就是“系統(tǒng)該換了”的信號(hào)。但物業(yè)的預(yù)算卡得很緊換一套全新停車場(chǎng)系統(tǒng)要好幾萬前端道閘、相機(jī)、顯示屏全部換掉工期也長(zhǎng)。所以改造思路就變成盡量保留前端設(shè)備只換核心主機(jī)。1.3 為什么要“換主機(jī)”而不是“換系統(tǒng)”這是這次改造最關(guān)鍵的一個(gè)決策點(diǎn)。當(dāng)時(shí)有人建議直接上整套新系統(tǒng)我反對(duì)了。理由很簡(jiǎn)單停車場(chǎng)系統(tǒng)的前端設(shè)備比如道閘、車牌識(shí)別相機(jī)設(shè)計(jì)壽命普遍在五到八年這個(gè)項(xiàng)目用了四年多狀態(tài)還很好全部拆掉等于浪費(fèi)。而且換整套系統(tǒng)的施工周期長(zhǎng)出入口要停用對(duì)商業(yè)體的影響很大。換主機(jī)就不一樣了。把機(jī)柜里那臺(tái)老舊X86工控機(jī)拆下來換成一臺(tái)新的ARM工控機(jī)再接上原有的相機(jī)、道閘控制器、顯示屏軟件層面做好數(shù)據(jù)遷移和協(xié)議對(duì)接基本上一天之內(nèi)就能完成單點(diǎn)替換。這種“核心換血、外設(shè)利舊”的思路對(duì)預(yù)算有限的存量項(xiàng)目特別適用。2. 為什么選ARM工控機(jī)MPC-1903的選型邏輯與參數(shù)拆解2.1 選型方法先列需求清單再?zèng)Q定硬件我在幫客戶選工控機(jī)的時(shí)候習(xí)慣先寫一份需求清單把場(chǎng)景約束列清楚再去看產(chǎn)品。在這個(gè)項(xiàng)目里清單是這樣的24小時(shí)不間斷運(yùn)行設(shè)備間可能斷電、無空調(diào)要求主機(jī)低功耗、寬溫、無風(fēng)扇。需要同時(shí)接入至少兩路車牌識(shí)別相機(jī)、一路道閘控制器、一塊LED顯示屏、一套語音對(duì)講。要跑Linux系統(tǒng)承載停車場(chǎng)收費(fèi)軟件、數(shù)據(jù)庫和車牌識(shí)別服務(wù)不能一個(gè)月死機(jī)一次。預(yù)算控制在兩三千元級(jí)別整機(jī)替換成本要明顯低于傳統(tǒng)X86工控方案。列完清單再回頭看傳統(tǒng)X86工控機(jī)雖然性能強(qiáng)但功耗普遍五六十瓦起步帶風(fēng)扇的結(jié)構(gòu)在粉塵和高溫環(huán)境下容易出問題整機(jī)價(jià)格也不便宜。ARM工控機(jī)的優(yōu)勢(shì)正好對(duì)得上。2.2 MPC-1903的核心配置與接口這次選的是瑞迅科技的MPC-1903到手之后我先做了個(gè)簡(jiǎn)單的硬件盤點(diǎn)。以我這臺(tái)為例配置大致是這樣項(xiàng)目規(guī)格處理器四核ARM Cortex-A系列主頻1.4GHz以上內(nèi)存4GB DDR3L存儲(chǔ)16GB eMMC外加TF卡擴(kuò)展槽網(wǎng)絡(luò)雙千兆以太網(wǎng)口串口4路RS232/RS485帶隔離可選USB4路USB 2.0顯示HDMI VGA供電DC 12V散熱無風(fēng)扇鋁合金外殼工作溫度工業(yè)級(jí)寬溫范圍系統(tǒng)支持LinuxUbuntu/Debian、Android這個(gè)配置在停車場(chǎng)場(chǎng)景里是夠用的關(guān)鍵是接口種類齊全。雙網(wǎng)口可以一個(gè)接內(nèi)部局域網(wǎng)做管理一個(gè)接前端相機(jī)組成的獨(dú)立網(wǎng)絡(luò)多串口方便接道閘控制器、LED屏等老設(shè)備無風(fēng)扇設(shè)計(jì)解決了粉塵和噪音問題。2.3 ARM對(duì)比X86為什么這次站ARM這邊業(yè)內(nèi)很多人一聽到ARM就聯(lián)想到低性能覺得工控還得看X86。這個(gè)觀點(diǎn)在停車場(chǎng)這個(gè)具體場(chǎng)景里其實(shí)是錯(cuò)的。我拆開對(duì)比過第一是功耗。X86工控機(jī)整機(jī)功耗50到120瓦ARM工控機(jī)普遍在5到15瓦差距接近十倍。停車場(chǎng)設(shè)備間常年無人很多還沒有空調(diào)低功耗意味著低發(fā)熱設(shè)備穩(wěn)定性和電費(fèi)開支都更可控。第二是可靠性。X86方案為了散熱必須裝風(fēng)扇風(fēng)扇是易損件停車場(chǎng)設(shè)備間粉塵大一兩年就堵死。ARM工控機(jī)用無風(fēng)扇外殼散熱沒有這個(gè)故障點(diǎn)。存儲(chǔ)用的是eMMC不像機(jī)械硬盤怕震動(dòng)、怕斷電。第三是性價(jià)比。同樣滿足停車場(chǎng)業(yè)務(wù)需求的配置ARM工控機(jī)的價(jià)格明顯更低采購成本省下來的錢可以覆蓋施工和調(diào)試費(fèi)用。2.4 性能夠不夠跑識(shí)別和業(yè)務(wù)的同時(shí)負(fù)載如何選ARM之前我最大的顧慮是性能。這臺(tái)MPC-1903的定位是“夠用”不是“堆料”。我做了個(gè)簡(jiǎn)單的壓力驗(yàn)證系統(tǒng)里同時(shí)跑MySQL數(shù)據(jù)庫、停車場(chǎng)收費(fèi)服務(wù)、車牌識(shí)別服務(wù)接入兩路相機(jī)實(shí)時(shí)視頻流再加上日志寫入觀察CPU占用率。實(shí)測(cè)下來穩(wěn)定運(yùn)行時(shí)的CPU占用率基本在20%到40%之間內(nèi)存占用不到一半。遇到高峰期多路相機(jī)同時(shí)觸發(fā)識(shí)別短時(shí)占用會(huì)沖到60%左右但沒出現(xiàn)卡頓和丟包。這個(gè)結(jié)果說明對(duì)于停車場(chǎng)出入口這種“業(yè)務(wù)邏輯重、計(jì)算密度不高”的負(fù)載ARM四核完全扛得住。當(dāng)然如果你要在同一臺(tái)機(jī)器上跑大規(guī)模視頻結(jié)構(gòu)化分析、十幾路視頻流AI分析那還是老老實(shí)實(shí)上高性能設(shè)備。但停車場(chǎng)的核心需求是收費(fèi)、識(shí)別和記錄ARM工控機(jī)的性能邊界離這個(gè)需求還很遠(yuǎn)。3. 現(xiàn)場(chǎng)替換過程從拆舊主機(jī)到全流程調(diào)通3.1 動(dòng)手前半小時(shí)的準(zhǔn)備工作替換現(xiàn)場(chǎng)最怕的是拆完裝不回去。我每次動(dòng)手前都會(huì)花半小時(shí)做三件事第一把設(shè)備間所有線纜拍照存檔特別是舊主機(jī)背后的電源線、網(wǎng)線、串口線標(biāo)注清楚哪根接哪個(gè)設(shè)備第二把舊系統(tǒng)的數(shù)據(jù)庫完整導(dǎo)出備份包括車牌記錄、月卡信息、收費(fèi)流水確認(rèn)備份文件能正常打開第三記錄舊系統(tǒng)的IP地址、串口參數(shù)、以及軟件里配置的各種設(shè)備參數(shù)。這一步很多人嫌麻煩直接跳過結(jié)果后面出問題連原來的狀態(tài)都恢復(fù)不了。我一般還會(huì)把舊主機(jī)的硬盤拆下來單獨(dú)保存一個(gè)周期確認(rèn)新系統(tǒng)跑穩(wěn)了再處理多一道保險(xiǎn)。3.2 系統(tǒng)部署Linux環(huán)境與自啟動(dòng)配置MPC-1903出廠可以預(yù)裝系統(tǒng)我這次直接讓經(jīng)銷商燒錄好Ubuntu省了現(xiàn)場(chǎng)折騰的時(shí)間。系統(tǒng)起來之后要干的活主要是三塊裝數(shù)據(jù)庫和業(yè)務(wù)服務(wù)配置靜態(tài)IP設(shè)置開機(jī)自啟和看門狗。停車場(chǎng)軟件依賴的MySQL、運(yùn)行時(shí)庫這些我用一個(gè)腳本一次性裝好然后把業(yè)務(wù)服務(wù)注冊(cè)成systemd服務(wù)配置開機(jī)自啟。這里重點(diǎn)說一下看門狗ARM工控機(jī)的硬件看門狗可以在系統(tǒng)卡死或者服務(wù)異常時(shí)自動(dòng)重啟設(shè)備對(duì)無人值守的停車場(chǎng)來說很重要相當(dāng)于給設(shè)備上了個(gè)保險(xiǎn)不用每次故障都喊人跑現(xiàn)場(chǎng)。3.3 外設(shè)對(duì)接逐個(gè)擊破停車場(chǎng)系統(tǒng)最麻煩的不是主機(jī)本身而是和前端設(shè)備的老協(xié)議對(duì)接。我按設(shè)備類型逐個(gè)過了一遍外設(shè)連接方式替換時(shí)注意道閘控制器RS485或干接點(diǎn)確認(rèn)控制器協(xié)議和串口參數(shù)干接點(diǎn)需確認(rèn)電平車牌識(shí)別相機(jī)網(wǎng)口接交換機(jī)配置相機(jī)IP與工控機(jī)同網(wǎng)段LED顯示屏RS485或網(wǎng)口確認(rèn)顯示屏協(xié)議通常是行業(yè)通用協(xié)議語音對(duì)講音頻輸出確認(rèn)音量參數(shù)和接線端子讀卡器/掃碼槍USB或RS232確認(rèn)串口波特率、數(shù)據(jù)位道閘是最容易出問題的環(huán)節(jié)。老道閘控制器的協(xié)議五花八門有些走標(biāo)準(zhǔn)Modbus有些是廠家私有協(xié)議還有的直接用繼電器干接點(diǎn)。我的處理方式是優(yōu)先在軟件里適配控制器的協(xié)議協(xié)議拿不到文檔的改用繼電器干接點(diǎn)方案把工控機(jī)的GPIO信號(hào)轉(zhuǎn)成開關(guān)量直接控制道閘起落。這個(gè)方案最穩(wěn)也最通用。3.4 調(diào)試中最容易翻車的三個(gè)瞬間這次調(diào)試踩了三個(gè)坑每個(gè)都值得單獨(dú)說。第一個(gè)坑是串口線序。道閘控制器的RS485線是雙芯線A、B兩個(gè)信號(hào)看著很簡(jiǎn)單但不同廠家的端子標(biāo)注不一樣有的標(biāo)“D、D-”有的標(biāo)“A、B”接反了設(shè)備就是沒反應(yīng)。我的辦法是準(zhǔn)備一個(gè)USB轉(zhuǎn)RS485調(diào)試工具先單獨(dú)測(cè)試信號(hào)是否收發(fā)正常再接控制器省得反復(fù)爬機(jī)柜。第二個(gè)坑是繼電器誤觸發(fā)。干接點(diǎn)方式控制道閘時(shí)如果供電地線和信號(hào)地線沒有處理好上電瞬間會(huì)有毛刺信號(hào)道閘偶爾會(huì)自己抬一下。解決方法是加光耦隔離模塊或者把控制信號(hào)和功率供電分開布線。第三個(gè)坑是網(wǎng)線問題。設(shè)備間環(huán)境復(fù)雜舊網(wǎng)線的水晶頭老化、線序錯(cuò)亂很常見相機(jī)網(wǎng)口亮燈但數(shù)據(jù)不通。我直接重新壓了全部水晶頭把所有網(wǎng)線做了通斷測(cè)試確保物理鏈路干凈。4. 上線一個(gè)月后的實(shí)測(cè)數(shù)據(jù)與成本賬4.1 前后對(duì)比數(shù)據(jù)替換完成之后我沒有馬上離場(chǎng)而是連續(xù)跟蹤了一個(gè)月把新舊系統(tǒng)的關(guān)鍵指標(biāo)做了個(gè)對(duì)比指標(biāo)舊X86工控機(jī)MPC-1903 ARM工控機(jī)開機(jī)時(shí)間約2分15秒約13秒識(shí)別到抬桿響應(yīng)2.5到3秒0.8到1秒日均人工干預(yù)次數(shù)8到15次2到4次整機(jī)功耗約120W約10W連續(xù)運(yùn)行故障次數(shù)每周重啟1到2次一個(gè)月零故障需要說明的是響應(yīng)變快不只是因?yàn)镃PU強(qiáng)更多是系統(tǒng)環(huán)境變干凈了。舊Windows系統(tǒng)裝了殺毒軟件、各種后臺(tái)服務(wù)開機(jī)之后還要加載一堆東西新的Linux環(huán)境服務(wù)精簡(jiǎn)串口指令輸出確定性高所以從識(shí)別到抬桿的鏈路時(shí)間明顯縮短。識(shí)別率提升有一部分來自新系統(tǒng)里匹配識(shí)別服務(wù)的版本比舊系統(tǒng)新同樣的相機(jī)硬件下算法表現(xiàn)更好。逆光、夜間的誤識(shí)別明顯減少客戶最直觀的感受就是出口不再堵車了。4.2 功耗和電費(fèi)一年到底省多少功耗這塊我單獨(dú)算了一筆賬。舊X86主機(jī)實(shí)測(cè)功耗在120瓦左右新主機(jī)在10瓦左右單臺(tái)主機(jī)替換后功耗差約110瓦。按24小時(shí)不間斷運(yùn)行計(jì)算一年節(jié)省的電量大約是110瓦乘以24小時(shí)乘以365天約等于964度電。商業(yè)電價(jià)按每度1元估算一臺(tái)主機(jī)一年就能省下接近一千元電費(fèi)。如果一個(gè)項(xiàng)目有兩三個(gè)出入口那就是兩三臺(tái)主機(jī)一年省兩三千元。這筆錢雖然不算巨款但足以覆蓋新設(shè)備的采購成本了。4.3 故障率與維護(hù)量變化停車場(chǎng)設(shè)備維護(hù)最大的成本其實(shí)是人工。以前這臺(tái)X86工控機(jī)每個(gè)月要上門重啟一兩次每次去現(xiàn)場(chǎng)來回加處理至少要半天按人工成本兩百元一次算一年就是兩三千元。加上機(jī)械硬盤損壞的隱患一次數(shù)據(jù)恢復(fù)的成本更高。換成ARM工控機(jī)之后設(shè)備本身沒有風(fēng)扇、沒有機(jī)械硬盤故障點(diǎn)少了Linux系統(tǒng)本身也穩(wěn)定。這個(gè)月我遠(yuǎn)程盯著系統(tǒng)連續(xù)運(yùn)行30天沒有重啟過。物業(yè)那邊省心多了以前看到系統(tǒng)卡了第一個(gè)電話就打給我現(xiàn)在基本不用管。4.4 算一筆總賬多久回本把采購成本、工程費(fèi)用和運(yùn)維節(jié)省放一起算一臺(tái)MPC-1903加安裝調(diào)試總花費(fèi)在同配置X86方案的三分之二左右。再加上每年節(jié)省的電費(fèi)和維護(hù)人工通常一兩年就能收回設(shè)備成本后面全是凈省。關(guān)鍵是換主機(jī)不影響前端設(shè)備壽命外設(shè)還能繼續(xù)用相當(dāng)于用很低的價(jià)格把整套系統(tǒng)的運(yùn)行品質(zhì)往上提了一檔。5. 復(fù)盤與避坑這輪改造里值得記住的教訓(xùn)5.1 道閘協(xié)議這個(gè)坑比想象中大這次改造最費(fèi)時(shí)的就是道閘對(duì)接。老道閘控制器大多數(shù)不是標(biāo)準(zhǔn)協(xié)議廠家可能已經(jīng)倒閉根本找不到協(xié)議文檔。我試過直接從軟件層面適配發(fā)現(xiàn)工作量太大最后改走干接點(diǎn)方案才徹底解決。這里給個(gè)建議現(xiàn)場(chǎng)勘測(cè)時(shí)務(wù)必確認(rèn)道閘控制器的具體型號(hào)能買到協(xié)議轉(zhuǎn)換模塊就提前買好不能的話做好干接點(diǎn)控制的準(zhǔn)備。千萬別指望“新系統(tǒng)一定能兼容老道閘”現(xiàn)實(shí)里沒有這個(gè)保證。5.2 供電不規(guī)范工業(yè)級(jí)也白搭新主機(jī)本身是工業(yè)級(jí)但如果供電環(huán)境不行一樣出問題。我在現(xiàn)場(chǎng)發(fā)現(xiàn)原來自帶的電源適配器質(zhì)量很一般空載電壓正常一帶負(fù)載電壓紋波就很大這種電源長(zhǎng)期使用容易導(dǎo)致設(shè)備重啟或者死機(jī)。后來我換成了工業(yè)導(dǎo)軌電源從端子排單獨(dú)引一路12V給工控機(jī)供電問題徹底解決。另一個(gè)容易忽略的是防雷接地。停車場(chǎng)出入口的相機(jī)、道閘都在室外雷雨季節(jié)感應(yīng)雷可能通過網(wǎng)線打進(jìn)工控機(jī)。雖然這臺(tái)工控機(jī)的網(wǎng)口本身帶一定的防護(hù)但建議在進(jìn)設(shè)備間之前加裝防雷器光纖收發(fā)器方案也可以考慮光路天然隔離電氣干擾。5.3 改造要留下“后悔藥”再穩(wěn)的方案也要留退路。我在這次改造里保留了舊主機(jī)沒有當(dāng)場(chǎng)拆解而是把它放到一邊留了一周。新系統(tǒng)跑穩(wěn)之后數(shù)據(jù)庫遷移驗(yàn)證無誤我才把舊主機(jī)撤下來。如果新系統(tǒng)出了問題隨時(shí)可以切回去不會(huì)讓停車場(chǎng)停擺。對(duì)多出口的停車場(chǎng)項(xiàng)目我建議先改一個(gè)出口試運(yùn)行兩三天確認(rèn)穩(wěn)定了再復(fù)制到其他出口。一次把所有出口全改了出問題就是全系統(tǒng)癱瘓風(fēng)險(xiǎn)太大。5.4 批量復(fù)制時(shí)的經(jīng)驗(yàn)這次只改了一個(gè)項(xiàng)目如果后續(xù)要做連鎖停車場(chǎng)批量更新?lián)Q代MPC-1903這種ARM工控機(jī)的優(yōu)勢(shì)會(huì)更明顯。系統(tǒng)鏡像可以一次性做好用工具批量克隆到多臺(tái)機(jī)器業(yè)務(wù)配置全部腳本化到現(xiàn)場(chǎng)只需要改IP和接外設(shè)每臺(tái)部署時(shí)間能壓縮到一兩個(gè)小時(shí)。最后說句實(shí)在話停車場(chǎng)系統(tǒng)更新?lián)Q代不一定要花大價(jià)錢全部推倒重來。找到系統(tǒng)的真正瓶頸用合適的硬件做單點(diǎn)替換往往是最快、最省錢、效果也最明顯的路徑。ARM工控機(jī)在這個(gè)場(chǎng)景里不是降級(jí)而是一種更務(wù)實(shí)的升級(jí)方式。