3.初始化CPU堆栈Initstack(源代码略)
3.2 FPGA内部的功能模块
图4为FPGA内部的功能模块图。FPGA将ARM传送过来的信号包括灰度数据(DATA)、系统时钟(CLK)、帧同步信号(VSYNC)、行同步信号(HSYNC)、片选信号(CS2)和写信号(WRITE)送入存储器切换电路,存储器切换电路将图像数据(DAIA)分时送到静态存储器SRAM1和静态存储器SKAM2进行存储。SRAM1和SRAM2工作在交替读写状态,即向一片SRAM写人数据的同时,从另一片SRAM中读出数据;静态存储器的读写状态由系统时钟、帧同步、行同步以及片选信号来控制。读地址发生器用于计算所需数据信息在存储器中存储的地址,以便保证LED大屏幕的正确显示,它是由移位时钟来控制产生15位读地址信号,移位时钟信号的工作频率为4 MHz。读地址发生器产生的读地址信号在移位时钟的作用下,产生4个分区锁存信号,4个分区的显示数据同时送人屏体,只有当锁存信号有效时,才点亮显示屏。从SRAM读出的灰度数据DAIA送入灰度值发生器,并根据屏体显示结构进行数据重组,转化成LED显示屏要求的上屏数据信号(红、绿、蓝灰度数据)。三色的上屏数据送入串行发送数据寄存器,并在移位时钟的作用下串行发送至屏体。在将一片SRAM中的数据转换后上屏的同时,通知微处理器发送下一屏数据。此外,ARM还发送两位亮度控制信号COMM0、COMM1和亮度数据信号COMM2。串行发送的亮度数据信号进入8位串并转换电路,在COMM0、COMM1的控制下,产生亮度信号。
4 仿真及系统验证
使用ModelSim仿真用VHDL编写的扫描驱动电路波形如图5。从图5可知,从ARM接收到的数据data(01010101)存入到外部扩展的存储器SRAM2,m2ma是存储器2的地址线,它根据控制信号(tp1,tp2,cs2,swite)的控制作用连续增加;cm2d是存储器2的数据线,将data数据存入,则cm2d为01010101,同时从存储器1中读出数据,转换后送给red0、ged0、bed0,从而验证驱动电路的正确性。
经硬件设计和软件编码与调试后,将ARM软件源代码通过ISP下载到ARM中的FLASH后复位运行,系统验证了该设计的可靠性和正确性。
5 结论
本设计采用32位ARM嵌入式微处理器S3C4510B和32位FPGA扫描驱动电路芯片PolarProQLlP300,选用IS61C1024静态RAM作为缓存器,组成由多块大屏幕LED显示器构成的显示系统,选用ARM+RAM+FPGA设计方案,从而解决了系统的运行速度、寻址能力和功耗等问题,从而支持更大可视区域的稳定显示,存储更多的显示内容。