當前位置:首頁 » 網路連接 » 計算機網路字元填充和位填充
擴展閱讀
宿舍用電腦網路差怎麼辦 2025-07-01 22:47:56

計算機網路字元填充和位填充

發布時間: 2022-08-24 18:16:00

❶ PHP數字字元串左側補0、字元串填充和自動補齊的幾種方法

一、數字補0.
如果要自動生成學號,自動生成某某編號,就像這樣的形式「d0000009」、「d0000027」時,那麼就會面臨一個問題,怎麼把左邊用0補齊成這樣8位數的編碼呢?我想到了兩種方法實現這個功能。
方法一:
先構造一個數字10000000,千萬,也就是一個1,7個0,然後加上當前的編號(比如是3),那麼就得到
10000003,用字元串截取
substr('10000003',1,7)後就得到0000003,最後在與「d」拼接,就得到了最終的編號d0000003。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$temp_num
=
10000000;
$new_num
=
$num
+
$temp_num;
$real_num
=
"d".substr($new_num,1,7); //即截取掉最前面的「1」
echo
$real_num;
?>
方法二:
測出當前編號(比如是3)的長度strlen('3')=1,用要生成編號的總長度減去當前編號長度,得到需要填充0的個數,然後再用for循環填充0即可。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$bit
=
7;//產生7位數的數字編號
$num_len
=
strlen($num);
$zero
=
'';
for($i=$num_len;
$i<$bit;
$i++){
$zero
.=
"0";
}
$real_num
=
"d".$zero.$num;
echo
$real_num;
?>
方法三:另外幾種方法
復制代碼
代碼如下:
<?php

$sourceNumber
=
"1";

$newNumber
=
substr(strval($sourceNumber+1000),1,3);

echo
"$newNumber";
?>
/*這個時候就會出現:001
如果要增加位數的話可以將1000加大,然後把3也加大。
舉例:如果我要補上
"4個0"
第03行
就要變成這樣。*/
復制代碼
代碼如下:
<?php

$newNumber
=
substr(strval($sourceNumber+100000),1,5);
?>
/*其實就是總共要顯示幾位數字,就把$sourceNumber+1後面補上多少個0,最後一個數字就直接改成顯示幾位數字。*/
復制代碼
代碼如下:
/*string
str_pad
(
string
$input,
int
$pad_length
[,
string
$pad_string
[,
int
$pad_type]]
)*/
<?php
$input
=
"Alien";
echo
str_pad($input,
10);
//
proces
"Alien
"
echo
str_pad($input,
10,
"-=",
STR_PAD_LEFT);
//
proces
"-=-=-Alien"
echo
str_pad($input,
10,
"_",
STR_PAD_BOTH);
//
proces
"__Alien___"
echo
str_pad($input,
6
,
"___");
//
proces
"Alien_"
?>
/*補齊字元串的長度.以pad_string
補.默認補在右邊,如果STR_PAD_LEFT就補到左邊,STR_PAD_BOTH兩邊一起補。下次用str_pad,畢竟是內置的,肯定比自定義的快。*/
復制代碼
代碼如下:
/*
你上面的方法我覺得不怎麼好,介紹一下我寫的一個方法。方法函數如下,這樣當你要的結果001的話,方法:dispRepair('1',3,'0')
功能:補位函數
str:原字元串
type:類型,0為後補,1為前補
len:新字元串長度
msg:填補字元
*/
function
dispRepair($str,$len,$msg,$type='1')
{

$length
=
$len
-
strlen($str);

if($length<1)return
$str;

if
($type
==
1)
{

$str
=
str_repeat($msg,$length).$str;

}
else
{

$str
.=
str_repeat($msg,$length);

}

return
$str;
}
二、字元串填充、自動補齊、自動補全
遇到要輸出一定長度字元串的時候,可以使用一下兩種方法進行PHP字元串自動填充、自動補全

