加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

51的江湖 | 硬件不足軟件彌補,華容的移花接木

2015/08/15
5
閱讀需 18 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

上文《奇怪的溢出數(shù)據(jù)“65535”,不可抗拒的EMC》講到,錯誤再現(xiàn),華容陷入深思,分析之后,關于時鐘亂碼的問題,華容得到了初步的結論:EMC問題,也就是常說的電磁兼容問題...

硬件不足,軟件彌補;
先天不足,后天彌補;


那么,協(xié)議方面的問題該如何解決呢?日子就是問題疊著問題,接下來,華容面對的是本次的升級中最關鍵的環(huán)節(jié)--網(wǎng)絡協(xié)議下的在線升級功能。


雖然在單機版上實現(xiàn)了在線升級的功能,但是網(wǎng)絡版的升級關鍵點在于對網(wǎng)絡協(xié)議的支持,而網(wǎng)卡是量產(chǎn)的產(chǎn)品,協(xié)議也是成熟的。對于成熟的產(chǎn)品,無論是硬件還是軟件,大家都很忌諱對原有功能的修改,哪怕只是增加一個小小的功能,都必須對整個系統(tǒng)進行重新測評。但對于結果的評價,卻是眾說紛紜的:


修改成功了,被認為是理所應該的,畢竟是站在巨人的肩膀之上,沒有不成功的道理;
一旦修改失敗,那么幾乎是一敗涂地,不但新的功能將無法被正確執(zhí)行,而且可能導致原有功能出現(xiàn)錯誤,最可怕的結局就是“多米諾”效應,更何況口水也是可以淹死人的。所以,承接這樣的項目,必須有一顆大心臟,相當強大的心臟。


想一想,看一看目前事業(yè)部關于在線升級功能的處境,那么這個功能的“艱難”程度便可想而知了。


華容暗自思忖,即使有了前期的基礎,只不過是增加了繼承完成這個功能的把握,使之實現(xiàn)起來相對容易些,但著手之前,必須對這個項目再次審視和評估,加之自己目前的處境,不亞于徒手走鋼絲,一旦有絲毫的差錯,那么結局只有粉身碎骨。


想到這里,冷汗直流,拿著筆的手不禁有些發(fā)抖,于是起身,續(xù)水,端著杯子,踱步到窗前。


窗外看起來是陽光明媚,而實際上卻是寒冷無比,自己的處境與戶外的環(huán)境是何其的相似?


一杯熱茶下去,身體暖了,心暖了,手也暖了,回到座位上,再次在工作日記上寫下四個字:舉輕若重。


原來的協(xié)議是不能改變,現(xiàn)在需要增加新的內(nèi)容,而且新的內(nèi)容與原來的功能不屬于同一體系,換句話說,新的功能只是借用了原有通信機制的物理鏈路層和數(shù)據(jù)鏈路層的格式定義,而在數(shù)據(jù)通信方面,需要重新的定義發(fā)送端和接收端數(shù)據(jù)包的內(nèi)容。

?


按常理,增加協(xié)議的字段,原本難度不算大,大可不必如此緊張,但本次的修改不可同日而語:


第一、 客戶端的軟件必須修改,而且改動量盡可能做到最小,確保對整個系統(tǒng)影響降到最低;
第二、 為了保證第一條順利實現(xiàn),補充的協(xié)議內(nèi)容盡量要少,在數(shù)據(jù)通信方面,包括命令的格式、數(shù)據(jù)的類型、數(shù)據(jù)包的大小等,盡量保持與原來的一致;
第三、 網(wǎng)卡是連接PDA和客戶端的中轉站,按常理,其設計思路應該為“數(shù)據(jù)傳輸的通道”,即透傳方式,如果這樣,那么無需修改該設備的程序,反之,必須增加相關的指令解析,這樣工作量需要重新進行估算,甚至可能會因此而修改本次升級的方案設計。
第四、 PDA端的程序修改,以目前的掌握情況看,相對容易,涉及的內(nèi)容是代碼移植和命令解析。


綜合考評下來,很可能需要三方面的程序修改,而且要求這三方面協(xié)同一致才能夠保證網(wǎng)絡版在線升級的正確運行。正如當初所料,實現(xiàn)網(wǎng)絡版的在線升級,是非一己之力可以完成的,因為自己最多只能完成網(wǎng)卡和PDA的程序,客戶端是軟件部的工作,必須與軟件部的工程師協(xié)同合作,那么通信協(xié)議的補充便顯得格外重要了。


