
	TOPPERS/A-CAN 外部仕様書

本ドキュメントは，AUTOSAR仕様をベースとしたA-CANの外部仕様を説明する
ものである．

----------------------------------------------------------------------
TOPPERS/A-CAN
    Automotive CAN

Copyright (C) 2013-2016 by Center for Embedded Computing Systems
                           Graduate School of Information Science, Nagoya Univ., JAPAN
Copyright (C) 2014-2016 by AISIN COMCRUISE Co., Ltd., JAPAN
Copyright (C) 2015-2016 by eSOL Co.,Ltd., JAPAN
Copyright (C) 2013-2016 by FUJI SOFT INCORPORATED, JAPAN
Copyright (C) 2014-2016 by NEC Communication Systems, Ltd., JAPAN
Copyright (C) 2013-2016 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
Copyright (C) 2014-2016 by SCSK Corporation, JAPAN
Copyright (C) 2013-2016 by Sunny Giken Inc., JAPAN
Copyright (C) 2015-2016 by SUZUKI MOTOR CORPORATION
Copyright (C) 2013-2016 by TOSHIBA CORPORATION, JAPAN
Copyright (C) 2013-2016 by Witz Corporation

上記著作権者は，以下の (1)～(3)の条件を満たす場合に限り，本ドキュメ
ント（本ドキュメントを改変したものを含む．以下同じ）を使用・複製・改
変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
(1) 本ドキュメントを利用する場合には，上記の著作権表示，この利用条件
    および下記の無保証規定が，そのままの形でドキュメント中に含まれて
    いること．
(2) 本ドキュメントを改変する場合には，ドキュメントを改変した旨の記述
    を，改変後のドキュメント中に含めること．ただし，改変後のドキュメ
    ントが，TOPPERSプロジェクト指定の開発成果物である場合には，この限
    りではない．
(3) 本ドキュメントの利用により直接的または間接的に生じるいかなる損害
    からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
    本ドキュメントのユーザまたはエンドユーザからのいかなる理由に基づ
    く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．

本ドキュメントは，AUTOSAR（AUTomotive Open System ARchitecture）仕様
に基づいている．上記の許諾は，AUTOSARの知的財産権を許諾するものではな
い．AUTOSARは，AUTOSAR仕様に基づいたソフトウェアを商用目的で利用する
者に対して，AUTOSARパートナーになることを求めている．

本ドキュメントは，無保証で提供されているものである．上記著作権者およ
びTOPPERSプロジェクトは，本ドキュメントに関して，特定の使用目的に対す
る適合性も含めて，いかなる保証も行わない．また，本ドキュメントの利用
により直接的または間接的に生じたいかなる損害に関しても，その責任を負
わない．

$Id: can_spec.txt 2995 2016-03-02 02:05:09Z fsi-kaitori $
----------------------------------------------------------------------

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1) 概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A-CANは，AUTOSARの以下の仕様に準拠して開発する．
Specification of CAN V4.2.0 R4.0 Rev 3

また，AUTOSAR CANはターゲット依存のソフトウェアであるが，冗長コードの削
減とポーティング容易性を高めるため，ATK2同様，ターゲット非依存部と，依存
部に分けてコード管理する．
非依存部のソースコード中の仕様タグの意味は以下のとおりである．
・[CANxxx]：非依存部で対応した要求タグ
・<CANxxx>：非依存部で未対応とした要求タグ
・(CANxxx)：依存部で対応するべき要求タグ 
※依存部コードにおいては，(CANxxx)に対してどのように実装を行ったかを，
  依存部コード中に，[CANxxx]等を用いて記述することを推奨する

Canモジュールの各機能のサポート有無は，ターゲットに依存するため，本ドキ
ュメントでは言及しない．各ターゲット依存部内のドキュメントを参照すること．

本ドキュメントでは，AUTOSAR仕様の中で，ターゲット非依存部におけるA-CAN
のサポート/未サポート仕様，追加/改変した仕様，曖昧な仕様の解釈を説明する．

―――――――――――――――――――――――――――――――――――
(1.1) 略語一覧
―――――――――――――――――――――――――――――――――――
MF    ：Can_MainFunction
TTCAN ：Time-Triggered CAN
[*]   ：ボディ系サブセット対象

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(2) サポートする機能
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
―――――――――――――――――――――――――――――――――――
(2.1) 機能
―――――――――――――――――――――――――――――――――――
＜機能一覧＞
■送信
  ・CANコントローラへのメッセージ書き込み [*]
■受信
  ・受信ハードウェアフィルタリング
■システムの管理
  ・初期化 [*]
  ・バージョン情報取得
  ・ボーレート管理 [*]
  ・CANコントローラモード管理 [*]
  ・バス状態管理
  ・割込み制御 [*]
    ・受信,送信完了のみサポート
  ・MFによるポーリング制御 [*]
  ・OSカウンタ使用によるコントローラのレスポンス監視

