基于Labview的CAN總線通信仿真_第1頁
基于Labview的CAN總線通信仿真_第2頁
基于Labview的CAN總線通信仿真_第3頁
基于Labview的CAN總線通信仿真_第4頁
基于Labview的CAN總線通信仿真_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于虛擬儀器的CAN總線通信仿真控制器局部網(wǎng)(CANCONTROLLERAREANETWORK)是BOSCH公司為現(xiàn)代汽車監(jiān)測(cè)和控制領(lǐng)先推出的一種多主機(jī)局部網(wǎng),由于其卓越性能現(xiàn)已廣泛應(yīng)用于工業(yè)自動(dòng)化、多種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門。CAN是一種多主方式的串行通訊總線。一個(gè)由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中理論上可以掛接無數(shù)個(gè)節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。CAN可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率這使實(shí)時(shí)控制變得非常容易。另外。硬件的錯(cuò)誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力。CAN總線有以下特點(diǎn):1) CAN可以是對(duì)等結(jié)構(gòu),即多主機(jī)工作方式,網(wǎng)

2、絡(luò)上任意一個(gè)節(jié)點(diǎn)可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息,不分主從,通訊方式靈活。2) CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)可以分為不同的優(yōu)先級(jí),滿足不同的實(shí)時(shí)需要。3) CAN采用非破壞性仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)自動(dòng)停止發(fā)送,在網(wǎng)絡(luò)負(fù)載很重的情況下不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓。4) CAN可以點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)、點(diǎn)對(duì)網(wǎng)絡(luò)的方式發(fā)送和接收數(shù)據(jù),通訊距離最遠(yuǎn)10km(5kb/s),節(jié)點(diǎn)數(shù)目可達(dá)110個(gè)。5) CAN采用的是短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8個(gè),具有CRC校驗(yàn)和其它檢測(cè)措施,數(shù)據(jù)出錯(cuò)幾率極小。CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉功能,不會(huì)影響總線上其它節(jié)點(diǎn)操作。6) 通訊

3、介質(zhì)采用廉價(jià)的雙絞線,無特殊要求,用戶接口簡(jiǎn)單,容易構(gòu)成用戶系統(tǒng)。1 CAN總線工作機(jī)理1.1 位仲裁要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個(gè)站同時(shí)需要發(fā)送數(shù)據(jù)時(shí)要求快速地進(jìn)行總線分配。實(shí)時(shí)處理通過網(wǎng)絡(luò)交換的緊急數(shù)據(jù)有較大的不同。一個(gè)快速變化的物理量。如汽車引擎負(fù)載,將比類似汽車引擎溫度這樣相對(duì)變化較慢的物理量更頻繁地傳送數(shù)據(jù)并要求更短的延時(shí)。CAN總線以報(bào)文為單位進(jìn)行數(shù)據(jù)傳送報(bào)文的優(yōu)先級(jí)結(jié)合在11位標(biāo)識(shí)符中具有最低二進(jìn)制數(shù)的標(biāo)識(shí)符有最高的優(yōu)先級(jí)。這種優(yōu)先級(jí)一旦在系統(tǒng)設(shè)計(jì)時(shí)被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。1.2 報(bào)文格

4、式如圖所示,在總線中傳送的報(bào)文,每幀由7部分組成。CAN協(xié)議支持兩種報(bào)文格式,其唯一的不同是標(biāo)識(shí)符(ID)長(zhǎng)度不同,標(biāo)準(zhǔn)格式為11位擴(kuò)展格式為29位。在標(biāo)準(zhǔn)格式中,報(bào)文的起始位稱為幀起始(SOF)然后是由11位標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)組成的仲裁場(chǎng)。RTR位標(biāo)明是數(shù)據(jù)幀還是請(qǐng)求幀,在請(qǐng)求幀中沒有數(shù)據(jù)字節(jié)??刂茍?chǎng)包括標(biāo)識(shí)符擴(kuò)展位(IDE),指出是標(biāo)準(zhǔn)格式還是擴(kuò)展格式。它還包括一個(gè)保留位(ro),為將來擴(kuò)展使用。它的最后四個(gè)字節(jié)用來指明數(shù)據(jù)場(chǎng)中數(shù)據(jù)的長(zhǎng)度(DLC)。數(shù)據(jù)場(chǎng)范圍為08個(gè)字節(jié)其后有一個(gè)檢測(cè)數(shù)據(jù)錯(cuò)誤的循環(huán)冗余檢查(CRC)。應(yīng)答場(chǎng)(ACK)包括應(yīng)答位和應(yīng)答分隔符發(fā)送站發(fā)送的這兩位均

