13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

組み込み開発現場で得た知見を書く

Posted at

#はじめに
記事を書くのは久しぶりなのでつまんないと思いますが、忘備録程度の内容でご勘弁を……

##組み込み現場でやったこと
・車の故障検知の単体テスト
・ナビシステムの不要モジュール潰し設計から実装、システムテストまで
・メーターのシステムテスト

上二つは一年以上前+炎上しまくってたのであんまり覚えてません
一番最後のメーターのシステムテストだけ書こうと思います

###大まかに何をやったか
・システムテストの実施(CANalyzer、オシロスコープ、基板を使用)
・システムテストの設計

https://www.vector.com/jp/ja/products/products-a-z/software/canalyzer/#c82750
↑CANalyzerについてはこちらを参照していただければと思います

あんまり書きすぎるとお叱りを受ける危険性があるので、
使用したツールや、どんなスキルを得たかを中心に書いていこうと思います

##どんなスキルを得たか
・基板や回路図を読むスキル
・不具合の報告を細やかに書くスキル
・CANalyzerを扱うスキル
・オシロスコープを扱うスキル
・EEPROM設定(ここが一番しんどかった)
・A/D変換などの計算(この辺もうちょっと強化しないとマズイかも……なんか良い本あったら教えてください)

細かく書くとキリがないのでさっくりと書いていきます

###基板や回路図を読むスキル
CPU(ベテランの方々は「石」と言ってました)と機能(LEDやメータの針を動かす場所、モニタ等)のどこに繋がってる的なものを回路図と基板とをにらめっこしながら探すスキルです
基板についてる部品と文字が滅茶苦茶小さいので目が疲れます。オシロスコープのプローブを当てながら作業することもままありましたが、どうしても無理な場合は線出しを依頼しました。半田ごて使えるようになりたい

###不具合の報告を細やかに書くスキル
作業において一番キモになる部分です
テスト手順書に書いてる通りにテストし、期待通りの値にならなければ手順を細かくまとめて報告書に記載します。面倒ですが大事なことです。
不具合報告に必要なものは以下です

・不具合発生(些細なことでもリーダーに確認します)
・仕様書での挙動とテスト手順書とのすり合わせ(仕様書通りでなければ手順書をここで修正します)
・テスト手順とテスト結果(手順に抜け漏れがあればここで補います。だいたいはここらへんまでで解決します)
・開発サイドにエスカレーションして修正を依頼します(不具合として起票します)
・修正されたものを再テストして結果と原因をまとめる(この辺りで問題なしになります)
・手順書の修正方針を書く(次のフェイズで直します)

###CANalyzerを扱うスキル
癖があるツールなのでさっくりと………
基板に値を流して操作し、値通りに動作するかを確認するためのツールです
一点だけ例を挙げます

例)
1.赤いLEDを光らせるRedRightTurnONという変数を持つ信号メッセージEXAM1234を基板に流します
2.CANalyzerからRedRightTurnONの値に1(LEDが光る値。1で光り、0で消える)を送信します。
3.基板のどこかのLEDが光ります。
4.基板の回路図とにらめっこして、正しい箇所が光っているかを確認します。

こんな感じで基板上の機能を操作していきます。
実際は点灯方法やメータの指針やモニタの表示やブザーや時間なども見ていく必要があるのでもっと複雑です。

###オシロスコープを扱うスキル
波形を取るのに時間がかかって大変だった………
電源ONからLED点灯やブザーのタイムラグ(ms単位やμs単位)などを測る際に使用します。

###EEPROM設定
別途の内製ツールで設定していたため割愛します。
テスト手順書通りに設定しないと動かなかったり間違った挙動をするので上手く動作しない場合だいたいこいつのせいです。ちゃんと設定しない私という作業者に主な問題があります。

###A/D変換などの計算
https://www.hokutodenshi.co.jp/PUPPYSupportPage/ensyu/ad/ad1.html

ググったら良いサイトがあったのでだいたいこんな感じの計算です

仮にCANalyzerで電圧が350(デジタル値)が出力されている機能(LEDだろうがブザー回路だろうがなんでも良いです)の電圧を求めることにします

CPUのA/D変換器の分解能が10bitで電圧(VCC)が5Vの場合
GNDからVCCまでの0〜5Vを2^10(1024)で分割しているため次のような計算になります

350*5/1024≒1.71(V)

計算結果からこの機能には1.71Vの電圧がかかっていることになります
(実機ベースでは抵抗その他諸々によりこの値より下の電圧がかかっていることが多いです)

このあたりの話は自分でもかなり勉強不足だと思っているので、良い書籍があれば教えてください(切実)
モータの回転数と排気量の計算とか燃費の計算とか完全にわけわかめなのでorz

##まとめというか感想というか知見
・テストは業種問わずカッチリやるべき
・組み込みもじっくりやるには悪くない業界
・電子回路系は学生時代好きだったのでより深くやりたい
・計算とかC言語のプログラムが底辺レベルなので重点的な強化項目はこの辺りになりそう

久しぶりにアウトプットしましたが、書きたいことがまだあるので余裕あったらまた書きたいです

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?