組込みシステム特論(1回目) ―...
TRANSCRIPT
組込みシステム
― 概論 ―
福田晃
九州大学大学院システム情報科学研究院
2
■定義
各種の機械や機器に組み込まれて,その制御を行うコンピュータシステム.
または,上記のコンピュータシステムをその一部として,機械・機器全体.
特定用途に特化されたシステム
範囲が広い,多様化している.
電子炊飯器から,原子力発電,人工衛星まで
■曖昧な部分あり.
PCは,組込みシステムではない.
目的:汎用(特化された目的ではない)
ゲーム機は,組込みシステムか?
組込みシステムとは?
みんな組込みシステム
組込みソフトウェアとは?
3
組込みシステム(携帯電話,家電製品,自動車など)のコンピュータに予め内蔵されたプログラム携帯電話にタウンロードするJAVAプログラムは,組込みソフトウェアか?
組込みソフトウェアとは,言いがたい.
マイクロコンピュータ
ボード
4
多様な組込みシステム
★自動車用ソフトウェア(エンジン制御)
★工業制御・FA機器・産業機器
★運輸・建設機器
★設備機器
★交換機、基地局★医療機器
★コンピュータ周辺・OA機器
★テレビ、DVD
★家電機器
★携帯電話★カーナビ
★教育・娯楽機器
★個人用情報機器
一般利用
産業利用
制御中心 情報処理中心
出展:「情報処理」2005年6月
5
組込みシステム/ソフトウェアの特徴
専用化されたシステム システム全体が,1つの目的のために専用化されて設計される.
激しいリソース制約 制約
コストダウン要請 消費エネルギー 軽量化 動作環境
制約の厳しさは,分野によって異なる.
高い信頼性 システムの誤動作が人命に直結する分野もある.
プラント,クルマ,...
リアルタイム性 システムが定めた時間制約に従って動作. 単に,「処理が速い」ではない.
ビジネスモデルがPCとは異なる. とくに,バグ発生時. 誰が責任を負うのか
PC: Windows,バグだらけ? -> パッチの案内だけ? 組込みシステム:開発者?
携帯電話,クルマ,...
6
組込みソフトウェア開発の特徴(1/3)
主に,PC開発と比較して.
ハードウェアに密着したプログラミング 組込みシステムは,システムごとに,ハードウェア構成,周辺デバイスが異なる
ため,ハードウェアを直接扱う比率が高い.
ハードウェア性能を最大限に引き出す.
ハードウェアの知識が必要.
ノウハウが必要.
教育方法: 従来は,徒弟制度的.
これでいいのか?
ハードウェアとの並行開発と協調設計 ハードウェア,ソフトウェアの同時開発
ハードウェアの完成を待っては,遅い.
ソフトウェアの開発環境をどうするか?
バグが特定しにくい
ハードウェアのバグなのか? ソフトウェアのバグなのか?
7
組込みソフトウェア開発の特徴(2/3)
開発環境の特殊性 ハードウェアが完成していない段階での開発
ターゲットシステムと開発環境が分離している.
クロス開発環境やリモートデバッグが必要.
多様なプラットフォーム 組込みシステムの多様性に伴い,プラットフォーム(ハードウェア構成,
OS)が多様化.
移植が困難.
検証にコストがかかる. 高い信頼性への要求.
事象再現が難しい.
タイミングに起因する非決定性
8
組込みソフトウェア開発の特徴(3/3)
通常処理以外の処理(例外処理)が占める割合が多い. 例外処理
定義が曖昧
通常処理とは?
(定義1):組込みシステムの使われ方に沿った処理
(定義2):(定義1)+仕様書に記載されている処理
ユーザは,開発者が思ってもみない,使い方をする.
バグが一度に顕在化.
外部からのアタックを考慮していない. ネットワークの普及に伴い,外部からのアタックが多くなる.
そこまで,考慮できていない.-> 大きな問題!
9
組込みシステム産業とその現状
10
11
12
組込みソフトウェア技術者数の指数的増大
2004 2006 年2005 2007 2008 2009
60
40
20
技術者数(万人)
不足数
技術者供給
技術者需要
開発手法改善
出典: 経済産業省組込みソフトウェア産業実態調査(2006年度版)
100M
50M
1995 2000
オブジェクトサイズ
年
情報家電:TV
携帯電話
出典: 組込みソフトウェア開発力強化推進フォーラム(2004年6月)
日経エレクトロニクス 2000 9-1(no.778) をベース
組込みソフトウェア開発量の指数的増大
自動車:カーナビ
100M
50M
1995 2000
オブジェクトサイズ
年
情報家電:TV
携帯電話
出典: 組込みソフトウェア開発力強化推進フォーラム(2004年6月)
日経エレクトロニクス 2000 9-1(no.778) をベース
組込みソフトウェア開発量の指数的増大
自動車:カーナビ
組込みソフトウェア開発の危機
携帯電話の組込みソフトウェアの推移
13
1M
2M
4M
8M
16M
32M
64M
500K
●携帯電話のフラッシュ容量
(Byte)
1996~97
▲
▲
▲▲
▲▲
■■
■
■
■
●
●
●
1998~99 2000 2001 2002~03 (年)
Voice Phone
Internet Phone
Multimedia Terminal
Java■●
■
●MPEG-4
Audio
EEPROM
Function Voice Memo
Phone Book
Browser-Cache
Still-images
Ring-Melody
Koji Abe, SEMICON JAPAN 2000(Dec, 2000)
14
15
製品出荷後の不具合原因の割合
出典:経済産業省「2008年度版組込みソフトウェア産業実態調査報告書」
不具合装置名 状況
エアバッグエアバッグ装置のエアバッグコントロールユニットにおいて、当該ユニットのプログラムが不適切であったため、前面オフセット衝突時の状態等により減速センサーの信号処理が遅れることがある。そのため、衝突時にエアバッグの展開が遅れ、最悪の場合、乗員が過度の障害を受けるおそれがある。
エンジンECUエンジンコントロールユニットのソフトウェアのプログラムが不適切なため、イグニッションスイッチを断った後も燃料ポンプが作動しつづけることがある。そのため、燃料パイプ内の圧力が高くなり、最悪の場合、燃料タンクとパイプの接続部から燃料がもれるおそれがある。
燃料計燃料計の制御コンピュータのプログラムが不適切なため、燃料の残量が正しく表示されず、また、残量警告灯が作動しないことがある。そのため、そのまま走行を続けると、最悪の場合、原動機が停止するおそれがある。
コンピュータイグニッションスイッチのキーレススタートシステムにおいて、スタートコントロールユニットのプログラムが不適切なため、イグニッションキーの役割をする携帯機との電波交信範囲外において施錠されない場合がある。そのため、その状態で運転者以外の者が、イグニッションスイッチを操作すると、エンジンを始動できるおそれがある。
A/T
トランスミッションを制御するコントロール・ユニットのプログラムが不適切なため、ギヤ変速用シフト・シリンダに規定値を超える高い圧縮空気が供給されるため、ピストンがシリンダヘッドに強く接触することがある。そのため、そのままの状態で使用を続けると、接触の際の振動によりコントロール・ユニット基板内で接触不良が生じ、正常な変速制御が行われなくなり、最悪の場合、走行不能となるおそれがある。
方向指示器前面方向指示器の作動を制御するコントロール・ユニットのプログラムが不適切なため、当該方向指示器の点灯状態を認識しないものがある。そのため、当該方向指示器が故障した場合、運転者に作動状態を表示する装置が作動しないおそれがある。
燃料ホース/パイプ燃料噴射制御プログラムが不適切なため、中速回転域において噴射パイプに共振が発生し、パイプに亀裂が発生するものがある。そのため、そのまま使用を続けると、燃料が漏れてエンジンオイルに混入して、シリンダ内で燃焼されるため、出力不足となる又は振動が発生し、最悪の場合、エンストし再始動できなくなるおそれがある。
ABS4輪駆動車のABS(アンチロックブレーキシステム)の制御プログラムが不適切なため、凹凸路面等でABSの作動を制限する制御が不十分になる場合がある。そのため、低速走行時に凹凸の続く下り坂の路面においてブレーキ操作した場合に、運転者の予測より制動停止距離が伸びるおそれがある。
2006年度の自動車 リコール・改善対策ソフトウェアが影響しているもの(例) ・・・・国交省HPより抽出
引用元:IPA 門田氏 提供資料
18
ソフトウェア不具合による自動車リコール・改善対策事例
出展:国土交通省のリコール届出DBより抜粋
ここ数年ソフトウェアに起因するリコール・改善対策が急激に増加
引用元:IPA 門田氏 提供資料
ソフトウェアが影響している失敗事例
19
名古屋空港で中華航空140便エアバスA300-600Rが着陸に失敗炎上 操縦乗員の自動操縦装置の誤操作+操縦システム設計の不備
操縦権をシステムとパイロットで取り合う ゴーアラウンド指示
UIの設計不備 パイロットの習熟不足
50億円の損害賠償
アリアン5型ロケット打ち上げ直後に爆発炎上(1996/6) 飛行制御システムのバグ
64ビット浮動小数点から16ビット整数への変換時に桁あふれ 2系統ともにダウン
アリアン4型ロケットと同様のシステムだったが・・・ 80億USD
首都圏の自動改札トラブル (2007/10) 首都圏の各駅(660以上)において自動改札が起動しなくなる
ICカード処理のバグ サーバとの通信 ← 従来なかったような機能
260万人に影響
20
製品出荷後の設計品質問題の発生率
出典:2007年版組込みソフトウェア産業実態調査(経営者・事業責任者向け調査報告書)
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
2005年
2006年
2007年
なし 10%未満 10~20%未満 20~30%未満 30%以上
引用元:IPA 門田氏 提供資料
21
Q4-1 組込みソフトウェア開発の課題
0% 10% 20% 30% 40% 50% 60% 70% 80%
設計品質の向上
新製品の開発
開発期間の短縮
開発能力(量)の向上
生産性の向上
開発コストの削減
市場の拡大
新技術の開発
製品安全性の確保
製品品質の向上
その他
1番目 2番目 3番目
出典:2007年版組込みソフトウェア産業実態調査(経営者・事業責任者向け調査報告書)引用元:IPA 門田氏 提供資料
22
Q4-2 組込みソフトウェア開発課題解決の有効手段
0% 10% 20% 30% 40% 50% 60% 70%
技術者のスキル向上
技術者の確保
プロジェクトマネージャのスキル向上
開発手法・開発技術の向上
プロジェクトマネ-ジャの確保
管理手法・管理技術の向上
新技術の開発・導入
開発環境の整備・改善
開発製品数・開発費の削減・最適化
経営者・投資家の理解
委託先の確保・能力向上
その他
有効度1 有効度2 有効度3
引用元:IPA 門田氏 提供資料
23
組込みシステム/ソフトウェアの課題
設計品質・信頼性・安全性の確保/向上 設計/開発プロセス,設計/開発手法,コーディング,テスト/検証手法全体に
渡っての見直し.
設計/開発資産の再利用の促進 再利用可能な設計/開発手法の確立が必要. 資産の標準化
社内/業界レベル
ハードウェアとソフトウェアの協調設計 評価関数は何か?
コスト,消費エネルギー,...
技術者の不足 とくに,組込みソフトウェア
その他の多くの課題:例 低消費エネルギー開発技術 安全性保証技術: 機能安全 セキュリティ技術
24
組込みソフトウェアに必要な技術
25
組込みソフトの知識体系
マイコンハード
プログラミング
組込みマイコン
機器制御
センサー
アクチュエータ
開発方法論
電気電子の基礎
機能安全・信頼性
通信方式無線回路プロトコル
OA機器
家電製品
車載LAN車載機器制御
安全制御
FA機器
ネットワーク
組込みソフト
共通技術
組込みシステム
関係技術・周辺知識
応用分野
固有の知識
開発ツール
組込み用C言語
通信機器自動車
組込みOS
引用元:「福岡システムLSIカレッジテキスト 組込みソフトウェア技術者養成講座ー入門コースー」
システム構成
機械
RUNLOOP:
CALL INPUT
BIT 7, C
JP Z, NEXT2
LD A, (STATE)
LD B, A
XOR A
SUB B
LD (STATE), A
LD A, SECCNTMAX
LD (SECCNT), A
NEXT2: BIT 6, C
JP Z, NEXT3
CALL REQREV
LD A, SECCNTMAX
LD (SECCNT), A
電気 電子 ソフト
PCB LSI筐体 機構
26
27
組込みソフト共通技術
マイコンチップ
内部バス
CPUコア
(命令実行)
RAM
(一時データ)
ROM
(プログラム
保存データ)
入 力インターフェース
出 力インターフェース
引用元:「福岡システムLSIカレッジテキスト 組込みソフトウェア技術者養成講座ー入門コースー」
28
組込みシステム関係技術・周辺知識
PX.CR.BYTE = 0x30;
PX.CCR = 0xFF;
for(i = 0; i < 8; i++) {
AcmSet[i].ON = FALSE;
AcmSet[i].CY = 0;
AcmSet[i].TR = 0;
}
ISU.DSTR.BIT.PTR3 = 0;
ISU.DSTR.BIT.PTR4 = 0;
機械制御ネットワーク
組込み向けC言語
電気電子の基礎
開発ツール
引用元:「福岡システムLSIカレッジテキスト 組込みソフトウェア技術者養成講座ー入門コースー」
29
応用分野(ドメイン)の知識
自動車通信機器 家電品
OA機器FA機器
引用元:「福岡システムLSIカレッジテキスト 組込みソフトウェア技術者養成講座ー入門コースー」
30
カーエレクトニクス
31
クルマの中の組込みシステム
32
クルマの加速するIT化~ロボット化するクルマ~
コーディング 59%
ハード設計 15%
ハード仕様 2%
ソフト設計 12%
ソフト仕様 12%
・電子制御ユニット(ECU): 約100個(トヨタ レクサスLS460)・国内クルマ関連のソフトウェア開発費
1000億円/年 ->2014年 1兆円/年(経済産業省)
ECU開発工数の内訳(業界調べ)
33
ナビ 制御系
(エンジン・ブレーキ)
ボデー系
ROM容量 メガのオーダー メガ未満 キロのオーダー
RAM容量 キロからメガ 1~10数キロ キロのオーダー
時間制約 100msec程度 ~数msec 100msec程度
浮動小数点演算 ○ ×~△ ×
扱う演算 GUI
状態遷移系
物理モデル
数値マップ参照
状態遷移
状態遷移系
数値マップ参照
使用言語 C, C++,JAVA C, アセンブラ C, アセンブラ
特徴 パソコン並み 変数のほとんどはグローバル変数
安いが命のシステム多数
出展:2007年1月15日 第四回QUESTセミナー
車載組込みソフトウェアの特徴
34
車載IT化の問題点
スペースの問題 ECUを搭載する場所がない.
ケーブル,電源ワイヤが太くなり,通せない,曲げられない.
コストの問題 箱が多いと箱代がかかる.
ハーネス代増加
重量の問題 ハーネスだけでも数十キロ
ソフトウェアの比重が増大 開発コストの4割
鍵は,ソフトウェア!
35
A社の電子制御式ブレーキシステム(ECB)用ECU
T社の車両運動制御システム(VDIM)用ECU
D社のCAN通信ゲートウェイ(G/W)用ECU
A社の電子制御式ブレーキシステム(ECB)用ECU
標準ソフトウェア・プラットフォーム
A社ECB用ソフトウェア
T社VDIM用ソフトウェア
D社G/W用ソフトウェア
出展:日経エレクトロニクス 2006年12月18日号
部品供給からソフトウェア供給へ
車載ソフトウェアの部品化
36
車載ソフトウェア開発の課題と解決方法
典型的な摺り合わせ型開発
大規模,複雑化 従来:
電子部品の付録的存在 主に,車種ごとの開発
ソフトの再利用 再利用はコードレベル ボトムアップ型再利用
ECUの統合化に伴う課題 個別ソフト同士がつながらない. インタオペラビリティの保証
クルマの価値は,今後,ソフトウェアで決まる.
高品質保証 安全性の確保
派生車種の開発方法論ソフトウェア・プロダクトライン開発方法
上流での設計・検証技術モデル駆動開発
検証技術モデリングモデルチェッキング技術
ソフトウェア開発の破綻
37
以上