国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

采用TMS320F28335 的多節(jié)點CAN 總線通信設計

2021-04-30 07:25:10宋耀東
電子設計工程 2021年7期
關鍵詞:標識符字節(jié)寄存器

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

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

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

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

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

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

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

1.1 CAN總線多節(jié)點網(wǎng)絡設計

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

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

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

每臺設備使用兩個9 芯插座的標準連接器,這兩個9芯插座的接點分配完全一致,兩個連接器各對應點在設備內相互短接,一個用于連接輸入,一個用于連接輸出,以方便形成整體鏈路。插座接點分配如表1所示。

表1 總線插座接點分配

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

圖2 雙冗余CAN總線網(wǎng)絡結構

1.2 TMS320F28335處理器功能簡介

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

1.3 CAN接口電路

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

表2 PCA82C250管腳說明

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

圖3 CAN接口電路設計

2 CAN總線通信協(xié)議設計

2.1 CAN位速率計算

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

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

①TSEG1≥TSEG2;

②2TQ≤TSEG1≤16TQ;

③2TQ≤TSEG2≤8TQ;

④2TQ=3/BRP;

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

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

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

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

表3 CAN2.0B擴展幀位序表

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

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

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

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

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

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

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

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

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

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

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

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

2.4 CAN總線ID設置示例

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

表6 節(jié)點ID設置示例

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

3 TMS320F28335 的eCAN 模塊軟件設計

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

1)使能CAN 模塊的時鐘;

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

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

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

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

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

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

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

9)設置CCR=0,等到CCE=0,關閉配置寄存器TC 通道;

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

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

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

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

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

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

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

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

4 CAN通信示例測試

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

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

圖4 CANtest軟件監(jiān)控數(shù)據(jù)

圖4 中第一行數(shù)據(jù)對應主CAN 向從CAN 發(fā)送控制命令數(shù)據(jù),第二行數(shù)據(jù)對應從CAN 回復控制命令數(shù)據(jù),第三行對應主CAN 向從CAN 發(fā)送查詢命令數(shù)據(jù),第四行對應從CAN 回復查詢命令數(shù)據(jù)。可以看出數(shù)據(jù)與設定值一致。

另外注意幀ID,此圖中幀ID 不完全等于所設定的幀ID,是因為TMS320F28335 設置的ID 格式中第31 到29 位不屬于CAN 的ID范圍,而第28位到0 位是CAN 擴展幀的29 位ID。

通過示波器觀測CAN 數(shù)據(jù)的位時間,實測結果如圖5 所示??梢钥闯?,位時間為2 μs,與設置的500 kbps 一致。

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

5 結束語

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

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

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

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

猜你喜歡
標識符字節(jié)寄存器
淺析5G V2X 通信應用現(xiàn)狀及其側鏈路標識符更新技術
基于底層虛擬機的標識符混淆方法
計算機應用(2022年8期)2022-08-24 06:30:36
No.8 字節(jié)跳動將推出獨立出口電商APP
Lite寄存器模型的設計與實現(xiàn)
計算機應用(2020年5期)2020-06-07 07:06:44
基于區(qū)塊鏈的持久標識符系統(tǒng)①
No.10 “字節(jié)跳動手機”要來了?
簡談MC7字節(jié)碼
分簇結構向量寄存器分配策略研究*
數(shù)字美術館“數(shù)字對象唯一標識符系統(tǒng)”建設需求淺議
中國美術館(2016年6期)2017-01-19 08:44:24
高速數(shù)模轉換器AD9779/AD9788的應用
玉龙| 达孜县| 余干县| 望江县| 牡丹江市| 曲周县| 思茅市| 铜陵市| 台南市| 文昌市| 怀柔区| 曲水县| 突泉县| 曲阜市| 南昌县| 阳新县| 沽源县| 大连市| 孙吴县| 内丘县| 仲巴县| 特克斯县| 柘城县| 安达市| 甘孜| 钟祥市| 龙泉市| 大埔区| 灵山县| 通榆县| 青海省| 岱山县| 禄丰县| 无为县| 高要市| 开鲁县| 博爱县| 独山县| 遂溪县| 岳阳县| 林州市|