CAN128试验说明书Word文档下载推荐.docx
- 文档编号:21773153
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:36
- 大小:1.04MB
CAN128试验说明书Word文档下载推荐.docx
《CAN128试验说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CAN128试验说明书Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。
复位发生时端口G为三态。
端口G也可以用做其他不同的特殊功能
NESET
复位信号输入端。
如果在该引脚上持续一个比最小脉冲时间长一些的低电平,就将产生一个复位
XTAL1
振荡器的输入端,也是内部时钟的输入端
XTAL2
振荡器的输出端
AVCC
AVCC为在F端口上的A/D转换器引脚供电。
即使ADC没有使用,它应该与VCC外部相连接。
如果ADC使用,它应通过一个低通过滤器与VCC连接
SREF
A/D转换器的模拟参数引脚
四、芯片特点
AT90CAN128是在Atmega128微处理的基础上,内置有完全符合CAN2.0A和2.0B标准协议的CAN控制器。
Atmega128为属于AVRRISC结构的8位低功耗CMOS微处理器。
由于其先进的指令集以及单周期指令执行时间,Atmega128的数据吞吐率高达1MIPS/MHZ,从而可以减缓系统在功耗和处理速度之间的矛盾。
AT90CAN128内置的CAN控制器采用MOb(消息对象)方式进行数据的发送和接收,共有15个MOb,它们具有相同的属性:
有11位标识符(2.0A协议),也可扩展至29位(2.0B议);
8位数据缓冲(静态分配);
Tx,Rx帧
缓冲或自动响应配置;
时间标识。
4.1ATmega128
Atmega128具有如下特点:
128K字节的系统内可编程Flash(具有在写的过程中还可以读的能力,既RWW)、4K字节的EEPROM、4K字节的SRAM、53个通用I/O口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM功能的定时器/计数器(T/C)、两个USART、面向字节的两线接口TWI、8通道10位ADC(具有可选的可编程增益)、具有片内振荡器的可编程看门狗定时器、SPI串行端口、与IEEE1149.1规范兼容的JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。
空闲模式时CPU停止工作,而SRAM、T/C、SPI端口以及中断系统可以继续工作;
掉电模式时晶体振荡器停止震荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;
省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态;
ADC噪音抑制模式时CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪音;
Standby模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;
扩展Standby模式则允许振荡器和异步定时器继续工作。
Atmega128方框图
AVRCPU内核
CPU的主要任务是保证程序的正常执行,因此它必须能够访问存储器,执行运算,控制外设以及处理中断。
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。
下面是AVR结构方框图:
AVR内核结构方框图
AVR采用了Harvard结构,具有独立的数据和程序总线。
程序存储器的指令通过一级流水线运行。
CPU在执行一条指令的同时读取下一条指令。
程序存储器为可以在线编程的FLASH。
快速访问寄存器文件包括32个8位通用工作寄存器,而且都可以在一个时钟周期内访问。
从而实现单时钟周期的ALU操作。
在典型的ALU操作过程中,两个位于寄存器文件中的操作数同时被访问,然后执行相应的运算,结果再被送回寄存器文件。
整个过程仅需要一个时钟周期。
寄存器文件里有6个寄存器可以用作3个16位的间接地址寄存器指针以寻址数据空间,实现高效的地址运算。
其中一个指针还可以作为程序存储器查询表的地址指针。
这些附加的功能寄存器即为16位的X、Y、Z寄存器。
ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。
ALU也可以执行单寄存器操作。
运算完成之后状态寄存器的内容将更新以反映操作结果。
程序流程通过有/无条件的跳转指令来控制,从而直接寻址整个地址空间。
大多数指令长度为16位,亦既每个程序存储器地址都包含一条16位或32位的指令。
程序存储空间分为两个区:
引导程序区和应用程序区。
这两个区都有专门的锁定位实现读和读/写保护。
用于写应用程序区的SPM指令必须位于引导程序区。
在中断和调用子程序时返回地址程序计数器(PC)保存于堆栈之中。
堆栈位于通用数据SRAM,故此其深度仅受限于SRAM的大小。
AVR具有一个灵活的中断模块。
控制寄存器位于I/O空间。
状态寄存器里有全局中断使能位。
在程序存储器起始处有一个中断向量表,每一个中断在此都有独立的中断向量。
各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。
I/O存储器空间包含64个可以直接寻址的地址。
映射到数据空间即为寄存器文件之后的地址﹩-﹩5F。
此外,Atmega128在SRAM里还有扩展的I/O空间,位于地址﹩60--﹩FF。
但是只能使用ST/STS/STD和LD/LDS/LDD指令。
关于Atmega详细资料见附录1.
4.2、CAN控制器
4.2.1、CAN控制器的特点:
完整的CAN控制器
完整的CAN2.0A和2.0B标准
15个Mob(消息对象):
——11位标识符(2.0A),29位标识符(2.0B)
——11位标识符屏蔽(2.0A),29位标识符屏蔽(2.0B)
——8位数据缓冲(静态分配)
——Tx,Rx,桢缓冲或者自动响应配置
——时间标识
在频率是8MHz时,最大传输速率位1M位/秒
TTC定时器
监听模式(用于窃听或者自动波特)
AT90CAN128内置有完全符合CAN2.0A和2.0B标准协议的CAN控制器。
采用MOb(消息对象)方式进行数据的发送和接收,共有15个MOb,它们具有相同的属性:
CAN控制器的结构如图所示:
CAN控制器结构
4.2.2、Mob
MOb是一个CAN消息帧的描述符。
它包括处理一个CAN消息帧的所有信息。
这意味着一个MOb可以看成一个对象,来描述一条CAN消息。
MOb的数目是从0到14。
它们相互独立,但在多重比较的时候,低位的MOb会获得优先权。
每个MOb都被安置在一个页中来保存。
页的序号就是MOb的序号。
操作模式:
每个Mob有它自己的域来控制操作模式。
在复位之后没有默认的模式。
在使能CAN外围设备之前,每个Mob必须进行配置。
(禁止模式-CONMOB=00)
操作模式为:
——禁止模式
——发送模式
——接收模式
——自动响应
——桢缓冲接受模式
Mob配置
响应有效
RTR标志
操作模式
x
禁止
1
Tx数据桢
Tx远程桢
Rx数据桢
Rx远程桢
Rx远程桢后Tx数据桢(作为响应)
桢缓冲接收模式
Mob配置
1、禁止:
在该模式下,Mob是“自由”的
2、Tx数据桢&
远程桢:
A、以下几个域必须在发送之前初始化:
——标识符标志(IDT
——初始化发送请求(RTRTAG)
——数据长度代码(DLC)
——保留位标志(RBnTAG)
——消息的数据位(MSG)
B、当Mob配置被置位后(CONMOB),Mob就准备好发送一个数据桢或者一个远程桢了。
C、然后,CAN通道扫描所有在Tx配置中的Mob,找到最高优先级的Mob并且开始发送它。
D、当发送结束,TXOK标志被置位(中断)。
E、直到一个新的初始化开始,所有参数和数据在Mob里都是有效的。
3、Rx数据桢&
A、以下几个域必须在接收之前初始化:
——标志符标志(IDT)
——标识符屏蔽(IDMSK)
——标识符扩展(IDE)
——标识符扩展屏蔽(IDEMSK)
——远程发送请求(RTRTAG)
——远程发送请求屏蔽(RTRMSK)
B、当Mob配置被置位后(CONMOB),Mob就准备好接收一个数据桢或者一个远程桢了。
C、当一个桢标识符被CAN网络接收,CAN通道就会扫描所有在接收模式中的Mobs,试图找到有最高优先级的Mob。
D、一旦找到,则匹配的Mob中的IDT、IDE和DLC更新为新到来的(桢)值。
E、一旦接收结束,接收到的消息的数据位被储存(非远程桢)在Mob的数据缓冲区,并且RXOK标志置位(中断)。
F、直到一个新的初始化开始,所有参数和数据在Mob里都是有效的。
4、自动响应:
当期望的远程桢接收后,一个到远程桢的响应(数据桢)会被自动发送。
A、以下几个域必须在接收远程桢之前初始化:
——(类似于“Rx数据桢&
远程桢”)
B、当一个远程桢匹配时,自动地,RTRTAG和响应有效位(RPLV)置位。
此时,没有标志(或者中断)置位。
由于CAN数据缓冲没有为即将到来的远程桢所用,Mob将准备好发送模式,而无任何其他的设置。
接收的远程桢的IDT、IDE、其他标志和DLC为响应所用。
C、当响应发送结束,TXOK标志置位(中断)。
D、直到一个新的初始化开始,所有参数和数据在Mob里都是有效的。
5、桢缓冲接收模式:
该模式用来接收多重桢。
Mobs间的优先级为这些即将到来的桢提供了有效的管理。
当Mobs在该模式下进行配置,则将创建一组Mobs(包括不连续Mobs)。
由于模式配置,只可能是一组。
只有当组中所有Mobs都接收到它们专用的CAN桢时,一个桢缓冲结束标志(或者中断)-BXOK-将置位。
A、在桢缓冲接收模式下的Mobs需要象在标准接收模式下一样初始化。
B、当他们各自的配置都置位(CONMOB)时,Mobs便准备好接收数据桢(或者远程桢)。
C、当一个桢标识符在CAN网络上被接收,CAN通道扫描所有在接收模式中的Mobs,试图找到有最高优先级的匹配的Mob。
D、一旦找到,则匹配的Mob中的IDT、IDE和DLC更新为新到来的(桢)值。
E、一旦接收结束,接收到的消息的数据位被储存(非远程桢)在匹配的Mob的数据缓冲区,并且RXOK标志置位(中断)。
F、当组中的最后一个Mob接收结束时,桢缓冲结束BXOK标志置位(中断),仅当组中所有的CONMOB都被重写,BXOK标志才可被清除。
G、直到一个新的初始化开始,所有Mob中的参数和数据才有效。
4.2.3、CAN位结构
一个CAN位时间,被定义成四个无重叠的时间段。
每个时间段都是由一个“时间片”的整数倍数构成的。
“时间片”或者TQ是CAN节点所用到的最小的独立时间结构。
CAN位结构
同步时间段第一个段用于使各种总线节点同步。
发送时,在时间段的起始处,当前的位是输出的。
如果有一个
位的状态在先前位和当前位间发生了变化,则总线状态通过接收节点改变。
传播时间段该时间段用于补偿在网络中的信号延迟。
补偿在总线上的信号传播延迟是必要的,通过总线节点的传送器。
段1段1用于补偿补偿边沿错误。
该段可在重复同步期间被延长。
采样点采样点是在“总线电平被读”时以及“解释成各自位的值”时的点。
它的位置是在段1的最后(在两个段之间)。
段2该段也用于补偿边沿错误。
该段可在重复同步期间被缩短,但只要在信息进程时间内,长度必须为最小,并且不能比段1的时间长。
位延长作为重复同步的结果,段1可被延长或段2可被缩短,来补偿振荡器的容错。
如果,例如传送振荡器比接收振荡器慢时,用于重复同步的下一个下降沿可被延迟。
所以,段1被延长来调整采样点,在位时间的结尾处。
位缩短另一方面,如果传送振荡器比接收振荡器快,则用于重复同步的下一个下降沿可能会来的太早。
所以在第N位中,段2被缩短来调整N+1位的采样点,在位时间的结尾处。
同步跳转宽度限制段的延长或缩短的量
4.2.4、CAN通道
CAN通道可以是处于:
使能模式
在该模式:
——CAN通道(内部TXCAN&
RXCAN)使能
——输入时钟使能
备用模式
——传送器连续提供一个隐性电平(在内部TXCAN上),接收器禁止
——寄存器和页仍可访问
监听模式
该模式对于CAN通道是透明的:
——使能一个硬件回送,内部TXCAN在内部RXCAN上
——在TXCAN引脚上提供一个隐性电平
——不禁止RXCAN
——冻结TEC和REC错误计数器
监听模式:
采样点和传送点:
位周期的通用结构:
4.2.5、CAN寄存器
1、通用控制寄存器CANGCON
ABRQ:
放弃请求
0:
无请求
1:
CANCDMOB寄存器中CONMOB位的对每个MOB的一个复位。
待决通信被立即禁止,进行中的通信将被正常终止,设置成合适的状态标志。
OVRQ:
过载桢请求
在下一个接收桢之后发送一个过载桢
过载桢可通过观察CANGSTA寄存器中的OVFG位来查出。
TTC:
定时器触发通信
无TTC
TTC模式
SYNTTC:
TTC同步
0:
TTC定时器在SOF上被捕获
1:
TTC定时器在EOF的最后一位上被捕获
LISTEN:
只听模式
无只听模式
TEST:
测试模式
无测试模式
测试模式:
为工厂测试而准备的,不是为用户使用的
ENA/STB:
使能/备用模式
因为这个位是一个命令且不是立即有效的,CANGSTA寄存器中的ENFG位给出了被选模式的真实状态。
备用模式:
进行中的通信被正常终止,CAN通道被冻结(每个MOB中的CONMOB位不改变)。
发送器连续提供一个隐性电平。
在这种模式下,接收器不被使能,但所有的寄存器和邮箱仍然可从CPU访问。
使能模式:
一旦11个连续的隐性位被读,则CAN通道进入使能模式。
SWRES:
软件复位请求
这个能自动复位的位只是将CAN控制器复位。
无复位
这个复位与硬件复位是“或”的关系。
2、通用状态寄存器CANGSTA
OVFG:
过载桢标志
这个标志不会产生中断
无过载桢
只要产生的过载桢被发送,该位就由硬件置位
TXBSY:
发送器忙
这个标志不会产生中断
发送器不忙
只要一个桢(数据、远程、过载或者错误桢)或者一个ACK域被发送,该位就由硬件置位。
当一个内部桢空间被发送的时候,也置位。
RXBSY:
接收器忙
接收器不忙
只要一个桢被接收或者被监测,该位就由硬件置位
ENFG:
使能标志
CAN控制器禁止:
因为一个使能或者禁止命令不会立即有效,这个状态位给出了被选模式的真实状态。
CAN控制器使能
BOFF:
总线关闭模式
BOFF给出了CAN通道的状态信息。
只有进入总线关闭模式才能产生BOFFIT中断。
无总线关闭模式
ERRP:
错误被动模式
ERRP给出了CAN通道的状态信息。
无错误被动模式
3、通用中断使能寄存器CANGIE
ENIT:
使能所有中断(除了CAN定时器超时运行中断)
中断禁止
CANIT中断使能
ENBOFF:
使能总线关闭中断
0:
总线关闭中断使能
ENRX:
使能接收中断
接收中断使能
ENTX:
使能发送中断
发送中断使能
ENERR:
使能Mob错误中断
Mob错误中断使能
ENBX:
使能桢缓冲中断
桢缓冲中断使能
ENERG:
使能通用错误中断
通用错误中断使能
ENOVRT:
使能CAN定时器超时运行中断
CAN定时器超时运行中断使能
4、使能MOB寄存器2CANEN2
5、使能MOB寄存器1CANEN1
ENMOB14:
0:
使能Mob
该位提供Mob的有效性
当Mob使能(CANCDMOB寄存器中的CONMOB1:
0位)时,该位置1。
一旦TXOK或者RXOK置1(TXOK自动应答),响应ENMOB复位。
ENMOB置0来配置Mob禁止模式,应用于异常终止或者备用模式。
消息对象禁止:
Mob对一个新的发送或者接收有效
消息对象使能:
Mob处于使用状态
6、时序寄存器1(设置Tscl)CANBT1
BRP5:
波特率预定标器
CAN控制器系统时钟Tscl周期可传播和确定单个位定时。
Tscl=(BRP[5:
0]+1)/clkfrequency这里是频率的形式,也可化为周期
7、时序寄存器2(设置Tsjw、Tprs)CANBT2
SJW1:
重复同步跳转宽度
为了比较不同总线控制器时钟振荡器间的移相,控制器必须重复同步跳转宽度来定义时钟周期的最大数。
一个位周期可由一个重复同步来缩短或者延长。
Tsjw=Tsclx(SJW[1:
0]+1)
PRS2:
传播时间段
这部分位时间用于补偿网络中的物理延时。
它是总线上单个传播时间总和的两倍,输入比较器延时或者输出驱动器延时。
Tprs=Tsclx(PRS[2:
8、时序寄存器3(设置Tphs2、Tphs1)CANBT3
位6:
4——PHS22:
20:
段2
该段用于补偿段界限错误。
该段可由重复同步跳转宽度来缩短。
Tphs2=Tsclx(PHS2[2:
位3:
1——PHS12:
10:
段1
该段可由重复同步跳转宽度来延长。
Tphs1=Tsclx(PHS1[2:
SMP:
采样点
一次,在采样点
三次,总线的“三次采样”是采样点和“两次超过Tscl周期1/2的长度”。
该结果为三个值的主要判定的响应。
9、时钟控制寄存器(时钟分频)CANTCON
TPRSC7:
0:
CAN定时预定标器
预定标器,CAN定时器向上计数范围是0到255。
如果CAN控制器使能,则它为CAN定时器提供时钟。
CLKCANTIM=CLKx8x(CANTCON[7:
10、发送错误计数器寄存器CANTEC
位7:
0——TEC7:
发送错误计数,范围0到255
11、接收错误计数寄存器CANREC
0——REC7:
接收错误计数,范围0到255
12、最高优先级MOB寄存器CANHPMOB
4——HPMOB3:
最高优先级Mob数
Mob在CANSIT寄存器中有最高优先级。
如果CANSIT=0(没有Mob),返回值为0xF
0——CGP3:
CAN通用目标位
这些位能预先编程,来匹配CANPAGE寄存器的想要的配置(例如,AINC和INDX2:
0设置)
13、MOB寄存器CANPAGE页
4——MOBNB3:
Mob数
Mob数的选择,有效数范围0到14
AINC:
自动增加FIFOCAN数据缓冲索引(低有效)
自动增加索引(默认值)
不自动增加索引
位2:
0——INDX2:
FIFOCAN数据缓冲索引
进入FIFO的CAN数据位的位单元,来定义Mob
14、(MOB状态寄存器)CANSTMOB
DLCW:
数据长度代码警告
即将到来的消息不被DLC期望。
无论是什么样的桢格式,CANCDMOB寄存器的DLC域都通过接收到的DLC来更新。
TXOK:
发送OK
这个标志能产生一个中断。
它必须在整个CANSTMOB寄存器上用一个“读-修改-写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN128 试验 说明书