sja1000 can通信模塊bus開發(fā)步驟_第1頁
sja1000 can通信模塊bus開發(fā)步驟_第2頁
sja1000 can通信模塊bus開發(fā)步驟_第3頁
sja1000 can通信模塊bus開發(fā)步驟_第4頁
sja1000 can通信模塊bus開發(fā)步驟_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

CAN-bus—CAN-busControllerArework即控制器局域網(wǎng)是國際上應(yīng)用最廣泛的現(xiàn)場總線之一起先CAN-bus被設(shè)計作為汽車環(huán)境中的微控制器通訊在車載各電子控制裝置ECU之間交換信息形成控制網(wǎng)絡(luò)比如發(fā)動機管理系統(tǒng)變速箱控制器儀表裝備電子主干系統(tǒng)中均嵌入CAN置CAN-bus是一種多主方式的串行通訊總線基本設(shè)計規(guī)范要求有高的位速 電磁干擾性而且10Km時CAN-bus5Kbps的數(shù)據(jù)傳輸速率由于CAN串行通訊總線具有這些特性它很自然地在汽車制造業(yè)以及工業(yè)中受到廣泛應(yīng)用作為一種技術(shù)先進(jìn)可靠性高功能完善成本合理的網(wǎng)絡(luò)通訊控制方式CAN-bus已被廣泛應(yīng)用到各個自動化控制系統(tǒng)中從高速的網(wǎng)絡(luò)到低價位的多路接線都可以使用CAN-bus例如在自動控制智能電力系統(tǒng)安防等各領(lǐng)域CAN-bus都具有不可比擬的優(yōu)越性二學(xué)習(xí)方法CAN-bus之間的關(guān)系是相輔相承協(xié)作無間才能構(gòu)成一個實際運行的CAN-bus通訊網(wǎng)絡(luò)控制系統(tǒng)站在一個實際項目的角度可能只需要取其中一些環(huán)節(jié)就足夠于具體應(yīng)用許多與CAN-bus相關(guān)的知識點是緊密銜接CAN接口卡或用戶設(shè)備模塊進(jìn)行網(wǎng)絡(luò)通訊自然而然就會對CAN2.0A/B協(xié)議與加深理解還能夠同時掌握與通訊協(xié)議相基礎(chǔ)理論BOSCH制定的CAN2.0A/B協(xié)議可能是CAN-bus技術(shù)中最枯燥的章節(jié)單獨地去理解這些CAN-bus幀信息波形一邊對照一邊分析CANCANCAN-bus通訊網(wǎng)絡(luò)例如CANstarter開發(fā)套件然后進(jìn)CAN-bus幀通訊接收/發(fā)送/故障等測試會對理解CAN2.0A/B協(xié)議起到比較好的幫助作用下圖是用示波器捕獲的一個CAN-bus幀信息數(shù)據(jù)幀的波形分別為CAN-HCAN-L引腳波形相減即為差分信號信號包括幀起始仲裁場控制場數(shù)據(jù)場CRC場應(yīng)答場幀結(jié)尾等部分報文傳輸由數(shù)據(jù)幀幀錯誤幀過載幀表示和控制數(shù)據(jù)幀/幀通過幀間空間相分隔 8N(0N 2 End 11 415 2.1CAN-bus標(biāo)準(zhǔn)報文幀下圖為CAN-bus擴展報文幀的波形示意圖 8N(0N 11 18 4152.2CAN-bus擴展報文幀下圖為CAN-bus幀的波形示意圖

Endof010110011111111111msb

18lsb0

4

15bits圖2.3CAN-bus幀下圖為CAN-bus錯誤幀的波形示意圖 000000011111111Error

2.4CAN-bus例如使用示波器捕獲一個報文幀標(biāo)準(zhǔn)數(shù)據(jù)幀CAN-HCAN-L圖 CAN目前許多大的廠商都生產(chǎn)有各類CAN控制器收發(fā)器但在歐洲由PHILIPS生產(chǎn)的SJA1000CAN收發(fā)器占領(lǐng)著大部分CAN應(yīng)用領(lǐng)域至2002年累計已生產(chǎn)有10億個CAN芯對于不同的應(yīng)用領(lǐng)域應(yīng)該向用戶提供不同的組合包括合適的CAN收發(fā)器CAN控制器或者內(nèi)嵌CAN控制器的處理器分型簡2CAN通道LQFP642/4CAN通道TQFP14488xC51通 適合Devic網(wǎng)絡(luò)控制應(yīng)適 Devic網(wǎng)表 針對這一系列ZLGCAN已制作了很容易編程的程序庫使得工程師可以在不需要深入理解CAN2.0協(xié)議及結(jié)構(gòu)的基礎(chǔ)上就能方便地實現(xiàn)CAN通訊比如針對SJA1000就只需調(diào)用初始化發(fā)送接收命令并編寫簡單的錯誤處理程序就可以實現(xiàn)與CAN相關(guān)的所有操作從而可以將的精力用于產(chǎn)品的通訊協(xié)議功能操作顯示等方面ARM7FullCAN函數(shù)庫P87C591CANPeliCAN模塊SJA1000PeliCAN函數(shù)庫SJA1000BasicCAN函數(shù)庫CAN-busCAN-bus開發(fā)工具ZLGCAN系列CAN工具品種眾多規(guī)格齊全能夠向客戶提供多種層次的選擇不僅具有與國際產(chǎn)品相近甚至的性能又有適合國情的價格性能價格比一流由于CAN-bus是一個串行通訊網(wǎng)絡(luò)單個CAN節(jié)點的調(diào)試存在局限性也會產(chǎn)生許多并不能CAN-bus在網(wǎng)絡(luò)中需要建立1個基于PCCAN節(jié)點可使用ZLGCAN接口卡等才能夠有效地對CAN-bus網(wǎng)絡(luò)通訊進(jìn)行實時調(diào)試/ZLGCAN可以提供CANstarter開發(fā)套件CAN原型開發(fā)板仿真器CAN接口卡CAN分析儀CAN協(xié)議轉(zhuǎn)換器CAN中繼器等產(chǎn)品部分型號已經(jīng)通過多個行業(yè)企業(yè)的實際運試其中包括很多知名的大型企業(yè)產(chǎn)品性能與質(zhì)量受到客戶信賴通訊協(xié)議在建立一個實際運行的CAN-bus通訊網(wǎng)絡(luò)時由CAN底層硬件來實現(xiàn)對物理層數(shù)據(jù)鏈路層的控制CAN2.0協(xié)議規(guī)定的通訊檢錯機制已足夠保證CAN-bus通訊網(wǎng)絡(luò)具有非常高的可靠性但對于用戶協(xié)議層仍然需要制定或選擇合適的通訊協(xié)議對網(wǎng)絡(luò)上的通訊數(shù)據(jù)流進(jìn)行解析與管理CAN-busCAN-bus CAN_LCAN_L CAN-ID+ID+2.7CAN對于普通的CAN-bus應(yīng)用領(lǐng)域采用通常的命令響應(yīng)模式通訊協(xié)議即可以實現(xiàn)非??煽壳矣行У闹鲝耐ㄓ嵕W(wǎng)絡(luò)對于需要進(jìn)行大量數(shù)據(jù)交換或者通訊方式靈活的CAN-bus網(wǎng)絡(luò)也可以采用一些標(biāo)準(zhǔn)的多主通訊協(xié)議比如HilonB協(xié)議或者采用CAN2.0協(xié)議中幀定義在產(chǎn)品領(lǐng)域通??蓞⒖蓟蛑苯硬捎肧AEJ1939等一系列國際在電力通訊設(shè)計領(lǐng)域DevicV2.0規(guī)范已被采納為是未來數(shù)年中電力通訊產(chǎn)品ModbusRS485模式等主從協(xié)議以保持產(chǎn)品的可持續(xù)發(fā)展并可以節(jié)省開發(fā)人力資源CAN-bus比如網(wǎng)絡(luò)保護(hù)CAN-busECU之間交換信息形成控制網(wǎng)絡(luò)基本設(shè)計規(guī)范要求有高的位速率電磁干擾性而且能夠檢測出產(chǎn)生的任何錯誤主要是用在強干擾環(huán)境室外通訊等場合因此CAN-bus收發(fā)器已具備一些保護(hù)功能新一代收發(fā)器比如TJA1040TJA1041TJA1054等更具備很完善的保護(hù)功能但在一些通訊場合或TVS溫度保護(hù)PTC共模扼流圈防雷擊裝置極性保護(hù)等以防止雷擊浪涌極性反接等以預(yù)防故障發(fā)生起良好的保對于通訊電纜使用國標(biāo)AWG18截面積為0.75mm2的普通雙絞線一般可以保證在CANCAN1KM則建議通訊電纜線的截面積大于常規(guī)方式是隨通訊距離的加長而適當(dāng)加大電纜線截面積在強干擾的應(yīng)用環(huán)境下建議選擇有層的通訊電纜線此時通訊電纜線應(yīng)單端良好接地如果設(shè)備要求符合CAN協(xié)議DevicCANopen等三雖然CAN-busCAN-bus通訊網(wǎng)絡(luò)即使對非常熟悉MCU的用戶來說這也不是那么簡單的事ZLGCAN提供了非常完善的CAN-bus技術(shù)支持依靠ZLGCAN提供的設(shè)計文檔開發(fā)工具等幫助CAN-bus通訊網(wǎng)絡(luò)要知道 就以設(shè)計并調(diào)試一個完整的CAN-bus通訊網(wǎng)絡(luò)包括為SJA1000的2個通訊節(jié)點為例詳細(xì)介紹這個學(xué)習(xí)設(shè)計調(diào)試的過程 CAN-bus圖 CAN-bus網(wǎng)絡(luò)采用直線結(jié)構(gòu)在一個網(wǎng)絡(luò)上至少存在2個CAN-bus節(jié)點在總線的2個終端1120ù終端電阻如果節(jié)點數(shù)目大于2中間節(jié)點就不要求安裝120ù終端電阻CAN-bus5Kbps10Km距離在1Mbps下能夠傳輸40m距離對于支線其長度一般不應(yīng)超過3米如果直接采用國際則對干線支線有更嚴(yán)格的要求CAN-busCAN_H連接在一起CAN_L連接在一起當(dāng)總線上有1信號時CAN_HCAN_L之間壓差0.9V稱顯性當(dāng)總線上有0信號時CAN_HCAN_L之間壓差0.4V稱隱性圖 以一個參考的CAN-bus節(jié)點電路為例進(jìn)行分析介紹這個電路的原圖Pro格式存放CANstarter-I這是一個由P87C52+SJA1000+PCA82C250+電氣組成的CAN-bus標(biāo)準(zhǔn)節(jié)點電路SJA1000選用XDATA空間的0x7F00地址頁如果是一個簡單的應(yīng)用則可以省略電氣電路如果用于強干擾場合則需要補充前面章節(jié)所述的保護(hù)電路SJA1000的復(fù)位電路受P87C52IO引腳控制這一點需要注意SJA1000地址圖

控制程序的編寫CAN-bus2CAN2.0A格式11IDBasicCAN模式CAN2.0B29IDPeliCAN模式PeliCAN模式的通訊具有更優(yōu)秀的表現(xiàn)且可以兼容BasicCAN模式的通訊因此對于新開發(fā)的CAN-bus設(shè)計項目一般都選擇PeliCAN模式進(jìn)行通訊ZLGCAN提供有BasicCAN模式PeliCAN模式下SJA1000的操作函數(shù)庫支持A51C51SJA1000_PELIC51語言版無需自行開發(fā)關(guān)于SJA1000的控制程序?qū)JA1000的操作主要由3個功能環(huán)節(jié)組成初始化發(fā)送幀接收SJA1000的初始化過程比較繁瑣好在CANstarter-I開發(fā)套件中也提供有完整的初始化示范源程序直接調(diào)用即可根據(jù)程序分析SJA1000的初始化工作分成10個步驟完成步操作對象函數(shù)定義123456789表 SJA1000初始化過注意SJA1000初始化時必須確定的硬件復(fù)位已經(jīng)完成即復(fù)位引腳已變?yōu)闋钔ㄟ^SJA1000發(fā)送CAN幀報文接收CAN幀報文也可以在SJA1000_PELI函數(shù)庫中直接REVSJADATA(unsignedchar*REV_BUFFER,unsignedcharlen); 時注意其參數(shù)寄存器這也與SJA1000_PELI函數(shù)庫相關(guān)直接調(diào)用以下函數(shù)通訊協(xié)議的編制通訊協(xié)議的選擇可以根據(jù)具體應(yīng)用項目而決定相關(guān)的詳細(xì)情況請參一章節(jié)的有關(guān)內(nèi)容下 令響應(yīng)模式為例說明在此過程中需要注意的一些習(xí)慣事例主節(jié)點發(fā)送命令時遵循主節(jié)點發(fā)命令等從節(jié)點發(fā)回應(yīng)OK模式即主節(jié)點下達(dá)一命令在幀報文轉(zhuǎn)輸過程中任一幀報文均包含有接收方需要對報文進(jìn)行處理與比較當(dāng)主節(jié)點發(fā)送命令后未收到響應(yīng)則嘗試重發(fā)由硬件或軟件完成累計達(dá)到設(shè)定的次數(shù)時即向應(yīng)用程序報告通訊失敗請求進(jìn)行檢測與CAN-busCAN-bus網(wǎng)絡(luò)使用PeliCANCAN硬件電路功能但也不能夠測試與CAN-bus網(wǎng)絡(luò)密切相關(guān)的通訊參數(shù)比如通訊波特率驗收濾波器總線仲裁網(wǎng)絡(luò)負(fù)借助于一套有ZLGCANtest通用測試軟件支持ZLGCAN接口卡就可以方便地CAN-bus網(wǎng)絡(luò)通訊數(shù)據(jù)或者模擬單個CAN-bus節(jié)點的行為向網(wǎng)絡(luò)發(fā)送CAN-bus幀報文以提供給其它節(jié)點接收信息以使用Cyst分析軟件可以實時每一秒的CAN-bus總線負(fù)載率總線傳輸數(shù)據(jù)時間/總時間以在強大的開發(fā)工具幫助下CAN-bus3.4ZLGCANtest測試軟件界面經(jīng)歷以上步驟即已成功建立一個CAN-bus通訊網(wǎng)絡(luò)CAN-busCAN-bus網(wǎng)絡(luò)能夠真正實施的實際運行項目CAN-bus通訊網(wǎng)絡(luò)功能強大領(lǐng)先于眾多串行通訊應(yīng)用領(lǐng)域在具體的應(yīng)用項目中客戶需要適當(dāng)裁剪以經(jīng)濟可靠的方式組建自己的CAN-bus通訊網(wǎng)絡(luò)組態(tài)開發(fā)為能夠使的用戶可以容易地體驗設(shè)計CAN-bus通訊網(wǎng)絡(luò)ZLGCAN系列產(chǎn)品提供OPC接口支持在流行的組態(tài)軟件環(huán)境國內(nèi)MCGSKingViewIntouchiFix等開發(fā)用戶自己的CAN-bus網(wǎng)絡(luò)項目如果大家在設(shè)計/CAN-bus網(wǎng)絡(luò)相關(guān)的通訊規(guī)范產(chǎn)品信息控制網(wǎng)絡(luò)拓展應(yīng)用等請與cantools@郵箱聯(lián)系四網(wǎng)絡(luò)通訊連接所有符合CAN2.0規(guī)范的節(jié)點可以連接在一起構(gòu)成一個直線結(jié)構(gòu)的CAN-bus通訊網(wǎng)絡(luò)在網(wǎng)2個終端各需要安裝1120ù終端電阻中間節(jié)點不要求安裝120ù終端電阻CAN-busCAN節(jié)點的通訊波特率必須一致CAN-bus網(wǎng)絡(luò)的干線長度與通訊波特率成反比通訊波特率為5Kbps時能夠傳輸10Km距離為1Mbps時能夠傳輸40m距離CAN2.0BPeliCANCANCAN2.0BBasicCAN規(guī)范CAN幀報文反之則不行即CAN2.0B規(guī)范是擴展的規(guī)范并向下兼容CAN2.0A規(guī)范CANCAN-bus的CAN節(jié)點在CAN-bus網(wǎng)絡(luò)中是不可見的即使它們已經(jīng)存在物理連接通訊波特率設(shè)置CAN節(jié)點的通訊波特率必須與所在CAN-bus總線一致下面以SJA1000為例說明通訊波特SJA1000CANCANBTR0BTR13個參數(shù)共同決定SJA1000BTR0BTR1的設(shè)置值CAN系統(tǒng)時鐘周期SYNC_SEGTSEG1TSEG2SJWNBTCAN2.0CAN節(jié)點之間能夠力保正??煽客ㄓ嵰虼私ㄗh直接采用國際CiA推薦的SJA1000波特率設(shè)置值如下表所示(Kbps(Hex(Hex(Hex(Hex4.1SJA1000同時需要注意計算得出的CAN通訊波特率也僅是適合一個具體數(shù)值范圍內(nèi)的通訊波特率這意100KbpsCAN90Kbps110KbpsCAN節(jié)有關(guān)這一方面的理論資料可以參考確定SJA1000CAN控制器的位定時參數(shù)等相關(guān)文檔單片機與嵌入式系統(tǒng)應(yīng)用等也有相關(guān)的CAN總線位定時參數(shù)的確定等資料載ZLGCAN也提供有一個計算SJA1000通訊波特率的工具供大家參考使用驗收濾波器管理通過合理設(shè)置一個CAN節(jié)點的代碼驗收/寄存器組可對該節(jié)點接收CAN幀信息構(gòu)成非常靈活的濾波從而減少CPU工作負(fù)載提高運行效率通常情況下將代碼寄存器REGCANAMRx組0xFFBasicCAN模式或0xFFFFFFFFPeliCAN模式值即可接收來自CAN總線上的所有CAN信息幀在PeliCAN模式下濾波方式可以設(shè)置為單濾波和雙濾波兩種方式有關(guān)這一方面的詳細(xì)理論資料可以參考CAN控制器SJA1000驗收濾波器原理與應(yīng)用文檔例 設(shè)置PCI-9810接口卡為單濾波方式用于只接收ID為0x0010x003的CAN格式標(biāo)準(zhǔn)數(shù)據(jù)幀REGCANACRxREGCANAMRxID3-XXXX000000000010XXXXID3-XXXX000000000100XXXX即設(shè)置ACR=0x00200000AMR=0x004FFFFFID0x0010x003CAN2.0A錯誤管理機制CANCAN-busCAN2.0規(guī)范中當(dāng)發(fā)送器將自己發(fā)送的電平與總線上的電平相比較發(fā)現(xiàn)兩者不相等時產(chǎn)生當(dāng)隱性位傳輸時,顯形位的檢測在仲裁區(qū)在幀ACK時間段或故障標(biāo)志傳輸期間檢測電平不一致則不會導(dǎo)致位錯誤產(chǎn)生當(dāng)發(fā)送器確定幀信息沒有得到應(yīng)答時發(fā)生在CRC校驗場及幀結(jié)束場之間存在一個應(yīng)答時間段該時間段內(nèi)所有接收的節(jié)點無論是否是預(yù)定的接收者都必須對接收的信息作出應(yīng)答當(dāng)節(jié)點檢測到6個相平值的連續(xù)位時發(fā)生在正常工作情況下當(dāng)發(fā)送器檢測到它已經(jīng)發(fā)送了5個數(shù)值相同的連續(xù)位時那么它將在第六位上一個取反值(稱之為位填充)所有在CRC循環(huán)冗6個連續(xù)的具有相同值的位時即產(chǎn)生一個填充位錯誤CRC當(dāng)CRC(循環(huán)冗余檢查)值與發(fā)送器生成值不匹配時發(fā)生每一幀包含一個由發(fā)送器初始化的循環(huán)冗余檢查(CRC)域計算出CRC值并與發(fā)送器產(chǎn)生的值相比較如果兩個值不相等即產(chǎn)生CRC錯當(dāng)在一必須發(fā)送預(yù)定值的區(qū)內(nèi)檢測到位時發(fā)生確定的預(yù)定義的位值必須在CAN幀內(nèi)的一個確定點發(fā)送比如起始位場間隙等如果在這些區(qū)域中的一個內(nèi)檢測到位值即產(chǎn)生格式錯誤檢測到節(jié)點錯誤將改變節(jié)點錯誤狀態(tài)為了盡量減小網(wǎng)絡(luò)上故障節(jié)點的影響進(jìn)而提供故障界定方法CAN2.0規(guī)范中定義了一個故障界定狀態(tài)機制一個節(jié)點可能處于下列三種錯誤狀態(tài)之一錯誤主動(ErrorActive)6個連續(xù)的顯性位組成這一發(fā)送將覆蓋其他任何同時生成的發(fā)送并導(dǎo)致其他所有節(jié)點都檢測到一個填充錯誤并依次放棄當(dāng)當(dāng)處于錯誤主動狀態(tài)的節(jié)點檢測到一個發(fā)送問題時它將發(fā)出一個活動錯誤幀以避免所有其他節(jié)點接收信息包無論檢測到錯誤的節(jié)點是否要接收這個數(shù)據(jù)它都要執(zhí)行這個過程錯誤(ErrorPassive)狀當(dāng)一個錯誤節(jié)點檢測到上述的某一個錯誤時它將發(fā)出一個錯誤幀該幀由6個連續(xù)的隱性位組成這個幀可能會被同時出現(xiàn)的其他發(fā)送所覆蓋如果其它站點沒有檢測到這一錯誤將不會引起丟棄(BusO

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論