方法一:
復制代碼
代碼如下:$newStr=
sprintf('%05s',
$str);
sprintf()的功能非常靈活,上面的格式字元串中,「%05s
」表示輸出成長度為5的字元串,如果長度不足,左邊以零補全;如果寫成
「%5s
」,則默認以空格補全;如果希望使用其它字元補全,則要在該字元前加上單引號,即形如「%'#5s
」的表示以井號補全;最後,如果希望補全發生在
字元串右邊,則在百分號後加上減號,「%-05s
」。
方法二:
[code]$cd_no
=
str_pad(++$next_cd_no,8,'#',STR_PAD_LEFT);
str_pad(string,length,pad_string,pad_type):具體用法查看手冊。
string
必需。規定要填充的字元串。
length
必需。規定新字元串的長度。如果該值小於原始字元串的長度,則不進行任何操作。
pad_string
可選。規定供填充使用的字元串。默認是空白。
pad_type
可選。規定填充字元串的那邊。
這兩種方法很方便的實現了PHP字元串的自動補全功能。

❷ 字元填充與位元組填充的區別

字元,比如一個漢字有可能占雙位元組,而位元組是基本單位.

計算機網路技術基礎課後習題答案

CH1 答案 一.填空題 1.通信 2.實現資源共享 3.區域網 廣域網 4.資源子網 通信子網 二.選擇題 DDBBCCA 三.簡答題 1.答:所謂計算機網路,就是指以能夠相互共享資源的方式互連起來的自治計算機系統的集合。 2.答:計算機網路技術的發展大致可以分為四個階段。 第一階段計算機網路的發展是從20世紀50年代中期至20世紀60年代末期,計算機技術與通信技術初步結合,形成了計算機網路的雛形。此時的計算機網路,是指以單台計算機為中心的遠程聯機系統。 第二階段是從20世紀60年代末期至20世紀70年代中後期,計算機網路完成了計算機網路體系結構與協議的研究,形成了初級計算機網路。 第三階段是從20世紀70年代初期至20世紀90年代中期。國際標准化組織(ISO)提出了開放系統互聯(OSI)參考模型,從而促進了符合國際標准化的計算機網路技術的發展。 第四階段是從20世紀90年代開始。這個階段最富有挑戰性的話題是互聯網應用技術、無線網路技術、對等網技術與網路安全技術。 3.網路的拓撲結構主要主要有:星型拓撲、匯流排型拓撲、環型拓撲、樹型拓撲結構、網狀型拓撲結構。 (1)星型拓撲優點:控制簡單、故障診斷和隔離容易、服務方便;缺點:電纜需量大和安裝工作量大;中心結點的負擔較重,容易形成瓶頸;各結點的分布處理能力較低。 (2)樹型拓撲優點:易於擴展、故障隔離較容易;缺點是各個結點對根的依賴性太大,如果根結點發生故障,則整個網路都不能正常工作。 (3)匯流排型拓撲的優點如下:匯流排結構所需要的電纜數量少;匯流排結構簡單,又是無源工作,有較高的可靠性;易於擴充,增加或減少用戶比較方便。匯流排型拓撲的缺點如下:匯流排的傳輸距離有限,通信范圍受到限制。故障診斷和隔離較困難。匯流排型網路中所有設備共享匯流排這一條傳輸信道,因此存在信道爭用問題, (4)環型拓撲的優點如下:拓撲結構簡單,傳輸延時確定。電纜長度短。環型拓撲網路所需的電纜長度和匯流排型拓撲網路相似,比星型拓撲網路所需的電纜短。可使用光纖。光纖的傳輸速率很高,十分適合於環型拓撲的單方向傳輸。環型拓撲的缺點如下:結點的故障會引起全網的故障;故障檢測困難;信道利用率低。 (5)網狀型拓撲優點是:可靠性好,結點的獨立處理能力強,信息傳輸容量大。 缺點是:結構復雜,管理難度大,投資費用高。 4.計算機網路的主要功能:資源共享、數據通信、實時控制、均衡負載和分布式處理、其他綜合服務。舉例說明(略)。 CH2 答案 一.填空題 1.信號

