作者:楊福宇 2012年6月神九升天蛟龍下海深深地鼓舞著中國人:別人能做到的事我們現在也能做到了,特別是那些能為國家實現這些壯舉的人是何等年輕,可以預期在未來的磨練里他們會更成熟更老練,會做得越來越好,也就是預示著我們的明天會越來越輝煌。 我關心著后續的報道,因為我一直在研究CAN,看到其中關于神九用到CAN總線的事有二條,: 1. 九問“神九”精裝修遠超老前輩_北青網 “艙載醫監設備主機、數管分系統中央單元、航天員語音處理組件……中國航天科技集團公司九院771所是我國微電子和計算機領域的核心研制生產單位,這些由該所研制的與神舟九號飛行任務配套的產品均為飛行和返回的重要設備。 艙載醫監設備主機安裝在載人飛船艙內大底區,也就是航天員座椅下面,是航天員生理信息測量系統的數據處理中心,相當于航天員的“臨床護士”,通過“聽診器”——CAN通訊系統,負責對各個航天員的“心電、呼吸、血壓、體溫”四項生理健康指標信號進行實時接收,再通過總線傳輸至儀表系統顯示,完成飛行期間對航天員的醫學監督與醫學保障。” 2. “手眼通天”神九相約天宮-儀表板,航天員,人機交互,減振器,檢漏儀-北方網-新聞中心 “2011年春節剛過,在510所載人機電室的低頻實驗室里,正緊張的進行著神舟九號飛船儀表設備正樣件落焊后的出所測試,這是設備交付的最后一個關口。一個身影坐在幾臺手控設備前,正逐一進行著手控指令的通訊測試,他不是一名普通的測試人員,而是510所載人航天機電研究室主任——李文新。 李文新承擔了載人二期輔助儀表的研制和部分關鍵技術的攻關,組織完成了新一代輔助儀表原理樣機、初樣設備和正樣設備的研制。其中,CAN總線作為新一代儀表總線已應用到神舟九號飛船和目標飛行器上。” 我猜想,實際的應用還不止這些,因為從工程角度,用盡量少的技術品種在開發、維護、培訓是較合理的。 各位從我以前發表的博客可以知道,我關注的面很窄,就是CAN通信協議,不過CAN實在用得太廣了,只要你開車,你就在用到CAN。國外也有用于上天下海的例子,就是今天,別人也在用,沿用別人的經驗是非常自然的事。不過從我的觀點來看,CAN是有安全隱患的,我在博客里寫了,也寫了些文章,在“單片機與嵌入式系統應用”雜志上發表了。為了使這種風險減低,我是有責任重申我的觀點,這是國家興亡匹夫有責之責。是不是炒冷飯?不是的,因為那是關系航天員的安危,關系到我國航天事業的大事,我寧愿被徹底駁回,直到放心為止。 我發現的CAN安全隱患有二條,第一,它的錯幀漏檢率很大,即錯誤的幀未查出來,溜過去了你還不知道。遠非Bosch聲村稱的錯幀率*4.7*10-11,早已有人提到為1.3*10-7,我的數據為1.0*10-7: M.S. Thesis : Eushiuan Tran,”Multi-Bit flip Vulnerabilities in the Controller Area Network Protocol” Carnegie Mellon University Pittsburgh, PA, May 1999 [online] http://www.cs.cmu.edu/~koopman/thesis/etran.ps.qz accessed at 2007-12-31。 Simulations of the widely used Controller Area Network (CAN) protocol indicate that this problem can cause a double-bit error to result in a 1.3 x 10-7 probability of undetected corruption. 我提出了重構可疑幀的方法,簡要中文版見:楊福宇,“CAN協議的錯幀漏檢率改進“,《單片機與嵌入式系統應用》,2011, No.9,p.8-11,詳細的英文版見Fuyu YANG, On Residual Error Probability of CAN Protocol, http://www.frogenyozurt.com/wp-c ... or-Probabilioty.pdf。 第二,在error passive狀態會產生未預計到的通信連續出錯而收發中斷的狀態,有可能達到數十毫秒,就如病人雖還在崗位上但未在工作。中文見:楊福宇,“CAN總線中的一種安全隱患“,《單片機與嵌入式系統應用》,2009, No.1,p.20-22 , 楊福宇,“CAN消極報錯發送節點變為離線狀態的故障“,《單片機與嵌入式系統應用》,2009, No.5,p18-20, 楊福宇,“關于CAN隱患的爭辨“,《單片機與嵌入式系統應用》,2009, No.6,p.5-7,英文見Fuyu Yang, “An Undiscovered Safety Related Fault in CAN”: http://www.techonline.com/learning/techpaper/212902174。Fuyu Yang, “A Bus off Case of CAN Error Passive Transmitter”: http://www.techonline.com/learning/techpaper/212902170。 我在發表之前,曾在網上搜索國內外從事CAN應用與研究的專家,先將文章發給能聯系上的國內專家,不久再發可以送達的國外專家。在2008年以后數次在上海舉行的汽車電子會議上,征詢他們收到文章后的看法,但是沒有見到實質性的響應(支持或反駁),這令我很失望。但是,沒有實質性的反駁使我增強了信心。2011年11月上海工博會上我遇到了CiA(CAN in Automation)協會的會長Holger Zeltwanger,我問他文章收到沒有,有什么看法。他說收到了,歡迎這樣討論,認為我研究得很深,建議我關注一下CAN FD。這當然是外交辭令,但至少沒有反駁,相反,CAN FD中已經把CRC檢驗部分作了修改,不是證明了原來的CAN CRC方法有毛病嗎,可惜舊錯有改,并未改好,又添新錯。詳見:楊福宇,“有關CAN FD的評論“,《單片機與嵌入式系統應用》,2012, No.7,p.34-36。 對于這種反應,我唯有等待,我想換位思考:許多人士是太忙了,無暇顧及,我是做過項目的,知道當項目壓在頭上時,你會被它淹沒,沒有機會重起爐灶的。現在如果承認CAN 不安全,誰來擔損失,誰給你更安全的替代物?每一個人都被現實綁架了。 換位思考是有局限的,它不能成為不作為的理由。過去,煙草業是為國家積累資金出了大力的,但現在中國也有越來越多的認認同吸煙有害健康,所以要選煙草業有關的科學院院士都遭人反對。這說明人是有立場的,用“國家損失”或“農業損失”是對抗不了“人的生命是第一位“的。同樣的道理用到CAN安全問題上,在損失和安全中必須有選擇。 CAN 問題的發現是打開一個重新洗牌的機會:我們不是經常說不掌握核心技術嗎?當別人的核心技術有一環斷了,影響到整體時,你的改進不是使我們的差距大為縮小嗎? 你不是要找內需嗎?當CAN有問題時,我們造車的需要不是很大的內需嗎? 我們不是要避免低價的同質化競爭嗎?要知道低價的同質化競爭的根源是人才的低價的同質化,創新就可以避免同質化。 抱殘守缺,明知有問題而不作為實際上是希望等別人先解決問題,背靠大樹好乘涼。這種想法會害了自己,不知自己已立于危墻之下,隨時可能遭災,沒有腳踏實地而站在別人肩上的人,巨人摔跤了你會跌得更痛! 我們的國家經過改革開放三十年的發展,新一代學者已經成長,你們不應當因循守舊。從我2009年公開發表來已經4年,算算該有一批研究生畢業了,他們可能會思想開放,更能接受新的事物。寄希望于未來有更多的人能同意我的吸煙有害健康的比喻。我希望有更多的電子工程師關心CAN 安全問題,雖然你未必以此為業,至少你要關心你開的車是不是安全,沒有車也要想到可能有別人的車傷到你。所以你應該參與討論與解決問題的。 理解CAN 安全問題并不難,我將盡力深入淺出把問題給你講清楚,這是我新一批博客要做的事。 年輕是多么美好,精力充沛,跌倒了可以重來。我偶爾去張江的電影院看電影,一般是乘白天人少的時侯去,散場時看到滿街的二三十歲的年輕人,似乎自己也年輕了,有一種感動是別人很難理解的。當我年輕的時候,萬事都那么難,1961年的時候我為了計算一個四連桿機構的非線性誤差,那時沒有計算器,只有一個手搖的計算機,再找了一本十位三角函數表,算一下,查些表,這中間的輸入輸出非常容易錯,因為對著密密麻麻的表和長長的數據,很快就疲勞而出錯,只要有一個錯,就不準確,甚至前功盡棄。這件工作足足花了一個星期。而現在,你只需要寫好程序,幾秒鐘就得到結果,而且不會錯。再舉個例子,我們當時要看國外的文章,要等到國外的書或雜志寄到中國,然后內部復制(當時還沒有復印)分發到單位,有的要等數年之后,而現在甚至在會還沒開,只要你知道作者并與他聯系上,就可學到最新的知識。技術的發展、國家的開放為年輕人提供了多好的條件啊!你們沒有理由不大大地超越我們。 滿街的二三十歲的年輕人在國家的高科技園區工作,也讓我特別的高興,因為說到底國家的未來在年輕人,他們能擔當就表示國家的興旺已是指日可待。 |