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

基于MC9S12X的CAN 通訊的底層代碼設計

2015-01-03 07:35:21蔡花朱宏翔
汽車實用技術 2015年1期
關鍵詞:設計

蔡花,朱宏翔

(西安蘭德新能源汽車技術開發有限公司,陜西 西安 710043)

基于MC9S12X的CAN 通訊的底層代碼設計

蔡花,朱宏翔

(西安蘭德新能源汽車技術開發有限公司,陜西 西安 710043)

CAN 總線因其高實時性能、高可靠性、穩定的傳輸性能、高抗電磁干擾性,使得它在汽車業中應用非常普遍。MC9S12X是一款高性能的16位處理器,可作為整車控制器的MCU,帶有5個CAN通訊模塊,可實現多路CAN 通訊。論文給出了CAN底層代碼的設計方法,并驗證了代碼,實現了MC9S12X與CAN助手之間的通訊,具有一定的實用價值。

MC9S12X;CAN通訊

CLC NO.: U462.1 Document Code: A Article ID: 1671-7988(2015)01-04-03

引言

MC9S12X單片機具有豐富的I/O模塊和工業控制專用的通信模塊,采用5V供電,總線速度可達40MHz,非常適合應用在汽車業中。在汽車級的控制器中,CAN總線是汽車各個控制單元之間聯系的紐帶,是實現數據交互的媒介,它的可靠運行是汽車正常行駛的前提。在選擇控制芯片時,芯片具有的CAN 模塊個數是一個重要的考慮因素,MC9S12X芯片帶有5個CAN模塊,滿足多路CAN通訊的需求。

CAN通訊的實現是建立在軟硬件基礎上,硬件電路實現電氣連接,軟件部分驅動硬件工作,二者缺一不可。本文論述CAN通訊的軟件實現,建立在具有CAN功能的MC9S12X芯片 和CAN收發器這兩個硬件基礎,實現MC9S12X 與CAN總線的通信,完成數據交互。

1、軟件設計方案

軟件設計主要是數據結構的設計和函數接口設計這兩個方面。

CAN 通訊的實現需要三個函數完成:初始化函數、發送函數和接收函數。

程序代碼用C 語言編寫,使用的CAN控制器支持CAN2.0B通訊協議,可以實現標準幀和擴展幀兩種類型的數據傳輸。

1.1 數據結構設計

(1)初始化數據結構設計:CAN 口初始化數據結構設計

其中BaudRateKb指CAN的工作頻率,以Kb/S為單位,CanNum指CAN口編號。

(2)CAN報文數據結構設計:發送/收報文數據類型的設計

1.2 初始化函數設計

初始化函數接口:

該函數包含一個參數 *Config 結構體指針。結構體包含兩個成員:BaudRateKb和CanNum。

初始化函數用來完成CAN模塊的選擇(即指定由哪一個CAN模塊實現報文的發送或者接收),設置CAN通訊的波特率,以及設置模塊的時鐘源。MC9S12X的CAN有兩種時鐘源可選擇,一個是板級晶振時鐘,另一個是總線時鐘,由于CAN通訊對總線傳輸速率的穩定性要求較高,所以在實際應用中,選擇晶振時鐘作為時鐘源。

初始化函數流程如下圖:

1.3 發送函數設計

發送函數接口:

該函數包含2個參數,其中一個是CAN模塊的編號,另一個是指向CAN報文的數據類型的一個指針。

參數num是用來發送CAN報文的CAN模塊號。*msg指針指向CAN報文數據結構,該結構包含5個成員。成員如下所述:

Extended參數是用來區分ID 類型,該參數取零值,表示ID是11位的;該參數取1,表示的是擴展ID(29位)。

Length參數用來設置發送數據的字節數,取值范圍0~8。

Remote參數用設置報文是遠程幀還是數據幀。

ID參數用來設置ID標識符。

Data[8]是存放數據的數組。

該函數的返回值是一個Can_ReturnType類型的值(0或1),表示總線正?;蛘卟徽?。

CAN發送函數的功能是實現報文發送,包括設置報文的類型(即數據幀或者遠程請求幀等),ID 類型(標準幀或者擴展幀),發送數據的長度(以字節為單位),以及發送的數據。

發送函數流程圖如下:

1.4 接收函數設計

接收函數接口:

該函數包含2個參數,其中一個是CAN模塊的編號,另一個是CAN報文數據類型的一個指針。

該函數的返回值是一個Can_ReturnType類型的值(0或1),表示接收是否完成。

CAN 接收函數的功能是接收其他控制設備發送到CAN總線上的數據。

接收函數流程圖如下:

2、軟件實現比較

主要針對接收功能,發送數據時,兩者的差異不明顯。接收數據時,兩者的差異較大。

差異一:

(1)初始化函數設計中,查詢方式接收不要求使能接收中斷使能位,接收完成標志位是在接收函數中清除的。