―――――――――――――――――――――――――――――――――――
(2.2) パラメータコンテナ
―――――――――――――――――――――――――――――――――――
■CanGeneral
  ・CanChangeBaudrateApi [*]
  ・CanDevErrorDetection [*]
  ・CanIndex [*]
  ・CanLPduReceiveCalloutFunction [*]
  ・CanMainFunctionBusoffPeriod [*]
  ・CanMainFunctionModePeriod [*]
  ・CanMainFunctionWakeupPeriod [*]
  ・CanMultiplexedTransmission
  ・CanTimeoutDuration [*]
  ・CanVersionInfoApi
  ・CanCounterRef [*]
  ▼CanMainFunctionRWPeriods [*]
    ・CanMainFunctionReadPeriod [*]
    ・CanMainFunctionWritePeriod [*]
■CanConfigSet
  ▼CanController
    ・CanBusoffProcessing [*]
    ・CanControllerActivation
    ・CanControllerBaseAddress
    ・CanControllerId [*]
    ・CanRxProcessing [*]
    ・CanTxProcessing [*]
    ・CanWakeupProcessing [*]
    ・CanWakeupSupport [*]
    ・CanControllerDefaultBaudrate [*]
    ・CanWakeupSourceRef
    ▼CanControllerBaudrateConfig
      ・CanControllerBaudRate [*]
      ・CanControllerPropSeg [*]
      ・CanControllerSeg1 [*]
      ・CanControllerSeg2 [*]
      ・CanControllerSyncJumpWidth [*]
    ▼CanFilterMask
      ・CanFilterMaskValue
  ▼CanHardwareObject
    ・CanHandleType [*]
    ・CanIdType [*]
    ・CanIdValue [*]
    ・CanObjectId [*]
    ・CanObjectType [*]
    ・CanControllerRef [*]
    ・CanFilterMaskRef

―――――――――――――――――――――――――――――――――――
(2.3) システムサービス
―――――――――――――――――――――――――――――――――――
・Can_Init [*]
・Can_GetVersionInfo
・Can_CheckBaudrate [*]
・Can_ChangeBaudrate [*]
・Can_SetControllerMode [*]
・Can_DisableControllerInterrupts [*]
・Can_EnableControllerInterrupts [*]
・Can_Write [*]
・Can_CheckWakeup [*]
・Can_MainFunction_Write [*]
・Can_MainFunction_Read [*]
・Can_MainFunction_BusOff [*]
・Can_MainFunction_Wakeup [*]
・Can_MainFunction_Mode [*]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(3) サポートしない機能
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
―――――――――――――――――――――――――――――――――――
(3.1) 機能
―――――――――――――――――――――――――――――――――――
＜機能一覧＞
■送受信
  ・マルチCAN送信サポート
  ・リモートフレーム
  ・拡張フレーム
  ・送信キャンセル
■システムの管理
  ・TTCANサポート

―――――――――――――――――――――――――――――――――――
(3.2) パラメータコンテナ
―――――――――――――――――――――――――――――――――――
■CanGeneral
  ・CanHardwareCancellation [*]
  ・CanIdenticalIdCancellation [*]
  ・CanSupportTTCANRef
■CanConfigSet
  ▼CanController
    ・CanCpuClockRef [*]
    ▼CanTTController
  ▼CanHardwareObject
    ・CanMainFunctionRWPeriodRef [*]
    ▼CanTTHardwareObjectTrigger

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(4) 追加，改変仕様
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
―――――――――――――――――――――――――――――――――――
(4.1) CanMainFunctionReadPeriod コンテナ多重度
―――――――――――――――――――――――――――――――――――
■AUTOSAR仕様では，多重度が0..*となっているが，周期毎のシステムサービス
  の実装は，ターゲット依存となり，非依存部との切り分けが難しい．従って，
  本仕様では，本コンテナの多重度を0..1として，システムサービスは
  Can_MainFunction_Readのみとする．[NCAN001]

―――――――――――――――――――――――――――――――――――
(4.2) CanMainFunctionWritePeriod コンテナ多重度
―――――――――――――――――――――――――――――――――――
■AUTOSAR仕様では，多重度が0..*となっているが，周期毎のシステムサービス
  の実装は，ターゲット依存となり，非依存部との切り分けが難しい．従って，
  本仕様では，本コンテナの多重度を0..1として，システムサービスは
  Can_MainFunction_Writeのみとする．[NCAN002]

―――――――――――――――――――――――――――――――――――
(4.3) Can_Initの引数チェック
―――――――――――――――――――――――――――――――――――
■Can_Initの引数に不正なポインタが指定された場合，DETへ
  CAN_E_PARAM_POINTERを通知と規定されている．[CAN175] しかし，CanIfの
  CanIf_Initでは，NULL_PTRが指定された場合は，デフォルトのコンフィギュ
  レーションを使用すると規定されている．[CANIF301]
  これに合わせて，Can_Initも不正なポインタとしてNULL_PTRが指定された場
  合，デフォルトのコンフィギュレーションとして，先頭のコンフィギュレー
  ションを使用する．[NCAN003]

―――――――――――――――――――――――――――――――――――
(4.4) CanConfigSet コンテナ多重度
―――――――――――――――――――――――――――――――――――
■AUTOSAR仕様では，多重度が1となっているが，ポストビルドにより複数のコ
  ンフィギュレーション情報に対応するため，多重度を1..*とする．[NCAN004]



以上
