2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  工業(yè)控制網(wǎng)絡(luò) 課程設(shè)計(論文)</p><p>  題目:CAN總線的雙機冗余系統(tǒng)設(shè)計</p><p>  院(系): </p><p>  專業(yè)班級: </p><p>  學(xué) 號: </p>

2、<p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p>  起止時間: </p><p>  課程設(shè)計(論文)任務(wù)及評語</p><p>  院(系):

3、 教研室:</p><p>  注:成績:平時20% 論文質(zhì)量60% 答辯20% 以百分制計算</p><p><b>  摘 要</b></p><p>  現(xiàn)場總線技術(shù)被譽為自動化領(lǐng)域的局域網(wǎng),它是計算機技術(shù)、通信技術(shù)、控制技術(shù)的集成。其中,CAN現(xiàn)場總線以其高性能、高可靠性及其獨特的設(shè)計越來越受到人們的重視。雙機冗余

4、技術(shù)是提高計算機控制系統(tǒng)可靠性的重要措施之一。</p><p>  本設(shè)計是綜合所學(xué)知識,出基于CAN總線的雙機冗余系統(tǒng)的設(shè)計方法。采用AT89C51單片機為主控制器,進行了單片機最小系統(tǒng)的硬件設(shè)計、可編程的CAN通信控制器SJA1000和CAN收發(fā)器PCA82C250組成的CAN通訊模塊的設(shè)計、雙機冗余的切換電路設(shè)計。選用獨立的CAN總線控制器和總線收發(fā)器以接入總線網(wǎng)絡(luò)所有單片機共用組數(shù)據(jù)總線、地址總線和控制總

5、線??偩€切換器可以使得主機控制、使用總線并將從機隔離于總線。總線切換器的功能可以由三態(tài)緩沖器等芯片來完成。</p><p>  關(guān)鍵詞:CAN總線;冗余技術(shù);雙機冗余;切換電路</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  第2

6、章 課程設(shè)計的方案2</p><p><b>  2.1 概述2</b></p><p>  2.2 系統(tǒng)組成總體結(jié)構(gòu)2</p><p>  第3章 硬件設(shè)計4</p><p>  3.1 單片機最小系統(tǒng)設(shè)計4</p><p>  3.1.1 單片機選擇4</p><

7、;p>  3.1.2 時鐘電路設(shè)計6</p><p>  3.1.3 復(fù)位電路設(shè)計7</p><p>  3.2 CAN總線9</p><p>  3.2.1 CAN總線控制器9</p><p>  3.2.2 CAN總線收發(fā)器10</p><p>  3.3 總線切換器11</p>&

8、lt;p>  3.4 系統(tǒng)總體連接圖13</p><p>  第4章 軟件設(shè)計14</p><p>  4.1 主程序流程圖14</p><p>  4.2 接收中斷服務(wù)程序流程圖15</p><p>  4.3 接收中斷超時服務(wù)程序流程圖16</p><p>  4.4 系統(tǒng)程序17</p&g

9、t;<p>  第5章 課程設(shè)計總結(jié)20</p><p><b>  參考文獻21</b></p><p><b>  緒論</b></p><p>  集先進的嵌入式系統(tǒng)、現(xiàn)代通訊、自控理論和網(wǎng)絡(luò)技術(shù)于一身的現(xiàn)場總線技術(shù),是自動化技術(shù)發(fā)展的熱點之一。它的出現(xiàn)標志著工業(yè)控制技術(shù)領(lǐng)域進入了一個新的時代。&l

10、t;/p><p>  目前各控制設(shè)備生產(chǎn)廠商采取各種各樣的方法來實現(xiàn)計算機系統(tǒng)的冗余以提高計算機控制系統(tǒng)的可靠性。有許多大公司如美國的Honey Well、德國的西門子等設(shè)計生產(chǎn)出專用的檢測切換電路,它們都是采用專用的檢測切換電路實現(xiàn)主從機的切換。本文介紹一種行之有效的利用現(xiàn)場總線實現(xiàn)雙機冗余的技術(shù)。傳統(tǒng)冗余技術(shù)存在的問題有:1.檢測切換電路設(shè)計復(fù)雜,且其本身會引入新的不可靠因素;2.有些場合需要主機和從機之間實時交

