当前位置:首页 » 网络连接 » 计算机网络字符填充和位填充
扩展阅读
怎样修改路由器网络IP 2025-07-01 18:20:51
下载的网站为什么打不开 2025-07-01 18:11:29

计算机网络字符填充和位填充

发布时间: 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
总线应用到具体工程项目中,以及研究或开发特定要求的总线系统具有指导意义。

❽ 字节计数法字节填充的标志字节法比特填充的标志比特法的优缺点

字符填充法与与特定字符编码集关系过于密切,而且实现复杂。字符计数法字节计数字段的传输正确性至关重要,否则错误不但影响本帧的,还影响下一帧,非法比特只用于采用冗余编码的特殊编码环境,而且对比特码型有一定要求,所以目前较为常用比特填充法。

❾ 计算机网络中帧定界与字符填充有什么区别以及控制字符对应的字符编码

看网络协议手册,有详细说明。