由于CPLD扫描模块可以达到很高的扫描速率,而单片机的运行速度则相对较低,并且两个模块间需要有大量的数据交换,为此选择双口RAM芯片IDT7132SA35JS,它的速度等级是35ns,完全满足两个模块实时通信的要求。双口RAM是两个数据模块间的数据通道,必须是共享的,它在本设计中起到了关键作用。
1.2 基于CPLD的独立扫描模块
显示部分的点阵模块采用双色LED共阴点阵模块(实际上可显示红、黄、绿三色)。8块8×8点阵模块连接成32×32点阵。为易于控制,将公共接口作为行控制,且行的接地引脚经过一个开关三极管接地(设计中简称行扫描管),实现对相应列的控制。因为一个行扫描管同时控制着一行中多个LED的通断,所以它承载较大电流。以每个发光二极管流过的电流为10mA计算,一个128列的点阵屏中,每个行扫描管所承受的电流是10mA×128=1.28A,为此选用高速中功率达林顿管TIP127,它的集电极吸收电流最大可达5A,保证了行的驱动能力。由于显示点阵的每一行都需要用一个三极管来控制,所以32×32点阵共需要32个TIP127。
行扫描电路采用通用数字电路译码输出来控制。在32×32点阵显示时,扫描输出需要大量的I/O端口,而ATMEL公司生产的CPLD芯片ATF1508AS15JC84(与ALTERA公司的MAX7128SLC84-15功能及封装等完全兼容)的外部I/O端口不够用,所以采用两片CPLD,一片专用于行扫描,另一片用于读取双口RAM IDT7132中的数据并进行列扫描。
列扫描电路的功能是在选中某行时送该行对应的列数据,由于采用的是8位微处理器,一次只能送一个字节的数据,即每次只能扫描8列。本设计中,采用8550三极管矩阵驱动方式,从而节省了大量控制信号引脚资源。