11、換數(shù)據(jù),保證從機時刻跟蹤現(xiàn)場信息。一旦主機發(fā)生故障,從機立即能以“無縫連接”方式切入運行,使被控對象始終得到連續(xù)控制而不受任何“干擾”。檢測切換電路的使用反而不利于主從之間通信的實現(xiàn);3.使用檢測切換電路實現(xiàn)雙機以上的多機冗余備份十分困難。</p><p>  CAN總線屬于現(xiàn)場總線的范疇,是一種保密性較好、有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。CAN總線是20實世紀80年代初德國BOSCH公司為解決現(xiàn)代汽

12、車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,其通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。在自動化電子領(lǐng)域的汽車發(fā)動機控制部件、傳感器、抗滑系統(tǒng)等應(yīng)用中,CAN總線的通信速率可高達1Mbit/s。同時它也可以廉價地應(yīng)用到交通運輸工具的電氣系統(tǒng)中,以替代以往所需要的許多硬件及各種線路的連接?,F(xiàn)場總線控制系統(tǒng)打破了傳統(tǒng)控制系統(tǒng)的結(jié)構(gòu)形式。傳統(tǒng)模擬控制系統(tǒng)采用一對一的物理連接,而現(xiàn)場總線控制系統(tǒng)把單個分

13、散的測量控制設(shè)備變成網(wǎng)絡(luò)節(jié)點,以現(xiàn)場總線為紐帶,將每個網(wǎng)絡(luò)節(jié)點連接成可以相互溝通信息、共同完成自控任務(wù)的網(wǎng)絡(luò)系統(tǒng)和控制系統(tǒng)?,F(xiàn)場總線中的傳感器、變送器、執(zhí)行機構(gòu)均置入微控制器。使它們具備了數(shù)字計算和數(shù)字通信的能力,信息的傳輸不再依賴于控制室內(nèi)的計算機或控制儀表,直接在現(xiàn)場的個網(wǎng)絡(luò)節(jié)點完成,實現(xiàn)了徹底的分散,有力地推動了測控系統(tǒng)向數(shù)字化、網(wǎng)絡(luò)化、智能化方向發(fā)展。其中CAN總線的總線規(guī)范現(xiàn)已被ISO國際標準</p><p

14、><b>  課程設(shè)計的方案</b></p><p><b>  概述</b></p><p>  本文提出了一種基于CAN總線的雙機冗余系統(tǒng)的設(shè)計方案,使在出現(xiàn)故障時能自動切換,保證系統(tǒng)安全、穩(wěn)定運行??傮w結(jié)構(gòu)是通過單片機連接總線控制器、總線收發(fā)器、總線切換器,進行數(shù)據(jù)傳遞并控制工作。</p><p>  本方案以

15、AT89C51單片機作為主控核心,與CAN總線控制器SJA1000完成通信協(xié)議。CAN總線收發(fā)器APC82C250、總線切換器等模塊組成核心主控制模塊。 總線切換器進行主站從站工作的切換,使雙機冗余系統(tǒng)能在各種狀態(tài)工作和切換。</p><p><b>  系統(tǒng)組成總體結(jié)構(gòu)</b></p><p>  基于CAN總線雙機冗余系統(tǒng)設(shè)計框圖如圖2.1所示</p>

16、<p>  圖2.1 系統(tǒng)設(shè)計結(jié)構(gòu)框圖</p><p><b>  各部分功能:</b></p><p> ?。?)以單片機AT89C51為主控制器,與SJA1000進行信息傳遞,并進行主控制。</p><p> ?。?)CAN總線控制器為SJA1000,實現(xiàn)單片機與總線之間的數(shù)據(jù)傳輸。</p><p> 

