收藏 分销(赏)

NEC_V850_CAN控制器中文翻译.doc

上传人:pc****0 文档编号:5620941 上传时间:2024-11-15 格式:DOC 页数:78 大小:1.79MB
下载 相关 举报
NEC_V850_CAN控制器中文翻译.doc_第1页
第1页 / 共78页
NEC_V850_CAN控制器中文翻译.doc_第2页
第2页 / 共78页
点击查看更多>>
资源描述
第十六章 CAN控制器 第十六章 CAN控制器 16.1 概况说明 该产品专有一个片上1通道的CAN(控制器局部网)控制器,它遵守ISO 11898中规定的CAN协议。 16.1.1 特性 - 遵循ISO 11898并依照ISO/DIS 16845 (CAN一致性测试)测试 - 允许标准帧和扩展帧发送/接收 传输速率: 最高1Mbps(CAN时钟输入³8 MHz) - 16个报文缓存器/1个通道 - 接收/发送记录列表功能 - 自动块传输功能 - 多缓存接收块功能 - 每个通道可设置4种屏蔽模式 16.1.2 功能概述 表16-1给出了CAN控制器的功能概述。 表 16-1. 功能概述 功能 详情 协议 CAN协议ISO 11898 (标准帧和扩展帧发送/接收) 波特率 最高1 Mbps (CAN 时钟输入 ³8 MHz)。 数据存储 报文存储在CAN RAM 报文数目 - 16个报文缓存器/1个通道 - 各报文缓存器既可以设为发送报文缓存器也可以设为接收报文缓存器。 报文接收 - 每个报文缓存器可设置唯一的ID。 - 每个通道可设置4种屏蔽模式。 - 每接收一个报文便产生一个接收完成中断并存储在报文缓存器中。 - 两个或更多的接收报文缓存器可用作FIFO接收缓存器(多缓存接收块功能)。 - 接收记录列表功能 报文发送 - 每个报文缓存器可设置唯一的ID。 - 每个报文缓存器的发送完成中断 - 0至7号报文缓存器指定为发送报文缓存器,可用于自动块传输。 报文发送间隔可编程 (自动块发送功能 (以下称为“ABT”))。 - 发送记录列表功能 远程帧处理 通过发送报文缓存器处理远程帧。 时间标记功能 - 当配合使用一个16位定时器时,可为接收报文设置时间标记功能。 可选择时间标志捕获触发器 (可检测CAN报文帧中的SOF或 EOF)。 诊断功能 - 可读错误计数器 - 验证总线连接的“有效协议操作标志” - 只收模式 - 单次模式 - CAN 协议错误类型解码 - 自检模式 强制从掉线状态解除 - 可通过软件强制从掉线状态解除(通过忽略时间限制)。 - 没有从掉线状态自动解除(必须重新使能软件)。 节电模式 - CAN 睡眠模式(可由CAN总线唤醒) - CAN 停止模式(不能由CAN总线唤醒) 16.1.3 配置 CAN控制器由以下四部分组成。 (1) NPB 接口 该功能部分提供一个NPB(NEC外设I/O总线)接口和CAN模块与主机CPU之间收发信号的方法。 (2) MCM (报文控制模块) 该功能部分控制到CAN协议层的和CAN模块内部CAN RAM的访问。 (3) CAN 协议层 该功能部分涉及CAN协议的操作及其相关的设置。 (4) CAN RAM 此为CAN存储器功能部分,用于存储报文ID,报文数据等等。 图 16-1. CAN模块的框图 16.2 CAN 协议 CAN(控制器局部网)是应用于汽车实时通信中的高速多路复用通信协议 (C类)。 CAN由ISO 11898规定。关于详情,请参见ISO 11898规范。 CAN规范通常分为两层: 物理层和数据链路层。 数据链路层依次包括逻辑链路和媒质访问控制。 这些层的组成图示如下。 图 16-2. 层的组成 注 CAN控制器规范 16.2.1 帧格式 (1) 标准帧格式 - 标准格式帧使用11位标识符,这意味着它可以处理最多为2048个的报文。 (2) 扩展帧格式 - 扩展格式帧使用29位(11 位 + 18 位)标识符,将可处理的报文数目增加至2048 x 218个。 - 当仲裁区的SRR和IDE位均设为“接收电平”(CMOS电平等于“1”)时,设置为扩展格式帧。 16.2.2 帧类型 CAN协议使用下面四种类型的帧。 表 16-2. 帧类型 帧类型 说明 数据帧 用于发送数据的帧 远程帧 用于请求一个数据帧的帧 错误帧 用于报告错误检测的帧 过载帧 用于对下一数据帧或远程帧的延时 (1) 总线值 总线值分为显性和隐性。 - 显性电平用逻辑0表示。 - 隐性电平用逻辑1表示。 - 当同时发送显性电平和隐性电平时,总线值变为显性电平。 16.2.3 数据帧和远程帧 (1) 数据帧 一个数据帧包含7个域。 图 16-3. 数据帧 备注 D:隐性 = 0 R:显性 = 1 (2) 远程帧 一个远程帧包含6个域。 图 16-4. 远程帧 备注 1. 即使控制域中的数据长度码不为“0000B”,也不传送数据域。” 2. D:显性 = 0 R:隐性 = 1 (3) 域的说明 <1> 帧起始 (SOF) 帧起始域位于一个数据帧或远程帧的开始。 图 16-5. 起始帧(SOF) 备注 D:显性 = 0 R:隐性 = 1 · 如果在总线空闲状态检测到显性电平,则执行硬件同步(当前TQ被赋值为SYNC 段)。 · 这样的硬件同步之后如果在采样点采样到一个显性电平,则该位赋值为SOF。 如果检测到一个隐性电平,那么协议层将返回总线空闲状态并将前面的显性脉冲视为噪声。 这种情况下不产生错误帧。 <2> 仲裁域 仲裁域用来设置优先级、数据帧/远程帧和帧格式。 图 16-6. 仲裁域(标准格式模式) 注意事项 1. ID28至ID18为标识符。 2. 标识符首先传送MSB。 备注 D:显性 = 0 R:隐性 = 1 图 16-7. 仲裁域(扩展格式模式) 注意事项 1. ID28至ID18为标识符。 2. 标识符首先传送MSB。 备注 D:显性 = 0 R:隐性 = 1 表 16-3. RTR 帧设置 帧类型 RTR 位 数据帧 0 (D) 远程帧 1 (R) 表 16-4. 帧格式设置 (IDE位)和标识符 (ID)位的个数 帧格式 SRR 位 IDE 位 位个数 标准格式模式 无 0 (D) 11 位 扩展格式模式 1 (R) 1 (R) 29 位 <3> 控制域 控制域将“N”设为数据域的数据字节个数(N = 0至8)。 图 16-8. 控制域 备注 D:显性 = 0 R:隐性 = 1 在标准格式帧中,控制域的IDE位与r1位相同。 表 16-5. 数据长度设置 数据长度码 数据字节计算 DLC3 DLC2 DLC1 DLC0 0 0 0 0 0 个字节 0 0 0 1 1 个字节 0 0 1 0 2 个字节 0 0 1 1 3 个字节 0 1 0 0 4 个字节 0 1 0 1 5 个字节 0 1 1 0 6 个字节 0 1 1 1 7 个字节 1 0 0 0 8 个字节 其它 8个字节而与DLC3至 DLC0的值无关 注意事项 在远程帧中,即使数据长度码不是0000B,也不存在数据域。 <4> 数据域 数据域包含由控制域设定的数据量(字节单元)。 最多可设定8个数据单元。 图 16-9. 数据域 备注 D:显性 = 0 R:隐性 = 1 <5> CRC 域 CRC域是用于检查发送数据错误的16位的域。 图 16-10. CRC 域 备注 D:显性 = 0 R:隐性 = 1 - P(X)多项式用于产生15位的CRC序列,序列表示如下: P(X) = X15 + X14 + X10 + X8 + X7 + X4 + X3 + 1 - 发送节点: 发送CRC序列。CRC序列由帧起始、仲裁域、控制域和数据域的数据(位填充之前)计算得到。 - 接收节点: 使用不包括填充位的数据位,对接收数据中计算得到的CRC序列和CRC域中的CRC序列进行比较。 如果两个CRC序列不匹配,则该节点产生一个错误帧。 <6> ACK 域 ACK域用来确认正常的接收。 图 16-11. ACK 域 备注 D:显性 = 0 R:隐性 = 1 - 如果没有检测到CRC错误,则接收节点将ACK时间段设为显性电平。 - 发送节点输出两个隐性电平位。 <7> 帧结束(EOF) 帧结束域表示数据帧/远程帧的结束。 图 16-12. 帧结束(EOF) 备注 D:显性 = 0 R:隐性 = 1 <8> 帧间间隔 帧间间隔在数据帧、远程帧、错误帧或过载帧之后插入,以使一帧与下一帧隔开。 - 总线状态根据错误状态不同而不同。 (a) 错误生成节点 帧间间隔由一个3位间断域和一个总线空闲域组成。 图 16-13. 帧间间隔(错误生成节点) 备注 1. 总线空闲: 总线不被任何节点使用的状态。 2. D:显性 = 0 R:隐性 = 1 (b) 错误既成节点 帧间间隔由间断域、发送暂停域和总线空闲域组成。 图 16-14. 帧间间隔(错误既成节点) 备注 1. 总线空闲: 任何节点都不使用总线的状态。 发送暂停: 错误既成状态下从该节点发送8个隐性电平位序列。 2. D:显性 = 0 R:隐性 = 1 间断域通常为3位。 然而,如果发送节点在间断域的第3位检测到一个显性电平,它仍然执行发送。 - 错误状态下的操作 表 16-6. 错误状态下的操作 错误状态 操作 错误生成 该状态下的节点可在3位间断之后立刻发送。 错误既成 该状态下的节点在间断之后可发送8位。 16.2.4 错误帧 节点检测到错误之后输出错误帧。 图 16-15. 错误帧 备注 D:显性 = 0 R:隐性 = 1 表 16-7. 错误帧域的说明 编号 名称 位计数 说明 <1> 错误标志1 6 错误生成节点: 连续输出6个显性电平位。 错误既成节点: 连续输出6个隐性电平位。 如果在一个节点输出既成错误标志时,另外一个节点输出一个显性电平,则既成错误标志不被清除直到在1行中检测到相同的6位电平。 <2> 错误标志2 0 to 6 接收错误标志1的节点检测位填充错误并产生此错误标志。 <3> 错误标识符 8 连续输出8个隐性电平位。 如果在第8位检测到显性电平,则从下一位发送一个过载帧。 <4> 错误位 – 检测到错误的位。 从错误位的下一位输出错误标志。 在CRC错误的情况下,此位在ACK界定符之后输出 。 <5> 帧间间隔/过载帧 – 帧间间隔或过载帧由此开始。 16.2.5 过载帧 在以下条件下发送过载帧。 - 接收节点没有完成接收操作时注 - 如果间断期间在前两位检测到显性电平 - 如果在帧结束的最末位(第7位)或错误界定符/过载界定符的最末位(第8位)检测到显性电平 注 CAN在内部足够快以处理所接收到的不产生过载帧的帧。 图 16-16. 过载帧 备注 D:显性 = 0 R:隐性 = 1 表 16-8. 过载帧域的说明 编号 名称 位计数 说明 <1> 过载标志 6 连续输出6个显性电平位。 <2> 来自其它节点的过载标志 0 至 6 帧间间隔中接收过载标志的节点输出一个过载标志。 <3> 过载界定符 8 连续输出8个隐性电平位。 如果在第8位检测到显性电平,则从下一位发送一个过载帧。 <4> 帧 – 在帧结束、错误界定符或过载界定符之后输出。 <5> 帧间间隔/过载帧 – 帧间间隔或过载帧由此开始。 16.3 功能 16.3.1 决定总线优先级 (1) 当一个节点开始发送时: - 总线空闲期间,首先输出数据的节点发送数据。 (2) 当不止一个节点开始发送时: - 从仲裁域第1位开始连续输出显性电平最长的节点取得总线优先级(如果同时发送显性电平和隐性电平,则将显性电平作为总线的值)。 - 发送节点对其输出的仲裁域和总线的数据电平进行比较。 表 16-9. 决定总线优先级 电平匹配 连续发送 电平不匹配 连续发送 (3) 数据帧和远程帧的优先级 - 当数据帧和远程帧均在总线上时,数据帧具有优先级,因为它的RTR位即仲裁域的最后一位承载了一个显性电平。 备注 如果扩展格式数据帧和标准格式远程帧在总线上发生冲突(如果它们的ID28至ID18全部相同),标准格式数据帧优先。 16.3.2 位填充 如果相同的电平持续5位,位填充利用增加1位反相电平数据来建立同步,以防止突发错误。 表 16-10. 位填充 发送 数据帧或远程帧发送期间,当帧起始和CRC域之间的数据连续5位为相同电平时,在下一位之前插入一个反相电平数据位。 接收 数据帧或远程帧接收期间,当帧起始和ACK域之间的数据连续5位为相同电平时,在删除下一位之后继续接收。 16.3.3 多主机方式 因为总线的优先级(获得发送功能的节点)取决于标识符,因此任何节点都可以作为总线主控。 16.3.4 多播方式 尽管只有一个发送节点,但是两个或更多的节点可以同时接收相同的数据,因为可以为两个或更多的节点设置相同的标识符。 16.3.5 CAN睡眠模式/CAN停止模式功能 CAN睡眠模式/CAN停止模式功能可使CAN控制器进入等待模式,以获得低功耗。 总线操作可以从CAN睡眠模式中唤醒控制器,但是不能从CAN停止模式唤醒控制器(CAN停止模式由CPU存取控制)。 16.3.6 错误控制功能 (1) 错误类型 表 16-11. 错误类型 类型 错误的说明 检测状态 检测方式 检测 条件 发送/ 接收 域/帧 位错误 比较输出电平和总线电平 电平不匹配 发送/ 接收节点 总线上从帧起始输出数据至帧结束、错误帧和过载帧的位 填充错误 检查填充位的接收数据 6个连续相同的输出电平的位 接收节点 帧起始至CRC序列 CRC错误 比较接收数据生成的CRC序列和已接收的CRC序列 CRC不匹配 接收节点 CRC域 格式错误 固定格式的域/帧检查 检测固定格式的破坏 接收节点 CRC 界定符 ACK 域 帧结束 错误帧 过载帧 ACK错误 通过发送节点检查ACK段 检测ACK段的隐性电平 发送节点 ACK段 (2) 错误帧的输出时序 表 16-12. 错误帧的输出时序 类型 输出时序 位错误、填充错误、格式错误、ACK错误 在检测到错误的下一位开始输出错误帧。 CRC错误 在ACK界定符的下一位开始输出错误帧。 (3) 错误情况的处理 发送节点在错误帧之后重新发送数据帧或远程帧(但是,它不在单次模式下重发帧)。 (4) 错误状态 (a) 错误状态的类型 CAN规范定义了下面3种类型的错误状态。 - 错误生成 - 错误既成 - 掉线 通过表 16-13所示的CAN错误计数器寄存器(C0ERC)的TEC7 至 TEC0位(发送错误计数器位)和REC6至REC0位(接收错误计数器位)的值来区分这些错误状态的类型。 当前的错误状态由CAN模块信息寄存器(C0INFO)表示。 当各错误计数器的值等于或大于错误告警电平(96)时,将C0INFO寄存器的TECS0或RECS0位设为1。因为在这种情况下总线被认为具有严重的错误,所以必须测试总线状态。 错误计数器的值为128或更多则表明为错误既成状态,并将C0INFO的TECS1或RECS1位设为1。 - 如果发送错误计数器的值大于或等于256(实际上,发送错误计数器不能表示一个大于或等于256的值),则达到掉线状态并将C0INFO寄存器的BOFF位设为1。 - 如果启动时总线上仅一个节点在使用中(例如,当总线仅连接本机时的特殊的情况下),则即使发送了数据也不返回到ACK。 因此,重复进行错误帧和数据的重新发送。 但是,在错误既成状态下,发送错误计数器不增加且不进入掉线状态。 表 16-13. 错误状态的类型 类型 操作 错误计数器的值 C0INFO 寄存器的表示 给定错误状态具体操作 错误生成 发送 0至95 TECS1, TECS0 = 00 - 检测到错误时输出生成错误标志(6个连续显性电平位)。 接收 0至95 RECS1, RECS0 = 00 发送 96至127 TECS1, TECS0 = 01 接收 96至127 RECS1, RECS0 = 01 错误既成 发送 128至255 TECS1, TECS0 = 11 - 检测到错误时输出既成错误标志 (6个连续隐性电平位)。 - 间断(暂停发送)之后的发送期间发送8个隐性电平位。 接收 128或更大 RECS1, RECS0 = 11 掉线 发送 256 或更大(不显示)注 BOFF = 1, TECS1, TECS0 = 11 - 不能进行通信。 接收帧时不存储报文,但是,会进行以下<1>、<2>和 <3>的操作。 <1> TSOUT切换。 <2> REC增量/减量。 <3> 设置VALID位。 - 如果CAN模块进入初始化模式,然后做出至任何操作模式的转换请求,且当11个连续隐性电平位被检测到128次时,则错误计数器复位为0并可恢复错误生成状态。 注 当BOFF位被设为1时,发送错误计数器(TEC)的值无效。 当计数器的值在248至255范围之间时,如果发生一个会使发送错误计数器的值增8的错误,那么计数器不增加并认定为掉线状态。 (b) 错误计数器 发生错误时,错误计数器向上计数,而当发送和接收成功时向下计数。 检测到错误之后错误计数器立即更新。 表 16-14. 错误计数器 状态 发送错误计数器 (TEC7 至 TEC0) 接收错误计数器 (REC6 至 REC0) 接收节点检测到错误(除了生成错误标志或过载标志的位错误)。 不改变 +1(当REPS 位 = 0时) 接收节点在错误帧的错误标志之后检测到显性电平。 不改变 +8(当REPS 位 = 0时) 发送节点发送一个错误标志。 [作为例外,下列情况下错误计数器不改变] <1> 错误既成状态下检测到ACK错误,而既成错误标志输出期间未检测到显性电平。 <2> 在发送一个隐性电平作为填充位的仲裁域检测到填充错误,反而检测到显性电平。 +8 不改变 输出生成错误标志或过载标志期间检测到位错误(错误生成发送模式) +8 不改变 输出生成错误标志或过载标志期间检测到位错误(错误生成接收模式) 不改变 +8(当REPS 位 = 0时) 当节点从生成错误标志或过载标志开始检测到14个连续显性电平位时,随后检测到8个显性电平位。 在既成错误标志之后检测到8个连续显性电平时。 +8(发送期间) +8(接收期间,当REPS 位 = 0时) 当发送节点无错误的完成发送时(如果错误计数器 = 0,则±0)。 –1 不改变 当接收节点无错误的完成接收时。 不改变 - –1(1 £ REC6 至 REC0 £ 127,当REPS 位 = 0时) - ±0(REC6 至 REC0 = 0,当REPS 位 = 0时) - 设置119 至 255 中的值(当REPS 位 = 1时) (c) 间断时发生位错误 产生一个过载帧。 注意事项 如果发生错误,则根据错误发生之前的发送错误计数器和接收错误计数器的内容控制错误标志输出(生成或既成)。 错误标志输出之后错误计数器的值增加。 (5) 从掉线状态恢复 当CAN模块处于掉线状态时,CAN模块将其输出信号(CTxD)固定不变地设为隐性电平。 CAN模块按照以下的掉线恢复顺序从掉线状态中恢复。 <1> 请求进入CAN初始化模式 <2> 请求进入CAN操作模式 (a) 通过正常恢复顺序恢复操作 (b) 跳过恢复顺序强行恢复操作 (a) 通过正常恢复顺序从掉线状态恢复操作 CAN模块首先产生一个进入初始化模式的请求(参见图16-17中的时序<1>)。 该请求立刻得到应答,并将C0CTRL寄存器的OPMODE位清除为000B。 诸如分析引起掉线状态的错误、使用应用软件重新定义CAN模块和报文缓存器或终止CAN模块的操作等处理,可以通过将GOM位清为0来执行。 接下来,用户请求从初始化模式变为一种操作模式(参见图16-17中的时序<2>)。 这会启动一个将CAN模块从掉线状态恢复的操作。 CAN协议ISO 11898定义了可从掉线状态恢复的条件,并且要求检测11个连续隐性电平位128次以上。 此时,将模式变为一个操作模式的请求被挂起直到满足恢复条件为止。 当满足恢复条件时(参见图16-17中的时序<3>),CAN模块可以进入到它所请求的操作模式。 在CAN模块进入该操作模式之前,它一直处于初始化模式。 通过读取C0CTRL寄存器的OPMODE位可确认已完成所请求的操作模式。 在掉线期间和掉线恢复顺序中,C0INFO寄存器的BOFF位保持设置(为1)。 在掉线恢复顺序中,接收错误计数器(REC[6:0])对总线上检测到11个连续电平位的次数进行计数。因此,可通过读取REC[6:0]检查恢复状态。 注意事项 1 当请求从初始化模式至任意操作模式的发送,以在掉线恢复序列中重新执行掉线恢复序列时,接收错误计数器被清除。 因此,有必要在总线上重新进行128次11个连续隐性位的检查。 2. 在掉线恢复序列中,每检测到11个连续隐性电平位时REC[6:0]向上计数(+1)。 即使在掉线期间,CAN模块也能进入CAN睡眠模式或CAN停止模式。 要开始掉线恢复序列,则有必要转换至初始化模式一次。 但是,如果CAN模块处于CAN睡眠模式或CAN停止模式时,不接收转换至初始化模式的请求,因此必须首先解除CAN睡眠模式。 在这种情况下,只要CAN睡眠模式被解除,就会开始掉线恢复顺序且没必要转换至初始化模式。 睡眠模式下,即使在掉线期间CAN模块在CAN总线上检测到一个显性边沿,将保持睡眠模式并开始掉线恢复顺序。 图 16-17. 通过正常恢复顺序从掉线状态恢复操作 (b) 跳过掉线恢复顺序的强行恢复操作 CAN模块可通过跳过掉线顺序强行从掉线状态中解除,而不考虑总线的状态。 这里给出步骤。 首先,CAN模块请求进入初始化模式。 关于操作和此时应该注意的部分,参见 (a) 通过正常恢复顺序从掉线状态恢复操作。 然后模块请求进入一个操作模式。 同时,必须将C0CTRL寄存器的CCERC位设为1。 于是,跳过由CAN协议ISO 11898定义的掉线顺序,然后模块直接进入操作模式。 这种情况下,在监测到11个连续隐性电平位后该模块连接到CAN总线。 有关详情,参见图 16-56中的处理。 注意事项 CAN协议ISO 11898未定义该功能。当使用该功能时,应彻底估算其对网络系统的影响。 (6) 在初始化模式中将CAN模块错误计数器寄存器(C0ERC)初始化 如果有必要将CAN模块错误计数器寄存器(C0ERC)和CAN模块信息寄存器(C0INFO)初始化来调试或评测程序,可通过在初始化模式下设置C0CTRL寄存器的CCERC位将它们初始化为默认值。 完成初始化之后,CCERC位自动清除为0。 注意事项 1. 该功能仅在初始化模式下允许。 在CAN操作模式下,即使将CCERC位设为1,C0ERC和C0INFO寄存器也不会被初始化。 2. 请求进入CAN操作模式的同时可以设置CCERC位。 16.3.7 波特率控制功能 (1) 预分频器 CAN控制器为CAN提供一个将时钟(fCAN)分频的预分频器。 该预分频器产生一个CAN协议层基础时钟(fTQ),它由CAN模块系统时钟(fCANMOD)经1至256分频后得到(参见16.6 (12) CAN位速率预分频器寄存器(C0BRP))。 (2) 数据位时间(8至25个时间量子) 一个数据位时间按照图 16-18所示定义。 CAN控制器将时间段1、时间段2和重新同步跳转宽度(SJW)设为数据位时间的参数,如图16-18所示。时间段1等于传播段(prop)与CAN协议规范定义的相位段1的总时间。 时间段2等于相位段2。 图 16-18. 段设置 段名称 可设置的范围 设置符合CAN规范的注意事项 时间段 1 (TSEG1) 2TQ至16TQ — 时间段 2 (TSEG2) 1TQ至8TQ CAN控制器的IPT为0TQ。 为了保证CAN协议规范,必须在此设置等于相位段1的长度。 这意味着时间段1减去1TQ为时间段2的可设置范围的上限。 重新同步跳转宽度(SJW) 1TQ至4TQ 时间段1的长度减去1TQ或4TQ,较小的那一个 备注 IPT :信息处理时间 TQ :时间量子 参考: CAN标准ISO 11898规范定义的组成数据位时间的段如图16-19所示。 图 16-19. 参考:由CAN规范所定义的数据位时间的配置 段名称 段长度 说明 Sync 段 (同步段) 1 建立硬件同步时,该段从电平由隐性变为显性的边沿开始 Prop 段 可设计为 1至8,或更长 该段占用输出缓存、CAN总线和输入缓存的延时。 设置该段长度,以便在相位段1开始之前返回ACK。 prop 段的时间(输出缓存的延时) + 2 x (CAN总线的延时) + (输入缓存的延时) 相位段 1 可设计为1至8 该段补偿数据位时间的错误。 该段越长,可允许范围越宽而通信速度越低。 相位段 2 相位段1或IPT较长的那个 SJW 可设计为从1TQ 到1或4TQ段的长度,较短的那个 重新同步期间该宽度为相位段扩展或压缩的上限。 备注 IPT :信息处理时间 TQ :时间量子 (3) 同步数据位 - 因为接收节点没有同步信号,所以它在总线上利用电平的改变建立同步。 - 发送节点与发送节点的位时序同步发送数据。 (a) 硬件同步 当接收节点在帧间间隔检测到帧起始时建立硬件同步。 - 当在总线上检测到下降沿时,TQ表示sync段且下一段为prop段。 这种情况下,不考虑SJW而建立同步。 图 16-20. 总线空闲期间识别显性电平时的硬件同步 (b) 重新同步 如果接收期间在总线上检测到电平改变则重新建立同步(仅当先前采样了一个隐性电平的情况)。 - 边沿的相位错误由检测边沿和sync段的相对位置给出。 <相位错误的符号> 0:如果边沿在sync段内 正:如果边沿在采样点之前(相位错误) 负:如果边沿在采样点之后(相位错误) 如果相位错误为正: 相位段1比指定的SJW长。 如果相位错误为负: 相位段2比指定的SJW短。 - 接收节点的数据采样点随发送节点和接收节点波特率之间的差异而相应移动。 图 16-21. 重新同步 16.4 与目标系统的连接 该微控制器包含一个必须使用外部收发器与CAN总线进行连接的CAN。 图 16-22. 连接至CAN总线 16.5 CAN控制器的内部寄存器 16.5.1 CAN控制器的配置 表 16-15. CAN控制器的寄存器列表 项目 寄存器名称 CAN全局寄存器 CAN 全局控制寄存器(C0GMCTRL) CAN 全局时钟选择寄存器(C0GMCS) CAN 全局自动块传输寄存器(C0GMABT) CAN 全局自动块传输延时寄存器(C0GMABTD) CAN模块寄存器 CAN 模块屏蔽 1 寄存器 (C0MASK1L, C0MASK1H) CAN 模块屏蔽 2 寄存器 (C0MASK2L, C0MASK2H) CAN 模块屏蔽3 寄存器 (C0MASK3L, C0MASK3H) CAN 模块屏蔽 4 寄存器 (C0MASK4L, C0MASK4H) CAN 模块控制寄存器 (C0CTRL) CAN 模块最末错误码寄存器 (C0LEC) CAN 模块信息寄存器 (C0INFO) CAN 模块错误计数器寄存器 (C0ERC) CAN 模块中断使能寄存器 (C0IE) CAN 模块中断状态寄存器 (C0INTS) CAN 模块位速率预分频器寄存器(C0BRP) CAN 模块位速率寄存器(C0BTR) CAN 模块最末入指针寄存器 (C0LIPT) CAN 模块接收记录列表寄存器 (C0RGPT) CAN 模块最末出指针寄存器 (C0LOPT) CAN 模块发送记录列表寄存器 (C0TGPT) CAN 模块时间标记寄存器 (C0TS) 报文缓存寄存器 CAN 报文数据字节 01 寄存器 m (C0MDATA01m) CAN 报文数据字节 0 寄存器 m(C0MDATA0m) CAN 报文数据字节 1 寄存器 m(C0MDATA1m) CAN 报文数据字节 23 寄存器 m(C0MDATA23m) CAN 报文数据字节 2 寄存器 m(C0MDATA2m) CAN 报文数据字节 3 寄存器 m(C0MDATA3m) CAN 报文数据字节 45 寄存器 m(C0MDATA45m) CAN 报文数据字节 4 寄存器 m(C0MDATA4m) CAN 报文数据字节 5 寄存器 m(C0MDATA5m) CAN 报文数据字节 67 寄存器 m(C0MDATA67m) CAN 报文数据字节 6 寄存器 m(C0MDATA6m) CAN 报文数据字节 7 寄存器 m(C0MDATA7m) CAN 报文数据长度寄存器 m(C0MDLCm) CAN 报文配置寄存器 m(C0MCONFm) CAN 报文ID 寄存器 m(C0MIDLm, C0MIDHm) CAN 报文控制寄存器 m(C0MCTRLm) 备注 m = 0 至 15 16.5.2 寄存器访问类型 表 16-16. 寄存器访问类型 (1/9) 地址 寄存器名称 符号 R/W 位操作单元 默认值 1 8 16 FA00H CAN0 报文数据字节 01 寄存器 00 C0MDATA0100 R/W Ö 未定义 FA00H CAN0 报文数据字节 0 寄存器 00 C0MDATA000 Ö 未定义 FA01H CAN0 报文数据字节 1 寄存器 00 C0MDATA100 Ö 未定义 FA02H CAN0 报文数据字节 23 寄存器 00 C0MDATA2300 Ö 未定义 FA02H CAN0 报文数据字节 2 寄存器 00 C0MDATA200 Ö 未定义 FA03H CAN0 报文数据字节 3 寄存器 00 C0MDATA300 Ö 未定义 FA04H CAN0 报文数据字节 45 寄存器 00 C0MDATA4500 Ö 未定义 FA04H CAN0 报文数据字节 4 寄存器 00 C0MDATA400 Ö 未定义 FA05H CAN0 报文数据字节 5 寄存器 00 C0MDATA500 Ö 未定义 FA06H CAN0 报文数据字节 67 寄存器 00 C0MDATA6700 Ö 未定义 FA06H CAN0 报文数据字节 6 寄存器 00 C0MDATA600 Ö 未定义 FA07H CAN0 报文数据字节 7 寄存器 00 C0MDATA700 Ö 未定义 FA08H CAN0 报文数据长度码寄存器 00 C0MDLC00 Ö 0000xxxxB FA09H CAN0 报文配置寄存器 00 C0MCONF00 Ö 未定义 FA0AH CAN0 报文 ID 寄存器 00 C0MIDL00 Ö 未定义 FA0CH C0MIDH00 Ö 未定义 FA0EH CAN0 报文控制寄存器 00 C0MCTRL00 Ö 00x00000 000xx000B FA10H CAN0 报文数据字节 01 寄存器 01 C0MDATA0101 Ö 未定义 FA10H CAN0 报文数据字节 0 寄存器 01 C0MDATA001 Ö 未定义 FA11H CAN0 报文数据字节 1 寄存器 01 C0MDATA101 Ö 未定义 FA12H CAN0 报文数据字节 23 寄存器 01 C0MDATA2301 Ö 未定义 FA12H CAN0 报文数据字节 2 寄存器 01 C0MDATA201 Ö 未定义 FA13H CAN0 报文数据字节 3 寄存器 01 C0MDATA301 Ö 未定义 FA14H CAN0 报文数据字节 45 寄存器 01 C0MDATA4501 Ö 未定义 FA14H CAN0 报文数据字节 4 寄存器 01 C0MDATA401 Ö 未定义 FA15H CAN0 报文数据字节 5 寄存器 01 C0MDATA501 Ö 未定义 FA16H CAN0 报文数据字节 67 寄存器 01 C0MDATA6701 Ö 未定义 FA16H CAN0 报文数据字节 6 寄存器 01 C0MDATA601 Ö 未定义 FA17H CAN0 报文数据字节 7 寄存器 01 C0MDATA701 Ö 未定义 FA18H CAN0 报文数据长度码寄存器 01 C0MDLC01 Ö 0000xxxxB FA19H CAN0 报文配置寄存器 01 C0MCONF01 Ö 未定义 FA1AH CAN0 报文 ID 寄存器 01 C0MIDL01 Ö 未定义
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服