本帖最后由 KuMo_2011 于 2013-10-29 18:55 编辑
CAN是Controller Area Net的缩写,即控制器局部网,是一种有效支持分布式控制或实时控制的串行通信网络。CAN是德国Bosch公司为汽车的监测、控制系统而设计的,如控制发动机点火、注油及复杂的加速、刹车、抗锁定刹车系统等,已用于各种汽车上。
由于CAN具有卓越的特性及极高的可靠性,因而非常适合工业过程监控设备互连。CAN已经成为一种国际标准(IsO-11898),是最有前途的现场总线之一。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统等应用中,CAN的速率可达到1 Mbps。CAN的信号传输介质为双绞线,具有现场总线的特点;目前,在国内的电力、石化、航天、冶金、空调等不同行业均有应用。
CAN总线的特点如下:
1.CAN总线接口芯片支持8位、16位CPU,许多嵌入式微处理器都集成了CAN通信控制器。 2.CAN总线具有国际标准,即IsO-11898。 3.CAN可以多主方式工作,网络上任意一个节点均可以在任意时刻、主动地向网上其他节点发送信息而不分主从,通信方式灵活。利用这一特点,也可方便地构成(容错)多机备份系统。 4.CAN网络上的节点可分成不同的优先级,满足不同的实时要求。 5.CAN采用非破坏性总线仲裁技术。当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突。 6. CAN可以点对点、一点对多点及全局广播的方式传送和接收数据. 7.CAN直接通信距离最远可达10 kin/5 kbps,通信速率最高可达1 Mbps/40 m。CAN—BUS上节点数据理沦值为2 000个,实际可达110个。 8. CAN采用短帧结构,每一帧的有效字节数为8个。这样短的传输时问,受干扰的概率低,重新发送时问短。 9.CAN节点在错误严重的情况下,具有自动关闭总线的功能,即切断它与总线的联系,以使总线上的其他操作不受影响。 10.CAN每帧信息都有CRC校验及其他检错措施,保证了数据的出错率极低。11. 通信介质采用廉价的双绞线,无特殊要求。 12.用户接口简单,编程方便,很容易构成用户系统。开发系统廉价,OEM用户容易操作。
FlexCAN 模块是一个通信控制器,该模块实现了CAN 协议,即CAN2.0B 协议规范。实现控制器局域网络协议(CAN)通信。FlexCAN 模块同时支持CAN协议规范2.0版、B部分所规定的标准帧和扩展帧。FlexCAN模块是弹性的,允许它的16个信息缓存(MBs)中的各个分配为传输缓冲或接收缓冲,各MB也可以分配中断标志位,指示传输或接收成功完成。
为了对信息进行双重缓冲,FlexCAN模块有两个影子缓存,称为串行信息缓存(SMBs)。这两个缓存由FlexCAN模块用来保存接收和发送的两个信息。在同一时刻,仅有一个SMB是活动的,其功能取决于FlexCAN模块在那一时刻的操作。这两个缓冲的任何一个在任何时间都是不可访问的或不可见的。
FlexCAN模块支持以多种方式设置CAN协议要求的位定时参数。有两个16为寄存器(FCCTL0 和FCCTL1)来确定位定时参数各个字段的值。传播段(PROPSEG),1/2相位段(PSEG1 and PSEG2),以及同步跳跃宽度(RJW)都通过FCCTL0 和FCCTL1寄存器来编程,同样,FlexCAN维护一个预分频(PRES_DIV)值,以确定系统时钟和SCLOCK、当前时间元之间的比率。
FlexCAN模块按两种方法复位: a.使用系统复位线硬件复位 b.在FCMCR中声明SOFT_RST软复位
|