飞思卡尔8位单片机MC9S08第15章 CAN通信接口

合集下载

1飞思卡尔8位单片机MC9S08JM60开发板实践教程-60页word资料

1飞思卡尔8位单片机MC9S08JM60开发板实践教程-60页word资料

第一章搭建实验环境1、实验电路板及下载器实物图片2、实验电路图本实验图包含两大部分,分别是CPU.SCH和实验资源.SCH。

CPU采用飞思卡尔8位单片机MC9S08JM60CLD,(电路图介绍)图1-3实验资源部分电路图1-4LCD串口1602液晶电路图1-5RS232接口电路图1-6数码管显示电路图1-7发光管、ad转换以及按键电路图1-83、集成开发软件环境的建立1〉运行文件CW_MCU_V6_3_SE.EXE,在电脑C盘安装飞思卡尔8位(及简化32位)单片机集成开发环境codewarrior6.3版本2〉运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下a>C:\Program Files\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件USBDM_JMxxCLD_V4.sx是下载器的固件文件;b>C:\Program Files\pgo\USBDM4.7.0\USBDM_Drivers\Drivers下有下载器的usb驱动.因此在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动安装位置到以上目录即可。

3〉运行USBDM_4_7_0i_Win之后,还会在目录:C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior集成开发环境下对usb下载器的调试、下载的支持。

4、C语言编程基础第二章 LED闪烁程序编写过程1、新建工程运行单片机集成开发环境codewarrior IDE出现如下界面●Create New Project :创建一个新项目工程●Load Example Project :加载一个示例工程●Load Previous Project :加载以前创建过的工程●Run Getting started Tutorial:运行CodeWarrior软件帮助文档●Start Using CodeWarrior:立刻使用CodeWarrior点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口可以选择最后一个开源下载器HCS08 Open Source BDM。

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

7〉 管脚的复用
注意: 0、管脚功能复用时的优先 级见右表,高优先级接管管 脚时,对低优先级模块会产 生杂乱信号,因此切换前应 先停止不使用的功能。 1、PTA5作为只能输入管脚 而言,输入电压不能超过 VDD。 2、IIC使用的端口可以通过 设置SOPT2 寄存器中的 IICPS位重新定位到PTB6和 PTB7,复位时缺省使用 PTA2 and PTA3。 3、如果ACMP和ADC被同 时使能,管脚PTA0和PTA1 可同时使用。
管脚及其功能
6〉 管脚控制寄存器
位于高页面的管脚控制寄存器,可以独立设置每个管 脚的输出驱动强度、输出信号变化速度、输入脚的内部 上拉允许等。内部上拉的设置有些时候自动失效,比如 管脚设为输出、管脚被外设使用、管脚作为模拟电路使 用等。如果管脚被用于键盘中断KBI模块,,并设置上升 沿触发,则允许上拉时实际是配置了下拉电阻。 对输出管脚设置了输出变化速度控制后,可以减少 EMC辐射,变化速度控制对输入脚无效。 输出管脚的输出驱动强度控制,可以选择更大的驱 动电流,虽然每个输出管脚都可以设置成大电流驱动, 但总电流不能超出芯片的工作范围。同时大驱动电流对 EMC辐射也会有一定影响。
• EPROM
EPROM(Erasable Programmable ROM,可擦除可编 程ROM)芯片可重复擦除和写入,。EPROM芯片在其正 面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以 看到其内部的集成电路, 紫外线透过该孔照射内部芯片 就可以擦除其内的数据,完成芯片擦除的操作要用到 EPROM擦除器。EPROM内资料的写入要用专用的编程 器,并且往芯片中写 内容时必须要加一定的编程电压( VPP=12—24V,随不同的芯片型号而定)。EPROM的型 号是以27开头的,如27C020(8*256K)是一片 2M Bits容 量的EPROM芯片。EPROM芯片在写入资料后,还要以 不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线 照射而使资料受损

飞思卡尔8位单片机MC9S08JM60开发板实践教程

飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

飞思卡尔8位单片机MC9S08 15 08系列MCU编程器的开发.ppt

飞思卡尔8位单片机MC9S08 15  08系列MCU编程器的开发.ppt

