can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

ID:18481961

大?。?7.00 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2018-09-18

can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
資源描述:

《can總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、CAN總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)  在現(xiàn)場(chǎng)總線概念的出現(xiàn)到現(xiàn)在的近20年時(shí)間里,已經(jīng)出現(xiàn)了好幾種現(xiàn)場(chǎng)總線技術(shù)并走向成熟。其中CAN總線已被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一。CAN是一種由帶有CAN控制器組成的高性能串行數(shù)據(jù)局域通信網(wǎng)絡(luò),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。最初,CAN被設(shè)計(jì)作為汽車環(huán)境中的微控制器通信,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。由于其具有通信速度快、可靠性高和性能價(jià)格比好等突出優(yōu)點(diǎn),它正越拉越廣泛地應(yīng)用于汽車、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)業(yè)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械、家用電器及傳感器等領(lǐng)域。圖1所示是典型

2、的CAN總線節(jié)點(diǎn)的系統(tǒng)框圖?! ∠到y(tǒng)硬件設(shè)計(jì)  SJA1000獨(dú)立CAN控制器是PHILIPS公司PCA82C200CAN控制器的替代產(chǎn)品,它是在完全兼容PCA82C200的基礎(chǔ)上,增加了一種新的工作模式PeliCAN,SJA1000完全支持具有很多新特性的CAN2.0B協(xié)議。SJA1000的工作模式通過(guò)其內(nèi)部的時(shí)鐘分頻寄存器中的CAN模式為來(lái)選擇。SJA1000可以支持多種為處理器的時(shí)序特性,如Intel模式或Motorla模式,SJA1000與微處理器的接口非常簡(jiǎn)單,微處理器以訪問(wèn)外部存儲(chǔ)器的方式來(lái)訪問(wèn)SJA1000?! JA1050是控制器局

3、域網(wǎng)CAN協(xié)議控制器和物理總線之間的接口,TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能。TJA1050主要有以下特征:完全符合ISO11898標(biāo)準(zhǔn),最高速到達(dá)1Mb/s,輸入級(jí)3.3V以及5V器件兼容,至少可以連接110個(gè)節(jié)點(diǎn)。本設(shè)計(jì)的微處理器為89C51負(fù)責(zé)初始化SJA1000及通過(guò)控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù),系統(tǒng)電路圖如圖2所示?! AN控制器SJA1000的數(shù)據(jù)線AD0~AD7連接到51單片機(jī)的P0口,連接到基址為0xFA00的外部存儲(chǔ)器片選信號(hào),當(dāng)訪問(wèn)地址0xFA00~0xFA31時(shí),C

4、PU可對(duì)SJA1000執(zhí)行相應(yīng)的讀寫操作。SJA1000的、、分別與51對(duì)應(yīng)的引腳相連,接51的使51可以通過(guò)中斷方式訪問(wèn)SJA1000?! ∠到y(tǒng)軟件設(shè)計(jì)  本設(shè)計(jì)的系統(tǒng)由4個(gè)節(jié)點(diǎn)組成,一個(gè)節(jié)點(diǎn)由上位機(jī)通過(guò)并口轉(zhuǎn)CAN總線的數(shù)據(jù)收發(fā)器構(gòu)成,另外3個(gè)節(jié)點(diǎn)由圖2所示的單片機(jī)CAN總線收發(fā)系統(tǒng)構(gòu)成。單片機(jī)系統(tǒng)每秒發(fā)送一幀(8個(gè)字節(jié))數(shù)據(jù)。連接上位機(jī)的CAN總線收發(fā)器有相應(yīng)的上位機(jī)測(cè)試軟件支持,本文主要介紹單片機(jī)CAN總線收發(fā)器的程序設(shè)計(jì)。圖3是下位機(jī)軟件的流程圖。  系統(tǒng)設(shè)計(jì)的部分代碼如下:  main()  {?Sja_1000_Init();????/

5、/初始化SJA1000?Init_Cpu();?????//初始化CPU?Init_T0();??????//初始化定時(shí)器?flag_init=0x00;?while(1)?{?if(rcv_flag)???//rcv_flag為接受標(biāo)志位,有接收則單片機(jī)進(jìn)行處理?{??rcv_flag=0;BCAN_DATA_RECEIVE(rcv_data);?BCAN_CMD_PRG(0X04);??disp_rec();?}if(flag_sec)???//定時(shí)中斷標(biāo)志為,定時(shí)時(shí)間到則發(fā)送數(shù)據(jù)幀?{?flag_sec=0;?send_data[0]=0xaa

6、;?send_data[1]=0x08;?send_data[2]=DA1;?send_data[3]=DA2;  send_data[4]=DA3;  send_data[5]=DA4;  send_data[6]=DA5;  send_data[7]=DA6;  send_data[8]=DA7;  send_data[9]=DA8;BCAN_DATA_WRITE(send_data);?BCAN_CMD_PRG(0X01);?}?if(err_flag)?{??err_flag=0;??disp_err();?Sja_1000_Init();?

7、}?display(a);?//循環(huán)顯示接受數(shù)據(jù)  SJA1000的初始化過(guò)程包括申請(qǐng)進(jìn)入復(fù)位狀態(tài),設(shè)置總線波特率,設(shè)置輸出方式,開(kāi)放錯(cuò)誤中斷、接受和發(fā)送中斷。在進(jìn)行數(shù)據(jù)發(fā)送時(shí)數(shù)據(jù)包前兩個(gè)字節(jié)0Xaa、0X08為描述符,包括11位長(zhǎng)的ID(標(biāo)志符)1位RTR4位描述數(shù)據(jù)長(zhǎng)度的DLC共16位。BCAN_DATA_RECEIVE(rcv_data),為89C51對(duì)SJA1000的讀數(shù)據(jù)函數(shù)其具體函數(shù)定義: bit?BCAN_DATA_RECEIVE(unsignedchar*RcvDataBuf)?{??unsigned?char?TempCount

8、;??SJA_BCANAdr=REG_STATUS;?????????????//訪問(wèn)地址指向狀態(tài)寄存器??

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。