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

上传人:仙*** 文档编号:67044868 上传时间:2022-03-30 格式:PPT 页数:30 大小:272.50KB
收藏 版权申诉 举报 下载
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件_第1页
第1页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件_第2页
第2页 / 共30页
飞思卡尔8位单片机MC9S86CAN通信接口ppt课件_第3页
第3页 / 共30页
资源描述:

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

1、第十五章第十五章 CAN通信接口通信接口主要内容v 现场总线概述v CAN技术规范v MSCAN08模块及其外围接口硬件电路v MSCAN08模块的编程结构v MSCAN08编程实例15.1 现场总线概述15.1 现场总线概述现场总线概述 现场总线现场总线是一种应用于生产现场,在现场设备之间、现场设备是一种应用于生产现场,在现场设备之间、现场设备与控制装置之间实行双向、串行、多节点数字通信的技术。它是一项与控制装置之间实行双向、串行、多节点数字通信的技术。它是一项以智能传感、控制、计算机、数据通信为主要内容的综合技术,是当以智能传感、控制、计算机、数据通信为主要内容的综合技术,是当今自动化领域

2、发展的热点之一,被誉为自动化领域的局域网。今自动化领域发展的热点之一,被誉为自动化领域的局域网。 目前国际上存在几十种现场总线标准,比较流行的主要有目前国际上存在几十种现场总线标准,比较流行的主要有FF(基基金会现场总线金会现场总线)、CAN(控制器局域网控制器局域网)、LonWorks、Profibus等。等。返回返回15.2 CAN技术规范15.2 CAN技术规范技术规范15.2.1 CAN的基本概念的基本概念(1)报文)报文(Messages) 总线上传输的信息即为报文,它们以若干个不同的固定格式发送,但长总线上传输的信息即为报文,它们以若干个不同的固定格式发送,但长度受限。当总线空闲时

3、,总线上任何单元均可发送新报文。度受限。当总线空闲时,总线上任何单元均可发送新报文。(2)信息路由)信息路由(Information Routing) 在在CAN系统中,系统中,CAN不对单元分配站地址,报文的寻址内容由报文的标不对单元分配站地址,报文的寻址内容由报文的标识符指定。标识符不指出报文的目的地,但是这个数据的特定含义使得总线识符指定。标识符不指出报文的目的地,但是这个数据的特定含义使得总线上所有单元可以通过报文滤波来判断该数据是否与它们相符合。上所有单元可以通过报文滤波来判断该数据是否与它们相符合。(3)位速率)位速率(Bit Rate) 即总线的传输速率。在一个给定的即总线的传输

4、速率。在一个给定的CAN系统中,位速率是唯一的,也是系统中,位速率是唯一的,也是固定的。固定的。(4)优先权)优先权(Priorities) 在总线访问期间,标识符定义一个静态的报文优先权。在总线访问期间,标识符定义一个静态的报文优先权。 15.2 CAN技术规范(5)远程数据请求)远程数据请求(Remote Data Request) 当总线上某单元需要请求另一单元发送数据时,可通过发送远程当总线上某单元需要请求另一单元发送数据时,可通过发送远程帧实现远程数据请求。帧实现远程数据请求。(6)多主机)多主机(Multimaster) 总线空闲时,总线上任何单元都可以开始向总线上传送报文,但总线

5、空闲时,总线上任何单元都可以开始向总线上传送报文,但只有最高优先权报文的单元可获得总线访问权。只有最高优先权报文的单元可获得总线访问权。(7)仲裁)仲裁(Arbitration) 总线空闲时,若同时有两个或两个以上单元开始发送报文,总线总线空闲时,若同时有两个或两个以上单元开始发送报文,总线访问冲突运用逐位仲裁规则,借助标识符访问冲突运用逐位仲裁规则,借助标识符ID解决。解决。(8)错误标定和恢复时间)错误标定和恢复时间(Error Signaling and Recovery Time) 任何检测到错误的单元会标志出已被损坏的报文。此报文会失效任何检测到错误的单元会标志出已被损坏的报文。此报