命令
格式
功能
READ $4A $4A 高字节 高字节 低字节 低字节 数据
读出指定单元内容(RAM或Flash)
WRITE IREAD
$49 $49 高字节 高字节 低字节 低字节 数据 数据 $1A $1A 数据 数据
向指定单元写数据(RAM)
读取上次访问的地址+1、+2处的 内容(RAM或Flash)
Start Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Stop
16.1 编程器技术基础
(2)监控模式的工作过程
MCU在进入监控模式时,需要接收8字节的保密字节,如果是空白 芯片,则8字节的保密字节全是$FF,然后就处于等待接收一个命令字节 状态。以GP32为例,进入监控模式的时序如下图所示。
In PC 主机 Out
串 3 In 行 口 2 Out PC
MAX 7 232 9
8
10
1
3
2 MC
5
74HC125 6
特定I/O
目标 MCU
(a)编程器内部器件连接图
7
10
6
VDD
VDD 5 10KΩ
4
8
9
2
3
MAX 232
1 74HC125
(b)编程器原理图
16.2 HC08系列MCU编程器的实现方法
16.1 编程器技术基础
16.1.3 HC08系列MCU在监控模式下的工作过程
(1)与主机通信的数据格式
当MCU上电复位时,如果满足进入监控模式的条件,MCU就会工作 于监控模式。监控模式下MCU主要是通过某个特定的I/O口(如:GP32是 PTA0,JL3是PTB0),以标准不归零(NRZ)的数据格式进行数据通信, 具体为:第一位起始位(0),随后为8个数据位(低位在前,高位在后),最 后一位为停止位(1)。NRZ的数据格式如下图所示。

chap2_Freescale_MC9S08

chap2_Freescale_MC9S08

S08 CPU寄存器
条件代码寄存器(CCR) 8位条件代码寄存器存放中断屏蔽 位(I)和5个刚执行指令结果的标志。
V
1
1
H
I
N
Z
C
CCR 进位标志:1有进位 零标志:1运算结果0 负标志:1结果为负 中断屏蔽控制:1禁中断 半进位标志位:1有进位 溢出标志位:1有溢出
第5和第6位永远置位。
位名称
7 V 4 H 3 I
2 N 1 Z
0 C
进/借标志—加法第7位产生进位,或减法需要借位,则置本位为1。一些指令——如 位测试和分支,移位和旋转也会影响进/借标志.
2.外围模块
4K–60K byte FLASH or ROM memory 128–4K byte Static RAM Asynchronous serial I/O (SCI)异步串行口 Synchronous serial I/O (SPI and IIC)同步异步串行口 Timer/PWM modules (TPM)定时器/脉宽调制模块 Keyboard interrupts (KBI)键盘中断 Analog to digital converter (ADC) Clock generation modules时钟模块 Debug module with nine trigger modes and bus capture FIFO(DBG)
S08 CPU寄存器
堆栈指针(SP) 该16位指针总是指向堆栈中下一个可使用的单元。堆栈可以位于64K空间中任何有 RAM的地方,大小在RAM范围内任意。堆栈用于中断过程中的CPU寄存器的自动保护, 也可用于局部变量。AIS指令给SP加一个8位有符号立即数,该指令常用于在堆栈中为 局部变量分配存储空间。为与M68HC05兼容,SP复位值为0x00FF。HCS08系列MCU 一般会在程序开始将SP修改到RAM的最高地址处。指令RSP(复位堆栈指针)只是为了 与M68HC05兼容,在HCS08中很少用到,该指令只影响SP的低8位数值。 程序计数器(PC) 程序计数器是个16位的寄存器,存放取出的下一个指令或操作数的地址。正常的 程序执行期间,每一次取出指令或者操作数时,程序计数器自动加一指向后续的存储器位 置.跳转、分支、中断和返回操作,程序计数器加载的是一个地址,而不是下一个后续 位置。 复位期间,程序计数器加载位于$FFFE和$FFFF处存放的地址。 ( $FFFE:$FFFF )存放的地址处对应的指令,是复位后被执行的第一条指令。

飞思卡尔新一代8位单片机MC9S08QG系列——集成度之高,改写了低端产品的定义!

