1. 程式人生 > >LIN匯流排多從機與主機通訊(控制+反饋)

LIN匯流排多從機與主機通訊(控制+反饋)

LIN通訊方式為主從機通訊,屬於非同步通訊。

其中幀頭+資料幀才算一完整報文,多從機與主機通訊資料流(控制+反饋)如下:

      一號從機:

    第一次進入中斷,一號從機判斷接收到主機幀頭,分析LIN匯流排幀頭ID 是否為該從機控制指令,若是,從機則置位標誌位One_Flag = 1再判斷是否接收到主機報文資料,若是,對資料分析處理。

      第二次入中斷,判斷接收到主機幀頭,分析LIN匯流排幀頭 ID 是否為反饋指令,若是,則表示從機需要傳送資料(主機無報文資料,提供幀頭),打包從機資料,向主機發送資料,清空標誌位One_Flag = 0

      此時,主從機通過LIN匯流排互相通訊完成,其中一共有

幀報文:

1. 機的幀頭和機的資料幀組成的一幀報文

2. 機的幀頭和機的資料幀組成的一幀報文。

注:只有主機才有傳送幀頭的權利,從機沒有權利,且 完整的報文 = 幀頭 + 資料幀

二號從機:

    第一次進中斷後,分析LIN匯流排幀頭ID 是否為該從機控制指令,若是,從機則置位標誌位Two_Flag= 1;其它上述一致。

所以,若向多個(>=2)從機索要資料,至少進行兩幀報文傳輸,一是確定哪個從機,二是傳送幀頭接收該從機發送的資料,以此組成一完整報文。