6、文会失效并将自动重传。如果不再出现错误,则从检测到错误到下一报文的传并将自动重传。如果不再出现错误,则从检测到错误到下一报文的传送开始为止,恢复时间最多为送开始为止,恢复时间最多为31位的时间。位的时间。15.2 CAN技术规范(9)故障界定)故障界定(Fault Confinement) CAN单元能够把永久故障和短暂的干扰区别开来。单元能够把永久故障和短暂的干扰区别开来。(10)连接)连接(Connection) CAN通信链路是一条可连接多单元的总线。理论上,总线上单元数通信链路是一条可连接多单元的总线。理论上,总线上单元数目是无限制的,实际上,单元数受限于延迟时间和总线的电气负载能力。

7、目是无限制的,实际上,单元数受限于延迟时间和总线的电气负载能力。(11)单通道)单通道(Single Channel) CAN总线由单一通道组成,借助数据重同步实现信息传输。总线由单一通道组成,借助数据重同步实现信息传输。(12)总线数据表示总线数据表示(Bus Values) CAN总线上有两种互补逻辑数值:显性总线上有两种互补逻辑数值:显性(Dominant)电平和隐性电平和隐性(Recessive)电平。若显性位与隐性位同时发送,总线上数值将是显性。电平。若显性位与隐性位同时发送,总线上数值将是显性。(13)应答)应答(Acknowledgment) 所有接收器对接收到的报文进行一致性检

8、查。对于一致的报文,接所有接收器对接收到的报文进行一致性检查。对于一致的报文,接收器给予应答;对于不一致的报文,接收器做出标志。收器给予应答;对于不一致的报文,接收器做出标志。 15.2 CAN技术规范15.2.2 CAN总线的位数值表示与通信距离总线的位数值表示与通信距离 CAN总线上用显性总线上用显性(Dominant)和隐性和隐性(Recessive)两个互补的逻两个互补的逻辑值表示辑值表示0和和1。当在总线上出现同。当在总线上出现同时发送显性位和隐性位时,总线上时发送显性位和隐性位时,总线上数值将出现显性。如左图。数值将出现显性。如左图。 V时间时间t隐性位隐性位显性位显性位隐性位隐性

9、位VdiffVdiffVCAN-HVCAN-L总线位的数值表示总线位的数值表示VdiffCAN总线上任意两单元最大距离及位速率对应表总线上任意两单元最大距离及位速率对应表位速率位速率/kbps10005002501251005020105最大距离最大距离/m401302705306201300330067001000015.2 CAN技术规范15.2.3 报文传输和帧结构报文传输和帧结构报文传输由以下报文传输由以下4个不同的帧类型表示和控制:个不同的帧类型表示和控制:数据帧数据帧:数据帧将数据从发送器传输到接收器。:数据帧将数据从发送器传输到接收器。远程帧远程帧:总线单元发出远程帧,请求发送具

10、有同一标识符的数:总线单元发出远程帧,请求发送具有同一标识符的数据帧。据帧。错误帧错误帧:任何单元检测到总线错误就发出错误帧。:任何单元检测到总线错误就发出错误帧。过载帧过载帧:过载帧用于在先行和后续数据帧(或远程帧)之间提:过载帧用于在先行和后续数据帧(或远程帧)之间提供一附加的延时。供一附加的延时。数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。个帧间空间与前面的帧分隔。15.2 CAN技术规范(1)数据帧)数据帧 数据帧由数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据个不同的位场组成:帧起始、

