0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)工程 ? 作者:金佛榮;唐臻宇; ? 2020-03-14 08:07 ? 次閱讀

1 、引言

CAN總線以其成本低廉、通信實(shí)時(shí)性好、糾錯(cuò)能力強(qiáng)等優(yōu)點(diǎn)廣泛應(yīng)用于汽車工業(yè)、電力系統(tǒng)變電站自動(dòng)化、智能大廈等系統(tǒng)。J1939協(xié)議是SEA于1998年提出的,主要應(yīng)用于運(yùn)輸、農(nóng)林機(jī)車、船舶等大型交通工具。Microchip公司推出的MCP2502X/2505X CAN I/O系列擴(kuò)展器可獨(dú)立作為CAN擴(kuò)展節(jié)點(diǎn),通過配置實(shí)現(xiàn)不同的CAN協(xié)議。本文以J1939為通信協(xié)議,基于該器件設(shè)計(jì)CAN擴(kuò)展節(jié)點(diǎn),方便實(shí)現(xiàn)汽車的前端測控功能,并且與整個(gè)車載CAN網(wǎng)絡(luò)相連。

2、 MCP2502X/05X CAN I/O擴(kuò)展器簡介

MCP2502X/5X器件可作為CAN系統(tǒng)的I/O擴(kuò)展器使用,支持CANV2.0B Active,可在原始數(shù)據(jù)與CAN報(bào)文之間進(jìn)行協(xié)議轉(zhuǎn)換,總線速率最大可達(dá)1 Mb/s。MCP2502X/5X器件具有多個(gè)外設(shè),包括數(shù)字I/O、4通道10位A/D轉(zhuǎn)換器和能夠在引腳狀態(tài)變化時(shí)自動(dòng)發(fā)送報(bào)文的PWM輸出,包括超過預(yù)設(shè)門限值的模擬輸入,提供1個(gè)屏蔽寄存器和2個(gè)接收過濾器,使得在設(shè)計(jì)系統(tǒng)時(shí)與器件響應(yīng)標(biāo)識(shí)符相關(guān)部分具有最大限度的靈活性。該器件也可配置為在任何時(shí)候發(fā)生一個(gè)或多個(gè)錯(cuò)誤時(shí),能夠自動(dòng)發(fā)送唯一報(bào)文??稍诜且资源鎯?chǔ)器中對(duì)器件進(jìn)行預(yù)編程,這樣器件在配置過程可默認(rèn)為特定配置。

3、擴(kuò)展節(jié)點(diǎn)配置

基于MCP2502X/5X的CAN網(wǎng)絡(luò)必須有一個(gè)具有CAN接口CPU做為主節(jié)點(diǎn),MCP2502X/05X只能作為擴(kuò)展節(jié)點(diǎn),通過配置完成工作。器件配置方法有兩種:預(yù)編程用戶寄存器和CAN報(bào)文在線配置。MCP2502X/05X器件的用戶E-PROM出廠時(shí)是空白的,所以在上電前要對(duì)其預(yù)編程,編程結(jié)果在上電復(fù)位后自配置為默認(rèn)配置。為了與主節(jié)點(diǎn)之間實(shí)現(xiàn)基于J1939協(xié)議通信,上電前先按J1939標(biāo)識(shí)符格式對(duì)CAN模塊寄存器預(yù)編程。對(duì)MCE2502X/05X器件的用戶寄存器預(yù)編程有三種方法,分別為用MPLAB IDE配套PROMATE II編程器;在線串行編程(ICSP);根據(jù)ICSP的原理設(shè)計(jì)專門的編程電路,配合微芯公司的編程軟件MCP250XXProgrammer對(duì)器件預(yù)編程。這里采用第三種方法。

3.1 預(yù)編程用戶寄存器

3.1.1 預(yù)編程電路設(shè)計(jì)

編程需要VDD(2.0~6.0 V)和VPP(12~14 V)兩個(gè)電源,如圖1所示。圖1中,通用開關(guān)穩(wěn)壓器LM78S40CN輸出可調(diào)的1.25~40 V的穩(wěn)定電壓產(chǎn)生所需的VPPPC機(jī)通過場效應(yīng)管MTSF2P02控制VPP和VDD的通斷,實(shí)現(xiàn)編程邏輯。

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

