




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于CANoe的CAN總線設計基礎與簡例CANoe概述 CANoe是德國Vecto:公司開發的一套通用的CAN總線系統的開發、測試和分析工具。CANoe的主要組成部分和各自功能為:l CANdb+編輯器:用CANdb+編輯器可以創建或編輯數據庫文件(*.dbc)。數據庫文件中包括了CANoe所用到的信號的信息,這當中包括了報文和信號的網絡節點和符號名稱,以及環境變量等信息。l CAPL瀏覽器:利用CAPL瀏覽器可以創建用于測量和模擬面板的CAPL程序。因為數據庫的應用,在編程時可以使用直觀的報文和信號的名稱,而不必使用二進制代碼的報文頭和數據。l CANoe主程序:用于測量和模擬CAN系統。通
2、過File/Database菜單,可以在主程序中關聯一個或多個數據庫。l 面板編輯器:通過面板編輯器可以創建面板。面板的作用是作為用戶和在CANoe里的模擬面板里被模擬的網絡節點的I/O接口。除了標準按鈕和開關,在面板編輯器中也可使用位圖作為顯示和控制器件??梢允褂萌我獾奈粓D編輯軟件創建合適的位圖,然后用十面板編輯器。任何顯示和控制兀件都要和數據庫中的環境變量關聯好,這樣CAPL程序可以在CANoe主程序中讀寫顯示和控制兀件。使用CANoe進行開發的三個階段使用CANoe的開發過程可以分為3個階段:第一個階段是利用數字仿真進行網絡需求分析和設計階段。該階段首先要定義網絡里的通訊需求,包括:需要
3、幾個節點;在網絡中要發送多少個報文;數據從哪個節點傳輸到哪個節點;每個報文的具體組成;有哪些外部的輸入輸出。然后,利用網絡數據庫工具CANdb+建立起CAN通訊數據庫。接下來,建立網絡拓撲結構,選擇總線的波特率,定義節點的網絡行為,使用CANoe建立各個網絡節點的模型,并通過仿真來預估在設定波特率情況下的總線負載和延遲。通過第一個階段的仿真可以檢驗各個節點功能的完善性和網絡的合理性,也可以監控網絡負載和延遲。第一階段如圖3-3所示。圖3-3完全數字仿真第二個階段是節點實現和半物理仿真階段。第一個階段結束后,我們能夠得到一個完整的系統功能模型。接下來,可以開發真實的控制器節點,并利用總線接口與C
4、ANoe上剩余的虛擬節點相連接,來測試真實節點的功能,如通信、糾錯。對于并行開發的節點,就可以不受其它節點開發步驟的影響。第二階段如圖3-4所示。圖3-4半物理仿真第三個階段是全系統集成階段。開發的最終階段將逐步把所有的虛擬節點用真實的節點來替代,此時,CANoe只是觀察分析的工具了。在這個過程中,整個系統包括各個功能節點都能詳細的檢查到。由于利用功能模塊取代真實的網絡節點能減少錯誤的發生,因此通過這兩種狀態的切換能檢查其功能的完善性。第三階段如圖3-5所示。圖3-5完全物理網絡3.3面板的設計面板編輯器用于創建圖形面板。在圖形面板中可以在模擬測量的過程中方便地改變離散或是連續的環境變量的值。
5、面板編輯器既可以單獨啟動也可以從CANoe主程序中啟動,從CANoe主程序中啟動時,和主程序中關聯的數據庫會自動關聯到面板編輯器中。表3-1為所有控制面板的元件一覽。所有放在面板上的元件稱為“控件”?!翱丶笨煞譃榭刂圃惋@示元件,控制元件(如開關,按鈕等)用于改變環境變量的值,顯示元件用于顯示環境變量的值(如報警燈等)。對于不同類型的環境變量有特定的元件可用,如對于離散的變量可用開關和顯示燈等,對于連續的變量可用滑塊,對于字符串型的環境變量可用文字輸入框。除此之外,還可以放入靜態的和環境變量無關的元件,如作為背景的位圖,用于說明的文字等。所有的“控件”(顯示和控制元件)必須和數據庫中的一個
6、環境變量或信號相關聯。3.4 CAPL編程3.4.1 CAPL簡介CANoe的通用性、易用性很大程度上是因為用戶可以對CANoe進行編程。CAPL是CAN Access Programming Language的縮寫。CAPL是一種類C語言的程序語言。利用CAPL可以在單個的應用中對CANoe進行編程。在網絡節點的開發過程中,往往會出現其他網絡節點還不可用的問題,為了模擬系統環境,這些網絡節點的數據流要通過CAPL的編程來模擬,CAPL節點作為功能塊插入到數據流圖中。CAPL的輸入是事件發生器,CAPL可以對報文,定時器以及鍵盤輸入做出反應,所以CANoe可以用來監控和檢測特殊的問題,如CAN
7、oe可以對發布到總線的特定報文做出反應,然后可以調用戶自定義的分析和測試函數。CAPL同樣也可為控制器的開發模擬總線環境,通過CAPL,對怎樣的事件做出怎樣的反應可以完全由用戶來定義決定。因為CANoe有兩個硬件接口,通過CAPL的編程也可以實現網關的功能。必須要注意的是,在測試設置面板中插入的CAPL塊能產生報文,但是不能發布到真實總線中去,如果要向總線發布報文,必須把CAPL塊插入到模擬設置面板中。在CAPL編程中應盡量引用數據庫中的報文,這樣做對于提高開發效率非常有用,例如,如果要改變某條報文的優先級,只需改變數據庫中這條報文的識別碼,然后重新編譯CAPL程序即可實現,否則要在CAPL中
8、去改變每個用到這條報文的地方,非常繁瑣而且容易出錯。3.4.2 CAPL數據類型一、CAPL數據類型如下表所示二、數據定義變量定義int i;message 0x123 HiRain;message MotorData Vector;三、關鍵字thisthis代表觸發事件的對象on message 100 byte byte_0;byte_0 = this.byte(0);/將ID為100的報文的信號byte的值送變量byte_0,this指ID為100的報文.on envVar Switch int val;val = getvalue(this);得到環境變量Switch的值送val,th
9、is指Switch.3.4.3 CAPL Broswer3.4.3 CAPL事件1、消息事件 on message123 /對消息123(dec)反應 on message 0x123 /對消息123(hex)反應 on message MotorData /對消息MotorData(符號名字)反應 on message CAN1.123 /對CAN 通道1收到消息123反應 on message* /對所有消息反應 on message 100-200 /對100-200間消息反應2、鍵盤事件 on key 0x20 /按空格鍵反應 on key F1 /按F1鍵反應 on key Ctrl
10、-F12 /按Ctrl + F12鍵反應 on key PageUP /按PageUp鍵反應on key Home /按Home鍵反應 on key * /按所有鍵反應on key a/對按鍵a反應on key /對空格反應3、時間事件定時器聲明 msTimer myTimer; /將myTimer 申明ms為單位的變量 timer myTimer; /將myTimer 申明s為單位的變量定時器函數 setTimer(myTimer,20); /將定時值設定為20ms,并啟動 cancelTimer(myTimer); /停止定時器myTimer定時器事件 on timer myTimer /
11、對myTimer 設定的時間到反應4、環境變量事件環境變量函數 getValue() /獲取環境變量的值 putValue() /設置環境變量的值環境變量事件 on envVar XXX5、輸出文本WriteWindow write函數int h=100;char ch=a;char s1008=“hundred”;write(“Hundred as a number:%d,%x”,h,h);write(“Hundred as a string:%s”,s100);write(“The square root of two is %6.4g”,sqrt(2.0);3.4.4 CAPL響應1、對
12、的報文響應on message 0x64if(this.byte(2)=0xFF)write(“Third byte of the message is invalid”);on message MotorDataif(this.temperature.phys>=150)write(“Warning: critical temperature”);2、對鍵盤響應on key a message MotorData mMoDa;mMoDa.temperature.phys=60;mMoDa.speed.phys=4300;output(mMoDa);on key b message 10
13、0 m100= dlc=1;m100.byte(0)=0x0B;output(m100);3、定時器處理Variablesmessage 0x555 msg1 = dlc=1;msTimer timer1;on startsetTimer(timer1,100);on timer timer1setTimer(timer1,100);msg1.byte(0)=msg1.byte(0)+1;output(msg1);4、環境變量的處理on envVar evSwitchmessage MotorData msg;msg.bsSwitch = getValue(this);output(msg);
14、3.5 CANoe數據庫在一個聯網的總線系統上的所有數據和它們之間的相互關系,通常都存儲在一個集中數據庫中,CANoe提供一個數據庫編輯器,在這里可以隨意的創建和更改數據庫中的信息。由數據庫編輯器創建的數據庫可以被各個程序和工具調用,如圖3-6所示。數據庫中的兩個對象之間可以通過關聯建立聯系。例如,將一個信號和一個報文關聯,就可以決定在哪條報文中發送這條信號,可能的關聯關系見表3-2。表3-2數據庫中可關聯的對象圖3-6數據庫和其他應用下面對CANoe中的數據庫中的各種對象做一下簡要說明:整車即整車上的網絡系統,可能包括一個以上的總線網絡,相互之間由網關進行連接。網絡:通常包括多個控制單元,控
15、制單元被連接到同一個總線上,通過總線交換信息。控制單元:控制單元是在網絡中分布的執行單元??刂茊卧ㄟ^屬于它的網絡節點和網絡交換信息。一個控制單元可以包括多個網絡節點。環境變量也被指派到不同的控制單元。因為控制單元在網絡中不是獨立的,在CANoe測試運行的時候不能改變控制單元的名稱和描述。環境變量:CANoe提供環境變量來模擬網絡節點針對功能總線做出的反應。環境變量由系統環境中的事件和狀態來描述,如外界壓力,溫度,開工位置等。通過用戶定義的控制面板可以隨意地更改環境變量,也即改變系統環境中的狀態。在CAPL中對于環境變量變化做出反應的事件可用“on envVar”語句來描述。GetValue(
16、)語句和putValue()語句用來讀和寫環境變量。環境變量由以下系統參數來定義,l 符號化的名稱l 數據類型,包括整型,字符串,浮點型,數據型等l 修改權,包括無限制,只讀(傳感器型),可寫(執行元件型),特定控制器可讀寫等l 單位,機環境變量的物理單位l 最大最小值l 長度l 注釋網絡節點:網絡節點是控制單元和網絡交換數據的接口,控制單元通過網絡節點從網絡收發信息。網絡節點由以下系統參數來定義l 符號化的網絡節點名稱l 地址節點組:多個網絡節點可以組成節點組,例如,網絡上所有同一家制造商提供的節點可以組成一個節點組。節點組也可用來構建網絡的變種,所有車型變種都會用到的節點可以組成一個節點組
17、,這個節點組和網絡的所有變種相關聯,選裝的網絡節點再單獨和網絡關聯。報文:即在總線上傳遞的報文信息,由以下系統參數定義,l 符號化的報文名稱l 識別位(CAN ID),在一個網絡中必須統一分配,不能重復使用l 字節數l 傳遞類型l 循環時間(如果報文被周期性的發送)l 網絡節點,即發送這條報文的網絡節點l 報文信號l 注釋信號:l 信號是信息的最小單元,由以下系統參數定義l 符號化信號名稱l 信號長度l 格式l 數據類型l 系數,基準和物理單位。“原始值”是網絡上傳遞的實際數據,“物理值”是真實反應的物理量大?。ㄈ缢俣?,轉速,溫度等)。信號轉換公式用于把原始值轉換成物理值:物理值(原始值
18、15;系數)基準。l 初始值。用物理值來定義。l 最大和最小值。用物理值來定義。l 單位。物理量的單位。l 注釋3.6 CANoe主窗口設計CANoe主程序中包括以下窗口:a.模擬設置窗口模擬設置窗口中圖形化顯示被模擬的總線和網絡節點。在模擬設置窗口中,模擬總線用紅線來表示,真實總線用黑線來表示。它們之間通過PC卡連接在一起。如圖3-7所示。圖3-7仿真設置窗口b.測量設置窗口測量設置窗口中顯示數據流的示意圖,包括數據源,基本功能塊,熱點,數據接受器等。在在線模式下CAN卡作為數據源,記錄總線上的報文并把它們發到CANoe。測量窗口下的數據流是有方向的,總是從左邊的連接符號(連到模擬設置窗口)
19、流向右邊的評價窗口。測量設置窗口例子如圖2-6所示。圖3-8測量配置窗口c.跟蹤窗口所有到達跟蹤塊的輸入的數據都以文本形式在跟蹤窗口中顯示。圖3-9顯示了跟蹤窗口的一個例子。圖3-9跟蹤窗口D.圖形窗口圖形窗口用來顯示信號隨時間的變化。如果使用了數據庫,信號的值可以直接作為物理變量顯示在圖形窗口上,如發動機轉速可以直接以“轉/分”的單位顯示。e.寫窗口寫窗口在CANoe中有兩個作用:第一,測量過程中的重要系統信息在這顯示,如:測量開始和結束的時間,預設的波特率,記錄功能的觸發,測量結束后的統計報告等。第二,在CAPL編程中用了“write()”語句輸出的信息都在這顯示。f.數據窗口數據窗口中顯
20、示信號的值,信號即CAN報文中的一個數據段,如發動機控制器發出的CAN報文中的某一段表示發動機轉速。如果用了數據庫功能,那么在數據窗口中的數據可以以物理變量的形式顯示,如發動機轉速可以以“轉/分”的單位顯示。在數據窗口中被顯示的信號要預先定義好。g.統計窗口統計窗口總可以顯示總線上報文之間的平均間隔時間,也可顯示每秒總線上的報文數量。同時還可以后臺統計所有活動的總線,其結果可以顯示在寫窗口中,也可以儲存下來。f.總線統計窗口顯示如總線負載率,峰值負載,錯誤幀等統計信息,如圖3-10所示圖3-10總線統計窗口第四章燈光控制系統仿真4.1 通信數據庫的建立4.1.1概述進行CAN 網絡系統的開發,
21、開發人員首先需求做的是系統功能的定義,即定義該網絡系統通信對象,根據通信特點選擇所需要的網絡類型,以及選擇網絡的屬性(例如波特率);同時需要考慮網絡里的通信需求:即所需要的節點數目,所需要發送報文(Message)的數量及ID 等;定義報文的收發節點,即每個報文是從哪個節點(源節點)傳送至哪個節點(目標節點);每個報文所包含的具體信號(Signal);定義每個信號的數據類型和對應真實物理值之間的轉換方式,以及信號在報文的數據場中的地址分配等等。在上述定義過程中,可使用Vector 公司的網絡數據庫工具CANdb+,創建和管理前述分布式網絡定義和通信數據,能檢查出概念定義的一些錯誤并及時改正,同
22、時可以幫助工程設計人員對網絡進行優化。另外,在CANdb+中,還可以加上環境變量來描述外部的輸入輸出。本文只進行燈光控制系統的仿真設計,不考慮其它因素,因此通信數據庫比較簡單。在CANoe中工具選擇CANdb+數據庫編輯器,新建一個數據庫,命名為Vehicle_light。4.1.2報文的建立報文即網絡節點發送的一幀數據信息,在CANoe中主要定義標識符和數據位,其他部分由CANoe根據CAN協議來完成。對報文進行命名時要注意統一規范并且要便于理解,如全部以“m”開頭,代表這是“Message”,燈光控制器發送的第一條報文為“mLight_1”,第二條為“mLight_2”,儀表控制器發送的第
23、一條為“mMeter_1”等,有的控制器在目前雖然只發一條報文,但是為了以后擴展方便,應同樣加上編號。接下來在同一網絡中對信息進行標識符分配,因為在CAN通訊中標識符直接決定了報文的優先級,所以對于標識符的分配非常重要,對于比較緊急的情況報文應具有較高的優先級。中因本文只需要定義一條報文,所以標識就沒有什么意義了,定義報文ID為0x01。在數據庫左側樹目錄中選擇message項,右擊選擇new彈出報文定義對話框,在對話框中可以定義報文的名稱、ID、幀類型等。如圖4-1所示圖4-1 創建報文4.1.3信號的建立信號即報文中的某一段,代表某一個物理量或信號,是CAN中信息傳遞的最小單位。同樣對于信
24、號的命名要注意同樣規范和便于理解,例如以“jinguang”代近光燈信號,以“Bwudeng”代表后節點霧燈信號。對于數值量來說,所表示數值的范圍和需要的精度決定了系數和基準,如轉速信號,如果要精確到0.125轉/分,就以0.125為系數,精度越高,表示同樣范圍的數據就需要占用更多的數據位。如發動機轉速,以0.125為系數,占用16位(2個字節),可以表達最大為8191.875轉/分的轉速,如果要表示負的量,如冷卻液溫度等,就把需要表達的最低值定為基準,如-40,CANdb+Editor中可以自動根據基準值和參數以及信號所占的位數來計算信號的最大值和最小值。對于開關量,只占用一位,在值定義里說
25、明含義,如“0”代表關,“1”代表開。在數據庫左側樹目錄中選擇Singel項,右擊選擇new彈出信號定義對話框,在對話框中可以定義信號的名稱、位索引類型、值類型、物理單位,系數、偏移量等。如圖4-2所示圖4-2創建信號本文定義的和燈光通訊相關的信號如表4-1所示。表4-1 定義的信號定義好報文和信號后還要將報文和信號進行關聯,報文與信號關聯有多種方式,可以在定義報文時直接加入關聯的信號,或在定義信號時加入關聯的報文,還可以在數據庫左側樹目錄中直接選擇一個信號按住左鍵拖到要關聯的報文下,報文和信號進行關聯時,需要確定信號在報文中的起始位置,可能值為063。在CANoe中將信號和報文關聯完畢后,在
26、報文屬性的Layout窗口中可以非常直觀地看到信號在報文中的分布情況,如圖4-3所示,一幀報文的8個字節64位以表格的形式被直觀地表達出來,在這個表格中,可以看到64位的每一位各被什么信號占用,每個信號占用的位的長度和起始終止位置。4.1.4環境變量的建立環境變量的命名也需要注意規范和便于理解,如以“SW1”代表開關1的控制型環境變量,“Ljinguang”代表近光燈顯示型環境變量。這樣的統一命名對于后期的使用非常有利。在數據庫左側樹目錄中選擇Environment項,右擊選擇new彈出環境變量定義對話框,在對話框中可以環境變量的名稱、值類型、最大值,最小值等。如圖4-3所示圖4-3 環境變量
27、的定義本項目中建立的環境變量清單如表4-2所示:表4-2 定義的環境變量4.2建立虛擬節點對于一個和CANoe相連的真實網絡來說,所有CANoe發出的報文信號都是從CANoe的CAN(CANcaseXL)卡發出的,但是在CANoe軟件內部,不同的報文信號是由不同的虛擬節點發出來的,為了仿真燈光控制系統,需要在CANoe軟件里創建各個節點。接下來就要在CANoe的Simulation Setup窗口中構建虛擬網絡,包括各個被模擬的節點。完成純數字仿真Simulation Setup窗口初始界面如圖4-4所示圖4-4Simulation Setup初始界面圖中的方框代表一個總線系統,紅線代表虛擬的
28、總線,黑線代表實際的總線,CANoe提供的CAN卡(CANcaseXL)是虛擬總線和實際總線之間的接口。右鍵點擊這兩條線,出現如圖4-5所示界面:圖4-5 加入網絡節點Insert network node可以在總線上加入一個網絡節點;Insert test module可以在總線上加入一個測試模塊;Insert generator block可以在總線上加入一個發生器(可以不用capl語言就可以在總線上發出想傳送的信息);Insert interactive generator block可以在總線上加入一個內部發生器(可以在用measurement監測的時候就能對設定的動作進行操作,發出信
29、息);Insert replay block CAN可以在總線上加入一個重放模塊,只需在其中設置measurement中的log保存下來的*.asc文件進行播放,就可以立即模擬出剛才總線上報文發送的情況;Switch all blocks to simulation即把所有總線上的模塊立即與總線相連;Switch all blocks to real-time mode即把所有總線上的模塊立即與總線斷開。在Simulation Setup中加入以下的虛擬網絡節點:Main主控制器Front前車燈控制器Back后車燈控制器虛擬節點建立設置完畢后,還要將上一章中建立的數據庫和此Simulation
30、 Setup總線關聯,在右側樹狀圖右鍵點擊Databases,出現如圖4-6所示界面:圖4-6 加入數據庫點擊ADD可加入數據庫,如Vehicle_Light.dbc。完成后的Simulation Setup如圖4-7所示。圖4-7 完成的模擬設置窗口4.3創建面板面板編輯器中創建的面板是人機交互的界面,通過面板可以以直觀的方式讓CANoe按操作者的意圖發送出相應的CAN報文 4.3.1建立控制面板在CANoe工具中選擇Panel editor,然后在面板上添加開關和燈,設計控制面板如圖4-8所示:圖4-8 控制面板開關用于輸入控制值,燈根據開關狀態亮滅。面板上的控件都要和相應的環境變量相關聯
31、, 選擇一控件右擊配置,打開環境變量配置對話框如圖4-9所示。設置關聯的環境變量。對于顯示燈除了和相關的顯示環境變量關聯外,還需要指定對應的位圖,位圖上有開關的不同狀態的顯示,設置和位圖如圖4-10所示。圖4-9開關型環境變量的配置圖4-10顯示燈設置完成面板設計后需要將設計的面板加到CANoe中,在CANoe中選擇PanelConfigure panels,打開添加對話框,如圖4-11所示。單擊add可以添加面板,display顯示選擇的面板,display all顯示所有面板。圖4-11 添加面板4.4 CAPL編程界面完成后,CANoe還不能根據對界面操作發出CAN報文或根據CAN報文在
32、模擬面板作出相應反應,為了達到這一目的,還必須進行CAPL編程的工作,主控節點程序框圖如圖4-11所示:否初始化(on Start)設置循環發送間隔時間(timer)開關狀態是否改變?根據開關狀態給相應信號賦值發送報文是否是時間到?圖4-12主控節點程序流程框圖前后車燈節點程序流程圖是否接收到報文?初始化,設置定時器間隔時間根據接收的報文,為顯示燈賦值是否圖4-13前后節點程序流程框圖接下來以主控節點和前車燈節點為例,說明CAPL編程過程。CAPL是類C的編程語言,在編程界面的左側樹狀圖中分別有變量聲明,系統,CAN控制器,報文,定時器,鍵盤,錯誤幀,環境變量,函數等項,如圖4-12所示,只需
33、在分別在相關欄目中寫入程序即可。變量聲明程序如下:variablesmessage Light Msg1;mstimer timer1;以上程序中,將msg1設置為信息變量,并且和Vehicle_Light數據庫里的信息相關聯,將timer1設置為以ms為單位的時間變量。圖4-14CAPL編程System的啟動部分主要進行一些初始化的工作,程序如下:on startsettimer(timer1,200);以上程序首先將相關的報文信號初始化置零,然后發出首條初始報文,根據設定的發送時間間隔設置時間變量值,最后在write窗口給出提示信息。Timer部分是定時器相關的設置,程序如下:on tim
34、er timer1settimer(timer1,200);output(Msg1);以上程序段在time1r定時器到時msg1報文,并且重新設時器100ms。Environment部分對環境變量的改變做出反應,程序如下:on envVar Szhidongif(getvalue(this)=1)Msg1.zhidong=3;elseMsg1.zhidong=0;output(Msg1);以上程序段在開關狀態發生改變時(通過對控制面板的操作實現),將根據開光狀態對相應的報文里的相關信號賦值,環境變量的值是通過getvalue函數得到的。復制后CANoe下次發出此條報文時,里面的信號的值都已根據
35、控制面板的變化發生了相應變化。4.5仿真結果分析按以上步驟建好節點功能模型和面板后,即可進行系統的軟件仿真。首先設置軟件為仿真模式,在工具欄上選擇開始按鈕即開始仿真。報文發送情況如圖4-16所示:圖4-16 數據跟蹤窗口仿真過程中總線的負載和各種統計數據如圖4-17所示圖4-17總線統計窗口從仿真結果可以看出報文發送情況良好,總線負載為0.42%,峰值負載為0.58%第五章 軟件設計由于時間關系,本文不進行燈光系統的硬件電路設計,采用周立功單片機實驗箱模擬真實節點的ECU,采用SJA1000CAN控制器,進行系統的軟件設計,5.1 SJA1000初始化CAN控制器在上電或硬件復位后必須進行初始
36、化操,然后才能進行發送和接收數據。SJA1000 CAN控制器的初始化主要設置以下幾項內容:通信方式、濾波方式、驗收濾波器設置、總線定時等。SJA1000初始化流程圖如下:開始初始化工作方式設為復位模式設通信方式為PeliCAN設驗收代碼和驗收屏蔽寄存器設通信波特率輸出控制字清除錯誤代碼寄存器初始化結束設濾波工作方式SjA1000初始化程序如下:void SJA1000_Config_Self(void) SJAEntryResetMode(); /進入復位模式WriteSJAReg(REG_CAN_CDR,0xc8); /選擇PeliCAN模式 SetBitMask(REG_CAN_MOD,
37、AFM_BIT); /選擇單濾波模式 WriteSJARegBlock(16,&CAN_Baudrate_Filter_Buffer1,8); /設置驗收代/碼/屏蔽寄存器 WriteSJAReg(REG_CAN_OCR,0x1a);/設置輸出管腳 SJASetBaudrateStandard(CAN_Baudrate_Filter_Buffer0); /設置總線定時/器,確定波特率 SJAQuitResetMode();/退出復位模式5.2 節點的發送程序發送節點報文發送采用周期查詢方式,只要總線空閑就可向總線上發送報文,發送節點程序流程圖如下: 開始讀狀態寄存器發送緩沖區空閑?寫發送標識符寫發送數據置發送請求位結束YN節點發送程序如下:Send_Message()while(1)if(ReadSJAReg(REG_CAN_SR)&0x0c)=0x0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 血液科教學課件-白血病
- 【中職思想政治】《哲學與人生》期末必刷題(高教版2023基礎模塊)第6課 用對立統一的觀點看問題答案
- 《酶的特異性》課件
- 書法藝術解析
- 2026屆新高考地理精準復習:海氣相互作用
- 建筑講座-混凝土課件
- 《代理中介業務》課件
- 幼兒園小班科學《認識昆蟲》課件
- 2025:勞動合同新能源汽車行業的發展前景
- 幼兒園小班科學《泥土里的秘密》課件
- 馳眾AGV產品介紹
- 我驕傲我是中國人詩歌朗誦背景
- 2022年陜西省普通高中學業水平考試生物試題 含答案
- 中考語文復習之圖文轉換課件
- 鋼框架計算書
- 高中1.安培力沖量模型(PPT講解版)
- 中央企業違規經營責任追究實施辦法解讀共40張課件
- Excel模板-中國地圖填色圖
- 用戶思維課件
- 中國石油天然氣集團公司建設項目其他費用和相關費用的規定
- 鄒萃文書法《惜時如金》課件
評論
0/150
提交評論