飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt

上传人:sccc 文档编号:5462259 上传时间:2023-07-09 格式:PPT 页数:30 大小:275.55KB
返回 下载 相关 举报
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt_第1页
第1页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt_第2页
第2页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt_第3页
第3页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt_第4页
第4页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC9S86CAN通信接口ppt课件.ppt(30页珍藏版)》请在三一办公上搜索。

1、第十五章 CAN通信接口,主要内容 现场总线概述 CAN技术规范 MSCAN08模块及其外围接口硬件电路 MSCAN08模块的编程结构 MSCAN08编程实例,嵌入式应用技术基础教程课件,15.1 现场总线概述,15.1 现场总线概述,现场总线是一种应用于生产现场,在现场设备之间、现场设备与控制装置之间实行双向、串行、多节点数字通信的技术。它是一项以智能传感、控制、计算机、数据通信为主要内容的综合技术,是当今自动化领域发展的热点之一,被誉为自动化领域的局域网。目前国际上存在几十种现场总线标准,比较流行的主要有FF(基金会现场总线)、CAN(控制器局域网)、LonWorks、Profibus等。

2、,嵌入式应用技术基础教程课件,返回,15.2 CAN技术规范,15.2 CAN技术规范,15.2.1 CAN的基本概念(1)报文(Messages)总线上传输的信息即为报文,它们以若干个不同的固定格式发送,但长度受限。当总线空闲时,总线上任何单元均可发送新报文。(2)信息路由(Information Routing)在CAN系统中,CAN不对单元分配站地址,报文的寻址内容由报文的标识符指定。标识符不指出报文的目的地,但是这个数据的特定含义使得总线上所有单元可以通过报文滤波来判断该数据是否与它们相符合。(3)位速率(Bit Rate)即总线的传输速率。在一个给定的CAN系统中,位速率是唯一的,也

3、是固定的。(4)优先权(Priorities)在总线访问期间,标识符定义一个静态的报文优先权。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,(5)远程数据请求(Remote Data Request),当总线上某单元需要请求另一单元发送数据时,可通过发送远程帧实现远程数据请求。(6)多主机(Multimaster)总线空闲时,总线上任何单元都可以开始向总线上传送报文,但只有最高优先权报文的单元可获得总线访问权。(7)仲裁(Arbitration)总线空闲时,若同时有两个或两个以上单元开始发送报文,总线访问冲突运用逐位仲裁规则,借助标识符ID解决。(8)错误标定和恢复时间(Error

4、Signaling and Recovery Time)任何检测到错误的单元会标志出已被损坏的报文。此报文会失效并将自动重传。如果不再出现错误,则从检测到错误到下一报文的传送开始为止,恢复时间最多为31位的时间。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,(9)故障界定(Fault Confinement),CAN单元能够把永久故障和短暂的干扰区别开来。(10)连接(Connection)CAN通信链路是一条可连接多单元的总线。理论上,总线上单元数目是无限制的,实际上,单元数受限于延迟时间和总线的电气负载能力。(11)单通道(Single Channel)CAN总线由单一通道组成,

5、借助数据重同步实现信息传输。(12)总线数据表示(Bus Values)CAN总线上有两种互补逻辑数值:显性(Dominant)电平和隐性(Recessive)电平。若显性位与隐性位同时发送,总线上数值将是显性。(13)应答(Acknowledgment)所有接收器对接收到的报文进行一致性检查。对于一致的报文,接收器给予应答;对于不一致的报文,接收器做出标志。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,15.2.2 CAN总线的位数值表示与通信距离,CAN总线上用显性(Dominant)和隐性(Recessive)两个互补的逻辑值表示0和1。当在总线上出现同时发送显性位和隐性位时,

6、总线上数值将出现显性。如左图。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,15.2.3 报文传输和帧结构,报文传输由以下4个不同的帧类型表示和控制:数据帧:数据帧将数据从发送器传输到接收器。远程帧:总线单元发出远程帧,请求发送具有同一标识符的数据帧。错误帧:任何单元检测到总线错误就发出错误帧。过载帧:过载帧用于在先行和后续数据帧(或远程帧)之间提供一附加的延时。数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,(1)数据帧,数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC 场、应

