控制器局域网络(CAN)控制器英飞凌XC800系列单片机Page2Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21写在前面本篇内容为英飞凌科技有限公司(InfineonTechnologiesCO.,LTD.)的XC800系列单片机的基础篇之一。本篇所述内容为XC800系列单片机中的XC886/888和XC878子系列提供CAN外设。如无特别说明,所指的产品为上述XC800子系列单片机中的XC886CLM单片机。由于后续芯片会有更多的改进/增加措施,如需要关注其它产品,需要再结合相应的产品数据手册(DataSheet)和用户手册(UserManual)!由于版本更新等原因,可能会出现各版本间的资料说法有略微差异,请以英飞凌网站公布的最新英文版本的产品数据手册(DataSheet)和用户手册(UserManual)为准!Page3Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21本篇内容CAN总线原理InfineonMultiCANMultiCAN的组成MultiCAN的运用实战练习:LED灯控实验(报文的发送/接收)Page4Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21CAN总线原理BOSCHCANCAN(ControllerAreaNetwork)为局域网控制总线,符合国际标准ISO11898。CAN总线最初是由德国的BOSCH公司为汽车的监测、控制系统设计的,属于总线式通讯网络。CAN总线规范了任意两个CAN节点之间的兼容性,包括电气特性及数据解释协议。CAN协议分为两层:物理层和数据链路层。物理层用于决定实际位传送过程中的电气特性。在同一网络中,所有节点的物理层必须保持一致,但可以采用不同方式的物理层。CAN的数据链路层功能则包括帧组织形式、总线仲裁和检错、错误报告及处理、对要发送信息的确认以及确认接收信息并为应用层提供接口等。其主要特点是:能够以多主方式工作,网络上的任意节点均可成为主节点,并可向其它节点传送信息。非破坏性总线仲裁和错误界定,总线冲突的解决和出错界定可由控制器自动完成,且能区分暂时和永久性故障并自动关闭故障节点。CAN节点可被设定为不同的发送优先级。以满足不同的实时要求。采用差分驱动,可在高噪声干扰环境下使用。Page5Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21CAN总线原理(续)CAN总线是一个面向报文的协议报文的内容是界定的每一个报文都有自己独特的识别标志节点的数目没有限制CAN总线网络是容易升级的模块化网络Page6Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(1)4个节点10个不同的报文—门命令CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机开门!!!Page7Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(2)4个节点10个不同的报文—门命令CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机门打开!!!Page8Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(3)4个节点10个不同的报文—门命令CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机关门!!!Page9Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(4)4个节点10个不同的报文—门命令CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机门关闭!!!Page10Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(5)4个节点10个不同的报文—门命令—楼层命令CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机到第7层!!!Page11Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(6)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机当前楼层?远程请求Page12Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(7)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机当前为第6层!!!远程数据Page13Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(8)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机电机向上运转Page14Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(9)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机到达第7层!!!Page15Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(10)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机电机停止Page16Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21入门例子-电梯(11)4个节点10个不同的报文—门命令—楼层命令一个远程请求/响应容易实现更多节点的扩展CAN节点门CAN节点用户面板...CAN节点楼层计数器...条目.条目.CAN节点电机电机停止CAN节点紧急制动电机停止容易的网络扩展Page17Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21InfineonMultiCAN总览InfineonXC800单片机所带的CAN称为MultiCANInfineon的MultiCAN为BOSCHCAN的超集,并在此基础上扩充了一些特殊功能。MultiCAN模块包含大于两个的全CAN功能节点(XC800系列的产品含两个CAN节点),每个节点可独立工作或者通过网关功能交换数据和远程帧。所有的CAN节点共用一套报文对象,每个报文对象可被独立分配给任意一个有效的CAN节点之一。每个CAN节点都可以接收和发送带11位标识符的标准帧和带29位标识符的扩展帧。MultiCAN节点仅将帧存储到分配给该节点列表的报文对象中,且仅发送属于该报文对象列表的报文。功能强大,由命令驱动的列表控制器执行所以报文对象列表操作。Page18Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21InfineonMultiCAN特点与ISO11898标准兼容根据CANV2.0BActive技术规范确定CAN功能每个CAN节点都有专用控制寄存器数据传送速率高达1Mbit/sCAN总线位时序分析和由帧计数器实现的波特率检测功能先进的验收滤波功能先进的报文对象功能先进的数据管理先进的中断处理Page19Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21InfineonMultiCAN模块组成MultiCAN模块Page20Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21InfineonMultiCAN结构框图MultiCAN每个CAN节点可单独配制并运行,不依赖于其他CAN节点。每个CAN节点都配有一套独立的SFR寄存器,对该节点进行控制和监控。Page21Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21InfineonMultiCAN时钟控制当有效CAN节点的波特率为1Mbit/s时,需要注意有最小工作频率fCAN的限制,见下表。如果需要的波特率小于1Mbit/s,所需的频率值依照线性比例确定(例如:需要的最大波特率为500kbit/s时,频率值为下表中所给出的50%)。表:最小工作频率[MHz]1)只考虑那些已经分配给CAN节点的报文对象,未分配的报文对象对最小工作频率没有影响。231532个报文对象191216个报文对象2个CAN节点都有效只有1个CAN节点有效被分配的报文对象个数1)Page22Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21MultiCAN的组成节点控制在同步段(TSync)进行发射和接收时间基准之间的相位同步。同步段长度总为一个tq。传播段(TProp)考虑CAN总线上的发射输出驱动器和收发电路的物理传播延迟。对于工作冲突检测机制来讲,TProp必须等于所有的传播延迟量的总和舍入到tq的整数倍之后,再乘以2所得的值。采样点之前和之后的相位缓冲段1和2(Tb1,Tb2)用于补偿同步段中检测到的发射和接收之间的时钟相位失配。Page23Copyright©InfineonTechnologies2008.Allrightsreserved.E1Training2009-1-21MultiCAN的组成位时间的计算重新同步阶段所允许的时间单元的最大值由位域NBTRx.SJW定义。传播段和相位缓冲段1结合成参数TSeg1,由NBTRx.TSEG1中的值定义,ISO标准要求其最小值为3个时间单元。参数TSeg2,由NBTRx.TSEG2的值定义,包含了相位缓冲段2,ISO标准要求其最小值为2个时间单元。根据ISO标准,CAN位时间,是TSync,TSeg1和TSeg2的总和,必须不少于8个时间单元。tq=(BRP+1)/fCAN如果DIV8=0=8×(BRP+1)/fCAN如果DIV8=1TSync=1×tqTSeg1=(TSEG1+1)×t