電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 58|回復: 0
收起左側(cè)

嵌入式軟件和硬件在互相扯皮,項目進行不下去了!

[復制鏈接]

485

主題

485

帖子

1623

積分

三級會員

Rank: 3Rank: 3

積分
1623
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-12-2 11:50:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我是老溫,一名熱愛學習的嵌入式工程師/ y+ d: A% o+ l: h0 D2 Z3 P% a
關注我,一起變得更加優(yōu)秀!2 E: k2 I) T/ ?4 P! @
最近遇到了一件糟心的事情,交付給客戶現(xiàn)場運行了不到一個月的硬件定制產(chǎn)品,開始出現(xiàn)無規(guī)律的停機現(xiàn)象,已經(jīng)影響到客戶的生產(chǎn)線運作,客戶已經(jīng)開始炸毛了。/ `8 ]. K; E8 d. ^: |' A2 C

1 K; I0 k3 ~& h7 k+ V( x+ m在跟客戶進行了一通“友好”的電話溝通之后,我和嵌入式軟件工程師李工,馬上訂機票飛往客戶現(xiàn)場,一方面是為了安撫好客戶情緒(現(xiàn)場挨批),另一方面是為了了解現(xiàn)場機器的運行情況。/ m/ F. A- p# b2 u
根據(jù)停機現(xiàn)象,我們懷疑是設備在運行一段時間后,程序出現(xiàn)了偶發(fā)性卡死,然后外部看門狗會對機器進行強制復位,復位后的設備雖然能重啟進入界面,但機械結(jié)構(gòu)會從運行態(tài)切換為停止態(tài)。: @6 G+ r1 A9 t7 ^' O6 [0 {
(有些工業(yè)設備不允許上電就直接運行,需要重新人工開機)
6 T. t9 ]# o; R* I. h為了找出程序跑飛時的棧調(diào)用情況,李工啟用了 cm_backtrace 組件,然后結(jié)合 addr2line 對程序跑飛時的棧調(diào)用情況進行了分析。
4 m. T0 _0 V7 @6 I- F因為停機無規(guī)律出現(xiàn)(后來發(fā)現(xiàn),電機啟動一瞬間出現(xiàn)的概率高一點),很不容易地抓取到兩三次停機之后,我們發(fā)現(xiàn)程序有時候出現(xiàn) HardFault,有時候出現(xiàn) BusFault,并且跑飛的位置不固定。; R$ Q& e* Q8 U
根據(jù)李工的經(jīng)驗,他懷疑是硬件設計的問題,于是打電話給第三方的硬件工程師陳工。。。% C! D# |- c9 b
我:“李工,你跟陳工描述一下調(diào)試情況!
7 i' H6 [: p' Z- C* P( I+ v軟件李工:“ 陳工,我們現(xiàn)場排查了,程序跑飛的位置不固定,這種情況可能是某個硬件的可靠性或者是信號干擾影響導致的~”。
6 C  `, u' c, L# c% ~硬件陳工反駁道:“這完全不可能,硬件出廠時都是經(jīng)過測試的,測試時都沒出過岔子,是不是你軟件內(nèi)存溢出或者邏輯處理得不好?”4 f" Z2 M9 ~1 h, R0 G0 L
軟件李工開始不耐煩:“我已經(jīng)把內(nèi)存可能溢出的地方處理了,不是軟件的原因啊,~”' d" z8 K/ a& O9 d, q5 e
硬件陳工急了:“這個硬件原理,我們以前也用過啊,也沒出現(xiàn)過這種情況,你再找找軟件原因!
9 D2 O2 ^' i  o; R" l- k: d5 n% B  `* y7 N。。。。。。(兩人你一言我一語地爭論起來,互不相讓,反正都不承認各自的原因。)+ [- ]( G0 A. r! b" `) W
我:“這樣,吵下去也無濟于事,我先安撫好客戶,回公司后我們馬上復刻現(xiàn)場進行重新測試驗證!”
" u7 l- t4 f1 Z5 _9 \3 Q7 r ( t  i. k3 P# C
(從客戶現(xiàn)場回到公司后。。。)
! [) |- }- ?1 |* Z現(xiàn)場出現(xiàn)問題的是一款工業(yè)三相電機控制器設備,采用 AC-220V 供電,里面有 AC 轉(zhuǎn) DC 電源模塊,帶有顯示屏和聯(lián)網(wǎng)功能,支持繼電器輸出和隔離光耦輸入,支持 RS485 和 CAN 通信功能,設計框圖如下。
9 `5 m4 |  S8 _* Q! i. g . w+ Z9 Z/ J8 Y5 t9 r
由于考慮到工業(yè)信號的實時性和多任務并發(fā)處理,李工設計嵌入式軟件時,采用了 FreeRTOS 操作系統(tǒng)進行任務調(diào)度,而且還在外部SDRAM開啟 Framebuffer 緩沖區(qū),用來給GUI進行刷屏。
# z- g3 N6 @7 F4 n# b! F" V為了減少內(nèi)存溢出的風險,李工對各個數(shù)據(jù)緩沖區(qū)數(shù)組進行了優(yōu)化,采用靜態(tài)方式進行管理,并且每次寫緩沖區(qū)時都進行數(shù)組范圍判斷,防止內(nèi)存申請失敗或者寫緩沖區(qū)時出現(xiàn)數(shù)組越界操作。
0 E* @, X7 d. T( S我們從倉庫里面領取了新的硬件設備做測試,一開始怎么也沒辦法復現(xiàn)出現(xiàn)場的停機現(xiàn)象,驗證過程一度陷入了停滯。。。
: n& q, ]# D: ]" v, k! O5 x
; O, ?1 o. Q3 u$ {! Z但是,在設備連續(xù)不斷電運行了差不多240個小時之后,事情似乎出現(xiàn)了轉(zhuǎn)機,設備開始出現(xiàn)偶爾的看門狗復位重啟,并且隨著設備運行時間越長,出現(xiàn)得越來越頻繁。(電機啟動或者電磁閥吸合瞬間,特別容易出現(xiàn)); U+ M  Q6 y( e- x+ B6 I
查找方向開始轉(zhuǎn)到硬件設計上。。。8 {+ X" x% Z$ x
這款產(chǎn)品為了方便取電,陳工在硬件內(nèi)部集成了開關電源,用隔離變壓器和整流橋進行 AC 轉(zhuǎn) DC 處理,PCB 整體布局和布線,據(jù)說已經(jīng)充分考慮 emc 和 EMI 。( C/ |$ {$ Z- @) s1 D1 o9 H
我們重新檢測這臺運行了“很久”的設備的各個電源回路,發(fā)現(xiàn)當設備運行了一段時間之后,3.3V 的電源回路上就會出現(xiàn)一些噪聲,紋波忽高忽低,特別是在電機啟動或者電磁閥吸合瞬間,電源噪聲可能達到 2~3V 以上。(不是每次噪聲都會導致MCU復位,說明這款MCU還是挺“扛噪”的。). T" ]7 ^% E3 ]( s. g; ]! x

6 ?3 v: V) {7 g
; G: o! v! i4 g" T* `1 P % G* O) m2 e+ p) [/ f
這對于 3.3V 供電的芯片來說可能是致命的,電源噪聲很容易造成MCU和內(nèi)存芯片的數(shù)據(jù)錯亂,造成程序莫名其妙地跑飛~3 U, Q/ g0 }) w* _1 s9 K
有見及此,陳工馬上開始對硬件進行整改,優(yōu)化硬件的各路電源環(huán)路設計,將輸入回路、輔助繞組回路和輸出回路的環(huán)路面積做到最小,以增強抗干擾能力和減少對外的干擾。
8 m" g$ `% G# L9 a2 o' D; W6 a0 a為了更好的信號完整性和降低電磁干擾(EMI)和減少層間耦合噪聲,陳工決定改用 6 層板對 PCB 進行重新 layout,我們在嘉立創(chuàng)領取了打樣券,現(xiàn)在樣品也能用沉金工藝了,而且免費增加至2u"厚度,盤中孔工藝也可以免費使用,并且不限制BGA封裝。/ P& Z, B5 T6 K. s% g6 g$ j