5、為隱性電平(邏輯l)這時(shí)正確接收?qǐng)?bào)文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個(gè)站能正確接收到報(bào)文報(bào)文的尾部由幀結(jié)束標(biāo)出。在相鄰的兩條報(bào)文問有一很短的問隔位如果這時(shí)沒有站進(jìn)行總線存取,總線將處于空閑狀態(tài)。圖1標(biāo)準(zhǔn)數(shù)據(jù)幀1.3 數(shù)據(jù)錯(cuò)誤檢測(cè)不同于其它總線,CAN協(xié)議不能使用應(yīng)答信息。事實(shí)上,它可以將發(fā)生的任何錯(cuò)誤用信號(hào)發(fā)出。CAN協(xié)議可使用五種檢查錯(cuò)誤的方法,其中前三種為基于報(bào)文內(nèi)容檢查。1.3.1 循環(huán)冗余檢查(CRC)在一幀報(bào)文中加入冗余檢查位可保證報(bào)文正確。接收站通過CRC可判斷報(bào)文是否有錯(cuò)。1.3.2 幀檢查這種方法通過位場(chǎng)檢查幀的格式和大小來確定報(bào)文

6、的正確性,用于檢查格式上的錯(cuò)誤。1.3.3 應(yīng)答錯(cuò)誤如前所述,被接收到的幀由接收站通過明確的應(yīng)答來確認(rèn)。如果發(fā)送站未收到應(yīng)答,那么表明接收站發(fā)現(xiàn)幀中有錯(cuò)誤,也就是說,ACK場(chǎng)已損壞或網(wǎng)絡(luò)中的報(bào)文無站接收。CAN協(xié)議也可通過位檢查的方法探測(cè)錯(cuò)誤。1.3.4 總線檢測(cè)有時(shí),CAN中的一個(gè)節(jié)點(diǎn)可監(jiān)測(cè)自己發(fā)出的信號(hào)。因此,發(fā)送報(bào)文的站可以觀測(cè)總線電平并探測(cè)發(fā)送位和接收位的差異。1.3.5 位填充一幀報(bào)文中的每一位都由不歸零碼表示可保證位編碼的最大效率。然而,如果在一幀報(bào)文中有太多相同電平的位就有可能失去同步。為保證同步同步沿用位填充產(chǎn)生。在j個(gè)生。在五個(gè)連續(xù)相等位后發(fā)送站自動(dòng)插人一個(gè)與之互補(bǔ)的補(bǔ)碼位接

7、收時(shí)這個(gè)填充位被自動(dòng)丟掉例如,五個(gè)連續(xù)的低電平位后,CAN自動(dòng)插人一個(gè)高電平位CAN通過這種編碼規(guī)則檢查錯(cuò)誤,如果在一幀報(bào)文中有6個(gè)相同位,CAN就知道發(fā)生了錯(cuò)誤。2 虛擬儀器技術(shù)2.1 虛擬儀器簡(jiǎn)介虛擬儀器技術(shù)目前已成為測(cè)試領(lǐng)域的主流技術(shù),一個(gè)虛擬儀器系統(tǒng)主要由儀器硬件、計(jì)算機(jī)硬件和應(yīng)用軟件組成,應(yīng)用軟件又包括開發(fā)環(huán)境、應(yīng)用程序和儀器驅(qū)動(dòng)程序三部分。Labview(LaboratoryVirtualinstrumentEngineering)是NI公司推出的虛擬儀器開發(fā)平臺(tái),采用圖形化的編程語言,具有強(qiáng)大的人機(jī)界面設(shè)計(jì)和數(shù)據(jù)分析處理功能,提供了豐富的儀器驅(qū)動(dòng)程序,便于快速創(chuàng)建靈活可靠的應(yīng)用系

