Version 12 (modified by 9 years ago) ( diff ) | ,
---|
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
- コンフィギュレーション一覧
- CanConfigSet
- CanController
- CanHardwareObject
- CanGeneral
- CanChangeBaudrateApi
- CanDevErrorDetection
- CanHardwareCancellation
- CanIdenticalIdCancellation
- CanIndex
- CanLPduReceiveCalloutFunction
- CanMainFunctionBusoffPeriod
- CanMainFunctionModePeriod
- CanMainFunctionWakeupPeriod
- CanMultiplexedTransmission
- CanTimeoutDuration
- CanVersionInfoApi
- CanCounterRef
- CanSupportTTCANRef
- CanMainFunctionRWPeriods
- CanConfigSet
- エラーコード一覧
エラーコード 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
- 型:Reference
- 多重度:1
- CanControllerBaudrateConfigへの参照
- デフォルトのボーレートを設定する
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
- 型:IntegerParam
- 多重度:1
- 伝播時間セグメントを設定する
- 参考:http://eetimes.jp/ee/articles/0912/15/news104_2.html
CanControllerSeg1
/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSeg1
- 型:IntegerParam
- 多重度:1
- 位相バッファセグメント1を設定する
- 参考:http://eetimes.jp/ee/articles/0912/15/news104_2.html
CanControllerSeg2
/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSeg2
- 型:IntegerParam
- 多重度:1
- 位相バッファセグメント2を設定する
- 参考:http://eetimes.jp/ee/articles/0912/15/news104_2.html
CanControllerSyncJumpWidth
/AUTOSAR/EcucDefs/Can/CanConfigSet/CanController/CanControllerBaudrateConfig/CanControllerSyncJumpWidth
- 型:IntegerParam
- 多重度:1
- 再同期ジャンプ幅を設定する
- 参考:http://eetimes.jp/ee/articles/0912/15/news104_2.html
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
- 型:EnumerationParam
- BASIC:ベーシックCAN
- FULL:フルCAN
- 多重度:1
- メッセージマネジメントを設定する
- 参考:http://monoist.atmarkit.co.jp/mn/articles/0809/10/news140_2.html
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
- 型:BooleanParam
- 多重度:1
- Can_ChangeBaudrateの使用有無
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
- 型:BooleanParam
- 多重度:1
- Can_GetVersionInfoの使用有無
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..*
- メッセージ送信完了検知のポーリング周期を設定する
- 秒単位で指定する
Note:
See TracWiki
for help on using the wiki.