JP3938858B2 - 車両用電子制御装置 - Google Patents
車両用電子制御装置 Download PDFInfo
- Publication number
- JP3938858B2 JP3938858B2 JP2001295628A JP2001295628A JP3938858B2 JP 3938858 B2 JP3938858 B2 JP 3938858B2 JP 2001295628 A JP2001295628 A JP 2001295628A JP 2001295628 A JP2001295628 A JP 2001295628A JP 3938858 B2 JP3938858 B2 JP 3938858B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cpu
- communication
- control
- sum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Detection And Correction Of Errors (AREA)
- Small-Scale Networks (AREA)
- Testing And Monitoring For Control Systems (AREA)
Description
【発明の属する技術分野】
本発明は、車両用電子制御装置においてCPU間通信のデータ異常を正しく検出するための改良技術である。
【0002】
【従来の技術】
車載エンジンの制御を司る車両用電子制御装置(エンジンECU)として、メイン及びサブの2つのCPUを持つ構成が知られている。図4にその構成を示す。図4に示すエンジンECU20において、メインCPU21は噴射制御及び点火制御を実施し、サブCPU22はスロットル制御を実施する。また、メインCPU21は、スロットル制御(サブCPU)に関する監視制御として、サブCPU22から出力されるウオッチドッグパルス(WDパルス)をモニタし、WDパルスの周期性からサブCPU22の異常を検出する。サブCPU22の異常時には、メインCPU21がサブCPU22をリセットするようにしている。
【0003】
メインCPU21及びサブCPU22では、UART(Universal Asynchronous Receiver Transmitter )等の通信方式を用いて相互のデータを送受信し、データを共有して協調制御を行っている。なお、WD回路23は、メインCPU21から出力されるWDパルスを監視してメインCPU21の異常を検出し、メインCPU21の異常時には当該メインCPU21をリセットするようにしている。
【0004】
【発明が解決しようとする課題】
ところで近年では、CPUの高機能・大容量化により、従来2つのCPUを使用して実現してきたエンジン制御(噴射・点火制御)とスロットル制御とを1つのCPUで構成し、エンジンECUのコストダウンを図ることが考えられる。このような1CPU構成のエンジンECUでは、スロットル制御の状態を監視するための監視CPUが別途必要になる。この場合、監視CPUは監視専用であるため低機能(安価)なものが採用される。また、監視CPUをより安価なものにするために、CPU間通信もUART方式に代えてCSI(Clocked Serial Interface)方式等の簡易なものが採用される。CSI方式とは、セキュリティビットやヘッダ等を認識する通信モジュールを用いることなく、クロック同期でデータの送受信を行う通信方式である。
【0005】
一方、CPU間で送受信するデータの信頼性を向上させるためには、通信データを加算して求めたサムデータにより該通信データの異常が検出される。すなわち、送信側CPUでは、その都度の通信データと共にサムデータを受信側CPUに送信し、受信側CPUでは、受信したサムデータと通信データより算出したサムデータとが一致するかどうかを判定する。そして、一致した時のみ受信した通信データが正常である判断して当該データを使用する。
【0006】
ところが、前述したCSI方式の通信を採用する場合、サムデータによる異常検出では、通信データの異常が正しく検出できないことが考えられる。仮に通信線がグランドショートした時、サムデータを含めて全通信データが0となり、元々通信データが全て0であった場合(サムデータも0)を想定すると通信データの異常が正しく検出できない。故に、データ通信の信頼性が低下してしまう。
【0007】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、簡易な構成を用いつつ、良好なデータ通信を実現することができる車両用電子制御装置を提供することである。
【0008】
【課題を解決するための手段】
請求項1に記載の発明では、送信側CPUにおいて、通信データが全て0の時に0となることがないようサムデータからチェック用データが算出され、該チェック用データが通信データと共に受信側CPUに送信される。ここで前述の通り、仮に通信データと共にサムデータを受信側CPUに送信する場合、通信線がグランドショートするとそれらは共に0となり、元々通信データが全て0であった場合(サムデータも0)を想定すると通信データの異常が正しく検出できない。これに対し本発明では、通信データが全て0の時に0となることがないようチェック用データが算出されて通信データと共に送信されるため、通信線がグランドショートし、通信データとチェック用データとが共に0になる場合にも、受信側CPUにおいて通信データの異常が正しく検出できる。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【0009】
【課題を解決するための手段】
請求項1に記載の発明では、送信側CPUにおいて、その都度の通信データより算出したサムデータに対して0以外の所定値を加算又は減算してチェック用データが算出され、該チェック用データが通信データと共に受信側CPUに送信される。また、受信側CPUにおいて、受信した通信データよりサムデータ1が算出され、通信データと共に受信したチェック用データが前記所定値が加算されたチェック用データである場合には同所定値を減算してサムデータ2を算出し、前記所定値が減算されたチェック用データである場合には同所定値を加算してサムデータ2が算出される。そして、サムデータ1,2の比較により通信データの異常が検出される。かかる場合、通信データが全て0の時(すなわち、サムデータが0の時)にもチェック用データは0とならない。そのため、通信線がグランドショートし、通信データとチェック用データとが共に0になる場合にも、受信側CPUにおいて通信データの異常が正しく検出できる。すなわち、通信線がグランドショートした時、サムデータ1,2が不一致となり、通信データ異常の旨が検出される。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【0010】
請求項2に記載の発明では、前記2つのCPUは、一方がエンジン制御並びに電子スロットル制御を実施する制御CPU、他方が電子スロットル制御の制御状態を監視する監視CPUであり、制御監視のための各種の通信データと、該通信データより算出したチェック用データとが制御CPU及び監視CPU間で送受信される。この場合、制御CPUと監視CPUとを有する車両用電子制御装置において、監視CPUとして特定の通信モジュールを持たなくても、適正なデータ通信が実現できる。従って、監視CPU並びにその通信方式として安価なものが適用でき、コスト低減を図ることができる。
【0011】
また、請求項3に記載の発明では、送信側CPUでは、多数の通信データのうち特定の重要データのみ、前記チェック用データを算出して受信側CPUに送信する。この場合、送信側及び受信側の各CPUにおいて処理負荷を軽減することができる。
【0012】
また、請求項4に記載したように、サムデータに対して加減算する前記所定値は、各ビットが0,1を交互に並べて構成される値であると良い。例えば2バイトデータの場合、0x5aa5,0xa55a等を用いる。
【0013】
【発明の実施の形態】
以下、この発明を具体化した一実施の形態を図面に従って説明する。
図1は、本実施の形態におけるエンジンECUの構成を示すブロック図である。図1において、エンジンECU10は、エンジンの噴射制御、点火制御、スロットル制御を実施するための制御CPU11と、スロットル制御に関する監視制御を実施するための監視CPU12と、制御CPU11の動作を監視するためのWD回路13とを備える。制御CPU11は、A/D変換器14を介してスロットル開度やアクセル開度を入力する他に、エンジン回転数、吸気管内圧力等々のエンジン運転情報を随時入力し、当該運転情報に基づき図示しない燃料噴射弁、イグナイタ、スロットルアクチュエータの駆動を制御する。なお、スロットル開度やアクセル開度のA/D値は監視CPU12にも入力される。
【0014】
制御CPU11と監視CPU12との間の通信は、いわゆるCSI(Clocked Serial Interface)方式が採用されており、各CPU11,12の信号端子Sout,Sinを通じてクロック同期通信でデータの送受信が行われる。すなわち、制御CPU11から監視CPU12に対して所定周期(例えば、2msec又は4msec周期)の通信クロックが出力され、その通信クロックに同期してCPU11,12間で各種データが送受信される。この場合、監視CPU12としては、セキュリティビットやヘッダ等を認識する通通信モジュールを持っておらず、簡易で且つ安価な構成が実現されている。
【0015】
制御CPU11から監視CPU12に対しては、スロットル開度、アクセル開度、フェイルセーフ実施フラグ等のデータが送信される。監視CPU12は、スロットル制御の監視処理として、A/D変換器14を通じて入力したスロットル開度やアクセル開度のデータと、制御CPU11より受信した同じくスロットル開度やアクセル開度のデータとを比較し、それらが一致するかどうかによりスロットル制御状態の異常を検出する。そして、その監視結果を制御CPU11に対して返信する。
【0016】
制御CPU11は、監視CPU12での監視結果に従い、スロットル制御の異常発生時には所定のフェイルセーフ処理を実施する。フェイルセーフ処理として具体的には、車両の退避走行(リンプホーム)を実現すべく、一部の気筒の燃料噴射を休止させる減筒制御や点火時期の遅角制御等を実施する。
【0017】
制御CPU11と監視CPU12との間でデータ送受信が行われる際、通信データの信頼性を向上させるべく、各CPU11,12では通信データを加算してサムデータが算出され、そのサムデータによる通信データの異常検出が実施される。但し本実施の形態では、例えば制御CPU11から監視CPU12に送信されるデータ(スロットル開度、アクセル開度、フェイルセーフ実施フラグ等)のうち、スロットル開度及びアクセル開度のデータを「重要データ」、それ以外のフェイルセーフ実施フラグのデータ等を「非重要データ」として取り扱う。この場合、重要データを送受信する場合のみ、サムデータによる通信データの異常検出を実施するようにしている。
【0018】
また、制御CPU11は、WD回路13に対して所定周期で反転するWDパルスを出力する。WD回路13は、制御CPU11からのWDパルスが所定時間以上反転しなかった場合に制御CPU11に対してリセット信号を出力する。
【0019】
次に、制御CPU11と監視CPU12との間のCPU間通信の詳細を説明する。ここでは、制御CPU11を送信側、監視CPU12を受信側とし、制御CPU11から監視CPU12へ各種データが送信される場合を例に説明する。
【0020】
図2は、CPU間通信のデータ送信処理を示すフローチャートである。上記の如く制御CPU11を送信側とする場合、本処理は、1パケットの送信時間より短い時間毎(例えば、4msec毎)に制御CPU11により実施される。
【0021】
図2において、先ずステップ101では、今回送信する1パケット分の通信データを確定する。具体的には、所定の処理(LSB変換等)により制御用データを通信データに変換し、その通信データを送信用RAMへ格納する。このとき、例えばスロットル開度、アクセル開度、フェイルセーフ実施フラグが通信データとして確定される。
【0022】
ステップ102では、1パケット分の通信データのうち、重要データのみを加算してサムデータを算出する。ここで、前述した通り重要データとは、例えばスロットル開度及びアクセル開度のデータであり、これに対してサムデータが算出される。
【0023】
その後、ステップ103では、前記算出したサムデータから所定値Kを減算し、その減算結果をチェック用データとする。ここで、チェック用データは、通信データが全て0の時(すなわち、サムデータが0の時)に0とならないデータである。所定値Kは0以外の値であれば良く、より具体的には、各ビットが0,1を交互に並べて構成される値、例えば2バイトデータの場合、0x5aa5,0xa55a等を用いる。但し、サムデータと所定値Kとの減算値からチェック用データを算出する構成に代えて、サムデータと所定値Kとの加算値からチェック用データを算出する構成であっても良い。
【0024】
最後に、ステップ104では、確定した通信データとチェック用データとを監視CPU12に送信する。監視CPU12では、制御CPU11から受信した通信データが受信用RAMに順次格納される。
【0025】
図3は、CPU間通信のデータ受信処理を示すフローチャートである。上記の如く監視CPU12を受信側とする場合、本処理は、1パケットの送信時間より短い時間毎(例えば、4msec毎)に監視CPU12により実施される。
【0026】
図3において、先ずステップ201では、1パケット分の通信データを全て受信したか否かを検出する。1パケット分の通信データを受信していなければ本処理を終了する。1パケット分のデータを受信している場合はステップ202以降の処理を実施する。
【0027】
ステップ202では、受信した1パケット分の通信データについてサムデータを算出する(便宜上、これをサムデータ1とする)。但し、サムデータ算出の対象とするのは、前記図2のステップ102と同様、1パケット分の通信データのうち重要データのみである。また、ステップ203では、通信データに含まれるチェック用データからサムデータを算出する(便宜上、これをサムデータ2とする)。すなわち、受信したチェック用データに所定値K(例えば0x5aa5)を加算してサムデータ2を算出する。この所定値Kは、前記図2のステップ103で使った値と同じ値である。
【0028】
その後、ステップ204では、前記算出したサムデータ1とサムデータ2とが一致するか否かを検出する。サムデータ1とサムデータ2とが不一致の場合は通信データに異常があると判断して本処理を終了する。サムデータ1とサムデータ2とが一致した場合は、通信データを正常に受信したと判断してステップ205に進み、通信データを更新する。このとき、通信データが受信用RAMから制御用RAMへ転送される。
【0029】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
通信データが全て0の時に0となることがないようチェック用データを算出し、それを用いて通信データの異常を検出するようにしたため、通信線がグランドショートし、通信データとチェック用データとが共に0になる場合にも、受信側CPUにおいて通信データの異常が正しく検出できる。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【0030】
監視CPU12として特定の通信モジュールを持たなくても、適正なデータ通信が実現できる。従って、監視CPU12並びにその通信方式として安価なものが適用でき、コスト低減を図ることができる。
【0031】
また、送信側CPUでは、多数の通信データのうち特定の重要データのみ、チェック用データを算出して受信側CPUに送信する。この場合、送信側及び受信側の各CPUにおいて処理負荷を軽減することができる。
【0032】
上記実施の形態では、制御CPU11から監視CPU12へ通信データを送信する場合について説明したが、逆に監視CPU12から制御CPU11へ通信データを送信する場合にも本発明が適用できる。
【0033】
また、上記実施の形態では、多数の通信データを重要データ/非重要データに分け、重要データのみサムデータ算出等を実施したが、重要データ/非重要データの区分を無くし、全ての通信データについてサムデータの算出等を実施する構成であっても良い。
【図面の簡単な説明】
【図1】発明の実施の形態におけるエンジンECUの構成を示すブロック図。
【図2】CPU間通信のデータ送信処理を示すフローチャート。
【図3】CPU間通信のデータ受信処理を示すフローチャート。
【図4】従来技術におけるエンジンECUの構成を示すブロック図。
【符号の説明】
10…エンジンECU、11…制御CPU、12…監視CPU。
Claims (4)
- 少なくとも2つのCPU間でクロック同期通信を行い、送信側及び受信側の各CPUで通信データを加算して求めたサムデータを用いて該通信データの異常を検出する車両用電子制御装置において、
送信側CPUでは、
(1)その都度の通信データより算出したサムデータに対して0以外の所定値を加算又は減算してチェック用データを算出する処理、
(2)チェック用データを通信データと共に受信側CPUに送信する処理、
を順次実施し、受信側CPUでは、
(3)受信した通信データよりサムデータ1を算出する処理、
(4)通信データと共に受信したチェック用データが前記(1)の所定値が加算されたチェック用データである場合には同所定値を減算してサムデータ2を算出し、前記(1)の所定値が減算されたチェック用データである場合には同所定値を加算してサムデータ2を算出する処理、
(5)サムデータ1,2の比較により通信データの異常を検出する処理、
を順次実施することを特徴とする車両用電子制御装置。 - 前記2つのCPUは、一方がエンジン制御並びに電子スロットル制御を実施する制御CPU、他方が電子スロットル制御の制御状態を監視する監視CPUであり、制御監視のための各種の通信データと、該通信データより算出したチェック用データとを制御CPU及び監視CPU間で送受信する請求項1記載の車両用電子制御装置。
- 送信側CPUでは、多数の通信データのうち特定の重要データのみ、前記チェック用データを算出して受信側CPUに送信する請求項1又は2記載の車両用電子制御装置。
- 請求項1記載の車両用電子制御装置において、サムデータに対して加減算する前記所定値は、各ビットが0,1を交互に並べて構成される値である車両用電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295628A JP3938858B2 (ja) | 2001-09-27 | 2001-09-27 | 車両用電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295628A JP3938858B2 (ja) | 2001-09-27 | 2001-09-27 | 車両用電子制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003097344A JP2003097344A (ja) | 2003-04-03 |
JP3938858B2 true JP3938858B2 (ja) | 2007-06-27 |
Family
ID=19117027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001295628A Expired - Lifetime JP3938858B2 (ja) | 2001-09-27 | 2001-09-27 | 車両用電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3938858B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4408921B2 (ja) | 2007-08-22 | 2010-02-03 | 株式会社デンソー | 電子機器 |
JP5332420B2 (ja) * | 2008-09-04 | 2013-11-06 | 株式会社デンソー | 電子装置 |
JP2011032903A (ja) * | 2009-07-30 | 2011-02-17 | Denso Corp | 車両の制御装置 |
JP5662181B2 (ja) * | 2011-02-01 | 2015-01-28 | 株式会社ケーヒン | 移動体の電子制御装置 |
CN110290040B (zh) * | 2014-09-12 | 2021-08-31 | 松下电器(美国)知识产权公司 | 电子控制单元、车载网络系统以及车辆用通信方法 |
KR102219455B1 (ko) * | 2020-01-07 | 2021-02-25 | 주식회사 넥스트칩 | 프로세서들 간 및 통신 채널의 기능 안전을 보장하기 위한 방법 및 이를 수행하는 프로세서 |
-
2001
- 2001-09-27 JP JP2001295628A patent/JP3938858B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003097344A (ja) | 2003-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100686664B1 (ko) | 제어 유닛의 상호 감시를 위한 장치 및 방법 | |
JPH07105801B2 (ja) | 車両用通信制御装置 | |
JP4195272B2 (ja) | Can−コントローラ内部のデータ伝送におけるエラーの認識方法,can−コントローラ,プログラム,記録媒体,及び制御装置 | |
JP2005100029A (ja) | 車載電子制御装置 | |
JP3938858B2 (ja) | 車両用電子制御装置 | |
JP3939961B2 (ja) | 車両用電子制御装置 | |
JP6207987B2 (ja) | 車載用電子制御装置 | |
JP3486990B2 (ja) | シリアル通信装置 | |
JP3835312B2 (ja) | 車両用電子制御装置 | |
US8392046B2 (en) | Monitoring the functional reliability of an internal combustion engine | |
US20200036738A1 (en) | Method and device for detecting anomalies in a computer network | |
JP3901987B2 (ja) | 車両用電子制御装置 | |
CN113442848B (zh) | 车辆控制系统、攻击判定方法及记录有程序的记录介质 | |
US11814069B2 (en) | Vehicle control system, data transmitting method, and recording medium on which program is recorded | |
CN115158341B (zh) | 基于功能安全设计的车辆故障上传方法及装置 | |
JP2880364B2 (ja) | 自動車用エンジン制御装置 | |
JP2006195739A (ja) | 電子制御装置 | |
JP3818218B2 (ja) | 車両用電子制御装置 | |
JP2001197154A (ja) | 複合制御装置 | |
JP4005421B2 (ja) | 車両用電子制御装置 | |
JP2004346746A (ja) | 車両制御システムの異常検出装置 | |
JP2601828Y2 (ja) | 車両用制御システム | |
JP3401360B2 (ja) | 多重伝送装置 | |
JP2023152461A (ja) | 車載ゲートウェイ装置及びインジェクション攻撃の検出方法 | |
JPH04203344A (ja) | 車載電子装置間のデータ通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070202 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070326 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3938858 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |