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

下載本文檔

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

文檔簡介

1、<p>  工業(yè)控制網(wǎng)絡(luò) 課程設(shè)計(jì)(論文)</p><p>  題目:基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控儀的設(shè)計(jì) </p><p>  院(系): 電氣工程學(xué)院 </p><p>  專業(yè)班級: </p><p>  學(xué) 號(hào):

2、</p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: (簽字)</p><p>  起止時(shí)間: 2013.1.2-2013.1.11 </p><p><b>  摘 要</b></p><p>  本文針對目前舵

3、機(jī)加載系統(tǒng)油源溫度監(jiān)控的功能,設(shè)計(jì)了一種基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控系統(tǒng),實(shí)現(xiàn)了利用CAN總線對檢測數(shù)據(jù)的傳輸功能。該系統(tǒng)主要由現(xiàn)場數(shù)據(jù)采集模塊和總線發(fā)送模塊構(gòu)成?,F(xiàn)場數(shù)據(jù)的采集是以STC89C52RC單片機(jī)為核心控制單元,外接數(shù)字溫度傳感器DS18B20獲得現(xiàn)場加載系統(tǒng)油源溫度信號(hào)。通過CAN總線控制器SJA1000和CAN總線驅(qū)動(dòng)器PCA82C250將數(shù)據(jù)發(fā)送到CAN總線上,并進(jìn)行處理,決策是否啟動(dòng)風(fēng)機(jī)和電磁溢流閥為舵機(jī)

4、加載系統(tǒng)油源溫度進(jìn)行降溫。另外,本文還具有報(bào)警電路,對CAN總線也進(jìn)行光電隔離設(shè)計(jì),確保通信的安全性。</p><p>  關(guān)鍵詞:CAN總線;單片機(jī);PCA82C250;SJA1000</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>

5、;  第2章 課程設(shè)計(jì)的方案2</p><p><b>  2.1 概述2</b></p><p>  2.2 系統(tǒng)組成總體結(jié)構(gòu)2</p><p>  第3章 硬件設(shè)計(jì)4</p><p>  3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)4</p><p>  3.2 CAN通信模塊4</p>

6、<p>  3.2.1 CAN 總線控制器SJA10004</p><p>  3.2.2 光耦合器6N1376</p><p>  3.2.3 CAN 總線驅(qū)動(dòng)器PCA82C2506</p><p>  3.2.4 SJA1000與6N137和PCA82C250的連接7</p><p>  3.3 溫度傳感器模塊9&

7、lt;/p><p>  3.4 報(bào)警模塊10</p><p>  3.5 風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊10</p><p>  第4章 軟件設(shè)計(jì)12</p><p>  4.1 系統(tǒng)主程序12</p><p>  4.1.1 單片機(jī)初始化13</p><p>  4.1.2 SJA1000的初

8、始化14</p><p>  4.2 報(bào)文發(fā)送和接收子程序16</p><p>  第5章 課程設(shè)計(jì)總結(jié)18</p><p><b>  參考文獻(xiàn)19</b></p><p><b>  緒論</b></p><p>  舵機(jī)加載系統(tǒng)用于模擬舵面氣動(dòng)負(fù)載或水動(dòng)負(fù)載,電

9、液加載系統(tǒng)能夠?qū)崿F(xiàn)多種加載方式,其中舵機(jī)加載系統(tǒng)油源溫度監(jiān)控在一定范圍內(nèi)是保障系統(tǒng)穩(wěn)定運(yùn)行的必要條件。因此,舵機(jī)加載系統(tǒng)油源溫度監(jiān)控是一項(xiàng)很重要過程。</p><p>  國內(nèi)生產(chǎn)的溫度控制器,總體發(fā)展水平仍然不高,同日本、美國、德國等先進(jìn)國家相比仍然有著較大的差距。目前,我國在這方面總體水平處于20實(shí)際80年代中后期水平,為了滿足舵機(jī)加載系統(tǒng)油源溫度監(jiān)控的需求,在傳感器智能控制方案和具體應(yīng)用中做了大量的研究和可

10、行性分析,開發(fā)了一種具有智能化功能的溫度監(jiān)測系統(tǒng)。該系統(tǒng)由數(shù)據(jù)采集模塊和總線信號(hào)發(fā)送模塊組成。其中數(shù)據(jù)采集模塊采用了以單片機(jī)STC89C52RC為核心外接傳感器的結(jié)構(gòu)框架,保證了系統(tǒng)對加載系統(tǒng)油源溫度信號(hào)采集的實(shí)時(shí)性和準(zhǔn)確性。發(fā)送模塊利用總線發(fā)送器和驅(qū)動(dòng)器,將數(shù)字信號(hào)變換成CAN總線上的模擬信號(hào)進(jìn)行傳輸,從而有效的增加了傳輸距離。</p><p>  現(xiàn)場總線是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的

11、計(jì)算機(jī)局域網(wǎng)。CAN總線的全稱為 局域網(wǎng),屬于現(xiàn)場總線的一種,是一種有效支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò)。CAN總線的主要特點(diǎn)有:多主方式工作,各節(jié)點(diǎn)不分主從;采用非破壞總線仲裁,不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓(以太網(wǎng)則可能);最遠(yuǎn)通信距離可達(dá)10KM,最高通信速率可達(dá)1Mbps;采用短幀結(jié)構(gòu),硬件CRC校驗(yàn),出錯(cuò)率極低。CAN總線是目前唯一形成了國際標(biāo)準(zhǔn)的現(xiàn)場總線,被公認(rèn)為最有前途的現(xiàn)場總線之一。</p><p>&l

12、t;b>  課程設(shè)計(jì)的方案</b></p><p><b>  概述</b></p><p>  本次設(shè)計(jì)主要是綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)出基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控儀實(shí)現(xiàn)油源溫度監(jiān)控的功能。CAN總線屬于總線式串行通信網(wǎng)絡(luò),由于其采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。本次設(shè)

13、計(jì)采用總線式傳輸形式,而CAN總線具有較為先進(jìn)的傳輸協(xié)議,且穩(wěn)定性高,能夠?qū)崿F(xiàn)遠(yuǎn)距離通信的要求。本系統(tǒng)要求實(shí)現(xiàn)的技術(shù)參數(shù)為:</p><p>  1、CAN總線符合CAN2.0B規(guī)范;</p><p>  2、CAN總線通訊速率500kbit/s;</p><p>  3、CAN總線進(jìn)行光電隔離設(shè)計(jì);</p><p>  4、油溫檢測范圍0~

14、100℃,精度0.5℃;</p><p>  5、繼電器負(fù)載工作電流為500mA。</p><p><b>  系統(tǒng)組成總體結(jié)構(gòu)</b></p><p>  該系統(tǒng)主要由現(xiàn)場數(shù)據(jù)采集模塊和總線發(fā)送模塊構(gòu)成?,F(xiàn)場數(shù)據(jù)的采集是以STC89C52RC單片機(jī)為核心控制單元,外接數(shù)字溫度傳感器DS18B20,從而獲得現(xiàn)場舵機(jī)加載系統(tǒng)油源的溫度信號(hào)。通過C

15、AN總線控制器SJA1000和CAN總線驅(qū)動(dòng)器PCA82C250將數(shù)據(jù)發(fā)送到CAN總線上。在CAN總線兩端需要有120歐的終端電阻,用來抑制回路的反射信號(hào)。</p><p>  CAN節(jié)點(diǎn)由微處理器、CAN控制器SJA1000、光電耦合器6N137、CAN驅(qū)動(dòng)器PCA82C250構(gòu)成。CAN控制器SJA1000執(zhí)行在CAN規(guī)范中規(guī)定的完整的CAN協(xié)議,用于報(bào)文的緩沖和驗(yàn)收過濾,負(fù)責(zé)與微控制器進(jìn)行狀態(tài)、控制和命令等

16、信息交換;在SJA1000下層是CAN收發(fā)器PCA82C250,是CAN控制器和總線接口,用于控制從CAN控制器到總線物理層或相反的邏輯電平信號(hào),提供對總線的差動(dòng)發(fā)送和對CAN控制器差動(dòng)接收功能。</p><p>  系統(tǒng)總體框圖如圖2.1所示</p><p>  圖2.1系統(tǒng)總體框圖</p><p><b>  硬件設(shè)計(jì)</b></p&

17、gt;<p><b>  單片機(jī)最小系統(tǒng)設(shè)計(jì)</b></p><p>  本系統(tǒng)采用STC89C52RC作為控制器,其最小系統(tǒng)一般應(yīng)該包括單片機(jī)芯片、時(shí)鐘電路、復(fù)位電路等幾部分。STC89C52RC具有8KB的FlashROM,32個(gè)雙向I/O口,完全能夠滿足本設(shè)計(jì)要求。晶振電路選擇12MHZ的外部晶振源,其具有穩(wěn)定,精確地時(shí)鐘發(fā)生功能。最小系統(tǒng)原理圖如圖3.1下所示。<

18、/p><p>  圖3.1 單片機(jī)最小系統(tǒng)原理圖</p><p><b>  CAN通信模塊</b></p><p>  CAN 總線控制器SJA1000 </p><p>  SJA1000是Philips生產(chǎn)的獨(dú)立CAN總線控制器,它實(shí)現(xiàn)CAN總線物理層和數(shù)據(jù)鏈路層的所有功能。它是早期的PCA82C200的替代產(chǎn)品。它與

19、PCA82C200在管腳、電氣特性上完全兼容,不僅有和PCA82C200一樣的基本CAN(BasicCAN)工作模式,而且新增加了增強(qiáng)CAN(PeliCAN)工作模式,這種模式支持具有很多新特性的CAN2.0B協(xié)議。對于單片機(jī)來說,只要把它看成一個(gè)基本的I/O設(shè)備即可,使用非常簡單、方便。其功能框圖如圖3.2 。</p><p>  圖 3.2 SJA1000功能框圖</p><p>

20、  SJA1000的主要特性如下:</p><p> ?。?)擴(kuò)展的接受緩沖器(64字節(jié),先進(jìn)先出FIFO)。</p><p>  (2)和CAN2.0B協(xié)議兼容。</p><p> ?。?)同時(shí)支持11位和29位識(shí)別碼。</p><p> ?。?)位速率最高可達(dá)1Mbits/s。</p><p> ?。?)支持多種微

21、處理器接口。</p><p> ?。?)增強(qiáng)的溫度適應(yīng)性。</p><p>  光電耦合器6N137</p><p>  6N137光電耦合器是一款用于單通道的高速光耦合器,其內(nèi)部有一個(gè)850 nm波長AlGaAs LED和一個(gè)集成檢測器組成,其檢測器由一個(gè)光敏二極管、高增益線性運(yùn)放及一個(gè)肖特基鉗位的集電極開路的三極管組成。具有溫度、電流和電壓補(bǔ)償功能,高的輸入輸出

22、隔離,LSTTL/TTL兼容,高速(典型為10MBd),5mA的極小輸入電流。其工作原理是:   6N137的結(jié)構(gòu)原理如圖3.3所示,信號(hào)從腳2和腳3輸入,發(fā)光二極管發(fā)光,經(jīng)片內(nèi)光通道傳到光敏二極管,反向偏置的光敏管光照后導(dǎo)通,經(jīng)電流-電壓轉(zhuǎn)換后送到與門的一個(gè)輸入端,與門的另一個(gè)輸入為使能端,當(dāng)使能端為高時(shí)與門輸出高電平,經(jīng)輸出三極管反向后光電隔離器輸出低電平。當(dāng)輸入信號(hào)電流小于觸發(fā)閾值或使能端為低時(shí),輸出高電平,但

23、這個(gè)邏輯高是集電極開路的,可針對接收電路加上拉電阻或電壓調(diào)整電路。</p><p>  圖3.3 6N137結(jié)構(gòu)原理圖</p><p>  6N137特性:①轉(zhuǎn)換速率高達(dá)10MBit/s;②擺率高達(dá)10kV/us;③扇出系數(shù)為8;④邏輯電平輸出;⑤集電極開路輸出;</p><p>  CAN 總線驅(qū)動(dòng)器PCA82C250</p><p&

24、gt;  PCA82C250 收發(fā)器是協(xié)議控制器和物理傳輸線路之間的接口,它可以用高達(dá)1Mbit/s 的位速率在兩條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù),如圖3.4所示。</p><p>  圖 3.4 PCA82C250原理圖</p><p>  PCA82C250 共有三種不同的工作模式</p><p>  第一種模式是高速模式它支持最大的總線速度和或長度</

25、p><p>  第二種是斜率模式當(dāng)使用非屏蔽的總線電纜時(shí)可以考慮使用這種模式這種模式的輸出轉(zhuǎn)換速度可被故意降低以減少電磁輻射</p><p>  第三種是準(zhǔn)備模式這種模式在電池供電的應(yīng)用要求系統(tǒng)功率消耗非常低的應(yīng)用中非常有用在準(zhǔn)</p><p>  SJA1000與6N137和PCA82C250的連接</p><p>  C A N 通信模塊的硬

26、件設(shè)計(jì)如圖3.5 所示,電路主要由四部分組成,即微控制器STC 8 9 C 5 2 、獨(dú)立C A N 通信控制器SJA1000、CAN 總線收發(fā)器82C50 和高速光電耦合器6N137。SJA1000 和單片機(jī)之間的數(shù)據(jù)通信通過單片機(jī)PO 口進(jìn)行,數(shù)據(jù)接收信號(hào)采用中斷方式,以提高數(shù)據(jù)處理的實(shí)時(shí)性。CAN控制器SJA1000通過總線驅(qū)動(dòng)器PCA82C250連接在物理總線上。PCA820C250 器件提供對總線的差動(dòng)發(fā)送能力和CAN 控制器

27、的差動(dòng)接收能力。SJA1000 的TXO和RXO通過高速光耦6N137 與82C250 相連,實(shí)現(xiàn)了收發(fā)器與控制器之間的電氣隔離,保護(hù)智能節(jié)點(diǎn)核心電路工作安全,并實(shí)現(xiàn)了總線上各C A N 節(jié)點(diǎn)間的電氣隔離??稍诳偩€入口處并接雙向穩(wěn)壓管,限制線路上可能出現(xiàn)的短時(shí)尖峰過電壓,增加共模抑制線圈,以消除共模信號(hào)的干擾。信號(hào)傳輸?shù)綄?dǎo)線的站點(diǎn)時(shí),會(huì)發(fā)生反射,干擾正常信號(hào)的傳輸,可在CAN 總線兩端并接2 個(gè)1 2 0 Ω的電阻,起到匹配總線阻抗

28、和消除反射的雙重作用。</p><p>  圖3.5 CAN總線通信模塊電路</p><p><b>  溫度傳感器模塊</b></p><p>  系統(tǒng)采用由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,它具有微型化、低功耗、抗干擾能力強(qiáng),易配處理器而且CPU只需一根端口線就能與DS18B20通信等優(yōu)點(diǎn),它具有3引腳T0-9

29、2小體積封裝形式,溫度測量范圍為-55攝氏度到125攝氏度,可以滿足本次設(shè)計(jì)0攝氏度到100攝氏度的要求。它主要有兩種工作方式:寄生電源工作方式和外接電源工作方式。本系統(tǒng)采用外接電源方式。其與單片機(jī)的連接如圖3.6所示。</p><p>  圖 3.6 溫度模塊電路</p><p><b>  報(bào)警模塊</b></p><p>  報(bào)警功能是現(xiàn)

30、場的舵機(jī)加載系統(tǒng)油源溫度超過預(yù)定的報(bào)警限額時(shí),節(jié)點(diǎn)控制器就必須能夠及時(shí)地進(jìn)行報(bào)警。如圖3.7是一個(gè)簡單實(shí)用的蜂鳴器報(bào)警電路。當(dāng)舵機(jī)加載系統(tǒng)油源溫度超過預(yù)定報(bào)警限額時(shí)單片機(jī)P1.0口將給出高電平,就能驅(qū)動(dòng)蜂鳴器發(fā)出警報(bào)。</p><p>  圖3.7 報(bào)警模塊電路</p><p>  風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊</p><p>  固態(tài)繼電器(SOLIDSTATE RE

31、LAYS),簡寫成“SSR”,是一種全部由固態(tài)電子元件組成的新型無觸點(diǎn)開關(guān)器件,它利用電子元件(如開關(guān)三極管、雙向可控硅等半導(dǎo)體器件)的開關(guān)特性,可達(dá)到無觸點(diǎn)無火花地接通和斷開電路的目的,因此又被稱為“無觸點(diǎn)開關(guān)”,它問世于70年代,由于它的無觸點(diǎn)工作特性,使其在許多領(lǐng)域的電控及計(jì)算機(jī)控制方面得到日益廣范的應(yīng)用。</p><p>  本次設(shè)計(jì)中當(dāng)現(xiàn)場的舵機(jī)加載系統(tǒng)油源溫度超過預(yù)定的報(bào)警限額時(shí),由固態(tài)繼電器來驅(qū)

32、動(dòng)風(fēng)機(jī)和電磁溢流閥工作冷卻油溫。其原理如圖3.8所示。</p><p>  圖3,.8風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊電路</p><p><b>  設(shè)計(jì)總電路圖</b></p><p>  本次設(shè)計(jì)的總電路圖如圖3.9所示。</p><p>  圖3.9 設(shè)計(jì)總電路圖</p><p><b>

33、;  軟件設(shè)計(jì)</b></p><p><b>  CAN總線協(xié)議</b></p><p>  參照ISO\OSI 標(biāo)準(zhǔn)模型,CAN分為數(shù)據(jù)鏈路層和物理層。而數(shù)據(jù)鏈路層又包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC。</p><p>  邏輯鏈路子層LLC的主要共恩呢該是,對總線上傳送的報(bào)文實(shí)行接收濾波,判斷總線上傳送的報(bào)文是

34、否與本節(jié)點(diǎn)有關(guān),哪些報(bào)文應(yīng)該為本節(jié)點(diǎn)所接收;對報(bào)文的接收予以確認(rèn);為數(shù)據(jù)傳送和遠(yuǎn)程數(shù)據(jù)請求提供服務(wù);當(dāng)丟失仲裁或被出錯(cuò)干擾時(shí),邏輯鏈路子層具有自動(dòng)重發(fā)的恢復(fù)管理功能;當(dāng)收發(fā)器出現(xiàn)超載,要求推遲一下數(shù)據(jù)幀或遠(yuǎn)程幀時(shí),則通過邏輯子層發(fā)送超載幀,一推遲接受下一數(shù)據(jù)幀。</p><p>  MAC子層是CAN協(xié)議的核心。它負(fù)責(zé)執(zhí)行總線仲裁、報(bào)文成幀、出錯(cuò)檢測、錯(cuò)誤標(biāo)定等傳輸控制規(guī)則。MAC子層要為開始一次新的發(fā)送確定總線

35、是否可占用,在確認(rèn)總線空閑后開始發(fā)送。在丟失仲裁時(shí)退出仲裁,轉(zhuǎn)入接收方式。對發(fā)送數(shù)據(jù)實(shí)行串行比,對接收數(shù)據(jù)實(shí)行反串行比。完成CRC校驗(yàn)和應(yīng)答校驗(yàn),發(fā)送出錯(cuò)幀。確認(rèn)超載條件,激活并發(fā)送超載幀。添加或卸除起始位、遠(yuǎn)程傳送請求、保留位、CRC校驗(yàn)和應(yīng)答碼等,即完成報(bào)文的打包和拆包。</p><p>  通信是通過以下5 種類型的幀進(jìn)行的。</p><p><b>  ? 數(shù)據(jù)幀<

36、/b></p><p><b>  ? 遙控幀</b></p><p><b>  ? 錯(cuò)誤幀</b></p><p><b>  ? 過載幀</b></p><p><b>  ? 幀間隔</b></p><p>  另外,

37、數(shù)據(jù)幀和遙控幀有標(biāo)準(zhǔn)格式和擴(kuò)展格式兩種格式。標(biāo)準(zhǔn)格式有11 個(gè)位的標(biāo)識(shí)符(Identifier: 以下稱ID),</p><p>  擴(kuò)展格式有29 個(gè)位的ID。</p><p><b>  各種幀的用途如下</b></p><p>  數(shù)據(jù)幀 用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀。</p><p>  遙控幀 用于接收單

38、元向具有相同ID 的發(fā)送單元請求數(shù)據(jù)的幀。</p><p>  錯(cuò)誤幀 用于當(dāng)檢測出錯(cuò)誤時(shí)向其它單元通知錯(cuò)誤的幀。</p><p>  過載幀 用于接收單元通知其尚未做好接收準(zhǔn)備的幀。</p><p>  幀間隔 用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開來的幀。</p><p><b>  數(shù)據(jù)包機(jī)構(gòu)設(shè)計(jì)</b></p

39、><p>  數(shù)據(jù)包結(jié)構(gòu)設(shè)計(jì)提高系統(tǒng)通信安全性的另一個(gè)方面是設(shè)計(jì)一個(gè)合理的傳輸數(shù)據(jù)包?,F(xiàn)今常用的數(shù)據(jù)包一般有兩種形式,即基于字符和基于長度。</p><p>  基于長度的數(shù)據(jù)幀如圖4.3所示,是依據(jù)幀起始符和幀長度來實(shí)現(xiàn)接收的。即當(dāng)出現(xiàn)一個(gè)幀起始字符時(shí),就表示可以接收幀數(shù)據(jù),并根據(jù)幀長度來確定接下要接收多少字節(jié)的幀數(shù)據(jù)/命令,當(dāng)接收完畢規(guī)定的長度字節(jié)就意味著一幀數(shù)據(jù)接收完畢。這樣在幀長度字節(jié)

