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

基于C8051F040的CAN總線控制接口設計淺析

2020-06-03 04:21:09侯慶果成彥林
科學與信息化 2020年9期

侯慶果?成彥林

摘 要 以往的CAN總線設計往往采用單片機和外圍CAN控制器的方式設計,該設計集成度不高,軟件設計靈活度不高,本文介紹了內部集成了CAN控制器的單片機C8051F040的使用方法,設計了相應的外圍接口電路,分析了內部CAN控制器及通信接口的硬件及軟件設計,并給出了其軟件實現方法。

關鍵詞 C8051F040;CAN控制器;接口

引言

CAN總線最初應用在早期的汽車工業中,由德國Bosch公司最先提出。CAN總線是一種功能強大的控制器局域網總線,速率高達1Mbps,并且具有極強的抗干擾能力和軟件糾錯能力,軟硬件開發流程相對簡單,產品維護性好、可靠性高,此外,CAN總線傳輸數據實時性好,因此,在汽車工業、數控機床及軍工設備等領域得到廣泛應用。

1C8051F040內部CAN控制器

CAN 控制器包含一個CAN 控制器內核、消息RAM、消息處理狀態機和控制寄存器。因此, CAN控制器只能完成協議的解析,無法完成接口的物理驅動。圖1 所示為CAN 控制器的原理框圖。

CAN控制器內核由CAN協議控制器和用于消息傳輸的串行移位寄存器組成。消息RAM中的32個消息對象可以任意配置為數據傳輸對象。輸入數據、消息對象及其標識掩碼被協議控制器解析后存儲在CAN消息RAM中。在沒有CPU干預的情況下,CAN控制器即可完成所有數據傳輸過濾協議處理。 這樣可以最小化用于CAN通信的CPU帶寬[1]。

2CAN總線硬件接口設計

因為C8051F040中內部集成了CAN總線控制器,因此,硬件接口設計時只需外接總線接口驅動模塊以及相應的濾波電路就可建立CAN總線接口。本設計采用廣州金升陽公司生產的TD301DCANH3作為CAN總線接口驅動模塊,該驅動模塊是將隔離電源、芯片信號隔離及收發控制集成于一體的CAN總線收發模塊,可實現2500VDC的電氣隔離,并具有ESD保護功能。其硬件設計原理圖如圖2所示[2]。

3CAN總線接口軟件設計

CAN總線接口軟件主要完成各子模塊的設計,子模塊之間相互獨立,封裝性較好,可以方便地用于基于該單片機設計的相關項目的開發應用,對不同的工程或者要求可以很方便地進行新的功能開發。具體子模塊如下所示[3]。

3.1 系統初始化

系統初始化主要完成總線波特率設置并啟動CAN總線,軟件設計如下所示。

/************************************

* 函數名稱:StartCAN;

* 函數功能描述:CAN啟動函數;

***********************************/

void StartCAN (void)

{

SFRPAGE? = CAN0_PAGE;

CAN0CN? |= 0x41;

CAN0ADR? = BITREG;

CAN0DAT? = 0x5EC3;

CAN0ADR? = IF1CMDMSK;

CAN0DAT? = 0x0088;

CAN0ADR? = IF2CMDMSK;

CAN0DATL = 0x1F;

CAN0CN? ?|= 0x06;

CAN0CN? ?&= ~0x41;? //啟動CAN

}

3.2 發送和接收程序

發送接收程序通過設置或者讀取相關寄存器的值來完成數據的收發過程,具體發送及接收程序如下所示。

/************************************* 函數名稱:CANTransmitdata;

* 函數功能描述:CAN發送一幀數據函數;

************************************/

void CANTransmitdata(unsigned char MsgNumber,unsigned char *pdtr,unsigned char len)

