工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(jì)_第1頁(yè)
工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(jì)_第2頁(yè)
工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(jì)_第3頁(yè)
工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(jì)_第4頁(yè)
工業(yè)控制網(wǎng)絡(luò)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、遼 寧 工 業(yè) 大 學(xué) 工業(yè)控制網(wǎng)絡(luò) 課程設(shè)計(jì)(論文)題目:基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控儀的設(shè)計(jì) 院(系): 電氣工程學(xué)院 專業(yè)班級(jí): 自動(dòng)化093 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: (簽字)起止時(shí)間: 課程設(shè)計(jì)(論文)報(bào)告的內(nèi)容及其文本格式1、課程設(shè)計(jì)(論文)報(bào)告要求用A4紙排版,單面打印,并裝訂成冊(cè),內(nèi)容包括:封面(包括題目、院系、專業(yè)班級(jí)、學(xué)生學(xué)號(hào)、學(xué)生姓名、指導(dǎo)教師姓名、起止時(shí)間等)設(shè)計(jì)(論文)任務(wù)及評(píng)語(yǔ)中文摘要 (黑體小二,居中,不少于200字)目錄正文(設(shè)計(jì)計(jì)算說(shuō)明書、研究報(bào)告、研究論文等)參考文獻(xiàn)2、課程設(shè)計(jì)(論文)正文參考字?jǐn)?shù):2000字周數(shù)。3、封面格式4、設(shè)計(jì)(

2、論文)任務(wù)及評(píng)語(yǔ)格式5、目錄格式標(biāo)題“目錄”( 小二號(hào)、黑體、居中)章標(biāo)題(四號(hào)字、黑體、居左)節(jié)標(biāo)題(小四號(hào)字、宋體)頁(yè)碼(小四號(hào)字、宋體、居右)6、正文格式頁(yè)邊距:上2.5cm,下2.5cm,左3cm,右2.5cm,頁(yè)眉1.5cm,頁(yè)腳1.75cm,左側(cè)裝訂;字體:一級(jí)標(biāo)題,小二號(hào)字、黑體、居中;二級(jí)標(biāo)題,黑體小三、居左;三級(jí)標(biāo)題,黑體四號(hào);正文文字,小四號(hào)字、宋體;行距:20磅行距;頁(yè)碼:底部居中,五號(hào)、黑體;7、參考文獻(xiàn)格式標(biāo)題:“參考文獻(xiàn)”,小二,黑體,居中。示例:(五號(hào)宋體)期刊類:序號(hào)作者1,作者2,作者n.文章名.期刊名(版本).出版年,卷次(期次):頁(yè)次.圖書類:序號(hào)作者1,

3、作者2,作者n.書名.版本.出版地:出版社,出版年:頁(yè)次.課程設(shè)計(jì)(論文)任務(wù)及評(píng)語(yǔ)院(系):電氣工程學(xué)院 教研室: 學(xué) 號(hào)學(xué)生姓名專業(yè)班級(jí)課程設(shè)計(jì)(論文)題目課程設(shè)計(jì)(論文)任務(wù)課題完成的功能、設(shè)計(jì)任務(wù)及要求、技術(shù)參數(shù)進(jìn)度計(jì)劃指導(dǎo)教師評(píng)語(yǔ)及成績(jī)平時(shí): 論文質(zhì)量: 答辯: 總成績(jī): 指導(dǎo)教師簽字: 年 月 日注:成績(jī):平時(shí)20% 論文質(zhì)量60% 答辯20% 以百分制計(jì)算摘 要本文針對(duì)目前舵機(jī)加載系統(tǒng)油源溫度監(jiān)控的功能,設(shè)計(jì)了一種基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控系統(tǒng),實(shí)現(xiàn)了利用CAN總線對(duì)檢測(cè)數(shù)據(jù)的傳輸功能。該系統(tǒng)主要由現(xiàn)場(chǎng)數(shù)據(jù)采集模塊和總線發(fā)送模塊構(gòu)成。現(xiàn)場(chǎng)數(shù)據(jù)的采集是以STC89C5

