




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、遼遼 寧寧 工工 業業 大大 學學 工業控制網絡技術工業控制網絡技術 課程設計(論文)課程設計(論文)題目:題目: 基于基于USBUSB的的CANCAN總線適配器設計總線適配器設計院(系):院(系): 電氣工程學院電氣工程學院 專業班級:專業班級: 學學 號:號: 學生姓名:學生姓名: 指導教師:指導教師: 起止時間:起止時間:2013.12.18-2013.12.272013.12.18-2013.12.27本科生課程設計(論文)課程設計(論文)任務及評語課程設計(論文)任務及評語院(系):電氣工程學院 教研室:自動化 學 號100302038學生姓名欒旭專業班級自動化102課程設計題目 基
2、于USB的CAN總線適配器設計課程設計(論文)任務課題完成的功能、設計任務及要求、技術參數課題完成的功能、設計任務及要求、技術參數實現功能實現功能USB 的 CAN 總線適配器設計,實現計算機串口與 CAN 總線協議的轉換。設計硬件包括總線控制器、總線收發器及 ATMEL 系列單片機及 USB 芯片等。軟件采用匯編語言或 C語言,并調試與分析。設計任務及要求設計任務及要求1、確定設計方案,畫出方案框圖。2、適配器硬件設計,包括元器件選擇。3、畫出適配器的原理圖、線路圖。4、繪出程序流程圖,并編寫初始化、接收及發送程序。5、要求認真獨立完成所規定的全部內容;所設計的內容要求正確、合理。6、按學校
3、規定的格式,撰寫、打印設計說明書一份;設計說明書應在4000字以上。技術參數技術參數1、符合 CAN2.0B 規范;2、設定速率 1Mbit/s; 3、可擴充 110 個節點;4、可與上位機通信。進度計劃1、布置任務,查閱資料,確定系統設計方案(2 天)2、系統硬件設計及模塊選擇(3 天)3、系統軟件軟件及編寫功能程序及調試(3 天)4、撰寫、打印設計說明書(1 天)5、驗收及答辯。 (1天)指導教師評語及成績平時: 論文質量: 答辯: 總成績: 指導教師簽字: 年 月 日本科生課程設計(論文)注:成績:平時20% 論文質量60% 答辯20% 以百分制計算本科生課程設計(論文)摘 要CAN總線
4、是一種應用極為普及的現場總線。CAN總線作為智能設備的聯系紐帶,把掛在總線上作為網絡節點的智能設備連接為網絡系統,并進一步構成自動化系統,實現基本控制的綜合自動化系統。隨著現場總線技術和計算機外設接口技術的發展,現場總線與計算機快速有效的連接又有了更多的方案,USB 作為一種新型的接口技術,以其簡單易用、速度快等特點而備受青睞。本文簡要提出了 USB 接口與 CAN 總線連接方案,論述了系統的硬件構成,固件開發和驅動程序等內容。關鍵詞:現場總線 USB CAN 總線本科生課程設計(論文)目 錄第 1 章 緒論 .1第 2 章 課程設計的方案 .22.1 概述 .22.2 系統組成總體結構 .2
5、第 3 章 硬件設計 .33.1 單片機最小系統設計 .33.2 CAN 總線.43.3 USB 接口.5 3.4 收發器 PCA82C250.6 3.5 系統總體框圖.8第 4 章 軟件設計 .94.1 CAN 總線的初始化程序.94.2 SJA1000 發送和接收數據的流程.10第 5 章 課程設計總結 .12參考文獻 .13附錄 .14本科生課程設計(論文)1第 1 章 緒論CAN 總線最初是德國 Bosch 公司在 1986 年為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種支持分布式實時控制系統的串行數據通訊總線。CAN 總線與其它通信網的顯著不同之處在于: (1)報文
6、傳送中不包含目標地址,它是以全網廣播為基礎,各接收站根據報文中反映數據性質的標識符過濾報文,該收的收下,不收的棄用。其好處是可線上網下網、即插即用和多站接收。 (2)特別強化了對數據安全性的關注,滿足控制系統及其它較高數據要求的系統需求。另外 CAN 總線采用短幀結構,借助接收濾波的多地址幀傳送,受干擾概率低,每幀信息都有 CRC 校驗及其它檢錯措施。響應遠程數據請求,配置靈活,具有全系統的數據相容性。節點數主要取決于總線驅動電路,目前最多可達 110個節點。CAN 總線符合 ISO11898 標準,通信速率高,最大傳輸速率可達1Mbit/S,最大傳輸距離為 10km,傳輸介質可為雙絞線。基于
7、 CAN 總線以上的特點,把它應用于系統分布比較分散且需要在同一總線上掛接多個節點的場合是非常適合的。CAN 總線具有高性能、高可靠性、高性價比、連接方便、實時性好及其獨特的設計等突出優點應用于許多工業部門,目前已成為比較流行的一種現場總線,廣泛應用于控制系統中的各檢測和執行機構之間的數據通信。而實際應用中 PC機與 CAN 總線的人機交互設計尤為重要,它直接影響系統的運行和結果,其連接方法也成為系統設計的重點,通常采取 3 種連接方式:RS-232 串行口通信、PCI卡、USB 口通信,由于串行通信端口在系統控制領域中一直扮演著極為重要的角色,以其開發簡單,資源豐富,成本低,無需驅動程序等諸
8、多優點,不僅沒有被淘汰,反而在規格上更先進,故應用廣泛。結合設計中 AT89S51 單片機有串行通信口且接口簡單的特點,選用 RS-232 作為 CAN 總線與 PC 機之間的連接方式。將就這一基于 CAN 控制器 SJA1000 與 AT89S51 的具有通用性的工業測控系統設計的軟硬件設計方案作詳細介紹。本科生課程設計(論文)2第 2 章 課程設計的方案2.1 概述本次設計主要是綜合應用所學知識,設計 CAN 總線適配器接口設計,并在實踐的基本技能方面進行一次系統的訓練。能夠較全面地鞏固和應用“現場總線”課程中所學的基本理論和基本方法。系統以單片機 AT89S51 和 SJA1000 控制
9、器為核心,USB 的 CAN 總線適配器設計,實現計算機串口與 CAN 總線協議的轉換。設計硬件包括總線控制器、總線收發器及 ATMEL 系列單片機及 USB 芯片等。軟件采用匯編語言或 C 語言,并調試與分析。本設計系統主要部件結構圖如圖 2.12.2 系統組成總體結構AT89S51復位電路24M 時鐘SJA1000PDIUSBD12控制邏輯6M 時鐘光電隔離DCDCTJA1050適配器接口圖 2.1 系統總體框圖本科生課程設計(論文)3第 3 章 硬件設計3.1 單片機最小系統設計AT89S51 是一個低功耗,高性能 CMOS 8 位單片機,片內含 4k Bytes ISP(In-syst
10、em programmable)的可反復擦寫 1000 次的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術制造,兼容標準 MCS-51 指令系統及 80C51 引腳結構,芯片內集成了通用 8 位中央處理器和 ISP Flash 存儲單元,功能強大的微型計算機的 AT89S51 可為許多嵌入式控制應用系統提供高性價比的解決方案。圖3.1單片機最小系統本科生課程設計(論文)43.2 CAN 總線在本系統中,CAN 控制器采用 Philips 公司生產的 SJA1000,它作為一個發送、接受緩沖器,實現主控制器和總線之間的數據傳輸;CAN 收發器采用 TJA105
11、0芯片,它是 CAN 控制器和物理總線的接口,主要可以提供對總線的差動發送能力和對 CAN 控制器的差動接受能力。 在 CAN 總線結構中,總線的兩端還要配置兩個120 的電阻,其作用是總線匹配阻抗,可以增加總線傳輸的穩定性和抗干擾能力,減少數據傳輸中的出錯率。為了增強 CAN 總線節點的抗干擾能力,SJA1000的TXO 和 RX0可通過高速光耦6N137與 TJA1050相連,這樣就很好的實現了總線上各節點的電氣隔離。光耦部分電源與 CAN_V 必須用小功率電源隔離模塊進行隔離,這樣就提高了節點的穩定性和安全性。圖3.2為 SJA1000引腳圖。AD 71AD 62AD 53AD 44AD
12、 35AD 26AD 17AD 08WR_N9RD _N10CS_N11AL E12CL OCK OUT13INT _N14TX 027TX 126RX 025RX 124MO DE23VD D122VD D221VD D320VSS119VSS218VSS317RST_NXT AL 116XT AL 215SJA1000.圖3.2 SJA1000引腳圖本科生課程設計(論文)53.3 USB 接口PDIUSBD12 是一款帶有并行總線和局部 DMA 傳輸能力的高速 USB 接口器件,它支持 USB1.1 協議的所有傳輸方式,在本設計中用到了控制傳輸,中斷傳輸和批量傳輸。控制傳輸處理主機到 US
13、B 設備的控制信息,固定使用端點 0。中斷傳輸用來傳送數據量很小,但需要及時處理,以達到實時效果的數據,使用端點 1。批量傳輸用來實現 CAN 節點與主機之間大數據快傳送,使用主端點(端點 2),一次最大可發送 64 字節。PDIUSBD12 的固件設計成完全的中斷驅動,當 MCU 處理前臺任務時 USB 的傳輸可在后臺進行。這就確保了最佳的傳輸速率和更好的軟件結構,同時簡化了編程和調試。后臺 ISR 中斷服務程序和前臺主程序循環之間的數據交換通過事件標志和數據緩沖區來實現,當 PDIUSBD12 從 USB 收到一個數據包那么就對 MCU 產生一個中斷請求,MCU 立即響應中斷,在 ISR
14、中固件將數據包從PDIUSBD12 內部緩沖區移到數據緩沖區,并在隨后清零 PDIUSBD12 的內部緩沖區,以使能接收新的數據包。MCU 可以繼續它當前的前臺任務,返回到主循環檢查循環緩沖區內是否有新的數據。圖 3.3 為 PDIUSBD13 固件編程結構圖。圖3.3 PDIUSBD13固件編程結構圖這部分程序結構可包括:1) 請求處理程序對 USB 的標準設備請求進行處理和對用戶添加的廠商請求進行處理;USB 設備接入主機后要進入復雜的設備列舉過程,并安裝正確的驅動程序。2)硬件提取層對單片機的 I/O 口、數據總線等硬件接口進行操作,該層包含最底層的函數,這些函數在不同的 MCU 平臺上
15、需要進行改變,本科生課程設計(論文)6 void outportb(unsigned char port,unsigned char val); void inportb(unsigned char port); 對 PDIUSBD12 所有的 I/O 訪問都可由它們實現; 3)PDIUSBD12 命令接口 對 PDIUSBD12 器件進行操作的模塊子程序集,以簡化器件的編程; 4)中斷服務程序 當 PDIUSBD12 向單片機發出中斷請求時,讀取 PDIUSBD12 的中斷傳輸來的數據,并設定事件標志和 Setup 包數據緩沖區,傳輸給主循環。 5)主循環 發送 USB 請求,處理 USB
16、總線事件和用戶功能處理等。MCU 一旦上電就需要初始化其所有端口存儲區,中斷服務程序。在主循環程序中 MCU 對事件進行輪詢,如有 CAN 總線發來的數據,則送往 PDIUSBD12 進行發送,如有 USB 總線數據,則啟動 CAN 發送程序,它們在接口的接收工作分別由各自的中斷程序完成。要注意的是,我們在用了 PDIUSBD12 的端口最大一次可發送 64 字節,SJA1000 一次最多能發 8 字節, 如果端口 1 傳輸的長度大于 8 字節,MCU 在傳輸階段就必須根據數據大小,分數次完成 CAN 數據的發送工作。PDIUSBD12 初始化程序:void D12_init() D12_Se
17、tAddressEnable(0,1); D12_SetEndpointEnable(1); Disconnect(); Delay(2); Connect();D12_ReadInterruptRegister();3.4 收發器 PCA82C250PCA82C250 是 CAN 協議控制器和物理總線間的接口,它主要是為汽車中高速通訊(高達 1Mbps)應用而設計。此器件對總線提供差動發送能力,對 CAN 控制本科生課程設計(論文)7器提供差動接收能力,與 ISO11898 標準完全兼容。PCA82C250 芯片由接收器、驅動器、基準電壓產生電路、工作模式選擇電路及保護電路等組成。PCA82
18、C250 內部的限流電路可以防止發送輸出級對電池電壓的正端和負端短路。雖然在這種故障條件出現時,功耗將增加,但這種特性可以阻止發送器輸出級的破壞。在節點溫度大約超過 160時,兩個發送器輸出端的極限電流將減少。由于發送器是功耗的主要部分,因此芯片溫度會迅速降低。PCA82C50 芯片的其他部分將繼續工作。當總線短路時,熱保護十分重要。圖 3.4 為 PCA82C250 引腳圖。 圖 3.4 為 PCA82C250 引腳圖本科生課程設計(論文)83.5 系統總體框圖圖 3.5 為系統總體框圖,主要說明單片機與 SJA1000 和 PDIUSBD13 的引腳連接。 圖 3.5 系統總體框圖本科生課
19、程設計(論文)9第 4 章 軟件設計4.1 CAN 總線的初始化程序 CAN 總線的三層結構模型為:物理層、數據鏈路層和應用層。其中物理層和數據鏈路層的功能由 SJA1000 完成,系統的開發主要在應用層軟件的設計上,它主要由三個子程序:初始化子程序、發送數據和接收數據程序。同時,還包括一些數據溢出中斷以及幀出錯的處理。SJA1000 在上電硬件復位之后,必須對其進行軟件初始化之后才可以進行數據通訊,初始化過程主要包括對其復位模式下配置時鐘分頻寄存器 CDR、總線定時寄存器 BTR0 和 BTR1、驗收代碼寄存器 ACR、驗收屏蔽寄存器 AMR 及輸出控制寄存器 OCR 等,實現對總線的速率、
20、驗收屏蔽碼、輸出引腳驅動方式、總線模式及時鐘分頻進行定義。圖 4.1 為 CAN 總線初始化流程圖。圖 4.1 CAN 總線初始化流程圖開始啟動運行指示燈進入復位模式寫ACR寫AMR寫BTR0寫BTR1寫OCR寫CDR開錯誤中斷,發送中斷,接收中斷,溢出中斷結束進入運行模式?清除復位標志位NY本科生課程設計(論文)104.24.2 SJA1000 發送和接收數據的流程SJA1000 發送和接收數據的流程,基本過程為主控制器將數據保存到SJA1000 發送緩沖器,然后對命令寄存器的發送請求 TR 標志位進行置位開始發送;接收過程為 SJA1000 將從總線上接收到的數據存入接收緩沖器,通過其中斷
21、標志位通知主控制器來處理接收到的信息,接收完畢之后清空緩沖器,等待下次接收。圖 4.2 為發送程序流程圖,圖 4.3 為接受程序流程圖。滿開始接受緩沖器狀態?給緩沖器加載信息發送數據圖 4.2 CAN 總線發送程序流程圖本科生課程設計(論文)11YYYNN開始關 CAN 中斷數據幀?遠程幀?發送數據N讀入數據計算校驗檢驗正確?記錄數據幀標識符將數據壓入接受隊列開 CAN 中斷結束圖 4.3 CAN 總線接收程序流程圖本科生課程設計(論文)12第 5 章 課程設計總結這次課程設計根據課題要求,復習了所學的工業控制網絡課程內容,設計重點是理論與實踐相結合,使我得到了一次用專業知識、專業技能分析和解
22、決問題的鍛煉。通過這次課程設計使我明白了自己的知識還有所欠缺。明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己的綜合素質。本文主要研究 USB 的 CAN 總線適配器設計,以單片機 AT89S21 和 SJA1000 控制器為控制核心,完成系統的控制要求。本文介紹了 CAN 總線的發展及它的一些性能指標,確定系統的方案設計,通過一些硬件連接完成了系統的硬件設計。本文的核心在于 SJA1000 的初始化、發送和接受數據的程序設計,在老師的幫助下也順利完成。這次課設的重點在于動手實踐,做出實驗現象,不單單是一條條的程序分析。在課設的過程中我了解了 CAN 總線的性能
23、指標,還了解一些知識,不僅僅鞏固了工業控制網絡課程的內容,還大大的拓展我的知識面,了解了一些課外的知識,這對我將來走向工作崗位有了很大的幫助。本科生課程設計(論文)13參考文獻1 王彬、鄭紅平,CAN 總線在遠程抄表系統中的應用,北京:清華大學出版社,2004:19-48,81-932 張鳳登,現場總線技術應用,北京:科學出版社,1990:45-563 梅麗鳳,單片機原理及接口技術,北京:清華大學出版社,2009:126-1354 李慶峰,現場總線技術及其應用,北京:機械工業出版社,2004:25-405 周季軍,微型計算機控制,北京:電子工業出版社,1997:201-2206 李俊、鄭勇云,
24、現場總線 CAN 原理與應用技術,北京:北京航空航天大學出版社,2000:40-607 鄒繼軍,現場總線 CAN 原理與應用技術,北京:北京航空航天大學出版社,2003.38 鄔寬明,現場總線技術應用選編,北京:北京航空航天大學出版社,2004.29 楊春杰,CAN 總線技術,北京:北京航空航天出版社,2010.1本科生課程設計(論文)14 附錄CAN 初始化程序:void init_can()large unsigned int data i; for (i=0;i512;i+) _nop_() con_reg=ox41; for(i=0;i512;i+) _nop_() cpu_inter
25、_reg=ox41;clk_out_reg=ox30; bus_config_reg=0; g_m_s_reg0=oxff; g_m_s_reg1=ox1f; g_m_e_reg0=oxff; g_m_e_reg1=oxff;g_m_e_reg2=oxff; g_e_s_reg3=oxff; m15_m_reg0=oxff; m15_m_reg1=ox1f; m15_m_reg2=oxff; m15_m_reg3=oxff; tim0_reg=ox87; tim1_reg=oxc8;mesg_reg10=ox55;mesg_reg20=ox55;mesg_reg30=ox55;本科生課程設計(
26、論文)15mesg_reg40=ox55;mesg_reg50=ox55;mesg_reg60=ox55;mesg_reg70=ox55;mesg_reg80=ox55;mesg_reg90=ox55;mesg_rega0=ox55;mesg_regb0=ox55;mesg_regc0=ox55;mesg_regd0=ox55;mesg_rege0=ox55;mesg_regf0=ox55;mesg_reg16=ox88;mesg_reg12=oxf3;mesg_reg13=0;mesg_reg14=0;mesg_reg15=0;mesg_reg10=ox95;mesg_reg26=ox80;
27、mesg_reg22=oxf0;mesg_reg24=0;mesg_reg25=0;mesg_reg21=ox55;mesg_reg20=ox99;mesg_regf6=ox80;mesg_regf1=ox55;mesg_regf0=ox99;con_reg=ox02;發送數據程序代碼:int can_tran_file(int id ,char *f)void far *ptr;char ch;本科生課程設計(論文)16int i,j,re_comd,length;FILE *fp; get_ram_access_right(); ptr=MK-FP(oxd000,0); FP_OFF(pt
28、r)+=ox100; pokeb(FP_SEG(ptr),FP_OFF(ptr),02); FP_OFF(ptr)+; pokeb(FP SEG(ptr),FP OFF(ptr),id); FP_OFF(ptr)+; pokeb(FP_SEG(ptr),FP_OFF(ptr),1); FP_OFF(ptr)+; i=0; while(fi!=0) pokeb(FP_SEG(ptr),FP_OFF(ptr),fi); FP_OFF(ptr)+; i+; pokeb(FP_SEG(ptr),FP_OFF(ptr),fi); ptr=MK_FP(oxd000,0);FP_OFF(ptr)+=ox12
29、0;if(!(fp=fopen(f,rb)release_ram_acces_right();return(6); i=0; while(!feof(fp) fread(&ch,sizeof(char),1,fp); pokeb(FP_SEG(ptr),FP_OFF(ptr),ch); FP_OFF(ptr)+; i+; 本科生課程設計(論文)17 fclose(fp); length=i-1; ptr=MK_FP(oxd000,0); FP_OFF(ptr)+=0 x114; poke(FP_SEG(ptr),FP_OFF(ptr),length); release_ram_acces_ri
30、ght(); inportb(0 x218); for(i=0;i6000;i+)ch=0; get_ram_access_right(); prt=MK_FP(oxd000,0); FP_OFF(ptr)+=ox4000; re_comd=peekb(FP_SEG(ptr),FP_OFF(ptr); if(re_comd=0 x12) pokeb(FP_SEG(ptr),FP_OFF(ptr),0); release_ram_acces_right(); return(1); else ptr=MK_FP(oxd000,0); FP_OFF(ptr)+=ox4020; i=peekb(FP_SEG(ptr),FP_OFF(ptr); release_ram_acces_right(); return(i);接收數據子程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025店面租賃合同協議書樣本
- 《康復護理課件-功能障礙護理》
- 班組進度協議書合同
- 玻璃安裝勞務合同協議
- 畫廊場地出租合同協議
- 百貨自營采購合同協議
- 特種人員作業合同協議
- 疏通管道維修合同協議
- 白涼粉成品購買合同協議
- 申請解除合同書面協議
- 高處作業審批表
- 盜竊案件現場勘查應注意的問題
- 超聲波洗碗機的設計(全套圖紙)
- 小學校本課程教材《好習慣伴我成長》
- 國家開放大學電大本科《兒童心理學》網絡課形考任務話題討論答案(第二套)
- 用人單位職業健康監護檔案(一人一檔)
- 80噸吊車性能表
- 3Dmax筆試試題
- 初中尺規作圖典型例題歸納總結(共10頁)
- 第一步登錄山東省特種設備作業人員許可申報審批系統
- 公路壓實度自動計算公式
評論
0/150
提交評論