数据存储器构成-5g和mec在工业互联网中的应用探讨
5.3 数据存储器构成 PIC18 器件中的数据存储器是用静态 RAM 实现的。在 数据存储器中,每个寄存器都有 12 位地址,允许数据存 储器实现为 大4096个字节。存储空间 多被分为16个 存储区,每个存储区包含 256 个字节。图5-5至5-7 给出 了 PIC18(L)F2X/4XK22 器件的数据存储器构成。 数据存储器由特殊功能寄存器(Special Function Register, SFR)和通用寄存器(General Purpose Register,GPR)组成。SFR 用于单片机和外设功能模 块的控制和状态指示,GPR 则用于用户应用程序的数据 存储和中间结果暂存。任何未实现的存储单元均读为0。 这样的指令集和架构支持跨所有存储区的操作。可以通 过直接、间接或变址寻址模式访问整个数据存储器。本 章后面的部分将讨论寻址模式。 为确保能在一个周期中访问常用寄存器(SFR 和某些 GPR),PIC18 器件实现了一个快速操作存储区。该存储 区是一个 256字节的存储空间,它可实现对SFR和GPR Bank 0 的低地址单元的快速访问,而无需使用存储区选 择寄存器(Bank Select Register, BSR)。第 5.3.2 节 “快速操作存储区”提供了对于快速操作RAM的详细说明。 5.3.1 存储区选择寄存器 (BSR) 容量较大的数据存储器需要高效的寻址机制,以便对所 有地址进行快速访问。理想状况下,这意味着不必为每 次读写操作提供完整地址。 PIC18 器件是使用 RAM 存 储区分区机制实现快速访问的。这种机制将存储空间分 成连续的 16 个 256 字节的存储区。根据不同的指令, 可以通过完整的 12 位地址,或通过 8 位的低字节地址 和 4 位存储区指针直接寻址每个存储单元。 PIC18 指令集中的大部分指令都使用存储区指针,也就 是存储区选择寄存器(BSR)。SFR 保存单元地址的高 4 位,而指令本身则包括单元地址的低 8 位。只使用 BSR 的低 4 位(BSR<3:0>),不使用高 4 位;高 4 位 总是读为 0 且不能被写入。可以通过使用 MOVLB 指令 直接装入 BSR。 BSR的值代表数据存储器中的存储区;指令中的8位指 向存储区中的存储单元,可以将它看作距离存储区下边 界的偏移量。图5-5至5-7显示了 BSR 的值与数据存储器 中的存储区之间的关系。 由于 多可有 16 个寄存器共享同一个低位地址,用户 必须非常小心以确保在执行数据读或写之前选择了正确 的存储区。例如,当 BSR 为 0Fh 时将程序数据写入地 址为F9h的8位地址单元,这将导致程序计数器被复位。 当选择存储区时,只有已实现的存储区才可以读写。对 未实现的存储区进行的写操作将被忽略,而读这些存储 区会返回 0。虽然是这样,这些操作仍然会对 STATUS 寄存器起作用,就好像操作成功了一样。图5-5至5-7中 的数据存储器映射指出了已实现的存储区。 在核心 PIC18 指令集中,只有 MOVFF 指令指定源寄存 器和目标寄存器的完整 12 位地址。该指令在执行时完 全忽略 BSR。所有其他指令仅包含作为操作数的低位地 址,而且必须使用 BSR 或快速操作存储区来寻址目标 寄存器。 注: 当使能了 PIC18 扩展指令集时,数据存储 器某些方面的操作会有所改变。更多信 息,请参见第 5.5 节“数据存储器和扩展 指令集”。DS41412D_CN 第 76 页 初稿 2011 Microchip Technology Inc.
- 粉丝: 20
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助