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

一種汽車CAN總線網關的報文接收和發送方法

2018-06-12 08:00:10馬建輝胡代榮郭坤
現代電子技術 2018年11期

馬建輝 胡代榮 郭坤

摘 要: 提出并驗證了一種汽車CAN總線網關的報文接收和發送方法。以軟件緩沖區配合CAN控制器的硬件緩沖區,設計軟件緩沖區管理任務,通過與硬件緩沖區的聯動能夠實時地接收報文,保證報文不丟失。同時,在CAN控制器硬件緩沖區未滿時及時將報文發送到總線上,不漏發報文,也不影響周期報文的周期準確性。

關鍵詞: BCM; 低功耗; RKE; CAN總線; 網關; 報文

中圖分類號: TN915.05?34 文獻標識碼: A 文章編號: 1004?373X(2018)11?0005?03

A messages receiving and transmitting method of automotive CAN bus gateway

MA Jianhui1, 2, 3, HU Dairong1, 2, 3, GUO Kun1, 2, 3

(1. Qilu University of Technology (Shandong Academy of Sciences), Jinan 250353, China;

2. Institute of Automation, Shandong Academy of Sciences, Jinan 250014, China;

3. Shandong Key Laboratory of Automotive Electronics Technology, Jinan 250014, China)

Abstract: A massage receiving and transmitting method of automotive CAN bus gateway is proposed and verified. The management tasks of the software buffer were designed to make the software buffer match up the hardware buffer of the CAN controller. The interaction of software buffer with the hardware buffer can realize the real?time message receiving, and ensure the message not to be lost. At the same time, the message is timely sent to the bus before the hardware buffer of CAN controller is completely filled up, which can send all the messages without missing, and maintain the periodic accuracy of periodic messages.

Keywords: BCM; low?power consumption; BKE; CAN bus; gateway; massage

0 引 言

隨著汽車電子部件的增多和智能化程度的提高,CAN總線系統已經成為汽車的重要組成部分。根據功能劃分、拓撲結構設計和實時性的不同要求,汽車一般會設計多個CAN網絡。CAN網絡之間的信息交互由網關實現,網關包括多個CAN接口,接入不同的CAN網絡,實現報文的接收和轉發[1]。在所有的CAN網絡節點中,從報文接收和發送的角度看,網關的負荷是最高的。CAN網絡采用非破壞性仲裁方式競爭總線,任一節點可以在任意時刻向總線發送數據,連接多個CAN網絡的網關可能會在較短的時間內接收到大量報文,并需要在短時間內轉發大量需要路由的報文。進行周期報文的轉發時,根據不同汽車廠家的要求,報文周期一般需要保證在規定值的±10%以內,這對網關的實時性、準確性都提出了較高的要求。

出于成本節約和集成化的要求,汽車電子零部件采用MCU內部的CAN控制器結合物理層芯片實現CAN總線通信[2]。由于低成本MCU的內部CAN控制器的硬件接收緩沖區和硬件發送緩沖區很小,當CAN網絡上短時間內出現大量報文時,如果未能及時讀取硬件接收緩沖區中的數據并清零標志位,便無法接收新的報文;當CAN網關短時間內需要轉發大量報文時,如果硬件發送緩沖區已滿,但仍存在需要發送的報文時,如果未能及時轉發報文,可能會造成漏發報文或者周期不準確的錯誤[3]。如果選用CAN控制器硬件接收緩沖區和硬件發送緩沖區都比較大的MCU,會增加成本,影響經濟效益和社會效益。

為此,本文提出并驗證了一種汽車CAN總線網關的報文接收和發送方法[4],能夠實時地接收報文,保證報文不丟失,同時在CAN控制器硬件緩沖區未滿時及時將報文發送到總線上,不漏發報文,也不影響周期報文的周期準確性。

1 整體方案設計

針對CAN報文的接收和發送,分別定義軟件接收緩沖區和軟件發送緩沖區,并創建緩沖區管理任務。緩沖區為結構體數組形式的環形隊列[5],結構體成員包括報文ID、報文長度和報文數據,數組長度根據CAN網絡矩陣表、網關報文周期和網絡負載率進行設置,保證在CAN網絡正常通信的情況下,不會出現緩沖區溢出的情形[6]。軟件緩沖區數組元素通過索引進行尋址,接收數組和發送數組各包括存入索引和取出索引。將索引加1時,如果索引值等于數組長度,將索引值置零。

以中斷方式接收CAN網絡報文[7],在CAN控制器接收中斷服務程序中,將CAN控制器硬件接收緩沖區中的數據存入由接收數組存入索引尋址的接收緩沖區位置,向緩沖區管理任務發送“接收到新報文”的信號,同時,將存入索引加1,如果存入索引值等于數組長度,將存入索引值置零。

當應用需要發送報文時,首先通過CAN控制器的寄存器判斷硬件發送緩沖區是否已滿,如果未滿,將待發送報文填充到硬件發送緩沖區,CAN控制器自動完成報文發送任務[8];如果已滿,將待發送報文存入由發送數組存入索引標記的軟件發送緩沖區位置,將存入索引加1,同時開啟CAN報文發送中斷。如果存入索引值等于數組長度,將存入索引值置零。

