sas协议-SSP状态机-SSP_RF/SSP_TAN/SSP_RIM

SSP_RF状态机的主要功能是

1. 接收Frame

2. 检查接收到的Frame是否有error,接收或者丢弃

3. 确定是否要发ACK或者NAK

4. 向PL_PM发送接收到帧的确认回执;

交互的状态机有:

PL_PM        SSP_RCM        SSP_RIM        SSP_TAN

sas协议-SSP状态机-SSP_RF/SSP_TAN/SSP_RIM_第1张图片

 SSP_TAN (transmit ACK/NAK control) state machine

这个状态机主要功能是,在收到了帧收到的消息之后,确定传送ACK或者NAK;

以及在帧比较多的时候,保证ACK和NAK的顺序的正确性;

SSP_RIM (receive interlocked frame monitor) state machine

主要功能是统计frame和ACK/NAK的数目是否一致,逻辑比较简单;

有两个计数器

1. frame

2. ACK/NAK

一小段代码简单概括一下

unsigned long long frame_cnt = 0;
unsigned long long ack_nak_cnt = 0; 
while(1){
    if(frame_received)//来自 SSP_RF
        frame_cnt++;
    if(ack_nak_transmitted)//来自 SSP_TAN
        ack_nak_cnt++;
    
    if(frame_cnt == ack_nak_cnt)
         //send an Rx Balance Status (Balanced) message to SSP_RF
    else
         //send an Rx Balance Status (Not Balanced) message to SSP_RF

    if("Enable Disable SSP (Enable)" || "request close" || "request break")
        frame_cnt = 0;
        ack_nak_cnt = 0;
}

你可能感兴趣的:(sas协议学习,经验分享)