wiki:spec_CANDriver
CAN Driver


概要

  • COMスタックのMCALで、CANプロトコルを扱う
  • 送受信に使用するメールボックスのハンドルを、HOH(Hardware Object Handle)と呼ぶ
    • 送信のHOHをHTH、受信のHOHをHRHと区別する
  • CANに関する解説サイト
  • API一覧
API ID
[Dec]
ID
[Hex]
Can_Init 0 0x00
Can_GetVersionInfo 7 0x07
Can_CheckBaudrate 14 0x0E
Can_ChangeBaudrate 13 0x0D
Can_SetControllerMode 3 0x03
Can_DisableControllerInterrupts 4 0x04
Can_EnableControllerInterrupts 5 0x05
Can_CheckWakeup 11 0x0B
Can_Write 6 0x06
Can_MainFunction_Write 1 0x01
Can_MainFunction_Read 8 0x08
Can_MainFunction_BusOff 9 0x09
Can_MainFunction_Wakeup 10 0x0A
Can_MainFunction_Mode 12 0x0C
  • エラーコード一覧
エラーコード Dec Hex
CAN_E_PARAM_POINTER 1 0x01
CAN_E_PARAM_HANDLE 2 0x02
CAN_E_PARAM_DLC 3 0x03
CAN_E_PARAM_CONTROLLER 4 0x04
CAN_E_UNINIT 5 0x05
CAN_E_TRANSITION 6 0x06
CAN_E_DATALOST 7 0x07

API仕様

Can_Init

void Can_Init(const Can_ConfigType* Config)
  • Canモジュールの初期化を行う
  • 引数Configで与えたポインタが指すコンフィギュレーションデータを使用して初期化される
  • 引数にNULLを与えた場合、デフォルトのコンフィギュレーションが設定される(本仕様はR4.1系で削除された)
  • CanIfのCanIf_Initでは、引数にNULLを与えた場合、デフォルトのコンフィギュレーションが設定される仕様となっていることから、TOPPERS/A-CANではCan_Initも同様にNULLが与えられた場合、デフォルトのコンフィギュレーションを設定するように実装している

Can_GetVersionInfo

void Can_GetVersionInfo(Std_VersionInfoType* versioninfo)

Can_CheckBaudrate

Std_ReturnType Can_CheckBaudrate(uint8 Controller, const uint16 Baudrate)
  • 引数Controllerで与えたCANコントローラが、引数Baudrateで与えたボーレートが使用可能かチェックする

Can_ChangeBaudrate

Std_ReturnType Can_ChangeBaudrate(uint8 Controller, const uint16 Baudrate)
  • 引数Controllerで与えたCANコントローラを、引数Baudrateで与えたボーレートへ変更する

Can_SetControllerMode

Can_ReturnType Can_SetControllerMode(uint8 Controller, Can_StateTransitionType Transition)
  • 引数Controllerで与えたCANコントローラを、引数Transitionで与えた状態へ変更する

Can_DisableControllerInterrupts

void Can_DisableControllerInterrupts(uint8 Controller)
  • 引数Controllerで与えたCANコントローラに関連する割込みを禁止する

Can_EnableControllerInterrupts

void Can_EnableControllerInterrupts(uint8 Controller)
  • 引数Controllerで与えたCANコントローラに関連する割込みを許可する

Can_CheckWakeup

Can_ReturnType Can_CheckWakeup(uint8 Controller)

Can_Write

Can_ReturnType Can_Write(Can_HwHandleType Hth, const Can_PduType* PduInfo)
  • 引数Hthで与えたHTHから、引数PduInfoで与えたデータを送信する

Can_MainFunction_Write

void Can_MainFunction_Write(void)

Can_MainFunction_Read

void Can_MainFunction_Read(void)

Can_MainFunction_BusOff

void Can_MainFunction_BusOff(void)

Can_MainFunction_Wakeup

void Can_MainFunction_Wakeup(void)

Can_MainFunction_Mode

void Can_MainFunction_Mode(void)

コンフィギュレーション仕様

CanConfigSet

/AUTOSAR/EcucDefs/Can/CanConfigSet
  • 型:Container
  • 多重度:1
  • Can_Initにより設定されるコンフィギュレーション全体のコンテナ
  • TOPPERS/A-CANでは、ポストビルドによる複数のコンフィギュレーション定義に対応するため、多重度を1..*として本コンテナを複数定義可能としている

CanController

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController
  • 型:Container
  • 多重度:1..*
  • CANコントローラを設定するコンテナ