2.串列通信 並行通信 並行通信 3.調制 解調 數據機 4.幅度調制(ASK) 頻率調制(FSK) 相位調制(PSK) 5.電路交換 報文交換 分組交換 6.奇偶校驗 循環冗餘校驗 7.非屏蔽雙絞線 屏蔽雙絞線 二.選擇題 BDAABDABCCB 三.簡答題 1.答:信息是指有用的知識或消息,計算機網路通信的目的就是為了交換信息。數據是信息的表達方式,是把事件的某些屬性規范化後的表現形式,它能夠被識別,可以被描述。數據與信息的主要區別在於:數據涉及的是事物的表示形式,信息涉及的是這些數據的內容和解釋。在計算機系統中,數據是以統一的二進制代碼表示,而這些二進制代碼表示的數據要通過物理介質和器件進行傳輸時,還需要將其轉變成物理信號。信號是數據在傳輸過程中的電磁波表現形式,是表達信息的一種載體,如電信號、光信號等。在計算機中,信息是用數據表示的並轉換成信號進行傳送。 2.答:當發送端以某一速率在一定的起始時間內發送數據時,接收端也必須以同一速率在相同的起始時間內接收數據。否則,接收端與發送端就會產生微小誤差,隨著時間的增加,誤差將逐漸積累,並造成收發的不同步,從而出現錯誤。為了避免接收端與發送端的不同步,接收端與發送端的動作必須採取嚴格的同步措施。 同步技術有兩種類型: (1)位同步:只有保證接收端接收的每一個比特都與發送端保持一致,接收方才能正確地接收數據。 (2)字元或幀數據的同步:通信雙方在解決了比特位的同步問題之後,應當解決的是數據的同步問題。例如,字元數據或幀數據的同步。 3、4.略 5.傳輸出錯,目的結點接收到的比特序列除以G(x)有餘數。 CH3 答案 一.填空題 1.物理層 數據鏈路層 網路層 傳輸層 會話層 表示層 應用層 2.物理 3.比特流 差錯 4.比特 數據幀 數據包(分組) 報文 5.物理層 網路層 傳輸層 二、選擇題 DBACB BCABB CDACA 三、簡答題 1.所謂網路體系結構就是為了完成主機之間的通信,把網路結構劃分為有明確功能的層次,並規定了同層次虛通信的協議以及相鄰層之間的介面和服務。因此,網路的層次模型與各層協議和層間介面的集合統稱為網路體系結構。 2.網路體系結構分層的原則: 1)各層之間是獨立的。某一層並不需要知道它的下層是如何實現的,而僅僅需要知道下層能提供什麼樣的服務就可以了。
2)靈活性好。當任何一層發生變化時,只要層間介面關系保持不變,則在這層以上或以下各層均不受影響。 3)結構上可獨立分割。由於各層獨立劃分,因此,每層都可以選擇最為合適的實現技術。 4)易於實現和維護。這種結構使得實現和調試一個龐大而又復雜的系統變得易於處理,因為整個系統已被分解為若干個相對獨立的子系統。 3.幀同步(定界)就是標識幀的開始與結束,即接收方從收到的比特流中准確地區分出一幀的開始於結束。常見有4中幀定界方法,即字元計數法、帶字元填充的首尾界符法、帶位填充的首尾標志法和物理層編碼違例法。 4.數據鏈路層使用的地址是MAC地址,也稱為物理地址;網路層使用的地址是IP地址,也稱為邏輯地址;傳輸層使用的地址是IP地址+埠號。 5.網路層的主要功能是提供不相鄰結點間數據包的透明傳輸,為傳輸層提供端到端的數據傳送任務。網路層的主要功能有:1)為傳輸層提供服務;2)組包與拆包;3)路由選擇;4)流量控制。 6.傳輸層是計算機網路體系結構中非常重要的一層,其主要功能是在源主機與目的主機進程之間負責端到端的可靠數據傳輸,而網路層只負責找到目的主機,網路層是通信子網的最高層,傳輸層是資源子網的最低層,所以說傳輸層在網路體系結構中是承上啟下的一層。在計算機網路通信中,數據包到達指定的主機後,還必須將它交給這個主機的某個應用進程(埠號),這由傳輸層按埠號定址加以實現。 7.流量控制就是使發送方所發出的數據流量速率不要超過接收方所能接收的數據流量速率。流量控制的關鍵是需要一種信息反饋機制,使發送方能了解接收方是否具備足夠的接收及處理能力,使得接收方來得及接收發送方發送的數據幀。 流量控制的作用就是控制「擁塞」或「擁擠」現象,避免死鎖。 流量在計算機網路中就是指通信量或分組流。擁塞是指到達通信子網中某一部分的分組數量過多,使得該部分網路來不及處理,以致引起這部分乃至整個網路性能下降的現象。若通信量再增大,就會使得某些結點因無緩沖區來接收新到的分組,使網路的性能明顯變差,此時網路的吞吐量(單位時間內從網路輸出的分組數目)將隨著輸入負載(單位時間內輸入給網路的分組數目)的增加而下降,這種情況稱為擁塞。在網路中,應盡量避免擁塞現象的發生,即要進行擁塞控制。 網路層和傳輸層與流量控制和擁塞控制有關。 8.傳輸層的主要功能有:1)分段與重組數據2)按埠號定址3)連接管理4)差錯處理和流量控制。 分段與重組數據的意思如下: 在發送方,傳輸層將會話層來的數據分割成較小的數據單元,並在這些數據單元頭部加上一些相關控制信息後形成報文,報文的頭部包含源埠號和目標埠號。在接收方,數據經通信子網到達傳輸層後,要將各報文原來加上的報文頭部控制信息去掉(拆包),然後按照正確的順序進行重組,還原為原來的數據,送給會話層。 9.TCP/IP參考模型先於OSI參考模型開發,所以並不符合OSI標准。TCP/IP參考模型劃分為4個層次:1)應用層(Application Layer);2)傳輸層(Transport Layer);3)網際層(Internet Layer);4)網路介面層(Host-to-Network Layer)。 10.OSI參考模型與TCP/IP參考模型的共同點是它們都採用了層次結構的概念,在傳輸層中二者都定義了相似的功能。但是,它們在層次劃分與使用的協議上有很大區別。 OSI參考模型與協議缺乏市場與商業動力,結構復雜,實現周期長,運行效率低,這是它沒有能夠達到預想目標的重要原因。 TCP/IP參考模型與協議也有自身的缺陷,主要表現在以下方面:
1)TCP/IP參考模型在服務、介面與協議的區別上不很清楚;2)TCP/IP參考模型的網 絡介面層本身並不是實際的一層,它定義了網路層與數據鏈路層的介面。物理層與數據鏈路層的劃分是必要合理的,一個好的參考模型應該將它們區分開來,而TCP/IP參考模型卻沒有做到這點。 CH4 答案 一.填空題 1.光纖 2.IEEE802.4 3.介質訪問控制子層(MAC) 邏輯鏈路子層(LLC) 4.CSMA/CD 令牌環介質訪問控制方法 令牌匯流排介質訪問控制方法 5.星型結構 匯流排型結構 環型結構 6.MAC地址 48 廠商 該廠商網卡產品的序列號 二.選擇題 ADCBCDAB 二.簡答題 1.答:區域網是在有限的地理范圍內,利用各種網路連接設備和通信線路將計算機互聯在一起,實現數據傳輸和資源共享的計算機網路。區域網特點:地理范圍有限;一般不對外提供服務,保密性較好,且便於管理;網速較快;誤碼率低;區域網投資較少,組建方便,使用靈活等。 2.答:區域網有硬體和軟體組成。區域網的軟體系統主要包括:網路操作系統、工作站系統、網卡驅動系統、網路應用軟體、網路管理軟體和網路診斷軟體。區域網的硬體系統一般由伺服器、用戶工作站、網卡、傳輸介質和數據交換設備五部分組成。 3.答:目前,區域網常用的共享式訪問控制方式有三種,分別用於不同的拓撲結構:帶有沖突檢測的載波偵聽多路訪問法(CSMA/CD),令牌環訪問控製法(Token Ring),令牌匯流排訪問控製法(token bus)。 CSMA/CD協議主要用於物理拓撲結構為匯流排型、星型或樹型的乙太網中。CSMA/CD採用了爭用型介質訪問控制方法,原理比較簡單,技術上易實現,網路中各工作站處於平等地位,不需集中控制,不提供優先順序控制。在低負荷時,響應較快,具有較高的工作效率;在高負荷(節點激增)時,隨著沖突的急劇增加,傳輸延時劇增,導致網路性能的急劇下降。此外,有沖突型的網路,時間不確定,因此,不適合控制型網路。 令牌環(Token Ring)介質訪問控制多用於環型拓撲結構的網路,屬於有序的競爭協議。令牌環網路的主要特點:無沖突;時間確定;適合光纖;控制性能好;在低負荷時,也要等待令牌的順序傳遞,因此,低負荷時響應一般,在高負荷時,由於沒有沖突,因此有較好的響應特性。 令牌匯流排訪問控制技術應用於物理結構是匯流排的而邏輯結構卻是環型的網路。特點類似令牌環介質訪問控制技術。 4.答:CSMA/CD方法的工作原理可以簡單地概括為以下4句話:先聽後發、邊聽邊發、沖突停止、隨機延遲後重發。 5.答:由於區域網不需要路由選擇,因此它並不需要網路層,而只需要最低的兩層:物理層和數據鏈路層。IEEE802標准,又將數據鏈路層分為兩個子層:介質訪問控制子層MAC和邏輯鏈路子層LLC。
CH5 答案 一.填空題 1.交換機 路由器 2.電路交換(撥號)服務 分組交換服務 租用線路或專業服務 3.計算機主機 區域網 4.640kbps-1Mbps 1.5Mbps-8Mbps 二.選擇題 BCADAA 三.簡答題 1.答:①撥號上Internet/Intranet/LAN; ②兩個或多個LAN之間的網路互連; ③和其它廣域網技術的互連。 2.答:(1)多種業務的兼容性 (2)數字傳輸:ISDN能夠提供端到端的數字連接。 (3)標准化的介面: (4)使用方便 (5)終端移動性 (6)費用低廉 3.答:① 採用TDMA、CDMA數字蜂窩技術,頻段為450/800/900MHz,主要技術又GSM、IS-54TDMA(DAMPS)等; ② 微蜂窩技術,頻段為1.8/1.9GHz,主要技術基於GSM的GSC1800/1900,或IS-95的CDMA等; ③ 通用分組無線業務(Gerneral Packet Radio Service,GPRS)可在GSM行動電話網上收、發話費增值業務,支持數據接入速率最高達171.2Kbps,可完全支持瀏覽Internet的 Web站點。 CH6答案 一.填空題 1.unix 、linux、Netware、Windows Server系列 2.列印服務 通信服務 網路管理 二.選擇題 DBCAC 三.問答題 1.答:①從體系結構的角度看,當今的網路操作系統可能不同於一般網路協議所需的完整的協議通信傳輸功能。 ②從操作系統的觀點看,網路操作系統大多是圍繞核心調度的多用戶共享資源的操作系統。 ③從網路的觀點看,可以將網路操作系統與標準的網路層次模型作以比較。 2.答:網路操作系統除了應具有通常操作系統應具有的處理機管理、存儲器管理、設備管理和文件管理外,還應具有以下兩大功能: ①提供高效、可靠的網路通信能力; ②提供多種網路服務功能,如遠程作業錄入並進行處理的服務功能;文件傳輸服務功能;電子郵件服務功能;遠程列印服務功能等。