17、?。?)CAN總線收發(fā)器為APC82C250。</p><p> ?。?)總線切換器可以使得主機控制、使用總線并將從機隔離于總線??偩€切換器的功能可以由三態(tài)緩沖器74HC244等芯片完成。</p><p><b>  硬件設(shè)計</b></p><p><b>  單片機最小系統(tǒng)設(shè)計</b></p><p

18、><b>  單片機選擇</b></p><p>  本次設(shè)計選擇AT89C51。</p><p> ?。?)AT89C51單片機硬件結(jié)構(gòu):</p><p>  AT89C51是一種低功耗、低電壓、高性能的八位CMOS單片機,片內(nèi)有一個4KB的FLASH可變成可擦除只讀存儲器(FPEROM-Flash Programmable and E

19、rasable Read Only Memory),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MSC-51兼容。片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲單元,片內(nèi)的存儲器允許在系統(tǒng)內(nèi)改變程序或用常規(guī)的非易失性存儲器編程。因此,AT89C51是一種功能強、靈活性高且價格合理的單片機,可方便的應(yīng)用于各種控制領(lǐng)域。</p><p><b> ?。?)

20、主要特性:</b></p><p>  與MCS-51產(chǎn)品指令系統(tǒng)兼容</p><p>  4K字節(jié)可編程閃爍存儲器</p><p>  壽命:1000寫、擦循環(huán)</p><p>  數(shù)據(jù)保留時間:10年</p><p>  全靜態(tài)工作:0Hz-24Hz</p><p><b&

21、gt;  三級程序存儲器鎖定</b></p><p>  128*8位內(nèi)部RAM</p><p><b>  32可編程I/O線</b></p><p>  兩個16位定時器、計數(shù)器</p><p><b>  6個中斷源</b></p><p><b>

22、;  可編程串行通道</b></p><p>  低功耗的閑置和掉電模式</p><p>  片內(nèi)振蕩器和時鐘電路</p><p><b> ?。?)管腳說明:</b></p><p>  VCC(40):供電電壓,其工作電壓為5V。</p><p>  GND(20):接地。<

23、/p><p>  P0端口(P0.0-P0.7):P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)、地址的第八位。再LFASH編程時,P0口作為原碼輸入口,當FLASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1端口(P1.0-P1.7):P1口是一個

24、內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能夠接收4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。再FLASH編程和校驗時,P1口作為第八位地址接收。</p><p>  P2端口(P2.0-P2.7):P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上

25、拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p>  P3端口(P3.0-P3.7):

26、P3口管腳是一個帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時,由于外部下拉為低電平,P3口將輸出電流(ILL)。P3口也可作為AT89C51的一些特殊功能口,如表1所示。P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  復(fù)位RST(9):復(fù)位輸入。在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的

27、高電平出現(xiàn)在此引腳時,將使單片機復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P3.0-P3.7口均置1,引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運行程序。復(fù)位操作不會對內(nèi)部RAM有所影響。</p><p>  ALE/(30):當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入

28、編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  (29):外部程

29、序存儲器的選通信號。在由外部程序存儲器取指令期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將不出現(xiàn)。</p><p>  EA/VPP(31):當保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</

30、p><p>  XTAL1(19):反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2(18):來自反向振蕩器的輸出。</p><p>  圖3.1 AT89C51引腳圖</p><p><b>  時鐘電路設(shè)計</b></p><p>  單片機的時鐘信號用來提供單片機片

31、內(nèi)各種微操作的時間基準,復(fù)位操作則使單片機的片內(nèi)電路初始化,使單片機從一種確定的初態(tài)開始運行。</p><p>  時鐘電路 89C51單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。</p><p>  在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)

32、生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路如圖3-1所示。圖3-1中,電容器Cl,C2起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時鐘情號比較穩(wěn)定,實用電路中使用較多。</p><p><b>  圖3.2 時鐘電路</b></p><p><b>  復(fù)位電路設(shè)計<

33、;/b></p><p>  復(fù)位電路電路圖如圖3.3所示</p><p>  當89C51單片機的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。</p><p&g

34、t;  常用的上電復(fù)位電路電容C1和電阻R1對電源+5V來說[20]構(gòu)成微分電路。上電后,保持RST一段高電平時間,由于單片機內(nèi)的等效電阻的作用,不用圖中電阻R1,也能達到上電復(fù)位的操作功能,如圖3.3所示。</p><p>  圖3.3復(fù)位電路電路圖</p><p>  開關(guān)復(fù)位要求電源接通后,單片機自動復(fù)位,并且在單片機運行期間,用開關(guān)操作也能使單片機復(fù)位常用的上電或開關(guān)復(fù)位電路。上電

35、后,由于電容C3的充電和反相門的作用,使RESET持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復(fù)位鍵K后松開,也能使RESET為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。</p><p>  單片機最小系統(tǒng)由單片機,時鐘電路,復(fù)位電路組成,最小系統(tǒng)圖如下:</p><p>  圖3.4 單片機最小系統(tǒng)</p><p><b>  CAN總線&l

36、t;/b></p><p><b>  CAN總線控制器</b></p><p>  本次設(shè)計采用的CAN總線控制器SJA1000 是一種獨立控制器,用于移動目標和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制(CAN),它是PHILIPS半導(dǎo)體PCA82C200 CAN 控制器BasicCAN 的替代產(chǎn)品而且它增加了一種新的工作模式PeliCAN, 這種模式支持具有很多新特性的

37、CAN 2.0B 協(xié)議,其軟件、硬件均與原有的82C200相兼容。</p><p>  SJA1000的主要特點如下:</p><p>  (1)管腳及電氣特性與PCA82C200CAN獨立控制器兼容;</p><p> ?。?)具有擴展的接收緩沖區(qū)(64字節(jié)FIFO);</p><p> ?。?)支持CAN2.0B規(guī)范,同時支持11位標識符

38、和29位標識符;</p><p>  (4)位速率可達到1Mbps;</p><p> ?。?)24MHz時鐘頻率;</p><p> ?。?)可與不同微處理器連接;</p><p> ?。?)可編程CAN 輸出驅(qū)動配置;</p><p>  (8)超寬的溫度范圍(-40至+125℃);</p><

39、p> ?。?)可讀/寫訪問的錯誤計數(shù)器;</p><p> ?。?0)可編程的錯誤報警限制;</p><p> ?。?1)錯誤碼寄存器;</p><p> ?。?2)每次CAN 總線錯誤都產(chǎn)生的錯誤中斷;</p><p>  (13)詳細記錄仲裁丟失位的仲裁丟失中斷;</p><p> ?。?4)單次發(fā)送(無重發(fā)

40、功能);</p><p>  (15)監(jiān)聽模式(無應(yīng)答,無活動錯誤標志);</p><p> ?。?6)支持熱插拔(軟件驅(qū)動的位速率檢測);</p><p>  (17)接收過濾器(4 字節(jié)驗收碼,4 字節(jié)屏蔽碼);</p><p> ?。?8)接收自發(fā)信息(自檢測請求);</p><p>  SJA1000 的引腳圖

41、如圖3.5所示。</p><p>  圖3.5 SJA1000引腳圖</p><p><b>  CAN總線收發(fā)器</b></p><p>  CAN總線收發(fā)器PCA82C250是CAN控制器和物理總線之間的接口,它最初為汽車高速通信應(yīng)用設(shè)計。器件可以提供對總線的差動發(fā)送能力和對CAN控制器的差動接收能力。</p><p&g

42、t;  圖3.6 82C250的功能框圖</p><p><b>  引腳說明:</b></p><p>  1腳:欲發(fā)送數(shù)據(jù)的輸入端;</p><p><b>  2腳:電源地端;</b></p><p><b>  3腳:電源端;</b></p><p&

43、gt;  4腳:接收數(shù)據(jù)的輸入端;</p><p>  5腳:參考電壓的輸出端;</p><p>  6腳:低電平CAN總線輸入/輸出端;</p><p>  7腳:高電平CAN總線輸入/輸出端;</p><p>  8腳:總線脈沖斜率控制電阻連接端。</p><p>  82C250驅(qū)動電路內(nèi)部具有限流電路,可防止輸

44、出極對電池電壓的正端和負端短路。雖然在這種故障條件出現(xiàn)時,功耗增加,但這種特性可以防止發(fā)送輸出級的破壞。若結(jié)溫超過大約160℃數(shù)值時,兩個發(fā)送器輸出端的極限電流將減少。由于發(fā)送器是功耗的主要部分,因而決定了芯片的較低溫度。集成芯片的所有其它部分仍然工作。當總線短路時,過熱保護十分需要。82C250采用雙線差分驅(qū)動,有助于抑制惡劣電氣環(huán)境下的瞬變干擾。</p><p>  利用82C250還可方便地在CAN控制器與

45、收發(fā)器之間建立光電隔離,以實現(xiàn)總線上各節(jié)點間的電氣隔離。</p><p>  SJA1000的AD0~AD7和AT89C51的P0口相連接,和P16相連接,和P32相連接。SJA1000采用的是Intel模式。</p><p><b>  總線切換器</b></p><p>  總線切換電路主要由四部分組成:D觸發(fā)器、RC電路、與門和八雙向總線

46、收發(fā)器74HC244芯片組成。</p><p>  本次設(shè)計采用74HC244總線收發(fā)器(bus transceiver),是典型的CMOS型三態(tài)緩沖門電路。由于單片機或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負載能力,如果負載超過其負載能力,一般應(yīng)加驅(qū)動器。</p><p>  74HC244這種八位總線收發(fā)器是為數(shù)據(jù)總線間進行異步兩路通訊而設(shè)計的。采用控制功能可以盡量減少外部定時電路

47、的要求。這種電路可以將數(shù)據(jù)從A總線傳送到B總線,也可以將B總線傳送到A總線,具體傳送方向要看方向控制(DIR)輸入的邏輯電平而定??梢杂檬鼓芏溯斎雭斫惯@種電路,使總線之間能有效地隔離。</p><p>  總線切換電路原理圖如下:</p><p>  圖3.7 總線切換電路</p><p>  系統(tǒng)上電后,電路中輸出低電平,與門輸出低電平,D觸發(fā)器置1,控制74

48、HC244切斷單片機與三總線的聯(lián)系,從硬件上保證了新上電單片機處于從機狀態(tài)。電路中輸出高電平后,D觸發(fā)器的輸出可以受控于對方單片機。當需要主從切換時,確保故障節(jié)點在被切除出去以后對三總線不能產(chǎn)生影響。從機在將自己置為從機時,應(yīng)先向P1.0引腳送一低電平,使故障節(jié)點的D觸發(fā)器置1,關(guān)閉其三態(tài)緩沖器,切斷與三總線的聯(lián)系,然后再向P1.1引腳發(fā)送1個脈沖信號,使D觸發(fā)器翻轉(zhuǎn),輸出低電平,完成主機與從機的切換。</p><p

49、><b>  系統(tǒng)總體連接圖</b></p><p><b>  軟件設(shè)計</b></p><p><b>  主程序流程圖</b></p><p>  圖4.1 主程序流程圖</p><p>  接收中斷服務(wù)程序流程圖</p><p>  圖4

50、.2 接收中斷服務(wù)程序流程圖</p><p>  單片機初始化完成后,在總線上發(fā)送詢問幀,若有主機在運行,則置當前機為主機。獲得三總線的控制權(quán)和使用權(quán)。若兩機同時接受到信號,則根據(jù)CAN總線仲裁協(xié)議,其中一個回去的優(yōu)先權(quán),使它的詢問幀發(fā)送成功。若發(fā)送詢問幀后無反應(yīng),則認為出現(xiàn)故障。</p><p>  接收中斷超時服務(wù)程序流程圖</p><p>  圖4.3 接收中

51、斷超時服務(wù)程序流程圖</p><p>  在整個工作過程中,主機與從機不斷進行信息傳遞交換工作狀態(tài),主機將自己的狀態(tài)信息、被控對象當前狀態(tài)數(shù)據(jù)及需要備份的數(shù)據(jù)定時向從機發(fā)送。若從機在約定時間沒有收到主機發(fā)來的信息或主機報告出錯,則出現(xiàn)故障,從機置自己為主機,獲得三總線使用權(quán),主機成為從機,接收原從機發(fā)來的信息,再次啟動工作。</p><p><b>  系統(tǒng)程序</b>

52、;</p><p>  SJA1000工作程序:</p><p>  void CanInit();void CanSend(unsigned char *bufDATA,unsigned char datalen);void Port_IO_Init();void Oscillator_Init();void Init_Device(void);void WR_SJA(unsi

53、gned char sja_addr,unsigned char sja_data);unsigned char RD_SJA(unsigned char sja_addr);//******SJA1000內(nèi)部寄存器地址(初始化復(fù)位模式) PeliCAN模式的地址表.//******標準幀格式(SFF)與擴展幀格式(EFF).</p><p>  #define SJA_MOD 0  &

54、#160; /*模式寄存器 可以定義過濾模式 MOD.3=AFM 00H*/#define SJA_CMR 1      //命令寄存器#define SJA_SR    2      //狀態(tài)寄存器 #define SJA_IR    3    // 中斷標志 

55、        03#define SJA_IER 4     /*中斷允許 04H */#define SJA_BTR0 6     /*總線定時器0   06H*/#define SJA_BTR1 7     

56、 /*總線定時器1   07H*/#define SJA_OCR   8      /*輸出控制   08H*/</p><p>  #define SJA_ALC 11    // 仲裁丟失捕捉     11   

57、;        #define SJA_ECC 12       /*錯誤代碼捕捉 0CH*/#define SJA_EWLR 13     //錯誤報警限制寄存器#define SJA_RXERR 14     

58、; //錯誤計數(shù)寄存器#define SJA_TXERR 15     /*發(fā)送錯誤記數(shù) 0FH*/</p><p>  //以下為復(fù)位模式定義#define SJA_ACR0 16      /*驗收代碼 即ID ?16*/ #define SJA_ACR1 17    

59、60; /*驗收代碼 即ID   17*/#define SJA_ACR2 18      /*驗收代碼 即ID   18*/#define SJA_ACR3 19      /*驗收代碼 即ID   19*/#define SJA_AMR0 20  &

60、#160;  /*驗收屏蔽 初地址20*/ #define SJA_AMR1 21      /*驗收屏蔽 初地址21*/ #define SJA_AMR2 22      /*驗收屏蔽 初地址22*/ #define SJA_AMR3 23      /*驗收屏蔽 初地址

61、23*/</p><p>  //SJA1000內(nèi)部寄存器地址(工作模式)#define SJA_EFF 16      //RX和TX結(jié)構(gòu)信息 擴展幀/標準幀#define SJA_ID1 17      //識別碼#define SJA_ID2 18    

62、0; //識別碼#define SJA_ID3 19      //識別碼,標準幀無#define SJA_ID4 20      //識別碼,標準幀無#define SJA_D1 21 //</p><p>  #define SJA_D2 22 </p><p>

63、  #define SJA_D3 23 </p><p>  #define SJA_D4 24 </p><p>  #define SJA_D5 25 </p><p>  #define SJA_D6 26 </p><p>  #define SJA_D7 27 </p><

64、;p>  #define SJA_D8 28</p><p>  單片機程序如下:#include <c8051f340.h>#include <INTRINS.H>#include "s.h"sbit led1    = P2^0;sbit led2    = P2^1;sbit SDA&#

65、160;   = P2^2;sbit SCL    = P2^3;sbit J1     = P3^0;sbit J2     = P3^1;sbit st1    = P0^4;</p><p>  sbit ALE_CAN = P0^0;sb

66、it RD_CAN   = P0^1;sbit INT_CAN = P0^2;sbit CS_CAN   = P0^3;sbit WR_CAN   = P2^7;</p><p>  #define WriteDeviceAddress 0xa0 //地址以及讀寫方向,本設(shè)備中只有一個IIC設(shè)備地址為0#define ReadDviceAddre

67、ss 0xa1#define uchar unsigned char#define uint unsigned int#define nop _nop_ uchar c1[16]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0a,0X0b,0X0c,        0X0d,0X0e,0X0f};

68、uchar c2[16];uchar c3[8] ={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07};</p><p>  unsigned int idata MaxLenCanRxBuf=440;unsigned char xdata CanRxBuf[440];    //40個CAN幀緩沖區(qū)unsigned char idata Ca

69、nTempBuf[11];   //單個can報文的緩沖區(qū)。unsigned char idata CanTxData[8];   //CAN發(fā)送數(shù)據(jù)緩沖區(qū)unsigned char data_flag=0;</p><p>  unsigned int idata CanRxAddr=0;unsigned char CanRxcompleteFlag=0;unsi

70、gned char idata cfgbuf[32];unsigned char SendBufId[2]={0x07,0x20};</p><p>  unsigned char SendBufInfo;unsigned int xdata mSendDelay=0;</p><p>  unsigned char *h_pointer;unsigned char *l_point

71、er;unsigned char i=0;unsigned char j=0;uint LedFlag1=0;</p><p><b>  課程設(shè)計總結(jié)</b></p><p>  經(jīng)過幾天的努力,完成了CAN總線的雙機冗余系統(tǒng)的設(shè)計。過程雖是辛苦的,但從中我卻學(xué)到了很多東西。</p><p>  這次課程設(shè)計使我意識到理論與實際相結(jié)合的

72、重要,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐結(jié)合起來,從而提高自己的實際動手能力和獨立思考能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握的不夠牢固。</p><p>  鞏固了課上學(xué)習(xí)的理論知識,對于計算機匯編語言的系統(tǒng)化整體化有了更深的認識。整個設(shè)計過程最大的收獲就是意識到理論知識扎實的重要性,實踐是建立在理論之上的,只有平時掌握知識扎實,才能在實踐時熟練運用

73、,課程設(shè)計把平時所學(xué)的知識靈活運用結(jié)合起來,鍛煉我們的思維和動手能力。</p><p><b>  參考文獻</b></p><p>  [1] 馬秀娟.電工電子實踐教程[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004.157-160.</p><p>  [2] 陳正義.單片機控制實習(xí)[M].北京:人民郵電出版社,2006.3-90. <

74、/p><p>  [3] 吉雷:《Protel99從入門到精通》,西安電子科技大學(xué)出版社,2000.10</p><p>  [4] 郭永貞.電子技術(shù)試驗與課程設(shè)計指導(dǎo)模擬電路分冊[M].南京:東南大學(xué)出版社,2004.34-39.</p><p>  [5] 求是科技:《單片機典型模塊設(shè)計實例導(dǎo)航》,北京人民郵電出版社,2004.5</p><p&

75、gt;  [6] 西華大學(xué)老師.電子技術(shù)試驗指導(dǎo)書[M].成都:西華大學(xué)電工電子試驗實習(xí)中心,2009.105-188.</p><p>  [7] 褚南峰.電工技術(shù)試驗及課程設(shè)計[M].北京:中國電力出版社,2005.166-168.</p><p>  [8] 鄒季軍.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003</p><p> 

76、 [9] 陳在平.現(xiàn)場總線及工業(yè)控制網(wǎng)絡(luò)技術(shù)[M] .電子工業(yè)出版社,2003</p><p>  [10] 冷毅,李青俠,劉勝.基于無線傳感器和CAN總線的直接式輪胎壓力檢測系統(tǒng)[J].儀器儀表學(xué)報,2008,29(4):711-717</p><p>  [11] 孫立輝,原亮.單片機與嵌入式系統(tǒng)應(yīng)用合訂本(7~12)[M].2001</p><p>  [12

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論