999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Arduino在汽車CAN通訊中的應用研究 Research on the Application of Arduino in Automobile CAN Communication

2021-11-30 00:42:46信松嶺XINSong-ling張召ZHANGZhao
內燃機與配件 2021年22期

信松嶺 XIN Song-ling 張召 ZHANG Zhao

摘要:汽車各個電子控制單元之間的通訊通過CAN,在汽車研發過程中,存在軟件不同步以致CAN通訊異常,無法交互信號,車輛功能異常。為滿足研發需求,采用Arduino UNO+MCP2515進行CAN信號解析、轉換并發送,試驗數據顯示,轉發物理量的正確性及實時性較好,表明該方案有效,為其他類似場景需求提供解決方案。

Abstract: The communication between various electronic control units of the vehicle is through CAN. In the process of vehicle development, software asynchronization leads to abnormal CAN communication, unable to exchange signals, and abnormal vehicle functions. In order to meet the research and development requirements, Arduino Uno +MCP2515 was used to analyze, convert and send CAN signals. The test data showed that the correctness and real-time performance of the forwarding physical quantity were good, which indicated that the scheme was effective and provided a solution for other similar scene requirements.

關鍵詞:控制器局域網;Arduino開發板;信號解析

Key words: controller area network;Arduino development board;signal parsing

中圖分類號:U463.1? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-957X(2021)22-0006-03

0? 引言

當今階段的汽車電氣化程度日益發展,每臺配備數十個ECU(電子控制單元)[1],而它們之間并非是完全獨立的,完成某項整車功能可能需要來自幾個不同ECU的信號,例如非常熟悉的儀表顯示,它需要獲取ABS(防抱死制動系統)的車速信號,獲取ECM(發動機控制模塊)的發動機轉速和水溫信號,獲取TCM(變速箱控制模塊)的擋位信號。而TCM在執行換擋功能時,也同樣需要獲取發動機轉速和車速等其他控制器的信號。為了解決汽車控制器之間的通訊問題,德國Bosch公司開發了一種現場總線——CAN(Controller Area Network),并最終成為國際標準(ISO11519),是應用最廣泛的現場總線之一[2]。它通過兩條雙絞的線纜,以差分信號的形式進行通訊。CAN通訊具備以下特點:

①多主總線,每個節點機均可成為主機,且節點機之間也可進行通訊;

②通訊速率快,最高可達1Mb/s;

③采用CRC校驗并提供相應的錯誤處理功能,保證通訊的可靠性;

④最大的特點是沒有采用傳統的站地址編碼,取而代之對通訊數據塊編碼,這種方式可使節點機的個數在理論上不受限制,也可以使不同的節點機同時接收相同的數據,還可以作為發送仲裁的依據。

1? 原理與設計

1.1 研究背景

在汽車研發初期,會定義出車輛的配置及零部件方案,并以某款成熟汽車作為基礎進行改制,列舉如下場景:

場景一:改制車有控制器A,其外發的CAN信號中有個信號a,會被控制器B接收并執行其相應功能,而基礎車沒有控制器A,導致控制器B無法正常執行功能;

場景二:改制車將基礎車的控制器C更換為控制器D,那么控制器D與基礎車的其他控制器無法正常通訊,因為控制器D與控制器C對信號的定義不同;

場景三:預研新增控制器做原型開發,與已有的控制器通過CAN進行通訊(該控制器的應用層軟件非自主,不能直接在該控制器中開發,僅開放CAN接口),并通過其響應驗證新開發邏輯的可行性。

這三個場景有個共同點是都涉及到了CAN通訊,按照正常的開發流程需要各自的控制器更改軟件以適配CAN信號的變更,但不同的供應商會有不同的開發周期,舉例某供應商在僅更改CAN信號定義的軟件升級需要3至4個月,對于整車公司而言,這個周期是很長的,難以滿足開發需求。

1.2 問題分析

分析各個場景的問題核心,有如下解決方案:

場景一:可以通過設備模擬缺失的信號a;

場景二:可以將設備串接在控制器D前,并將交互的信號按照兩側的定義進行轉發,具體而言(為簡化描述,兩側分為左側和右側),設備按照左側的信號定義接收,解析后獲得表征的物理值,然后按照右側的信號定義發送,同理從右側接收,向左側發送;

場景三:可以通過設備運行新策略,并將最終結果通過CAN外發。

接下來對設備進行選型,筆記本電腦安裝BusMaster,可以通過USB口連ES581接入CAN總線,但此方案要占用一臺電腦資源,而且占用空間大,不易放置。