圖2為編程數(shù)據(jù)、時(shí)鐘邏輯電路以及編程電路與PC機(jī)的接口電路。編程電路通過并口與PC機(jī)連接。在編程電路和PC機(jī)連接后,利用Microchip公司提供的具有形象圖形化界面的軟件(MCP250X X Programmer)方便對(duì)器件預(yù)編程。

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

3.1.2 預(yù)編程CAN相關(guān)寄存器

預(yù)編程CAN相關(guān)寄存器就是實(shí)現(xiàn)不同CAN協(xié)議,并通過CAN報(bào)文配置和操作其他寄存器。MCP2502X/05X系列器件在實(shí)現(xiàn)對(duì)器件本身控制的前提下,用戶通過配置CAN模塊相關(guān)寄存器,并根據(jù)實(shí)際情況設(shè)計(jì)協(xié)議的具體內(nèi)容。擴(kuò)展節(jié)點(diǎn)的CAN協(xié)議必須與主節(jié)點(diǎn)的CAN協(xié)議相匹配。該設(shè)計(jì)采用J1939協(xié)議標(biāo)準(zhǔn)配置CAN模塊寄存器,由于CAN擴(kuò)展節(jié)點(diǎn)與主節(jié)點(diǎn)之間要求點(diǎn)對(duì)點(diǎn)通信,所以采用PDU1格式,其29位標(biāo)識(shí)符各位的含義如圖3所示。

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

圖3中,源地址的高5位可編程,低3位與擴(kuò)展器硬件相關(guān)聯(lián),用于實(shí)現(xiàn)特定的CAN命令,比如將報(bào)文源地址低3位寫“000”,讀取A/D轉(zhuǎn)換器的寄存器。PS(PDU格式)要小于240,其他各位由應(yīng)用層確定。按照協(xié)議標(biāo)識(shí)符格式寫配置寄存器。MCP2502X/5X器件包含3個(gè)獨(dú)立的發(fā)送報(bào)文ID:TX-ID0、TXID1和TXID2。

配置相應(yīng)的寄存器預(yù)定義各種輸出報(bào)文中每一個(gè)報(bào)文的數(shù)據(jù)長度碼以及直接從器件外設(shè)寄存器輸入待發(fā)送數(shù)據(jù)。器件按照預(yù)定義格式發(fā)送報(bào)文。配置接收屏蔽寄存器來定義CAN ID與可編程過濾器相比較的位。在29位標(biāo)識(shí)符格式中,RXMEID0寄存器的EID2:EID0位設(shè)置為無關(guān)位。MCP2502X/5X定義2個(gè)獨(dú)立的接收過濾器:RXF0和RXF1。其中,RXF0用于信息請(qǐng)求報(bào)文,而RXF1用于輸入報(bào)文。按照預(yù)定標(biāo)識(shí)符格式對(duì)過濾器進(jìn)行預(yù)編程配置,過濾器的每一位與CAN ID的位相對(duì)應(yīng)。為了接收?qǐng)?bào)文,CAN ID中的每一位(相應(yīng)屏蔽位設(shè)置為1時(shí))必須和對(duì)應(yīng)的過濾器位相匹配。忽略未滿足屏蔽/過濾條件的報(bào)文。同時(shí)擴(kuò)展節(jié)點(diǎn)配置為自動(dòng)發(fā)送模式,即當(dāng)采集輸入信號(hào)變化或經(jīng)一定時(shí)間間隔將自動(dòng)發(fā)送信息。

3.2 用CAN報(bào)文配置擴(kuò)展器

由于配置寄存器通過CAN總線訪問,因此除了采用預(yù)編程配置擴(kuò)展器外,通信建立后,主節(jié)點(diǎn)通過命令報(bào)文配置器件,也可在線修改已配置的寄存器。命令報(bào)文種類由源地址的低3位確定。

4 、擴(kuò)展節(jié)點(diǎn)硬件結(jié)構(gòu)及系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)

圖4為擴(kuò)展節(jié)點(diǎn)的硬件結(jié)構(gòu),MCP2502X/05X器件通過CAN驅(qū)動(dòng)器與CAN總線相連。圖5為系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)。

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

CAN總線本身是一種多主總線,理論上每個(gè)節(jié)點(diǎn)都可作為主節(jié)點(diǎn),但基于MCP25132X/5X器件的CAN網(wǎng)絡(luò)中必須有一個(gè)具有CAN接口的CPU作為主節(jié)點(diǎn),來執(zhí)行控制算法,并做出相應(yīng)控制決策。而擴(kuò)展節(jié)點(diǎn)只能作為從節(jié)點(diǎn)。其他節(jié)點(diǎn)則通過主節(jié)點(diǎn)與對(duì)應(yīng)的從節(jié)點(diǎn)通信。