11、仲裁场、控制场、数据场、场、CRC 场、应答场、帧结尾。数据帧组成如下图。场、应答场、帧结尾。数据帧组成如下图。 帧间空间帧间空间仲裁场仲裁场控制场控制场数据场数据场CRC场帧结束帧结束数据帧数据帧帧起始帧起始应答场应答场帧间空间帧间空间或过载帧或过载帧(2)远程帧)远程帧 远程帧也有标准格式和扩展格式,而且都由远程帧也有标准格式和扩展格式,而且都由6 个不同的位场组成:个不同的位场组成:帧起始、仲裁场、控制场、帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾。远程帧的组场、应答场、帧结尾。远程帧的组成如下图。成如下图。 帧间空间帧间空间仲裁场仲裁场控制场控制场CRC场场帧结束帧结束远程帧远

12、程帧帧起始帧起始应答场应答场帧间空间帧间空间或过载帧或过载帧15.2 CAN技术规范(3)出错帧)出错帧 错误帧由两个不同的场组成。第一个场是由不同站提供的错误标错误帧由两个不同的场组成。第一个场是由不同站提供的错误标志(志(ERROR FLAG)的叠加;第二个场是错误界定符。出错帧的组成)的叠加;第二个场是错误界定符。出错帧的组成如下图。如下图。 (4)过载帧)过载帧 过载帧包括两个位场:过载标志和过载界定符。过载帧的组成如过载帧包括两个位场:过载标志和过载界定符。过载帧的组成如下图。下图。数据帧数据帧错误标志错误标志错误标志的重叠错误标志的重叠错误界定符错误界定符 错误帧错误帧帧间空间帧间

13、空间或过载帧或过载帧数据帧数据帧过载标志过载标志过载标志的重叠过载标志的重叠过载界定符过载界定符 过载帧过载帧帧间空间帧间空间或过载帧或过载帧图15-7过载帧组成15.2 CAN技术规范15.2.4 错误处理错误处理1)错误检测(错误检测( 5种不同的错误类型)种不同的错误类型)位错误位错误:单元在发送位的同时也对总线进行监视。如果所发送:单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相同,则在位时间里检测到一个位错误。的位值与所监视的位值不相同,则在位时间里检测到一个位错误。填充错误填充错误:如果在使用位填充法进行编码的信息中,出现了:如果在使用位填充法进行编码的信息中

14、,出现了6个个连续相同的电平时,将检测到一个填充错误。连续相同的电平时,将检测到一个填充错误。CRC错误错误:CRC序列包括发送器的序列包括发送器的CRC计算结果。如果计算结计算结果。如果计算结果与接收到的果与接收到的CRC序列的结果不相符,则检测到一个序列的结果不相符,则检测到一个CRC错误。错误。形式错误形式错误:当一个固定的位场含有:当一个固定的位场含有1个或多个非法位,则检测到个或多个非法位,则检测到一个形式错误。一个形式错误。应答错误应答错误:只要在应答间隙期间所监视的位不为显性,则发送:只要在应答间隙期间所监视的位不为显性,则发送器会检测到一个应答错误。器会检测到一个应答错误。2)

15、错误标定错误标定检测到错误条件的站通过发送错误标志指示错误。对于检测到错误条件的站通过发送错误标志指示错误。对于“错误错误主动主动”的节点,错误信息为的节点,错误信息为“主动错误标志主动错误标志”,对于,对于“错误被动错误被动”的的节点,错误信息为节点,错误信息为“被动错误标志被动错误标志”。15.2 CAN技术规范15.2.5 故障界定故障界定至于故障界定,单元的状态可能为下列三种之一:错误主动、至于故障界定,单元的状态可能为下列三种之一:错误主动、错误被动、总线关闭。错误被动、总线关闭。错误主动错误主动的单元可以正常地参与总线通信并在检测到错误时发的单元可以正常地参与总线通信并在检测到错误