❹ 二進制位串01011111010111111要在數據鏈路層發送,請問經過位填充後實際被發送

答:使用零比特填充法,在二進制位串當中,每連續出現5個1就在其後面添加一個0,所以對應的答案為0101111100101111101,其中加粗的兩個數字0即為填充的數字。

總結: 本題中使用0比特填充進行組幀,該方法很容易用硬體來實現,其性能優於字元填充法。

拓展:數字鏈路層中的組幀方法總結如下所示。

組幀方法

❺ 《計算機網路》PPP協議的主要特點是什麼為什麼PPP不使用幀的編號PPP適用於什麼情況

簡單,提供不可靠的數據報服務,檢錯,無糾錯
不使用序號和確認機制
地址欄位A 只置為 0xFF。地址欄位實際上並不起作用。
控制欄位 C 通常置為 0x03。
PPP 是面向位元組的
當 PPP 用在同步傳輸鏈路時,協議規定採用硬體來完成比特填充(和 HDLC 的做法一樣),當 PPP 用在非同步傳輸時,就使用一種特殊的字元填充法
PPP適用於線路質量不太差的情況下、PPP沒有編碼和確認機制

❻ 數據鏈路層透明傳輸

我正在看計算機網路,我是這樣理解的。soh和eoh的二進制編碼也是128個ascii碼中的兩個,但是是不可列印,即不可由鍵盤輸入的。當傳送的幀是由鍵盤輸入的文本文件組成的幀的時候,因為SOH和EOH是不可列印的ASCII碼,所以,幀中顯然不會出現soh,eoh一樣的二進制編碼,因此,從鍵盤中輸入任何字元都可以傳輸過去,這時數據鏈路層不會關心soh與eoh之間的字元。但是,當傳輸的數據是非ascii碼的文本文件(如二進制代碼的計算機程序和圖像)時,數據中的某個位元組中的二進制代碼就有可能和soh,eoh控制字元的二進制代碼一樣,這時候就需要用位元組填充或者字元填充的方式來打到透明傳輸,以免數據鏈路層錯誤地找到「幀的邊界」。