為此,華容重新整理了通信協(xié)議的文檔,對照PDA的程序代碼,并對每一個指令和內(nèi)容進行了詳細的注釋,然后,打開新接手的網(wǎng)卡程序,就通信協(xié)議方面,再次核對、校正每一條指令及內(nèi)容的定義。


“smart!”,當閱讀完畢網(wǎng)卡程序代碼的時候,華容不禁感嘆,同時原本懸著的一顆心也放松了下來:網(wǎng)卡的通信協(xié)議被設計為數(shù)據(jù)透傳模式。


這種模式對于增補協(xié)議來說,無疑是最有利的方式。但是仍然需要很小的改動,因為原來的數(shù)據(jù)通信支持兩種數(shù)據(jù)類型,并分別作了嚴格的定義,一種是ASCII字符串格式,一種是HEX格式。


前者用于營業(yè)數(shù)據(jù)的傳輸,這樣做有兩個好處:一方面因為上傳和下載的每個字節(jié)都是可見字符,因此非常便于通信雙方觀察與核對每條數(shù)據(jù)的內(nèi)容,另一方面有利于對非法數(shù)據(jù)的檢測,從而做出相應的判斷;


而后者則被用于傳輸顯示中文的點陣的字庫信息,采用HEX格式,無疑是效率最高的一種方式。


通過編譯單片機的執(zhí)行代碼通常是.HEX文件,但也可以直接生成用于下載的.BIN文件,這樣在下載時,可以使用原來的HEX格式的協(xié)議,所做的只不過是增加三個指令。華容料定,網(wǎng)絡版的在線升級功能,將是她接手煙草局項目以來,關于研發(fā)方面,進展最順利的一次。


完善的協(xié)議無疑是一顆定心丸,估算了一下當前的進展,華容把接下來的任務賦予了非常具有詩情畫意的名稱:移花接木。


移花接木,顧名思義,借助“移植”的手段完成當前的任務。這里的 “木”是協(xié)議,“花”是待升級的執(zhí)行文件。為了保證任務的順利進行,需要首先模擬出“木”—用于模擬客戶端的上位機軟件,模擬這個軟件之前必須確認協(xié)議是否正確。

?


次日,華容拿著打印版的材料,出現(xiàn)在測試部,她需要與安心確認一下,自己對協(xié)議的理解是否正確。簡單的寒暄之后,華容遞上準備好的材料。


“安姐,麻煩你確認一下這份協(xié)議是否準確?”,安心比華容年長幾歲。


“什么協(xié)議?”安心邊說邊接過材料。


“這是我剛剛整理的網(wǎng)卡通信協(xié)議,不知道是否準確,所以特地來求證一下。”華容解釋道。


“網(wǎng)卡的通信協(xié)議?……”,安心看起來是自言自語,手里翻閱著打印的文件,眼睛在快速地瀏覽。


“你剛才說,這是你剛剛整理的,對嗎?”瀏覽完畢,安心抬頭問道。


“是的,有什么問題嗎?”華容以為發(fā)現(xiàn)了什么錯誤,難免有些緊張,忙回答。


“挺好的,沒有問題,只不過…”,安心若有所思。


“只不過什么?”看到安心的反應,華容難免有些急迫。


“哦,別緊張,我指的是協(xié)議的表達方法和書寫形式,有些不習慣,這種方法與我們慣用的方法不一樣?!卑残难a充到,一邊仍舊擺弄這手里的紙張。


“是這樣啊,公司的通用方式是哪一種?我可以參照著修改一下?!比A容小心翼翼地問詢。


“不必了,這種寫法更明確,你運用表格的方法,來描述各個字段的定義和長度,看起來和有些ISO/IEC中數(shù)據(jù)定義的方法有些類似,而我們慣用的手法是純文本描述,分行定義?!卑残囊贿呏钢鴧f(xié)議的字段,一邊解釋,“這種編寫方法,比用純文本描述費事費力,但效果一目了然,你一定花了不少時間吧?”


華容暗自佩服安心的眼力,此類文件的編寫風格和手法的確是受到了標準文件的影響?!鞍步悖瑝騾柡?!”說著,向上豎起拇指。“雖然占用了一點兒時間,但是磨刀不誤砍柴工,這種方式的定義,對于編程時的數(shù)據(jù)處理,相對輕松些。”