CAN控制器成功發送報文后,觸發報文發送中斷,在CAN報文發送中斷服務程序中向緩沖區管理任務發送“硬件發送緩沖區未滿”信號。

在緩沖區管理任務中,如果接收到的信號是“接收到新報文”,進入軟件接收緩沖區管理子任務;如果接收到的信號是“硬件發送緩沖區未滿”,進入軟件發送緩沖區管理子任務。

整體工作流程如圖1所示。

2 軟件緩沖區管理

由于網關報文眾多且硬件緩沖區資源有限,為了保證網關不丟失任何報文并實現報文周期的準確性,可以采用配置各個CAN節點的報文發送時段的方法,它能夠避免因多個節點同時發送報文導致總線競爭以及報文過于密集的現象,該方法能夠改善總線報文在時間軸上的分布[9],降低對CAN控制器硬件緩沖區的要求,但是這種方法需要分析總線波特率、網絡內所有報文的優先級和周期,不僅需要每個CAN節點都實現這種方法,而且靈活性很差,一旦由于網絡拓撲的改變增加或減少了某個節點,便會影響整個設計。

基于此,本方法采用軟件緩沖區的方式[10],采用中斷方式觸發報文軟件緩沖區管理任務,如圖2所示,報文接收中斷,表明硬件接收緩沖區存在待解析的報文,觸發軟件接收緩沖區管理子任務,報文發送中斷,表明硬件發送緩沖區未滿,可以進行報文發送,觸發軟件發送緩沖區管理子任務。采用這種方法,當網絡拓撲發生改變或者增減CAN網絡報文時,不必修改本方法的設計,靈活性很高,而且以實時中斷的方式觸發報文緩沖區管理任務,能夠保證數據的一致性和報文周期的準確性。

此外,針對及時轉發報文的要求,如果采用周期性掃描數據緩沖區的方法判斷是否有需要發送的數據包,在很多情況下,由于不存在需要發送的數據包,這時仍然進行周期性掃描,會白白浪費嵌入式系統寶貴的計算資源。另外,如果設置的掃描周期時間較長,會造成需要轉發的短周期報文不滿足周期準確性要求,如果設置的掃描周期時間較短,會加大系統負荷。因此,本方法采用中斷方式觸發報文緩沖區管理任務,能夠保證數據的一致性和報文周期的準確性。

2.1 軟件接收緩沖區管理

首先,通過比較接收數組的存入索引和取出索引,判斷是否存在待處理報文。如果存入索引和取出索引相等,表示不存在待處理的報文,直接退出軟件接收緩沖區管理子任務;如果兩者不相等,表示存在待處理的報文。讀取接收數組中由取出索引標記的元素,根據報文ID、長度和數據進行相應處理,然后將取出索引加1,如果取出索引值等于數組長度,將取出索引置零。再次判斷存入索引是否等于取出索引,循環這個過程,直至處理完所有未被處理的報文。流程圖如圖3所示。

2.2 軟件發送緩沖區管理

首先,通過比較發送數組的存入索引和取出索引,判斷是否存在待發送報文。兩者相等表示不存在未被發送的報文,關閉報文發送中斷,退出軟件發送緩沖區管理子任務;如果兩者不相等,首先,通過CAN控制器寄存器判斷硬件發送緩沖區是否已滿,如果已滿,直接退出軟件發送緩沖區管理子任務。如果未滿,讀取發送數組中由取出索引標記的元素,將報文ID、長度和數據賦值到CAN控制器硬件發送緩沖區對應的寄存器,然后將取出索引加1,如果取出索引值等于數組長度,將取出索引值置零。再次比較發送數組的存入索引和取出索引,直到退出軟件發送緩沖區管理子任務。軟件發送緩沖區管理流程圖如圖4所示。

3 結 語

本文提出的方法采用CAN控制器硬件緩沖區較小的MCU進行網關設計,降低了汽車零部件的成本,提高了社會效益。而且,本方法可以適用于普通的CAN節點,具有很強的通用性。

參考文獻

[1] 王渝卉,郝礦榮,丁永生,等.車載CAN網關實時性分析與改進[J].機電工程,2012,29(8):873?876.

WANG Yuhui, HAO Kuangrong, DING Yongsheng, et al. Real?time analysis and optimization of vehicle CAN?CAN gateway [J]. Journal of mechanical & electrical engineering, 2012, 29(8): 873?876.

[2] 劉侃,滿慶豐.基于MC9S12HY64的電動車儀表盤設計[J].儀表技術與傳感器,2014(12):22?24.

LIU Kan, MAN Qingfeng. Dashboard design for electric cars based on MC9S12HY64 [J]. Instrument technique and sensor, 2014(12): 22?24.

[3] 馮源,豆海利,趙剛.基于S12X系列雙核單片機的CAN網關設計[J].計算機測量與控制,2016,24(1):191?195.

