毕业设计论文-基于单片机和can总线的企业现场信息监控系统--智能节点部分内容摘要:

数字通知 BSP 和 IML。 SJA1000 的引脚介绍 SJA1000 为 28 引脚 DIP 和 SO 封装,引脚如图 所示。 引脚功能介绍如下。 AD7~ AD0:地址 /数据复用总线。 ALE/AS: ALE 输入信号( Intel 模式), AS 输入信号( Motorola 模式)。 /CS:片选输入,低电平允许访问 SJA1000。 /RD /E:微控制器的 /RD 信号( Intel 模式)或 E 使能信号( Motorola 模式)。 /WR:微控制器的 /WR 信号( Intel 模式) 或 RD/ /WR 信号( Motorola 模式)。 CLKOUT: SJA1000 产生的提供给微控制器的时钟输出信号;时钟信号来源于内部振 荡器且通过编程驱动;时钟控制寄存器的时钟关闭位可禁止该引脚。 VSS1:接地端。 XTAL1:振荡器放大电路输入,外部 振荡信号由此输入。 XTAL2:振荡器放大 电路输出,使用 外部振荡信号时,此引脚必须保持开路。 MODE:模式选择输入。 1 Intel 模式; 0 Motorola 模式。 VDD3:输出驱动的 5V 电压源。 TX0:从 CAN 输出驱动器 0 到 物理线路的输出端。 图 SJA1000 引脚图 TX1:从 CAN 输出驱动器 1 到物理线路的输出端。 VSS3:输出驱动器接地端。 /INT:中 断输出,用于中断微控制器; /INT 在内部中断寄存器各位都被置位时低电平有效; /INT 是开漏输出,且与系统中的其它 /INT 是线或的;此引脚上的低电平可以把芯片从睡眠模式中激活。 /RST:复位输入,用于复位 CAN 接口(低电平有效);把 /RST 引脚通过电容连到 VSS,通过电阻连到 VDD 可自动上电复位(例如, C 1μ F; R 50kΩ)。 VDD2:输入比较器的 5V 电压源。 RX0, RX1:从物理总线输入到 SJA1000 输入比较器的输入端;显性电平将会唤醒 SJA1000 的睡眠模式;如果 RX1 比 RX0 的电平高,就读 出为显性电平,反之读出为隐形电平;如果时钟分频寄存器的 CBP 位被置位,就忽略 CAN 输入比较器以减少内部延时(此时连有外部收发电路);这种情况下只有 RX0 是激活的;隐形电平被认为是高,而显性电平被认为是低。 VSS2:输入比较器的接地端。 VDD1:逻辑电路的 5V 电压源。 SJA1000 的应用说明 SJA1000 在软件和引脚上都是与它的前一款―― PCA82C200 独立 CAN 控制器兼容的。 在此基础上它增加了很多新的功能。 为了实现软件兼容, SJA1000 增加修改了两种不同的工作 模式: ??BasicCAN 模式:与 PCA82C200 兼容。 ??PeliCAN 模式:扩展特性。 工作模式通过时钟分频寄存器中的 CAN 模式位来选择,复位后默认模式是BasicCAN 模式。 在 PeliCAN 模式下, SJA1000 有一个含很多新功能的重组寄存器。 SJA1000 包含了设计在 PCA82C200 中的所有位及一些新的功能位。 PeliCAN 模式支持 CAN 协议规定的所有功能。 SJA1000 的主要新功能: 1.标准帧和扩展帧信息的接收和传送。 2.接收 FIFO( 64 个字节)。 3.用于标准帧和扩展帧的 单 /双验收滤波器(含屏蔽和代码寄存器)。 4.读 /写访问的错误计数器。 5.可编程的错误限制报警。 6.最近一次的误码寄存器。 7.对每一个 CAN 总线错误的错误中断。 8.仲裁丢失中断以及详细的位位置。 9.一次性发送(当错误或仲裁丢失时不重发)。 10.只听模式( CAN 总线监听,无应答,无错误标志)。 11.支持热插(无干扰软件驱动位速检测)。 12.硬件禁止 CLKOUT 输出。 PeliCAN 地址分配 CAN 控制器的内部寄存器对 CPU 来说是内部在片存储器。 因为 CAN 控制器可以工作于不同模式(操作 /复 位),所以必须要区分两种不同内部地址的定义。 从 CAN 地址 32 起所有的内部 RAM( 80 字节)被映像为 CPU 的接口。 PeliCAN 地址分配如表 所示。 特别指出的是:在 CAN 的高端地址区的寄存器是重复的,CPU8 位地址的最高位不参与解码。 CAN 地址 128 和地址 0 是连续的。 表 PeliCAN 模式 CAN 地址分配列表 CAN 地址 工作模式下的寄存器 复位模式下的寄存器 读 写 读 写 0 模式 模式 模式 模式 1 00H 命令 00H 命令 2 状态 状态 3 中断 中断 4 中断使能 中断使能 中断使能 中断使能 5 保留 00H 保留 00H 6 总线定时 0 总线定时 0 总线定时 0 7 总线定时 1 总线定时 1 总线定时 1 8 输出控制 输出控制 输出控制 9 检测 检测 检测 检测 10 保留 00H 保留 00H 11 仲裁丢失捕捉 仲裁丢失 捕捉 12 错误代码捕捉 错误代码 捕捉 13 错误报警限制 错误报警 限制 错误报警 限制 14 RX 错误计数器 RX 错误 计数器 RX 错误 计数器 15 TX 错误计数器 报文 TX 错误 计数器 TX 错误 计数器 16 RX 帧 报文 SFF RX 帧 报文 EFF TX 帧 报文 SFF TX 帧 报文 EFF 验收代码 0 验收代码 0 17 RX 标识码 1 RX 标识码 1 TX 标识码 1 TX 标识 码 1 验收代码 1 验收代码 1 18 RX 标识码 2 RX 标识码 2 TX标识码 2 TX 标识 码 2 验收代码 2 验收代码 2 19 RX 数据 1 RX 标识码 3 TX 数据 1 TX 标识 码 3 验收代码 3 验收代码 3 20 RX 数据 2 RX 标识码 4 TX 数据 2 TX 标识码 4 验收屏蔽 0 验收屏蔽 0 21 RX 数据 3 RX 数据 1 TX 数据 3 TX 数据 1 验收屏蔽 1 验收屏蔽 1 22 RX 数据 4 RX 数据 2 TX数据 4 TX 数据 2 验收屏蔽 2 验收屏蔽 2 23 RX 数据 5 RX 数据 3 TX数据 5 TX 数据 3 验收屏蔽 3 验收屏蔽 3 24 RX 数据 6 RX 数据 4 TX数据 6 TX 数据 4 保留 00H 25 RX 数据 7 RX 数据 5 TX 数据 7 TX 数据 5 保留 00H 26 RX 数据 8 RX 数据 6 TX 数据 8 TX数据 6 保留 00H 27 FIFO RAM RX 数据 7 TX 数据 7 保留 00H 28 FIFO RAM RX 数据 8 TX 数据 8 保留 00H 29 RX 信息计数器 30 RX 缓冲器起始地址 31 时钟分频器 时钟分频器 时钟分频器 时钟分频器 SJA1000 的地址区包括控制段和信息缓冲区。 控制段在初始化载入时可被编程来配置通讯参数。 微控制器也是通过这个段来控制 CAN 总线上的通讯的。 微控制器和 SJA1000 之间状态、控制和命令信号的交换都是在控制段中完成的。 初始载入后,寄存器的验收代码、验 收屏蔽、总线定时寄存器 0 和总线定时寄存器 1 以及输出控制就不能改变了。 只有控制寄存器的复位请求位被置 1 时,才可以访问这些寄存器。 SJA1000 有两种不同的模式:复位模式和工作模式,在这两种模式中访问的寄存器是不同的。 当硬件复位或 CAN 控制器掉线时会自动进入复位模式;工作模式是通过复位控制寄存器的复位请求位激活的。 CAN控制寄存器的内部寄存器对 CPU来说是以外部寄存器形式存在而作片内内存使用。 因为 CAN 控制器可以工作于不同的模式(工作 /复位),所以必须区分不同的内部地址定义。 SJA1000 寄存器 在整个系 统中, CAN 控制器 SJA1000 是系统的核心器件,它负责报文的打包发送, SJA1000 之所以能完成复杂的功能,主要归功于其内部大量分工合作的寄存器,下面根据设计需要,简要的介绍所使用的寄存器。 ( MOD) 模式寄存器的内容是用来改变 CAN 控制器的行为方式的。 CPU 把控制寄存器作为读 /写寄存器, CPU 可以设置这些位。 保留位读出值为逻辑 0。 模式寄存器功能表如表 所示。 表 模式寄存器( CAN 地址 0) 位 符号 名称 值 功能 保留 保留 保留 SM 睡眠模式 1 睡眠:没有 CAN 中断等待和总线活动时, CAN 控制器进入睡眠模式 0 唤醒:从睡眠状态唤醒 AFM 验 收 滤 波器 模 式 1 单:选择单个验收滤波器 32 位长度 0 双:选择两个验收滤波器(每个有 16 位激活) STM 自检测模式 1 自检测:此模式可以检测所有节点,没有任何活动的节点使用自接收命令;即使没有应答,CAN 控制器也会成功发送 0 正常模式:成功发送时必需应答信号 LOM 只听模式 1 只 听:这种模式中,即使成功接收信息,CAN 控制器也不向总线发应答信号;错误计数器停止在当前值 . 0 正常模式 RM 复位模式 1 复位:检测到复位模式位被置位,中止当前正在接收 /发送的信息,进入复位模式 0 正常:复位模式位接收到‘ 10’的跳变后, CAN 控制器回到工作模式 寄存器( CMR) 命令寄存器中的一个命令位启动 CAN 控制器传输层的工作,这个寄存器是只写的。 因处理的需要,两条命令之间至少有一个内部时钟周期。 内部时钟周期的频率是外部振荡器的一半。 命令寄存器功能表如 表 所示。 表 命令寄存器( CAN 地址 1) 位 符号 名称 值 功能 保留 保留 保留 SRR 自接收请求 1 当前:信息可被同时发送和接收 0 空缺 CDO 清除数据溢出 1 清除:数据溢出状态位被清除 0 无动作 RRB 释放接收缓冲器。 1 释放:接收缓冲器 FXFIFO 中载有信息的内存空间被释放 0 无动作 AT 中止发送 1 当前:如果不是 正在处理,等待中的发送请求被取消 0 空缺 TR 发送请求 1 当前:信息被发送 0 空缺 ( SR) 状态寄存器反映 CAN控制器的状态。 状态寄存器对 CPU来说是只读的存储器。 状态寄存器各位的功能如表 所示。 表 状态寄存器( CAN 地址 2) 位 符号 名称 值 功能 BS 总线状态 1 总线关闭:CAN 控制器不参与总线活动 0 总线开启: CAN 控制器参与总线活动 ES 出错状态 1 出错:至少一个错误计数器满或超过 了由错误报警限制寄存器 EWLR 定义的 CPU 报警限制 0 OK:两个错误计数器都在报警限制以下 TS 发送状态 1 发送; CAN控制器正在发送信息 0 空闲 RS 接收状态 1 接收: CAN 控制器正在接收信息 0 空闲 TCS 发送完毕状态 1 完毕:最后一次发送已被成功处理 0 未完:当前请求的发送未处理完 TBS 发 送 缓 冲器 状 态 1 释放: CPU 可以向发送缓冲器中写信息 0 锁定: CPU不能访问发送缓冲器;信息不是 在 等待发送也不是正在发送 . DOS 数据溢出状态 1 溢出:信息因 RXFIFO 中无足够的存储空间而丢失 0 空缺:自从上一次执行清除数据溢出命令以来无数据溢出发生 RBS 接 收 缓 冲器 状 态 1 满: RXFIFO 中有可用信息 0 空:无可用信息 ( IR) 中断寄存器允许中断源的识别。 当这个寄存器的一位或多位被置位时, CAN中断将反映到 CPU。 CPU 读此寄存器的时候,除了接收中断外的所有位都被复位。 中断寄存器对 CUP 来说是只读存储器。 ( IER) 对这个寄存器进行设置,能允许或禁止不同类型的中断源产生中断。 这个寄存器对 CPU 来说是可读 /写的存储器。 /接收缓冲器( TXB/RXB) SFF)。 发送缓冲器和接收缓冲器列表是相匹配的。 表 TX/RX 帧信息( SFF, CAN 地址 16) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 FF 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。