3 RAM时序控制模块
RAM控制器接口主要用于实现RAM的基本操作时序,如充电(刷新)时序、模式设置时序、读写时序等。读写命令由主控模块发出,由控制器具体执行。系统采用Hy—nix公司的HY57V561620F(L)T(P),可实现256 Mb的大容量数据存储。
时序控制器由一个有限状态机(FSM)实现,其状态转换图如图3所示。加电复位200μs后,对RAM的所有块进行预充电,充电操作的引脚电平如表1所列。充电完成后经tRP刷新所有块,延迟tRFC后进入模式设置状态。在模式设置状态中,需要对RAS延迟、突发长度等进行设置,延迟tMRD后进入空闲状态,等待主控单元的读写命令。在空闲状态中,每隔64 ms需要对RAM中所有行刷新。在本设计中定时刷新模块设计成一个计数器,计数脉冲选自控制器本身的时钟。由于RAM要求两次刷新的最大时间间隔不超过64 ms,假设系统的时钟频率为1O0MHz,则时钟周期约为0.01μs,并且要在64 ms内要完成全部8 192行的刷新,所以最大计数应该为781次(64 ms/8192/0.01μs)。系统采用700次的计数脉冲产生刷新请求。
RAM控制器的读写地址与读写控制信号均由主控单元产生,主控单元结构框图如图4所示。PLL用于产生RAM控制器和缓冲区的时钟(系统设计为100 MHz);CMD命令解析模块实现对上位机发送过来的命令解析并产生相应的控制信号,如CMOS传感器控制、RAM突发长度控制等。为了降低读写RAM的频率,系统设计了一个8×16位的FIFO。当8个像素的数据存入FIFO后,FIFO向RAM控制器发送写请求(W_req);与此同时,写地址发生器产生写地址,由RAM控制器产生写数据的时序。读写地址发生器是一个递增的计数器,每次的读写地址是上次的地址加BL(突发长度)。由于PCLK的最高频率可达9.2 MHz(640×480×30),而RAM的时钟频率是100 MHz,每次写入一个像素的数据需要5个时钟周期(考虑RAS延迟),这样写操作耗费整个时钟周期的50%;加入FIF0后,读写的突发长度均是8,可降低耗费的时钟周期至10%左右。
4 EZ—USB传输控制器
CY7C68013是Cypress公司的EZ—USB FX2系列芯片,引脚连接图如图5所示。该系列芯片集成了USB2.O收发器、串行接口引擎(SIE)、带8.5 KB片上RAM的增强型8501、16 KB的RAM、4 KB的FIFO存储器、I/O口、数据总线、地址总线和通用可编程接口(GPIF);共有3种接口模式——端口模式、从属FIFO接口模式和GPIF接口模式。在端口模式下,所有I/O引脚都可作为805l的通用I/O口,作为最基本的数据传输模式,其数据传输主要由固件程序完成,需要CPU的参与,因此数据传输速率比较低。在从属FIFO接口模式下,外部逻辑或外部处理器可以直接与FX2端点FIFO相连。GPIF接口模式使用PORTB和PORTD构成通向4个FX2端点FIF0(EP2、EP4、EP6和EP8)的16位数据接口。GPIF作为内部的主控制器与FIFO直接相连,并产生用户可编程的控制信号与外部接口进行通信。后两种模式数据的传输通过执行USB本身的协议来完成,微处理器不参与数据传输,从而使数据的传输速率大大地提高。