❼ CAN匯流排位填充的原理是什麼

及感測器領域都得到了廣泛的應用。目前國內外文獻中針對CAN匯流排協議分析的文章主要是針對CAN協議的幀結構以或位時序特性進行分析,如文獻鮮有從通信的角度對CAN匯流排協議進行分析,鮮有從工程應用的角度出發,對CAN匯流排的通信機制進行深入分析的文章。

1 CAN應用特性及結構構成

CAN匯流排協議具有兩個國際標准,分別是ISO11898和ISO11519。其中,IS011898是通信速率為125 kbps~1
Mbps的高速CAN通信標准,屬於閉環匯流排,匯流排最大長度為40 m/1 Mbps。ISO11519定義了通信速率為10~125
kbps的低速CAN通信標准,屬於開環匯流排,最大長度為1 km/40
kbps。由於電氣特性限制,即匯流排分布電容和分布電阻對匯流排波形的影響,CAN匯流排上最大節點數目為110個。對於應用工程師,只需正確配置收發端的波
特率和位參數即可實現收發節點的數據同步。通過CAN控制器硬體對報文的標示符濾波即可實現點對點、一點對多點及全局廣播等幾種方式傳送接收數據。同時,
由於CAN報文採用短幀結構,並且每幀均包含CRC校驗部分,保證了數據出錯率極低。CAN匯流排在工程應用中結構構成
系統實現中的CAN應用層、操作系統(在無操作系統的應用中以後台程序實現)及驅動程序共同實現了ISO參考模型中的應用層功能。其中,CAN應用
層定義ID分組、發送數據裝包、接收數據處理以及應用層匯流排安全監測;操作系統/後台程序用於在CAN中斷到達後調度CAN驅動程序對數據進行處理;驅動
程序包括初始化(控制器工作狀態設置、波特率設置、驗收濾波器配置)、收發驅動及異常處理程序。

對於傳輸介質層,需要根據環境干擾雜訊、匯流排長度等來確定。在強干擾雜訊的情況下必須採用屏蔽線;由於分布電容造成的匯流排波形失真及分布電阻造
成的匯流排電平的衰減,匯流排長度需要考慮採用的傳輸介質的分布電阻和分布電容特性;同時,若採用高速匯流排還需通過實驗確定匯流排的匹配電阻值。

對於CAN控制器的實現,可以選用集成於系統主控晶元的CAN控制器實現,如恩智浦公司出品的LPC2000系列的微控制器,
或者也可以選用分立元件的CAN控制器,如SJA1000。對於CAN收發器的實現,可以選用CTM1050、TJA1050等。若環境干擾雜訊較大,則
需在控制器和收發器之間添加隔離晶元或採用集成了隔離功能的CAN收發器。值得一提的是,恩智浦公司新推出的LPC11C24微控制器晶元中不僅集成了
CAN控制器,同時集成了CAN收發器功能,對於CAN匯流排系統的快速開發提供了良好的支持。另外,根據實際應用的匯流排長度及匯流排上的節點數目,還需考慮
收發器晶元的發送和接收的延遲時間。

對於CAN驅動層和應用層,驅動程序包括CAN初始化(包括硬體使能、波特率設置、控制器工作模式設置及驗收濾波器ID表配置)、收/發驅動並
向上層提供介面函數,其中需要說明的是驗收濾波器的ID表配置需要根據應用層對系統ID的分組來進行;CAN應用層根據匯流排上各節點之間的數據收發關系進
行數據包的ID分組、發送數據裝包、接收數據處理及應用層匯流排安全監測等。另外,常用的CAN匯流排上層協議主要有CANOpen、DeviceNet以及
iCAN等。

2 CAN匯流排同步機制分析

