COLUMNニューソンコラム

2025.06.11

若手組込みエンジニア向け研修のご紹介 ~どのような研修でスキルアップをしているか、ご紹介します!~

  • 車載
  • 自動車
  • 自動運転
  • コネクティッドカー
  • Automotive SPICE
  • 新卒
  • 研修
  • 教育

当社では、新卒社員向け研修だけでなく、中途入社の若手社員向け研修も数多く準備しており、技術領域別、難易度別、など多種多様な研修を受講することができます。今回は若手社員が実際にどのような研修を受けているか、一部をご紹介します。研修の内容や、実際の業務で活かすことができた部分などをまとめていますので、ぜひご覧ください!

はじめに

2024年の5月に中途で入社してから、約1年が経過しました。
前職では車載に関する要求分析を中心に設計工程からテスト工程までを幅広く経験してきましたが、まだ足りない知識もいくつかあります。
そこで、今回は入社から1年以内に受講した研修の中から3つ取り上げてお話ししていきたいと思います。
コラムをとおして、入社後のイメージを膨らませる手助けになればうれしいです。

マイコンハードウェア概論・演習

皆さんはマイコンを見たことがありますか?
車や電気機器を制御するための小さなコンピュータ、くらいの感覚の人が多いのではないでしょうか。
実際に触った経験はなくても、なんとなくイメージができる方もいると思います。

マイコンは I/O、CPU、RAM、ROM、周辺回路といった部品から構成されています。
マイコンハードウェア概論の研修では、マイコンとは何か?という基礎の部分から研修を行うため、今紹介した一つ一つの部品に焦点を当て、個々がどのような役割をしているのか、という理解を深めていきます。
CPU を例にすると、CPU は演算装置、制御装置を合わせた回路ブロックです。
主な動作としてはメモリに記憶されているプログラムコードを取り出し、どのような制御をするか判断したり、論理演算を行ったりしています。
人間で例えると脳のような役割ですね。

また、CPU が処理を同期するためにはクロックというものが必要になります。これは周辺回路の一つに当たります。
クロックは脈拍のようなもので、電圧の High と Low を一定間隔で発振してハードウェアを動かしています。
このクロックの High と Low を1クロックとして、CPU の命令実行やデータの転送がクロックに同期して行われる仕組みになっています。

実際の現場では、色々なメーカーのマイコンや周辺回路を使用しているため、個々の性能を確認する必要があります。
部品の個体差や温度特性などで電源起動から安定するまでの時間がそれぞれ違うので、設計の時点でハードウェアの仕様を理解することが大切になってきます。

また、マイコンハードウェア概論とは別にマイコンハードウェア演習の研修もあり、実際にマイコンの周辺機器( LED やタイマー、ADC/DAC など)を制御するプログラムを作成しオシロスコープなどを用いた検証を行っていきます。
ここでは様々な演習内容から2つほど演習について取り上げたいと思います。

1つ目は、割り込み処理の演習です。
割り込み処理とは、実行中のプログラムに対して処理の中断を要求し、別のプログラム(割り込みハンドラ)に制御を移す処理のことです。

割り込み処理

まず初めに図中の ① の LED を1秒間点灯するプログラムを作成します。
次に ① の LED が点灯している最中にボタンを押すと割り込み処理が発生し、図中の ② の LED が光るようにプログラムを作成します。
この時、① の LED は割り込み処理が完了するまでは待ち状態に入るので ② の LED が消灯してから処理が再開します。
実際の演習では4つのボタンを使用して多重割り込みが発生しても、指定したタスクごとに処理を完了できるのか、を確認していきました。

割り込み処理図解
オシロスコープ

次にオシロスコープを用いた演習です。
オシロスコープは、マイコンの端子の電圧を観測して期待通りのタイミングで動作しているか確認したり、割り込み応答時間を測定したりするのに使います。
先ほどの LED を例にすると、ボタンと LED はマイコンの端子に接続されていて、ボタンに接続された端子(端子①)の電圧はボタンを押すと Low から High に遷移し、LED に接続された端子(端子②)の電圧は LED が点灯すると Low から High に遷移します。これらの端子にオシロスコープのプローブを接続して電圧の遷移を同時に観測することで、ボタンが押されてから何秒後に LED が点灯したのか、を確認することができます。

私からすると、参考書などの図だけではあまりイメージが沸かずに苦手意識のある内容でしたが、実際に自分で作成したプログラムを動かして動作を確認することで、楽しく学ぶことでき理解が深まっていきました。

味噌カツ

ちなみに、、、
この演習は名古屋で開催されたため、名古屋に出張し演習を2日間受講しました。
朝食はホテルのバイキング、昼食と夕食はおすすめのお店を教えてもらい名古屋名物をたくさん食べてきました。
沢山食べて、沢山学べる、一石二鳥の研修ですね。(笑)



ADC/DAC
参照元:Wikimedia Commons

※ ADC:連続量であるアナログ信号を離散化されたデジタル信号に変換すること。DAC:ADCの逆でデジタル信号をアナログ信号に変換すること。


リアルタイムOS概論

近年、様々な場所で自動ロボットを見かけるようになったと思いませんか?
飲食店では配膳を、駅構内ではインフォメーションセンターにロボットだけがいる光景も見慣れてきたかと思います。
リアルタイムOS概論では、例として挙げた上記のようなロボットや、エレベーター、また自動車関連ではエンジン制御やブレーキ制御といった様々な分野で使用されているリアルタイム性能の高さが求められる OS について学んでいきました。

