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
主站蜘蛛池模板: 91精品视频播放| 亚洲无线观看| 国产国语一级毛片在线视频| 国产欧美日韩一区二区视频在线| 亚洲天堂在线视频| 久久精品人妻中文系列| 在线免费a视频| 国产办公室秘书无码精品| 狠狠色丁香婷婷综合| 男人天堂伊人网| 在线人成精品免费视频| 国产小视频网站| 亚洲h视频在线| 久久精品91麻豆| 亚洲伊人久久精品影院| 日韩精品久久久久久久电影蜜臀| av午夜福利一片免费看| 尤物亚洲最大AV无码网站| 国产亚洲欧美在线专区| 免费av一区二区三区在线| 尤物视频一区| 青青草原国产| 一本大道无码高清| 成人在线第一页| 国产欧美日韩另类精彩视频| 欧美综合成人| 国产v精品成人免费视频71pao| 国产精品思思热在线| 91在线无码精品秘九色APP| 婷婷综合亚洲| 欧美精品aⅴ在线视频| 呦视频在线一区二区三区| 日本高清在线看免费观看| 婷婷久久综合九色综合88| 国产无码在线调教| 国内丰满少妇猛烈精品播| 国产性爱网站| 久久女人网| 狠狠色狠狠色综合久久第一次| 国产人人干| 国产精品第一区在线观看| 国产鲁鲁视频在线观看| 国产欧美日韩一区二区视频在线| 少妇高潮惨叫久久久久久| 色婷婷电影网| 国产亚洲视频免费播放| 国产激爽大片在线播放| 亚洲 日韩 激情 无码 中出| 欧美区国产区| 亚洲Av激情网五月天| 亚洲综合色婷婷中文字幕| 国产特一级毛片| 亚洲h视频在线| 亚洲免费三区| 狠狠操夜夜爽| 久热99这里只有精品视频6| 亚洲码在线中文在线观看| 国产成人无码Av在线播放无广告| 国产成人综合日韩精品无码不卡| 日韩一二三区视频精品| 婷婷综合色| 性喷潮久久久久久久久| 91精品福利自产拍在线观看| 第一页亚洲| 怡红院美国分院一区二区| 日韩色图区| 亚洲国产中文欧美在线人成大黄瓜| 伊人中文网| 欧美自慰一级看片免费| 欧美在线视频a| 中文字幕在线永久在线视频2020| 婷婷久久综合九色综合88| 日本午夜网站| 国产SUV精品一区二区6| 波多野结衣一区二区三视频| 高潮毛片无遮挡高清视频播放| 国产99精品久久| 欧美在线一级片| 2022国产91精品久久久久久| 日韩国产高清无码| 国语少妇高潮| 欧美色丁香|