The issue of LLCE routing function failure

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

The issue of LLCE routing function failure

ソリューションへジャンプ
1,415件の閲覧回数
S32G2_QQ
Contributor II

It is mentioned in the firmware instruction manual of LLCE:

in a routing configuration, the matching advanced filter shall have enough RX message buffers assigned to accomodate the eventual delay caused by outgoing TX channel being unable to send. The RX MB will be kept blocked until all the destinations are served

How should I understand this sentence? In one-to-many forwarding routing, if the destination channel fails to successfully send the message to the bus (receive the ACK), then the RX of the source channel cannot be released and remains blocked continuously? Will this email address no longer be able to perform the forwarding function in the future?

 

在LLCE固件手册中提到,RX MB需要在所有目标被处理之前,将保持堵塞状态,我应该怎么理解这句话?在一对多转发路由中,如果目标通道无法将报文成功发送到总线上(收到ACK),那么源通道的RX就无法被释放,持续保持堵塞状态?后续该邮箱就不可以再执行转发功能?

0 件の賞賛
返信
1 解決策
1,314件の閲覧回数
S32G2_QQ
Contributor II

Currently, it is configured to disable the routing output of this channel within the TX_ACK_ERR interrupt. Enable the route output within the interrupt of sending completion or receiving completion.

 

void Can_43_LLCE_ErrorNotificationCallback(CanErrorNotificationType* error)
{
    if ((error->ErrorInfo->eModuleId == LLCE_TX) && (error->ErrorInfo->eErrorCode == LLCE_ERROR_BCAN_ACKERR))
    {
        Can_43_LLCE_SetChannelRoutingOutputState(error->u8CanIfCtrlId, CAN_43_LLCE_CHANNELSTATE_DISABLED);
    }
}


void CanIf_TxConfirmation (uint16 Hth)
{
    Can_43_LLCE_SetChannelRoutingOutputState(Can_43_LLCE_GetCurrentConfig()->aHohList[Hth].u8ControllerId, CAN_43_LLCE_CHANNELSTATE_ENABLED);
}


void CanIf_RxIndication(const Can_HwType* Mailbox, const PduInfoType* PduInfoPtr)
{
    Can_43_LLCE_SetChannelRoutingOutputState(Can_43_LLCE_GetCurrentConfig()->aHohList[Mailbox->Hoh].u8ControllerId, CAN_43_LLCE_CHANNELSTATE_ENABLED);
}


 

元の投稿で解決策を見る

0 件の賞賛
返信
5 返答(返信)
1,405件の閲覧回数
Joey_z
NXP Employee
NXP Employee

hi,

Thank you for your information.

Refer to the Manul, when you set up an "Advanced Filter" for message forwarding, the system will first store this message in a receive buffer (RX MB). If one of the targets cannot be sent out all the time, this RX MB will remain locked until all the forwarded targets have completed the sending task.

BR

Joey

 

0 件の賞賛
返信
1,315件の閲覧回数
S32G2_QQ
Contributor II

Currently, it is configured to disable the routing output of this channel within the TX_ACK_ERR interrupt. Enable the route output within the interrupt of sending completion or receiving completion.

 

void Can_43_LLCE_ErrorNotificationCallback(CanErrorNotificationType* error)
{
    if ((error->ErrorInfo->eModuleId == LLCE_TX) && (error->ErrorInfo->eErrorCode == LLCE_ERROR_BCAN_ACKERR))
    {
        Can_43_LLCE_SetChannelRoutingOutputState(error->u8CanIfCtrlId, CAN_43_LLCE_CHANNELSTATE_DISABLED);
    }
}


void CanIf_TxConfirmation (uint16 Hth)
{
    Can_43_LLCE_SetChannelRoutingOutputState(Can_43_LLCE_GetCurrentConfig()->aHohList[Hth].u8ControllerId, CAN_43_LLCE_CHANNELSTATE_ENABLED);
}


void CanIf_RxIndication(const Can_HwType* Mailbox, const PduInfoType* PduInfoPtr)
{
    Can_43_LLCE_SetChannelRoutingOutputState(Can_43_LLCE_GetCurrentConfig()->aHohList[Mailbox->Hoh].u8ControllerId, CAN_43_LLCE_CHANNELSTATE_ENABLED);
}


 
0 件の賞賛
返信
1,395件の閲覧回数
S32G2_QQ
Contributor II

Also, I would like to ask, what is the design concept of LLCE? Why must different forwarding channels be affected before?

0 件の賞賛
返信
1,401件の閲覧回数
S32G2_QQ
Contributor II

thank you for the response.

 

What I want to do now is: Even if the destination channel is unable to complete CAN communication for some reason, such as CAN BUSOFF, then do not affect the other destination channels of this filter. To meet this demand, could you please recommend any methods? For example, configure the LLCE instruction through M7 or the AF module through EB.

 

我现在想要做的是: 即使目的通道由于某些原因,始终无法完成CAN通信,例如CAN BUSOFF,那么不要对该过滤器的其他目的通道有影响。 要满足这种需求,请问有什么推荐的方法吗? 例如,通过M7配置LLCE指令或者EB配置AF模块。

0 件の賞賛
返信
1,375件の閲覧回数
Joey_z
NXP Employee
NXP Employee

hi,S32G2_QQ

Thank you for your information.

For The RX MB will be kept blocked until all the destinations are served. When configuring message routing, make sure the advanced filter has enough RX buffers assigned so that messages can be stored if the TX channel can't send them right away.

BR

Joey

0 件の賞賛
返信