7、答场、帧结尾。数据帧组成如下图。,嵌入式应用技术基础教程课件,(2)远程帧 远程帧也有标准格式和扩展格式,而且都由6 个不同的位场组成:帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾。远程帧的组成如下图。,15.2 CAN技术规范,(3)出错帧,错误帧由两个不同的场组成。第一个场是由不同站提供的错误标志(ERROR FLAG)的叠加;第二个场是错误界定符。出错帧的组成如下图。,嵌入式应用技术基础教程课件,(4)过载帧 过载帧包括两个位场:过载标志和过载界定符。过载帧的组成如下图。,15.2 CAN技术规范,15.2.4 错误处理,1)错误检测(5种不同的错误类型)位错误:单元在发送位的同时

8、也对总线进行监视。如果所发送的位值与所监视的位值不相同,则在位时间里检测到一个位错误。填充错误:如果在使用位填充法进行编码的信息中,出现了6个连续相同的电平时,将检测到一个填充错误。CRC错误:CRC序列包括发送器的CRC计算结果。如果计算结果与接收到的CRC序列的结果不相符,则检测到一个CRC错误。形式错误:当一个固定的位场含有1个或多个非法位,则检测到一个形式错误。应答错误:只要在应答间隙期间所监视的位不为显性,则发送器会检测到一个应答错误。2)错误标定检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为“主动错误标志”,对于“错误被动”的节点,错误信息为“被动错

9、误标志”。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,15.2.5 故障界定,至于故障界定,单元的状态可能为下列三种之一:错误主动、错误被动、总线关闭。错误主动的单元可以正常地参与总线通信并在检测到错误时发出主动错误标志。错误被动的单元不允许发送主动错误标志。错误被动的单元参与总线通信,在错误被检测到时只发送被动错误标志。而且,发送以后,错误被动单元将在初始化下一个发送之前处于等待状态。总线关闭的单元不允许在总线上有任何的影响。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,15.2.6 位定时与同步,位定时与同步定义CAN总线的通信速率,相关名词有:标称位速率(Nomin

10、al Bit Rate):一理想的发送器在没有重新同步的情况下每秒发送的位数量。标称位时间(Nominal Bit Time):1/标称位速率。标称位时间可分成几个不重叠的片段,分别是:同步段(SYNC_SEG)、传播段(PROG_SEG)、相位缓冲段1(PHASE_SEG1)、相位缓冲段2(PHASE_SEG2)。同步段(SYNC_SEG):用于同步总线上不同的节点,这一段内要有一个跳变沿。传播段(PROG_SEG):用于补偿网络内的物理延时时间。它是总线上输入比较器延时和输出驱动器延时总和的2倍。相位缓冲段1(PHASE_SEG1)、相位缓冲段2(PHASE_SEG2):用于补偿边沿阶段的

11、误差。这两个段可以通过重新同步加长或缩短。,嵌入式应用技术基础教程课件,15.2 CAN技术规范,15.2.6 位定时与同步,采样点(Sample Point):读总线电平并解释各位的值的一个时间点。采样点位于相位缓冲段1之后。信息处理时间(Information Processing Time):信息处理时间是以一个采样点作为起始的时间段。采样点用于计算后续位的位电平。时间份额(Time Quanta):时间份额是派生于振荡器周期的固定时间单元。存在一个可编程的预比例因子,将整体数值范围为1-32的整数,以最小时间份额为起点,时间份额的长度为:时间份额=m*最小时间份额,其中,m为预比例因子

12、时间段长度(Length of Segments):同步段为1个时间份额,传播段的长度可设置成1、28个时间份额,相位缓冲段1的长度可设置成1、28个时间份额,相位缓冲段2的长度为相位缓冲段1和信息处理时间之间的最大值,信息处理时间少于或等于2个时间份额。一个位时间总的时间份额值可以设置在825的范围。,嵌入式应用技术基础教程课件,返回,15.3 MSCAN08模块及其外围接口硬件电路,15.3 MSCAN08模块及其外围接口硬件电路,15.3.1 MSCAN08模块,嵌入式应用技术基础教程课件,MSCAN08是Freescale可升级控制器局域网(Motorola scalable cont

13、roller area network,MSCAN)在Freescale 08系列微控制器中的具体实现。该模块具有以下特性:模块化的设计符合CAN2.0A/B协议标准,支持标准和扩展数据帧格式高达1Mbps的可编程通信速率一帧最多8字节数据支持远程请求帧4个先进先出结构的收发缓冲区,其中3个为具有局部优先级的发送缓冲区灵活的标识符验收模式,可配置成1个32位过滤码、2个16位过滤码和4个8位过滤码内置低通滤波的远程唤醒功能可编程为方便调试的自环工作模式,15.3 MSCAN08模块及其外围接口硬件电路,CAN系统,嵌入式应用技术基础教程课件,MSCAN08使用2个外部引脚,一个输入(CANRX

14、),一个输出(CANTX)。CANTX 输出引脚代表了CAN上的逻辑电平:0为显性,1为隐性。由MSCAN08模块构建的典型的CAN系统如下图。,15.3 MSCAN08模块及其外围接口硬件电路,15.3.2 总线驱动芯片PCA82C250和光电隔离芯片6N137,PCA82C250提供对总线的差动发送功能,对CAN控制器提供差动接收功能,速度最高达1Mbps,可用于一般的工业应用场合。该芯片的额定电源电压是5V,有8引脚DIP和 SO两种封装,右图给出了DIP封装的引脚图。其中引脚Rs的用法 见下表。,嵌入式应用技术基础教程课件,15.3 MSCAN08模块及其外围接口硬件电路,15.3.3