(2)中斷接收時,初始化函數中必須使能中斷使能位,接收完成標志位在中斷函數中清除。

差異二:

查詢方式接收時,整個過程中CPU一直查詢CANRFLG_進制RFG狀態,只有當它為1時,才接收數據,否則不接收。在這個過程中CPU不能做其他的事情,一直處于檢測CANRFLG_RFG的狀態,這樣會造成代碼運行效率低和CPU的浪費。

中斷方式接收時,一旦中斷標志位置1,CPU就轉到中斷函數去處理數據,當數據處理完成,CPU會轉向原來的任務繼續執行,這種方式不會造成CPU的浪費,提高了CPU的使用率。

3、軟件驗證

在CodeWarriorv5.1中編譯和運行代碼,通過CAN助手發送8字節數據(0x01,0x02,0x03, 0x55,0x05,0x06,0x07,0x08)到CAN總線,MC9S12X對數據處理 (擴大兩倍) 之后再發送給CAN助手。試驗結果如下圖:

上圖所用的接收方式是中斷方式。

4、結論

代碼設計和測試結果相一致,并且在MC9S12X上運行穩定,實現了CAN通訊功能。函數接口設計采用結構體指針方式,保證了函數接口的一致性,可移植性強。即使后期需要添加或者刪除結構體成員時,也不會影響其他函數對此函數的調用,保證了接口的統一性。

[1] 孫同景,陳桂友.Freescale 9S12十六位單片機原理及嵌入式開發技術[M].北京:機械工業出版社,2008.5:(8-15),61.

Design of CAN communication underlying code based on MC9S12X

Cai Hua, Zhu Hongxiang
(Xi'an Lande New Energy Vehicle Technology Development CO., Ltd., Shaanxi Xi'an 710043)

CAN bus is very widely apply in automobile industry, which is because of its high real-time performance, high reliability, stable performance, high resistance to electromagnetic interference.MC9S12X is a 16-bit high performance processor of Freescale, can be used as a vehicle controller MCU, with five CAN communication modules, can realize multi CAN communication. This paper presents the design method of the underlying code, and verifies the code, realize the communication between the MC9S12X and CAN assistant, which has a certain practical value.

MC9S12X;CAN communication

U462.1

A

1671-7988(2015)01-04-03

蔡花,就職于西安蘭德新能源汽車技術開發有限公司。

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 在线免费亚洲无码视频| 亚洲欧美另类日本| 亚洲成aⅴ人在线观看| 91成人精品视频| 国产内射在线观看| 嫩草国产在线| 麻豆精选在线| 国产剧情伊人| 在线无码九区| 精品国产香蕉在线播出| 国产爽妇精品| av午夜福利一片免费看| www.av男人.com| 亚洲娇小与黑人巨大交| 青青极品在线| 色呦呦手机在线精品| 人人91人人澡人人妻人人爽 | 免费国产不卡午夜福在线观看| 欧美激情伊人| 凹凸精品免费精品视频| 综合色天天| 国产v精品成人免费视频71pao | 久久综合干| 亚国产欧美在线人成| 在线精品亚洲国产| 欧美日韩午夜| 欧美午夜在线播放| 亚洲成在人线av品善网好看| 亚洲国产午夜精华无码福利| 久久综合色天堂av| 青青青国产视频| 亚洲中文久久精品无玛| 韩国v欧美v亚洲v日本v| 成人福利视频网| 亚洲成综合人影院在院播放| 欧美另类视频一区二区三区| h视频在线播放| 91色老久久精品偷偷蜜臀| 亚洲国产一区在线观看| 在线观看亚洲成人| 亚洲一区二区三区国产精华液| 青青青草国产| 91免费在线看| aaa国产一级毛片| 亚洲人在线| 538精品在线观看| 久草视频精品| 亚洲国产无码有码| 国产精品污污在线观看网站| 日韩国产黄色网站| 就去色综合| 亚洲日本中文字幕天堂网| 精品久久久久无码| 国产精品女主播| 久久精品欧美一区二区| 国产欧美综合在线观看第七页| 亚洲欧洲日韩综合色天使| 3D动漫精品啪啪一区二区下载| 国产成人h在线观看网站站| 国产精品福利尤物youwu| 亚洲国产亚综合在线区| 精品1区2区3区| 亚洲日本精品一区二区| 国产凹凸视频在线观看| 99精品福利视频| 91麻豆精品国产高清在线| 国产午夜看片| 四虎永久免费地址| 一级做a爰片久久毛片毛片| 国产理论一区| 99久久婷婷国产综合精| 国产乱子精品一区二区在线观看| 国产成人精品日本亚洲77美色| AⅤ色综合久久天堂AV色综合 | 91无码人妻精品一区| 偷拍久久网| 天堂中文在线资源| 国内老司机精品视频在线播出| 亚洲综合色区在线播放2019 | 亚洲区欧美区| 91九色国产在线| 国产尤物在线播放|