16、时发出主动错误标志。出主动错误标志。错误被动错误被动的单元不允许发送主动错误标志。错误被动的单元参的单元不允许发送主动错误标志。错误被动的单元参与总线通信,在错误被检测到时只发送被动错误标志。而且,发送以与总线通信,在错误被检测到时只发送被动错误标志。而且,发送以后,错误被动单元将在初始化下一个发送之前处于等待状态。后,错误被动单元将在初始化下一个发送之前处于等待状态。总线关闭总线关闭的单元不允许在总线上有任何的影响。的单元不允许在总线上有任何的影响。15.2 CAN技术规范15.2.6 位定时与同步位定时与同步位定时与同步定义位定时与同步定义CAN总线的通信速率,相关名词有:总线的通信速率,

17、相关名词有:标称位速率标称位速率(Nominal Bit Rate):一理想的发送器在没有重新同步:一理想的发送器在没有重新同步的情况下每秒发送的位数量。的情况下每秒发送的位数量。标称位时间标称位时间(Nominal Bit Time):1/标称位速率。标称位时间可分标称位速率。标称位时间可分成几个不重叠的片段,分别是:同步段成几个不重叠的片段,分别是:同步段(SYNC_SEG)、传播段)、传播段(PROG_SEG)、相位缓冲段、相位缓冲段1(PHASE_SEG1)、相位缓冲段、相位缓冲段2(PHASE_SEG2)。同步段同步段(SYNC_SEG):用于同步总线上不同的节点,这一段内要有:用于

18、同步总线上不同的节点,这一段内要有一个跳变沿。一个跳变沿。传播段传播段(PROG_SEG):用于补偿网络内的物理延时时间。它是总线:用于补偿网络内的物理延时时间。它是总线上输入比较器延时和输出驱动器延时总和的上输入比较器延时和输出驱动器延时总和的2倍。倍。相位缓冲段相位缓冲段1(PHASE_SEG1)、相位缓冲段、相位缓冲段2(PHASE_SEG2):用:用于补偿边沿阶段的误差。这两个段可以通过重新同步加长或缩短。于补偿边沿阶段的误差。这两个段可以通过重新同步加长或缩短。15.2 CAN技术规范15.2.6 位定时与同步位定时与同步采样点采样点(Sample Point):读总线电平并解释各位

19、的值的一个时间点。:读总线电平并解释各位的值的一个时间点。采样点位于相位缓冲段采样点位于相位缓冲段1之后。之后。信息处理时间信息处理时间(Information Processing Time):信息处理时间是:信息处理时间是以一个采样点作为起始的时间段。采样点用于计算后续位的位电平。以一个采样点作为起始的时间段。采样点用于计算后续位的位电平。时间份额时间份额(Time Quanta):时间份额是派生于振荡器周期的固定时:时间份额是派生于振荡器周期的固定时间单元。存在一个可编程的预比例因子,将整体数值范围为间单元。存在一个可编程的预比例因子,将整体数值范围为1-32的整数,的整数,以最小时间份

20、额为起点,时间份额的长度为:以最小时间份额为起点,时间份额的长度为:时间份额时间份额=m * 最小时间份额,其中,最小时间份额,其中,m为预比例因子为预比例因子时间段长度时间段长度(Length of Segments):同步段为:同步段为1个时间份额,传播个时间份额,传播段的长度可设置成段的长度可设置成1、28个时间份额,相位缓冲段个时间份额,相位缓冲段1的长度可设置成的长度可设置成1、28个时间份额,相位缓冲段个时间份额,相位缓冲段2的长度为相位缓冲段的长度为相位缓冲段1和信息处理时间和信息处理时间之间的最大值,信息处理时间少于或等于之间的最大值,信息处理时间少于或等于2个时间份额。个时间

21、份额。一个位时间总的时间份额值可以设置在一个位时间总的时间份额值可以设置在825的范围。的范围。 返回返回15.3 MSCAN08模块及其外围接口硬件电路15.3 MSCAN08模块及其外围接口硬件电路模块及其外围接口硬件电路15.3.1 MSCAN08模块模块MSCAN08是是Freescale可升级控制器局域网(可升级控制器局域网(Motorola scalable controller area network,MSCAN)在)在Freescale 08系列微控制器中系列微控制器中的具体实现。该模块具有以下特性:的具体实现。该模块具有以下特性:模块化的设计模块化的设计符合符合CAN2.0