CanBusoffProcessing

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanBusoffProcessing
  • 型:EnumerationParam
    • INTERRUPT:割込みによって行う
    • POLLING:ポーリングによって行う
  • 多重度:1
  • バスオフ検知方法を設定する

CanControllerActivation

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerActivation
  • 型:BooleanParam
  • 多重度:1
  • CANコントローラの使用有無

CanControllerBaseAddress

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaseAddress
  • 型:IntegerParam
  • 多重度:1
  • CANコントローラのベースアドレス

CanControllerId

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerId
  • 型:IntegerParam
  • 多重度:1
  • CANコントローラのID
  • TOPPERS/A-CANでは、処理速度向上のため、0から連番とする制約を設けている

CanRxProcessing

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanRxProcessing
  • 型:EnumerationParam
    • INTERRUPT:割込みによって行う
    • POLLING:ポーリングによって行う
  • 多重度:1
  • メッセージ受信検知方法を設定する

CanTxProcessing

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanTxProcessing
  • 型:EnumerationParam
    • INTERRUPT:割込みによって行う
    • POLLING:ポーリングによって行う
  • 多重度:1
  • メッセージ送信完了検知方法を設定する

CanWakeupProcessing

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanWakeupProcessing
  • 型:EnumerationParam
    • INTERRUPT:割込みによって行う
    • POLLING:ポーリングによって行う
  • 多重度:1
  • ウェイクアップ検知方法を設定する

CanWakeupSupport

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanWakeupSupport
  • 型:BooleanParam
  • 多重度:1
  • ウェイクアップのサポート有無

CanControllerDefaultBaudrate

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerDefaultBaudrate

CanCpuClockRef

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanCpuClockRef
  • 型:Reference
  • 多重度:1

CanWakeupSourceRef

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanWakeupSourceRef
  • 型:Reference
  • 多重度:0..1

CanControllerBaudrateConfig

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig
  • 型:Container
  • 多重度:1..*
  • ボーレートを設定するコンテナ

CanControllerBaudRate

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerBaudRate
  • 型:IntegerParam
  • 多重度:1
  • ボーレートの値

CanControllerPropSeg

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerPropSeg

CanControllerSeg1

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSeg1

CanControllerSeg2

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSeg2

CanControllerSyncJumpWidth

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSyncJumpWidth

CanFilterMask

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanFilterMask
  • 型:Container
  • 多重度:0..*
  • フィルタマスクを設定するコンテナ

CanFilterMaskValue

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanFilterMask/CanFilterMaskValue
  • 型:IntegerParam
  • 多重度:1
  • 受信したCAN-IDに対して適用するフィルタマスクを設定する

CanTTController

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanTTController
  • 型:Container
  • 多重度:0..1
  • 本コンテナに所属するパラメータ仕様は、TTCAN Driverの仕様書に規定されている

CanHardwareObject

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject
  • 型:Container
  • 多重度:1..*
  • ハードウェアオブジェクト(メールボックス)を設定するコンテナ

CanHandleType

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanHandleType

CanIdType

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanIdType
  • 型:EnumerationParam
    • EXTENDED:拡張フォーマット
    • MIXED:混在
    • STANDARD:標準フォーマット
  • 多重度:1
  • データフレームの形式

CanIdValue

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanIdValue
  • 型:IntegerParam
  • 多重度:1
  • CanFilterMaskValueによるマスク後の値と比較する値を設定する

CanObjectId

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanObjectId
  • 型:IntegerParam
  • 多重度:1
  • HOHのID
  • 0から連番とする制約がある

CanObjectType

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanObjectType
  • 型:EnumerationParam
    • RECEIVE:受信
    • TRANSMIT:送信
  • 多重度:1
  • ハードウェアオブジェクトが、受信(HRH)か送信(HTH)かを設定する

CanControllerRef

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanControllerRef
  • 型:Reference
  • 多重度:1
  • CanControllerへの参照
  • HOHで送受信されるCANコントローラを関連付ける

CanFilterMaskRef

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanFilterMaskRef
  • 型:Reference
  • 多重度:0..1
  • CanFilterMaskへの参照
  • HRHで使用されるフィルタマスクを指定する

CanMainFunctionRWPeriodRef

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanMainFunctionRWPeriodRef
  • 型:Reference
  • 多重度:0..1
  • CanMainFunctionRWPeriodsへの参照
  • 送受信をポーリングで行う場合のポーリング周期を設定する