飞思卡尔新一代8位单片机MC9S08QG系列——集成度之高,改写了低端产品的定义!
维普资讯
On i e S l em i arH gh i t n n i l gh s
一 … 一 … 一 … 一 … 一 一 , … ~ 一 … 一 … 一
率皇~ 线麈送精堡 匾在一
飞思卡尔新一代8 位单片机 M 系列 C9 0 QG 8 S
功 能 。 等 待 模 式 只 是 将 CP 的 时 钟 关 断 , U 而 允 许 绝 大 多 数 的 外 围 设 备 继 续 运 行 ,与 运 行 模 式 相 比 , 消 耗 较 低 的 电 流 。(V 的 可 5 H S 8器 件 可 能 没 有 停 止 1 式 ) C0 模 H S 8的 低 功 耗 性 能 C 0 H S 8 的 低 功 耗 性 能 主 要 表 现 在 以 下 C 0 几个方面 : 它 具 有 多 种 功 率 管 理 模 式 , 够 关 断 芯 能 片 的 电 源 , 时 的 电 流 消 耗 可 低 至 2 n 极 此 0 A; 低 功 耗 的 自动 唤 醒 定 时 器 , 需 外 部 晶 振 / 无
变 址 寄存 器8位 的条 件 代 码 寄 存 器 。 该模 型 与 H 0 C 8相 同 , 因
此 可大大简化将老 的 H 0 C 8代 码 移 植 到 H S 8的工 C0
作 , 高代 码 效 率 。 提
采 用 第 三代 02 .5微 米 Fa h 术 , 续 了Fe h l 技 s 延 l s
■ 飞思卡尔半导体
采 用 S C方 法 , 速 推 出新 的产 品 系 列 : o 迅
飞 思 卡 尔 新 一 代 8位 单 片 机 MC S 8 9 0 QG主 要 针
对 少 管 脚 、低 电 压 及 低 功 耗 应 用 。MC S 8 9 0 QG 体 积

飞思卡尔8位单片机MC9S08 15 程序 CAN通信接口 程序

飞思卡尔8位单片机MC9S08 15 程序 CAN通信接口 程序

15.4.2 控制寄存器(1)MSCAN08模式控制寄存器0 (Module Control Register 0,CMCR0)模式控制寄存器0(CMCR0)定义了MSCAN08模块的同步状态等有关工作方式。

地址:$0500SYNCH —Synchronized Status:同步状态。

SYNCH =1,MSCAN08与CAN总线同步;SYNCH =0,MSCAN08与CAN总线不同步。

TLNKEN —Timer Enable:时钟使能。

TLNKEN =1,MSCAN08时钟信号输出连接到片上时钟输入;TLNKEN =0,MSCAN08不连接到时钟输入。

SLPAK —Sleep Mode Acknowledge:睡眠模式确认。

SLPAK标志位指示MSCAN08是否处于睡眠模式,SLPAK =1,表示MSCAN08处于内部睡眠模式;SLPAK =0,不在内部睡眠模式。

SFTRES —Soft Reset:软复位。

SFTRES =1,MSCAN08处于软复位状态;SFTRES =0,MCAN08处于正常运行状态。

当SFTRES被置为1时,MSCAN08立即进入软复位状态。

此时,MSCAN08所有正在进行的收发操作都被中止,且不再与CAN总线保持同步。

只有在软复位状态下,才能对寄存器MCR1、BTR0、BTR1、IDAC、IDAR0-IDAR3、IDMR0-IDMR3进行写操作。

当该位清0时,MSCAN08将在11个隐性位后与总线保持同步。

(2)MSCAN08模式控制寄存器1 (Module Control Register 1,CMCR1)模式控制寄存器1定义了MSCAN08模块的时钟源、唤醒模式及工作方式。

地址:$0501LOOPB —Loop Back Self-Test Mode:回环自测模式位。

LOOPB =1,激活回环自测模式;LOOPB =0,正常运行模式。

当处于回环自测模式时,CAN RX引脚被忽略,CAN TX引脚输出隐性值,MSCAN08将自己发送的报文当成是从远程节点上发送过来的报文进行接收,并产生发送和接收中断。

8位飞思卡尔单片机

8位飞思卡尔单片机

飞思卡尔8位单片机概述----飞思卡尔8位单片机系列主要包括RS08类、HCS08类、HC08类、HC08汽车类、HCS08汽车类。

下面每个类型都将挑选一典型产品进行介绍,更多产品介绍敬请登陆飞思卡尔官方网站。