在進行通信過程中,需要解決的最重要的問題之一就是如何實現收發端數據的同步,即接收端可以正確接收和解析發送端發送的數據。CAN匯流排協議是
一種非同步串列通信協議,屬於基帶通信,其同步的實現源於高級數據鏈路控制協議(HDLC)。具體來說,CAN匯流排協議的同步是通過如下所述的3個方面來實
現的。

2.1 參數設定

通信雙方通過軟體設置相同的波特率、相同的相位調整段長度、相同的同步跳轉寬度,通過以上3個元素設置,定義了CAN匯流排傳輸過程中的位時間長
度以及采樣點位置,位結構如圖2所示,圖中的CAN時鍾即是協議中定義的TQ時間,該時鍾是通過外部時鍾或者CPU外設時鍾分頻後得到的CAN控制器的基
本時鍾信號,SS段對應於起始段,匯流排上的跳變沿應發生在此段時間內,TESG1對應於傳輸段和相位調整段1,TESG2對應於相位調整段2,對於高速總
線,控制器在TESG1和TESG2之間對匯流排進行采樣判別。
2.2 固定的幀結構

CAN協議中明確定義的固定的幀結構,便於CAN控制器和收發器對匯流排狀態進行監測,在CAN2.0協議規范中,分為標准幀和擴展幀兩種幀結構,兩者區別只在於仲裁域,標准幀採用11位標識符,而擴展幀有29位標識符,具體的標准幀、擴展幀幀結構
2.3 硬同步和再同步

2.3.1 硬同步

所謂硬同步就是指在匯流排空閑期間(即匯流排電平表現為連續的隱性位),控制器一旦檢測到從隱性電平到顯性電平的跳變,就說明此時匯流排上有站點開始
發送數據,則強制CAN控制器的位狀態計數器同步到圖2所示的SS段,同時位時鍾從此開始重新計數(CAN位時間由上層軟體設定)。硬同步用於幀的起始判
定。

2.3.2 再同步

在CAN匯流排協議中,再同步是基於位填充機制實現的。與HDLC協議類似,在CAN的幀結構中,從幀起始到CRC序列位為止,一旦檢測到5個連
續相同極性的位,CAN控制器自動插入一個極性相反的位。再同步就是在數據傳輸過程中,CAN控制器通過檢測匯流排上的跳變沿與節點內部位時間的差異來調整
相位調整段1和相位調整段2,調整大小是由同步跳轉寬度編程設定的,調整大小單位為TQ。具體調整規則是,在傳輸過程中,由CAN控制器檢測到的匯流排上的
跳變沿如果位於節點內部的SS位時間段內,則不需要調整;若跳變沿位於TESG1段,說明匯流排上的位時間相對於節點的位時間有延遲,則CAN控制器延長節
點的TESG1位時間段,若延遲時間值(T0值)大於同步跳轉寬度,延長時間為同步跳轉寬度值,否則節點的CAN控制器延長其與匯流排位時間的差值;若跳變
沿位於TESG2段,說明匯流排上的位時間相對於節點的位時間有超前,則CAN控制器減少節點的TESG2位時間段,具體調整規則與TESG1段的調整規則
相似。

3 CAN匯流排地址機制分析

不同於工業乙太網、RS485等匯流排,CAN匯流排是通過數據包ID而非節點地址來收發數據的,即CAN匯流排上的節點沒有固定的地址,取而代之的
是每個節點都需要通過軟體配置一個ID表(在該節點的驗收濾波器單元中),如果匯流排上的數據包的ID號在該節點的ID表中存在,則數據包成功通過該節點的
驗收濾波器單元的驗收,並將被送到上層軟體處理單元並進行相應的數據處理,否則,該數據包被丟棄。舉例來說,若匯流排上的節點A想發送數據包到節點B,則該
數據包的ID號必須位於節點B的ID表中,同理,若節點A想廣播數據包到匯流排上,則該數據包的ID號必須位於匯流排上所有其它節點的ID表中。如前所
述,ID表是通過軟體進行配置的,但驗收濾波功能卻是通過CAN控制器中的驗收濾波器這個硬體單元進行的,所以從速度上來說,驗收造成的延遲很小。另外,
採用這種地址機制的優點還在於是採用此匯流排的系統具有很高的靈活性,即新加入或刪除的節點不會影響系統原有節點間的通信。
4 CAN匯流排仲裁機制分析

