• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      采用TMS320F28335 的多節(jié)點(diǎn)CAN 總線通信設(shè)計(jì)

      2021-04-30 07:25:10宋耀東
      電子設(shè)計(jì)工程 2021年7期
      關(guān)鍵詞:標(biāo)識符字節(jié)寄存器

      宋耀東,于 淼,杜 雪,李 軍

      (中國電子科技集團(tuán)公司第二十七研究所,河南鄭州 450047)

      CAN 總線指的是控制器局域網(wǎng)(Controller Area Network,CAN)總線,是最先由德國博世公司提出的用于汽車控制的一種實(shí)時(shí)應(yīng)用的串行通信協(xié)議總線網(wǎng)絡(luò),因其具有高性能、高可靠性、高實(shí)時(shí)性和配置靈活等特點(diǎn),已經(jīng)成為世界上應(yīng)用最多的現(xiàn)場總線之一[1-3]。標(biāo)準(zhǔn)CAN 協(xié)議對物理層及數(shù)據(jù)鏈路層進(jìn)行了定義,但在實(shí)際應(yīng)用中還要對應(yīng)用層進(jìn)行協(xié)議明確[4-5]。常見的應(yīng)用層協(xié)議有DeviceNET、J1939、CANOpen 等,這些協(xié)議偏重于通用性,其價(jià)格昂貴、結(jié)構(gòu)復(fù)雜,不適用于具體應(yīng)用。因此,通常需要針對具體應(yīng)用,根據(jù)標(biāo)準(zhǔn)CAN 協(xié)議設(shè)計(jì)相應(yīng)的具體應(yīng)用總線協(xié)議[6]。

      隨著航天航空電子綜合化技術(shù)的發(fā)展,航天航空器內(nèi)部的系統(tǒng)功能復(fù)雜化和體量龐大化的同時(shí),不同設(shè)備之間需要快速、可靠的通信。只有采用實(shí)時(shí)、穩(wěn)定、可靠的數(shù)據(jù)傳輸技術(shù)才能實(shí)現(xiàn)此種需求[7]。目前,航天飛行器內(nèi)部常用總線有1553B 總線、CAN 總線等。1553B 總線采用雙余度和指令/響應(yīng)方式異步通信的可靠性設(shè)計(jì),在提高可靠性的同時(shí),其成本也居高不下;而CAN 總線擁有很高的性價(jià)比,采用CAN 總線能夠降低飛行器的研制成本[8]。為滿足某航天項(xiàng)目多節(jié)點(diǎn)高可靠總線通信的需求,從高性能、高可靠性、低成本的角度設(shè)計(jì)了一種基于TMS320F28335 的CAN 總線的硬件接口、通信協(xié)議與軟件配置。

      1 CAN總線系統(tǒng)硬件接口設(shè)計(jì)

      CAN 總線是一種有效支持實(shí)時(shí)控制或分布式控制的串行通信網(wǎng)絡(luò)。CAN 總線中的設(shè)備都可以通過其控制單元上的CAN 總線接口進(jìn)行數(shù)據(jù)的接收和發(fā)送,它是一個(gè)多路傳輸系統(tǒng),當(dāng)某一單元出現(xiàn)故障時(shí)不會(huì)影響其他單元的工作。CAN 總線中數(shù)據(jù)在串聯(lián)總線上可以單個(gè)順序傳送,符合ISO11898 標(biāo)準(zhǔn)。最大傳輸距離和傳輸速率成反比,傳輸速率為1 MB/s時(shí),最大傳輸距離為40 m;傳輸速率為5 kB/s 時(shí),最大傳輸距離為10 km。在傳輸介質(zhì)方面多采用雙絞線、同軸電纜等形式。

      在標(biāo)準(zhǔn)CAN 通信協(xié)議中,有遠(yuǎn)程幀、數(shù)據(jù)幀、超載幀和錯(cuò)誤幀等4 種不同的幀格式。該文對應(yīng)的CAN 總線協(xié)議中只使用數(shù)據(jù)幀進(jìn)行通信,數(shù)據(jù)幀仲裁段采用CAN2.0B 擴(kuò)展格式。利用總線控制器的29 位擴(kuò)展標(biāo)識符來定義協(xié)議中的重要信息(如發(fā)送、接收設(shè)備等),通訊速率設(shè)為500 kbps,因此,相對應(yīng)的最大通信距離為130 m。

      1.1 CAN總線多節(jié)點(diǎn)網(wǎng)絡(luò)設(shè)計(jì)

      文中設(shè)計(jì)的CAN 總線網(wǎng)絡(luò)是手拉手形式,連接示意圖如圖1 所示。

      圖1 CAN總線網(wǎng)絡(luò)通信節(jié)點(diǎn)連接方式

      每臺(tái)設(shè)備的通信接口采用一入一出兩個(gè)插座,并在設(shè)備內(nèi)部將兩個(gè)插座的對應(yīng)接點(diǎn)一一聯(lián)接,通過雙絞電纜網(wǎng)把各接點(diǎn)一一對應(yīng)聯(lián)接。終端電阻安置在電纜線的兩端或者兩端節(jié)點(diǎn)的內(nèi)部。

      每臺(tái)設(shè)備使用兩個(gè)9 芯插座的標(biāo)準(zhǔn)連接器,這兩個(gè)9芯插座的接點(diǎn)分配完全一致,兩個(gè)連接器各對應(yīng)點(diǎn)在設(shè)備內(nèi)相互短接,一個(gè)用于連接輸入,一個(gè)用于連接輸出,以方便形成整體鏈路。插座接點(diǎn)分配如表1所示。

      表1 總線插座接點(diǎn)分配

      CAN 總線網(wǎng)絡(luò)采用雙冗余的總線型網(wǎng)絡(luò)結(jié)構(gòu),包括A、B 兩條CAN 總線,結(jié)構(gòu)如圖2 所示。

      圖2 雙冗余CAN總線網(wǎng)絡(luò)結(jié)構(gòu)

      1.2 TMS320F28335處理器功能簡介

      TMS320F28335 數(shù)字信號處理器是德州儀器公司出品的一款C2000 系列的浮點(diǎn)DSP 控制器,主頻高達(dá)150 MHz。該DSP 控制器擁有強(qiáng)大的實(shí)時(shí)處理能力,并將控制器需要的核心外設(shè)功能集于一身,具有實(shí)時(shí)控制能力強(qiáng)、外設(shè)豐富、功耗小等特點(diǎn)。在CAN 通信方面,TMS320F28335 集成了兩個(gè)全功能CAN2.0B 模塊——eCAN-A 和eCAN-B,每個(gè)模塊都具有32 個(gè)完整的、可獨(dú)立配置的郵箱和時(shí)間戳,因此其擁有強(qiáng)大而靈活的CAN 串行通信接口。

      1.3 CAN接口電路

      CAN 總線接口芯片采用PHILIPS 公司的PCA82 C250,其管腳定義如表2 所示。

      表2 PCA82C250管腳說明

      TMS320F28335 與PCA82C250 的連接關(guān)系如圖3所示。圖中采用164245電平轉(zhuǎn)換芯片實(shí)現(xiàn)3.3 V和5 V 電平之間的相互轉(zhuǎn)換。

      圖3 CAN接口電路設(shè)計(jì)

      2 CAN總線通信協(xié)議設(shè)計(jì)

      2.1 CAN位速率計(jì)算

      正常位時(shí)間劃分為以下4 個(gè)互不重疊的時(shí)間段:同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位緩沖段1(PHASE_SEG1)和相位緩沖段 2(PHASE_SEG2)。同步段總是等于1 個(gè)時(shí)間單元(TIME QUANTUM,TQ)。在TMS320F28335 的eCAN模塊中,CAN 總線的位長度由TSEG1(組合了傳播段和相位緩沖段1)、TSEG2(定義了相位緩沖段2)和BRP(通信速率預(yù)定標(biāo))3 個(gè)參數(shù)決定。位速率公式如下式所示[9]:

      其中,BRPreg、TSEG1reg 和TSEG2reg 分別由寄存器BTC 的23-16 位、6-3 位和2-0 位決定。并且設(shè)置需要符合以下規(guī)則:

      ①TSEG1≥TSEG2;

      ②2TQ≤TSEG1≤16TQ;

      ③2TQ≤TSEG2≤8TQ;

      ④2TQ=3/BRP;

      ⑤如果設(shè)置了3 次采樣模式,BRP≥5。

      如果系統(tǒng)頻率為150 MHz,設(shè)置BRPreg=9、TSEG1reg=10、TSEG2reg=2,那么CAN通信速率為500 kHz。

      2.2 CAN擴(kuò)展數(shù)據(jù)幀位序構(gòu)成

      文中采用的是CAN2.0B 協(xié)議,是具有29 位標(biāo)識符的擴(kuò)展幀。其各個(gè)位的定義如表3 所示。

      表3 CAN2.0B擴(kuò)展幀位序表

      需要注意的是,根據(jù)CAN 總線協(xié)議規(guī)范,在構(gòu)成一幀的幀起始、仲裁場、控制場和CRC 序列均借助位填充規(guī)則進(jìn)行編碼,當(dāng)CAN 發(fā)送器在發(fā)送的位流中檢測到5 位連續(xù)的相同數(shù)值時(shí),將自動(dòng)地在實(shí)際發(fā)送的位流中插入一個(gè)補(bǔ)碼位。比如,連續(xù)位流000000B,在實(shí)際發(fā)送中變?yōu)?000010B。而其余場采用固定格式,不進(jìn)行填充。出錯(cuò)幀和超載幀也是固定格式,也不進(jìn)行位填充。另外,標(biāo)識符最高7 位(ID28-ID22)不能全是“隱性”電平,即ID28-ID22 不能全為“1”[10]。

      2.3 CAN總線數(shù)據(jù)幀格式設(shè)計(jì)

      將數(shù)據(jù)幀的29 位標(biāo)識符分成4 部分,如表4所示[11-12]。

      表4 數(shù)據(jù)幀標(biāo)識符組成

      優(yōu)先級PRI 分為00B(備用)、01B(主節(jié)點(diǎn)控制命令)、10B(狀態(tài)查詢、遙測查詢)和11B(保留)4 種。

      站地址表示數(shù)據(jù)幀的目的地地址。各通信節(jié)點(diǎn)根據(jù)站地址設(shè)置屏蔽字,只接收與本通信節(jié)點(diǎn)有關(guān)的數(shù)據(jù)[13]。

      幀類型分為兩部分,ID20-ID19定義為00B(主節(jié)點(diǎn)發(fā)送的數(shù)據(jù))、01B(從節(jié)點(diǎn)發(fā)送的數(shù)據(jù))、10B(保留)和11B(保留);ID18來定義單幀(0B)和多幀(1B)。

      單幀數(shù)據(jù)場第一字節(jié)為有效數(shù)據(jù)長度(字節(jié)數(shù)),第二字節(jié)為數(shù)據(jù)包信息標(biāo)識(包括數(shù)據(jù)類型和發(fā)送端地址),第三字節(jié)開始為有效數(shù)據(jù),數(shù)據(jù)包結(jié)尾為和校驗(yàn)的低字節(jié)[14]。

      多幀數(shù)據(jù)起始幀數(shù)據(jù)場長度為8 字節(jié),第一個(gè)字節(jié)為幀序0,第二個(gè)字節(jié)為數(shù)據(jù)包有效數(shù)據(jù)的長度(字節(jié)數(shù)),其他為數(shù)據(jù)[15];中繼幀數(shù)據(jù)場長度為8 字節(jié),第一個(gè)字節(jié)為幀序,其他為數(shù)據(jù);結(jié)束幀數(shù)據(jù)場長度必須小于8 字節(jié),第一個(gè)字節(jié)為幀序,其他為數(shù)據(jù),結(jié)束幀有可能只包含一個(gè)字節(jié)的幀序號[16]。信息數(shù)據(jù)包格式如表5 所示。

      表5 信息數(shù)據(jù)包格式

      信息數(shù)據(jù)標(biāo)識分為高3 比特(數(shù)據(jù)類型同標(biāo)識符的幀類型TYPE)和低5 比特(發(fā)送端站地址)。

      校驗(yàn)和是從序號0 到N的數(shù)據(jù)累加和的低字節(jié)。

      2.4 CAN總線ID設(shè)置示例

      根據(jù)上述規(guī)則設(shè)計(jì)以及TMS320F28335 寄存器設(shè)計(jì),主節(jié)點(diǎn)控制ID、主節(jié)點(diǎn)查詢ID、從節(jié)點(diǎn)控制ID、從節(jié)點(diǎn)查詢ID 示例如表6 所示。

      表6 節(jié)點(diǎn)ID設(shè)置示例

      根據(jù)上表,主節(jié)點(diǎn)控制ID 設(shè)置為0x89200000,主節(jié)點(diǎn)查詢ID 設(shè)置為0x91200000,從節(jié)點(diǎn)控制ID 設(shè)置為0x89690000,從節(jié)點(diǎn)查詢ID 設(shè)置為0x916 C0000。

      3 TMS320F28335 的eCAN 模塊軟件設(shè)計(jì)

      TMS320F28335 的eCAN 配置、發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的步驟為:

      1)使能CAN 模塊的時(shí)鐘;

      2)設(shè)置CANTX 和CANRX 引腳到CAN 功能;

      3)配置MC.SCB:0 為普通模式;1 為增強(qiáng)模式。該文配置為1;

      4)初始化消息控制寄存器。MBOX0 到MBOX31的MSGCTRL 清零;

      5)發(fā)送標(biāo)志TA、接收標(biāo)志RMP、中斷標(biāo)志GIF0、GIF1 寫1 清零;

      6)設(shè)置CCR=1,等到CCE=1,確認(rèn)能夠更改配置寄存器TC;

      7)設(shè)置BRPreg=9、TSEG1reg=10、TSEG2reg=2;

      8)設(shè)置SAM=1,采樣3 次;

      9)設(shè)置CCR=0,等到CCE=0,關(guān)閉配置寄存器TC 通道;

      10)將寄存器ME 清零,以配置郵箱ID;

      11)分配郵箱ID,比如郵箱0 的ID 設(shè)置為0x89200000,郵箱1 的ID 設(shè)置為0x91200000,郵箱2的ID 設(shè)置為0x89690000,郵箱3 的ID 設(shè)置為0x916 C0000;

      12)設(shè)置郵箱方向,比如設(shè)置郵箱0和郵箱1為發(fā)送郵箱(MD=0);郵箱2 和郵箱3 為接受郵箱(MD=1);

      13)使能郵箱,比如使能郵箱0,ME0=1;

      14)設(shè)置郵箱數(shù)據(jù)區(qū)長度,比如郵箱0 數(shù)據(jù)區(qū)長度為8,MBOX0.MSGCTRL.bit.DLC=8;

      15)設(shè)置發(fā)送郵箱的數(shù)據(jù)區(qū)數(shù)據(jù),比如MBOX0.M DL.all=0x55AA55BB,MBOX0.MDH.all=0x11 223344;

      16)設(shè)置發(fā)送郵箱發(fā)送標(biāo)志位,比如TRS0=1;等到發(fā)送應(yīng)答標(biāo)志TA0=1;置位TA0=1,寫1 清零,清除發(fā)送應(yīng)答位;

      17)接收數(shù)據(jù)時(shí),接收郵箱的消息掛起寄存器(RMP)中的相應(yīng)位為1,比如郵箱16,判斷RMP16=1,即表明郵箱接收到了數(shù)據(jù);接收程序首先將RMP16寫1 清零,以便接收下一輪數(shù)據(jù)。

      4 CAN通信示例測試

      利用兩個(gè)CAN 節(jié)點(diǎn)對文中硬件和軟件設(shè)計(jì)進(jìn)行測試,設(shè)置為擴(kuò)展幀,速度為500 kbps,CAN 的ID設(shè)置同2.4節(jié)保持一致,數(shù)據(jù)長度設(shè)置為8字節(jié)。主CAN控制命令測試數(shù)據(jù)設(shè)置為0x55AA55BB11223344、查詢命令測試數(shù)據(jù)設(shè)置為0x55CC55DD66 778899;從CAN 控制回復(fù)測試數(shù)據(jù)設(shè)置為0x7EE7BBAA010 20304、查詢回復(fù)測試數(shù)據(jù)設(shè)置為0x7EE7DDCC060 70809。

      測試流程為:1)主CAN 向從CAN 發(fā)送控制命令,從CAN 回復(fù)控制命令;2)主CAN 向從CAN 發(fā)送查詢命令,從CAN 回復(fù)查詢命令。通過CANtest 軟件監(jiān)控CAN 總線數(shù)據(jù)。監(jiān)控結(jié)果如圖4 所示。

      圖4 CANtest軟件監(jiān)控?cái)?shù)據(jù)

      圖4 中第一行數(shù)據(jù)對應(yīng)主CAN 向從CAN 發(fā)送控制命令數(shù)據(jù),第二行數(shù)據(jù)對應(yīng)從CAN 回復(fù)控制命令數(shù)據(jù),第三行對應(yīng)主CAN 向從CAN 發(fā)送查詢命令數(shù)據(jù),第四行對應(yīng)從CAN 回復(fù)查詢命令數(shù)據(jù)??梢钥闯鰯?shù)據(jù)與設(shè)定值一致。

      另外注意幀ID,此圖中幀ID 不完全等于所設(shè)定的幀ID,是因?yàn)門MS320F28335 設(shè)置的ID 格式中第31 到29 位不屬于CAN 的ID范圍,而第28位到0 位是CAN 擴(kuò)展幀的29 位ID。

      通過示波器觀測CAN 數(shù)據(jù)的位時(shí)間,實(shí)測結(jié)果如圖5 所示。可以看出,位時(shí)間為2 μs,與設(shè)置的500 kbps 一致。

      圖5 CAN數(shù)據(jù)波形圖

      5 結(jié)束語

      1)根據(jù)CAN 總線通信規(guī)范,設(shè)計(jì)了CAN 總線多節(jié)點(diǎn)通信網(wǎng)絡(luò);根據(jù)TMS320F28335 處理器eCAN 外設(shè)特點(diǎn),設(shè)計(jì)了CAN 總線接口電路;

      2)介紹了CAN 位速率計(jì)算方法和CAN 擴(kuò)展型數(shù)據(jù)幀的位序構(gòu)成,設(shè)計(jì)了CAN 總線數(shù)據(jù)幀格式,并給出了ID 設(shè)置示例;

      3)根據(jù)TMS320F28335 處理器eCAN模塊的設(shè)置規(guī)則,對該模塊進(jìn)行了軟件配置,最終實(shí)現(xiàn)了CAN總線多節(jié)點(diǎn)的收發(fā)通信;

      4)項(xiàng)目的后續(xù)多機(jī)CAN 通信需求可根據(jù)文中所設(shè)定的通信格式進(jìn)行協(xié)議制定。

      猜你喜歡
      標(biāo)識符字節(jié)寄存器
      淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識符更新技術(shù)
      基于底層虛擬機(jī)的標(biāo)識符混淆方法
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于區(qū)塊鏈的持久標(biāo)識符系統(tǒng)①
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
      簡談MC7字節(jié)碼
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      數(shù)字美術(shù)館“數(shù)字對象唯一標(biāo)識符系統(tǒng)”建設(shè)需求淺議
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      灯塔市| 桂平市| 新建县| 湟中县| 新竹县| 抚顺市| 龙陵县| 灵川县| 察隅县| 精河县| 永年县| 仙游县| 信阳市| 宣汉县| 丁青县| 改则县| 无棣县| 涡阳县| 枝江市| 伊川县| 仙游县| 墨江| 湟源县| 北安市| 河西区| 延长县| 天全县| 开封市| 兴化市| 镇宁| 大竹县| 唐山市| 石棉县| 黄骅市| 正安县| 海安县| 沙田区| 桑植县| 博爱县| 同江市| 麻栗坡县|