22、A/B协议标准,支持标准和扩展数据帧格式协议标准,支持标准和扩展数据帧格式高达高达1Mbps的可编程通信速率的可编程通信速率一帧最多一帧最多8字节数据字节数据支持远程请求帧支持远程请求帧4个先进先出结构的收发缓冲区,其中个先进先出结构的收发缓冲区,其中3个为具有局部优先级的发送缓冲区个为具有局部优先级的发送缓冲区灵活的标识符验收模式,可配置成灵活的标识符验收模式,可配置成1个个32位过滤码、位过滤码、2个个16位过滤码和位过滤码和4个个8位过位过滤码滤码内置低通滤波的远程唤醒功能内置低通滤波的远程唤醒功能可编程为方便调试的自环工作模式可编程为方便调试的自环工作模式15.3 MSCAN08模块及

23、其外围接口硬件电路CAN系统系统 MSCAN08使用使用2个外部引脚,一个输入(个外部引脚,一个输入(CANRX),一个输出),一个输出(CANTX)。)。CANTX 输出引脚代表了输出引脚代表了CAN上的逻辑电平:上的逻辑电平:0为显性,为显性,1为隐性。由为隐性。由MSCAN08模块构建的典型的模块构建的典型的CAN系统如下图。系统如下图。 120120MCUMCUCANCAN控制器控制器(MSCAN08MSCAN08)收发器收发器CANHCANH CANLCANLCANCANRXRXCANCAN节点节点CANCAN节点节点CANCAN节点节点120120CANHCANH CANLCANL

24、 CANHCANH CANLCANLCANCANTXTX15.3 MSCAN08模块及其外围接口硬件电路15.3.2 总线驱动芯片总线驱动芯片PCA82C250和光电隔离芯片和光电隔离芯片6N137PCA82C250提供对总线的差动发送功提供对总线的差动发送功能,对能,对CAN控制器提供差动接收功能,速控制器提供差动接收功能,速度最高达度最高达1Mbps,可用于一般的工业应用,可用于一般的工业应用场合。该芯片的额定电源电压是场合。该芯片的额定电源电压是5V,有,有8引引脚脚DIP和和 SO两种封装,右图给出了两种封装,右图给出了DIP封封装的引脚图。其中引脚装的引脚图。其中引脚Rs的用法的用法

25、 见下表。见下表。TXD - 1GND - 2 Vcc - 3RXD - 48 - Rs7 - CANH6 -CANL5 - Vref PCA82C250引脚图引脚图工作模式Rs接法说明高速模式高速模式接低电平接低电平支持最大总线长度支持最大总线长度/速率。速率。斜率模式斜率模式过过16.5k-140k的电阻接地的电阻接地当使用非屏蔽的总线电缆时可考虑使用这种模式。当使用非屏蔽的总线电缆时可考虑使用这种模式。该模式的输出转换速度可以被降低以减少电磁辐射。该模式的输出转换速度可以被降低以减少电磁辐射。待机模式待机模式接高电平接高电平慢速模式,适用于电池供电场合。慢速模式,适用于电池供电场合。15

26、.3 MSCAN08模块及其外围接口硬件电路15.3.3 MSCAN08通信接口硬件电路通信接口硬件电路MSCAN08构建构建CAN总线系统智能节点的硬件电路如下图见微处总线系统智能节点的硬件电路如下图见微处理器采用带有理器采用带有MSCAN08模块的模块的MC68HC908GZ60,CAN总线驱动器总线驱动器采用采用PCA82C250。GZ60负责负责MSCAN08的初始化,并通过读取的初始化,并通过读取MSCAN08模块的报文缓冲区收发数据。模块的报文缓冲区收发数据。GZ60的的CANTx和和CANRx与与PCA82C250通过高速光耦通过高速光耦6N137后再与后再与PCA82C250相