“嗯,編程時的確容易些,相應的字段和地址實現(xiàn)已經(jīng)在協(xié)議中計算完畢,編程的時候直接賦值就可以了?!卑残谋硎举澩?,順手把文件換給了華容。


華容接過文件,拋出了第二個話題:“安姐,聽說現(xiàn)在你們在調(diào)試一個功能,就是網(wǎng)絡版的在線升級,進展順利嗎?”


“還行吧,在線升級功能實現(xiàn)了,但現(xiàn)在系統(tǒng)工作還有些不穩(wěn)定?!?/p>


“不穩(wěn)定?指的是哪個方面?”


“有些時候,單片機可以進入升級狀態(tài),有些時候無法進入,目前正在解決這個問題。”安心回答,若有所思,“你怎么關注這個問題了?”


“哦,是這樣的,煙草局的項目也需要在線升級功能,硬件條件和你們現(xiàn)在情況是相同的,所以前來取經(jīng),聽取關于在線升級方面的建議和意見。”華容解釋。


“嗨,哪有什么意見和建議???”對方嘆了一口氣,“我覺得現(xiàn)在的情況陷入了一個僵局,一個不穩(wěn)定的在線升級,還不如人工方式可靠。”


安心面露難色,看起來是真的遇到了麻煩。


“嗯~嗯~”,華容點點頭,表示也有同感,“那么,安姐,你看一下,把這個協(xié)議用于在線升級,在通信方面軟件部那邊可以實現(xiàn)嗎?”


“沒有問題?!卑残幕卮鸬暮芨纱?,“不過效率方面,那要看是誰來做了,你打算找哪位合作?”


“我哪里權利指定合作的工程師呢?”華容笑著說,“岳總指定的是洪流?!?/p>


“那么更加沒有問題了?!?/p>

與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉載!

內(nèi)容匯總:

之一:部門重組,誰會出局?

摘要:沈陽的一場大雪似乎也預示著公司的某些變動,果然在休整后的第二天得到了證實,去掉一個部門,重組一個部門,孤立了一些人,拉攏了一些人,兵還是兵,將還是將...

之二:燙手的山芋,華工的困惑

摘要:部門雖然重新劃分,但辦公室里的格局和人員的位置都沒有變動,好像沒有發(fā)生任何事情。華容原本是個局部變量,從不參與本部門以外的事情,但這次人事變動,她的主管設計師的職位依舊,只不過屬性變成了全局變量...

之三:被隱藏的Bug

摘要:華工對自己的項目滿腹疑惑,后來在和燕飛的一場談話中了解到了很多緣由,看似表面風光的銷售業(yè)績只有還有不為人知的秘密...

之四:要根據(jù)PCB設計程序,被算計了!

摘要:經(jīng)過與燕飛中午的一番談話,華容不敢再對眼前的PDA(手持機)怠慢了,但是只有她自己清楚其中的問題:框圖已經(jīng)有了,芯片的資料可查,那么詳細的電路原理圖,就不再是問題,可是偏偏無人提供原理圖的電子版,害得她不得不自己動手...

之五:憶當年200K代碼聯(lián)調(diào)的默契

摘要:平心而論,華容覺得自己與華萍之間還談不上“默契”,因為到目前為止,這個詞只屬于當年那個team。是她在轉行之后,加入的第一個開發(fā)團隊—中鼎公司中文版ECR的項目組...

之六:軟件和硬件,如今要彼此刮目相看

摘要:真正的交接開始了,果然不出華容的意料,華萍想盡辦法隱藏原理圖,讓她感到意外的是華容在兩年前已經(jīng)開始學習畫板子,而華容也知道她開始寫程序,曾經(jīng)推心置腹的合作伙伴如今心有芥蒂...

之七:箭在弦上,改發(fā)就發(fā)

摘要:華容冷靜地思考了一下整個“事件”進展和所經(jīng)歷的“談話”,她認定這個項目的背后,一定有不為自己所知的內(nèi)幕,尤其是與華萍的一番交涉,加上自己對她的了解,更加確認了這一點:這個項目不簡單...

之八:PDA檢測有變,百里行程半九十

摘 要:華容向家里人“請假”,然后埋頭工作。按照既定的計劃,第9個工作日,進行了網(wǎng)絡聯(lián)調(diào),包括終端與網(wǎng)卡服務器以及服務器與后臺軟件的通信,由于物理層 的協(xié)議沒變,數(shù)據(jù)層的定義和格式也沒有變化,變化的只是填充的內(nèi)容,因此,毫無懸念,網(wǎng)絡聯(lián)調(diào)順利通過,但是在PDA檢測的時候她卻沒有看到檢測文 檔...