5 、主節(jié)點(diǎn)軟件設(shè)計(jì)

在主節(jié)點(diǎn)軟件設(shè)計(jì)過程中,將主節(jié)點(diǎn)和其對(duì)應(yīng)的擴(kuò)展節(jié)點(diǎn)看成同一個(gè)ECU(電控單元)的不同CA(控制器應(yīng)用程序),并且地址可仲裁,主節(jié)點(diǎn)與擴(kuò)展節(jié)點(diǎn)之間點(diǎn)對(duì)點(diǎn)通信,總線上所有ECU都遵循J1939協(xié)議進(jìn)行通信,其他ECU通過主節(jié)點(diǎn)訪問擴(kuò)展節(jié)點(diǎn)。

主節(jié)點(diǎn)軟件由主處理、接收處理和發(fā)送處理3部分構(gòu)成。其中,接收處理負(fù)責(zé)接收與本ECU地址相匹配的消息,并處理地址聲明消息和地址請(qǐng)求消息,將應(yīng)用消息填充到接收緩沖區(qū);發(fā)送消息負(fù)責(zé)將發(fā)送緩沖區(qū)的數(shù)據(jù)發(fā)送到CAN總線。圖6為主處理軟件流程。

基于J1939協(xié)議和擴(kuò)展器件實(shí)現(xiàn)CAN擴(kuò)展節(jié)點(diǎn)的設(shè)計(jì)

6、 結(jié)論