FENG Yuan, DOU Haili, ZHAO Gang. Design of CAN bus gateway based on S12 series dual?core MCU [J]. Computer measurement & control, 2016, 24(1): 191?195.

[4] 山東省科學院自動化研究所.一種汽車CAN總線網關的報文接收和發送方法:中國,201611178709.6 [P].2016?12?19.

Institute of Automation, Shandong Academy of Sciences. A method for receiving and transmitting messages of an automotive CAN bus gateway: China, 201611178709.6 [P]. 2016?12?19.

[5] 程安宇,何川,馮輝宗,等.基于SAE J1939協議的雙緩沖區網關設計[J].計算機應用,2010,30(z1):15?17.

CHENG Anyu, HE Chuan, FENG Huizong, et al. Design of gateway with double buffer based on SAE J1939 [J]. Journal of computer applications, 2010, 30(S1): 15?17.

[6] 趙公旗,馮寶存,趙紅玉,等.淺談車載總線負載對網絡傳輸影響及優化[J].汽車電器,2015(12):22?24.

ZHAO Gongqi, FENG Baocun, ZHAO Hongyu, et al. Influence of vehicle busload on network transmission and its optimization [J]. Auto electric parts, 2015(12): 22?24.

[7] 謝曉兵,董筠,周新發,等.CAN總線并發通信時下位機應用軟件設計[J].空間控制技術與應用,2015,41(2):51?56.

XIE Xiaobing, DONG Jun, ZHOU Xinfa, et al. Design for communication of CAN bus of lower application software in concurrent communication [J]. Aerospace control and application, 2015, 41(2): 51?56.

[8] 孫新安.CAN控制器的軟件編程[J].有色金屬加工,2017,46(5):61?66.

SUN Xinan. CAN controller software programming [J]. Non?ferrous metals processing, 2017, 46(5): 61?66.

[9] 劉宇,宋桂秋.時間參數為非正態分布的CAN總線數據傳輸可靠性分析[J].機械與電子,2014(11):16?20.

LIU Yu, SONG Guiqiu. Analysis of non?normal distribution time parameters data transmission reliability in CAN bus [J]. Achinery & electronics, 2014(11): 16?20.

[10] 張哲宇,王義.汽車CAN?FlexRay總線網關研究與設計[J].貴州大學學報(自然科學版),2017,34(5):93?99.

ZHANG Zheyu, WANG Yi. Research and design of automotive CAN?FlexRay bus gateway [J]. Journal of Guizhou University (natural science), 2017, 34(5): 93?99.

主站蜘蛛池模板: 亚洲国产精品不卡在线| 婷婷综合色| 国产乱码精品一区二区三区中文 | 国内老司机精品视频在线播出| 国产91视频免费| 四虎AV麻豆| 国产一区二区网站| 精品人妻系列无码专区久久| 国产欧美日韩18| 91 九色视频丝袜| 色天堂无毒不卡| 超碰91免费人妻| 午夜性刺激在线观看免费| 亚洲乱伦视频| 广东一级毛片| 亚洲欧美色中文字幕| 原味小视频在线www国产| 日本在线欧美在线| 亚洲一区免费看| www成人国产在线观看网站| 亚洲综合狠狠| 4虎影视国产在线观看精品| 欧美啪啪一区| 青青草国产在线视频| 制服无码网站| 日韩在线1| 人妻无码中文字幕第一区| 伊人色在线视频| 欧美色综合久久| 精品国产一区91在线| 青草视频网站在线观看| 欧美一区福利| 国产成人精品免费视频大全五级| 54pao国产成人免费视频 | 亚洲国产91人成在线| 亚洲国产一区在线观看| 亚洲日韩国产精品综合在线观看| 99re视频在线| 日本道综合一本久久久88| 9丨情侣偷在线精品国产| 亚洲一区二区精品无码久久久| 成人午夜视频免费看欧美| 2021国产精品自拍| 亚洲青涩在线| 国产精品成人观看视频国产 | 美女高潮全身流白浆福利区| 色悠久久久久久久综合网伊人| 狠狠色狠狠综合久久| 国产一级α片| 在线观看亚洲精品福利片| 亚洲色图欧美视频| 国产草草影院18成年视频| 亚洲精品视频免费| 亚洲精品动漫在线观看| 亚洲一区免费看| 一区二区影院| 91免费国产在线观看尤物| 欧美日韩91| a级毛片网| 色香蕉影院| 超薄丝袜足j国产在线视频| 丁香婷婷在线视频| 国产在线欧美| 精品国产aⅴ一区二区三区| 一本一道波多野结衣一区二区| 亚洲国产看片基地久久1024| 天天爽免费视频| 午夜欧美在线| 欧美日韩国产高清一区二区三区| 欧美乱妇高清无乱码免费| 波多野结衣一二三| 狠狠色噜噜狠狠狠狠奇米777| 99久久国产综合精品2020| 中文字幕第4页| 亚洲69视频| 青青热久麻豆精品视频在线观看| 亚洲欧美日韩精品专区| 欧美亚洲国产一区| 成人综合久久综合| 综合五月天网| 久久这里只有精品2| 大学生久久香蕉国产线观看|