4、2RC單片機(jī)為核心控制單元,外接數(shù)字溫度傳感器DS18B20獲得現(xiàn)場(chǎng)加載系統(tǒng)油源溫度信號(hào)。通過(guò)CAN總線控制器SJA1000和CAN總線驅(qū)動(dòng)器PCA82C250將數(shù)據(jù)發(fā)送到CAN總線上,并進(jìn)行處理,決策是否啟動(dòng)風(fēng)機(jī)和電磁溢流閥為舵機(jī)加載系統(tǒng)油源溫度進(jìn)行降溫。另外,本文還具有報(bào)警電路,對(duì)CAN總線也進(jìn)行光電隔離設(shè)計(jì),確保通信的安全性。關(guān)鍵詞:CAN總線;單片機(jī);PCA82C250;SJA1000目 錄第1章 緒論1第2章 課程設(shè)計(jì)的方案22.1 概述22.2 系統(tǒng)組成總體結(jié)構(gòu)2第3章 硬件設(shè)計(jì)43.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)43.2 CAN通信模塊43.2.1 CAN 總線控制器SJA10004 光

5、耦合器6N13763.2.3 CAN 總線驅(qū)動(dòng)器PCA82C25063.2.4 SJA1000與6N137和PCA82C250的連接73.3 溫度傳感器模塊93.4 報(bào)警模塊103.5 風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊10第4章 軟件設(shè)計(jì)124.1 系統(tǒng)主程序12 單片機(jī)初始化134.1.2 SJA1000的初始化144.2 報(bào)文發(fā)送和接收子程序16第5章 課程設(shè)計(jì)總結(jié)18參考文獻(xiàn)19第1章 緒論舵機(jī)加載系統(tǒng)用于模擬舵面氣動(dòng)負(fù)載或水動(dòng)負(fù)載,電液加載系統(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)很重要過(guò)程。國(guó)內(nèi)生產(chǎn)的溫

6、度控制器,總體發(fā)展水平仍然不高,同日本、美國(guó)、德國(guó)等先進(jìn)國(guó)家相比仍然有著較大的差距。目前,我國(guó)在這方面總體水平處于20實(shí)際80年代中后期水平,為了滿足舵機(jī)加載系統(tǒng)油源溫度監(jiān)控的需求,在傳感器智能控制方案和具體應(yīng)用中做了大量的研究和可行性分析,開(kāi)發(fā)了一種具有智能化功能的溫度監(jiān)測(cè)系統(tǒng)。該系統(tǒng)由數(shù)據(jù)采集模塊和總線信號(hào)發(fā)送模塊組成。其中數(shù)據(jù)采集模塊采用了以單片機(jī)STC89C52RC為核心外接傳感器的結(jié)構(gòu)框架,保證了系統(tǒng)對(duì)加載系統(tǒng)油源溫度信號(hào)采集的實(shí)時(shí)性和準(zhǔn)確性。發(fā)送模塊利用總線發(fā)送器和驅(qū)動(dòng)器,將數(shù)字信號(hào)變換成CAN總線上的模擬信號(hào)進(jìn)行傳輸,從而有效的增加了傳輸距離?,F(xiàn)場(chǎng)總線是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱

7、點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)。CAN總線的全稱為 局域網(wǎng),屬于現(xiàn)場(chǎng)總線的一種,是一種有效支持分布式控制和實(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總線是目前唯一形成了國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,被公認(rèn)為最有前途的現(xiàn)場(chǎng)總線之一。第2章 課程設(shè)計(jì)的方案2.1 概述本次設(shè)計(jì)主要是綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)出基于CAN總線的舵機(jī)加載系統(tǒng)油源溫度監(jiān)控儀實(shí)現(xiàn)油源溫度監(jiān)控的功能。CAN總線屬于總線式串行通信網(wǎng)絡(luò),由于其采

8、用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。本次設(shè)計(jì)采用總線式傳輸形式,而CAN總線具有較為先進(jìn)的傳輸協(xié)議,且穩(wěn)定性高,能夠?qū)崿F(xiàn)遠(yuǎn)距離通信的要求。本系統(tǒng)要求實(shí)現(xiàn)的技術(shù)參數(shù)為:1、CAN總線符合CAN2.0B規(guī)范;2、CAN總線通訊速率500kbit/s;3、CAN總線進(jìn)行光電隔離設(shè)計(jì);4、油溫檢測(cè)范圍0100,精度0.5;5、繼電器負(fù)載工作電流為500mA。2.2 系統(tǒng)組成總體結(jié)構(gòu)該系統(tǒng)主要由現(xiàn)場(chǎng)數(shù)據(jù)采集模塊和總線發(fā)送模塊構(gòu)成?,F(xiàn)場(chǎng)數(shù)據(jù)的采集是以STC89C52RC單片機(jī)為核心控制單元,外接數(shù)字溫度傳感器DS18B20,從而獲得現(xiàn)場(chǎng)舵機(jī)

