⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dnet development dnd欢迎你的到来3.htm

📁 canopen 通信协议
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            <TABLE cellPadding=0 width="100%" bgColor=#c0c0c0 border=0>
              <TBODY>
              <TR>
                <TD align=middle width="25%"></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=6 width="100%" border=0>
              <TBODY>
              <TR>
                <TD width="100%">
                  <P align=center>
                  <MARQUEE 
                  style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #ff0000; FONT-FAMILY: Tahoma" 
                  scrollAmount=3 behavior=alternate 
                  align="middle">路,在脚下延伸……我坚定而执着地走着!</MARQUEE></P></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
              <TBODY>
              <TR>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"><FONT 
                face=Tahoma>你的位置:<A 
                href="http://www.dndev.com/cgi-bin/prtindex.pl">DND首页</A> &gt; 
                <A 
                href="http://www.dndev.com/cgi-bin/listpaper.pl?Class=2">CAN技术</A> 
                &gt; 阅读文章</FONT>
                <HR SIZE=1>

                <P></P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> </P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px" 
                align=center><B><FONT face=Tahoma>CAN协议介绍(Controller Area 
                Network Protocol)(远方译自CIA)</FONT></B></P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px" 
                align=center><FONT 
                face=Tahoma>时间:2003-12-28&nbsp;阅读1129次</FONT></P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> 
                </P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px">&nbsp;</P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px" 
                150% ;line-height:><FONT face=Tahoma>
                <P>&nbsp;&nbsp;&nbsp; CAN协议是一个被定义为 
                ISO11898的国际标准,除了CAN协议本身外,CAN协议的一致性测试也被定义为ISO16845标准,它描述了CAN芯片的互换性。<BR></P>
                <HR SIZE=1>
                <BR>
                <P>** 数据交换原理 **<BR><BR><IMG 
                src="DNet Development DND欢迎你的到来3.files/broadcast.gif" align=left 
                border=0>&nbsp;&nbsp;&nbsp;&nbsp; 
                <BR>CAN是一种基于广播的通讯机制,广播通讯依靠报文(Message)的传送机制来实现,因此CAN并未定义站及站地址,而仅仅定义了报文,这些报文依靠报文确认区(Identifier)来进行识别,一个消息报文确认区在一个网络中必须是唯一的,它不但描述了某一报文的意义,而且还定义了报文的优先级,当很多站都在访问总线时,优先级是很重要的,因此,CAN是通过报文的确认区来决定报文的优先级的。 
                <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 
                CAN使用地址访问的方法,使网络系统的配置变得非常灵活,用户很容易可以增加一个新的站到一个已经存在CAN网络里,而不用对已经存在的站进行任何硬件或软件上的修改,但必须此新增的站为完全的接收者,这样它将不会对网络上各节点的通讯产生影响。<BR></P>
                <HR SIZE=1>

                <P><BR>** 实时数据传送 
                **<BR><BR>在实时处理系统中,通过网络交换紧急报文存在很大的不同:一个迅速改变的值,如发动机负载必须频繁的进行传送且要求延迟比其它的值如发动机温度要小。<BR><BR>发送的报文都要和其它的不太紧急的报文进行优先级的比较,在系统设计中,报文的优先级体现在写入报文确认区的二进制值,这些值不能被动态的改变。确认区中的值越小,其报文的优先级越高(也就是0比1的优先级高)。<BR><BR>总线访问冲突是依靠对每个企图发送数据的站的确认区进行位元仲裁(Arbitration)来解决的。冲突的发生与“wired 
                and”机制相一致,即显性状态覆盖隐性状态。仲裁失败的站会失去总线控制权,所有失去总线控制权的站都会自动变为接收者,接收高优先级的报文,它们不再企图发送报文,直到总线重新空闲。<BR><BR>发送请求在整个系统中按报文的重要性来排序处理,当总线负荷较重的时候这会带来很多好处,因为总线访问的优先权是基于报文本身的,因此可以节约很多总线时间,在实时系统中降低了传送的延迟。</P><BR><BR>
                <P><IMG height=261 
                src="DNet Development DND欢迎你的到来3.files/arbitration.gif" 
                width=486 border=0><BR><BR></P>
                <HR SIZE=1>
                <BR>
                <P>** 消息的帧格式(Frame format) 
                **<BR><BR>CAN协议支持两种帧格式,它们只是在确认区存在差异,一种被称为CAN标准帧,在CAN2.0协议的Part 
                A进行定义,标准帧支持11bit的确认区长度,;另一种称为CAN扩展帧,在CAN2.0协议的Part 
                B进行定义,支持29bit的确认区。<BR>¤¤ CAN标准帧: ¤¤<BR><BR>CAN标准帧格式以一被称为“Start 
                of Frame(SOF)”的起始位开始,接下来是“仲裁区(Arbitration 
                field)”,仲裁区由确认区和“远程传送请求(RTR)”组成,RTR位用于区分数据帧和被称为“远程帧”的数据请求帧。接下来的“控制区(Control 
                field)”包括了确认扩展位(IDE),用于区别CAN标准帧和CAN扩展帧,同样,“数据长度代码(DLC)”用于表示接下去的“数据区(Data 
                field)”中数据的字节数,如果报文用于远程帧,DLC就包含所请求数据的字节数。“数据区”可以达8字节。报文的完整性由接下来的“循环冗余校验码(CRC)”来保证。而“应答区(ACK)”则有应答槽(ACK 
                slot)和ACK定界符(ACK 
                delimiter),应答槽中的位元会被接收到正确的报文的站填充并发送到总线上,接收者不需要判断报文的有效性便可以应答正确的报文,即无论是否与自己有关的报文,接收者都会填充应答槽并进行发送。报文结束于“帧结束(EOF)”位,“帧间隔(IFS)”定义了一个两个数据帧之间的最小位元数,一般不小于3bit。如果没有任何站企图对总线进行访问,则总线会一直保持空闲状态。<BR><BR>¤¤ 
                CAN扩展帧 
                ¤¤<BR><BR>扩展帧中的报文与标准帧相似,不同之处仅是所使用的确认区长度,确认区由已存在的11bit确认区(称为基本确认区)和18bit扩展区(称为标识扩展区)组成,标准帧与扩展帧的不同来自于对IDE位的使用。当IDE为显性时,则报文作为标准帧来发送,当IDE位为隐性时报文作为扩展帧来发送。当两种格式报文同时出现在总线上,并且具有相同的确认区或基本确认区,那判断报文优先级的方法通常为:标准帧的报文总是比扩展帧的报文优先级高。<BR><BR>支持扩展帧格式的CAN控制器(CAN 
                Controller)同样也能发送和接收CAN标准帧,当仅仅支持标准帧的CAN控制器被用在网络上时,则仅只有标准帧能在整个网络上传送,扩展帧将不能被识别,但是有些只支持标准帧的CAN控制器可以识别扩展帧并且忽略它们(参考CAN2.0 
                B Passive)</P><BR>
                <P><IMG src="DNet Development DND欢迎你的到来3.files/identifier.png" 
                border=0></P>
                <HR SIZE=1>
                <BR>
                <P>** 检测和信号错误 
                **<BR><BR>不同于其它总线系统,当错误产生时CAN协议不能立即使用应答报文来取代错误信号,对于错误侦测CAN协议有完整的三种报文级机制:<BR><BR>* 
                循环冗余检测(CRC):CRC在报文结束时增加一个冗余检测位来保证帧信息安全,接收者会重新计算CRC值并与报文中的位做对比,如果不一样则发生CRC错误。<BR><BR>* 
                帧检测(Frame 
                check):这种机制将接收的报文与固定的帧的格式和大小作比较,来确定所接收的报文的结构。帧检测所检测到的错误称为“格式错误(format 
                errors)”。<BR><BR>* 
                ACK错误:已经接收的帧都要被所有的接收者做应答,如果报文发送者没有收到应答信息则发生一个ACK错误。<BR><BR>CAN协议也提供两种位元级的错误侦测机制:<BR><BR>* 
                监视(Monitoring):发送者可以通过监视总线电平信号来检测错误。每个传送的站都可以监视总线电平并检测传送位与接收位的不同,对于全局性的错误和只基于发送者的错误都可以被检测到。<BR><BR>* 
                位填充(Bit 
                stuffing):单一的位编码可以在位元级进行检测。CAN使用一种保证最大有效位元的“非归零(NRZ)”编码来表示位元。其同步边沿信号由位填充来产生,即5个连续相同的位元后,发送者会自动插入一个反向的填充位元到位元组中,接收者自动识别此填充位元并将其删除,以取得实际的位元组。<BR><BR>如果至少一个站使用上述机制发现一个或多个错误,则发送“错误标志(error 
                flag)”来取消当前的传送,阻止其它站继续接收报文,以确保通过网络的数据连贯性,一个错误的报文传送被取消后,发送者自动重新尝试发送(自动重发),并重新进行总线访问权的竞争。</P></FONT>
                <P></P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> 
                </P>
                <P 
                style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> 
                </P></P></TR></TBODY></TABLE>
            <TABLE height=107 cellSpacing=0 cellPadding=0 width=475 border=0>
              <TBODY>
              <TR>
                <TD vAlign=top width="100%" 
                background="DNet Development DND欢迎你的到来3.files/bg_head.jpg" 
                height=21><FONT size=+0> </FONT></TD></TR>
              <TR>
                <TD width="100%" 
                background="DNet Development DND欢迎你的到来3.files/bg_mid.jpg">
                  <TABLE cellSpacing=10 cellPadding=0 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD width="100%"></TD></TR></TBODY></TABLE></TD></TR>
              <TR>
                <TD vAlign=top width="100%" 
                background="DNet Development DND欢迎你的到来3.files/bg_tail.jpg" 
                height=10><FONT face=Tahoma><FONT 
              size=+0> </FONT></FONT></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY></TBODY></TABLE>
            <TABLE height=190 cellSpacing=0 cellPadding=0 width=480 
            background="DNet Development DND欢迎你的到来3.files/bg_res.jpg" 
              border=0><TBODY>
              <TR>
                <TD vAlign=top width=469 height=172>
                  <TABLE height=176 cellSpacing=0 cellPadding=10 width="100%" 
                  border=0>
                    <TBODY>
                    <TR>
                      <TD width="100%" height=18></TD></TR>
                    <TR>
                      <TD width="100%" height=134>
                        <FORM action=addpaper.pl method=post>
                        <P 
                        style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px; LINE-HEIGHT: 100%"><FONT 
                        face=Tahoma>姓 名: <INPUT 
                        style="COLOR: #ffffff; BORDER-TOP-STYLE: groove; BORDER-RIGHT-STYLE: groove; BORDER-LEFT-STYLE: groove; BACKGROUND-COLOR: #000000; BORDER-BOTTOM-STYLE: groove" 
                        maxLength=16 size=10 name=user> &nbsp;&nbsp;密 码: <INPUT 
                        style="COLOR: #ffffff; BORDER-TOP-STYLE: groove; BORDER-RIGHT-STYLE: groove; BORDER-LEFT-STYLE: groove; BACKGROUND-COLOR: #000000; BORDER-BOTTOM-STYLE: groove" 
                        type=password size=10 name=passwd> <A 
                        href="http://www.dndev.com/cgi-bin/register.pl?action=new" 
                        target=_blank>注册</A> <A 
                        href="http://www.dndev.com/cgi-bin/register.pl?action=mod" 
                        target=_blank>修改</A> </FONT>
                        <P 
                        style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px; LINE-HEIGHT: 100%"><TEXTAREA style="FONT-SIZE: 9pt; COLOR: #cccccc; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #000000" name=detail rows=5 cols=60 groove? border-style: ;></TEXTAREA></P>
                        <P 
                        style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px; LINE-HEIGHT: 100%" 
                        align=center><FONT face=Tahoma><INPUT type=hidden 
                        value=10 name=ID> <INPUT type=hidden value=res name=OP> 
                        <INPUT type=hidden value=2 name=Class> <INPUT style="COLOR: #cccccc; BORDER-TOP-STYLE: groove; BORDER-RIGHT-STYLE: groove; BORDER-LEFT-STYLE: groove; BACKGROUND-COLOR: #000000; BORDER-BOTTOM-STYLE: groove" type=submit value=提交 name=B1>&nbsp; 
