CAN匯流排中位定時的設定方法

2022-05-09 10:36:01 字數 3131 閱讀 8454

(2)傳播時間段用於補償匯流排上訊號傳播時間和電子控制裝置內部的延遲時間。因此,要實現與位流傳送節點的同步,接收節點必須移相。can匯流排非破壞性仲裁規定,傳送位流的匯流排節點必須能夠收到同步於位流的can匯流排節點傳送的顯性位。

圖2顯示了兩個匯流排節點的相移和傳播段時間。

圖2在這個例子裡,節點a和節點b都是傳送節點,因此匯流排要對兩個節點進行仲裁。節點a比節點b提前傳送不到1個位時間,當節點b收到延遲後的跳變沿時,b節點要同步於a節點,對位時間進行移相。移相後節點b傳送的標識號有較高優先順序,因此節點b贏得匯流排的使用權,如圖節點b傳送的顯性位經過延遲後到達節點a。

因為存在振盪器容差,節點a的取樣點在相位緩衝段的位置是不能確定的,所以節點b傳送的位流必須在a節點的相位緩衝段1開始之前到達,因此傳播時間段的長度將受到這個條件的限制。如果節點b傳送乙個隱性到顯性的跳變沿,節點a在相位緩衝段1開始之後收到,那麼節點a就有可能取樣到乙個隱性位,導致產生乙個位錯誤。這樣的錯誤只有當兩個節點都參與匯流排仲裁,且匯流排比較長,節點的振盪器頻率相差較大時才會出現。

另外,can匯流排還提供一種取樣方式,即取樣3次,在相位緩衝段首尾以及相位緩衝段1、2的交界處各取樣一次,並通過位定時邏輯確定位的正確值,這樣就會要求額外的乙個時間份額的延遲,因而需要更長的傳播時間段。

3.相位緩衝段和同步

同步跳轉寬度規定了重同步發生時取樣點在相位緩衝段內移動的距離。相位緩衝段和同步跳轉寬度用來補償振盪器容差,發生重同步時相位緩衝段會被加長或縮短。當匯流排發生從隱性到顯性跳變時,會產生同步,其作用是控制沿與取樣點之間的距離。

匯流排節點在每個時間份額都會取樣匯流排,並與前一次取樣值進行比較,如果前一次取樣值是隱性而當前的取樣值是顯性,那麼匯流排節點就會發生一次同步。如果跳變沿出現在同步段的前面,沿相位錯誤就是負的,反之就是正的。

在幀起始時,匯流排會進行一次硬同步。硬同步後,位時間由每個位定時邏輯單元在同步段之後重新啟動,強迫引起硬同步的邊沿處於重新啟動位時間的同步段內。

當引起重同步的沿相位錯誤幅值小於或等於同步跳轉寬度的數值時,重同步導致位時間的延長或縮短,使取樣點處於適當的位置。當沿相位誤差幅值大於重同步跳轉寬度時,如果相位誤差為正,相位緩衝段1延長數值等於同步跳轉寬度;如果相位誤差為負,相位緩衝段2縮短數值等於同步跳轉寬度。

通過同步,匯流排可以有效地濾除長度小於傳播段與相位緩衝段1長度之和的雜訊。但在乙個位時間裡只允許一種同步發生。除了雜訊以外,絕大多數的同步都是由仲裁引起的,匯流排上的所有節點都要同步於最先開始傳送的節點,但是由於匯流排延遲,節點的同步不可能達到理想的要求。

如果最先傳送的節點沒有贏得匯流排仲裁,那麼所有的接收節點都要重新同步於獲得匯流排仲裁的節點。應答場的情況也是如此,匯流排上的接收節點都要同步於最先傳送顯性位的節點。但是當傳送節點與接收節點的時鐘週期不同並經過多次同步累加起來,振盪器容差會導致同步在仲裁場之後出現。

圖3列舉了沿相位誤差為正負兩種情況,中間的圖作為參考。說明了相位緩衝段如何彌補沿相位錯誤。

圖3在第乙個例子裡,同步段末端出現了乙個隱性到顯性的跳變沿,那麼相位緩衝段1將加長,使得跳變沿到取樣點之間的長度與沒有跳變沿出現時同步段到取樣點之間的長度相等。由於沿相位誤差小於同步跳轉寬度,因此重同步補償了沿相位誤差,在下乙個正常位時間到來時,顯性到隱性的跳變沿就出現在同步段。在第二個例子中,乙個隱性到顯性的跳變沿出現在相位緩衝段2,因此相位緩衝段2會縮短,並且同步段會被省略, 這是因為當節點同步於邊沿時,節點無法確定處於相位緩衝段2的同步段的起始位置。

由於沿相位誤差的幅值小於同步跳轉寬度,所以重同步取得的效果與第乙個例子是一樣的。需要注意的是,相位緩衝段只是暫時的被加長或者縮短,在下乙個位時間,緩衝段又會恢復預設值。圖4顯示了同步是怎樣消除顯性雜訊干擾的。

