野火stm32hal庫開發(fā)實戰(zhàn)指南源碼優(yōu)先學習1-配套例程h743ii y can協(xié)議中文版_第1頁
野火stm32hal庫開發(fā)實戰(zhàn)指南源碼優(yōu)先學習1-配套例程h743ii y can協(xié)議中文版_第2頁
野火stm32hal庫開發(fā)實戰(zhàn)指南源碼優(yōu)先學習1-配套例程h743ii y can協(xié)議中文版_第3頁
野火stm32hal庫開發(fā)實戰(zhàn)指南源碼優(yōu)先學習1-配套例程h743ii y can協(xié)議中文版_第4頁
野火stm32hal庫開發(fā)實戰(zhàn)指南源碼優(yōu)先學習1-配套例程h743ii y can協(xié)議中文版_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CAN-busV2.0版隨著串行通訊進入應用領域,因此,在一些應用里,需要對通訊功能的報文識別位提出分配標準化的要求。原先的地址范圍由11個識別位定義,如果地址范圍擴大,則這些應用就可以更好地由CAN來實為了區(qū)別標準格式和擴展格式CAN1.2規(guī)范定義,使用CAN報文格式的第一個保留位。因為CAN1.2定義的信息格式相當于標準格式,因此仍然是有效的。此外,由于擴展格式已經(jīng)定義,因此網(wǎng)絡A部介 基本概 報文傳 數(shù)據(jù) 錯誤 過載 幀間空 報文校 編 錯誤處 錯誤檢 錯誤標 故障界 增加CAN振蕩器容 協(xié)議修 用范圍很廣,從高速的網(wǎng)絡到低價位的多路接線都可以使用CAN。在行業(yè)里,使用CAN連接發(fā)動機控制單元、傳感器、防剎車系統(tǒng)、等等,其傳輸速度可達1Mbit/s。同時,可以將CAN安裝在卡車本體電氣特性和數(shù)據(jù)轉換的解釋。為了達到設計以及實現(xiàn)柔韌性,CAN被細分為以下不同的層次:CAN對象層(theobjectCAN傳輸層(thetransfer物理層(thephyical所有由誤檢測、出錯標定、故障界定??偩€上什么時候開始發(fā)送文及什么時候開始接收報文,均在傳輸層里義CAN節(jié)點的層結構(LayeredStructureodaCAN報文濾--錯誤檢測和標-----傳輸速率和定傳位速率(Bit 數(shù)據(jù)請求(RemoteData只要總線空閑,任何單元都可以開始發(fā)送報文。如果2個或2個以上的單元同時開始傳送報文,那么就會有總線。通過使用識別符的位形式仲裁可以解決這個。仲裁的機制確保信息和時間均不會損失。當具有相同識別符的數(shù)據(jù)幀和幀同時初始化時,數(shù)據(jù)幀優(yōu)先于幀。仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被的總線電平進行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送。如果發(fā)送錯誤檢測(Error可以檢測到一報文里多達5檢測到一報文里長度低于15(位)對于沒有被檢測到的錯誤報文,其殘余的錯誤可能性概率低于:報文錯誤率*4.7*1011錯誤標定和恢復時間(ErrorSinallingandRecovery現(xiàn)新錯誤的話,從檢測到錯誤到下一報文的傳送開始為止,恢復時間最多為29個位的時間。故障界定(Fault單通道(Single實現(xiàn)通訊,有許多的方法可以采用,如使用單芯線(加上接地)、2條差分線、光纜等等。這本技術規(guī)范總線值(Bus睡眠模式/喚醒(SleepModeWake-驅(qū)動器被重新設置為“總線”之前,內(nèi)部運行已重新開始。為了喚醒系統(tǒng)上正處于睡眠模式的其他節(jié)點,可以使用一特殊的喚醒報文,此報文具有專門的、最級的識別符。(rrrrrrdrrrr;r=‘’隱性’d= Space StartofArbitrationDataCRCFACKFEndofARBITRATIONRTRBARBITRATIONRTRBFieldFieldDLCDataLength數(shù)據(jù)長度代碼中數(shù)據(jù)字節(jié)數(shù)的編碼(DATALENGTHCODE): DataLengthDataLengthByte0dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rddd,...,CRCCRCFCoFieX15+X14+X10+X8+X7+X4+X3+這個多項式除法的余數(shù)就是發(fā)送到總線上CRC序列(CRCSEQUENCE)。為了實現(xiàn)這個功能,可以使用15位的位移寄存器CRC_RG(14:0)。如果用NXTBIT標記指示位流的下一位,它由從幀的起始CRC_RG //初始化移位寄存XT=NXTBITEXORCRC_RG(14:1) //寄存器左1 XTTHENCRC_RG(14:0)=CRC_RG(14:0)EXOR(4599hex);UNTIL(CRC序列開始或存在一個錯誤條件包含一個單獨的“隱性”位。ACKFACKSl2個位,包含應答間隙(ACKSLOT)和應答界定符(ACKDELIMITER)。在應答場ACKFACKSl應答間隙:所有接收CRC序列(CRCSEQUENCE)的站會在應答間隙(ACKSLOT)期間ACK界定符:ACK界定符是ACK場的第二個位,并且是一個必須為“隱性”的 幀由6個不同的位場組成:以標注為容許范圍里0...8的任何數(shù)值)。此數(shù)值是相應于數(shù)據(jù)幀的數(shù)據(jù)長度代碼。 REMOTEFRAME ControlACKFERROERRORFErrorFsuperpositionErrorDel為了能正確地終止錯誤幀,一“錯誤”的節(jié)點要求總線至少有長度為3個位時間的總線空閑(如果“錯誤”的有本地錯誤的話。因此,總線的載荷不應為100%。有兩種形式的錯誤標志,主動錯誤標志(Activeerrorflag)和錯誤標志(Passiveerrorflag)。CRC界定符的位填充規(guī)則(參見“編碼”),或者破壞了應答場或幀末尾場的固定形式。所有序的總長度最小為6個位,最大為12個位。檢測到錯誤條件的“錯誤”的站試圖通過發(fā)送錯誤標志,以指示錯誤?!板e誤”的站等待6個相同極性的連續(xù)位(這6個位處于錯誤標志的開始)。當這6個相同的位被檢測到時,錯誤然后就開始發(fā)送7位以上的“隱性”位。OVEROVERLOADOverloadFlagOverloadDel由始同時發(fā)送7個以上的“隱性”位。幀間空間(INTERFRAME數(shù)據(jù)幀(或幀)與其前面幀的是通過幀間空間實現(xiàn)的,無論其前面的幀為何類型(數(shù)據(jù)幀、間空間的。空間除了間歇、總線空閑外,還包括稱作掛起傳送(SUSPENDTRANSMISSION)的位場。 BusBusIdINTERFRAMESPACBusIdBusIdINTERFRAME“錯誤”的站發(fā)送報文后,站就在下一報文開始傳送之前或總線空閑之前發(fā)出8個“隱性”的位:幀的部分,諸如幀起始、仲裁場、控制場、數(shù)據(jù)CRC序列,均通過位填充的方法編碼。無論何時,發(fā)送器只要檢測到位流里有5個連續(xù)識別值的位,便自動在位流里插入一補碼位。錯誤(BITERROR)。當發(fā)送器發(fā)送一個錯誤標志但檢測到“顯性”位時,也不視為位錯誤。CRC序列包括發(fā)送器的CRC計算結果。計算CRC的方法與發(fā)送器相同。如果計算結果與接收到CRC序列的結果不相符,則檢測到一個CRC錯誤(CRCERROR)。只要在ACK間隙(ACKSLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會檢測到一個應只要檢測到的錯誤的條件是CRC錯誤,錯誤標志的發(fā)送開始于ACK界定符之后的位(其他的錯誤條件除“錯誤錯誤為位錯誤時,接收錯誤計數(shù)器值不加1。 8例外情況1:位〈填充位〉位于RTR位之前,并已作為“隱性”發(fā)送,但是卻被監(jiān)視為“顯性”)。 88當檢測到第14個連續(xù)的“顯性”位后;在每一附加的8個連續(xù)“顯性”位順序之后。報文成功傳送后(得到應答及直到幀末尾結束沒有錯誤),發(fā)送錯誤計數(shù)器值減1,除非已經(jīng)是0如果接收錯誤計數(shù)值介于1127之間,在成功地接收到報文后(直到ACK間隙接收沒有錯誤,及成功地發(fā)送了應答位),接收錯誤計數(shù)器值減1。如果接收錯誤計數(shù)器值是0,則它保持0,如果大于127,則它會設一值介于119到127之間。128128時,節(jié)點為“錯(不再是“總線關閉”),它的錯誤計數(shù)值也被設置為0備注:一個大約大于標稱位時1標稱位速時間段同步段(SYNC段(PROP采樣點(SAMPLE 時間份額(TIMEQUANTUM)=m*最小時間份額(MINIMUMTIME(m為預比例因子時間段的長度(LengthofTime同步段(SYNC_SEG)為1個時間份額;段(PROP_SEG)的長度可設置為1,2,…,8個時間份額;緩沖段1(PHASE_SEG1)的長度可設置為1,2,…,8個時間份額;相位緩沖段2(PHASE_SEG2)度為階段緩沖段1(PHASE_SEG1)和信息處理時間(INFORMATIONPROCESSINGTIME)之間的最大值;信息處理時間少于或等于2個時間份額。在硬同步(HARD重新同步的結果,使相位緩沖段1增長,或使相位緩沖段2縮短。相位緩沖段加長或縮短的數(shù)量有一個上限,此上限由重新同步跳轉寬度給定。重新同步跳轉寬度應設置于1和最小值之間(此最小值為4,e0如果沿處于同步段里e>0如果沿位于點(SAMPLEPOINT)之前e<0如果沿處于前一個位點(SAMPLEPOINT)之后如果僅僅是將“隱性”轉化為“顯性”的沿用作于重新同步使用,則其他符合規(guī)則1和規(guī)則2的所有重新同步而導致一“隱性”轉化為“顯性”沿,此沿具有正的相位誤差,不能作為重新同步使用。 如果CAN節(jié)點有一信息等待發(fā)送并且節(jié)點在間歇的第三位到一顯性位,則此位被解釋為幀1.58%的容差,并在總線速度125KB/秒時使用一陶瓷諧振器。具有最高振蕩準確度要求的,決定了其他節(jié)點的振蕩準確度。只有在所有的節(jié)點使用增強型的CAN協(xié)議時才能使用陶瓷諧振器。 2基本概 報文傳 數(shù)據(jù) 錯誤 3.2.5幀間空 報文濾 5報文校 編 錯誤處 錯誤檢 錯誤標 故障界 9振蕩器容 控制器局域CAN串行通訊協(xié)議,能有效地支持具有很高安全等級的分布實時控制。CAN應用范圍很廣,從高速的網(wǎng)絡到低價位的多路接線都可以使用CAN。在行業(yè)里,使用CAN連接發(fā)動機控制單元、傳感器、防剎車系統(tǒng)、等等,其傳輸速度可達1Mbit/s。同時,可以將CAN安裝在卡車本體的電子電氣特性和數(shù)據(jù)轉換的解釋。為了達到設計以及實現(xiàn)靈活性,根據(jù)ISO/OSI參考模型,CAN被細分-邏輯鏈路控制子層注:版本的CAN規(guī)范中,數(shù)據(jù)鏈路層的LLC子層和MAC子層的服務及功能分別被解釋為“對象層”和“傳輸層”。邏輯鏈路控制子(LLC)的作用范圍如下:在這里,定義對象處理較為自由。MAC子層的作用主要是傳送規(guī)則,也就是控制幀結構、執(zhí)行仲裁、錯誤檢測、出錯標定、故障界定。總線上什么時候開始發(fā)送文及什么時候開始接收報文,均在MAC子層里確定。位定時的一些普通功能也可以看作MAC子層的一部分。理所當然,MAC子層的修改是受2將節(jié)點的暫時性錯誤和永久性錯誤區(qū)分開來,并且可以自動關閉由OSICAN結構的MAC子層負責報文分幀、仲裁、應答、錯誤檢測和標定。MAC子層也被稱作故障界定的管理實體 LLAcceptanceFilteringOverloadNotificationFrameCoding(Stuffing,Destuffing)ErrorDetectionErrorSignallingPhysicalLayBitTimingBusFailureFauLLC=LogiBusFailureFau位速率(Bit數(shù)據(jù)請求(RemoteDataRequest)會有總線。通過使用了識別符的逐位仲裁可以解決這個。仲裁的機制確保了報文和時間均不損失。當具有相同識別符的數(shù)據(jù)幀和幀同時初始化時,數(shù)據(jù)幀優(yōu)先于幀。仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被的總線電平進行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送。如果發(fā)送可以檢測到報文里多達5個任意分布的錯檢測到報文里長度低于15(位)對于沒有被檢測到的錯誤報文,其剩余的錯誤可能性概率低于:報文錯誤率*4.7*1011錯誤的話,從檢測到錯誤到下一報文的傳送開始為止,恢復時間最多為31個位的時間。故障界定(Fault單通道(Single方法可以采用,如使用單芯線(加上接地)、2條差分線、光纜等等。這本技術規(guī)范不限制這些實現(xiàn)方法總線值(Bus睡眠模式/喚醒(SleepModeWake-的連接。CAN器件可由總線激活,或系統(tǒng)內(nèi)部狀態(tài)而被喚醒。喚醒時,雖MAC子層要等待一段時間使線驅(qū)動器被重新設置為“總線”之前,內(nèi)部運行已重新開始。位定時要求允許憑經(jīng)驗地把陶瓷諧振器使用在傳輸率高達125kbit/s的應用里。有關準確的評估,Dais,S;Chapman,“ImpactofBitRepresentationonTransportCapacityandClockAccuracyinSerialDataSAETechnicalPaperSeries890532,MultiplexinginAutosSP-773March滿足有兩種不同的幀格式,不同之處為識別符場的長度不同:具有11位識別符的幀稱之為標準幀報文傳輸由以下4個不同的幀類型所表示和控制:數(shù)據(jù)幀(DataDATAControlACKFDATAControlACKF標準格式里,仲裁場由11位識別符和RTR位組成。識別符位由ID-28…ID-18為了區(qū)別標準格式和擴展格式,前版本CAN1.0-1.2的保留位r1現(xiàn)表示為IDEBit。StaStandardForArbitrationFiData11bitTD RS11bitSI18bitRExtendedExtendedForFieldDataF最低位是ID-18。7個最(ID-28-ID-22)必須不能全是“隱性”。RTR的全稱為“發(fā)送請求位(RemoteTransmissionRequestBIT)”。RTR位在數(shù)據(jù)幀里必須為“顯性”,而在幀里必須為“隱性”SRR的全稱是“替代請求位(SubstituteRemoteRequestBIT)”幀IDE位(擴展格式IDE的全稱是“識別符擴展位(IdentifierExtensionBit)”IDE位屬于:CONTROLFIDE位(為顯性位,見上文、及保留r0。擴展格式里的幀包括數(shù)據(jù)長度代碼和兩個保留位:r1r0。CONTROLFIDE/DataLength 0dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rdddDataLengthDataLength控制場、數(shù)據(jù)場(假),而15個最低位的系數(shù)是0。將此多項式被下面的多項式發(fā)生器除(其系數(shù)以2為模):X15+X14+X10+X8+X7+X4+X3+這個多項式除法的余數(shù)就是發(fā)送到總線上CRCSEQUENCE(CRC序列)。為了實現(xiàn)這個功能,可以使用15位的位移寄存器—CRC_RG(14:0)。如果NXTBIT指示位流的下一位,那么從幀的起始到數(shù)據(jù)場末尾都由沒有填充的位順序給定。CRC序列(CRCSEQUENCE)的計算如下:CRC_RG //初始化移位寄存XT=NXTBITEXOR //寄存器左移一CRC_RG(0)=0; CRC_RG(14:0)=CRC_RG(14:0)EXOR(4599hex);ACKFACKFACKSl應答界定符是應答場的第二個位,并且是一個必須為“隱性”的位。因此,應答間隙(ACKSLOT)3.2.2幀也有標準格式和擴展格式,而且都由6個不同的位場組成:以標注為容許范圍里0...8的任何數(shù)值)。此數(shù)值是相應于數(shù)據(jù)幀的數(shù)據(jù)長度代碼。 REMOTEFRAME ControlACKFERROERRORFErrorFsuperpositionErrorDel為了能正確地終止錯誤幀,一“錯誤”的節(jié)點要求總線至少有長度為3個位時間的總線空閑(如果“錯誤”的有局部錯誤的話。因此,總線的載荷不應為100%。的錯誤標志由始到CRC界定符的位填充的規(guī)則(參見“編碼”),或者破壞了ACK場或幀結尾場的固定形式。所有其他度最小為6個位,最大為12個位。檢測到錯誤條件的“錯誤”的站試圖通過發(fā)送錯誤標志指示錯誤?!板e誤”的站等待6個相同極性的連續(xù)位(這6個位處于錯誤標志的開始)。當這6個相同的位被檢測到時,錯誤標然后就開始發(fā)送其余7個“隱性”位。CAN節(jié)點在錯誤界定符或過載界定符的8位(最后一位)采樣到一個顯性位,節(jié)點OVEROVERLOADOverloadDelOverloadFlagOverloadDel過載標志(Overload由載標志。如果有的節(jié)點在間歇的第3個位期間檢測到“顯性”位,則這個位將解釋為幀的起始。過載界定符(OverloadDelimeter)余7個“隱性”位。幀間空數(shù)據(jù)幀(或幀)與先行幀的是通過幀間空間實現(xiàn)的,無論此先行幀類型如何(數(shù)據(jù)幀、間的。幀間空間(Interframe間除了間歇、總線空閑外,還包括稱作掛起傳送(SUSPENDTRANSMISSION)的位場。BusBusIdINTERFRAMESPACBusIdSuspendIntermissiBusIdSuspendIntermissiINTERFRAME總線空閑(Bus 標準格式相當于在CAN1.2規(guī)范中描述的數(shù)據(jù)/幀。而擴展格式是CAN協(xié)議的一新特色。為了使來自于報文的數(shù)據(jù))。但是,儀器必須無條件地支持標準格式。如果有一單元報文的發(fā)送器并且總線也不空閑,則這一單元就被稱之為報文的“”5“不重要”狀態(tài),如果是一個“顯性”電平也不會引起格式錯誤(參見7.1章節(jié))。位流編碼(BitStream幀的部分,諸如幀起始、仲裁場、控制場、數(shù)據(jù)CRC序列,均通過位填充的方法編碼。無論何時,發(fā)送器只要檢測到位流里有5個連續(xù)相同值的位,便自動在位流里插入一補充位。位錯誤(Bit填充錯誤(StruffCRC錯誤(CRCCRC序列包括發(fā)送器的CRC計算結果。計算CRC的方法與發(fā)送器相同。如果計算結果與接收到CRC序列的結果不相符,則檢測到一個CRC錯誤。形式錯誤(Form只要檢測到的錯誤的條件是CRC錯誤,錯誤標志的發(fā)送開始于ACK界定符之后的位(其他的錯誤條件‘錯誤主動錯誤為位錯誤時,接收錯誤計數(shù)器值不加1。 8加位〈填充位〉位于RTR位之前,并已作為“隱性”發(fā)送,但是卻被監(jiān)視為“顯性”)。 88當檢測到第14個連續(xù)的“顯性”位后;在每一附加的8個連續(xù)“顯性”位順序之后。則它會設置一個介于119到127之間值。9應用里。有關準確的評估,請參考:Dais,S;Chapman,“ImpactofBitRepresentationonTransportCapacityandClockAccu

溫馨提示

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

評論

0/150

提交評論