接口/总线/驱动
实现一个在ARM中通过APB总线连接的UART模块(Universal Asynchronous Receiver/Transmitter),包括设计与验证两部分。
uart框架
AMBA
AMBA总线是ARM研发的高级微控制器总线体系(Advanced Microcontroller Bus Architecture),定义了在设计高性能嵌入式微控制器时的一种片上通信标准。AMBA2.0定义了三种不同的总线:AHB、ASB、APB。
AMBA典型系统
典型的基于AMBA的微控制器由一个高性能系统中枢总线(AHB或者ASB)组成,能够支持高带宽外部存储器,包括CPU,片上存储器和其他直接数据存取(DMA)设备。这条总线为上述单元之间大多数的传输提供高带宽接口。在这条高性能总线上也有一个桥接器以连接低带宽的APB,而在APB上连接着大多数的系统外设。
APB
PCLK (input):APB总线的时钟,所有的传输都和它的上升沿同步。
PRESETn (input):APB总线的复位信号,低有效。
PADDR (input):APB的地址总线。
PSELx (input):APB模块的选择信号,高有效。这个信号选择需要和APB总线传输数据的模块。
PENABLE (input):APB模块的触发信号,标志APB传输的第二个时钟周期。
PWRITE (input):APB总线上的写(高有效),读(低有效)信号。
PWDATA (input):APB总线的写数据信号,由APB总线桥来驱动。
PRDATA (output):APB总线的读数据信号,由APB模块来驱动。
说明:
- APB总线的传输需要两个时钟周期
- input,output是相对APB模块(slave)的输入,输出信号
- “写”操作是将数据从APB总线传输到APB模块,“读”操作是将数据从APB模块传输到APB总线
apb状态图
PADDR,PWRITE,PSEL,PWDATA信号有效时刻相同
如果只有一个“写”操作,上述信号只持续两个周期。
如果有多个“写”操作(如Burst方式),PWRITE,PSEL可以保持不变,PADDR,PWDATA每两个周期改变。
PENABLE信号在PSEL有效之后一个周期有效,持续一个周期。
如果有多个“写”操作,PENABLE信号在每两个周期内,保持一个周期低电平,一个周期高电平
apb写操作时序图
PADDR,PWRITE,PSEL信号有效时刻相同
如果只有一个“读”操作,上述信号只持续两个周期。
如果有多个“读”操作(如Burst方式),PWRITE,PSEL可以保持不变,PADDR每两个周期改变。
PENABLE信号在PSEL有效之后一个周期有效,持续一个周期。
如果有多个“读”操作,PENABLE信号在每两个周期内,保持一个周期低电平,一个周期高电平
APB模块需要在PENABLE有效的时刻,将“读”操作需要的数据送到APB总线上,并保持一个周期。
apb读操作时序图
全部0条评论
快来发表一下你的评论吧 !