版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CAN總線系統(tǒng)的設計與實現(xiàn)在現(xiàn)場總線概念的出現(xiàn)到現(xiàn)在的近20年時間里,已經(jīng)出現(xiàn)了好幾種現(xiàn)場總線技術并走向成熟。其中CAN總線已被公認為幾種最有前途的現(xiàn)場總線之一。CAN是一種由帶有CAN控制器組成的高性能串行數(shù)據(jù)局域通信網(wǎng)絡,是國際上應用最廣泛的現(xiàn)場總線之一。最初,CAN被設計作為汽車環(huán)境中的微控制器通信,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡。由于其具有通信速度快、可靠性高和性能價格比好等突出優(yōu)點,它正越拉越廣泛地應用于汽車、機械工業(yè)、紡織機械、農(nóng)業(yè)用機械、機器人、數(shù)控機床、醫(yī)療器械、家用電器及傳感器等領域。圖1所示是典型的CAN總線節(jié)點的系統(tǒng)框圖。系統(tǒng)硬件設計SJA1
2、000獨立CAN控制器是PHILIPS公司PCA82C200CAN控制器的替代產(chǎn)品,它是在完全兼容PCA82C200的基礎上,增加了一種新的工作模式PeliCAN,SJA1000完全支持具有很多新特性的CAN2.0B協(xié)議。SJA1000的工作模式通過其內部的時鐘分頻寄存器中的CAN模式為來選擇。SJA1000可以支持多種為處理器的時序特性,如Intel模式或Motorla模式,SJA1000與微處理器的接口非常簡單,微處理器以訪問外部存儲器的方式來訪問SJA1000。TJA1050是控制器局域網(wǎng)CAN協(xié)議控制器和物理總線之間的接口,TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供
3、不同的接收性能。TJA1050主要有以下特征:完全符合ISO 11898標準,最高速到達1Mb/s,輸入級3.3V以及5V器件兼容,至少可以連接110個節(jié)點。本設計的微處理器為89C51負責初始化SJA1000及通過控制SJA1000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務,系統(tǒng)電路圖如圖2所示。CAN控制器SJA1000的數(shù)據(jù)線AD0AD7連接到51單片機的P0口,連接到基址為0xFA00的外部存儲器片選信號,當訪問地址0xFA000xFA31時,CPU可對SJA1000執(zhí)行相應的讀寫操作。SJA1000的、分別與51對應的引腳相連,接51的使51可以通過中斷方式訪問SJA1000。系統(tǒng)軟件設計本設計
4、的系統(tǒng)由4個節(jié)點組成,一個節(jié)點由上位機通過并口轉CAN總線的數(shù)據(jù)收發(fā)器構成,另外3個節(jié)點由圖2所示的單片機CAN總線收發(fā)系統(tǒng)構成。單片機系統(tǒng)每秒發(fā)送一幀(8個字節(jié))數(shù)據(jù)。連接上位機的CAN總線收發(fā)器有相應的上位機測試軟件支持,本文主要介紹單片機CAN總線收發(fā)器的程序設計。圖3是下位機軟件的流程圖。系統(tǒng)設計的部分代碼如下:main() Sja_1000_Init(); /初始化SJA1000Init_Cpu(); /初始化CPUInit_T0(); /初始化定時器flag_init=0x00;while(1) if(rcv_flag) /rcv_flag為接受標志位,有接收則單片機進行處理 rc
5、v_flag=0; BCAN_DATA_RECEIVE(rcv_data);BCAN_CMD_PRG(0X04); disp_rec(); if(flag_sec) /定時中斷標志為,定時時間到則發(fā)送數(shù)據(jù)幀 flag_sec=0; send_data0=0xaa; send_data1=0x08; send_data2=DA1;send_data3=DA2;send_data4=DA3;send_data5=DA4;send_data6=DA5;send_data7=DA6;send_data8=DA7;send_data9=DA8; BCAN_DATA_WRITE(send_data); B
6、CAN_CMD_PRG(0X01); if(err_flag) err_flag=0; disp_err(); Sja_1000_Init(); display(a); /循環(huán)顯示接受數(shù)據(jù)SJA1000的初始化過程包括申請進入復位狀態(tài),設置總線波特率,設置輸出方式,開放錯誤中斷、接受和發(fā)送中斷。在進行數(shù)據(jù)發(fā)送時數(shù)據(jù)包前兩個字節(jié)0Xaa、0X08為描述符,包括11位長的ID(標志符)1位RTR4位描述數(shù)據(jù)長度的DLC共16 位。BCAN_DATA_RECEIVE(rcv_data),為89C51對SJA1000的讀數(shù)據(jù)函數(shù)其具體函數(shù)定義:bit BCAN_DATA_RECEIVE(unsigne
7、d char *RcvDataBuf) unsigned char TempCount; SJA_BCANAdr = REG_STATUS; /訪問地址指向狀態(tài)寄存器 if(*SJA_BCANAdr&0x01)=0) /判斷報文是否有效 return 1; SJA_BCANAdr = REG_RxBuffer2; /訪問地址指向接收緩沖區(qū)2 if(*SJA_BCANAdr&0x10)=0) /如果是數(shù)據(jù)幀 TempCount=(*SJA_BCANAdr& 0x0f)+2; /計算報文中數(shù)據(jù)的個數(shù) else TempCount=2; SJA_BCANAdr = REG_RxBuffer1; /訪
8、問地址指向接收緩沖區(qū)1 memcpy(RcvDataBuf, SJA_BCANAdr,TempCount);/讀取接收緩沖區(qū)的報文 return 0;此函數(shù)僅限于CAN控制器接受數(shù)據(jù),返回值如果為0表示接受成功,如果為1表示接受失敗。BCAN_DATA_WRITE(send_data)函數(shù)是89C51對SJA1000的寫數(shù)據(jù)函數(shù)其具體定義如下:bit BCAN_DATA_WRITE(unsigned char *SendDataBuf) unsigned char TempCount; SJA_BCANAdr = REG_STATUS; /訪問地址指向狀態(tài)寄存器 if(*SJA_BCANAdr
9、&0x08) = 0) /判斷上次發(fā)送是否完成 return 1; if(*SJA_BCANAdr&0x04)=0) /判斷發(fā)送緩沖區(qū)是否鎖定 return 1; SJA_BCANAdr = REG_TxBuffer1; /訪問地址指向發(fā)送緩沖區(qū)1 if(SendDataBuf1&0x10)=0) /判斷RTR,從而得出是數(shù)據(jù)幀還是遠程幀 TempCount =(SendData Buf1&0x0f)+2; /輸入數(shù)據(jù)幀 else TempCount =2; /遠程幀 memcpy(SJA_BCANAdr,SendDataBuf,TempCount); return 0;此函數(shù)將待發(fā)送的特定幀
10、各式的數(shù)據(jù),送入SJA1000發(fā)送緩存區(qū)中,然后啟動,函數(shù)返回0表示將數(shù)據(jù)成功的送至發(fā)送緩沖區(qū),返回1表示上一次的數(shù)據(jù)正在發(fā)送。系統(tǒng)組網(wǎng)相對容易只需把各個節(jié)點掛在同一條雙絞線上即可,啟動上位機的CAN收發(fā)器,用來監(jiān)視總線數(shù)據(jù)狀態(tài)。每當啟動一個下位機CAN收發(fā)器,上位機的測試軟件就可以每隔一秒鐘收到由同一CAN收發(fā)器發(fā)送的數(shù)據(jù)幀。實驗結果顯示當3臺下位機CAN總線同時發(fā)數(shù)時數(shù)據(jù)接收端沒有數(shù)據(jù)丟失和總線沖突現(xiàn)象。結語現(xiàn)場總線有著巨大的發(fā)展?jié)摿?,它將給自動控制領域的變革帶來深遠的影響。我們設計的CAN總線收發(fā)器具有通用性,在本系統(tǒng)設計的基礎上只需要相應的修改數(shù)據(jù)傳輸協(xié)議即可應用于各個CAN總線的數(shù)傳系統(tǒng)。參考文獻:1 陳立元主編. Visual Basic實現(xiàn)串并行通信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年裝箱單在應對外貿(mào)出口貿(mào)易救濟措施中的策略合同3篇
- 二零二五版國際貿(mào)易特許經(jīng)營合同主體欺詐風險管理與合同解除合同3篇
- 二零二五年電子顯示屏廣告租賃合同樣本3篇
- 二零二五版代辦房地產(chǎn)前期開發(fā)手續(xù)與建筑工程質量檢測服務合同3篇
- 二零二五年采棉機駕駛員職業(yè)素養(yǎng)提升與勞動合同3篇
- 二零二五版能源行業(yè)凍庫租賃合同含能源物資儲備協(xié)議3篇
- 二零二五年酒店客房部服務員勞動合同書3篇
- 天津事業(yè)單位2025年度合同制聘用人員管理規(guī)范3篇
- 二零二五年度裝修合同范本:環(huán)保裝修保障您的生活品質6篇
- 二零二五版地產(chǎn)經(jīng)紀居間合同糾紛處理指南3篇
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護賽項)備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 健康教育工作考核記錄表
- 裝飾工程施工技術ppt課件(完整版)
- SJG 05-2020 基坑支護技術標準-高清現(xiàn)行
- 汽車維修價格表
- 司爐崗位應急處置卡(燃氣)參考
- 10KV供配電工程施工組織設計
- 終端攔截攻略
- 藥物外滲處理及預防【病房護士安全警示教育培訓課件】--ppt課件
評論
0/150
提交評論