列舉的兩個例子中,雜訊都是在傳播段的末尾開始,長度為傳播時間段與相位緩衝段1的和。

圖4在第乙個例子裡,同步跳轉寬度大於或者等於雜訊跳變沿的相位誤差,因此取樣點適當移動,取樣值為隱性位,消除了雜訊。在第二個例子中,同步跳轉寬度小於沿相位誤差,取樣點移動的長度不夠,顯性值被當作匯流排的真實值取樣。

4. 振盪器容差範圍

影響振盪器容差範圍的因素有相位緩衝段1、相位緩衝段2、同步跳轉寬度和位時間。最大容差範圍需要滿足下面兩個條件:

i:df<=

i i:df<=

需要注意的是同步跳轉寬度不能大於相位緩衝段1和2中的任何乙個。

5. can控制器的配置與延遲時間的計算

配置can控制器最關鍵的部分就是對兩個暫存器的設定。暫存器0決定傳播時間段、相位緩衝段1和相位緩衝段2;暫存器2決定同步跳轉寬度和分頻值。在位定時暫存器中,tseg1,tseg2,sjw和brp設定的值要比其功能值小1,因此設定範圍是[0…..

n-1]而不是[1…..n]。所以位時間可以由 [tseg1+tseg2+3]tq或者[同步段+傳播段+相位緩衝段1+相位緩衝段2]tq得到。

當匯流排延遲時間很小時,計算節點的輸入延遲和輸出延遲就要求很精確。在位定時的設定中,只有節點的輸入和輸出延遲需要知道。我們可以通過下述方法計算延遲時間。

在匯流排上輸入乙個顯性脈衝,長度為乙個位時間的長度,處於空閒狀態的錯誤啟用節點將認為是幀起始因而會產生一次硬同步,6個隱性位過後,匯流排節點會發現乙個填充位錯誤,發出錯誤啟用標誌。我們可以得到從傳送顯性脈衝開始到接收錯誤啟用標誌結束的這段時間t1。t1包括節點輸入延遲和輸出延遲、同步延遲以及多個位時間。

同步延遲由時鐘振盪器決定。在位時間裡,時鐘同步延遲由同步段補償,因此在計算延遲時間時,要通過調節時鐘振盪器的相位來消除它。為了獲得較為精確的延遲時間,我們必須對時鐘振盪器的相位以及匯流排節點進行調整以獲得最小的t1。

因此,輸入輸出延遲時間t2=min(t1)─7(正常位時間)。

6.小結

位時間的範圍是8~25個時間份額,時間份額的大小由分頻值確定。我們首先要確定的是傳播時間段。大小由匯流排延遲時間決定。

在乙個可以擴充套件的匯流排結構中,最大節點延遲和匯流排最大長度必須考慮。一般情況下,每公尺延遲為5.5ns。

同步段的長度為1個時間份額。因此相位緩衝段的長度為(時間份額總數-1-傳播時間段時間份額數)tq,如果剩餘的份額數是偶數,那麼應有相位緩衝段1=相位緩衝段2,或者相位緩衝段2=相位緩衝段1+1。而且,相位緩衝段2的最小長度不應小於控制器的資訊處理時間,通常情況下,應該大於2個時間份額。

同步跳轉寬度的最大值、相位緩衝段1的最小值都是4個時間份額。

如果有多個配置可以選擇,那麼應該選擇具有最高振盪器容差範圍的引數配置。如果匯流排上有不同時鐘的節點,那麼在計算傳播時間段時,應該以具有最大延遲的那個節點為準。振盪器容差範圍的確定應以對振盪器容差範圍要求最高的節點為準。

CAN匯流排的編碼方式

對can匯流排的常見編碼格式解析 我們在進行can匯流排的通訊設計過程中,對於通訊矩陣的建立,我們常常會選擇一種編碼方式,最常見的編碼格式是intel格式和motorola格式。但是往往人們都是以一種習慣去選擇,究竟兩種格式具體的區別在 呢?我們需要明白兩種格式對訊號是如何排布的,又是按照什麼順序進...

基於CAN匯流排的遠端公升級系統

作者 楊元挺卓樹峰 現代電子技術 2009年第10期 摘要 can匯流排是一種應用廣泛的實時性現場匯流排。介紹一種基於can匯流排的遠端系統軟體公升級設計方案,解決了遠距離系統公升級的困難。該系統採用mcu控制,在can匯流排上,通過pc機控制各個智慧型節點,實現資料和程式的更新公升級。智慧型節點採...

STM32的can匯流排實驗心得

標籤 匯流排心得實驗 2010 09 01 21 08 工作模式 bxcan有3個主要的工作模式 初始化 正常和睡眠模式。初始化模式 軟體通過對can mcr暫存器的inrq位置1,來請求bxcan進入初始化模式,然後等待硬體對can msr暫存器的inak位置1來進行確認。軟體通過對can mcr...