8、統(tǒng),主要用于儀器控制、數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)顯示等領(lǐng)域。虛擬儀器的硬件基礎(chǔ)為個(gè)人計(jì)算機(jī),它采用虛擬儀器技術(shù)來開發(fā)。虛擬儀器充分利用了PC機(jī)的資源(處理器、存儲(chǔ)器、顯示器等)及插件卡功能(定時(shí)器AD、DA變換器、高速緩存、數(shù)字I0電路等),通過支持軟件來完成數(shù)據(jù)采集、過程通訊、數(shù)據(jù)分析處理及儀器界面設(shè)計(jì)等功能。由于虛擬儀器建立在PC機(jī)的基礎(chǔ)上,所以它可方便地通過總線來掛接各類插件卡,從而實(shí)現(xiàn)了多種儀器功能的集成化。軟件是虛擬儀器的關(guān)鍵,軟件設(shè)計(jì)主要包括儀器面板軟件設(shè)計(jì)和儀器功能軟件設(shè)計(jì)。虛擬儀器的面板軟件是利用計(jì)算機(jī)強(qiáng)大的圖形處理能力,在屏幕上建立圖形逼真、主體感強(qiáng)的儀器面板來替代傳統(tǒng)硬件化儀

9、器面板。虛擬儀器面板上具有與實(shí)際儀器面板上相似的旋鈕、開關(guān)、指示燈及其它控制部件,用戶通過鼠標(biāo)或鍵盤操作虛擬儀器。與傳統(tǒng)的編程語言比較,Labview圖形編程方式能夠節(jié)省85以上的程序開發(fā)時(shí)間,其運(yùn)行速度卻幾乎不受影響,體現(xiàn)出了極高的效率。2.2 Labview應(yīng)用于仿真Labview是一種基于圖形編程語言的開發(fā)環(huán)境G語言。使用這種語言編程時(shí),基本上不寫程序代碼,取而代之的是流程圖或流程圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標(biāo)和概念,因此,Labview是一個(gè)面向最終用戶的工具。它可以增強(qiáng)你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。簡(jiǎn)言之,

10、Labview功能強(qiáng)大、靈活方便。它與傳統(tǒng)編程語言有著諸多相似之處,如相似的數(shù)據(jù)類型、數(shù)據(jù)流控制結(jié)構(gòu)、程序調(diào)試工具等,但二者最大的區(qū)別在于:傳統(tǒng)編程語言是用文本語言編程,而Labview用圖形語言(即各種圖標(biāo)、圖形符號(hào)、連線等)編程。用Labview編程無需太多編程經(jīng)驗(yàn),界面非常直觀形象,都是工程師們熟悉的旋鈕、開關(guān)、圖形等,因此LabVlEW對(duì)于沒有豐富編程經(jīng)驗(yàn)的工程師們來說無疑是個(gè)極好的選擇。再者,Labview也提供傳統(tǒng)程序語言(如C語言)的接口,對(duì)于其自身不易或不擅長(zhǎng)完成的任務(wù)(如數(shù)據(jù)處理)可通過利用其它編程語言來實(shí)現(xiàn),從而最終增強(qiáng)了Labview的整體功能。一個(gè)Labview程序分為

11、三部分:前面板、框圖程序、圖標(biāo)接線端口。前面板是用于模擬真實(shí)儀器的前面板;框圖程序則是利用圖形語言對(duì)前面板上的控件對(duì)象(分為控制量和指示量?jī)煞N)進(jìn)行控制;圖標(biāo)接線端口用于把Labview程序定義成一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。與傳統(tǒng)的編程語言比較,LabVIEW圖形編程方式及其集成的豐富的函數(shù)模塊使其在將仿真程序化時(shí)效率非常高,可以用它進(jìn)行仿真、實(shí)時(shí)控制或者同時(shí)執(zhí)行這兩種工作。LabVlEW具有:(1)可以方便地將仿真任務(wù)譯為程序語言;(2)出色的數(shù)據(jù)可視化能力;(3)有適合仿真計(jì)算的數(shù)據(jù)結(jié)構(gòu)范圍;(4)通過簡(jiǎn)單的操作即可變量計(jì)算和參數(shù)設(shè)定;(5)精心構(gòu)建于數(shù)學(xué)、信號(hào)理論上;(6)與現(xiàn)實(shí)世界

