ARM技术论坛
直播中

发生的方式

8年用户 1229经验值
擅长:处理器/DSP
私信 关注
[资料]

SOC芯片之寄存器外设地址集合资料介绍

1、SOC寄存器外设地址集合

之前,说明了,当外部需要增加寄存器的时候,需要更改总线互联模块。在总线互联模块中对于读数据和使能信号是每一个寄存器都有一个连线和总线互联模块相连的,如果寄存器比较少,似乎是没有什么问题。但是如果外接的寄存器有几千,几万个呢?那这一块的电路可真是不敢想象了,基本上做不出来,因为要做出来的话,面积太大了,你想象一下,一个多路选择器,有几千几万个输入,这怎么实现?

所以真正的SOC,肯定不能像我们之前说的那样设计,一个寄存器一个寄存器的考虑,而是要考虑整体。我们知道,SOC要驱动的其实是一个模块,比如串口模块,SDRAM模块,SPI模块等等。但是要驱动模块的话,是要去控制模块的寄存器。所以这个时候,使能信号不考虑给模块的每个寄存器,只考虑给模块,同样,读数据也是一样的,不考虑只给模块的每个寄存器,只考虑模块。按照这个思路下来,那使能信号电路和读数据电路是不是就要好设计了一些,因为一个SOC,模块就那么多,总线互联译码设计就比较容易了。那么怎么对对应的寄存器操作了,这个就交给模块自己来做就行了。

总线互联模块通过CPU发出的地址,判断该地址是属于哪个模块的,然后将对应模块的使能信号使能,将读数据选择连接到模块的读取数据线。模块检测有模块使能信号时,再根据CPU发出的地址信号,判断是对自己的哪一个寄存器进行操作,然后再进行操作。这样,就简化了总线互联的设计。

原作者:卢骏

更多回帖

发帖
×
20
完善资料,
赚取积分