9、加載系統(tǒng)油源的溫度信號(hào)。通過(guò)CAN總線控制器SJA1000和CAN總線驅(qū)動(dòng)器PCA82C250將數(shù)據(jù)發(fā)送到CAN總線上。在CAN總線兩端需要有120歐的終端電阻,用來(lái)抑制回路的反射信號(hào)。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)收過(guò)濾,負(fù)責(zé)與微控制器進(jìn)行狀態(tài)、控制和命令等信息交換;在SJA1000下層是CAN收發(fā)器PCA82C250,是CAN控制器和總線接口,用于控制從CAN控制器到總線物理層或相反的邏輯電平信號(hào),提供對(duì)總線的差動(dòng)發(fā)送和對(duì)CAN

10、控制器差動(dòng)接收功能。系統(tǒng)總體框圖如圖2.1所示溫度傳感器DS18B20CPUSTC89C52RC時(shí)鐘電路復(fù)位電路CAN總線控制器SJA1000報(bào)警電路CAN收發(fā)器120歐PC機(jī)繼電器驅(qū)動(dòng)電路光電耦合器圖2.1系統(tǒng)總體框圖第3章 硬件設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)本系統(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下所示。圖3.1 單片機(jī)最小系統(tǒng)原理圖3.2 C

11、AN通信模塊3.2.1 CAN 總線控制器SJA1000 SJA1000是Philips生產(chǎn)的獨(dú)立CAN總線控制器,它實(shí)現(xiàn)CAN總線物理層和數(shù)據(jù)鏈路層的所有功能。它是早期的PCA82C200的替代產(chǎn)品。它與PCA82C200在管腳、電氣特性上完全兼容,不僅有和PCA82C200一樣的基本CAN(BasicCAN)工作模式,而且新增加了增強(qiáng)CAN(PeliCAN)工作模式,這種模式支持具有很多新特性的CAN2.0B協(xié)議。對(duì)于單片機(jī)來(lái)說(shuō),只要把它看成一個(gè)基本的I/O設(shè)備即可,使用非常簡(jiǎn)單、方便。其功能框圖如圖3.2 。圖 3.2 SJA1000功能框圖SJA1000的主要特性如下:(1)擴(kuò)展的接受

12、緩沖器(64字節(jié),先進(jìn)先出FIFO)。(2)和CAN2.0B協(xié)議兼容。(3)同時(shí)支持11位和29位識(shí)別碼。(4)位速率最高可達(dá)1Mbits/s。(5)支持多種微處理器接口。(6)增強(qiáng)的溫度適應(yīng)性。3.2.2 光電耦合器6N1376N137光電耦合器是一款用于單通道的高速光耦合器,其內(nèi)部有一個(gè)850 nm波長(zhǎng)AlGaAs LED和一個(gè)集成檢測(cè)器組成,其檢測(cè)器由一個(gè)光敏二極管、高增益線性運(yùn)放及一個(gè)肖特基鉗位的集電極開(kāi)路的三極管組成。具有溫度、電流和電壓補(bǔ)償功能,高的輸入輸出隔離,LSTTL/TTL兼容,高速(典型為10MBd),5mA的極小輸入電流。其工作原理是:   6N13

13、7的結(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í),輸出高電平,但這個(gè)邏輯高是集電極開(kāi)路的,可針對(duì)接收電路加上拉電阻或電壓調(diào)整電路。圖3.3 6N137結(jié)構(gòu)原理圖6N137特性:轉(zhuǎn)換速率高達(dá)10MBit/s;擺率高達(dá)10kV/us;扇出系數(shù)為8;邏輯電平輸出;集電極開(kāi)路輸出;3.2.3 CAN 總線驅(qū)動(dòng)器PCA82C250PCA82C250 收發(fā)器是

14、協(xié)議控制器和物理傳輸線路之間的接口,它可以用高達(dá)1Mbit/s 的位速率在兩條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù),如圖3.4所示。圖 3.4 PCA82C250原理圖PCA82C250 共有三種不同的工作模式第一種模式是高速模式它支持最大的總線速度和或長(zhǎng)度第二種是斜率模式當(dāng)使用非屏蔽的總線電纜時(shí)可以考慮使用這種模式這種模式的輸出轉(zhuǎn)換速度可被故意降低以減少電磁輻射第三種是準(zhǔn)備模式這種模式在電池供電的應(yīng)用要求系統(tǒng)功率消耗非常低的應(yīng)用中非常有用在準(zhǔn)3.2.4 SJA1000與6N137和PCA82C250的連接C A N 通信模塊的硬件設(shè)計(jì)如圖3.5 所示,電路主要由四部分組成,即微控制器STC 8 9