通過調研,MCP2515作為一款獨立的CAN控制器并集成了收發器[3],可以直接接入CAN總線,而與主控芯片通過SPI通信,主控芯片則選用Arduino UNO[4]。三個場景的網絡拓撲如圖1所示。

1.3 硬件連接

以場景二為例,僅儀表控制器更換供應商,其他控制器不變,開發設備的硬件包括:Arduino UNO一臺(含線,集成數據傳輸及供電功能),MCP2515兩塊,杜邦線若干。Arduino UNO與MCP2515引腳連接關系如表1所示。

將儀表控制器原有的CAN總線剪斷,儀表這一側的線頭與MCP2515(ABS)的CAN總線連接,另一側的線頭與MCP2515(總線)的CAN總線連接,注意雙絞線的兩條線不能接反,如果CAN信號中轉功能異常,這是一個排查點。Arduino UNO的線是USB口,可以通過車上的USB供電。

1.4 軟件設計

軟件是控制系統的靈魂,Arduino在軟件設計的優勢在這里就明顯的體現出來了。由于開源的緣故,很多專業的高水平的研究人員或電子愛好者,會將開發的驅動封裝為庫函數,在應用時就會極為方便,只需要調用幾個函數,就能輕松完成對外設的控制,讓我們更加專注于應用層軟件的設計,專注于功能的實現。

Arduino的軟件開發環境是Arduino IDE,與其他主控芯片有多個工具軟件的開發方式不同的是,這是一個集成開發環境,包含代碼編寫、編譯、下載等功能,界面簡潔友好[5]。

對于MCP2515的支持有許多庫函數,本次應用研究使用sutowp開發的arduino-mcp2515-master。該庫函數封裝了幾個重要且常用的函數:

①MCP2515 mcp2515(9),定義一個名為mcp2515的MCP2515對象,參數9代表mcp2515的片選引腳;

②mcp2515.setBitrate(CAN_500KBPS),定義mcp2515的總線速率為500kbps;

③mcp2515.readMessage(&canMsg),定義mcp2515的接收函數,并將報文信息保存至canMsg,包含3個主要內容,canMsg.can_id表示報文ID、canMsg.can_dlc 表示報文DLC(1~8)、canMsg.data[0]~ canMsg.data[7]表示1~8字節長度的數據場;

④mcp2515. sendMessage(&canMsg),定義mcp2515的發送函數,將canMsg保存的報文信息發送至總線;

為了滿足場景二的需求,需要提取特定CAN信號并轉發出去,其中有兩個關鍵點:ID匹配和數值轉換。通過canMsg.can_id可以直接獲得接收報文或定義發送報文的ID,接下來對數值轉換進行說明。數值轉換指的是報文的數據場數據(Raw Value)與信號的物理數據值(Physical Value)相互轉換的過程。在汽車CAN研發過程中,對數值轉換一般采用Excel管理,稱之為CAN Matrix進行描述,而每家汽車公司都有自己的模板,但大同小異,vector公司也制定了一種統一的DBC格式的文件來進行描述。主要包含以下主要內容:

①Byte Order,有Motorola和Intel兩種;

②Factor,數據場數據的“1”代表物理數據的值;

③Offset,偏移量,與Factor合用,Physical Value = Raw Value * Factor + Offset;

④Startbit,信號的Raw Value在數據場中的起始位置;

⑤Length,信號的Raw Value在數據場中的長度,影響其最大值。

借用BusMaster軟件界面,以發動機轉速為例進行說明,如圖2所示,Byte Order為Motorola,Factor為0.125,Offset為0,Startbit為16,Length為16。如圖2解析,數據場數據(Raw Value)的第1和第2字節代表的十六進制數值為4B00,對應十進制數值為19200,計算Physical Value為2400。圖中的Raw Value和Physical Value欄的數值框是可以輸入數據的,改變其中一個,另一個會自動改變為其對應的值。反之,已知Physical Value,先計算對應的Raw Value(十進制),轉為二進制,依據Length高位補0,再依據Startbit放置相應位置,即可得數據場數據。

將代碼輸入Arduino IDE,如圖3所示,通過點擊工具欄中“項目”下拉菜單的“驗證/編譯”,可以檢查語法等其他錯誤,會在最下方的消息框中以紅色字體提示,如沒有錯誤,編譯完成時則顯示如圖的白色字體信息。最后可以通過工具欄中“項目”下拉菜單的“上傳”來將程序燒錄至Arduino UNO。

2? 實驗

最后進入實車驗證階段,改制一臺領克03汽車,將儀表更換為另一家供應商的產品以模擬場景二,改制完成后發現發動機轉速、水溫、車速均沒有示數。