27、连。相连。6N1376N137MC68HC908GZ60MC68HC908GZ60CANTxCANTxCANRxCANRxVccVccIN IN EN EN Vdd OUT Vdd OUT GNDGND3 32 28 86 65 57 7GNDGNDOUT Vdd OUT Vdd EN INEN INVccVcc6N1376N1375 56 67 78 83 32 23903903903900.1uF0.1uF390390390390TXD CANH TXD CANH RXD CANL RXD CANL V r e f R s V r e f R s Vcc GNDVcc GNDPCA82C2

28、50PCA82C2501 12 24 45 56 63 37 78 847K47KCANCAN总线总线0.1uF0.1uF0.1uF0.1uFGND1GND1VCC1VCC1GND1GND1VCC1VCC1GND1GND1VCC2VCC2GND2GND2GND2GND2VCC2VCC2VCC1VCC1555515.3 MSCAN08模块及其外围接口硬件电路15.3.4 MSCAN08编程原理编程原理CAN的基本原理是:接收数据时,的基本原理是:接收数据时,MSCAN08把外部的单线输入把外部的单线输入的数据变成并行数据送入的数据变成并行数据送入MCU内部;发送数据时,内部;发送数据时,MSCA

29、N08则把需则把需要发送的并行数据转换为单线输出。为实现正确的要发送的并行数据转换为单线输出。为实现正确的CAN总线通信,需总线通信,需要设置通信速率、节点标识符、要设置通信速率、节点标识符、 滤波方式等参数。滤波方式等参数。当当CAN总线上有报文在传输时,总线上除发送结点以外的所有节总线上有报文在传输时,总线上除发送结点以外的所有节点都将成为接收节点;接收节点将报文暂时存放在本地点都将成为接收节点;接收节点将报文暂时存放在本地MSCAN08的的后台后台(Background)接收缓冲区接收缓冲区RxBG中并进行滤波比较,即将该报文中并进行滤波比较,即将该报文的标识符与本地节点标识符进行比较;

30、若该报文通过本地滤波,的标识符与本地节点标识符进行比较;若该报文通过本地滤波,MSCAN08则将此报文复制到前台则将此报文复制到前台(Foreground)接收缓冲区接收缓冲区RxFG中,中,并置接收标志位通知并置接收标志位通知MCU去读取去读取RxFG中的数据。中的数据。MCU只能访问只能访问RxFG而不能访问而不能访问RxBG。 返回返回15.4 MSCAN08模块的编程结构15.4 MSCAN08模块的编程结构模块的编程结构15.4.1 报文存储报文存储(1)报文缓冲结构)报文缓冲结构(Message Buffer Outline) MC68HC908GZ60单片机的单片机的MSCAN0

31、8有有1个发送报文缓冲区和个发送报文缓冲区和3个接收报文缓冲区。每个报文缓冲区个接收报文缓冲区。每个报文缓冲区均分配均分配16字节存储空间,其中,报文字节存储空间,其中,报文数据结构占数据结构占13字节。对于发送缓冲区,字节。对于发送缓冲区,任何时候都可读可写,而对于接收缓任何时候都可读可写,而对于接收缓冲区,则只能读不能写。报文缓冲区冲区,则只能读不能写。报文缓冲区的组织如右图。的组织如右图。地址(1)$05x0$05x0$05x1$05x1$05x2$05x2$05x3$05x3$05x4$05x4$05x5$05x5$05x6$05x6$05x7$05x7$05x8$05x8$05x9$

