关闭

关闭

封号提示

内容

首页 CAN_comm.pdf

CAN_comm.pdf

CAN_comm.pdf

上传者: alanliu 2012-04-02 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《CAN_commpdf》,可适用于IT/计算机领域,主题内容包含广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页控制器局域网CAN未来的工业微处理器串行通讯目录CAN介绍符等。

广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页控制器局域网CAN未来的工业微处理器串行通讯目录CAN介绍低成本的远程IO两种CAN报文冲突的处理交互的通讯物理层特定工业领域的定制CAN用CAN作为解决方案的情况CAN总线协议CAN控制器CAN报文帧类型总线仲裁CAN错误检测CAN支持工具广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页CAN介绍控制器局域网CAN是由ISO定义的串行通讯总线它最初出现在年代末的汽车工业里它的基本设计规范要求有高的位速率高抗电磁干扰性而且能够检测出产生的任何错误由于CAN串行通讯总线具有这些特性它很自然地在汽车制造业以及航空工业中受到广泛应用CAN通讯协议描述了在设备之间信息如何传递它对层的定义与开放系统互连模型OSI一致每一层与另一设备上相同的那一层通讯实际的通讯是发生在每一设备上相邻的两层而设备只通过模型物理层的物理介质互连CAN的结构定义了模型的最下面的两层数据链路层和物理层应用层通过不同的新兴协议层专门用于特殊的工业领域加上由个别CAN用户定义的任何合适的方案和物理层连接可能最好的CAN协议工业标准也许就是AllenBradley的DeviceNet它是为PLC和智能传感器设计的国际上广泛应用的CAN协议工业标准还有CANopen和SDS物理介质包括带有特定终端的双绞线在BasicCAN的规范中它的传输速率能达到KBaud而PeliCAN能达到Mbaud物理层和数据链路层对于系统设计者来说是透明的并包含在所有执行CAN协议的部件中这些部件有带有集成CAN接口的微控制器例如与兼容的PhilipsPC处理器和位的PhilispXACSJA是一个独立的CAN控制器它可以和很多微控制器直接接口而与物理介质连接可以用分离部件或者CTJA集成电路或相似的方法实现SIEMENSNEC和INTEL也提供独立的CAN控制器低成本的远程IO传统上CAN是一个基于微控制器的器件互相连接的网络这意味着其每个节点的成本并不是特别的低最有趣的发展成果就是SLIO模块这个概念它是一个单芯片能够在CAN网络里充当一个沉默的输入输出网关并把报文转化为实际的数字IO信号它能读IO引脚并把数据当作报文传输它还能使用集成AD转换器来生成报文并传输引进到网络上这些装置非常便宜并且对于驱动远程感应器执行器或采集数字和模拟数据都非常理想它们能够被看作中央微控制器的远程附件现今来说只能使用BasicCANSLIO但毫无疑问Philips和其他PeliCAN厂家将生产出相应的PeliCAN的设备两种CANCAN以两种形式存在一种是具有位ID标识符的BasicCAN另一种是带有扩展成位ID标识符的高级形式PeliCAN内部的验收滤波器屏蔽滤波器可通过标识符ID来接收需要的报文屏蔽不相关的报文即只向CPU提交合适的报文PhilipsIntelSiemens均支持BasicCAN和PeliCAN同时PeliCAN协议允许两段长度的标识符A部分使用位报文标识符能够识别出个不同的标识符保留十六位此部分兼容BasicCAN而PeliCANB部分有位能够产生个不同的标识符PARTA的设备只能用标准的CAN协议发送和接收如果在位ID的扩展CAN系统中使用设备会发生错误并破坏网络SIEMENSC和C是相类似的PARTA位ID设备但可在扩展CAN上使用而不会引起总线错误原因很简单因为它们忽略了扩展CAN帧而是被认为是PARTB设备PARTB的设备PeliCAN则可由设定工作于其中一种模式下数据链路层定义了报文传输的格式和定时协议这里有两种描述符都能达到字节的数据描述符是非常重要的因为它们定义了报文的优先权以及报文传输的类型广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页标识符场有位并用来识别报文以及决定总线访问的优先权标识符的二进制值越小其优先权就越高报文的优先权分配是CAN总线的特征之一特别在一个强大的实时控制环境里这一点尤其吸引人标识符场中所有的位都能够决定报文的优先权这意味着在一个位系统里面报文的优先权编号号码可以从高优先权到低优先权CAN规范保证了优先权与延时是相关联的报文冲突的处理如前所说CAN的一个基本特征是越低的报文编号号码其优先权越高一个标识符如果全部是零的话那么它具有最高优先权因而两个节点同时开始传送报文第一个发送零而另一个发送的话那么发送零的那个就能够先分配到CPU并完成报文发送这种非破坏性的逐位仲裁与每一个节点都可以监控自己发送的能力联合使用因而如果一个发送器A被另一个发送器B发送有更高优先权的报文支配overrule回读的报文和A企图发送的报文不一致A将暂停发送一旦总线空闲另一个请求就会马上发送这是第一层的部分功能它完全包含在CAN控制器里因此它对CAN用户来说是透明的交互的通讯它可以发送一个数据请求到特定的地址远程发送请求RTR位定义了报文发送数据请求还是发送实际数据数据长度代码告诉接收器报文里面包含了多少个数据字节如果是数据请求则没有数据字节随传那么数据长度代码就不会与数据字节数有直接关系在CAN总线中最大的节点数典型是个但是最终的数量是由物理层的特性决定在总线为KB传送速率的CAN系统中根据每个报文的字节数系统每秒钟大约能发送个到个报文物理层CAN能够使用很多物理介质例如双绞线光纤等只要物理驱动器是在开集电极而且每个节点都能够监听到它自己以及其他所有节点那么CAN就能够工作最常用的就是双绞线一个信号能够使用差分电压传送CAN驱动器能够因此而避免噪声和容错这两条信号线被称为CANH和CANL静态时是V用CANH比CANL高表示的逻辑被称为显形位而用CANL比CANH高表示的逻辑叫做隐性位差分的电压令CAN网络即使在一条信号线断开或者在噪声极大的环境中也能够工作只需要一对双绞线差分的CAN输入就能够很有效地抵偿噪音只需要该噪音是在通常的波段里CAN线收发器提供便宜的接口把V的逻辑电平转换成CAN要求的对称线电平广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页特定工业领域的定制CAN报文号码的分配与优先权有关可以由个别的用户字节确定但要注意某些工业集团互相统一了某些报文的意义以及实际使用的协议例如发动机驱动器的制造商可能会决定报文x在CAN网络中是任何线圈的电流反馈信号而x是转速计速度而x比x先有一个零和电流值相关的报文将使和转速计读数相关的报文无效不能传输在DeviceNet中不同的制造商生产的多种PLC能够相连在一起外围设备如压力和温度传感器都能添加到CAN网络里由于预先定义好传感器产生报文PLCs将知道哪些报文总是和温度有关而不需要考虑它是哪个厂家的产品用CAN作为解决方案的情况CAN在微控制器之间需要互相通信或微控制器和远程的外围器件要互相通信的情况下是一个理想的解决方法在它的原始应用环境车中CAN最初用于关键任务的实时监控系统例如引擎管理系统和变速箱控制交换信息而在这里CAN的短报文和有保证的报文延迟时间允许每一个网络的端口都能用当前的数据工作甚至数据的改变时间在上百个微秒时标的情况下也可以使用这些系统都利用CAN控制器的PeliCAN将不需要的报文滤出以减少主CPU的负载但是低成本的独立PeliCAN设备就允许不是实时的任务例如门系统带有窗的升降镜子控制等逐步成为CAN网络的一部分实际上传统的线束CAN网络在一些情况下甚至在普通的器件上譬如刹车灯和指示灯只是附加的节点代替了两线的CAN网络同时个标识符的BasicCAN已经越来越广泛地被应用到工业控制领域的一般网络中PHILIPS努力发展并正在推广的PeliCAN允许微控制器和外围器件之间以M波特的速度进行简单通讯实际上即使是便宜的SLIO设备也有高达个IO引脚加上原来的IO引脚能够分配个位的AD或DA信道SLIOs有由外部电阻设定的唯一的标识符因而它们能够识别给它们的报文以及在已接收的报文基础上生成报文工业应用如果使用有PeliCAN的PC它们也生产CAN控制器作为普通微控制器的附件微控制器它就能从PeliCAN的M波特中获益但是PeliCAN的原则是它为微处理单元之间高速数据的交换保留而不是和低速的IO端口级通讯CAN总线协议CAN总线被设计为具有最大传输速率Mbitsec的多主结构CAN不像传统的网络它不会点到点地传送报文例如从A节点到B节点在CAN报文中标识符是给予数据而不是节点报文在网络中广播任何对报文有兴趣的节点都能够接收这个数据例如在车上一个节点可能传送了车轮的速度这个数据可能会同时被ABS单元设备组INSTRUMENTCLUSTER以及引擎管理系统所接收而这些部件会知道这个信息是从哪里发出在一个典型的嵌入式系统中传送少量的重要数据是必要的这些数据必须在一个实时的时间帧内到达这与非实时的网络譬如在PCLAN中传输一个文件不同一般来说CAN报文包允许传输最高个字节的数据而总线仲裁的方法保证了一个重要的数据能够在一个保证的时隙内到达CAN是特别设计用于电噪声很大的环境这个环境中的报文最容易被丢失或破坏CAN协议提供了五种错误检测和修正的方法因此如果报文被破坏它能够检测出来而且网络中的所有节点会忽略这个报文该报文会一直被传送到被准确接收为止从一个设计者的观点来看CAN协议主要的吸引之处在于整个协议都是由一块芯片以及程序来运行它看起来就像一个增强的多信道UART所有的错误检测传送和接收技术都能够用CAN控制器芯片的硬件透明地执行广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页CAN控制器典型的CAN节点都带有一个微控制器这个微控制器中专用的CAN控制器存储器映射到它的外部地址总线一些控制器被设计成可以作为并行设备和地址总线接口或通过控制器的UART的串行接口或者甚至是一对端口引脚和地址总线接口CAN控制器要通过线驱动器和总线接口总线典型是双绞线两端都接上一个的电阻CAN有发送和接收两端因此它能够同时读写总线这个功能对于错误检测与总线仲裁都很重要CAN收发器和物理层并不由CAN规范来定义但是只要它符合上述的要求就可以使用例如RS驱动器和OPAMPS运算放大器等工具PHILIPSSILICONIX和TEXAS等都供应专用的CAN驱动芯片这些CAN收发器有引脚表面装配和DIP封装的两种形式CAN报文帧类型在CAN总线中有四个通讯对象带有应用数据的报文帧向网络请求数据的远程帧能够报告每个节点错误的出错帧如果节点的接收器电路尚未准备好就会延迟传送的过载帧报文帧在标识符前面具有一个帧起始STARTOFFRAME场标识符可以有位扩展CAN或者CANB或者位CANA当节点接收到一个报文与所使用的CAN结构有关的标识符就会与验收滤波器或者用户在CAN控制器定义的标识符列表相比较如果标识符通过了验收过滤器或者与列表的标识符匹配它就会被节点接收并产生CPU中断因而相同的报文能够被设计者要求的节点所接收标识符同样可以用于仲裁场中如果标识符的编号越低那么报文的优先权就越高标识符后面是控制场控制场包含数据长度场其中的DLC规定了数据场中字节的数量RTR场将在稍后讨论剩下的场是由CAN控制器产生包含了位循环冗余检查对前面的场进行计算和一个应答隙ACK场应答隙是报文包中的一个间隙它允许一个已经正确接收报文的节点插入一个应答这等于告诉了发送器报文已经被正确接收如果发送节点没有得到应答它会继续重新发送报文直到得到应答为止广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页远程请求帧是报文帧的简短形式它用于向网络请求数据传送数据请求的标识符时远程传输请求位RTR要置位与标识符相配的节点这时就会将请求的数据用报文帧传送有一点要注意的是DLC在远程帧中并不是为零而是被设定成期望接收到的数据字节的数量一般来说远程帧是用在低总线负荷的网络中这种情况下主机会向网络查询数据这就简化了正个系统的设计并避免了总线冲突以上的帧都服从位填充规则这个规则中如果有超过五个连续的或将插入一个极性相反位以防止纯DC直流电平这种错误违背规则我们将在介绍总线仲裁后再介绍错误处理总线仲裁CAN总线物理层通常是双绞线当逻辑被写进总线里两条线的电平是V并被定义为隐性位当逻辑被写进总线里一条线被上拉到为VCAN高另一条线被下拉到地CAN低这叫做显形位但是如果显形位和隐性位都被不同的节点同时写进总线里总线显示显形位所以显性位覆盖了隐性位这些都是CAN网络冲突检测的基础广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页当节点开始传送它们各自的报文时标识符的每一个位都被写到总线里而且能够被每一个节点读回如果一个节点写进了隐性位而读回显性位它会知道另一个较低标识符号码的高优先权节点正在访问总线它会停止传送报文并继续接收更重要的报文这种技术叫做非破坏性逐位仲裁它保证了如果发送一个高优先权报文它将会赢得仲裁并能够在一个保证的时间限度里到达它的目的节点这些都由系统设计者来控制必须注意如果两个节点用同样的标识符发出数据两个都会得到总线的仲裁并开始传输数据在某一点数据会不同并产生错误两个节点都会后退并且重新开始整个传输过程在最坏的情况下它会锁死网络CAN错误检测CAN协议有五种错误检测的方法三个是报文级的而两个是位级的如果一个报文出错那么错误检测的任何一个方法使节点不接收这个报文并产生一个出错帧使所有的帧都忽略它并使发送节点重新发送这个报文在报文级检查中有CRC检查和应答隙CRC检查是一个位CRC它计算描述符场和数据字节的CRC应答场有两位包括一个应答位和一个应答界定符这个发送器将会把一个隐性位放在应答场任何一个正确接收报文的节点在应答场写一个显性位如果发送器在应答场没有读回一个显形位它将产生一个出错帧并重新传送报文最后在报文级还有一个形式检查它检查那些总是隐性位的报文场如果检测到显形位就会产生错误它检查帧起始帧结束应答界定符以及CRC界定符位在位级检查中每一个位都由发送器监控如果一个位被写进总线但读到的是它的反错误就会产生只有标识符场用于仲裁和应答隙是除外的它要求显性位覆盖隐性位最后的一种错误检测方法是通过位填充规则当一个报文没有被填充即如果在逻辑电平相同的连续位后下一位不是前面的反则产生一个错误活动错误帧包括六个显形位它们违背了位填充规则所有的CAN节点都认为它是一个错误并产生自己的错误帧所以错误帧的长度可以在位和位之间错误帧后是位隐性位界定符场而总线在重发被破坏的报文前是空闲的要注意报文在被成功接收之前仍要争取仲裁CAN最初是设计用于总线长度大约为米的汽车系统但是自从CAN发现它要在很多要求增长总线长度的系统中使用后其最大的传送范围不断地增大标准的驱动器能够驱动长度高达公里的总线上述的图表描述了理想的期望传输速率和传输长度的关系广州周立功单片机发展有限公司Tel:()Fax:http:wwwzlgmcucom第页共页CAN支持工具虽然CAN相对比较年轻但是它已经能被大量的开发工具支持这些工具从简单开发板到大规模的CAN分析仪都有位于德国曼兹的PHYTEC公司在PC和PhilipsXA结构的基础上生产出一系列配备CAN的微控制器板它包含了微控制器和外围CAN控制器PhilipsPC或者单一的CAN微控制器SJAPC这些板能够使用C语言或者汇编语言来编程并且能使用先进的调试器譬如Hitex的HiTOPPHYTEC也提供小型的SLIO模块位于慕尼黑的IXXAT公司生产系列的CAN工具和接口它们包括基于普通PC卡或者小型PCMCIA模块的CANPCMCIA和VME插槽这些对于CAN的调试非常有用由于如此紧密地与微控制器相联系现存的工具例如在电路仿真提供非常有用的功能譬如无论是在片或者不在片的状态下都能实时监控CAN控制器的输入和输出数据

职业精品

精彩专题

上传我的资料

热门资料

资料评价:

/ 8
所需积分:5 立即下载

意见
反馈

返回
顶部

Q