40、之后到幀接收結(jié)束所接收到的所有字節(jié)就都是數(shù)據(jù)而不會(huì)是控制字符。</p><p>  圖4.3基于長度的幀格式</p><p>  本系統(tǒng)中,我們使用了基于字符的幀格式。基于字符的數(shù)據(jù)幀如圖4.4所示,是利用特定的字符來判斷幀傳輸?shù)钠鹗己徒Y(jié)束。幀起始符和停止符之間的字節(jié)則為數(shù)據(jù)。在此就有一個(gè)問題需要解決,即在幀數(shù)據(jù)部分有可能會(huì)出現(xiàn)幀控制字符,如幀起始符或幀停止符。這樣就會(huì)造成幀錯(cuò)誤。解決這個(gè)

41、問題有兩種方案:一個(gè)是在幀數(shù)據(jù)中的控制字符使用轉(zhuǎn)義字符的機(jī)制。即當(dāng)在幀數(shù)據(jù)段出現(xiàn)一個(gè)與控制字符相同的字符時(shí),就在該字符前加一個(gè)轉(zhuǎn)義字符,以此說明其后的字符是數(shù)據(jù)字符而不是控制字符;另一種解決方案是將幀數(shù)據(jù)段單字節(jié)十六進(jìn)制字符轉(zhuǎn)換成兩字節(jié)ASCII碼。例如OxOl轉(zhuǎn)換成Ox30和Ox31。這樣就把所有的幀數(shù)據(jù)段字符限定在O~9,A~F的ASCII碼范圍內(nèi),也能有效的避開控制字符。雖然后一種方法增加了系統(tǒng)的開銷,但是實(shí)現(xiàn)起來非常方便,所以我

42、們選擇了此種解決方案。</p><p>  圖4.4 基于字符的數(shù)據(jù)幀格式</p><p><b>  系統(tǒng)主程序</b></p><p>  檢測點(diǎn)軟件方面主要實(shí)現(xiàn)兩方面的功能:一是檢測現(xiàn)場的舵機(jī)加載系統(tǒng)油源溫度,并由單片機(jī)處理是否啟動(dòng)風(fēng)機(jī)和電磁溢流閥;二是與主節(jié)點(diǎn)通信,響應(yīng)其配置或查詢命令并反饋報(bào)文。檢測點(diǎn)的主程序的功能主要包括:單片機(jī)初始

43、化;CAN控制器SJA1000的初始化;變量的初始化;溫度檢測;報(bào)文處理等。主程序流程圖如圖4.1所示。</p><p>  圖4.1 主程序流程圖</p><p>  在通信系統(tǒng)中,各個(gè)通信節(jié)點(diǎn)之問是相互獨(dú)立的,因此它們之間的數(shù)據(jù)傳輸就必然存在著不確定因素。一個(gè)合理的通信流程就能夠在很大程度上克服這種不確定因素。我們知道,當(dāng)通信過程開始前如果能夠確定通信雙方已經(jīng)成功的建立了連接,在這種情

44、況下,通信雙方數(shù)據(jù)傳輸就比較安全。對于一般的系統(tǒng)而言,通過良好的通信流程來提高通信成功率是一種經(jīng)濟(jì)有效的手段。針對舵機(jī)加載系統(tǒng)的油源溫度監(jiān)控系統(tǒng),我設(shè)計(jì)了如下的通信流程。如圖4.2所示。</p><p><b>  圖4.2 通信流程</b></p><p>  數(shù)據(jù)發(fā)送流程中,數(shù)據(jù)幀發(fā)送與該幀的應(yīng)答幀處理分離開來。當(dāng)發(fā)送一個(gè)數(shù)據(jù)幀時(shí),發(fā)送程序就根據(jù)該幀的類型置位該數(shù)

45、據(jù)幀已發(fā)送標(biāo)志,啟動(dòng)應(yīng)用程序等待該數(shù)據(jù)幀的應(yīng)答幀.即把數(shù)據(jù)的發(fā)送和確認(rèn)并發(fā)處理,使得通過更加高效和安全。數(shù)據(jù)接收過程相對比較簡單,可以讓接收驅(qū)動(dòng)將接收到的數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū),應(yīng)用程序從數(shù)據(jù)緩沖區(qū)中捕獲數(shù)據(jù)幀,并進(jìn)行相應(yīng)的處理.這種方式下,數(shù)據(jù)接收過程中,緩沖區(qū)的大小將是直接影響數(shù)據(jù)接收安全性的主要因素.</p><p><b>  單片機(jī)的初始化</b></p><p&g

46、t;  TMOD=0X20;</p><p>  TH1=0Xfd; </p><p><b>  TL1=0xfd;</b></p><p>  PCON=0x00;</p><p><b>  TR1=1;</b></p><p>  SCON=0x50;</p&g

47、t;<p><b>  EA=0;</b></p><p><b>  模數(shù)轉(zhuǎn)換子程序:</b></p><p>  MOV R0,#30H </p><p>  MOV R2, #08H </p><p>  SET

48、B IT0 </p><p>  SETB EA </p><p>  SETB EX0 </p><p>  MOV DPTR,#FEF8H </p><p>  LOOP

49、: MOVX @DPTR, A </p><p>  HERE: SJMP HERE </p><p><b>  中斷服務(wù)程序:</b></p><p>  MOVX A, @DPTR </p><p>  MOV @R0, A

50、 </p><p>  INC DPTR </p><p>  INC RO </p><p>  DJNZ R2, INT0 </p><p>  CLR EA

51、 </p><p>  CLR EX0 </p><p>  RETI </p><p>  INT0: MOVX @DPTR, A </p><p>  RE

52、TI </p><p><b>  判斷比較子程序:</b></p><p>  CLR C </p><p>  MOV A, 30H </p><p>  SU

53、BB A,#90H </p><p>  JNC BAOJIN </p><p>  發(fā)送 AT 命令子程序:</p><p>  for (i=0;i<4;i++)</p><p>  {hh=&doc0[0]

54、 </p><p>  SBUF=doc0[i];</p><p>  while(TI==0);TI=0;</p><p><b>  delay();</b></p><p>  for (j=0;j<4;j++)</p><p>  { while(RI==0

55、);RI=0 </p><p>  mnk[j]=SBUF;</p><p>  if ((mnk[j]^0x4b)==0)</p><p>  { hh=mnk[j];</p><p><b>  break;}</b></p><p>  SJA10

56、00的初始化</p><p>  void SJA_write(unsigned char trr_address,unsigned char wr_data)</p><p><b>  {</b></p><p>  SJA_PCAN_address=fr_address;</p><p>  *SJA_PCAN_a

57、ddress=vrr data;</p><p><b>  }</b></p><p>  unsigned char SJA_read(unsigned char re address)</p><p><b>  {</b></p><p>  SJA_PCAN_address=re_addr

58、ess:</p><p>  return(*SJA PCAN__address):</p><p><b>  }</b></p><p>  unsigned char SJA—test—interface(unsigned char test_value)</p><p><b>  {</b>

59、;</p><p>  unsigned char status 2 0:</p><p>  bit bdata bit error—flag=1:</p><p>  unsigned char data error_count</p><p><b>  2 Ox20;</b></p><p&g

60、t;  while(_一error_count){</p><p>  SJA_write(REG_TEST,test_value):</p><p>  if(SJA_read(REG_TEST)==test_value){</p><p>  SJh_write(REG_TEST,Ox00):</p><p>  bi t_error—f

61、lag=0:</p><p><b>  break:</b></p><p><b>  }</b></p><p>  if(bit_error_flag)</p><p>  status=CAN_INTERFACE—ERR;</p><p><b>  el

62、se</b></p><p>  status=CAN_INTERFACE_OK;</p><p>  return(status)</p><p>  unsigned char SJA_entry reset_mode(void)</p><p><b>  {</b></p><p&

63、gt;  unsigned char status=O:</p><p>  bit bdata bit_error_flag=1:</p><p>  unsigned char error_count=0x20</p><p>  while(一error_count){</p><p>  SJA_'rrite(REG_MOOE

64、,Ox01):</p><p>  if(SJA read(REG_MODE)&Ox01—0x01){</p><p>  bit_error_flag=0:</p><p><b>  break:</b></p><p><b>  }</b></p><p>  if(

65、bit_error_flag)</p><p>  status=CAN F24TRESET._ERR;</p><p><b>  else</b></p><p>  status=CAN_ENTRESET_OK;</p><p>  return(status):</p><p>  uns

66、igned char SJ^_quit_reset_mode(void)</p><p><b>  {</b></p><p>  unsigned char status=O:</p><p>  bit bdata bit_error_flag=1:</p><p>  unsigned char error_co

67、unt=0x20:</p><p>  whi le(_一error_count){</p><p>  SJ^jrite(REG_MODE,Ox00):</p><p>  if((SJA_read(REG_MODE)&Ox01)==Ox00){</p><p>  bi t—error—flag=O:</p><

68、;p><b>  break:</b></p><p><b>  )</b></p><p>  if(bit_error_flag)</p><p>  status=CAN_ENTRESET_ERR:</p><p><b>  else</b></p>

69、<p>  status=CAN ENTRESET OK:</p><p>  return(status):</p><p>  bit SJAest—rst—mode(void)</p><p><b>  {</b></p><p>  bit bdata bit—sja_flag;</p>

70、;<p>  if((SJA_read(REG MODE)&Ox01)一Ox01)</p><p>  bit—sja_flag=0:</p><p><b>  else</b></p><p>  bit—sja flag=1:</p><p>  return(bit—sja_flag)<

71、;/p><p><b>  課程設(shè)計(jì)總結(jié)</b></p><p>  本次課程設(shè)計(jì)的基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控儀設(shè)計(jì)加深了我對CAN總線的認(rèn)識(shí)。在課程設(shè)計(jì)過程中,我查詢了很多CAN總線、傳感器和驅(qū)動(dòng)電路的相關(guān)資料,獲得了很多CAN總線設(shè)計(jì)的方法,彌補(bǔ)了在學(xué)習(xí)CAN總線過程中的不足。在選擇溫度傳感器和固態(tài)繼電器的過程中,通過網(wǎng)絡(luò),能夠十分方便的將器件資料下載下

72、來,另外還能搜到很多相關(guān)應(yīng)用的實(shí)例,這為今后的電子設(shè)計(jì)生涯積累了有用的信息。本次的設(shè)計(jì)運(yùn)用到了很多學(xué)到的知識(shí),基礎(chǔ)是根本的,在設(shè)計(jì)過程中難免會(huì)遇到這樣那樣的自己無法解決的問題,這時(shí)老師、同學(xué)就成立最完美的求助對象。在老師的建議下,一切問題都變成了不是問題。</p><p>  雖然這次的設(shè)計(jì)只屬于課程設(shè)計(jì),但它的基本思想將會(huì)適用于以后得各種設(shè)計(jì)。還有最重要的一點(diǎn),就是不論你做什么,態(tài)度是決定一切的關(guān)鍵,如果只是敷

73、衍了事那萬萬不可的,對待任何一件事都要認(rèn)真去思考,用思想來完成每一件事。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 司士輝.單片機(jī)應(yīng)用 [M].化學(xué)工業(yè)出版社,2003.</p><p>  [2] 彭軍.傳感器與檢測技術(shù)[M].西安電子科技大學(xué)出版社,2003.</p><p>  [3

74、] 陳杰,數(shù)字電子技術(shù) [M].北京:高等教育出版社,2003.</p><p>  [4] 胡乾斌,李光斌,李玲.單片機(jī)原理及仿真[M].華中科技大學(xué)出版社,2002,23-39.</p><p>  [5] 郁有文.CAN總線設(shè)計(jì)實(shí)例[M].西安:西安電子科技大學(xué)出版社,2003.</p><p>  [6] 樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京航

75、空航天大學(xué)出版社,2003.</p><p>  [7] 朱定華,戴汝平.現(xiàn)場總線及工業(yè)控制網(wǎng)絡(luò)[M].電子工業(yè)出版社,2003.</p><p>  [8] 盧麗君.現(xiàn)場總線技術(shù)及應(yīng)用[J] 儀器儀表與分析監(jiān)測,2007(04):5-7.</p><p>  [9] 張青春.基于單片機(jī)的CAN總線設(shè)計(jì).哈淮陰工學(xué)院碩士學(xué)位論文.2010:20-25</p&g

溫馨提示

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

最新文檔

評論

0/150

提交評論