通过LBU访问连续的32位页需要考虑什么?

介绍:
在 ERTEC 200/400 中,必须访问一些连续的32位存储内存区。

这些内存区包括:

  • 32位定时器
  • IRT寄存器
  • 系统控制寄存器

一个外部的主机只能通过16位的LBU接口进行数据访问, 在读写32位连续内存区时需通过下面方式:

  • 读连续的32位:
    当读32位数值低位字地址时, 低的16位数据(D15:0) 被传送到主机系统,高的16位数据(D31:16) 被存在一个离散区域中,当读32位数值高位地址时, 高的16位数据(D31:16) 从离散区域传递到主机系统中。
  • 写连续的32位:
    当写32位数值低位字地址时, 低的16位数据(D15:0) 通过LBU接口被存在一个离散区域中. 当写32位数值的高位字地址时, 高的16位数据(D31:16) 连同存在离散区域中低的16位数据(D15:0)作为在所选的ERTEC 200/400 内存区中一个连续的32位数被存储。

注意:
在上面两种情况下, 一个32位字必须在LBU页组态寄存器(LBU_PN_CFG)中被组态为相应的页.

使用方法:

  • 一次或多次向低16位数据区写值
  • 数据被存储在离散区域中,而不是储存在所选择的数据区中.
  • 一次或多次向高16位数据区写值
  • 32位数据被写入内存区时仅仅高16位(D31:16)被正确写入 . 低的16位数据(D15:0) 被存储在离散区域中的数据覆盖.
  • 一次或多次读数据区低16位数值
    32位数被连续地读. 低的16位数据(D15:0) 通过LBU接口被传送到主机系统中.高的16位数据 (D31:16) 被存在离散区域中. 32位数据的连续性不能被保证.
  • 一次或多次读数据区低16位数值
  • 存在离散区域中的数据被传递到主机中.
  • 一个字节一个字节的读写
    对连续内存区一个字节一个字节的读写是没有意义的.因为内存区被直接的读写不能保证数据的连续性。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc335495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论