匯流排仲裁,是指當匯流排上有多個節點在同時發送數據時匯流排協議的處理方法。CAN匯流排採用的是無破壞性的仲裁機制,即若匯流排上的多個節點同時發送
數據,具有高優先順序數據包的節點仲裁勝出,可以繼續發送數據,而其它仲裁失敗的節點將退出發送狀態而轉為接收節點,與其他匯流排仲裁機制(例如區域網的
CSMA/CD)相比,其不僅不會破壞已發送的數據,並且不會造成發送數據的延遲,是CAN匯流排與其他匯流排相比的優點之一,其主要是通過CAN匯流排所具備
的如下兩個特點實現:1)CAN匯流排的線與特性,即當匯流排上多個節點同時發送顯性和隱形電平時,匯流排電平表現為顯性電平。2)CAN控制器即使在發送數據
的同時也在監控匯流排電平狀態,即當在仲裁時,當控制器發送隱性電平但檢測到匯流排為顯性電平時,節點仲裁失敗,轉為接收節點。

5 CAN匯流排魯棒性分析

CAN匯流排的魯棒性是通過其對節點和匯流排數據包安全性的實時檢測與監控來實現的,另外,CAN匯流排通過採用的差分信號對外界干擾信號有較強的抑製作用。具體論述如下。

5.1 實時監控匯流排波形

CAN控制器不僅在上電後會一直監測匯流排上其它節點發送的的數據包,並且在自己發送數據包得過程中也在實時監測自己發送的數據,一旦檢測到位錯
誤、填充錯誤、CRC錯誤、格式錯誤或者應答錯誤,該節點就會根據其所處的錯誤狀態(錯誤激活狀態或者錯誤認可狀態)發送相應的錯誤標志,實際上筆者認為
只有錯誤激活站點發送激活錯誤標識(即6個連續的顯性位後接8個隱性位的錯誤標識界定符)會對匯流排及匯流排上的節點產生影響,而處於錯誤認可狀態的節點發送
的錯誤認可標識實際對匯流排沒有任何影響(發送的6個隱性電平與匯流排空閑狀態是一致的)。

5.2 實時監控節點狀態判定節點許可權

節點會根據匯流排上數據包的情況實時改變自身的狀態(錯誤激活、錯誤認可或者匯流排關閉狀態),處於錯誤激活的節點正常參與匯流排通信,錯誤認可的單
元參與匯流排通信,但是在其啟動下一個發送之前需要發送8個額外的隱性位。對於匯流排上發送的數據包,如表1所示,15位的CRC序列實現了對起始位、仲裁
域、控制域以及數據域(如果有的話)的監控,接收站點在接收到數據後會根據與發送節點相同的演算法生成該數據包的CRC序列,並與接收到的CRC序列做比
較,如果不同則說明有錯,接收節點不會對該數據包做出應答,發送節點就會檢測到應答錯誤並重新發送該數據包。總之,CAN匯流排通過數據鏈路層以及物理層就
已經實現了較高的匯流排的數據安全性和匯流排的穩定性。

6 結論

文中以ISO11898協議規范為基礎,從通信的角度詳細分析了CAN匯流排的節點同步機制、節點地址機制、匯流排仲裁機制(即匯流排沖突解決機制)
及匯流排魯棒性的實現原理和基礎,同時簡要介紹了CAN匯流排的應用特性以及將其應用於實際系統中時匯流排的系統分層結構,對深入理解CAN匯流排協議和將CAN
匯流排應用到具體工程項目中,以及研究或開發特定要求的匯流排系統具有指導意義。

❽ 位元組計數法位元組填充的標志位元組法比特填充的標志比特法的優缺點

字元填充法與與特定字元編碼集關系過於密切,而且實現復雜。字元計數法位元組計數欄位的傳輸正確性至關重要,否則錯誤不但影響本幀的,還影響下一幀,非法比特只用於採用冗餘編碼的特殊編碼環境,而且對比特碼型有一定要求,所以目前較為常用比特填充法。

❾ 計算機網路中幀定界與字元填充有什麼區別以及控制字元對應的字元編碼

看網路協議手冊,有詳細說明。