32、05x9$05xA$05xA$05xB$05xB$05xC$05xC$05xD$05xD$05xE$05xE$05xF$05xF寄存器名寄存器名标识符寄存器标识符寄存器0(IDR0)0(IDR0)标识符寄存器标识符寄存器1(IDR1)1(IDR1)标识符寄存器标识符寄存器2(IDR2)2(IDR2)标识符寄存器标识符寄存器3(IDR3)3(IDR3)数据段寄存器数据段寄存器0(DSR0)0(DSR0)数据段寄存器数据段寄存器1(DSR11(DSR1数据段寄存器数据段寄存器2(DSR2)2(DSR2)数据段寄存器数据段寄存器3(DSR3)3(DSR3)数据段寄存器数据段寄存器4(DSR4)4(D

33、SR4)数据段寄存器数据段寄存器5(DSR5)5(DSR5)数据段寄存器数据段寄存器6(DSR6)6(DSR6)数据段寄存器数据段寄存器7(DSR7)7(DSR7)数据长度寄存器数据长度寄存器(DLR)(DLR)发送缓冲区优先级寄存器发送缓冲区优先级寄存器未用未用未用未用15.4 MSCAN08模块的编程结构(2)标识寄存器)标识寄存器(Identifier Registers,IR)标识符寄存器或由标识符寄存器或由11位位(ID10-ID0)组成标准帧,或由组成标准帧,或由29位位(ID28-ID0)组成扩展帧。在总线仲裁过程中,最高位组成扩展帧。在总线仲裁过程中,最高位(ID10/ID28

34、)是最先发送是最先发送的,值越小优先级越高。标准帧标识符各字节含义见下图。的,值越小优先级越高。标准帧标识符各字节含义见下图。SRR Substitute Remote Request:替代远程请求。在扩展帧:替代远程请求。在扩展帧中,该位为隐性位;在标准帧中,该位为中,该位为隐性位;在标准帧中,该位为RTR。IDE ID Extended:ID扩展。扩展。=1,扩展帧格式,扩展帧格式,29位标识符;位标识符;=0,标准帧格式,标准帧格式,11位标识符。位标识符。RTR Remote Transmission Request:远程发送请求。:远程发送请求。=1,远程帧,远程帧,=0,数据帧。,

35、数据帧。Bit7 6 5 4 3 2 1 Bit0Bit7 6 5 4 3 2 1 Bit0地址地址$05x0$05x0$05x1$05x1$05x2$05x2$05x3$05x3寄存器名寄存器名标识符寄存器标识符寄存器0(IDR0)0(IDR0)标识符寄存器标识符寄存器1(IDR1)1(IDR1)标识符寄存器标识符寄存器2(IDR2)2(IDR2)标识符寄存器标识符寄存器3(IDR3)3(IDR3)ID2 ID2 ID1 ID1 I ID0 D0 RTR RTR IDE=0 IDE=0 - - - - - - - - - - - - - - - - - - - - - - - - - - -

36、 - - - - -ID10ID10 ID9 ID9 ID8 ID8 ID7 ID7 ID6 ID5 ID6 ID5 ID4 ID4 ID3ID315.4 MSCAN08模块的编程结构(3)数据长度寄存器)数据长度寄存器(Data Length Register,DLR) 数据长度寄存器存放的是数据长度寄存器存放的是CAN帧的数据长度,长度范围为帧的数据长度,长度范围为0-8。在远程帧中,不管在远程帧中,不管DLR是否被写入,数据长度个数总是为是否被写入,数据长度个数总是为0。DLR中中各位含义见下表。各位含义见下表。数据长度代码数据长度代码数据字节个数数据字节个数DLC3DLC2DLC1DL

37、C000000000110010200113010040011501006011171000815.4 MSCAN08模块的编程结构(4)数据段寄存器)数据段寄存器n(Data Segment Registers n,DSRn) 8个数据段寄存器中存放发送或接收的数据,数据个数由个数据段寄存器中存放发送或接收的数据,数据个数由DLC指定。指定。(5)发送缓冲区优先级寄存器)发送缓冲区优先级寄存器(Transmit Buffer Priority Registers,TBPR) 该寄存器指定了相应报文缓冲区的本地优先级,该优先级被用于该寄存器指定了相应报文缓冲区的本地优先级,该优先级被用于MSC

