新聞中心

EEPW首頁(yè) > 牛人業(yè)話 > 萬物皆需濾波,否則系統(tǒng)翻車

萬物皆需濾波,否則系統(tǒng)翻車

作者:光華居士 時(shí)間:2019-01-31 來源:電子產(chǎn)品世界 收藏

“這是一個(gè)最好的時(shí)代,也是一個(gè)最壞的時(shí)代,這是一個(gè)智慧的年代,也是一個(gè)愚蠢的年代。”拿英國(guó)大文豪狄更斯的這段話用來描述這個(gè)信息爆炸的現(xiàn)代社會(huì)再合適不過了。

本文引用地址:http://m.butianyuan.cn/article/201901/397351.htm

  當(dāng)代社會(huì),網(wǎng)絡(luò)四通八達(dá),觸角遍布天下,宅在家中,只要連上網(wǎng),我們似乎就被賦予了神通的力量,生了千里眼,足不出戶,可觀天下,長(zhǎng)了順風(fēng)耳,動(dòng)動(dòng)鼠標(biāo),就能捕捉到空中永不消逝的電波。遠(yuǎn)古時(shí)代交通基本靠走,通信基本靠吼,就連那個(gè)傳奇般的瑯琊閣,也要靠遍布天下的眼線、不斷飛梭的信鴿傳書才能識(shí)盡天下人,算盡天下事,相比之下,這個(gè)耀眼的大時(shí)代對(duì)我們真是無私而慷慨。

  但是,這世上的一切都像月亮,總有一個(gè)陰暗面,讓人永遠(yuǎn)看不見。

  在這個(gè)無序地野蠻生長(zhǎng)的網(wǎng)絡(luò)社會(huì)中,在這個(gè)你方唱罷我登場(chǎng)的自媒體時(shí)代,每個(gè)人既是信息的消費(fèi)者,也是信息的生產(chǎn)者,在數(shù)以億計(jì)生產(chǎn)者有意無意的輸出中,數(shù)據(jù)終于泛濫的洪水滔天。各類垃圾數(shù)據(jù)猶如耀眼的煙花,騰空而來,逐風(fēng)而去,轉(zhuǎn)眼落地成渣。各種虛假的信息野蠻生長(zhǎng),來得轟轟烈烈,消失地?zé)o聲無息。總之,無用的垃圾信息撲面而來,讓網(wǎng)民們防不勝防,白白浪費(fèi)了大好的寶貴時(shí)光。

  面對(duì)信息的汪洋,網(wǎng)民們大都脆弱而迷惘,太多時(shí)候,不想看的應(yīng)有盡有,想看的一無所有。雖然常在河邊走,哪有不濕鞋,百花叢中過,很難做到片葉不沾身,但是我們?nèi)匀黄谂沃心敲匆欢聣蛘咭粡垷o形的網(wǎng),把我們不想看的都擋上一擋。

  哪里有壓迫,哪里就有反抗,更何況,信息過濾也是一個(gè)非常大的市場(chǎng)。于是乎,靠著對(duì)個(gè)人閱讀習(xí)慣的精準(zhǔn)推送,在數(shù)據(jù)洪流上添加了一道過濾網(wǎng)的今日頭條粉墨登場(chǎng)了。頭條剛剛開始嶄露頭角時(shí),灑家就切切實(shí)實(shí)地感受到了它的力量,這種體驗(yàn)實(shí)在太棒了,幾番磨合下來,頭條就像捕捉到了你的所思所想,給的都是想看的,不想看的通通入網(wǎng)?,F(xiàn)代社會(huì),效率至上,時(shí)間就是金錢,頭條通過“濾波”節(jié)約了網(wǎng)民的大量時(shí)間,它也得以迅速成長(zhǎng)。只是后來的頭條慢慢走了樣,變得空有技術(shù),內(nèi)容干貨越來越少,我也終于把它一卸了之。

  剛剛成立六年的頭條當(dāng)今市值千億,腳踢騰訊,掌摑百度,足以證明濾波有多么重要。做為嵌入式工程師的筆者,在一次莫名其妙的產(chǎn)品故障之后,也體會(huì)到了電子產(chǎn)品不濾波就翻車的尿性。

  1

  入冬后的北方越來越難熬了。

  公司地處偏郊,靠坐班車來回通勤。為了節(jié)約班車運(yùn)營(yíng)成本,司機(jī)師傅總是到點(diǎn)才開始熱車,往往路程過半,車內(nèi)才稍稍有了一些溫度,到了公司門前,車內(nèi)也終于變得一片溫暖。由儉入奢易,由奢入儉難,坐在車內(nèi)感受溫暖,眼見著車外凜冽的寒風(fēng)將枯枝吹得亂顫,也就不愿意下車面對(duì)這惱人的寒。這時(shí)候,只得帶著一百個(gè)不情愿,重新把自己裹得嚴(yán)嚴(yán)實(shí)實(shí),忍凍耐寒地大步奔向公司辦公室。

  到了辦公室,打開中央空調(diào)的開關(guān),頭兩個(gè)小時(shí)內(nèi)仍然不敢摘下帽子,不愿意伸出手。這段時(shí)間里,大家伙談天的熱情也不高,大都帶著帽子,縮著脖子,畏畏縮縮地坐在電腦桌前,先看看文檔打打前站,等到辦公室內(nèi)終于暖和過來,同事們才開始慢慢活泛起來,自此才開始一天熱火朝天的工作。

  灑家雖然一向埋頭苦干,也很耐得了煩,但在剛上班頭一兩個(gè)小時(shí)的冬眠蟄伏期,也頗不愿意遇上一些繁難,這一段時(shí)間,我也只求個(gè)平平安安。

  可是,歲月劍拔弩張,豈能盡如我們的想象?

  這不,剛到辦公室坐下不大會(huì)兒,來自項(xiàng)目合作方的一通電話就火急火燎地打了過來。

  “光華居士,碰上大事了,不知道怎么搞的,轉(zhuǎn)向燈一直閃個(gè)不停。”隔著電話,仍能聽得到合作方小鄭的焦急。

  當(dāng)?shù)弥D(zhuǎn)向燈莫名其妙地閃了一夜之后,灑家心里一個(gè)咯噔,“你們?cè)趺礈y(cè)試出來的?”打開程序后,我迅速鎖定了和轉(zhuǎn)向燈閃爍有關(guān)的代碼后,開始心平氣和地問起小鄭來。

  “我們是在對(duì)這款產(chǎn)品進(jìn)行帶負(fù)載試驗(yàn),拿一些時(shí)間繼電器產(chǎn)生開關(guān)信號(hào),觸發(fā)產(chǎn)品接通負(fù)載,大概十分鐘就跑完一個(gè)完整的測(cè)試周期了。測(cè)試的第一天一點(diǎn)事沒有,前天發(fā)現(xiàn)轉(zhuǎn)向燈突然閃個(gè)不停,我們斷了電重新上電,測(cè)到昨天又發(fā)現(xiàn)轉(zhuǎn)向燈突然閃個(gè)不停,到現(xiàn)在都快閃了一天了?!毙∴嵑?jiǎn)短地描述了問題產(chǎn)生的背景。

  我頭腦中閃過幾個(gè)可能的答案?!笆遣皇蔷鹃_關(guān)壞了?”我提醒小鄭。“如果警示開關(guān)一直有效的話,轉(zhuǎn)向燈是會(huì)閃個(gè)不停的!”

  “我們確認(rèn)了所有信號(hào),這些信號(hào)都很正常,光華居士,我們分析了大半天了,現(xiàn)在感覺應(yīng)該是軟件問題,要不你仔細(xì)看看代碼,分析分析哪里是不是有漏洞?”小鄭小心翼翼地提議道。

  很有可能就是軟件的問題,我在心里嘀咕道。

  2

  由于無法在公司重現(xiàn)產(chǎn)品測(cè)試環(huán)境,領(lǐng)導(dǎo)委派我到Z市去解決問題。出發(fā)時(shí)正趕上下雪,街邊行人稀少,路過的美女也藏起了撩人的小蠻腰。公交車小心翼翼地行駛在有些上凍的路面上,時(shí)而發(fā)出吱呀吱呀的聲音,灑家坐在搖搖晃晃的車上,有一搭沒一搭地考慮著這個(gè)問題,突然想到了一個(gè)可能的答案。

  ‘可能是定時(shí)器管理程序那里的問題,在轉(zhuǎn)向燈多次定時(shí)那里,有個(gè)對(duì)軟件定時(shí)器節(jié)點(diǎn)的計(jì)時(shí)次數(shù)的遞減操作,這是一個(gè)32位的變量,它是不是從0遞減到了2的32次方-1了?’灑家一面盤算著,一邊打開電腦,想驗(yàn)證一下自己的想法。

  看到代碼后,灑家不禁啞然失笑,原來我早就改變了定時(shí)器管理程序的實(shí)現(xiàn)方式,現(xiàn)在計(jì)時(shí)次數(shù)不是遞減,而是累加了,每次計(jì)時(shí)到達(dá)時(shí)將計(jì)時(shí)次數(shù)累加,然后和設(shè)定好的閾值進(jìn)行比較,如果大于等于閾值就說明已經(jīng)完成了多次定時(shí)。

  人的記憶真奇妙,大雁飛過天空了無痕,人之前干過的事情卻在腦子里扎下了根。

  3

  北風(fēng)吹,雪花飄,刮到臉上似鐮刀!在一片肅殺的天寒地凍中,灑家頂風(fēng)冒雪地來到項(xiàng)目合作方所在的Z市。

  寒暄幾句之后,小鄭把我引到測(cè)試臺(tái)前,一個(gè)高約兩米的測(cè)試機(jī)柜靜靜地矗立在房間的角落,前面有一些清晰但不耀眼的指示燈,后面就是一些時(shí)間繼電器和實(shí)打?qū)嵉能嚐?、車窗等?fù)載了。

  我探過頭去看了看,轉(zhuǎn)向燈正閃個(gè)不停,甚是刺眼。

  “你們一直沒有斷電?”我揉了揉被車燈晃得發(fā)花的眼睛,問起小鄭來。

  “沒有,知道你過來,我們沒敢斷電,就怕斷了電,問題就再也測(cè)不出來了?!毙∴崕е唤z不好意思的微笑,哎,多么老實(shí)的工程師?。?/p>

  接著是一陣無言的沉默,看著我攢眉蹙額地想事情,小鄭也識(shí)趣地站遠(yuǎn)了一些。產(chǎn)品線束零亂地接在測(cè)試臺(tái)上,在測(cè)試過程中,其它負(fù)載仍然有條不紊地相繼接通和關(guān)斷,轉(zhuǎn)向燈暫時(shí)正常一下,執(zhí)行完相關(guān)功能之后再一次返回?zé)o休無止的通斷輪回中。

  看著簡(jiǎn)陋的測(cè)試環(huán)境和凌亂的接線,我心里多多少少有些不安,這樣的測(cè)試環(huán)境,各個(gè)輸入線上得有多少雜波呀!不過,除了心疼產(chǎn)品要應(yīng)對(duì)這種無端的騷擾之外,灑家對(duì)雜波會(huì)產(chǎn)生產(chǎn)品功能故障倒是一點(diǎn)也不擔(dān)心,做為一名入職多年的嵌入式軟件工程師,灑家可以想得到,雜波一次次向產(chǎn)品襲來,大無畏的產(chǎn)品果斷啟用濾波功能,將一道道雜波斬于馬下,就是雜波來得再猛烈些,濾波也能游刃有余,不在話下!

  4

  灑家遇到問題一向喜歡快刀斬亂麻,憑著多年掃過的雷,掉過的坑,再輔以神神叨叨的直覺,一般都會(huì)精準(zhǔn)定位,快速爆破,直搗黃龍,這種順風(fēng)順?biāo)?,在一定程度上也滋養(yǎng)了我的輕狂。

  自古年少多輕狂,誰(shuí)不想,輕衣怒馬,仗劍走四方!

  這次,灑家檢查了觸發(fā)轉(zhuǎn)向燈閃爍的幾乎所有代碼,基本上都是有進(jìn)有出,閃爍幾次就會(huì)停下來,絕不至于閃個(gè)不停的。弄了半天還搞不清楚子丑演卯,身在異鄉(xiāng),進(jìn)退恓惶,真想跺跺腳,罵罵娘,以免被憋到抓狂。

  人的世界里充滿了爾虞我詐,計(jì)算機(jī)的世界卻始終表里如一,童叟無欺。轉(zhuǎn)向燈明明白白地突然在一邊閃個(gè)不停,搞得人心神不寧,再不正視問題就是赤裸裸的掩耳盜鈴!

  看來問題就出在還沒檢查過的最后一處代碼了,即碰撞報(bào)警功能。這款產(chǎn)品平時(shí)會(huì)檢測(cè)一個(gè)PWM形式的碰撞信號(hào),碰撞信號(hào)有效時(shí),會(huì)觸發(fā)轉(zhuǎn)向燈一直閃爍。

  可能嗎?測(cè)試臺(tái)還能鬼使神差地在碰撞信號(hào)線上產(chǎn)生出一個(gè)PWM形式的雜波來?

  世界千奇百怪,如果真有這樣的雜波,身經(jīng)百戰(zhàn)的灑家也有些感到奇怪。但是畢竟沒有了其它懷疑的對(duì)象,于是灑家收拾好心情,好好地分析了一下碰撞信號(hào)的檢測(cè)程序。

  在這款產(chǎn)品中,使用管腳的輸入捕捉功能檢測(cè)碰撞信號(hào),使用上升沿和下降沿同時(shí)捕捉的方式,檢測(cè)到上升沿后,記錄一個(gè)時(shí)間戳A,等到檢測(cè)到下降沿時(shí),再記錄一個(gè)時(shí)間戳B,再等待下一個(gè)上升沿,繼續(xù)記錄時(shí)間戳C。如果信號(hào)線上的高電平持續(xù)時(shí)間(B-A)和低電平持續(xù)時(shí)間(C-B)滿足碰撞信號(hào)形式,便認(rèn)為碰撞信號(hào)有效。

  分析到這里,灑家有些茫然了。

  5

  天外有天有無常,山外有山有他鄉(xiāng),雜波之外有雜波,難道正是PWM模樣?

  灑家正想沉浸在神秘主義和虛無主義的情緒里顧影自憐一番,小鄭屁顛屁顛地過來了。他帶著一副期待的神情,看了看我,看了看電腦,沉默了一會(huì)兒,終于問了出來;“是不是找到原因了?”

  “啊,”我不置可否,“還要再確認(rèn)一下!”

  時(shí)間寶貴,不可浪費(fèi),既然對(duì)碰撞信號(hào)檢測(cè)程序起了懷疑,不管三七二十一,先把代碼改了再說。

  于是,我在碰撞信號(hào)的檢測(cè)上也加了一層濾波。

  修改之后,必須連續(xù)三次PWM信號(hào)滿足碰撞信號(hào)形式,才會(huì)認(rèn)為碰撞信號(hào)有效。改完之后,我把新程序灌到板子上,把小鄭叫來,讓他重新對(duì)測(cè)試臺(tái)上了電,便先回了賓館。

  一路奔波,下了車直接過來頂鍋,看著系統(tǒng)的翻車,最后加了一層濾波,灑家也是累了狗了!

  傍晚時(shí)分,我緩緩踱步到了合作方公司,測(cè)試臺(tái)正在有條不紊地執(zhí)行各項(xiàng)功能,指示燈閃來閃去都很正常。

  接下來兩天正好是周末,我和小鄭在辦公室盯了兩天,一切正常!心態(tài)放松的我跟小鄭說明白了問題的來龍去脈,看著小鄭驚訝地遲遲合不上嘴,我毫不留情地又給了他重重一錘:碰撞信號(hào)輸入線上能引入PWM形式的雜波,你們應(yīng)該檢查檢查到底是測(cè)試臺(tái)的問題還是產(chǎn)品硬件的問題了!

  6

  回程的路上,我一直禁不住地胡思亂想,電子工程師的工作干得久了,我慢慢地變成了一個(gè)懷疑論者。在電子產(chǎn)品的世界里,一切都有可能發(fā)生,保持開放的態(tài)度、發(fā)散的思維對(duì)解決疑難雜癥特別重要。這一次經(jīng)驗(yàn)教訓(xùn)也給我結(jié)結(jié)實(shí)實(shí)地上了一課,正所謂:萬物皆需加濾波,否則系統(tǒng)會(huì)翻車!



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