答器出廠測(cè)試系統(tǒng):從射頻鏈路到產(chǎn)線排障全解析)
去年秋天產(chǎn)線突然批量報(bào)“CRC校驗(yàn)失敗”我第一反應(yīng)是這批應(yīng)答器要整體返工。但拆了幾臺(tái)拿到實(shí)驗(yàn)室頻譜儀上細(xì)看報(bào)文波形明明是對(duì)的。排查到最后問(wèn)題出在LabVIEW程序里讀頻譜儀trace的超時(shí)時(shí)間設(shè)得太短軟件拿到的是上一次循環(huán)緩存的舊數(shù)據(jù)。這種坑做過(guò)儀控自動(dòng)化的人應(yīng)該都懂——測(cè)試系統(tǒng)自身不穩(wěn)定比被測(cè)產(chǎn)品出問(wèn)題還難查。做LabVIEW高鐵應(yīng)答器出廠測(cè)試系統(tǒng)遠(yuǎn)不是畫個(gè)界面、調(diào)幾個(gè)驅(qū)動(dòng)API那么簡(jiǎn)單。它牽扯射頻鏈路設(shè)計(jì)、近場(chǎng)耦合、報(bào)文解調(diào)、時(shí)序精度控制、數(shù)據(jù)庫(kù)追溯還有產(chǎn)線上的各種意外情況。這篇文章把這個(gè)項(xiàng)目從需求拆解、硬件選型、軟件架構(gòu)到現(xiàn)場(chǎng)排障的完整過(guò)程梳理一遍給正在做類似產(chǎn)線測(cè)試系統(tǒng)的工程師一個(gè)參考也適合剛接觸LabVIEW但想往射頻測(cè)試方向走的同學(xué)——你會(huì)看到一套完整的系統(tǒng)是怎么把上位機(jī)、儀表、夾具和邏輯串起來(lái)的。1. 應(yīng)答器出廠測(cè)試到底在測(cè)什么幾個(gè)指標(biāo)幫我理清了需求1.1 應(yīng)答器遠(yuǎn)沒(méi)有看起來(lái)那么簡(jiǎn)單應(yīng)答器Balise是高鐵列控系統(tǒng)里的地面關(guān)鍵設(shè)備安裝在鋼軌中間。列車底部有車載天線經(jīng)過(guò)時(shí)發(fā)出27.095MHz的射頻能量給應(yīng)答器供電應(yīng)答器內(nèi)部電路被激活后通過(guò)FSK調(diào)制方式在4.23MHz上行鏈路上把報(bào)文回發(fā)給列車。報(bào)文里帶著公里標(biāo)、線路坡度、限速信息列車靠這個(gè)確認(rèn)自己的位置。這個(gè)原理描述起來(lái)很輕松但到出廠測(cè)試這一環(huán)就麻煩了。被測(cè)對(duì)象是按近場(chǎng)耦合方式工作的測(cè)試時(shí)不能像測(cè)普通射頻模塊那樣直接拿SMA線纜懟上去。你得模擬列車底部天線的饋能環(huán)境同時(shí)用耦合環(huán)天線接收應(yīng)答器回發(fā)的信號(hào)。整個(gè)測(cè)試鏈路有“無(wú)線”部分稍微哪里匹配不好測(cè)出來(lái)的數(shù)據(jù)就和真實(shí)過(guò)車場(chǎng)景對(duì)不上。我在項(xiàng)目一開(kāi)始犯了個(gè)錯(cuò)上來(lái)就列了一堆要測(cè)的射頻參數(shù)結(jié)果被老師傅問(wèn)了一句你這些指標(biāo)測(cè)出來(lái)能判斷列車能不能可靠讀到這個(gè)報(bào)文嗎我這才意識(shí)到應(yīng)答器測(cè)試的核心不是追求指標(biāo)多而是確?!败囕dBTM在真實(shí)環(huán)境下能完整、穩(wěn)定地解出這條報(bào)文”。1.2 出廠測(cè)試的核心項(xiàng)目與判定邏輯經(jīng)過(guò)反復(fù)梳理我把出廠測(cè)試項(xiàng)目分成四類。報(bào)文類測(cè)試是基礎(chǔ)每條應(yīng)答器寫入的報(bào)文內(nèi)容不同出廠時(shí)要驗(yàn)證報(bào)文的固定字段、可變字段是否正確CRC校驗(yàn)是否通過(guò)報(bào)文中間有沒(méi)有丟位、錯(cuò)位。這個(gè)直接對(duì)應(yīng)列車能不能解出正確信息。射頻類測(cè)試是關(guān)鍵上行載波頻率是否在4.23MHz的容差范圍內(nèi)輸出功率是否滿足協(xié)議要求FSK頻偏是否達(dá)標(biāo)調(diào)制是否干凈。頻率偏了、功率低了都會(huì)導(dǎo)致車載設(shè)備在高速過(guò)車時(shí)來(lái)不及解調(diào)。時(shí)序類測(cè)試容易被忽略但非常重要從應(yīng)答器被饋能激活到輸出穩(wěn)定報(bào)文有一個(gè)啟動(dòng)時(shí)間切斷饋能后應(yīng)答器還能維持發(fā)送一小段時(shí)間。這兩個(gè)時(shí)間窗口決定了列車高速通過(guò)時(shí)能不能在有效區(qū)域內(nèi)完成報(bào)文讀取。直流類測(cè)試面向有源應(yīng)答器和內(nèi)部電路供電電流是否正常有沒(méi)有短路漏電內(nèi)部?jī)?chǔ)能電容的充電特性是否達(dá)標(biāo)。這類測(cè)試用到的就是熱搜詞里反復(fù)出現(xiàn)的Keithley 6221電流源和2182納伏表組合。這里我想多說(shuō)一句關(guān)于判定邏輯。產(chǎn)線測(cè)試最怕的是“模糊地帶”——參數(shù)不上不下測(cè)出來(lái)既沒(méi)超上限也不算完全合格。后來(lái)我定的規(guī)矩是所有硬指標(biāo)按協(xié)議上下限加測(cè)量不確定度后形成內(nèi)控線內(nèi)控線比協(xié)議線收緊5%到10%寧可把邊緣產(chǎn)品攔下來(lái)復(fù)測(cè)也絕不讓帶病產(chǎn)品流出去。1.3 為什么繞不開(kāi)LabVIEW市面上不是沒(méi)有專用的應(yīng)答器測(cè)試儀表但價(jià)格昂貴而且只針對(duì)特定接口和協(xié)議產(chǎn)品一迭代儀表就跟不上。用LabVIEW搭一套自己的測(cè)試系統(tǒng)好處是明顯的。驅(qū)動(dòng)生態(tài)全。GPIB、LAN、USB、串口幾乎所有儀器都有現(xiàn)成的LabVIEW驅(qū)動(dòng)省去了大量底層通信開(kāi)發(fā)時(shí)間。界面開(kāi)發(fā)快。產(chǎn)線工人需要的不是復(fù)雜的曲線分析界面而是“掃碼、按啟動(dòng)、看PASS/FAIL”的極簡(jiǎn)交互LabVIEW幾分鐘就能拖出來(lái)。數(shù)據(jù)處理和存儲(chǔ)靈活。測(cè)試數(shù)據(jù)要寫數(shù)據(jù)庫(kù)、要出Excel報(bào)告、要存原始波形LabVIEW都有現(xiàn)成工具包。而且有一點(diǎn)被很多人低估LabVIEW做產(chǎn)線測(cè)試狀態(tài)機(jī)邏輯非常直觀。測(cè)試步驟多、判斷條件多、異常分支多圖形化的狀態(tài)機(jī)比文本代碼更容易讓同事看懂和維護(hù)。這個(gè)項(xiàng)目里哪怕是沒(méi)系統(tǒng)學(xué)過(guò)LabVIEW的電氣工程師也能在狀態(tài)機(jī)框圖里找到某個(gè)測(cè)試步驟在哪改個(gè)超時(shí)參數(shù)不費(fèi)勁。2. 測(cè)試臺(tái)架構(gòu)設(shè)計(jì)從射頻鏈路到供電控制的一次性規(guī)劃2.1 激活鏈路和采集鏈路怎么搭硬件架構(gòu)是整個(gè)項(xiàng)目的骨架這塊規(guī)劃錯(cuò)了后面軟件寫得再好都白搭。我先梳理了一下系統(tǒng)的鏈路。激活鏈路上位機(jī)控制射頻信號(hào)源輸出27.095MHz連續(xù)波作為給應(yīng)答器饋能的“激活源”經(jīng)過(guò)功率放大后送到激活天線模擬列車底部天線的作用。應(yīng)答器被激活后開(kāi)始回發(fā)4.23MHz的FSK信號(hào)這個(gè)信號(hào)被耦合環(huán)天線接收經(jīng)過(guò)可調(diào)衰減器送到頻譜儀進(jìn)行分析。一條發(fā)送鏈路、一條接收鏈路再加上直流供電和數(shù)字控制。信號(hào)源選型我選了Keysight N5171B原因是它頻率穩(wěn)定性好、支持外部觸發(fā)可以在LabVIEW里精確控制“什么時(shí)候開(kāi)始饋能”。頻譜儀用的是Keysight N9000B帶IQ分析功能既能看頻譜又能做矢量解調(diào)。如果預(yù)算有限國(guó)產(chǎn)同檔次型號(hào)也可以但一定要保證解調(diào)帶寬和觸發(fā)能力滿足要求別只看頻率范圍。這里有個(gè)特別容易踩的坑應(yīng)答器回發(fā)的信號(hào)屬于近場(chǎng)耦合信號(hào)在測(cè)試夾具里測(cè)到的絕對(duì)功率值本來(lái)就偏低。頻譜儀輸入端一定要加可調(diào)衰減器和保護(hù)電路防止操作失誤時(shí)信號(hào)源大功率直接灌進(jìn)來(lái)。我的方案是信號(hào)源輸出后接一個(gè)固定10dB衰減再加到天線上接收鏈路從天線出來(lái)先過(guò)一個(gè)可調(diào)衰減器再進(jìn)頻譜儀這樣即使鏈路接錯(cuò)也不至于燒掉儀器前端的低噪聲放大器。2.2 直流參數(shù)測(cè)試的儀器組合62212182熱搜詞里頻繁出現(xiàn)的6221與2182同步采集在應(yīng)答器測(cè)試?yán)锎_實(shí)是剛需。6221是精密電流源2182是納伏表兩者配合可以做Delta模式的電阻測(cè)量和低電平電壓測(cè)量。應(yīng)答器內(nèi)部電路在待機(jī)、激活、發(fā)送三個(gè)狀態(tài)的電流差異很大有的狀態(tài)電流小到微安級(jí)用普通萬(wàn)用表根本測(cè)不準(zhǔn)。我把6221和2182通過(guò)GPIB總線接到上位機(jī)中間用一根觸發(fā)線把兩臺(tái)儀器的Trigger Link連接起來(lái)。為什么要強(qiáng)調(diào)同步因?yàn)?182納伏表采樣速度慢6221電流源輸出變化快如果兩臺(tái)儀器各自獨(dú)立工作采到的電壓和電流不是同一個(gè)時(shí)間點(diǎn)算出來(lái)的電阻值誤差會(huì)很大。用觸發(fā)線把兩者同步后6221每改變一次輸出電流2182立刻開(kāi)始采集電壓這在LabVIEW里配合驅(qū)動(dòng)自帶的Delta模式示例就能實(shí)現(xiàn)。實(shí)際測(cè)試中我們還遇到過(guò)一個(gè)問(wèn)題6221輸出微安級(jí)電流時(shí)測(cè)試線纜本身的接觸電阻和溫漂會(huì)影響測(cè)量結(jié)果。后來(lái)改成四線制開(kāi)爾文接法把電流回路和電壓采樣回路分開(kāi)穩(wěn)定性提升了一個(gè)數(shù)量級(jí)。這個(gè)細(xì)節(jié)在常規(guī)文檔里寫得不明顯但做低電平測(cè)量時(shí)是必須的。2.3 臺(tái)架布局與夾具設(shè)計(jì)的細(xì)節(jié)臺(tái)架設(shè)計(jì)看起來(lái)是硬件的事但直接決定軟件參數(shù)好不好寫。天線與應(yīng)答器的相對(duì)位置必須固定間距誤差控制在毫米級(jí)。近場(chǎng)耦合的信號(hào)強(qiáng)度對(duì)距離極敏感應(yīng)答器放偏一點(diǎn)測(cè)出來(lái)的功率值就會(huì)差出幾個(gè)dB直接導(dǎo)致誤判。我的方案是做了一套抽屜式夾具應(yīng)答器放進(jìn)定位槽后被氣缸壓緊位置公差控制在±0.5mm以內(nèi)。激活天線固定在夾具頂部接收耦合環(huán)天線緊貼被測(cè)品表面間距靠定位塊保證。這樣軟件里的功率判定閾值才能有實(shí)際意義。另一個(gè)細(xì)節(jié)是線纜布局。射頻信號(hào)線和電源線、控制線必須分開(kāi)走交叉時(shí)要垂直交叉避免工頻干擾串入射頻鏈路。我見(jiàn)過(guò)一個(gè)項(xiàng)目就是線纜扎在一起導(dǎo)致頻譜儀底噪抬高了整整10dB排查了半個(gè)月才發(fā)現(xiàn)是電機(jī)控制線的電磁干擾。做產(chǎn)線測(cè)試電磁兼容問(wèn)題從第一天就要考慮進(jìn)去。3. LabVIEW軟件怎么組織狀態(tài)機(jī)、生產(chǎn)者消費(fèi)者和配置驅(qū)動(dòng)的組合3.1 軟件主狀態(tài)機(jī)設(shè)計(jì)產(chǎn)線測(cè)試軟件不能是跑通一次就算完它要長(zhǎng)時(shí)間連續(xù)運(yùn)行要應(yīng)對(duì)掃碼槍沒(méi)識(shí)別、儀器沒(méi)響應(yīng)、閾值超限等各種異常。我采用了經(jīng)典的狀態(tài)機(jī)結(jié)構(gòu)主循環(huán)分為這幾個(gè)狀態(tài)初始化、空閑待機(jī)、掃碼確認(rèn)、測(cè)試執(zhí)行、結(jié)果判定、數(shù)據(jù)存儲(chǔ)、異常處理。初始化狀態(tài)下程序自動(dòng)檢測(cè)所有儀器是否在線信號(hào)源是否鎖定頻譜儀是否空閑任何一個(gè)掉線就彈窗提示絕不帶病運(yùn)行??臻e待機(jī)狀態(tài)下軟件等待掃碼槍輸入掃到的SN碼會(huì)先校驗(yàn)格式防止亂碼進(jìn)入測(cè)試流程。測(cè)試執(zhí)行狀態(tài)是整個(gè)系統(tǒng)的核心它會(huì)根據(jù)配置文件里的測(cè)試序列逐個(gè)調(diào)用測(cè)試模塊。狀態(tài)機(jī)能讓我在任何時(shí)候都清楚“程序現(xiàn)在在哪一步”。有一次產(chǎn)線反饋測(cè)試卡住不動(dòng)我遠(yuǎn)程看畫面看到停在“等待頻譜儀空閑”這一步立刻知道是頻譜儀上一輪測(cè)試的IQ數(shù)據(jù)沒(méi)釋放直接定位到資源占用問(wèn)題。如果是平鋪直敘的腳本式代碼這個(gè)問(wèn)題至少要翻半天日志才能查出來(lái)。3.2 數(shù)據(jù)流結(jié)構(gòu)生產(chǎn)者消費(fèi)者模式測(cè)試過(guò)程中頻譜儀的IQ數(shù)據(jù)、6221的直流數(shù)據(jù)、狀態(tài)監(jiān)測(cè)數(shù)據(jù)都在同時(shí)產(chǎn)生如果都在一個(gè)循環(huán)里處理很容易出現(xiàn)數(shù)據(jù)積壓。原來(lái)我犯過(guò)錯(cuò)誤把頻譜儀讀數(shù)據(jù)和界面刷新放在一起結(jié)果頻譜儀數(shù)據(jù)量一大界面就卡死。后來(lái)改成生產(chǎn)者消費(fèi)者模式生產(chǎn)者循環(huán)專門負(fù)責(zé)從頻譜儀、6221、采集卡讀數(shù)據(jù)把數(shù)據(jù)和對(duì)應(yīng)的時(shí)間戳打包成簇通過(guò)隊(duì)列發(fā)給消費(fèi)者循環(huán)。消費(fèi)者循環(huán)負(fù)責(zé)處理、分析和顯示。隊(duì)列緩沖區(qū)的深度要設(shè)夠我一般設(shè)為10000個(gè)元素?cái)?shù)據(jù)量再大也不會(huì)丟。這里要特別注意隊(duì)列溢出問(wèn)題。如果消費(fèi)者處理速度跟不上生產(chǎn)者隊(duì)列會(huì)越積越多最后內(nèi)存暴漲。我給隊(duì)列加了監(jiān)控當(dāng)隊(duì)列深度超過(guò)80%時(shí)自動(dòng)丟棄一些非關(guān)鍵UI數(shù)據(jù)只保留測(cè)試數(shù)據(jù)同時(shí)在界面提示“系統(tǒng)繁忙”。這樣保證測(cè)試數(shù)據(jù)完整性的同時(shí)界面也不會(huì)被拖死。3.3 配置文件和測(cè)試項(xiàng)管理整個(gè)項(xiàng)目的測(cè)試項(xiàng)、閾值、儀器地址全部外置到配置文件里而不是寫死在代碼中。我用的是INI格式簡(jiǎn)單直觀產(chǎn)線工程師用記事本就能改。配置文件里分幾個(gè)段儀器地址段、報(bào)文參數(shù)段、射頻閾值段、時(shí)序閾值段、數(shù)據(jù)庫(kù)連接段、報(bào)告模板路徑段。配置驅(qū)動(dòng)的意義在于換型靈活。同一個(gè)測(cè)試臺(tái)可能兼容多種型號(hào)應(yīng)答器不同型號(hào)的報(bào)文長(zhǎng)度、功率閾值、啟動(dòng)時(shí)間要求都不一樣。換型時(shí)不需要重新編譯軟件只換一個(gè)配置文件就行。后來(lái)我還做了一個(gè)配置文件版本號(hào)校驗(yàn)測(cè)試結(jié)果里會(huì)記錄當(dāng)時(shí)用的配置版本這樣追溯起來(lái)非常清楚。這里多說(shuō)一句教訓(xùn)。配置文件雖然方便但也容易被誤改。產(chǎn)線操作員有時(shí)候會(huì)隨手改掉某個(gè)閾值導(dǎo)致一批產(chǎn)品誤判。我給配置文件加了只讀保護(hù)和修改權(quán)限控制只有工程師賬號(hào)才能修改操作員賬號(hào)只能查看。測(cè)試軟件啟動(dòng)時(shí)會(huì)校驗(yàn)配置文件哈希值如果文件被動(dòng)過(guò)會(huì)提示并且拒絕繼續(xù)測(cè)試。4. 核心測(cè)試項(xiàng)的實(shí)現(xiàn)細(xì)節(jié)與調(diào)試過(guò)程4.1 報(bào)文解碼和CRC校驗(yàn)的實(shí)現(xiàn)報(bào)文測(cè)試是整個(gè)系統(tǒng)的靈魂。應(yīng)答器回發(fā)的信號(hào)是FSK調(diào)制載波4.23MHz符號(hào)率564.48kbps。在LabVIEW里先把頻譜儀設(shè)成IQ分析模式采集一段包含完整報(bào)文的IQ數(shù)據(jù)然后做FSK解調(diào)。解調(diào)我用了NI的Modulation Toolkit里面有現(xiàn)成的解調(diào)函數(shù)指定符號(hào)率、調(diào)制方式、頻偏范圍就能輸出符號(hào)序列。這里有一個(gè)關(guān)鍵參數(shù)是解調(diào)起始位置。信號(hào)不是一上電就穩(wěn)定輸出波形的開(kāi)頭有一段前導(dǎo)碼和同步頭必須要先用同步頭做定時(shí)恢復(fù)找到報(bào)文的起始位再往后解析數(shù)據(jù)。如果直接從采樣起點(diǎn)開(kāi)始解調(diào)前面幾個(gè)bit大概率是錯(cuò)的整幀CRC校驗(yàn)肯定失敗。CRC校驗(yàn)我按協(xié)議規(guī)定的多項(xiàng)式寫了一個(gè)子VI用移位寄存器逐位處理。這里要注意兩點(diǎn)一是CRC初始值和出參是否需要按位取反不同協(xié)議差異很大二是CRC校驗(yàn)失敗時(shí)要把失敗的具體bit位置記錄下來(lái)方便分析問(wèn)題而不是只報(bào)一個(gè)“CRC Error”。在實(shí)際調(diào)試中我發(fā)現(xiàn)單靠頻譜儀一次IQ采集的報(bào)文來(lái)判CRC偶爾會(huì)出現(xiàn)偶發(fā)性的誤碼。后來(lái)調(diào)整策略每臺(tái)設(shè)備連續(xù)解調(diào)5幀要求至少4幀完全正確。這樣既保證了測(cè)試效率又避免了單幀偶發(fā)干擾導(dǎo)致的誤判。這個(gè)規(guī)則現(xiàn)在看起來(lái)簡(jiǎn)單當(dāng)時(shí)是誤判率居高不下時(shí)反復(fù)試出來(lái)的。4.2 射頻參數(shù)測(cè)量頻率、功率、頻偏怎么取射頻參數(shù)測(cè)量我用的是頻譜儀加軟件計(jì)算的組合。中心頻率測(cè)試用頻譜儀的frequency counter模式比手動(dòng)找峰值的精度高一個(gè)量級(jí)。輸出功率用channel power測(cè)量設(shè)定一個(gè)以4.23MHz為中心的積分帶寬把帶內(nèi)所有能量積分起來(lái)這樣比取peak值更穩(wěn)定也更能反映真實(shí)信號(hào)強(qiáng)度。FSK頻偏的測(cè)量我先把IQ數(shù)據(jù)解調(diào)然后看符號(hào)“0”和符號(hào)“1”對(duì)應(yīng)的瞬時(shí)頻率分布兩者的中心間距除以2就是頻偏。這個(gè)參數(shù)不能只看一兩個(gè)符號(hào)要統(tǒng)計(jì)一整幀所有符號(hào)的分布情況。我寫了一個(gè)分布直方圖VI把頻偏的均值、標(biāo)準(zhǔn)差都算出來(lái)標(biāo)準(zhǔn)差過(guò)大說(shuō)明調(diào)制質(zhì)量不好就算均值達(dá)標(biāo)也可能導(dǎo)致解調(diào)誤碼。頻譜儀的參數(shù)設(shè)置也很關(guān)鍵。分辨率帶寬設(shè)太大會(huì)把信號(hào)周圍細(xì)節(jié)抹掉設(shè)太小測(cè)量速度又跟不上。我測(cè)試下來(lái)中心頻率4.23MHz、span 2MHz、RBW 10kHz既能清晰看到FSK的雙峰測(cè)量速度也合適。RBW和VBW的比例一般設(shè)1比1或1比1.5太大會(huì)把噪聲抹平導(dǎo)致功率讀數(shù)偏低。4.3 啟動(dòng)時(shí)間與連續(xù)性判斷的時(shí)序處理啟動(dòng)時(shí)間測(cè)量是這個(gè)項(xiàng)目里比較容易被忽視的部分。應(yīng)答器從通電饋能到穩(wěn)定輸出報(bào)文這個(gè)時(shí)間過(guò)長(zhǎng)的話列車以時(shí)速350公里通過(guò)時(shí)可能還沒(méi)來(lái)得及讀到完整報(bào)文。測(cè)量啟動(dòng)時(shí)間不能用軟件輪詢的方式因?yàn)檩喸兊木纫蕾囉谘h(huán)速度誤差太大而且容易漏掉瞬間的電平跳變。我用了NI采集卡的計(jì)數(shù)器功能。方案是這樣的信號(hào)源開(kāi)始輸出饋能信號(hào)的同時(shí)給采集卡的數(shù)字輸入口發(fā)出一個(gè)同步觸發(fā)脈沖計(jì)數(shù)器以這個(gè)脈沖的上升沿作為時(shí)間起點(diǎn)應(yīng)答器回發(fā)的射頻信號(hào)經(jīng)過(guò)一個(gè)檢波二極管電路轉(zhuǎn)換成直流電平送到另一路數(shù)字輸入口當(dāng)這路輸入檢測(cè)到上升沿時(shí)計(jì)數(shù)器停止計(jì)時(shí)時(shí)間差就是啟動(dòng)時(shí)間。這個(gè)方案的核心是硬件的邊沿觸發(fā)和計(jì)數(shù)器精度可以達(dá)到微秒級(jí)完全不受Windows系統(tǒng)調(diào)度的干擾。當(dāng)時(shí)為了驗(yàn)證這個(gè)方案我用信號(hào)發(fā)生器做模擬源輸入標(biāo)準(zhǔn)延遲信號(hào)反復(fù)測(cè)量精度穩(wěn)定在±50微秒以內(nèi)完全滿足協(xié)議要求。連續(xù)性判斷我用的是頻譜儀的zero span模式把中心頻率設(shè)在4.23MHz看時(shí)間域上的信號(hào)包絡(luò)。通過(guò)包絡(luò)的持續(xù)時(shí)間和平坦度可以判斷應(yīng)答器在整個(gè)發(fā)送窗口內(nèi)有沒(méi)有中斷、有沒(méi)有掉功率。這個(gè)測(cè)試看起來(lái)簡(jiǎn)單但能抓到競(jìng)品設(shè)備偶爾出現(xiàn)的“打嗝”現(xiàn)象——報(bào)文中間突然斷開(kāi)一個(gè)bit的時(shí)間CRC過(guò)濾時(shí)卻不一定每次都抓得到。5. 產(chǎn)線上真實(shí)踩過(guò)的幾個(gè)坑從誤判到反復(fù)停機(jī)5.1 地環(huán)路讓我排查了整整兩天有一次產(chǎn)線反饋功率測(cè)量值不穩(wěn)定同一個(gè)待測(cè)品連續(xù)測(cè)試的數(shù)據(jù)上下跳動(dòng)接近0.5dB但把儀器搬到研發(fā)實(shí)驗(yàn)室里就正常。我和產(chǎn)線的維護(hù)同事排查了兩天換過(guò)頻譜儀、換過(guò)天線、重新校準(zhǔn)過(guò)電纜都沒(méi)用。最后我用示波器掛在頻譜儀的中頻輸出上才看到有一個(gè)微弱的50Hz工頻分量。原因就是地環(huán)路。機(jī)柜里信號(hào)源和頻譜儀插在不同的電源排插上地線之間存在電位差這個(gè)電位差通過(guò)射頻電纜的屏蔽層形成回路電流把工頻干擾耦合進(jìn)了信號(hào)鏈路。解決方案很簡(jiǎn)單所有設(shè)備強(qiáng)制接到同一個(gè)電源排插射頻電纜屏蔽層只在主機(jī)端單端接地另一端懸空。處理后功率讀數(shù)穩(wěn)定了一個(gè)量級(jí)。這個(gè)坑給我最深的教訓(xùn)是做射頻測(cè)試系統(tǒng)第一優(yōu)先考慮的不是先進(jìn)功能而是接地和屏蔽。電磁兼容問(wèn)題一旦出現(xiàn)癥狀千奇百怪而且沒(méi)有任何日志能幫你查。5.2 預(yù)觸發(fā)時(shí)間不夠?qū)е聢?bào)文頭被截?cái)嘬浖暇€后陸陸續(xù)續(xù)出現(xiàn)報(bào)文解析偶發(fā)失敗特別是一天中第一次測(cè)試時(shí)最容易出現(xiàn)。后來(lái)我把頻譜儀的IQ采集設(shè)置打開(kāi)發(fā)現(xiàn)采集起始點(diǎn)比信號(hào)到達(dá)晚了一點(diǎn)報(bào)文開(kāi)頭被切掉了一截。原因是我把觸發(fā)模式設(shè)成了IF功率觸發(fā)信號(hào)到了之后才開(kāi)始采樣預(yù)觸發(fā)時(shí)間設(shè)得又太短前導(dǎo)碼和同步頭直接丟了。解決方法是改成外部觸發(fā)以信號(hào)源開(kāi)始饋能的脈沖作為頻譜儀采樣觸發(fā)的起點(diǎn)同時(shí)把預(yù)觸發(fā)時(shí)間從0改成2毫秒確保把信號(hào)建立過(guò)程完整記錄下來(lái)。這個(gè)改動(dòng)之后報(bào)文解析的成功率從98%提升到了99.9%以上。產(chǎn)線測(cè)試最怕的不是偶發(fā)失敗而是偶發(fā)失敗被當(dāng)成不合格品處理。像這種情況根源在測(cè)試系統(tǒng)自身不在被測(cè)品。5.3 操作員動(dòng)了夾具位置測(cè)試結(jié)果整體漂移還有一次整個(gè)白班的測(cè)試數(shù)據(jù)功率讀數(shù)都偏低但沒(méi)有報(bào)警只是每臺(tái)設(shè)備的功率都靠近內(nèi)控線下限。我看趨勢(shì)圖才發(fā)覺(jué)不對(duì)勁跑到產(chǎn)線一看原來(lái)是操作員嫌掃碼槍線纜礙事把線纜繞在了接收環(huán)天線的連接桿上。線纜帶走了部分射頻能量導(dǎo)致信號(hào)幅度整體下降。這個(gè)問(wèn)題的根源是我設(shè)計(jì)夾具時(shí)沒(méi)有考慮產(chǎn)線操作的實(shí)用性。后來(lái)我把天線連接桿和線纜做了固定走線槽天線周圍用防護(hù)罩包起來(lái)操作員正常情況下摸不到天線區(qū)域。同時(shí)加了一個(gè)標(biāo)定流程每天早班用標(biāo)準(zhǔn)應(yīng)答器測(cè)一次基準(zhǔn)值如果基準(zhǔn)值偏離正常范圍超過(guò)0.2dB測(cè)試軟件禁止啟動(dòng)強(qiáng)制產(chǎn)線找工程師處理?;鶞?zhǔn)值標(biāo)定這個(gè)機(jī)制之后幫我們擋掉了很多次潛在批量誤判事故。6. 測(cè)試數(shù)據(jù)的去向批次追溯和報(bào)表管理6.1 原始數(shù)據(jù)存TDMS判定結(jié)果存數(shù)據(jù)庫(kù)測(cè)試系統(tǒng)的數(shù)據(jù)管理直接影響后續(xù)質(zhì)量追溯和客訴處理。我的設(shè)計(jì)是分級(jí)存儲(chǔ)原始波形數(shù)據(jù)存TDMS文件判定結(jié)果和核心參數(shù)存數(shù)據(jù)庫(kù)報(bào)表模板單獨(dú)生成。TDMS是NI自家的二進(jìn)制格式寫入快還能在文件里附帶屬性信息。我把SN碼、測(cè)試時(shí)間、軟件版本、配置文件版本、儀器校準(zhǔn)信息都寫進(jìn)TDMS文件的屬性里這樣每一個(gè)測(cè)試記錄的原始數(shù)據(jù)都是自描述的后期不論誰(shuí)打開(kāi)這個(gè)文件都能清楚看到當(dāng)時(shí)的測(cè)試環(huán)境。判定結(jié)果存到了MySQL數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中包含一個(gè)測(cè)試記錄主表和一個(gè)測(cè)試明細(xì)表。主表存SN碼、判定結(jié)果、測(cè)試時(shí)間、工單號(hào)明細(xì)表存每一項(xiàng)的具體數(shù)值。這樣產(chǎn)線質(zhì)檢要查某臺(tái)設(shè)備的測(cè)試歷史輸入SN碼就能拉出全部記錄還能看趨勢(shì)。數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)時(shí)我加了索引SN碼和時(shí)間戳查起來(lái)很快幾百萬(wàn)條記錄也不卡。6.2 報(bào)表模板與自動(dòng)歸檔客戶和內(nèi)部質(zhì)量部都要求提供測(cè)試報(bào)告用LabVIEW自帶的Report Generation Toolkit生成Excel報(bào)表。報(bào)表里包含SN碼、產(chǎn)品型號(hào)、各項(xiàng)測(cè)試值和判定結(jié)果還會(huì)附上一個(gè)波形截圖方便直觀看到報(bào)文解調(diào)情況。每次測(cè)試完成后自動(dòng)生成報(bào)表按日期和SN號(hào)命名歸檔到服務(wù)器指定目錄。后來(lái)質(zhì)量部提了需求希望日?qǐng)?bào)和周報(bào)自動(dòng)統(tǒng)計(jì)當(dāng)期的合格率、返修率、各不合格項(xiàng)占比。我用SQL直接查數(shù)據(jù)庫(kù)生成統(tǒng)計(jì)結(jié)果寫了個(gè)定時(shí)任務(wù)每天早上自動(dòng)生成前一天的產(chǎn)線日?qǐng)?bào)發(fā)到指定郵箱。這個(gè)功能極大減輕了質(zhì)量工程師的重復(fù)勞動(dòng)也讓他們更愿意信任這套系統(tǒng)。6.3 關(guān)于數(shù)據(jù)防篡改的一些想法產(chǎn)線數(shù)據(jù)最怕被改。測(cè)試結(jié)果是PASS的改成FAIL會(huì)造成誤返工FAIL的改成PASS則是質(zhì)量事故。我在數(shù)據(jù)庫(kù)表里加了一個(gè)校驗(yàn)字段用SN碼、測(cè)試時(shí)間、最終判定結(jié)果的字符串算了一個(gè)SHA1哈希值任何人在數(shù)據(jù)庫(kù)里改了原始字段哈希校驗(yàn)就會(huì)失敗審計(jì)時(shí)能立刻發(fā)現(xiàn)。這套方法算不上高深但效果很實(shí)在。有一次質(zhì)量部做年度審計(jì)就靠這個(gè)哈希機(jī)制確認(rèn)了一段時(shí)期內(nèi)的測(cè)試數(shù)據(jù)沒(méi)有被任何人修改過(guò)順利通過(guò)了外審。如果你的產(chǎn)線測(cè)試系統(tǒng)也有數(shù)據(jù)追溯要求建議從設(shè)計(jì)之初就把防篡改考慮進(jìn)去事后補(bǔ)會(huì)非常麻煩。7. 項(xiàng)目維護(hù)期的一些體會(huì)做完整套LabVIEW應(yīng)答器出廠測(cè)試系統(tǒng)后我最大的感受是寫測(cè)試邏輯只占整個(gè)項(xiàng)目三分之一的工作量另外三分之二用在系統(tǒng)穩(wěn)定性、現(xiàn)場(chǎng)異常處理和數(shù)據(jù)追溯上。LabVIEW的圖形化編程讓這個(gè)復(fù)雜系統(tǒng)變得可控但它不會(huì)自動(dòng)幫你解決射頻鏈路、電磁兼容、工業(yè)環(huán)境這些“代碼之外”的問(wèn)題。有幾個(gè)細(xì)節(jié)值得后來(lái)的同行參考。一是狀態(tài)機(jī)一定要有看門狗機(jī)制任何一個(gè)測(cè)試步驟超過(guò)最大時(shí)間都要自動(dòng)報(bào)錯(cuò)并復(fù)位儀器避免程序無(wú)限卡死二是所有日志都要帶時(shí)間戳產(chǎn)線排查問(wèn)題時(shí)最需要的就是“什么時(shí)間發(fā)生了什么”三是波形原始數(shù)據(jù)一定要保存下來(lái)PASS的也建議存有些質(zhì)量問(wèn)題幾個(gè)月后才能從波形趨勢(shì)上看出端倪沒(méi)有原始數(shù)據(jù)就只能干瞪眼。這個(gè)項(xiàng)目的意義不在于多先進(jìn)而在于讓一套復(fù)雜的近場(chǎng)耦合射頻測(cè)試變得穩(wěn)定、可追溯、可復(fù)現(xiàn)。當(dāng)你看到一臺(tái)臺(tái)應(yīng)答器在幾秒鐘內(nèi)自動(dòng)完成所有測(cè)試并打出合格標(biāo)簽時(shí)會(huì)發(fā)現(xiàn)前期踩過(guò)的每一個(gè)坑都是值得的。