基于MCP2502X/05X器件設(shè)計(jì)CAN擴(kuò)展節(jié)點(diǎn)無需大量編程,只需配置相關(guān)寄存器,連接簡單電路就能實(shí)現(xiàn)與主節(jié)點(diǎn)的通信。在無需微控制器下擴(kuò)展一個(gè)CAN節(jié)點(diǎn),用戶自行設(shè)置協(xié)議內(nèi)容,非常靈活,其豐富的外設(shè)滿足一般測控需要。將MCP2502X/05X器件與J1939協(xié)議相結(jié)合,可方便設(shè)計(jì)汽車的前端測控模塊,并與整個(gè)車載CAN網(wǎng)絡(luò)相連。這種設(shè)計(jì)方案系統(tǒng)結(jié)構(gòu)簡單、成本降低、提高信號(hào)傳輸?shù)目煽啃?,在車載CAN網(wǎng)絡(luò),尤其是前端測控模塊中具有廣泛的應(yīng)用前景。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8505

    瀏覽量

    145985
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2663

    瀏覽量

    462452
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于J1939協(xié)議的組合儀表的設(shè)計(jì)與實(shí)現(xiàn)

    基于J1939協(xié)議的組合儀表的設(shè)計(jì)與實(shí)現(xiàn)摘要:本文首先介紹了CAN 總線和J1939 協(xié)議,然后
    發(fā)表于 05-17 11:45

    DSP28335實(shí)現(xiàn)J1939協(xié)議???

    請(qǐng)問DSP28335自帶CAN模塊能否用來實(shí)現(xiàn)J1939協(xié)議通信?
    發(fā)表于 09-10 20:38

    J1939基礎(chǔ)入門知識(shí)分享

    通信。J1939描述了CAN總線的一種網(wǎng)絡(luò)應(yīng)用,包括CAN網(wǎng)絡(luò)物理層定義、數(shù)據(jù)鏈路層定義、應(yīng)用層定義、網(wǎng)絡(luò)層定義、故障診斷、和網(wǎng)絡(luò)管理。在SAE J1939
    發(fā)表于 04-11 07:00

    基于LabVIEW和J1939協(xié)議CAN總線通訊平臺(tái)構(gòu)建

    最近在公司搭建J1939協(xié)議CAN通訊,查了資料,非常不錯(cuò),可以學(xué)習(xí)一下
    發(fā)表于 04-24 09:58

    J1939協(xié)議理解

    J1939協(xié)議理解
    發(fā)表于 05-06 15:23

    基于J1939協(xié)議的組合儀表的設(shè)計(jì)與實(shí)現(xiàn)

    摘要:本文首先介紹了CAN 總線和J1939 協(xié)議,然后重點(diǎn)介紹了基于J1939 協(xié)議應(yīng)用AT90CAN
    發(fā)表于 05-16 18:55 ?36次下載

    基于J1939的汽車CAN總線教學(xué)實(shí)驗(yàn)系統(tǒng)

    針對(duì)J1939協(xié)議培訓(xùn)要求,構(gòu)建了一個(gè)基于J1939協(xié)議的汽車總線培訓(xùn)實(shí)驗(yàn)系統(tǒng)。系統(tǒng)硬件由計(jì)算機(jī)、Kvaser CAN總線分析儀以及基于
    發(fā)表于 08-06 10:25 ?50次下載

    SAE J1939協(xié)議分析指南

    SAE J1939協(xié)議是由汽車工程協(xié)會(huì)(SAE)定義的,SAE J1939協(xié)議在商用車輛、艦船、軌道機(jī)車、農(nóng)業(yè)機(jī)械和大型發(fā)動(dòng)機(jī)中是應(yīng)用最廣泛的應(yīng)用層
    發(fā)表于 03-13 13:50 ?189次下載

    基于MCP2502X的CAN總線節(jié)點(diǎn)設(shè)計(jì)

    針對(duì)當(dāng)前CAN總線及J1939協(xié)議在汽車電子中的廣泛應(yīng)用,給出一種通過配置在低成本CAN I/O擴(kuò)展器MCP2502X/05X
    發(fā)表于 12-29 18:08 ?28次下載

    基于SAE J1939協(xié)議的車輛網(wǎng)絡(luò)通信

    目前,車輛的ECU產(chǎn)品大都帶有SAE J1939 CAN接口。針對(duì)具有SAE J1939 CAN接口的ECU產(chǎn)品(如發(fā)動(dòng)機(jī)、變速器及其緩速器和ABS等ECU),自定義若干ECU,集成
    發(fā)表于 09-24 00:49 ?5649次閱讀
    基于SAE <b class='flag-5'>J1939</b><b class='flag-5'>協(xié)議</b>的車輛網(wǎng)絡(luò)通信

    基于LabVIEW和J1939協(xié)議CAN總線通訊平臺(tái)開發(fā)

    基于J1939 協(xié)議的商用車CAN總線,針對(duì)單片機(jī)微控制器MCU 節(jié)點(diǎn)的MCU + CAN 控制器 +
    發(fā)表于 04-15 16:59 ?5099次閱讀
    基于LabVIEW和<b class='flag-5'>J1939</b><b class='flag-5'>協(xié)議</b>的<b class='flag-5'>CAN</b>總線通訊平臺(tái)開發(fā)

    CAN高層協(xié)議J1939的基礎(chǔ)和應(yīng)用以及開發(fā)介紹

    CAN做為應(yīng)用比較廣泛的通信總線,受到了越來越多的客戶喜歡和青睞,廣泛應(yīng)用于工業(yè)和汽車,常見的高層協(xié)議有CANopen,J1939,DeviceNet等,在公眾號(hào)曾經(jīng)分享過超過15篇有關(guān)CAN
    的頭像 發(fā)表于 04-02 10:45 ?4546次閱讀
    <b class='flag-5'>CAN</b>高層<b class='flag-5'>協(xié)議</b><b class='flag-5'>J1939</b>的基礎(chǔ)和應(yīng)用以及開發(fā)介紹

    J1939協(xié)議理解

    PDU是J1939傳輸數(shù)據(jù)的格式,它基于CAN協(xié)議擴(kuò)展幀傳輸方式。即它的標(biāo)識(shí)符是29位的。蝕優(yōu)先級(jí):最高0(000)設(shè)置到最低7(111)。所有控制報(bào)文的缺省優(yōu)先級(jí)是3(011)
    發(fā)表于 04-20 09:56 ?6次下載

    J1939協(xié)議理解

    J1939協(xié)議基礎(chǔ)知識(shí)講解。
    發(fā)表于 05-06 15:34 ?13次下載

    基于恩智浦MPC5744P的SAE J1939協(xié)議棧開發(fā)

    的,MPC5744P 支持CAN2.0B。CAN 的高層協(xié)議J1939 是基于CAN2.0B的擴(kuò)展
    的頭像 發(fā)表于 09-24 16:15 ?8030次閱讀
    基于恩智浦MPC5744P的SAE <b class='flag-5'>J1939</b><b class='flag-5'>協(xié)議</b>棧開發(fā)