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