<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 牛人業(yè)話 > 天靈靈地靈靈 遙控為何會(huì)失靈

          天靈靈地靈靈 遙控為何會(huì)失靈

          作者:天雷君 時(shí)間:2018-11-16 來源:電子產(chǎn)品世界 收藏

          3

          本文引用地址:http://www.ex-cimer.com/article/201811/394465.htm

            收到測試大姐的反饋后,灑家立馬收拾了心情,屢起袖子,架起示波器,測試了起來。果不其然,測試了幾十次,示波器上的接收波形好好的,但是BCM就是沒有響應(yīng),統(tǒng)計(jì)出來的失靈概率為20%左右。

            不消說,肯定是報(bào)文接收程序出了問題。為了敘述方便,先簡要介紹一下接收程序的設(shè)計(jì)。

            遙控報(bào)文是一串射頻位位流,遙控接收程序的目的是從這一串射頻位位流中提取遙控命令數(shù)據(jù)。為了實(shí)現(xiàn)這一點(diǎn),大致需要進(jìn)行“接收射頻位位流”、“解碼數(shù)據(jù)位位流”、“提取數(shù)據(jù)場數(shù)據(jù)”、“解密數(shù)據(jù)”四個(gè)步驟。

            其中,射頻位到數(shù)據(jù)位采用了曼徹斯特編碼形式,以射頻位01表示數(shù)字位1,以射頻位10表示數(shù)字位0,BCM采用上升沿觸發(fā)中斷的方式,根據(jù)相鄰兩個(gè)上升沿之間的時(shí)間間隔來賦值射頻位。BCM根據(jù)遙控報(bào)文的格式提取出“數(shù)據(jù)場”中的射頻位位流,然后進(jìn)行曼徹斯特解碼,計(jì)算出數(shù)據(jù)位位流,進(jìn)而提取出字節(jié)形式的數(shù)據(jù),解密后,提取其中的遙控命令,進(jìn)而執(zhí)行相關(guān)的閉鎖、解鎖、尋車等操作。

            顯然,肯定是“接收射頻位位流”這個(gè)步驟出了問題,因?yàn)榧偃羰呛竺嫒齻€(gè)步驟其中之一出了問題,那就不是偶爾失靈,而是總是失靈的大故障了。

            由于曼徹斯特編碼的射頻位位流中,相鄰兩個(gè)上升沿的間隔取值只可能為2T、3T、4T,T為射頻位位寬。因此,在“接收射頻位位流”的具體實(shí)現(xiàn)中,BCM根據(jù)上升沿時(shí)間間隔大小推斷出射頻位,考慮到上升沿中斷觸發(fā)時(shí)刻和中斷服務(wù)程序之間的延遲,考慮到數(shù)據(jù)捕捉模塊時(shí)鐘源的精度,在程序里,2T、3T、4T的判斷都留了足夠的余量,照理說,也不該出問題。

            總之,和往常一樣,“設(shè)計(jì)”上無懈可擊,定是“實(shí)現(xiàn)”上出了問題。

          4

            代碼是“實(shí)現(xiàn)”“設(shè)計(jì)”的載體,灑家盯著代碼端詳半天,實(shí)在看不出個(gè)所以然,只好付諸調(diào)試。筆者開了一個(gè)輪轉(zhuǎn)型的大數(shù)組,存儲(chǔ)在中斷服務(wù)程序中計(jì)算出來的射頻位位寬,一番調(diào)試,終于看出了一些端倪:

            原來,在一些規(guī)整的射頻位位寬之后,竟然存在既不是2T、也不是3T和4T的位寬。射頻位在這里斷了線,后面的數(shù)據(jù)位肯定不正確,遙控失靈自然也是跑不了的了。筆者多次測試之后,發(fā)現(xiàn)了個(gè)規(guī)律,即這些異常位寬要么是2T-3T之間,要么是3T-4T之間,也不算過于異常。

            看來,在一個(gè)數(shù)據(jù)位周期中(2T),貌似有的上升沿出現(xiàn)得早,有的上升沿出現(xiàn)得晚,既如此,把2T-3T之間的處理為3T,3T-4T之間的處理為4T,就可以補(bǔ)救這種上升沿的錯(cuò)位。

            順著這種思路,筆者迅速修改了代碼,然后熱火朝天地測試了起來,果然,失靈的幾率大大下降了,測試上50次,只會(huì)失靈一兩次了。

            ‘也許,這剩下的一兩次真的就是被遙控鑰匙過濾掉了吧。’歷盡劫波的我暗暗想到。不過,為了避免測試大姐再次上門,我決定再多測試幾次。灑家懷揣著小小的僥幸心理,一邊看著示波器,一邊按著按鍵,一邊聽著測試臺(tái)上的門鎖動(dòng)作聲音,緊張地再次測試起來。

            都說好事多磨,但是常人實(shí)在經(jīng)受不住一磨再磨,一通操作下來,灑家悲催地發(fā)現(xiàn),這剩下的一兩次失靈竟然是真的失靈了!

          5

            我斜斜地躺在轉(zhuǎn)椅上,茫然地看著天花板,經(jīng)過一兩天的奮斗,豪氣消耗大半,牙齒也開始隱隱作痛了,空空如也的腦袋中兀自循環(huán)播放著孫中山先生的臨終遺言:革命尚未成功,同志仍需努力!

            ‘要不算了吧,失靈概率2%-3%之間,用戶應(yīng)該是能接受得了的吧?偶爾失靈一下,再多按一下就是了,用戶肯定覺察不出來的!’在陽光的照射下,平時(shí)肉眼看不見的小灰塵在空中慢慢舞動(dòng),‘就像這些灰塵一樣,倘若不是太陽這么好,人們怎么能注意到它們的存在呢?’我在心里給自己留好了后路。

            正盤算間,測試大姐爽朗的笑聲從身邊飄過,只見她一雙丹鳳三角眼,兩彎柳葉吊梢眉,身量苗條,體格風(fēng)騷。粉面含春威不露,丹唇未啟笑先聞,活脫脫一個(gè)王熙鳳??!我捫心自問,‘惹得起嗎?惹不起!’一念至此,灑家一個(gè)激靈,‘對(duì)得起用戶嗎?對(duì)不起!’既然如此,走你!繼續(xù)解決問題!

          6

            話不多說,既然問題是由于在一個(gè)數(shù)據(jù)位周期中有的上升沿出現(xiàn)得早,有的上升沿出現(xiàn)得晚而導(dǎo)致的,那么,現(xiàn)在需要搞明白的是,究竟是上升沿確實(shí)出現(xiàn)得比預(yù)期早或者晚,導(dǎo)致位寬異常,還是由于系統(tǒng)運(yùn)行期間,上升沿觸發(fā)時(shí)刻和中斷服務(wù)程序之間的延遲忽高忽低而導(dǎo)致解析出來的位寬出現(xiàn)異常。

            為了確認(rèn)這一點(diǎn),筆者開始第一次認(rèn)真地對(duì)著示波器看起遙控報(bào)文的波形來,當(dāng)然,有的看官可能會(huì)問了,為什么之前不看這個(gè)波形啊?說實(shí)在話,我還真的無言以對(duì),反正之前沒看過就是了。所幸遙控報(bào)文的header部分有上百個(gè)數(shù)據(jù)位0,也很規(guī)律,灑家身體前傾,扭著示波器上的時(shí)間軸,雙目圓睜,看著時(shí)間刻度,果然,有的上升沿出現(xiàn)得早,有的上升沿出現(xiàn)得晚,一念至此,筆者懸著的心稍稍放了下來,這說明不是中斷服務(wù)程序延遲導(dǎo)致的!好心情維持沒多久,我這顆小心臟又再次懸了起來,因?yàn)椋热皇氰€匙那端把位寬搞得亂七八糟,BCM這端怎么也解決不了啊!

            日光漸移,透過窗戶,將灑家的身影拉得老長。我盯著影子中的大好頭顱,撓著頭皮,手指翻動(dòng),倒像是密宗修行里結(jié)的一個(gè)個(gè)手印。阿彌陀佛加持,菩薩保佑,總得想個(gè)解決辦法出來!

            我默默翻動(dòng)著在示波器時(shí)間軸上不斷游走的波形,目光慢慢從上升沿移動(dòng)到了下降沿上面,‘上升沿不標(biāo)準(zhǔn),下降沿是否可能標(biāo)準(zhǔn)呢?’我模模糊糊地想著,同時(shí)統(tǒng)計(jì)著下降沿之間的時(shí)間間隔,剛剛統(tǒng)計(jì)了四五個(gè),問題的解決方案就已經(jīng)向我遙遙招手了。下降沿之間的時(shí)間間隔標(biāo)準(zhǔn)多了,我一口氣統(tǒng)計(jì)了20個(gè),發(fā)現(xiàn)報(bào)文header部分的波形中相鄰下降沿的時(shí)間間隔都在標(biāo)準(zhǔn)的2T左右,基本上沒有任何誤差!

            剩下的事情就簡單了,把“接收射頻位位流”程序改一改,改成下降沿觸發(fā)中斷,然后相應(yīng)地把“解碼數(shù)據(jù)位位流”程序改一改,再次測試100次,百發(fā)百中!誰能想得到,問題竟這樣戲劇般地解決了!故障迅速解決掉了,但是它揮一揮衣袖,這牙疼卻不帶走,仍然折磨了我一天才慢慢消退。

            事后想來,這跟設(shè)計(jì)鑰匙的廠家編寫鑰匙程序的方式有著莫大關(guān)系,他們的程序可以在射頻位的下降沿上保證周期準(zhǔn)確性,卻無法在上升沿上保證時(shí)間精度,倘若反過來,他們的程序能夠在上升沿上保證周期準(zhǔn)確性,我也就不會(huì)遇到鑰匙失靈的問題,當(dāng)然,也就不會(huì)有這么有趣的經(jīng)歷了。

            后記

            鹵水點(diǎn)豆腐,一物降一物,獅子怕大象,大象怕老鼠。嵌入式產(chǎn)品出了問題,千萬不要怕,也不要躲,有Bug才是日常工作的常態(tài),真是沒有Bug,日子也會(huì)很無聊。正所謂:莫愁前路無知己,總有Bug跟著你。


          上一頁 1 2 下一頁

          關(guān)鍵詞: bug 遙控

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();