15、 MSCAN08通信接口硬件电路,MSCAN08构建CAN总线系统智能节点的硬件电路如下图见微处理器采用带有MSCAN08模块的MC68HC908GZ60,CAN总线驱动器采用PCA82C250。GZ60负责MSCAN08的初始化,并通过读取MSCAN08模块的报文缓冲区收发数据。GZ60的CANTx和CANRx与PCA82C250通过高速光耦6N137后再与PCA82C250相连。,嵌入式应用技术基础教程课件,15.3 MSCAN08模块及其外围接口硬件电路,15.3.4 MSCAN08编程原理,CAN的基本原理是:接收数据时,MSCAN08把外部的单线输入的数据变成并行数据送入MCU内部;

16、发送数据时,MSCAN08则把需要发送的并行数据转换为单线输出。为实现正确的CAN总线通信,需要设置通信速率、节点标识符、滤波方式等参数。当CAN总线上有报文在传输时,总线上除发送结点以外的所有节点都将成为接收节点;接收节点将报文暂时存放在本地MSCAN08的后台(Background)接收缓冲区RxBG中并进行滤波比较,即将该报文的标识符与本地节点标识符进行比较;若该报文通过本地滤波,MSCAN08则将此报文复制到前台(Foreground)接收缓冲区RxFG中,并置接收标志位通知MCU去读取RxFG中的数据。MCU只能访问RxFG而不能访问RxBG。,嵌入式应用技术基础教程课件,返回,15

17、.4 MSCAN08模块的编程结构,15.4 MSCAN08模块的编程结构,15.4.1 报文存储(1)报文缓冲结构(Message Buffer Outline)MC68HC908GZ60单片机的MSCAN08有1个发送报文缓冲区和3个接收报文缓冲区。每个报文缓冲区均分配16字节存储空间,其中,报文数据结构占13字节。对于发送缓冲区,任何时候都可读可写,而对于接收缓冲区,则只能读不能写。报文缓冲区的组织如右图。,嵌入式应用技术基础教程课件,15.4 MSCAN08模块的编程结构,(2)标识寄存器(Identifier Registers,IR),嵌入式应用技术基础教程课件,标识符寄存器或由1

18、1位(ID10-ID0)组成标准帧,或由29位(ID28-ID0)组成扩展帧。在总线仲裁过程中,最高位(ID10/ID28)是最先发送的,值越小优先级越高。标准帧标识符各字节含义见下图。SRR Substitute Remote Request:替代远程请求。在扩展帧中,该位为隐性位;在标准帧中,该位为RTR。IDE ID Extended:ID扩展。=1,扩展帧格式,29位标识符;=0,标准帧格式,11位标识符。RTR Remote Transmission Request:远程发送请求。=1,远程帧,=0,数据帧。,15.4 MSCAN08模块的编程结构,(3)数据长度寄存器(Data L

19、ength Register,DLR),数据长度寄存器存放的是CAN帧的数据长度,长度范围为0-8。在远程帧中,不管DLR是否被写入,数据长度个数总是为0。DLR中各位含义见下表。,嵌入式应用技术基础教程课件,15.4 MSCAN08模块的编程结构,(4)数据段寄存器n(Data Segment Registers n,DSRn),8个数据段寄存器中存放发送或接收的数据,数据个数由DLC指定。(5)发送缓冲区优先级寄存器(Transmit Buffer Priority Registers,TBPR)该寄存器指定了相应报文缓冲区的本地优先级,该优先级被用于MSCAN08的内部优先级处理,值越小