1、RS088位微控制器正逐渐向小型化应用发展。

在这些小型应用中,也许并不需要使用完整的HC08或S08所具备的丰富功能。

RS08内核是非常流行的SO8中央处理器(CPU)的精简版,它被精心打造为效率更高、成本更低并适合小容量内存的微控制器。

RS08是一些新兴应用的理想解决方案,例如完全用固态电路实现的简单机电设备,或小型便携设备甚至一次性便携设备。

飞思卡尔的工程师将小型化应用不需要的功能从S08内核中去除,而对其余的运算进行了增强,从而提高了超小型控制器的使用效率。

这些控制器的芯片面积非常小,您甚至可以将它们从胡椒罐中摇出来。

RS08内核的尺寸比S08小30%。

为了减小面积,RS08将计数器和地址总线宽度限制为14位,使用一个全局中断标志寄存器取代了矢量中断功能,同时还取消了以下功能:堆栈指针和H:X寄存器及其相关指令和寻址模式乘法、除法以及BCD码指令算术逻辑移位运算(保留了逻辑移位和旋转)条件码寄存器中的若干位以及相关条件分支指令这些被取消的功能由更为简单的结构所代替,这些结构保证了在内存低于16K且引脚数目很少的器件上,可以用非常简洁高效的代码实现大多数嵌入式应用。

为了进一步提高运算效率,飞思卡尔增加了如下内容:屏蔽程序计数器,用于更为高效的子程序调用简短微小的寻址模式,允许对最常用的变量和寄存器进行更为有效地访问和操作内存分页方案,能够更充分地利用直接寻址模式和新型的简短微小的寻址模式RS08内核深化了飞思卡尔8位产品系列,在发展可以共享外围设备和通用开发工具、并且引脚兼容的8位/32位器件的过程中,迈出了第一步。

它将使机械和电子产品开发者开发出史无前例、独具匠心、节约成本的电子应用产品和功能非常先进的一次性产品。

飞思卡尔8位单片机MC9S08 10 定时接口模块.ppt

