?
雖然在安心那里得到了肯定的答復(fù),但具體協(xié)議及相關(guān)內(nèi)容的修改,必須與軟件部的工程師進行交流,只有在確認(rèn)無誤之后,才能增加相關(guān)通信指令以及指令對應(yīng)的數(shù)據(jù)內(nèi)容。
這是她第二次與軟件部工程師的合作,本次的合作伙伴是軟件部的副經(jīng)理---洪流,目前他的主要任務(wù)是網(wǎng)絡(luò)版客戶端軟件的維護,同時也正在參與目前事業(yè)部進行中的項目—基于網(wǎng)絡(luò)架構(gòu)的終端設(shè)備在線升級,負(fù)責(zé)客戶端程序的編寫。
說明來意之后,華容直奔主題,洪流接過文件之后,快速的瀏覽,平靜地問道:“你確定只增加三條指令就可以嗎?”
“是的,增加三條就可以,分別對應(yīng)升級開始、升級數(shù)據(jù)傳輸和升級結(jié)束,在指令的發(fā)送和接收方面,使用原來的HEX格式的協(xié)議結(jié)構(gòu)。”華容小心翼翼地回答,態(tài)度是格外的肯定。
“協(xié)議沒有問題,只要你的指令不沖突,那么通信沒有問題,你把升級的文件給我就可以。”
這是華容在接收煙草局項目以來,聽到的最簡潔、最有效的答復(fù)。
“好的,那么工期需要多久?”
“你提前半天通知我就可以?!币琅f是干脆、利落的答復(fù)。
走訪了兩個部門,疑惑一一排除,方案隨之確定下來,接下要做的就是網(wǎng)卡程序的改寫和MCU程序的編寫和調(diào)試。
這樣的通信協(xié)議下,網(wǎng)卡程序的改寫非常簡單,只不過是增加三條指令的解析和驗證,指令來自于PC端。在ISP_Line默認(rèn)打開文件的路徑和名稱,然后添加一個按鈕,對應(yīng)的代碼是打開文件,并將文件拆分為若干個數(shù)據(jù)包,然后逐個數(shù)據(jù)包發(fā)送和接收應(yīng)答。通信的過程與原來的方式是完全相同:升級開始依次發(fā)送升級數(shù)據(jù)升級結(jié)束。
?
在MCU的程序編寫方面,難度也不大,考慮到安心所說的“不穩(wěn)定”的問題,在ISP與IAP的狀態(tài)切換方面,特別細(xì)化了狀態(tài)的描述,狀態(tài)轉(zhuǎn)換過程定義為4個狀態(tài):
狀態(tài)1:IAP ISP,接收到程序升級指令后,從正常的運行狀態(tài),切換到ISP狀態(tài),準(zhǔn)備進行升級;
狀態(tài)2:升級中,從接收到第一個升級字節(jié)數(shù)據(jù)開始,直到最后一個字節(jié)接收,MCU均維持此狀態(tài),如果在升級過程中出現(xiàn)異常終止,那么在下一次復(fù)位后,可以根據(jù)此狀態(tài)的判斷,直接進入狀態(tài)1,防止程序“跑飛”。
狀態(tài)3:升級成功,用于對狀態(tài)2結(jié)果的提示,提示用戶,當(dāng)前程序升級完畢。
狀態(tài)4:ISP? IAP,升級完畢后,將狀態(tài)標(biāo)記為此狀態(tài),復(fù)位后,將直接運行IAP程序。
方案已定,華容著手對軟硬件程序的編寫和調(diào)試,在進行數(shù)次的修改之后,伴隨著對ISP_Line的功能完善,經(jīng)歷了山重水復(fù),終于獲得了柳暗花明,網(wǎng)絡(luò)版的在線升級功能調(diào)試成功。
經(jīng)過了初步的調(diào)試和驗證,華容將程序交給了助手林鴻陽,安排他進行多機驗證,每個網(wǎng)卡同時進行12臺PDA的升級,測試升級的穩(wěn)定性和成功率。
下班前的半個小時,林鴻陽準(zhǔn)時出現(xiàn)在華容的辦公桌前,遞上了測試報告,與以往不同的是,這次是神情有些沮喪。
“測試出了問題?”這是華容的第一反應(yīng),說著,接過了測試報告,快速地瀏覽,但是報告的結(jié)果顯示的是升級成功,程序運行正常。
“測試正常,你這是什么表情?。俊比A容抬起頭,有些不解,帶著微笑問道。
“沒什么,就是……就是……”,林鴻陽欲言又止。
“別緊張,坐下來,慢慢說”,華容示意他做到自己的對面,然后原地轉(zhuǎn)身,把測試報告放在中間,繼續(xù)探詢:“你遇到了問題,是吧?不會是受人欺負(fù)了吧?”帶著一點兒調(diào)侃的語氣。
“沒有,大家對我挺好的,是我自己的問題?!钡椭^,搓著手,低聲回答。
“認(rèn)錯到時很積極,說說吧,怎么回事?”
“測試的內(nèi)容越多,我發(fā)現(xiàn)自己懂得越少?!?/p>
“呵,就因為這個?這個感覺太正常了!”華容笑了,放下手中的筆,身子靠在椅子了,換了一個舒服的姿勢。
?
“這個項目難度很大,尤其是你測試的部分,別說是你,事業(yè)部的工程師也沒有幾個能搞懂的。”
“真的?不是安慰我?”終于抬起頭,眼睛里放出了一絲亮光。
“當(dāng)然是真的,別急,我猜一下,你一定被升級程序的原理搞暈了?!?/p>
“嗯呢,是的?!绷著欔桙c頭承認(rèn),“在生產(chǎn)部工作將近一個月了,所有的升級,都是用起拔器將芯片取下來,然后在編程器上燒寫,完事了再安回去,再開機的時候,程序就可以運行了。同樣的設(shè)備,為什么這次需要兩個步驟,第一次燒完程序的方法和以前一樣,但設(shè)備無法正常運行,需要再下載一次。但是第二次下載不需要編程器了,只用你寫的軟件就可以了,而且可以進行無數(shù)次的升級。這種方法對于以后的升級來說,非常方便,并且一次可以下載多臺,效率很高的。單片機我也接觸過,這種方式還是第一次,但原理是什么,怎么也想不明白。我問過柳姐,她也不知道?!?/p>
顯然,剛才的一席話,打消了林鴻陽的顧慮,一下子放開了,滔滔不絕說出了事情的緣由。
“是啊,連柳姐都不知道,你還擔(dān)心什么呀?”
“啊,也對,剛才沒轉(zhuǎn)過來。”說著,嘴角揚起笑容,用手撓撓了頭發(fā)。
“想知道嗎?” 華容明顯是打趣兒,但收斂了剛才的嬉笑,并將自己的將椅子向前拉了一下,把姿勢調(diào)整為正坐。
“當(dāng)然想!”
“這樣,先介紹兩個名詞:ISP和IAP”,邊說邊在紙上畫了一個瘦長的矩形,在頂部偏上方畫了一條分割線,上部分標(biāo)記為ISP,下部分標(biāo)記為IAP,然后一邊指著圖,一邊介紹這兩個概念:
ISP (In-System Programming) ,指的是“在系統(tǒng)編程”。
意思是在目標(biāo)板上直接完成MCU程序的燒寫,不用取出來,這種情況下,要求在設(shè)計目標(biāo)板的時候,必須將接口電路設(shè)計在上面,所以叫“在系統(tǒng)編程”,也就是不用脫離系統(tǒng)的意思;但是如果目標(biāo)板上沒有保留這種接口,那么就需要采用第二種方法,也就是常用的方法,借助編程器將程序代碼燒入到MCU中,這種方法,需要將芯片從目標(biāo)板上取下來,燒寫完畢后,在放回去。
?
IAP(In-Application Programming),指的是“應(yīng)用中編程”。
有些芯片本身或通過外圍的芯片,可以通過一系列操作將執(zhí)行程序的代碼寫入,比如現(xiàn)在用的STC89C58RD+,就是一款支持IAP的單片機,在存儲區(qū)中劃分3個程序區(qū),1作引導(dǎo)程序區(qū),2作運行程序區(qū),3作下載區(qū)。芯片通過串口接收到下載命令,進入引導(dǎo)區(qū)運行引導(dǎo)程序,在引導(dǎo)程序下將待執(zhí)行的程序內(nèi)容下載到下載區(qū),下載完畢并校驗通過后再將下載區(qū)內(nèi)容復(fù)制到2區(qū),運行復(fù)位程序,則IAP完成。
兩者的差別在于應(yīng)用場合的不同:
前者的程序升級需要到現(xiàn)場解決,設(shè)計得好,可以不必拆機器了,否則,需要拆機才能完成。
后者,非常適合網(wǎng)絡(luò)下的升級,如果有網(wǎng)管系統(tǒng)的話,那么用網(wǎng)管下載一切搞定,人不用跑來跑去,更不必拆機了,因此效率是很高的。
說完抬頭看來一下對方,一副似懂非懂的面孔,遲疑了一下,換了一種方法解釋:
“說說看,給你的兩個程序,哪個是引導(dǎo)區(qū)的程序,哪個是應(yīng)用程序?”有些時候,提問比講解的效果更好。
“我想想,引導(dǎo)區(qū)應(yīng)該是第一個程序吧”。
“沒錯,這個引導(dǎo)區(qū)的程序,由于不包含應(yīng)用程序的代碼,所以下載后設(shè)備不能正常運行,但可以通過它來完成應(yīng)用程序的下載,也就是給你的第二個程序?!?/p>
“道理明白了,但還是不能完全理解?!?/p>
“好吧,換個話題聊聊,你一定在PC上安裝過WINDOWS系統(tǒng)吧?!比A容轉(zhuǎn)移了話題。
“安裝過,但是安裝操作系統(tǒng),與IAP有關(guān)系嗎?”
“如果沒有BIOS,可以安裝操作系統(tǒng)嗎?”沒有直接回答問題,而是繼續(xù)跑題。
“不可以的?!?/p>
“第二個問題,安裝后的操作系統(tǒng),放在哪里?”
“硬盤上。”
“沒錯,來,你看一下他們之間的對應(yīng)關(guān)系?!痹趧偛诺膯柎鹬g,華容用筆記錄做了記錄,在矩形圖的旁邊,增加了新的注釋:BIOS和WIN,用箭頭將引導(dǎo)區(qū)和BIOS連在一起,將IAP和WIN連在一起,把注釋完畢的圖,調(diào)轉(zhuǎn)了一下方向,推到了林鴻陽的面前。然后,雙手交叉,目光盯著對方。
林鴻陽咬著下唇,仔細(xì)端詳著圖,突然有所悟,騰的一下,幾乎是從座位上跳起來的,興奮地說:“我懂了”。
華容看在眼里,喜在心里,但臉上卻是靜如止水,“說說看,懂什么了?”。
“引導(dǎo)區(qū)的程序,相當(dāng)于BIOS的功能,雖然功能比較簡單,但是通過它可以完成IAP的程序的下載,就像通過BIOS完成WIN程序的安裝一樣,只要BIOS沒有問題,那么可以無限次的安裝各種版本的WIN?!?/p>
“沒錯,就是這么回事!”,華容鼓掌,“ISP的優(yōu)勢你已經(jīng)領(lǐng)教了吧,只要待升級的程序發(fā)給你,那么只要有網(wǎng)卡的地方,任何人都可以對設(shè)備進行升級,即使遇到問題,只要硬件電路沒有問,電話也可以搞定的,再也不必跑現(xiàn)場了?!?/p>
“哈哈哈,是的”,林鴻陽笑了,華容笑了,笑得如正午的陽光一樣燦爛。
與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!
內(nèi)容匯總:
摘要:沈陽的一場大雪似乎也預(yù)示著公司的某些變動,果然在休整后的第二天得到了證實,去掉一個部門,重組一個部門,孤立了一些人,拉攏了一些人,兵還是兵,將還是將...
摘要:部門雖然重新劃分,但辦公室里的格局和人員的位置都沒有變動,好像沒有發(fā)生任何事情。華容原本是個局部變量,從不參與本部門以外的事情,但這次人事變動,她的主管設(shè)計師的職位依舊,只不過屬性變成了全局變量...
摘要:華工對自己的項目滿腹疑惑,后來在和燕飛的一場談話中了解到了很多緣由,看似表面風(fēng)光的銷售業(yè)績只有還有不為人知的秘密...
摘要:經(jīng)過與燕飛中午的一番談話,華容不敢再對眼前的PDA(手持機)怠慢了,但是只有她自己清楚其中的問題:框圖已經(jīng)有了,芯片的資料可查,那么詳細(xì)的電路原理圖,就不再是問題,可是偏偏無人提供原理圖的電子版,害得她不得不自己動手...
之五:憶當(dāng)年200K代碼聯(lián)調(diào)的默契
摘要:平心而論,華容覺得自己與華萍之間還談不上“默契”,因為到目前為止,這個詞只屬于當(dāng)年那個team。是她在轉(zhuǎn)行之后,加入的第一個開發(fā)團隊—中鼎公司中文版ECR的項目組...
摘要:真正的交接開始了,果然不出華容的意料,華萍想盡辦法隱藏原理圖,讓她感到意外的是華容在兩年前已經(jīng)開始學(xué)習(xí)畫板子,而華容也知道她開始寫程序,曾經(jīng)推心置腹的合作伙伴如今心有芥蒂...
摘要:華容冷靜地思考了一下整個“事件”進展和所經(jīng)歷的“談話”,她認(rèn)定這個項目的背后,一定有不為自己所知的內(nèi)幕,尤其是與華萍的一番交涉,加上自己對她的了解,更加確認(rèn)了這一點:這個項目不簡單...
摘 要:華容向家里人“請假”,然后埋頭工作。按照既定的計劃,第9個工作日,進行了網(wǎng)絡(luò)聯(lián)調(diào),包括終端與網(wǎng)卡服務(wù)器以及服務(wù)器與后臺軟件的通信,由于物理層 的協(xié)議沒變,數(shù)據(jù)層的定義和格式也沒有變化,變化的只是填充的內(nèi)容,因此,毫無懸念,網(wǎng)絡(luò)聯(lián)調(diào)順利通過,但是在PDA檢測的時候她卻沒有看到檢測文 檔...
摘要:由于項目工期緊張,華容從制定方案到實施方案,加班加點,甚至向家人請假,最后終于如期測試通過,在驗收的時候她偶爾遇到了以前的合作伙伴林杰森,也是這次偶遇讓她知道了自己的項目工期被壓縮減半...
摘要:煙草局的項目驗收完成以后,華容終于松了一口氣,但是被壓縮工期的陰影始終縈繞心頭,以至于想起來心中難受。某一天華萍的項目組出了一個搞不定的Bug,于是要求華容過去解決...
之十一:設(shè)備出現(xiàn)“幽靈” Bug,華容奔赴現(xiàn)場“救火”
摘要:煙草局的項目忽然出變,原本都測試通過的設(shè)備有好幾臺被退回,華容展開緊張地測試,后來發(fā)現(xiàn)是板子上的一顆芯片型號...
摘要:一天發(fā)布在OA里的一條最新消息,如一石激起千層浪,波及到了公司的各個角落—有史以來,SD公司第一次裁員。這則消息,如同前天的暴風(fēng)雪一樣,來勢兇猛,威力強大...
摘要:岳海上任后開始了第一次裁員風(fēng)暴,楊玉庭本來不在名單了,但是因為年齡偏大而成了這次裁員的犧牲品...
摘要:華容、岳海以及燕飛坐下來討論項目的執(zhí)行策略,由于已經(jīng)提前知道岳海的態(tài)度,華容提出項目進展中的各種問題,最后為項目爭取了時間和資源...
摘要:華容制定了一套嚴(yán)謹(jǐn)?shù)难邪l(fā)計劃,而她最擅長的射頻卡的讀寫距離問題。這個問題對于其他人來說,也許高難的,但對于她來說幾乎談不上難度,只不過是一、兩個小時的問題...
摘要:華容準(zhǔn)備好測試流程,發(fā)現(xiàn)需要個測試助手,人選哪里來?經(jīng)過與測試部的商議從中抽出一個新來的實習(xí)生林鴻陽幫助華容完成測試,經(jīng)過一天的試用,華容發(fā)現(xiàn)小林出乎意料地滿足自己的需求...
之十七:時鐘亂碼幽靈般光顧了所有設(shè)備,追蹤尋跡趁勢撲捉?
摘 要:經(jīng)過近4晝夜的測試,時鐘的亂碼顯現(xiàn),如“幽靈”一般,光顧了在不同編號的設(shè)備,最少的只有一次,最多的有10次。從結(jié)果上看,與用戶描述的情況基本 一 致:不一定什么時候,不一定是哪一臺設(shè)備,在上傳到后臺的記錄中,就會爆出一條錯誤的記錄數(shù)據(jù)。ISP_Line剛好小試牛刀...
之十八:奇怪的溢出數(shù)據(jù)“65535”,不可抗拒的EMC
摘要:錯誤再現(xiàn),便可以分析其原因了。分析之后,關(guān)于時鐘亂碼的問題,華容得到了初步的結(jié)論:EMC問題,也就是常說的電磁兼容問題...
本系列為付麗華老師原創(chuàng)故事《51的江湖》連載,故事中有職場,故事中還有技術(shù),最真實的項目案例與大家一起探討。每周一期,更多內(nèi)容請查看: