版權(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> 學 號: </p>
2、<p> 學生姓名: </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è)計是綜合所學知識,出基于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> (1)以單片機AT89C51為主控制器,與SJA1000進行信息傳遞,并進行主控制。</p><p> ?。?)CAN總線控制器為SJA1000,實現(xiàn)單片機與總線之間的數(shù)據(jù)傳輸。</p><p>
17、 (3)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> (3)管腳說明:</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> ?。?)位速率可達到1Mbps;</p><p> ?。?)24MHz時鐘頻率;</p><p> ?。?)可與不同微處理器連接;</p><p> ?。?)可編程CAN 輸出驅(qū)動配置;</p><p> (8)超寬的溫度范圍(-40至+125℃);</p><
39、p> ?。?)可讀/寫訪問的錯誤計數(shù)器;</p><p> ?。?0)可編程的錯誤報警限制;</p><p> (11)錯誤碼寄存器;</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è)計。過程雖是辛苦的,但從中我卻學到了很多東西。</p><p> 這次課程設(shè)計使我意識到理論與實際相結(jié)合的
72、重要,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐結(jié)合起來,從而提高自己的實際動手能力和獨立思考能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握的不夠牢固。</p><p> 鞏固了課上學習的理論知識,對于計算機匯編語言的系統(tǒng)化整體化有了更深的認識。整個設(shè)計過程最大的收獲就是意識到理論知識扎實的重要性,實踐是建立在理論之上的,只有平時掌握知識扎實,才能在實踐時熟練運用
73、,課程設(shè)計把平時所學的知識靈活運用結(jié)合起來,鍛煉我們的思維和動手能力。</p><p><b> 參考文獻</b></p><p> [1] 馬秀娟.電工電子實踐教程[M].哈爾濱:哈爾濱工業(yè)大學出版社,2004.157-160.</p><p> [2] 陳正義.單片機控制實習[M].北京:人民郵電出版社,2006.3-90. <
74、/p><p> [3] 吉雷:《Protel99從入門到精通》,西安電子科技大學出版社,2000.10</p><p> [4] 郭永貞.電子技術(shù)試驗與課程設(shè)計指導(dǎo)模擬電路分冊[M].南京:東南大學出版社,2004.34-39.</p><p> [5] 求是科技:《單片機典型模塊設(shè)計實例導(dǎo)航》,北京人民郵電出版社,2004.5</p><p&
75、gt; [6] 西華大學老師.電子技術(shù)試驗指導(dǎo)書[M].成都:西華大學電工電子試驗實習中心,2009.105-188.</p><p> [7] 褚南峰.電工技術(shù)試驗及課程設(shè)計[M].北京:中國電力出版社,2005.166-168.</p><p> [8] 鄒季軍.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學出版社,2003</p><p>
76、 [9] 陳在平.現(xiàn)場總線及工業(yè)控制網(wǎng)絡(luò)技術(shù)[M] .電子工業(yè)出版社,2003</p><p> [10] 冷毅,李青俠,劉勝.基于無線傳感器和CAN總線的直接式輪胎壓力檢測系統(tǒng)[J].儀器儀表學報,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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp與can總線通信系統(tǒng)設(shè)計-工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(論文)
- 工業(yè)控制網(wǎng)絡(luò)課程設(shè)計--基于can總線的舵機加載系統(tǒng)油源溫度監(jiān)控儀的設(shè)計
- 工業(yè)控制網(wǎng)絡(luò)課程設(shè)計論文_基于can總線的大棚溫濕度檢測節(jié)點設(shè)計__190191921
- 雙機通訊課程設(shè)計報告--雙機通信的設(shè)計
- 雙機通信課程設(shè)計
- 課程設(shè)計報告--雙機參數(shù)采集系統(tǒng)設(shè)計
- 雙機通信課程設(shè)計
- 雙機通信課程設(shè)計
- 基于CAN總線的工業(yè)控制系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于CAN總線的網(wǎng)絡(luò)測控系統(tǒng)設(shè)計.pdf
- 課程設(shè)計--單片機雙機通信系統(tǒng)
- 單片機雙機通信系統(tǒng)-課程設(shè)計
- 雙機通信系統(tǒng)單片機課程設(shè)計
- 雙機串行通信課程設(shè)計
- 基于CAN總線的雙機并行鐵路計軸系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于can總線的電液比例閥控制器的設(shè)計課程設(shè)計論文
- 雙機通信課程設(shè)計報告
- 基于CAN總線的遠程控制網(wǎng)絡(luò)的設(shè)計.pdf
- 基于CAN總線的工業(yè)現(xiàn)場數(shù)據(jù)采集系統(tǒng)設(shè)計.pdf
- 課程設(shè)計 雙機串行通信的實現(xiàn)
評論
0/150
提交評論