# X# }* `/ \  Z( o: b以前打個 6 層板的樣品,打樣費也是一筆不小的研發(fā)成本開銷,現(xiàn)在嘉立創(chuàng)對于 6 層以上 PCB 的打樣政策,工程費可以大降50%,對不少中小企業(yè)是非常大的利好。
6 |  s/ `0 I$ u1 v$ r & j* [! |5 Q( s3 U+ L7 R- r& `
在關鍵的電源和存儲器芯片上面,也替換為進口方案(貴就貴點,但勝在夠穩(wěn)),這幾天布線完之后,應該會發(fā)出去打樣,等樣品回來之后我們再仔細進行驗證。6 Z9 u: X9 z5 B1 Q3 V
(事情雖然還沒有結(jié)束,但總算看到了一點希望~
  ]  \$ C* N2 R 9 P4 \& u; [7 {4 z0 }( t
4 A+ W4 z) h  `6 U% n
在開發(fā)過程中,客戶一直摳成本,產(chǎn)品做出來之后,客戶又急著在生產(chǎn)線上面使用,只是經(jīng)過了基本的功能邏輯測試就交付了(沒經(jīng)過疲勞和可靠性測試),沒想到,最后在客戶現(xiàn)場還是出現(xiàn)了問題~
- ]7 ?& G2 P! w# m' |7 [' v5 {整個過程,有幾點是需要值得我去反思的:9 r3 ~$ K; ^, {* e; y
1、產(chǎn)品在客戶現(xiàn)場出現(xiàn)了問題,電話和信息無法解決的時候,該到現(xiàn)場(挨批)還是要到,一方面為了降低客戶損失,另一方面也為了安撫和挽留客戶。
6 c' H) p/ s3 ~) o/ ]2、處理好成員沖突,盡可能地不要讓團隊成員在客戶現(xiàn)場發(fā)生矛盾,以解決問題為主要目的,團隊成員才是解決現(xiàn)場問題的關鍵要素。6 \4 F5 g7 H7 t! I
3、不能為了降低成本而忽略了產(chǎn)品的穩(wěn)定性,哪怕客戶一直要求降低成本,也要管理好客戶的預期,明確告知客戶降本的風險。- |8 o$ K  s) j" \9 _" p
4、做硬件產(chǎn)品研發(fā)還是得堅守原則,該遵循的流程還是要遵循,該做的測試還是要做(哪怕后補,也要有測試數(shù)據(jù)),EMC和EMI,可靠性測試,疲勞測試,耐久度測試,等等。& b1 N8 [* L- M; P& w
5、事情的進展,有時候看上去似乎停滯不前,但也不要馬上停下來,(就好比,讓設備空轉(zhuǎn)運行也得讓它轉(zhuǎn)),沒準過一段時間就會迎來轉(zhuǎn)機~1 ]0 ?3 r+ E' D" c* Q# E
最后,希望這次改版能行,生活又給我上了一課!~
4 O7 i: C2 \3 }8 t  C% P4 ]6 U* p* i$ W
) x! M2 y3 q* W8 U; ^0 x- [
' L8 x( n! Z; {- X4 C2 ~4 m, w  V: n
▲ @幕后硬漢:隨手上傳“創(chuàng)新背后的故事”,瓜分100000+大獎!
0 R7 b0 v/ r$ b' j8 |-END-
5 g  d$ f  O2 p" a. J: t% o往期推薦:點擊圖片即可跳轉(zhuǎn)閱讀5 W/ g, h* M- t6 Q8 N

, E" N4 @0 M% q3 W! F1 {                                                        0 d! P& B9 P$ t0 l; o
                                                                - N3 a* w% F, m0 Z% S! m' Y
                                                                       
: ~% u/ x" n! H, w3 m& f0 A: V                                                                                  |/ s% D% X9 C; Q+ d( M
2 G0 ?0 \  g8 k# u1 G9 O! P
                                                                                5 N: l7 r4 \6 N. N! ?4 e7 H
                                                                                        硬件都做出來了,客戶說想改一下,結(jié)果,全部推倒重做!  _: }4 s1 i. M4 }6 E
                                                        + u7 \2 o5 U/ ~5 v
                                                                4 I" d$ o) M( e" Q! {
                                                                        ( p7 u# h3 y) f  u3 R/ R6 \
                                                                               
3 I! ~8 E. j) @
9 Z# z- B8 m( g: N5 X                                                                                & l& r& Q- z3 D/ _4 \
                                                                                        不想讓嵌入式核心板吃灰,于是,我準備對它下手了!8 n( {1 M# P  m& B6 b4 m
                                                               
6 B9 V7 i) T+ t7 ]7 f  Q! q                                                                        2 Q) F* {; @. k( k- j
                                                                                6 O: O5 F* g0 |& [4 U; _- U. e

+ H- f! x# }- ?, A( B                                                                               
8 `- x: Y  i2 [7 K/ O                                                                                        這些嵌入式主板,確實驚艷到我了!, n: Z; s  @$ l! U$ {( m' u4 T
                                                                               
2 P, u3 {( y# A% g& w                                                                       
. f8 P7 F) {- R1 G" n3 F) E( T                                                               
' t) N  I7 O- r' g; E                                                        我是老溫,一名熱愛學習的嵌入式工程師: t. m. K7 a( E8 E7 E0 G3 s0 V- O
關注我,一起變得更加優(yōu)秀!
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表