220 likes | 412 Views
第 11 章: CAN 控制器模块. 11.1 CAN 控制器模块概述 11.2 邮箱 11.3 CAN 控制寄存器 11.4 CAN 控制器的操作. 11 .1 CAN 控制器模块概述. 1 、 CAN 技术简介 CAN总线的出现, 使控制系统的网络化成为可能 ,是国际公认的一种 现场总线协议 。 CAN (Controller Area Network)总线是德国Bosch公司为解决现代汽车中众多的控制单元与测试仪器之间的数据交换而开发的一种 串行数据通信协议 。
E N D
第11章: CAN控制器模块 • 11.1 CAN控制器模块概述 • 11.2 邮箱 • 11.3 CAN控制寄存器 • 11.4 CAN控制器的操作
11.1 CAN控制器模块概述 • 1、CAN技术简介 CAN总线的出现,使控制系统的网络化成为可能,是国际公认的一种现场总线协议。 CAN (Controller Area Network)总线是德国Bosch公司为解决现代汽车中众多的控制单元与测试仪器之间的数据交换而开发的一种串行数据通信协议。 CAN总线问世以来,以高效率、低成本和快速性等特点迅速在汽车电子、测量仪器、控制系统得到广泛的应用。 CAN协议一般用来管理控制器、传感器、执行器和人机接口之间的数据传输;使用双绞线,给用户提供了一种低成本的系统连网方案。 由于协议本身的优点,总线上的数据绝对不会发生冲突、数据遗失等现象,使得CAN广泛用于环境恶劣的工业现场和自动化生产线。
11.1 CAN控制器模块概述 CAN协议对于许多领域的分布式测控是很有吸引力的,目前CAN已成为IS011898标准,其特性如下: (1)结构简单,只有两根线与外部相连,且内部含有错误探测和管理模块。 (2)CAN是一种有效支持分布式控制和实时控制的串行通信网络。 (3)CAN可以多主模式工作,网络上任意一个节点均可在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活。 (4)CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。 (5)CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据。
11.1 CAN控制器模块概述 (6)CAN的直接通信距离最远可达10km(传输速率为5Kbps);最高通信速率可达1Mbps(传输距离为40m)。 (7)CAN上的节点数实际可达110个。 (8)CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错。可满足通常工业领域中控制命令、工作状态及测试数据的一般要求,同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。 (9)CAN每帧信息都有CRC校验及其它检错措施,有效地降低了数据的错误率。 (10)CAN节点在错误严重的情况下,具有自动关闭的功能,使总线上其它节点不受影响。 (11)信号调制解调方式采用NBZ(非归零)编码解码方式,并且采用插入填充位(位填充)技术。
11.1 CAN控制器模块概述 CAN协议 支持用于通信的4种不同的帧类型: 数据帧:从发送节点到接收节点传送数据。 远程帧:主要用于请求信息,当节点A向节点B发送一个远程帧,如果节点B中的数据帧信息与节点A有相同的标识符,节点B将做出应答,并发送相应的数据帧到总线上。 错误帧:在总线检测错误时,任意一个节点所发送的帧。 过载帧:在前后两个数据帧或远程帧之间提供一个额外的延时。
11.1 CAN控制器模块概述 数据帧包含如下内容 (1)帧的起始; (2)包含标志符和被发送信息类型的仲裁域; (3)包含数据位数的控制域; (4)多达8个字节的数据域; (5)循环冗余检查(CRC)位; (6)应答位; (7)帧结束位
11.1 CAN控制器模块概述 2、LF240x系列CAN控制器概述 LF240x为第一个具有片上CAN控制模块的DSP芯片,给用户设计分布式或网络化运动控制系统提供了方便。 CAN控制器是一个16位的外设模块,具有以下特性: (1)完全支持CAN2.0B协议; (2)提供6个邮箱对象,其数据长度为0-8个字节。 (3)针对邮箱0、1和2、3有局域接收屏蔽寄存器。 (4)可编程波特率; ★(5)可编程中断配置; (6)可编程的CAN总线唤醒功能; ★(7)自动回复远程请求; (8)当发送出现错误或仲裁丢失数据时能自动重发; (9)总线错误诊断功能; ★(10)自测试模式; (11)两引脚通信,即CANTX和CANRX。
11.1 CAN控制器模块概述 CAN控制器结构框图
11.1 CAN控制器模块概述 CAN控制器模块的内存空间分配
11.2 邮箱 1、CAN信息对象 CAN允许通过数据桢来发送、接收和保存信息。LF2407的CAN控制器支持两种不同的帧格式,即标准格式和扩展格式。 SOF:数据帧的起始,表示数据桢从此处开始 Identifier(标志符): 信息优先:当两个或更多节点竞争总线时,决定了信息的优先级; 信息过滤:决定一个传输的信息能否被CAN模块收到。
11.2 邮箱 RTR:远程传输请求位。用来区分来自远程帧的数据桢 SRR:替代远程请求位。占用了标准数据桢的RTR位 IDE:标准扩展位。区分标准和扩展帧 r0和r1:保留 DLC:数据长度代码,表示在数据桢中字节的个数(0~8位) Data:4个16位字用于保存一个CAN信息的8字节数据域 CRC:包含一个16位循环冗余检查计算,绝大部分信息均进行循环冗余检查 ACK:数据应答 EOF:数据桢的结束
11.2 邮箱 2、CAN邮箱寄存器 邮箱标识符寄存器 MSGIDnH:标识符扩展位;接受屏蔽使能位,只与接收邮箱有关;自动应答模式位,只与配置为发送的2、3邮箱有关;标识符,扩展帧高13位、标准帧11位。 MSGIDnL:标识符,扩展帧低16位。 邮箱控制寄存器(MSGCTRLn) RTR:远程发送请求位。 DLC[3~0]:数据长度选择位,只对发送邮箱有效。
11.3 CAN控制寄存器 1、邮箱方向/使能控制寄存器(MDER):决定邮箱的使能位(ME)和邮箱2、3的方向。 MD3/2:邮箱3/2发送/接收配置位,上电时复位为0; MEn:邮箱使能位。初始化时必须禁止使能位。 2、发送控制寄存器(TCR):控制信息的发送,发送请求设置和复位位(TRS和TRR)可进行独立写操作,只对发送邮箱有效。 TA5~2:发送应答位; ★AA5~2:忽略应答位; TRS5~2:邮箱发送请求位; ★TRR5~2:发送请求复位位。 3、接收控制寄存器(RCR):控制信息的接收和远程帧的处理,仅对接收邮箱有效。 RFP3~0:远程请求悬挂位; ★RLM3~0:接收信息丢失标志位; RMP3~0:接收信息悬挂位; ★OPC3~0:信息覆盖保护使能位。
11.3 CAN控制寄存器 4、主控制寄存器(MCR):用于控制CAN内核模块的属性 SUSP:仿真挂起操作选择位,对接收邮箱无效; CCR:改变配置请求位; PDR:低功耗模式请求位; DBO:数据字节次序; WUBA:总线唤醒伟; CDR:数据域改变请求位; ABO:自动恢复总线位; STM:自测试模式使能位; MBNR:邮箱2、3选择位,对它们的数据域进行写操作及配置远程帧悬挂。
11.3 CAN控制寄存器 5、位配置寄存器(BCR1和BCR2):使用合适的网络定时参数配置CAN节点。只有在CAN处于复位模式下(CCR=1) ,才能对位定时器进行配置。 6、错误状态寄存器(ESR):用于显示在操作期间发生的错误,系统只保留第一个错误,后续错误不会改变寄存器的状态。 7、全局状态寄存器(GSR):反映CAN控制器的一些功能状态。 8、错误计数寄存器(CEC):包含两个错误计数器,即接收(REC)和发送(TEC),他们的值都可以通过CPU接口从CEC读取。
11.3 CAN控制寄存器 9、CAN中断逻辑 从CAN外设模块到外设中断扩展(PIE)控制有两个中断请求:邮箱中断和错误中断。下列CAN信息处理事件会产生一个中断: 邮箱中断:成功接收或发送了一个信息后,该事件会产生一个邮箱中断 中止应答中断:一个发送信息操作被中止,该事件会产生一个错误中断 写拒绝中断:CPU试图写访问一个邮箱,但是被拒绝,就会产生一个错误中断 唤醒中断:CAN唤醒后,产生该中断。当时钟没有工作时,该事件会产生一个错误中断 接收信息丢失中断:一个旧信息被新信息所覆盖,该事件会产生一个错误中断 总线关中断:CAN模块进入总线关状态,该事件会产生一个错误中断 消极错误中断:CAN模块进入消极错误模式,该事件会产生一个错误中断 警告级别中断:一个或两个错误计数器的值大于或等于96,该事件会产生一个错误中断 注意:当产生CAN中断时,用户应该检查CAN中断标志寄存器(CAN_IFR)的所有位,确定是否有1个或多个标志位被置位。如果有1或多个标志位被置位,则执行相应的中断服务程序(ISR)。即使CAN_IFR有多个标志位被置位,也仅产生一次核心中断。
11.3 CAN控制寄存器 CAN中断标志寄存器(CAN_IFR) MIFx(x=5~0):邮箱5~0中断标志位; RMLIF:接收信息丢失中断标志位; AAIF:中止应答中断标志位; WDIF:写拒绝中断标志位; WUIF:唤醒中断标志位; BOIF:总线关闭中断标志位; EPIF:消极错误中断标志位; WLIF:错误警告中断标志位 CAN中断屏蔽寄存器(CAN_IMR):设置同CAN_IFR类似,但是中断优先级选择位MIL和不一样。如果一个屏蔽位被置位,则PIE控制的相应中断请求被使能。
11.3 CAN控制寄存器 局部接收中断屏蔽高/低位寄存器n(LAMn_H/L) CAN控制器在接收信息时,先将要接收的信息的标识符与相应接收邮箱的标识符进行比较,只有标识符相同的信息才能被接收。CAN控制器的接收滤波器使得接收邮箱可以忽略更多的位来接收信息。 LAMI:局部接收屏蔽标识符扩充位。 LAMn[28~16]:高13位局部接收屏蔽位。 LAMn[15~0]:低16位局部接收屏蔽位。
11.4 CAN控制器的操作 CAN控制器的操作分成以下三大步 1.初始化CAN控制器 2.信息的发送 3.信息的接收
1.初始化CAN控制器 初始化或重新配置位定时器 初始化邮箱 11.4 CAN控制器的操作
11.4 CAN控制器的操作 2.信息的发送 CAN控制器的发送邮箱4和邮箱5及被配置为发送方式的邮箱2和邮箱3。在写数据到发送邮箱的数据区后,如果相应的发送请求位使能,则信息帧被发送到CAN总线上。
11.4 CAN控制器的操作 3.信息的接收 CAN控制器的接收邮箱0和邮箱1及被配置为接收方式的邮箱2和邮箱3。接收邮箱初始化时要设置其标识符及标识符相关的局部屏蔽寄存器(LAM)。