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
主站蜘蛛池模板: 国产精品任我爽爆在线播放6080 | 国产18在线播放| 在线观看免费AV网| 18禁高潮出水呻吟娇喘蜜芽| 四虎精品国产AV二区| 亚洲国产欧美国产综合久久| 国产欧美精品午夜在线播放| 一本久道久综合久久鬼色| 91伊人国产| 欧美一区二区三区欧美日韩亚洲| 国产精品手机在线观看你懂的| 欧美精品一区在线看| 8090成人午夜精品| 精品综合久久久久久97| 免费aa毛片| 超清人妻系列无码专区| 精品人妻系列无码专区久久| 2021国产精品自拍| 中文字幕人妻无码系列第三区| 99视频在线精品免费观看6| 欧美成人手机在线视频| 成年人视频一区二区| 在线精品自拍| 国产又粗又爽视频| 激情视频综合网| 国产精品综合久久久| 色偷偷av男人的天堂不卡| 亚洲一区二区无码视频| 亚洲国产精品日韩专区AV| 亚洲国产欧美自拍| 日韩麻豆小视频| 亚洲日韩精品伊甸| 精品国产一区91在线| 亚洲国产一成久久精品国产成人综合| 国产69囗曝护士吞精在线视频| 欧美专区在线观看| 亚洲国产综合自在线另类| 伊人婷婷色香五月综合缴缴情| 99久久无色码中文字幕| 日韩精品一区二区深田咏美| 青青操视频在线| 91精品国产自产在线观看| 老司国产精品视频| 99ri精品视频在线观看播放| 国产视频 第一页| 国产成人无码综合亚洲日韩不卡| 欧美一级专区免费大片| 欧美成人手机在线观看网址| 色香蕉影院| 久久国产精品嫖妓| 精品久久香蕉国产线看观看gif| 亚洲人视频在线观看| 日韩A级毛片一区二区三区| 99精品久久精品| 亚洲成人黄色在线观看| 亚洲无码高清视频在线观看 | 2048国产精品原创综合在线| 亚洲欧洲日韩久久狠狠爱| 性网站在线观看| 2021精品国产自在现线看| 国产在线精品网址你懂的| 韩日免费小视频| 国产成人精品在线| 久草中文网| 国产网友愉拍精品| 国产成人精品视频一区二区电影| 日韩视频福利| 美女被操黄色视频网站| 国产亚洲欧美另类一区二区| 精品无码日韩国产不卡av| 99精品视频九九精品| 久久人人妻人人爽人人卡片av| 国产黄网站在线观看| 广东一级毛片| 四虎在线观看视频高清无码| 亚洲综合极品香蕉久久网| 国产理论一区| 青青青视频免费一区二区| 一区二区影院| 一级毛片网| 麻豆国产原创视频在线播放| 伊人久久婷婷|