38、AN08的内部优先级处理,值越小优先级越高。地址:的内部优先级处理,值越小优先级越高。地址:$05xD,x=5、6、7。数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0读读PRIO7 PRIO6 PRIO5 PRIO4 PRIO3 PRIO2 PRIO1 PRIO0PRIO7 PRIO6 PRIO5 PRIO4 PRIO3 PRIO2 PRIO1 PRIO0写写复位复位复位不影响复位不影响15.4 MSCAN08模块的编程结构15.4.2 控制寄存器控制寄存器(1)MSCAN08模式控制寄存器模式控制寄存器0 (Module Cont

39、rol 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 Register,CRFLR)(6)MSCAN08接收中断使能寄存器接收中断使能寄存器(Receiver Interrupt Enable

40、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)MSCAN08接收错误计数器接收错误计数器(Receiver Error Counter,CRXERR)(1

41、1)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 #$

42、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 ST

43、A CIDAR115.4 MSCAN08模块的编程结构(2)发送一帧数据)发送一帧数据 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总线上发送数据时,先查总线上发送数据时,先查询是否有空闲的

44、发送缓冲区;询是否有空闲的发送缓冲区;若有,则可将协议报文存入空若有,则可将协议报文存入空闲缓冲区,并通知闲缓冲区,并通知MSCAN08将将报文发送出去。报文发送出去。15.4 MSCAN08模块的编程结构(3)接收一帧数据)接收一帧数据 若以查询方式接收数据,首先查询接收状态寄存器若以查询方式接收数据,首先查询接收状态寄存器CRFLG的接收的接收缓冲区满标志缓冲区满标志RXF(第第5位位),以判断,以判断MSCAN08是否收到正确的报文。是否收到正确的报文。若该标志位为若该标志位为1,则表示收到,则表示收到CAN协议报文,协议报文,MCU可以从可以从MSCAN08的接收缓冲区的接收缓冲区($

45、0540-$055C)中读取数据。中读取数据。 ;查询方式接收查询方式接收CAN总线上的数据总线上的数据 ;若接收到数据,若接收到数据,MCU可从接收缓冲区可从接收缓冲区$0540-$055C读数据;读数据; LDA CRFLG STA FLAG BRCLR RXF,FLAG,* ;从从MSCAN08接收缓冲区读取一帧数据接收缓冲区读取一帧数据 返回返回15.5 MSCAN08编程实例15.5 MSCAN08编程实例编程实例(1)GZ60的最小系统的最小系统 GZ60最小系统的硬件连接图如下。最小系统的硬件连接图如下。MAX232CPE16 15 14 13 12 11 10 91 2 3 4

46、 5 6 7 8GND +5V+5VMC68HC908GZ60电源电源晶振电路晶振电路RXDTXDRESET+5V10K510.1uGND10M4MOSC1OSC2+VSS0.1u+5VVDD15p22pGNDGND10uGNDDB9复位电路复位电路SCI电路电路15.5 MSCAN08编程实例(2)CAN结点的软件结点的软件 初始化子程序初始化子程序 发送发送1个个CAN数据报文子程序数据报文子程序 接收一个接收一个CAN报文子程序报文子程序返回返回本章首先介绍了现场总线的使用情况,然后详细讲述了本章首先介绍了现场总线的使用情况,然后详细讲述了CAN的的技术规范以及嵌入式应用中技术规范以及嵌入式应用中CAN的使用方法,最后给出的使用方法,最后给出Freescale中中带有带有CAN模块的模块的MC68HC908GZ系列系列MCU的的CAN编程方法,并给出编程方法,并给出了编程实例。了编程实例。本章小结本章小结返回返回

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!