12、有良好的互聯(lián)性。3 Labview仿真CAN通信用Labview模擬CAN通訊,主要是對(duì)CAN總線的數(shù)據(jù)鏈路層的數(shù)據(jù)傳輸進(jìn)行仿真,CAN總線的標(biāo)準(zhǔn)為CAN2.0A/B,數(shù)據(jù)格式為標(biāo)準(zhǔn)數(shù)據(jù)幀或擴(kuò)展數(shù)據(jù)幀。3.1 仿真內(nèi)容一個(gè)典型的CAN結(jié)構(gòu)可以用下圖表示。圖2基于MCP2510的典型系統(tǒng)硬件實(shí)現(xiàn)結(jié)構(gòu)由于時(shí)間有限,因此本人選擇了用Labview實(shí)現(xiàn)CAN總線通信的基本的收發(fā)功能。具體的就是下面兩個(gè)模塊,數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊,發(fā)送模塊包括了數(shù)據(jù)生成模塊,CAN節(jié)點(diǎn)地址定義模塊,數(shù)據(jù)分割模塊和轉(zhuǎn)化幀模塊。本人對(duì)仿真信號(hào)通信格式做了簡(jiǎn)化,對(duì)幀傳輸格式重新進(jìn)行了定義,用Labview中的數(shù)組元素表示

13、幀傳輸過程中的位,首位是幀開始位,1為開始,用一個(gè)數(shù)組元素表示,接著是RTR位,這代表了幀的類型,0表示是數(shù)據(jù)幀(遠(yuǎn)程幀),接著是地址位,實(shí)際上地址位和數(shù)據(jù)為并不止一位,但是為了簡(jiǎn)化起見,均將其作為一個(gè)元素處理,然后是數(shù)據(jù),每幀的數(shù)據(jù)量最大是8個(gè)字節(jié),用最多8個(gè)元素來表示,這8個(gè)元素每個(gè)為一個(gè)字節(jié),最后還省略了數(shù)據(jù)校驗(yàn)部分,直接用了一個(gè)結(jié)束符元素來結(jié)束幀。3.2 程序結(jié)構(gòu)使用Labview仿真CAN通信主要兩大部分:接收數(shù)據(jù)模塊和發(fā)送數(shù)據(jù)模塊。數(shù)據(jù)生成模塊仿真數(shù)據(jù)采集卡采集到后的數(shù)據(jù),在本次仿真中,需發(fā)送的數(shù)據(jù)可以做一個(gè)數(shù)據(jù)發(fā)生器來模擬經(jīng)采集到的的數(shù)據(jù)進(jìn)行通信;CAN節(jié)點(diǎn)地址定義模塊主要是為了

14、定義CAN節(jié)點(diǎn)的位置,處理后的數(shù)據(jù)能夠識(shí)別CAN節(jié)點(diǎn)控制器的位置,這樣才能在控制系統(tǒng)中進(jìn)行控制;數(shù)據(jù)分割模塊是為了將數(shù)據(jù)發(fā)生器中的數(shù)據(jù)進(jìn)行分割成不超過8字節(jié)的單幀數(shù)據(jù);轉(zhuǎn)化幀模塊主要功能是轉(zhuǎn)載控制碼和地址碼在幀數(shù)據(jù)兩端,在數(shù)據(jù)傳輸過程中,接收模塊才能識(shí)別發(fā)送的數(shù)據(jù)并進(jìn)行重組解碼;地址識(shí)別模塊是根據(jù)幀判斷地址優(yōu)先級(jí)來決定如何接收數(shù)據(jù),接收的數(shù)據(jù)再經(jīng)過幀轉(zhuǎn)化模塊轉(zhuǎn)化成原來的數(shù)據(jù)格式。一般地,還應(yīng)包括數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)完成數(shù)據(jù)的記錄,以便在需要進(jìn)行數(shù)據(jù)回放以進(jìn)一步分析時(shí),可以將程序保存的數(shù)據(jù)記錄文件讀出。在一個(gè)CAN工作周期,其工作流程圖如圖1所示。圖3CAN工作流程圖3.3 程序及面板3.3.1 數(shù)據(jù)發(fā)生模塊數(shù)據(jù)發(fā)生器是一個(gè)可以根據(jù)具體要求任意更改隨機(jī)輸入的程序,在本次仿真中,用了隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生字符串作為輸入數(shù)據(jù)處理后發(fā)送。圖4數(shù)據(jù)發(fā)生器3.3.2 數(shù)據(jù)發(fā)送模塊數(shù)據(jù)發(fā)送模塊如圖3.2所示。當(dāng)CAN工作的時(shí)候,將輸入字符串?dāng)?shù)據(jù)處理為數(shù)組再進(jìn)行數(shù)組分割加載控制碼和地址碼,分割循環(huán)次數(shù)及加載控制碼、地址碼位置與數(shù)據(jù)長(zhǎng)度有關(guān)。圖5數(shù)據(jù)發(fā)送模塊3.3.3 接收模塊接收

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論