私たちがいつも使用している PC には汎用OS が用いられていて、アプリケーションのタスクを要求されたとおり、順番に処理をしていく設計となっています。
それに対してリアルタイムOS ではそれぞれのタスクに優先度が付き、優先度に沿った処理を行うため、緊急性の高い割り込み処理などが実行されるOSです。

概論ではまず初めに、リアルタイムOSが使用されている身近なものを挙げていこう!という基礎から認識合わせを行い、その例を用いてどのようなリアルタイム性が求められているのか?という部分を考えながら進んでいくため、机上の概論でもイメージしやすい研修となっています。

その上で、ディスパッチ(優先度の高いタスクを実行状態にすること)やプリエンプト(実行状態の優先度の低いタスクを実行可能状態にすること)といった専門的な部分の知識を深めていきます。

講義の中では、昔はこのような仕様で大変だった!やこのような仕様のプログラムを作成するのが大変だったといった雑談を挟んでくれました。

雑談の一つで印象に残っている話を挙げさせてください。
可変長と固定長のメモリプールについての内容です。
下図のような状態のとき、固定長メモリプールでは 100KB の要求しかできませんが、可変長メモリプールでは 200KB の要求ができます。
メモリ全体では 200KB の空き容量はありますが、連続したメモリとしては 100KB でしか取得できない状況が発生しているためです。
この解決策としては、メモリの最適化を行うことで連続したメモリを取得することができるようになります。
近年の PC ではこのメモリの最適化という部分をバックグラウンドでフラグの管理を行っているため、手作業で最適化をすることはあまりないと思いますが、昔はドライブの最適化を手作業で行い頻繁にメモリの最適化を行わないと仕事にならなかったそうです。

メモリプール

このような雑談も含めながら、当日の最後には総合演習として、要求仕様書に沿ってプログラムの穴埋めを行います。
プログラム上で、割り込み処理はどのように実装されているのか?タスク管理はどのように行っているのか?などについて学んだうえで、グループに分かれ、仕様に基づいたプログラムになるよう話し合っていきました。
グループごとに仕様書の読み取り方や考え方が違うため、色々なコードができ上がりました。
そのコードを全体に共有し、議論を行うことでさらに知識を深めていくことができました。

業務の中でも、割り込みやタスク管理を行っているプログラムの読み書きをしたり、設計工程では実装するにあたっての要求を考えることが多々あります。
その際に、深くまで理解をしているかどうかによって品質に差が出てきます。
研修を受けた後、すぐに業務に生かすことのできる研修だと実感しました。

品質管理研修

入社後には若手社員向けの研修をいくつか受講しました。
その中で今回は、品質管理研修について少しお話したいと思います。

品質管理研修では言葉のとおり、「作成した成果物の品質をどのように保っていくか」ということが議題となります。
業務の中で色々な作業があると思いますが、作成した成果物のレビューと修正を行い、いかに高品質のものを提出できるか、というのがとても重要になります。

レビュー時に一度OKが出たものが、何か月後かに別の工程でエラーが発生し設計ミスに気が付くということもあります。
次の日に気が付くなら軽傷ですが、離れた別の工程で発覚してしまった時の影響範囲は想像したくもないですよね。
そのような事態を避けるため、レビューの作法やいかにしてすり抜けの発生しない成果物を作成していくのかを学ぶことができます。

実際、エラーの発生はソフトウェア開発ではつきものでエラーを0件にすることは困難です。しかし、一度発生したエラーを再度起こさないようにすれば、エラー件数は減少していきます。
そのためにエラーが発生した後に、なぜエラーが起こってしまったのか、ケアレスミスなのか、ダブルチェックを怠ったのか、仕様変更があったのか、など、原因を追究することが大切となってきます。

今、ここまで原因の追究なんて実際しないでしょと思いましたよね。
私もそう思うと思います。ですが数ある研修から今回この研修を挙げたのは、実際に私が業務で経験したことと同じだったからです。
実際に業務を行っていて、「あの研修で学んだことがそのまま起こっている!」という場面に出会いとても印象深く残っています。
それと同時に、品質管理の大切さに気が付くことができたため、挙げさせていただきました。

まとめ

今回ご紹介した研修以外にも、車載関係の研修はもちろん、資格取得に向けた研修や AI についての研修など多種多様な研修があります。
量もたくさんありますが、理解するために基礎から一歩ずつ学べる研修のため、量だけでなく質もよい研修を受講することができます。
学生の頃は授業が退屈で眠気と日々戦っていた私ですが、「この研修、次受けてみようかな」といったモチベーションになれる環境です。
受けてみたい研修がまだたくさんあるので、一緒に受講出来たらうれしく思います!

執筆者

Sugawara
菅原 裕太
デジタルソリューション事業部 DX統括部 モビリティソフトウェア開発担当
2024年にニューソンに中途入社。業務経験年数:4年。
前職では車載のシステムにおける要件定義からテスト工程まで幅広く組込み開発を担当。
車載の開発に深く携わりたいという思いから、モビリティソフトウェア開発担当に配属。
前職で得た経験を活かし、現在は C-ECU の開発に携わり、設計工程を中心に開発を行っている。