按1.3硬件連接中的方案將芯片接入汽車,如圖4所示,發現儀表發動機轉速、水溫、車速有示數。

主觀轉發正常,接下來進行數據采集,駕駛工況為自由駕駛,其中147s后為原地駐車踩油門,為了直觀所以以發動機轉速和車速為例進行說明,結果如圖5所示,圖中共顯示4個信號,ECM_EngSpd,ECM_VehSpd,CAN_EngineSpeed,CAN_VehicleSpeed,分別為ECM外發的發動機轉速,發動機接收的車速(ABS發出),ABS側CAN總線解析出的發動機轉速和車速,從圖中只看到兩條曲線,這是因為CAN_EngineSpeed和ECM_EngSpd基本重合,ECM_VehSpd和CAN_VehicleSpeed基本重合,這表明經過Arduino UNO+MCP2515的轉發,各個物理量可以保持原有值,而且轉發未出現明顯延時。

3? 結論

通過實車驗證Arduino UNO+MCP2515轉發CAN信號方案的可行性,為研發過程中由于CAN信號定義不同步帶來的通訊異常提供解決方案,研究結果表明,該方案切實有效。

參考文獻:

[1]方友勇.基于CAN總線的多ECU通信系統設計[D].南昌大學,2020.

[2]黃菊花,顧曉輝,曹銘.基于Arduino的CAN通信模塊的設計[J].南昌大學學報(工科版),2020,42(04):404-408.

[3]丁雪靜,許永輝.基于MCP2515的CAN總線通信單元設計[J].現代電子技術,2015,38(21):60-63.

[4]孫龍,劉暉虎.基于MCP2515的CAN總線控制軟件的設計與實現[J].現代信息科技,2018,2(07):1-4,8.

[5]趙琨.基于Arduino的云平臺智能家居控制系統設計與實現[D].華中師范大學,2020.

主站蜘蛛池模板: 超清人妻系列无码专区| 中文天堂在线视频| 色悠久久久久久久综合网伊人| 青青草国产一区二区三区| 91精品综合| 国产在线观看高清不卡| 欧美一区二区三区国产精品| 国产精品综合色区在线观看| 国产精品区视频中文字幕| 国产九九精品视频| 中国精品久久| 婷婷色婷婷| 亚洲第一区欧美国产综合| AV不卡在线永久免费观看| 国产福利免费观看| 亚洲 欧美 偷自乱 图片| 国内精品伊人久久久久7777人| 欧美区一区| 日韩一区二区在线电影| 自拍中文字幕| 国产欧美视频综合二区| 91午夜福利在线观看精品| 9丨情侣偷在线精品国产| 26uuu国产精品视频| 人人91人人澡人人妻人人爽| 精品一区二区三区自慰喷水| 色悠久久久久久久综合网伊人| 国产欧美精品专区一区二区| 熟妇人妻无乱码中文字幕真矢织江| 99re这里只有国产中文精品国产精品| 99re经典视频在线| 国产欧美日韩专区发布| 日本国产精品| 国产熟睡乱子伦视频网站| 国产成人综合网在线观看| 国产91在线|中文| 国产精品成| 自拍偷拍欧美日韩| 日本免费福利视频| 色综合天天视频在线观看| 谁有在线观看日韩亚洲最新视频| 欧美成人综合在线| 国产永久在线观看| 成人国产精品视频频| 国产精品19p| 久久伊伊香蕉综合精品| 国产精品极品美女自在线| 国产区成人精品视频| 波多野结衣中文字幕久久| 极品av一区二区| 亚洲国产天堂久久九九九| 欧美在线视频不卡| 精品伊人久久久久7777人| 久久天天躁狠狠躁夜夜躁| 亚洲熟妇AV日韩熟妇在线| 大陆国产精品视频| 亚洲免费黄色网| 777国产精品永久免费观看| 国产精品久久久久久久久久久久| 国产黄在线免费观看| 亚洲日韩第九十九页| 中文字幕资源站| 美女内射视频WWW网站午夜 | 欧日韩在线不卡视频| 亚洲区第一页| 亚洲—日韩aV在线| 色欲不卡无码一区二区| 国产大片黄在线观看| 谁有在线观看日韩亚洲最新视频| 国产精品九九视频| 婷婷伊人久久| 永久免费av网站可以直接看的| 中文字幕不卡免费高清视频| 首页亚洲国产丝袜长腿综合| 欧洲精品视频在线观看| 国产精品网址在线观看你懂的| 亚洲福利视频网址| 日韩一区精品视频一区二区| 亚洲一区二区约美女探花| 午夜福利无码一区二区| 亚洲综合中文字幕国产精品欧美| 免费人成视频在线观看网站|