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所示。
《USB2.0设备控制器IP核的AHB接口技术》相关文章
- › 基于USB2.0的轨道电路信号车载采集与分析系统
- › USB2.0接口PC TV MicStickD参考设计
- › USB2.0设备控制器IP核的AHB接口技术
- › 基于USB2.0的高速图像传输系统设计
- › 基于USB2.0的红外数据传输系统的设计与实现
- › USB2.0摄像头微处理器硬件设计及外围电路分布
- 在百度中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在谷歌中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在soso中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在搜狗中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术