版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于虛擬儀器的CAN總線通信仿真控制器局部網(wǎng)(CANCONTROLLERAREANETWORK)是BOSCH公司為現(xiàn)代汽車監(jiān)測和控制領(lǐng)先推出的一種多主機局部網(wǎng),由于其卓越性能現(xiàn)已廣泛應(yīng)用于工業(yè)自動化、多種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門。CAN是一種多主方式的串行通訊總線。一個由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中理論上可以掛接無數(shù)個節(jié)點。實際應(yīng)用中,節(jié)點數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。CAN可提供高達1Mbit/s的數(shù)據(jù)傳輸速率這使實時控制變得非常容易。另外。硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力。CAN總線有以下特點:1) CAN可以是對等結(jié)構(gòu),即多主機工作方式,網(wǎng)
2、絡(luò)上任意一個節(jié)點可以在任意時刻主動地向網(wǎng)絡(luò)上其它節(jié)點發(fā)送信息,不分主從,通訊方式靈活。2) CAN網(wǎng)絡(luò)上的節(jié)點可以分為不同的優(yōu)先級,滿足不同的實時需要。3) CAN采用非破壞性仲裁技術(shù),當兩個節(jié)點同時向網(wǎng)絡(luò)上傳送信息時,優(yōu)先級低的節(jié)點自動停止發(fā)送,在網(wǎng)絡(luò)負載很重的情況下不會出現(xiàn)網(wǎng)絡(luò)癱瘓。4) CAN可以點對點、點對多點、點對網(wǎng)絡(luò)的方式發(fā)送和接收數(shù)據(jù),通訊距離最遠10km(5kb/s),節(jié)點數(shù)目可達110個。5) CAN采用的是短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8個,具有CRC校驗和其它檢測措施,數(shù)據(jù)出錯幾率極小。CAN節(jié)點在錯誤嚴重的情況下,具有自動關(guān)閉功能,不會影響總線上其它節(jié)點操作。6) 通訊
3、介質(zhì)采用廉價的雙絞線,無特殊要求,用戶接口簡單,容易構(gòu)成用戶系統(tǒng)。1 CAN總線工作機理1.1 位仲裁要對數(shù)據(jù)進行實時處理。就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數(shù)據(jù)時要求快速地進行總線分配。實時處理通過網(wǎng)絡(luò)交換的緊急數(shù)據(jù)有較大的不同。一個快速變化的物理量。如汽車引擎負載,將比類似汽車引擎溫度這樣相對變化較慢的物理量更頻繁地傳送數(shù)據(jù)并要求更短的延時。CAN總線以報文為單位進行數(shù)據(jù)傳送報文的優(yōu)先級結(jié)合在11位標識符中具有最低二進制數(shù)的標識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時被確立后就不能再被更改。總線讀取中的沖突可通過位仲裁解決。1.2 報文格
4、式如圖所示,在總線中傳送的報文,每幀由7部分組成。CAN協(xié)議支持兩種報文格式,其唯一的不同是標識符(ID)長度不同,標準格式為11位擴展格式為29位。在標準格式中,報文的起始位稱為幀起始(SOF)然后是由11位標識符和遠程發(fā)送請求位(RTR)組成的仲裁場。RTR位標明是數(shù)據(jù)幀還是請求幀,在請求幀中沒有數(shù)據(jù)字節(jié)??刂茍霭俗R符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個保留位(ro),為將來擴展使用。它的最后四個字節(jié)用來指明數(shù)據(jù)場中數(shù)據(jù)的長度(DLC)。數(shù)據(jù)場范圍為08個字節(jié)其后有一個檢測數(shù)據(jù)錯誤的循環(huán)冗余檢查(CRC)。應(yīng)答場(ACK)包括應(yīng)答位和應(yīng)答分隔符發(fā)送站發(fā)送的這兩位均
5、為隱性電平(邏輯l)這時正確接收報文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個站能正確接收到報文報文的尾部由幀結(jié)束標出。在相鄰的兩條報文問有一很短的問隔位如果這時沒有站進行總線存取,總線將處于空閑狀態(tài)。圖1標準數(shù)據(jù)幀1.3 數(shù)據(jù)錯誤檢測不同于其它總線,CAN協(xié)議不能使用應(yīng)答信息。事實上,它可以將發(fā)生的任何錯誤用信號發(fā)出。CAN協(xié)議可使用五種檢查錯誤的方法,其中前三種為基于報文內(nèi)容檢查。1.3.1 循環(huán)冗余檢查(CRC)在一幀報文中加入冗余檢查位可保證報文正確。接收站通過CRC可判斷報文是否有錯。1.3.2 幀檢查這種方法通過位場檢查幀的格式和大小來確定報文
6、的正確性,用于檢查格式上的錯誤。1.3.3 應(yīng)答錯誤如前所述,被接收到的幀由接收站通過明確的應(yīng)答來確認。如果發(fā)送站未收到應(yīng)答,那么表明接收站發(fā)現(xiàn)幀中有錯誤,也就是說,ACK場已損壞或網(wǎng)絡(luò)中的報文無站接收。CAN協(xié)議也可通過位檢查的方法探測錯誤。1.3.4 總線檢測有時,CAN中的一個節(jié)點可監(jiān)測自己發(fā)出的信號。因此,發(fā)送報文的站可以觀測總線電平并探測發(fā)送位和接收位的差異。1.3.5 位填充一幀報文中的每一位都由不歸零碼表示可保證位編碼的最大效率。然而,如果在一幀報文中有太多相同電平的位就有可能失去同步。為保證同步同步沿用位填充產(chǎn)生。在j個生。在五個連續(xù)相等位后發(fā)送站自動插人一個與之互補的補碼位接
7、收時這個填充位被自動丟掉例如,五個連續(xù)的低電平位后,CAN自動插人一個高電平位CAN通過這種編碼規(guī)則檢查錯誤,如果在一幀報文中有6個相同位,CAN就知道發(fā)生了錯誤。2 虛擬儀器技術(shù)2.1 虛擬儀器簡介虛擬儀器技術(shù)目前已成為測試領(lǐng)域的主流技術(shù),一個虛擬儀器系統(tǒng)主要由儀器硬件、計算機硬件和應(yīng)用軟件組成,應(yīng)用軟件又包括開發(fā)環(huán)境、應(yīng)用程序和儀器驅(qū)動程序三部分。Labview(LaboratoryVirtualinstrumentEngineering)是NI公司推出的虛擬儀器開發(fā)平臺,采用圖形化的編程語言,具有強大的人機界面設(shè)計和數(shù)據(jù)分析處理功能,提供了豐富的儀器驅(qū)動程序,便于快速創(chuàng)建靈活可靠的應(yīng)用系
8、統(tǒng),主要用于儀器控制、數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)顯示等領(lǐng)域。虛擬儀器的硬件基礎(chǔ)為個人計算機,它采用虛擬儀器技術(shù)來開發(fā)。虛擬儀器充分利用了PC機的資源(處理器、存儲器、顯示器等)及插件卡功能(定時器AD、DA變換器、高速緩存、數(shù)字I0電路等),通過支持軟件來完成數(shù)據(jù)采集、過程通訊、數(shù)據(jù)分析處理及儀器界面設(shè)計等功能。由于虛擬儀器建立在PC機的基礎(chǔ)上,所以它可方便地通過總線來掛接各類插件卡,從而實現(xiàn)了多種儀器功能的集成化。軟件是虛擬儀器的關(guān)鍵,軟件設(shè)計主要包括儀器面板軟件設(shè)計和儀器功能軟件設(shè)計。虛擬儀器的面板軟件是利用計算機強大的圖形處理能力,在屏幕上建立圖形逼真、主體感強的儀器面板來替代傳統(tǒng)硬件化儀
9、器面板。虛擬儀器面板上具有與實際儀器面板上相似的旋鈕、開關(guān)、指示燈及其它控制部件,用戶通過鼠標或鍵盤操作虛擬儀器。與傳統(tǒng)的編程語言比較,Labview圖形編程方式能夠節(jié)省85以上的程序開發(fā)時間,其運行速度卻幾乎不受影響,體現(xiàn)出了極高的效率。2.2 Labview應(yīng)用于仿真Labview是一種基于圖形編程語言的開發(fā)環(huán)境G語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖或流程圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標和概念,因此,Labview是一個面向最終用戶的工具。它可以增強你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。簡言之,
10、Labview功能強大、靈活方便。它與傳統(tǒng)編程語言有著諸多相似之處,如相似的數(shù)據(jù)類型、數(shù)據(jù)流控制結(jié)構(gòu)、程序調(diào)試工具等,但二者最大的區(qū)別在于:傳統(tǒng)編程語言是用文本語言編程,而Labview用圖形語言(即各種圖標、圖形符號、連線等)編程。用Labview編程無需太多編程經(jīng)驗,界面非常直觀形象,都是工程師們熟悉的旋鈕、開關(guān)、圖形等,因此LabVlEW對于沒有豐富編程經(jīng)驗的工程師們來說無疑是個極好的選擇。再者,Labview也提供傳統(tǒng)程序語言(如C語言)的接口,對于其自身不易或不擅長完成的任務(wù)(如數(shù)據(jù)處理)可通過利用其它編程語言來實現(xiàn),從而最終增強了Labview的整體功能。一個Labview程序分為
11、三部分:前面板、框圖程序、圖標接線端口。前面板是用于模擬真實儀器的前面板;框圖程序則是利用圖形語言對前面板上的控件對象(分為控制量和指示量兩種)進行控制;圖標接線端口用于把Labview程序定義成一個子程序,從而實現(xiàn)模塊化編程。與傳統(tǒng)的編程語言比較,LabVIEW圖形編程方式及其集成的豐富的函數(shù)模塊使其在將仿真程序化時效率非常高,可以用它進行仿真、實時控制或者同時執(zhí)行這兩種工作。LabVlEW具有:(1)可以方便地將仿真任務(wù)譯為程序語言;(2)出色的數(shù)據(jù)可視化能力;(3)有適合仿真計算的數(shù)據(jù)結(jié)構(gòu)范圍;(4)通過簡單的操作即可變量計算和參數(shù)設(shè)定;(5)精心構(gòu)建于數(shù)學(xué)、信號理論上;(6)與現(xiàn)實世界
12、有良好的互聯(lián)性。3 Labview仿真CAN通信用Labview模擬CAN通訊,主要是對CAN總線的數(shù)據(jù)鏈路層的數(shù)據(jù)傳輸進行仿真,CAN總線的標準為CAN2.0A/B,數(shù)據(jù)格式為標準數(shù)據(jù)幀或擴展數(shù)據(jù)幀。3.1 仿真內(nèi)容一個典型的CAN結(jié)構(gòu)可以用下圖表示。圖2基于MCP2510的典型系統(tǒng)硬件實現(xiàn)結(jié)構(gòu)由于時間有限,因此本人選擇了用Labview實現(xiàn)CAN總線通信的基本的收發(fā)功能。具體的就是下面兩個模塊,數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊,發(fā)送模塊包括了數(shù)據(jù)生成模塊,CAN節(jié)點地址定義模塊,數(shù)據(jù)分割模塊和轉(zhuǎn)化幀模塊。本人對仿真信號通信格式做了簡化,對幀傳輸格式重新進行了定義,用Labview中的數(shù)組元素表示
13、幀傳輸過程中的位,首位是幀開始位,1為開始,用一個數(shù)組元素表示,接著是RTR位,這代表了幀的類型,0表示是數(shù)據(jù)幀(遠程幀),接著是地址位,實際上地址位和數(shù)據(jù)為并不止一位,但是為了簡化起見,均將其作為一個元素處理,然后是數(shù)據(jù),每幀的數(shù)據(jù)量最大是8個字節(jié),用最多8個元素來表示,這8個元素每個為一個字節(jié),最后還省略了數(shù)據(jù)校驗部分,直接用了一個結(jié)束符元素來結(jié)束幀。3.2 程序結(jié)構(gòu)使用Labview仿真CAN通信主要兩大部分:接收數(shù)據(jù)模塊和發(fā)送數(shù)據(jù)模塊。數(shù)據(jù)生成模塊仿真數(shù)據(jù)采集卡采集到后的數(shù)據(jù),在本次仿真中,需發(fā)送的數(shù)據(jù)可以做一個數(shù)據(jù)發(fā)生器來模擬經(jīng)采集到的的數(shù)據(jù)進行通信;CAN節(jié)點地址定義模塊主要是為了
14、定義CAN節(jié)點的位置,處理后的數(shù)據(jù)能夠識別CAN節(jié)點控制器的位置,這樣才能在控制系統(tǒng)中進行控制;數(shù)據(jù)分割模塊是為了將數(shù)據(jù)發(fā)生器中的數(shù)據(jù)進行分割成不超過8字節(jié)的單幀數(shù)據(jù);轉(zhuǎn)化幀模塊主要功能是轉(zhuǎn)載控制碼和地址碼在幀數(shù)據(jù)兩端,在數(shù)據(jù)傳輸過程中,接收模塊才能識別發(fā)送的數(shù)據(jù)并進行重組解碼;地址識別模塊是根據(jù)幀判斷地址優(yōu)先級來決定如何接收數(shù)據(jù),接收的數(shù)據(jù)再經(jīng)過幀轉(zhuǎn)化模塊轉(zhuǎn)化成原來的數(shù)據(jù)格式。一般地,還應(yīng)包括數(shù)據(jù)存儲模塊,數(shù)據(jù)存儲完成數(shù)據(jù)的記錄,以便在需要進行數(shù)據(jù)回放以進一步分析時,可以將程序保存的數(shù)據(jù)記錄文件讀出。在一個CAN工作周期,其工作流程圖如圖1所示。圖3CAN工作流程圖3.3 程序及面板3.3.1 數(shù)據(jù)發(fā)生模塊數(shù)據(jù)發(fā)生器是一個可以根據(jù)具體要求任意更改隨機輸入的程序,在本次仿真中,用了隨機數(shù)發(fā)生器隨機產(chǎn)生字符串作為輸入數(shù)據(jù)處理后發(fā)送。圖4數(shù)據(jù)發(fā)生器3.3.2 數(shù)據(jù)發(fā)送模塊數(shù)據(jù)發(fā)送模塊如圖3.2所示。當CAN工作的時候,將輸入字符串數(shù)據(jù)處理為數(shù)組再進行數(shù)組分割加載控制碼和地址碼,分割循環(huán)次數(shù)及加載控制碼、地址碼位置與數(shù)據(jù)長度有關(guān)。圖5數(shù)據(jù)發(fā)送模塊3.3.3 接收模塊接收
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度farmhouse木門安裝服務(wù)合同
- 深圳購房合同樣本
- 住宅房屋購買合同簡單版
- 2024年《軟件許可合同中不可抗力事件的處理》
- 廣告公司授權(quán)合同模板
- 2024年范文承包土地協(xié)議書
- 2024年發(fā)光字合同
- 跨境客運線路租賃合同
- 共建文明施工項目協(xié)議書
- 親子園與醫(yī)療機構(gòu)合作協(xié)議書
- 國開2024年《中國法律史》平時作業(yè)1-3答案
- 鋼結(jié)構(gòu)策劃書(范本)
- 急性腎衰竭與crrt治
- 焦化廠生產(chǎn)工序及工藝流程圖
- 嘔吐(急性胃腸炎)診療指南(制訂)編制說明排版
- 江堤道路工程施工方案#江蘇
- (外研版)初中英語語法匯總[新版]
- 李燕璇植樹問題卡通版5
- 有砟軌道鋪設(shè)的施工講解
- 煙草專賣食堂燃氣泄露及火災(zāi)事故現(xiàn)場應(yīng)急處置方案
- 國家電網(wǎng)公司十八項反措
評論
0/150
提交評論