基于MCP2502X/05X的CAN總線節點設計
預編程CAN相關寄存器就是實現不同CAN協議,并通過CAN報文配置和操作其他寄存器。MCP2502X/05X系列器件在實現對器件本身控制的前提下,用戶通過配置CAN模塊相關寄存器,并根據實際情況設計協議的具體內容。擴展節點的CAN協議必須與主節點的CAN協議相匹配。該設計采用J1939協議標準配置CAN模塊寄存器,由于CAN擴展節點與主節點之間要求點對點通信,所以采用PDU1格式,其29位標識符各位的含義如圖3所示。本文引用地址:http://www.104case.com/article/163422.htm
圖3中,源地址的高5位可編程,低3位與擴展器硬件相關聯,用于實現特定的CAN命令,比如將報文源地址低3位寫“000”,讀取A/D轉換器的寄存器。PS(PDU格式)要小于240,其他各位由應用層確定。按照協議標識符格式寫配置寄存器。MCP2502X/5X器件包含3個獨立的發送報文ID:TX-ID0、TXID1和TXID2。
配置相應的寄存器預定義各種輸出報文中每一個報文的數據長度碼以及直接從器件外設寄存器輸入待發送數據。器件按照預定義格式發送報文。配置接收屏蔽寄存器來定義CAN ID與可編程過濾器相比較的位。在29位標識符格式中,RXMEID0寄存器的EID2:EID0位設置為無關位。MCP2502X/5X定義2個獨立的接收過濾器:RXF0和RXF1。其中,RXF0用于信息請求報文,而RXF1用于輸入報文。按照預定標識符格式對過濾器進行預編程配置,過濾器的每一位與CAN ID的位相對應。為了接收報文,CAN ID中的每一位(相應屏蔽位設置為1時)必須和對應的過濾器位相匹配。忽略未滿足屏蔽/過濾條件的報文。同時擴展節點配置為自動發送模式,即當采集輸入信號變化或經一定時間間隔將自動發送信息。
3.2 用CAN報文配置擴展器
由于配置寄存器通過CAN總線訪問,因此除了采用預編程配置擴展器外,通信建立后,主節點通過命令報文配置器件,也可在線修改已配置的寄存器。命令報文種類由源地址的低3位確定。
4 擴展節點硬件結構及系統網絡結構
圖4為擴展節點的硬件結構,MCP2502X/05X器件通過CAN驅動器與CAN總線相連。圖5為系統網絡結構。
CAN總線本身是一種多主總線,理論上每個節點都可作為主節點,但基于MCP25132X/5X器件的CAN網絡中必須有一個具有CAN接口的CPU作為主節點,來執行控制算法,并做出相應控制決策。而擴展節點只能作為從節點。其他節點則通過主節點與對應的從節點通信。
5 主節點軟件設計
在主節點軟件設計過程中,將主節點和其對應的擴展節點看成同一個ECU(電控單元)的不同CA(控制器應用程序),并且地址可仲裁,主節點與擴展節點之間點對點通信,總線上所有ECU都遵循J1939協議進行通信,其他ECU通過主節點訪問擴展節點。
主節點軟件由主處理、接收處理和發送處理3部分構成。其中,接收處理負責接收與本ECU地址相匹配的消息,并處理地址聲明消息和地址請求消息,將應用消息填充到接收緩沖區;發送消息負責將發送緩沖區的數據發送到CAN總線。圖6為主處理軟件流程。
6 結論
基于MCP2502X/05X器件設計CAN擴展節點無需大量編程,只需配置相關寄存器,連接簡單電路就能實現與主節點的通信。在無需微控制器下擴展一個CAN節點,用戶自行設置協議內容,非常靈活,其豐富的外設滿足一般測控需要。將MCP2502X/05X器件與J1939協議相結合,可方便設計汽車的前端測控模塊,并與整個車載CAN網絡相連。這種設計方案系統結構簡單、成本降低、提高信號傳輸的可靠性,在車載CAN網絡,尤其是前端測控模塊中具有廣泛的應用前景。
評論