飞思卡尔8位单片机MC9S08 10 定时接口模块.ppt
上升沿捕捉 下降沿捕捉 跳变沿捕捉 输出电平翻转 输出高电平 输出低电平 输出电平翻转 输出高电平 输出低电平
10.4 定时器模块的输出比较功能
(3)T1通道1状态和控制寄存器(Timer1 Channel 1 Status and Control Register,T1SC1)
数据位 定义 复位
10.1 计数器/定时器的基本工作原理
10.1.2 MC68HC908GP32 MCU的定时接口的基本 原理的概述
MC68HC08系列的单片机可以提供多个独立的定时器,例如, MC68HC908GP32芯片有两个定时器,分别叫定时器1、定时器2,它们的 工作原理是一致的,下面的说明均以定时器1为例。
(2)输入捕捉的基本含义
输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发 生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳 变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿 跳变后,把计数寄存器当前的值锁存到通道寄存器。
10.3 定时器模块的输入捕捉功能
10.3.2 输入捕捉的寄存器
通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的 时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产 生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容, 这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。
所以,若要读取整个通道寄存器,必须先读高字节,再读低字节。
1
111
1
1
1
1
D7 :通道标志位,用来标志定时器1通道0发生了输入捕捉。 D6 :通道中断允许位,用来设置是否允许发生输入捕捉中断。 D5~ D4:模式选择位。每一个定时器都可以工作在输入捕捉,输出比较和 PWM输出模式,这两位用来选择这些工作模式。 D3~D2 :跳变沿/ 输出电平选择位。 D1 :溢出翻转控制标志位,定时器通道用做输入 捕捉时,此位无用。 D0 :通道最大占空比设置位 ,定时器通道用作 输入捕捉时,此位无用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作模式 高速模式 斜率模式 待机模式 Rs接法 接低电平 过16.5kΩ-140kΩ 的电阻接地 接高电平 TXD ---- 1 GND ---- 2 Vcc ----- 3 RXD --- 4 8 ---- Rs 7 ---- CANH 6 ---CANL 5 ---- Vref
PCA82C250引脚图 说明
6N137
390Ω CANTx VCC2 390Ω GND2 CANRx VCC2 GND2 0.1uF 5 GND 6 OUT 7 EN 8 Vcc 3 2 IN Vdd Vcc EN OUT GND 8 0.1uF 7 6 5 GND1 390Ω Vdd IN 2 3 VCC1 390Ω VCC1 0.1uF GND1 GND1 VCC1 1 4
(4)过载帧
过载帧包括两个位场:过载标志和过载界定符。过载帧的组成如 下图。
数据帧 过载标志 过载标志的重叠
图15-7过载帧组成
过载帧
帧间空间 或过载帧 过载界定符
15.2 CAN技术规范
15.2.4 错误处理
1)错误检测( 5种不同的错误类型)
位错误:单元在发送位的同时也对总线进行监视。如果所发送 的位值与所监视的位值不相同,则在位时间里检测到一个位错误。 填充错误:如果在使用位填充法进行编码的信息中,出现了6个 连续相同的电平时,将检测到一个填充错误。 CRC错误:CRC序列包括发送器的CRC计算结果。如果计算结 果与接收到的CRC序列的结果不相符,则检测到一个CRC错误。 形式错误:当一个固定的位场含有1个或多个非法位,则检测到 一个形式错误。 应答错误:只要在应答间隙期间所监视的位不为显性,则发送 器会检测到一个应答错误。
15.2 CAN技术规范
15.2.3 报文传输和帧结构
报文传输由以下4个不同的帧类型表示和控制: 数据帧:数据帧将数据从发送器传输到接收器。 远程帧:总线单元发出远程帧,请求发送具有同一标识符的数 据帧。 错误帧:任何单元检测到总线错误就发出错误帧。 过载帧:过载帧用于在先行和后续数据帧(或远程帧)之间提 供一附加的延时。 数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一 个帧间空间与前面的帧分隔。
(13)应答(Acknowledgment)
所有接收器对接收到的报文进行一致性检查。对于一致的报文,接 收器给予应答;对于不一致的报文,接收器做出标志。
15.2 CAN技术规范
15.2.2 CAN总线的位数值表示与通信距离
V VCANH Vdiff VCAN-L 隐性位 时间t
Vdiff Vdiff 隐性位 显性位 总线位的数值表示
15.1 现场总线概述
返回
15.2 CAN技术规范
15.2.1 CAN的基本概念
(1)报文(Messages)
总线上传输的信息即为报文,它们以若干个不同的固定格式发送,但长 度受限。当总线空闲时,总线上任何单元均可发送新报文。
(2)信息路由(Information Routing)
在CAN系统中,CAN不对单元分配站地址,报文的寻址内容由报文的标 识符指定。标识符不指出报文的目的地,但是这个数据的特定含义使得总线 上所有单元可以通过报文滤波来判断该数据是否与它们相符合。
(3)位速率(Bit Rate)
即总线的传输速率。在一个给定的CAN系统中,位速率是唯一的,也是 固定的。
(4)优先权(Priorities)
在总线访问期间,标识符定义一个静态的报文优先权。
15.2 CAN技术规范
(5)远程数据请求(Remote Data Request)
当总线上某单元需要请求另一单元发送数据时,可通过发送远程 帧实现远程数据请求。
模块化的设计 符合CAN2.0A/B协议标准,支持标准和扩展数据帧格式 高达1Mbps的可编程通信速率 一帧最多8字节数据 支持远程请求帧 4个先进先出结构的收发缓冲区,其中3个为具有局部优先级的发送缓冲区 灵活的标识符验收模式,可配置成1个32位过滤码、2个16位过滤码和4个8位过 滤码 内置低通滤波的远程唤醒功能 可编程为方便调试的自环工作模式
支持最大总线长度/速率。 当使用非屏蔽的总线电缆时可考虑使用这种模式。 该模式的输出转换速度可以被降低以减少电磁辐射。 慢速模式,适用于电池供电场合。
15.3 MSCAN08模块及其外围接口硬件电路
15.3.3 MSCAN08通信接口硬件电路
MSCAN08构建CAN总线系统智能节点的硬件电路如下图见微处 理器采用带有MSCAN08模块的MC68HC908GZ60,CAN总线驱动器 采用PCA82C250。GZ60负责MSCAN08的初始化,并通过读取 MSCAN08模块的报文缓冲区收发数据。GZ60的CANTx和CANRx与 PCA82C250通过高速光耦6N137后再与PCA82C250相连。
任何检测到错误的单元会标志出已被损坏的报文。此报文会失效 并将自动重传。如果不再出现错误,则从检测到错误到下一报文的传 送开始为止,恢复时间最多为31位的时间。
15.2 CAN技术规范
(9)故障界定(Fault Confinement)
CAN单元能够把永久故障和短暂的干扰区别开来。
(10)连接(Connection)
15.2 CAN技术规范
15.2.6 位定时与同步
位定时与同步定义CAN总线的通信速率,相关名词有: 标称位速率(Nominal 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):用 于补偿边沿阶段的误差。这两个段可以通过重新同步加长或缩短。
15.2 CAN技术规范
15.2.6 位定时与同步
采样点(Sample Point):读总线电平并解释各位的值的一个时间点。 采样点位于相位缓冲段1之后。 信息处理时间(Information Processing Time):信息处理时间是 以一个采样点作为起始的时间段。采样点用于计算后续位的位电平。 时间份额(Time Quanta):时间份额是派生于振荡器周期的固定时 间单元。存在一个可编程的预比例因子,将整体数值范围为1-32的整数, 以最小时间份额为起点,时间份额的长度为: 时间份额=m * 最小时间份额,其中,m为预比例因子 时间段长度(Length of Segments):同步段为1个时间份额,传播 段的长度可设置成1、2…8个时间份额,相位缓冲段1的长度可设置成1、 2…8个时间份额,相位缓冲段2的长度为相位缓冲段1和信息处理时间 之间的最大值,信息处理时间少于或等于2个时间份额。 一个位时间总的时间份额值可以设置在8~25的范围。