CanTTHardwareObjectTrigger

/AUTOSAR/EcucDefs/Can/CanConfigSet/CanHardwareObject/CanTTHardwareObjectTrigger
  • 型:Container
  • 多重度:0..*
  • 本コンテナに所属するパラメータ仕様は、TTCAN Driverの仕様書に規定されている

CanGeneral

/AUTOSAR/EcucDefs/Can/CanGeneral
  • 型:Container
  • 多重度:1
  • Canモジュールの全体的な設定を行うコンテナ

CanChangeBaudrateApi

/AUTOSAR/EcucDefs/Can/CanGeneral/CanChangeBaudrateApi

CanDevErrorDetection

/AUTOSAR/EcucDefs/Can/CanGeneral/CanDevErrorDetection
  • 型:BooleanParam
  • 多重度:1
  • DETエラー通知の使用有無

CanHardwareCancellation

/AUTOSAR/EcucDefs/Can/CanGeneral/CanHardwareCancellation
  • 型:BooleanParam
  • 多重度:1
  • ハードウェアによる送信キャンセルの使用有無
  • 本パラメータはR4.2系で削除された

CanIdenticalIdCancellation

/AUTOSAR/EcucDefs/Can/CanGeneral/CanIdenticalIdCancellation
  • 型:BooleanParam
  • 多重度:1
  • 送信を保留しているPDUの送信キャンセルの使用有無
  • 本パラメータはR4.2系で削除された

CanIndex

/AUTOSAR/EcucDefs/Can/CanGeneral/CanIndex
  • 型:IntegerParam
  • 多重度:1
  • CanモジュールのインスタンスID
  • 1つしか使用しない場合0を指定する

CanLPduReceiveCalloutFunction

/AUTOSAR/EcucDefs/Can/CanGeneral/CanLPduReceiveCalloutFunction
  • 型:FunctionName
  • 多重度:0..1
  • CANバスからデータを受信し、PDUを上位レイヤへ送信する際のコールバック使用有無

CanMainFunctionBusoffPeriod

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionBusoffPeriod
  • 型:FloatParam
  • 多重度:0..1
  • バスオフ検知をポーリングで行う場合のポーリング周期を設定する

CanMainFunctionModePeriod

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionModePeriod
  • 型:FloatParam
  • 多重度:1
  • CANコントローラのモード変更通知検知のポーリング周期を設定する

CanMainFunctionWakeupPeriod

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionWakeupPeriod
  • 型:FloatParam
  • 多重度:0..1
  • ウェイクアップ検知をポーリングで行う場合のポーリング周期を設定する

CanMultiplexedTransmission

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMultiplexedTransmission
  • 型:BooleanParam
  • 多重度:1

CanTimeoutDuration

/AUTOSAR/EcucDefs/Can/CanGeneral/CanTimeoutDuration
  • 型:FloatParam
  • 多重度:1
  • ハードウェア上のモードが切り替わるのを待機するタイムアウトの上限値
  • 秒単位で指定する

CanVersionInfoApi

/AUTOSAR/EcucDefs/Can/CanGeneral/CanVersionInfoApi

CanCounterRef

/AUTOSAR/EcucDefs/Can/CanGeneral/CanCounterRef
  • 型:Reference
  • 多重度:1
  • OsモジュールのOsCounterへの参照
  • Canモジュール内で時間を計測するために使用するOSカウンタを指定する

CanSupportTTCANRef

/AUTOSAR/EcucDefs/Can/CanGeneral/CanSupportTTCANRef
  • 型:Reference
  • 多重度:1

CanMainFunctionRWPeriods

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionRWPeriods
  • 型:Container
  • 多重度:1
  • メッセージ受信検知とメッセージ送信完了検知をポーリングで行う場合のポーリング周期を設定するコンテナ

CanMainFunctionReadPeriod

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionRWPeriods/CanMainFunctionReadPeriod
  • 型:FloatParam
  • 多重度:0..*
  • メッセージ受信検知のポーリング周期を設定する
  • 秒単位で指定する

CanMainFunctionWritePeriod

/AUTOSAR/EcucDefs/Can/CanGeneral/CanMainFunctionRWPeriods/CanMainFunctionWritePeriod
  • 型:FloatParam
  • 多重度:0..*
  • メッセージ送信完了検知のポーリング周期を設定する
  • 秒単位で指定する
Last modified 22 months ago Last modified on 03/09/15 16:46:20