{

unsigned char num;

SFRPAGE? = CAN0_PAGE;

CAN0ADR? = IF1CMDMSK;

CAN0DAT? = 0x0087;

CAN0ADR? = IF1DATA1;

for(num=0;num

{

CAN0DATH = *++pdtr;

CAN0DATL = *--pdtr;

pdtr=pdtr+2;

}

CAN0ADR? = IF1CMDRQST;

CAN0DATL = MsgNumber;

}

/************************************* 函數名稱:CANReceivedata;

* 函數功能描述:CAN接收一幀數據函數;

************************************/

void CANReceivedata (unsigned char MsgNumber,unsigned char *pdtr,unsigned char len)

{

unsigned char i;

SFRPAGE? = CAN0_PAGE;

CAN0ADR? = IF2CMDMSK;

CAN0DATL = 0x0f;

CAN0ADR? = IF2CMDRQST;

CAN0DATL = MsgNumber;

CAN0ADR? = IF2DATA1;

for(i=0;i

{

*++pdtr = CAN0DATH;

*--pdtr = CAN0DATL;

pdtr=pdtr+2;

}

}

4結束語

本文論述了基于C8051F040 的CAN總線接口設計,介紹了CAN控制器內部原理、接口硬件及軟件設計方法,該設計硬件上簡單、可靠,軟件設計簡便、易懂,在速度控制伺服系統產品充分驗證了軟硬件運行的正確性及可靠性,達到了預期的效果。

參考文獻

[1] 童長飛.C8051F系列單片機開發與C語言編程[M].北京:北京航空航天大學出版社,2005:117.

[2] 牛躍聽,周立功.CAN總線嵌入式開發[M].北京:北京航空航天大學出版社,2016:56.

[3] 張培仁,孫力.C8051F系列單片機原理與應用[M].北京:清華大學出版社,2013:209.

作者簡介

侯慶果(1980-),男,江蘇南京人;現就職單位:南京長江電子信息產業集團有限公司,研究方向:電子設備整機技術管理。

成彥林(1980-),男,江蘇連云港人;現就職單位:南京長江電子信息產業集團有限公司,研究方向:電子設備整機系統聯調。

主站蜘蛛池模板: 国产欧美精品午夜在线播放| 欧美黑人欧美精品刺激| 国产成人亚洲综合a∨婷婷| 91日本在线观看亚洲精品| 国产va在线观看免费| 国产欧美视频在线| 亚洲色图欧美| 亚洲精品麻豆| 日韩色图区| 亚洲第一天堂无码专区| 无码内射在线| 亚洲精品无码不卡在线播放| 精品自拍视频在线观看| 国产一区在线视频观看| 亚州AV秘 一区二区三区| 91色在线视频| 久草视频福利在线观看| 超薄丝袜足j国产在线视频| 99国产精品一区二区| 亚洲AⅤ无码日韩AV无码网站| 国产精品九九视频| 久久五月天国产自| a色毛片免费视频| 亚洲欧美另类视频| 亚洲性影院| 亚洲欧美综合另类图片小说区| 999在线免费视频| A级毛片无码久久精品免费| 欲色天天综合网| 国产一区免费在线观看| av在线5g无码天天| 国产精品一老牛影视频| 97狠狠操| 狼友视频一区二区三区| 色妞永久免费视频| 免费一级α片在线观看| 免费国产不卡午夜福在线观看| 成人国产小视频| 亚洲欧美日韩天堂| 日韩精品久久无码中文字幕色欲| 成人亚洲国产| 丁香综合在线| 91在线精品麻豆欧美在线| 欧美中文字幕在线播放| 欧美激情视频在线观看一区| 日本高清视频在线www色| 美女黄网十八禁免费看| 青草视频免费在线观看| 国产成人免费手机在线观看视频 | 青青久久91| 亚洲精品第一页不卡| 天天色天天操综合网| 精品在线免费播放| 国产91蝌蚪窝| 久夜色精品国产噜噜| 91久久夜色精品| 久久综合干| 色欲色欲久久综合网| 特级aaaaaaaaa毛片免费视频| 国产免费a级片| 国产美女91呻吟求| JIZZ亚洲国产| 日韩毛片基地| 亚洲综合18p| 高清免费毛片| 国产精品部在线观看| 欧美成人午夜影院| 国产一区二区影院| 99视频在线看| 无码中文字幕精品推荐| 免费高清a毛片| 亚洲婷婷在线视频| 91小视频在线播放| 日本一区高清| 91九色国产porny| 国产三级国产精品国产普男人 | 超清人妻系列无码专区| 亚洲一级无毛片无码在线免费视频 | 欧美在线免费| 国产无码在线调教| 日韩不卡高清视频| 中文字幕无码av专区久久|