USB2.0设备控制器IP核的AHB接口技术

[09-13 16:54:05]   来源:http://www.88dzw.com  接口定义   阅读:8603

文章摘要:② SLV,负责接收AHB上的读写请求,控制AHB Slave的时序。③ DEC,地址译码模块,根据AHB地址译码产生寄存器选中信号或缓冲写信号。④ MUX,DPRAM和寄存器输出的多选一模块,包括USB端寄存器输出。⑤ INT,总中断产生模块。综合USB端的中断申请,产生总中断信号和总中断向量。⑥ REG,ARM配置的寄存器组模块。图1 AHB接口模块框图2.2 SLV模块设计SLV模块处理AHB时序,主要功能是根据AHB地址和控制信号,产生对缓存的读写、地址信号;支持猝发传输的提前结束和插入BUSY周期。SLV模块不需要使用RETRY/SPLTT功能来干预AHB仲裁器的仲裁。

USB2.0设备控制器IP核的AHB接口技术,标签:接口技术,微机原理与接口技术,http://www.88dzw.com

  ②  SLV,负责接收AHB上的读写请求,控制AHB Slave的时序。

  ③  DEC,地址译码模块,根据AHB地址译码产生寄存器选中信号或缓冲写信号。

  ④  MUX,DPRAM和寄存器输出的多选一模块,包括USB端寄存器输出。

  ⑤  INT,总中断产生模块。综合USB端的中断申请,产生总中断信号和总中断向量。

  ⑥  REG,ARM配置的寄存器组模块。



  图1  AHB接口模块框图

  2.2  SLV模块设计

  SLV模块处理AHB时序,主要功能是根据AHB地址和控制信号,产生对缓存的读写、地址信号;支持猝发传输的提前结束和插入BUSY周期。SLV模块不需要使用RETRY/SPLTT功能来干预AHB仲裁器的仲裁。这是因为IP中有用于缓存的DPRAM,并且处于USB设备端,在AHB总线看来,IP在接受AHB IN/OUT操作前都已经做好准备,不存在不能接收AHB操作的情况。

  Slave状态转换如图2所示。Slave状态机是AHB Slave设计的关键。hready_in和hsel同时为高时,SLV才能采样地址和控制信号。



  图2  Slave状态转换图

  对于写操作,当收到N*EQ时,先存储地址信息,在下一周期收到hwdata后同时发对缓冲的写信号、写地址、写数据。遇到BUSY周期进入HS_WRBUSY状态,等待下次写操作。

  对于读操作,当收到N*EQ时,先采样地址信息,判断是否正确,再发读信号和读地址,这需要一个周期。一个周期后从缓冲收到读数据,还要通过一级寄存器后才能发到AHB总线上。所以SLV处理AHB读操作需要3个周期预读取数据,加入HS_RDSTART1、HS_RDSTART2、HS_RDSTART3状态,拉低hready_out,等待读数据。因为每个端点只有1个AHB地址,如果SLV一直对同一个端点进行传输,则可以使用预读取数据,保持流水,提高数据传输效率。遇到BUSY周期进入HS_RDBUSY状态,有专门寄存器存储预读数据,等待后面读操作中使用。

  SLV只支持WORD(32位)传输,但是USB是以字节为单位的。解决的办法是寄存器组REG中对每个端点都有一个DMA长度寄存器,ARM写入多事务数据的长度,精确到字节, IP知道数据的字节数,而AHB上只以WORD为单位传输。这样做还有个目的是简化外部DMA控制的操作,一次连贯的DMA只需ARM配置一次。否则,传输非WORD的数据可能要ARM特殊处理。

  SLV有检错机制,当读写地址操作端点缓冲边界或进行非WORD传输时,SLV认为出错,先后进入HS_ERR1、HS_ERR2状态,进行2周期的AHB错误回应。

  AHB中的1 KB地址边界检查是由AHB Master保证的,Slave不作检查。

  2.3  其他模块设计

  DPRAM控制部分对每个端点有一个busy信号和hbuf信号。当busy为0时,表示端点控制权在AHB端;否则,在USB端。hbuf信号为0表示端点使用缓冲区0,否则使用缓冲区1。对于OUT端点,busy为0表示缓冲中有USB OUT数据,需要DMA传输;对于IN端点,busy为0表示缓冲空闲,可以接收DMA IN数据。所以CTRL模块接收这两组信号,以hbuf指示的busy信号为0作为端点的对外部DMA控制器的申请,同时需要打开相关DMA使能。这还需要外部DMA控制器支持多个DMA申请。

  ARM往DMA长度寄存器写入多事务数据的长度,当Slave传输了此长度的数据后,向ARM报DMA结束中断。这样可以不依赖外部DMA控制器,IP自己硬件减少块DMA传输中断数,否则一般会每次事务报一次中断。

  其余模块实现的功能都不复杂,都是简单的逻辑控制。

  2.4  同步器设计[6]

  需要同步的信号分两种,单周期高电平有效和多周期高电平有效,要不同处理。

  对单周期高电平有效信号,如果从快时钟域到慢时钟域,可能寄存器采不到信号,需要先延长源信号的高电平,等采到后再拉底;而目标时钟域中通过两级寄存器同步,使平均出错频率变为大约100年一次,最后再用上升沿检测电路使其只保持一个慢周期高电平。具体电路如图3所示。

上一页  [1] [2] [3]  下一页


Tag:接口定义接口技术,微机原理与接口技术接口定义
分类导航
最新更新
热门排行