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