15、 C 5 2 、獨(dú)立C A N 通信控制器SJA1000、CAN 總線收發(fā)器82C50 和高速光電耦合器6N137。SJA1000 和單片機(jī)之間的數(shù)據(jù)通信通過(guò)單片機(jī)PO 口進(jìn)行,數(shù)據(jù)接收信號(hào)采用中斷方式,以提高數(shù)據(jù)處理的實(shí)時(shí)性。CAN控制器SJA1000通過(guò)總線驅(qū)動(dòng)器PCA82C250連接在物理總線上。PCA820C250 器件提供對(duì)總線的差動(dòng)發(fā)送能力和CAN 控制器的差動(dòng)接收能力。SJA1000 的TXO和RXO通過(guò)高速光耦6N137 與82C250 相連,實(shí)現(xiàn)了收發(fā)器與控制器之間的電氣隔離,保護(hù)智能節(jié)點(diǎn)核心電路工作安全,并實(shí)現(xiàn)了總線上各C A N 節(jié)點(diǎn)間的電氣隔離??稍诳偩€入口處并接雙向穩(wěn)

16、壓管,限制線路上可能出現(xiàn)的短時(shí)尖峰過(guò)電壓,增加共模抑制線圈,以消除共模信號(hào)的干擾。信號(hào)傳輸?shù)綄?dǎo)線的站點(diǎn)時(shí),會(huì)發(fā)生反射,干擾正常信號(hào)的傳輸,可在CAN 總線兩端并接2 個(gè)1 2 0 的電阻,起到匹配總線阻抗和消除反射的雙重作用。圖3.5 CAN總線通信模塊電路3.3 溫度傳感器模塊系統(tǒng)采用由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,它具有微型化、低功耗、抗干擾能力強(qiáng),易配處理器而且CPU只需一根端口線就能與DS18B20通信等優(yōu)點(diǎn),它具有3引腳T0-92小體積封裝形式,溫度測(cè)量范圍為-55攝氏度到125攝氏度,可以滿足本次設(shè)計(jì)0攝氏度到100攝氏度的要求。它主要有兩種工作方

17、式:寄生電源工作方式和外接電源工作方式。本系統(tǒng)采用外接電源方式。其與單片機(jī)的連接如圖3.6所示。圖 3.6 溫度模塊電路3.4 報(bào)警模塊報(bào)警功能是現(xiàn)場(chǎng)的舵機(jī)加載系統(tǒng)油源溫度超過(guò)預(yù)定的報(bào)警限額時(shí),節(jié)點(diǎn)控制器就必須能夠及時(shí)地進(jìn)行報(bào)警。如圖3.7是一個(gè)簡(jiǎn)單實(shí)用的蜂鳴器報(bào)警電路。當(dāng)舵機(jī)加載系統(tǒng)油源溫度超過(guò)預(yù)定報(bào)警限額時(shí)單片機(jī)P1.0口將給出高電平,就能驅(qū)動(dòng)蜂鳴器發(fā)出警報(bào)。圖3.7 報(bào)警模塊電路3.5 風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊固態(tài)繼電器(SOLIDSTATE RELAYS),簡(jiǎn)寫成“SSR”,是一種全部由固態(tài)電子元件組成的新型無(wú)觸點(diǎn)開(kāi)關(guān)器件,它利用電子元件(如開(kāi)關(guān)三極管、雙向可控硅等半導(dǎo)體器件)的開(kāi)關(guān)特

