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