(6)多主机(Multimaster)
总线空闲时,总线上任何单元都可以开始向总线上传送报文,但 只有最高优先权报文的单元可获得总线访问权。
(7)仲裁(Arbitration)
总线空闲时,若同时有两个或两个以上单元开始发送报文,总线 访问冲突运用逐位仲裁规则,借助标识符ID解决。
(8)错误标定和恢复时间(Error Signaling and Recovery Time)
15.3 MSCAN08模块及其外围接口硬件电路
CAN系统
MSCAN08使用2个外部引脚,一个输入(CANRX),一个输出 (CANTX)。CANTX 输出引脚代表了CAN上的逻辑电平:0为显性, 1为隐性。由MSCAN08模块构建的典型的CAN系统如下图。
CAN节点 MCU CAN控制器 (MSCAN08) CANTX CANRX CANH CANL 120Ω CANL CANH CANL CAN节点 CAN节点
2)错误标定
检测到错误条件的站通过发送错误标志指示错误。对于“错误 主动”的节点,错误信息为“主动错误标志”,对于“错误被动” 的节点,错误信息为“被动错误标志”。
15.2 CAN技术规范
15.2.5 故障界定
至于故障界定,单元的状态可能为下列三种之一:错误主动、 错误被动、总线关闭。 错误主动的单元可以正常地参与总线通信并在检测到错误时发 出主动错误标志。 错误被动的单元不允许发送主动错误标志。错误被动的单元参 与总线通信,在错误被检测到时只发送被动错误标志。而且,发送 以后,错误被动单元将在初始化下一个发送之前处于等待状态。 总线关闭的单元不允许在总线上有任何的影响。
第十五章 CAN通信接口
主要内容

现场总线概述 CAN技术规范 MSCAN08模块及其外围接口硬件电路 MSCAN08模块的编程结构 MSCAN08编程实例
15.1 现场总线概述
现场总线是一种应用于生产现场,在现场设备之间、现场设备
与控制装置之间实行双向、串行、多节点数字通信的技术。它是一项 以智能传感、控制、计算机、数据通信为主要内容的综合技术,是当 今自动化领域发展的热点之一,被誉为自动化领域的局域网。 目前国际上存在几十种现场总线标准,比较流行的主要有FF(基 金会现场总线)、CAN(控制器局域网)、LonWorks、Profibus等。
返回
15.2 CAN技术规范
15.3 MSCAN08模块及其外围接口硬件电路
15.3.1 MSCAN08模块
MSCAN08是Freescale可升级控制器局域网(Motorola scalable controller area network,MSCAN)在Freescale 08系列微控制器中 的具体实现。该模块具有以下特性:
相关文档
最新文档