?
序言:“2017 年工程師節(jié)”今天正式拉開(kāi)序幕,本屆工程師節(jié)的主題圍繞“技能”二字。身為電子人,無(wú)論行走江湖的老者,還是初入此圈的新人,總一兩個(gè)技能傍身、總有一兩個(gè)得意之作。
自 05 年本科畢業(yè)參加工作至今,已有十多個(gè)年頭,而我一直從事嵌入式硬件開(kāi)發(fā)的工作(必要時(shí)也做一些軟件開(kāi)發(fā)),所設(shè)計(jì)的硬件電路和模塊不下百種,有簡(jiǎn)單的也有復(fù)雜的。其中不乏有讓自己付出極大心血和精力的,這可以認(rèn)為是自己的得意之作,故取其之一來(lái)展示。
與德國(guó)人打交道,心累也心喜
12 年進(jìn)入一家世界 500 強(qiáng)的外資企業(yè)工作,從事嵌入式硬件開(kāi)發(fā)工作,負(fù)責(zé)的是 XX 型號(hào)設(shè)備監(jiān)測(cè)系統(tǒng)中的通信卡的硬件設(shè)計(jì)。該監(jiān)測(cè)系統(tǒng)針對(duì)的是大型的旋轉(zhuǎn)類(lèi)設(shè)備的運(yùn)行狀態(tài)監(jiān)測(cè),實(shí)時(shí)采集該設(shè)備各個(gè)測(cè)試點(diǎn)的運(yùn)行狀態(tài),包括旋轉(zhuǎn)速度、旋轉(zhuǎn)加速度、振動(dòng)參數(shù)、同軸偏心度參數(shù)、旋轉(zhuǎn)軸內(nèi)溫度參數(shù)等等。通過(guò)放置在各個(gè)測(cè)試點(diǎn)的傳感器來(lái)進(jìn)行采集和轉(zhuǎn)換,然后通過(guò)測(cè)量板卡將傳感器數(shù)據(jù)轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)背板上總線傳遞給通信板卡,最后將數(shù)據(jù)傳輸到遠(yuǎn)端的監(jiān)控室和服務(wù)器端。各個(gè)測(cè)量板卡和通信板卡之間采用的是標(biāo)準(zhǔn)的 RS485 總線通信方式,通信板卡和遠(yuǎn)端采用的是以太網(wǎng)通信。
雖說(shuō)公司屬于美資企業(yè),但是和我們打交道的卻是德國(guó)人,我們平時(shí)的所有工作都是向他們匯報(bào)。眾所周知,德國(guó)人的細(xì)心和耐心是出了名的,尤其是在研發(fā)工作當(dāng)中,對(duì)任何事情都是精益求精。從和他們開(kāi)始接觸的第一天開(kāi)始,他們就表明了他們對(duì)待研發(fā)工作的態(tài)度,并制定了一系列在研發(fā)工作當(dāng)中應(yīng)該嚴(yán)格遵守的準(zhǔn)則和標(biāo)準(zhǔn)(和公司制度無(wú)關(guān))。首先就是文檔的書(shū)寫(xiě),不需要長(zhǎng)篇大論,能說(shuō)明問(wèn)題即可,文檔中不能出現(xiàn)省略號(hào)(……)、等(and so on)這些字眼,所有有關(guān)的項(xiàng)目都必須羅列出來(lái);對(duì)待結(jié)論性的東西只能出現(xiàn) true or false/yes or no,不能出現(xiàn)模棱兩可的描述;研發(fā)過(guò)程中允許出錯(cuò),但必須要有足夠的正當(dāng)理由;任何工作必須先寫(xiě)文檔,以文檔為指導(dǎo);研發(fā)工作必須要有階段性成果,便于討論;任何測(cè)試結(jié)果都必須以數(shù)據(jù)說(shuō)話(huà);任何設(shè)計(jì)都要留有余量……。要求我們必須按照這些口頭的制度來(lái)合理安排自己的工作。
一塊通信卡的故事
我們所要開(kāi)發(fā)的這個(gè)通信板卡的前身是采購(gòu)自第三方的 ODM 模塊,因此所有的技術(shù)信息對(duì)我們來(lái)說(shuō)都是保密的,我們能做的就是知道怎么用,出問(wèn)題了我們也不知道怎么去維護(hù),因此在市場(chǎng)占有率提高以后我們顯得非常被動(dòng),公司高層最終決定自主研發(fā),掌握主動(dòng)權(quán),進(jìn)一步提高市場(chǎng)占有率和產(chǎn)品利潤(rùn)。
因此我們針對(duì)此通信板卡的研發(fā)是在保留其目前功能接口的前提下(目的是要和現(xiàn)有市場(chǎng)上的設(shè)備兼容)進(jìn)行技術(shù)升級(jí),也就是在涵蓋他們所提供的功能的基礎(chǔ)上添加了自己的功能,包括提高數(shù)據(jù)處理速度、數(shù)據(jù)通信速度、添加操作系統(tǒng)等等。
因此從某種意義上來(lái)說(shuō),完全是一個(gè)全新的設(shè)計(jì)。
?
?
德國(guó)人對(duì)這次研發(fā)看得非常重,光針對(duì)通信卡的技術(shù)需求就有好幾十頁(yè),細(xì)化到每一個(gè)接口和功能,我們必須在此技術(shù)需求文檔的基礎(chǔ)之上進(jìn)行研發(fā)。
為了更好的了解該產(chǎn)品的特性和工作原理,我們兩個(gè)人公費(fèi)被派往德國(guó)參觀和學(xué)習(xí)了一個(gè)半月,實(shí)地去學(xué)習(xí)該產(chǎn)品生產(chǎn)過(guò)程以及該監(jiān)測(cè)系統(tǒng)的功能。同時(shí)也去學(xué)習(xí)德國(guó)人在產(chǎn)品研發(fā)上的每一步工作是如何做的,參觀了德國(guó)的高標(biāo)準(zhǔn)化生產(chǎn)車(chē)間。給我印象最深刻的就是車(chē)間內(nèi)的工人師傅都是 4、50 歲的年齡比較大的,還有一位負(fù)責(zé)組裝傳感器頭的師傅有 60 多歲了,對(duì)于這種非常敏感的傳感器頭,經(jīng)驗(yàn)比技術(shù)更重要。
這一趟德國(guó)行不僅完全掌握了該系統(tǒng)的整體功能細(xì)節(jié),同時(shí)也感受到了發(fā)達(dá)國(guó)家的先進(jìn)之處和美景美食,受益匪淺啊。
回來(lái)后第一步就是針對(duì)主 MCU 的選型。我在主 MCU 的選型上就花了將近一個(gè)月的時(shí)間,在這一個(gè)月的時(shí)間里,我看了各大半導(dǎo)體廠商的主流 MCU 芯片的資料,而且全是英文版,除了了解各個(gè) MCU 的特點(diǎn)和功能之外,我還要從中選取 3 到 4 種進(jìn)行橫向比較。
我制作了一個(gè)表格,將這幾種 MCU 的特點(diǎn)都羅列出來(lái),從中選擇最接近我們技術(shù)需求的 MCU,同時(shí)還要性?xún)r(jià)比高。主要參數(shù)包括:MCU 主頻、Flash 容量、RAM 容量、對(duì)外都有哪些接口、封裝形式、供電電壓、最大功耗、所支持的操作系統(tǒng)、芯片的生命周期等等,這些參數(shù)足足有十幾頁(yè)。
最后不僅要給德國(guó)人提供這個(gè)表格,還要給出意向 MCU,并陳述理由。德國(guó)人根據(jù)表格里的數(shù)據(jù)和我陳述的理由,同意了我的選擇為 ST 的一款 MCU。
主 MCU 選定后,外圍器件根據(jù)接口形式很快就選好了,并根據(jù)要求有些通用新品最少選兩個(gè)廠商,留有足夠的設(shè)計(jì)和生產(chǎn)備份。
遵循德國(guó)人訂立的設(shè)計(jì)準(zhǔn)則,我在主 MCU 和外圍接口芯片選好以后,就開(kāi)始編寫(xiě)硬件詳細(xì)設(shè)計(jì)文檔,包括板卡供電、外圍器件、以太網(wǎng) PHY 芯片、串口擴(kuò)展芯片、RS485 接口芯片等,以及初步的硬件原理圖和芯片工作原理簡(jiǎn)介。
?
?
針對(duì)原理圖的繪制和審查,德國(guó)人都有一套嚴(yán)格的流程,一人設(shè)計(jì)交叉審查。還有原理圖中的器件標(biāo)號(hào)不能出現(xiàn)有歧義的地方,包括字體的格式、大小等都有嚴(yán)格的規(guī)定。很快我就將第一版的原理圖繪制完成,然后和德國(guó)人開(kāi)會(huì)討論了好幾次才最終定稿。關(guān)于 PCB 尺寸是標(biāo)準(zhǔn)的歐式板卡尺寸(160mm*100mm),用的也都是歐式插座,用于和背板的連接。同樣,針對(duì) PCB 的設(shè)計(jì)布線,德國(guó)人也有一套嚴(yán)格的規(guī)定,包括不同的信號(hào)類(lèi)型使用不同的線寬和線距,以及 PCB 的標(biāo)注。
德國(guó)人做事非常嚴(yán)謹(jǐn),但是節(jié)奏非常慢,針對(duì)這個(gè)通信板卡的整體設(shè)計(jì),預(yù)計(jì)時(shí)間周期為 2 年,包括軟硬件,硬件工作主要集中在前段,因?yàn)楸仨毺峁?shí)現(xiàn)軟件測(cè)試的硬件平臺(tái)。
經(jīng)過(guò)兩個(gè)月的艱苦奮戰(zhàn),第一版的 PCB 終于完成,在進(jìn)行打板之前,必須經(jīng)過(guò)德國(guó)人的審核后才能發(fā)給板廠制作。
PCB 加工完成后,并不是急于進(jìn)行元器件焊接,而是先檢查 PCB 裸板。一方面檢查制作工藝,另一方面也檢查是否存在短路現(xiàn)象,避免焊接元器件后不方便檢查。而且最后還要填寫(xiě) CheckList 報(bào)告。
PCB 裸板檢查無(wú)誤后才開(kāi)始進(jìn)行焊接,雖然制作數(shù)量比較少(每次在 10PCS 左右),但是照樣使用 SMT 工藝進(jìn)行器件焊接,禁止手工焊接,避免手工焊接所帶來(lái)的問(wèn)題會(huì)被誤認(rèn)為是設(shè)計(jì)缺陷。SMT 結(jié)束后,并不急于上電,而是先檢查焊接質(zhì)量,包括器件焊接正確性、擺放位置、錫的飽滿(mǎn)度等,無(wú)誤后進(jìn)行 PCB 清洗,利用專(zhuān)用的清洗劑進(jìn)行超聲波清洗,清洗后進(jìn)行高溫烘干,靜置 24 小時(shí)后準(zhǔn)備上電。
上電之前必須事先設(shè)置好供電電壓,第一步先測(cè)總電流,電流正常了再測(cè) PCB 上各個(gè)輸出電壓,都正常后才開(kāi)始給 MCU 燒寫(xiě)軟件代碼,進(jìn)行軟件驗(yàn)證。此時(shí)燒寫(xiě)的并不是最終運(yùn)行的代碼,而是接口驅(qū)動(dòng)代碼,用來(lái)驗(yàn)證各個(gè)接口是否滿(mǎn)足要求。
此時(shí),針對(duì)設(shè)計(jì)需求中硬件部分,必須進(jìn)行模塊劃分,而且最終根據(jù)各個(gè)模塊進(jìn)行單獨(dú)測(cè)試,必須事先寫(xiě)測(cè)試流程,包含每一個(gè)步驟以及用到哪些測(cè)試工具、怎樣操作、需要測(cè)試哪些內(nèi)容,都必須一一詳述。目的就是為了讓任何一個(gè)人看過(guò)測(cè)試流程之后都知道如何來(lái)操作。而且每項(xiàng)測(cè)試必須得出最終測(cè)試結(jié)果,不合格的項(xiàng)目必須同時(shí)提供改進(jìn)方法,并經(jīng)過(guò)試驗(yàn)驗(yàn)證,然后在下一版中進(jìn)行改進(jìn)。
做完各項(xiàng)測(cè)試后,有兩項(xiàng)不合格,并提出改進(jìn)方法,進(jìn)行驗(yàn)證。在功能性測(cè)試結(jié)束后,必須經(jīng)過(guò)高低溫、濕度測(cè)試以及 EMC 測(cè)試,保證器件能可靠工作。
在第二版中針對(duì)第一版測(cè)試出現(xiàn)的問(wèn)題加以改進(jìn),完全滿(mǎn)足產(chǎn)品設(shè)計(jì)需求中的每一項(xiàng),后續(xù)的大量工作均集中在軟件驗(yàn)證上。硬件工程師基本都處在配合軟件工程師工作。
經(jīng)過(guò)兩年左右的開(kāi)發(fā),這款通信板卡最終實(shí)現(xiàn)了各項(xiàng)功能指標(biāo),具備量產(chǎn)的條件。同時(shí)也獲到了德國(guó)人的贊揚(yáng)。通過(guò)這款通信板卡的研發(fā),我不僅學(xué)習(xí)到了德國(guó)人對(duì)于產(chǎn)品研發(fā)的經(jīng)驗(yàn),包括細(xì)節(jié)處理方法,同時(shí)也增長(zhǎng)了許多見(jiàn)識(shí)。見(jiàn)識(shí)了什么是真正的發(fā)達(dá)國(guó)家。
?作者 ? ?
與非網(wǎng)網(wǎng)友,yichun417
?
與非網(wǎng)原創(chuàng)文章,未經(jīng)許可,不得轉(zhuǎn)載!