18、性,可達(dá)到無(wú)觸點(diǎn)無(wú)火花地接通和斷開(kāi)電路的目的,因此又被稱為“無(wú)觸點(diǎn)開(kāi)關(guān)”,它問(wèn)世于70年代,由于它的無(wú)觸點(diǎn)工作特性,使其在許多領(lǐng)域的電控及計(jì)算機(jī)控制方面得到日益廣范的應(yīng)用。本次設(shè)計(jì)中當(dāng)現(xiàn)場(chǎng)的舵機(jī)加載系統(tǒng)油源溫度超過(guò)預(yù)定的報(bào)警限額時(shí),由固態(tài)繼電器來(lái)驅(qū)動(dòng)風(fēng)機(jī)和電磁溢流閥工作冷卻油溫。其原理如圖3.8所示。圖3,.8風(fēng)機(jī)和電磁溢流閥驅(qū)動(dòng)模塊電路3.6 設(shè)計(jì)總電路圖本次設(shè)計(jì)的總電路圖如圖3.9所示。圖3.9 設(shè)計(jì)總電路圖第4章 軟件設(shè)計(jì)4.1 CAN總線協(xié)議參照ISOOSI 標(biāo)準(zhǔn)模型,CAN分為數(shù)據(jù)鏈路層和物理層。而數(shù)據(jù)鏈路層又包括邏輯鏈路控制子層LLC和媒體訪問(wèn)控制子層MAC。邏輯鏈路子層LLC的主

19、要共恩呢該是,對(duì)總線上傳送的報(bào)文實(shí)行接收濾波,判斷總線上傳送的報(bào)文是否與本節(jié)點(diǎn)有關(guān),哪些報(bào)文應(yīng)該為本節(jié)點(diǎn)所接收;對(duì)報(bào)文的接收予以確認(rèn);為數(shù)據(jù)傳送和遠(yuǎn)程數(shù)據(jù)請(qǐng)求提供服務(wù);當(dāng)丟失仲裁或被出錯(cuò)干擾時(shí),邏輯鏈路子層具有自動(dòng)重發(fā)的恢復(fù)管理功能;當(dāng)收發(fā)器出現(xiàn)超載,要求推遲一下數(shù)據(jù)幀或遠(yuǎn)程幀時(shí),則通過(guò)邏輯子層發(fā)送超載幀,一推遲接受下一數(shù)據(jù)幀。MAC子層是CAN協(xié)議的核心。它負(fù)責(zé)執(zhí)行總線仲裁、報(bào)文成幀、出錯(cuò)檢測(cè)、錯(cuò)誤標(biāo)定等傳輸控制規(guī)則。MAC子層要為開(kāi)始一次新的發(fā)送確定總線是否可占用,在確認(rèn)總線空閑后開(kāi)始發(fā)送。在丟失仲裁時(shí)退出仲裁,轉(zhuǎn)入接收方式。對(duì)發(fā)送數(shù)據(jù)實(shí)行串行比,對(duì)接收數(shù)據(jù)實(shí)行反串行比。完成CRC校驗(yàn)和應(yīng)

20、答校驗(yàn),發(fā)送出錯(cuò)幀。確認(rèn)超載條件,激活并發(fā)送超載幀。添加或卸除起始位、遠(yuǎn)程傳送請(qǐng)求、保留位、CRC校驗(yàn)和應(yīng)答碼等,即完成報(bào)文的打包和拆包。通信是通過(guò)以下5 種類型的幀進(jìn)行的。 數(shù)據(jù)幀 遙控幀 錯(cuò)誤幀 過(guò)載幀 幀間隔另外,數(shù)據(jù)幀和遙控幀有標(biāo)準(zhǔn)格式和擴(kuò)展格式兩種格式。標(biāo)準(zhǔn)格式有11 個(gè)位的標(biāo)識(shí)符(Identifier: 以下稱ID),擴(kuò)展格式有29 個(gè)位的ID。各種幀的用途如下數(shù)據(jù)幀 用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀。遙控幀 用于接收單元向具有相同ID 的發(fā)送單元請(qǐng)求數(shù)據(jù)的幀。錯(cuò)誤幀 用于當(dāng)檢測(cè)出錯(cuò)誤時(shí)向其它單元通知錯(cuò)誤的幀。過(guò)載幀 用于接收單元通知其尚未做好接收準(zhǔn)備的幀。幀間隔 用于將數(shù)據(jù)幀及

