The issue of LLCE routing function failure

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

The issue of LLCE routing function failure

Jump to solution
1,484 Views
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 Kudos
Reply
1 Solution
1,383 Views
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);
}


 

View solution in original post

0 Kudos
Reply
5 Replies
1,474 Views
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 Kudos
Reply
1,384 Views
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 Kudos
Reply
1,464 Views
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 Kudos
Reply
1,470 Views
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 Kudos
Reply
1,444 Views
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 Kudos
Reply