20、优先级越高。地址:$05xD,x=5、6、7。,嵌入式应用技术基础教程课件,15.4 MSCAN08模块的编程结构,15.4.2 控制寄存器,(1)MSCAN08模式控制寄存器0(Module Control Register 0,CMCR0)(2)MSCAN08模式控制寄存器1(Module Control Register 1,CMCR1)(3)MSCAN08总线定时寄存器0(Bus Timing Register 0,CBTR0)(4)MSCAN08总线定时寄存器1(Bus Timing Register 1,CBTR1)(5)MSCAN08接收标志寄存器(Receiver Flag R

21、egister,CRFLR)(6)MSCAN08接收中断使能寄存器(Receiver Interrupt Enable Register,CRIER)(7)MSCAN08发送标志寄存器(Transmitter Flag Register,CTFLR)(8)MSCAN08发送控制存器(Transmitter Control Register,CTCR)(9)MSCAN08标识符验收控制寄存器(Identifier Acceptance Control Register,CIDACR),嵌入式应用技术基础教程课件,15.4 MSCAN08模块的编程结构,15.4.2 控制寄存器,(10)MSCAN

22、08接收错误计数器(Receiver Error Counter,CRXERR)(11)MSCAN08发送错误计数器(Transmit Error Counter,CTER)(12)MSCAN08标识符验收寄存器(Identifier Acceptance Register,CIDAR)(13)MSCAN08标识符屏蔽寄存器(Identifier Mask Register,CIDMR0-3),嵌入式应用技术基础教程课件,15.4 MSCAN08模块的编程结构,15.4.3 CAN接口初始化与CAN报文收发编程的基本方法,定义报文验收模式和验收屏蔽位 LDA#$00 STA CIDAC LDA

23、#$00 STA CIDMR0 LDA#$1F STA CIDMR1 定义中断方式 LDA#$00 STA CRIER LDA#$00 STA CTCR 进入正常工作模式 LDA#$00 STA CMCR0,嵌入式应用技术基础教程课件,(1)MSCAN08初始化 启用MSCAN08模块 LDA#%00001000 STA CONFIG2 进入软复位状态 LDA#%00000001 STA CMCR0 设置节点标识符为10,采用按标准帧格式 LDA#%00000001 STA CIDAR0 LDA#%01000000 STA CIDAR1,15.4 MSCAN08模块的编程结构,(2)发送一帧数

24、据,LDA CTFLG AND#%00000111 STA FLAG CMP#$0 BEQ CTFLGN BRCLR 0,FLAG,CTFLG1;1号缓冲区空 CTFLG1:BRCLR 1,FLAG,CTFLG2;2号缓冲区空 CTFLG2:;3号缓冲区空 CTFLGN:;没有空闲的发送缓冲区,嵌入式应用技术基础教程课件,GZ60的MSCAN08模块有三个发送缓冲区,当MCU需要往CAN总线上发送数据时,先查询是否有空闲的发送缓冲区;若有,则可将协议报文存入空闲缓冲区,并通知MSCAN08将报文发送出去。,15.4 MSCAN08模块的编程结构,(3)接收一帧数据,若以查询方式接收数据,首先查

25、询接收状态寄存器CRFLG的接收缓冲区满标志RXF(第5位),以判断MSCAN08是否收到正确的报文。若该标志位为1,则表示收到CAN协议报文,MCU可以从MSCAN08的接收缓冲区($0540-$055C)中读取数据。;查询方式接收CAN总线上的数据;若接收到数据,MCU可从接收缓冲区$0540-$055C读数据;LDA CRFLG STA FLAG BRCLR RXF,FLAG,*;从MSCAN08接收缓冲区读取一帧数据,嵌入式应用技术基础教程课件,返回,15.5 MSCAN08编程实例,15.5 MSCAN08编程实例,(1)GZ60的最小系统 GZ60最小系统的硬件连接图如下。,嵌入式应用技术基础教程课件,15.5 MSCAN08编程实例,(2)CAN结点的软件,初始化子程序 发送1个CAN数据报文子程序 接收一个CAN报文子程序,嵌入式应用技术基础教程课件,返回,本章首先介绍了现场总线的使用情况,然后详细讲述了CAN的技术规范以及嵌入式应用中CAN的使用方法,最后给出Freescale中带有CAN模块的MC68HC908GZ系列MCU的CAN编程方法,并给出了编程实例。,本章小结,嵌入式应用技术基础教程课件,返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号