21、遙控幀與前面的幀分離開(kāi)來(lái)的幀。4.2 數(shù)據(jù)包機(jī)構(gòu)設(shè)計(jì)數(shù)據(jù)包結(jié)構(gòu)設(shè)計(jì)提高系統(tǒng)通信安全性的另一個(gè)方面是設(shè)計(jì)一個(gè)合理的傳輸數(shù)據(jù)包?,F(xiàn)今常用的數(shù)據(jù)包一般有兩種形式,即基于字符和基于長(zhǎng)度?;陂L(zhǎng)度的數(shù)據(jù)幀如圖4.3所示,是依據(jù)幀起始符和幀長(zhǎng)度來(lái)實(shí)現(xiàn)接收的。即當(dāng)出現(xiàn)一個(gè)幀起始字符時(shí),就表示可以接收幀數(shù)據(jù),并根據(jù)幀長(zhǎng)度來(lái)確定接下要接收多少字節(jié)的幀數(shù)據(jù)命令,當(dāng)接收完畢規(guī)定的長(zhǎng)度字節(jié)就意味著一幀數(shù)據(jù)接收完畢。這樣在幀長(zhǎng)度字節(jié)之后到幀接收結(jié)束所接收到的所有字節(jié)就都是數(shù)據(jù)而不會(huì)是控制字符。幀起始符幀長(zhǎng)度幀數(shù)據(jù)命令校驗(yàn)字圖4.3基于長(zhǎng)度的幀格式本系統(tǒng)中,我們使用了基于字符的幀格式?;谧址臄?shù)據(jù)幀如圖4.4所示,是利

22、用特定的字符來(lái)判斷幀傳輸?shù)钠鹗己徒Y(jié)束。幀起始符和停止符之間的字節(jié)則為數(shù)據(jù)。在此就有一個(gè)問(wèn)題需要解決,即在幀數(shù)據(jù)部分有可能會(huì)出現(xiàn)幀控制字符,如幀起始符或幀停止符。這樣就會(huì)造成幀錯(cuò)誤。解決這個(gè)問(wèn)題有兩種方案:一個(gè)是在幀數(shù)據(jù)中的控制字符使用轉(zhuǎn)義字符的機(jī)制。即當(dāng)在幀數(shù)據(jù)段出現(xiàn)一個(gè)與控制字符相同的字符時(shí),就在該字符前加一個(gè)轉(zhuǎn)義字符,以此說(shuō)明其后的字符是數(shù)據(jù)字符而不是控制字符;另一種解決方案是將幀數(shù)據(jù)段單字節(jié)十六進(jìn)制字符轉(zhuǎn)換成兩字節(jié)ASCII碼。例如OxOl轉(zhuǎn)換成Ox30和Ox31。這樣就把所有的幀數(shù)據(jù)段字符限定在O9,AF的ASCII碼范圍內(nèi),也能有效的避開(kāi)控制字符。雖然后一種方法增加了系統(tǒng)的開(kāi)銷,但是

23、實(shí)現(xiàn)起來(lái)非常方便,所以我們選擇了此種解決方案。幀起始符幀數(shù)據(jù)命令校驗(yàn)字幀停止符圖4.4 基于字符的數(shù)據(jù)幀格式4.3 系統(tǒng)主程序檢測(cè)點(diǎn)軟件方面主要實(shí)現(xiàn)兩方面的功能:一是檢測(cè)現(xiàn)場(chǎng)的舵機(jī)加載系統(tǒng)油源溫度,并由單片機(jī)處理是否啟動(dòng)風(fēng)機(jī)和電磁溢流閥;二是與主節(jié)點(diǎn)通信,響應(yīng)其配置或查詢命令并反饋報(bào)文。檢測(cè)點(diǎn)的主程序的功能主要包括:?jiǎn)纹瑱C(jī)初始化;CAN控制器SJA1000的初始化;變量的初始化;溫度檢測(cè);報(bào)文處理等。主程序流程圖如圖4.1所示。開(kāi)始單片機(jī)初始化SJA1000初始化變量初始化溫度檢測(cè)發(fā)送報(bào)文接收?qǐng)?bào)文處理發(fā)送報(bào)文反饋是否啟動(dòng)風(fēng)機(jī)和電磁圖4.1 主程序流程圖在通信系統(tǒng)中,各個(gè)通信節(jié)點(diǎn)之問(wèn)是相互獨(dú)立的

24、,因此它們之間的數(shù)據(jù)傳輸就必然存在著不確定因素。一個(gè)合理的通信流程就能夠在很大程度上克服這種不確定因素。我們知道,當(dāng)通信過(guò)程開(kāi)始前如果能夠確定通信雙方已經(jīng)成功的建立了連接,在這種情況下,通信雙方數(shù)據(jù)傳輸就比較安全。對(duì)于一般的系統(tǒng)而言,通過(guò)良好的通信流程來(lái)提高通信成功率是一種經(jīng)濟(jì)有效的手段。針對(duì)舵機(jī)加載系統(tǒng)的油源溫度監(jiān)控系統(tǒng),我設(shè)計(jì)了如下的通信流程。如圖4.2所示。數(shù)據(jù)格式轉(zhuǎn)換寫入CAN控制器發(fā)送緩沖器啟動(dòng)發(fā)送結(jié)束開(kāi)始發(fā)送緩沖器有數(shù)據(jù)?YN開(kāi)始接收緩沖區(qū)有足夠的剩余空間?報(bào)文讀入接收緩沖區(qū)釋放接收緩沖器結(jié)束YN圖4.2 通信流程數(shù)據(jù)發(fā)送流程中,數(shù)據(jù)幀發(fā)送與該幀的應(yīng)答幀處理分離開(kāi)來(lái)。當(dāng)發(fā)送一個(gè)數(shù)據(jù)

25、幀時(shí),發(fā)送程序就根據(jù)該幀的類型置位該數(shù)據(jù)幀已發(fā)送標(biāo)志,啟動(dòng)應(yīng)用程序等待該數(shù)據(jù)幀的應(yīng)答幀即把數(shù)據(jù)的發(fā)送和確認(rèn)并發(fā)處理,使得通過(guò)更加高效和安全。數(shù)據(jù)接收過(guò)程相對(duì)比較簡(jiǎn)單,可以讓接收驅(qū)動(dòng)將接收到的數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū),應(yīng)用程序從數(shù)據(jù)緩沖區(qū)中捕獲數(shù)據(jù)幀,并進(jìn)行相應(yīng)的處理這種方式下,數(shù)據(jù)接收過(guò)程中,緩沖區(qū)的大小將是直接影響數(shù)據(jù)接收安全性的主要因素 4.3.1 單片機(jī)的初始化TMOD=0X20;TH1=0Xfd; TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;EA=0;模數(shù)轉(zhuǎn)換子程序:MOV R0,#30H MOV R2, #08H SETB IT0 SETB EA SETB EX0

26、 MOV DPTR,#FEF8H LOOP: MOVX DPTR, A HERE: SJMP HERE 中斷服務(wù)程序:MOVX A, DPTR MOV R0, A INC DPTR INC RO DJNZ R2, INT0 CLR EA CLR EX0 RETI INT0: MOVX DPTR, A RETI 判斷比較子程序:CLR C MOV A, 30H SUBB A,90H JNC BAOJIN 發(fā)送 AT 命令子程序:for (i=0;i<4;i+)hh=&doc00 SBUF=doc0i;while(TI=0);TI=0;delay();for (j=0;j<4;

27、j+) while(RI=0);RI=0 mnkj=SBUF;if (mnkj0x4b)=0) hh=mnkj;break;4.3.2 SJA1000的初始化void SJA_write(unsigned char trr_address,unsigned char wr_data)SJA_PCAN_address=fr_address;*SJA_PCAN_address=vrr data;unsigned char SJA_read(unsigned char re address)SJA_PCAN_address=re_address:return(*SJA PCAN_address):u

28、nsigned char SJAtestinterface(unsigned char test_value)unsigned char status 2 0:bit bdata bit errorflag=1:unsigned char data error_count2 Ox20;while(_一error_count)SJA_write(REG_TEST,test_value):if(SJA_read(REG_TEST)=test_value)SJh_write(REG_TEST,Ox00):bi t_errorflag=0:break:if(bit_error_flag)status=

29、CAN_INTERFACEERR;elsestatus=CAN_INTERFACE_OK;return(status)unsigned char SJA_entry reset_mode(void)unsigned char status=O:bit bdata bit_error_flag=1:unsigned char error_count=0x20while(一error_count)SJA_'rrite(REG_MOOE,Ox01):if(SJA read(REG_MODE)Ox010x01)bit_error_flag=0:break:if(bit_error_flag)s

30、tatus=CAN F24TRESET_ERR;elsestatus=CAN_ENTRESET_OK;return(status):unsigned char SJ_quit_reset_mode(void)unsigned char status=O:bit bdata bit_error_flag=1:unsigned char error_count=0x20:whi le(_一error_count)SJjrite(REG_MODE,Ox00):if(SJA_read(REG_MODE)&Ox01)=Ox00)bi terrorflag=O:break:)if(bit_erro

溫馨提示

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

評(píng)論

0/150

提交評(píng)論