之九:故友偶重逢,項目工期蓄意被減半

摘要:由于項目工期緊張,華容從制定方案到實施方案,加班加點,甚至向家人請假,最后終于如期測試通過,在驗收的時候她偶爾遇到了以前的合作伙伴林杰森,也是這次偶遇讓她知道了自己的項目工期被壓縮減半...

之十:你可以暗算我,但是擋不住我的技術比你強

摘要:煙草局的項目驗收完成以后,華容終于松了一口氣,但是被壓縮工期的陰影始終縈繞心頭,以至于想起來心中難受。某一天華萍的項目組出了一個搞不定的Bug,于是要求華容過去解決...

之十一:設備出現(xiàn)“幽靈” Bug,華容奔赴現(xiàn)場“救火”

摘要:煙草局的項目忽然出變,原本都測試通過的設備有好幾臺被退回,華容展開緊張地測試,后來發(fā)現(xiàn)是板子上的一顆芯片型號...

之十二:新官上任以后的裁員風波

摘要:一天發(fā)布在OA里的一條最新消息,如一石激起千層浪,波及到了公司的各個角落—有史以來,SD公司第一次裁員。這則消息,如同前天的暴風雪一樣,來勢兇猛,威力強大...

之十三:公司技術大牛,裁員中你被誰害了?

摘要:岳海上任后開始了第一次裁員風暴,楊玉庭本來不在名單了,但是因為年齡偏大而成了這次裁員的犧牲品...

之十四:為研發(fā)爭取時間和資源,華容對岳海的博弈

摘要:華容、岳海以及燕飛坐下來討論項目的執(zhí)行策略,由于已經(jīng)提前知道岳海的態(tài)度,華容提出項目進展中的各種問題,最后為項目爭取了時間和資源...

之十五:舉重若輕,研發(fā)計劃已然成竹在胸

摘要:華容制定了一套嚴謹?shù)难邪l(fā)計劃,而她最擅長的射頻卡的讀寫距離問題。這個問題對于其他人來說,也許高難的,但對于她來說幾乎談不上難度,只不過是一、兩個小時的問題...

之十六:物色一個得力的助手,測試工作事半功倍

摘要:華容準備好測試流程,發(fā)現(xiàn)需要個測試助手,人選哪里來?經(jīng)過與測試部的商議從中抽出一個新來的實習生林鴻陽幫助華容完成測試,經(jīng)過一天的試用,華容發(fā)現(xiàn)小林出乎意料地滿足自己的需求...

之十七:時鐘亂碼幽靈般光顧了所有設備,追蹤尋跡趁勢撲捉?

摘 要:經(jīng)過近4晝夜的測試,時鐘的亂碼顯現(xiàn),如“幽靈”一般,光顧了在不同編號的設備,最少的只有一次,最多的有10次。從結果上看,與用戶描述的情況基本 一 致:不一定什么時候,不一定是哪一臺設備,在上傳到后臺的記錄中,就會爆出一條錯誤的記錄數(shù)據(jù)。ISP_Line剛好小試牛刀...

之十八:奇怪的溢出數(shù)據(jù)“65535”,不可抗拒的EMC

摘要:錯誤再現(xiàn),便可以分析其原因了。分析之后,關于時鐘亂碼的問題,華容得到了初步的結論:EMC問題,也就是常說的電磁兼容問題...

本系列為付麗華老師原創(chuàng)故事《51的江湖》連載,故事中有職場,故事中還有技術,最真實的項目案例與大家一起探討。每周一期,更多內(nèi)容請查看:

《51的江湖》:以小說體的形式講解技術

相關推薦

電子產(chǎn)業(yè)圖譜

1996畢業(yè)于華東理工大學自控系,同年7月進入某大型國企擔任電氣員。2000年轉行從事硬件研發(fā)相關工作;后從事RFID相關產(chǎn)品的研發(fā)、設計,曾參與中國自動識別協(xié)會RFID行業(yè)標準的起草;歷任硬件工程師、主管設計師、項目經(jīng)理、部門經(jīng)理;2012年至今,就職于沈陽工學院,擔任電子信息工程專業(yè)教師,研究方向:自動識別技術。已經(jīng)出版教材《自動識別技術概論》,職場故事《51的蛻變 》。