<INPUT style="COLOR: #ffffff; BORDER-TOP-STYLE: groove; BORDER-RIGHT-STYLE: groove; BORDER-LEFT-STYLE: groove; BACKGROUND-COLOR: #000000; BORDER-BOTTOM-STYLE: groove" type=reset value=全部重写 name=B2></FONT></P></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <CENTER></CENTER></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE>
<TABLE cellPadding=10 width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="100%">
      <HR>

      <P 
      style="MARGIN-TOP: 1px; MARGIN-BOTTOM: 1px; WORD-SPACING: 1px; LINE-HEIGHT: 100%" 
      align=center><FONT face=Tahoma>Copyright &copy; 2003 <A 
      href="http://www.dndev.com/">DnDev.com</A>&nbsp; All Rights 
      Reserved.<BR>DND-DeviceNet 开发网&nbsp; 版权所有</FONT></P>
      <P 
      style="MARGIN-TOP: 1px; MARGIN-BOTTOM: 1px; WORD-SPACING: 1px; LINE-HEIGHT: 100%" 
      align=center><FONT face=Tahoma>制作维护:远方 &nbsp; Email:<A 
      href="mailto:yuanfang@dndev.com">yuanfang@dndev.com</A></FONT></P></TD></TR></TBODY></TABLE>
<P><FONT size=2> </FONT></P></TD></TR></TABLE></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -