ob娱乐官网
/ Products Classification 点击展开+联系我们
为了不增加硬件成本而提高显示数据的输出速度,在分析现有条形单元板电路的基础上,提出了一种系统,该系统由STC12C5616 高速1T 单片机和带SPI接口的SST26VF016B存储器中的显示数据以存储器直接存取( DMA) 的方式直接输出至超长条形。 最后,以4 096 × 64 点阵单色LED为例进行了测试。 根据结果得出,显示屏刷新率达到62. 5 Hz,验证了该系统在实际应用中的有效性与可行性。
在LED 显示屏应用中,超长条形LED 屏是十分普遍的一种形式,其特点是长度特别长而宽度窄。 超长LED 显示屏目前没明确的定义,可以将其水平方向的点数定义为2 048 比较合适。
以由1 /4 扫描P10 单元板( 点间距10 mm) 组成的超长条形LED 显示屏为例,当水平方向的点数为2 048 时,其水平方向物理尺寸为20. 48 m. LED 屏的宽度( 垂直方向) 点数一般为16、24 和32 点,最多不超过64 点,应用中以能够显示一行各类字体的汉字为主。 为保证刷新率,在对超长LED 显示屏的控制上,要求在规定时间内送出更多数据,普通的LED 显示屏控制卡很难实现控制要求。
本文在分析现有各种条形LED 显示屏单元板电路的基础上,提出了一种基于多端口串行Flash存储器的LED 显示控制管理系统。 利用单片机的SPI接口产生可控时钟,将多端口串行Flash 存储器中的显示数据以DMA方式直接输出至超长条形LED 显示屏。
图1 为3 种常用单元板内部串行移位寄存器连接方式。 其中图1( a) 为单元板74HC595 与LED发光管点阵连接关系及简化表示电路。 LED 显示屏单元板内部使用的串行移位寄存器一般为74HC595、MBI5026 或MBI5026 兼容芯片,而MBI5026 可以看成是由两片74HC595 级联构成,为恒流源驱动模式,更适合LED 的驱动。
目前,市场上大量的门头屏( 条形LED 显示屏) 是LED 显示屏应用最广的一种形式。 从技术上来说,门头屏的水平方向点数从256 点至数千点,而高度一般不超过64 点。 随市场需求和显示精度的提高,数千点长度的超长LED 显示屏需求量在不断加大。 普通的LED 显示屏控制卡难于满足刷新率的要求,以在长度上像素点是4 096 的F3. 75 LED 显示屏为例,设刷新率为60 Hz,其SCK时钟周期至少为106 /60 /16 /4 096 = 0. 254 s = 254 ns.
解决超长LED 显示屏数据输出的方法有两种: 一是选择高性能嵌入式处理器和FPGA 芯片,该方法控制卡成本比较高; 二是巧妙应用单片机上的特殊功能部件并优化组织数据算法,这种方法成本很低。 本文采用的就是第2 种方法,通过优化算法将数据预先写入多端口串行Flash 存储器SST26VF016B 中,利用STC12C5616 单片机的SPI部件产生高速可控SCK 时钟,将多端口串行Flash存储器中的显示数据以DMA方式直接输出至超长条形LED 显示屏中,满足超长LED 显示屏的显示要求。
超长LED 显示屏高度一般不超过64 点,若控制1 /16 扫描单色LED 显示屏,SST26VF016B 存储器的4 位数据端口正好满足LED 显示屏数据口宽度的需要。 图2 为SST26VF016B 存储器的控制时序,CS 为SST26VF016B 存储器的片选端,所有对存储器的操作都要在CS 为低电平期间进行;SCK 为时钟线,当空闲模式时,SCK 信号可以处于低电平状态( MODE 0) ,也可以处在高电平状态( MODE 3) ; SIO( 3∶ 0) 为4 位数据端口,在数据传输时,先传字节的高4 位,再传字节的低4 位。 从存储器的控制时序能够准确的看出,对存储器的控制按照命令字、24 位存储地址、虚拟字节、数据字节0 到数据字节N 的顺序发送。 存储器的命令字能轻松实现对存储器进行片擦除、扇区擦除、单字节读写、连续字节读写等功能,完全能满足超长LED 显示屏对存储器的容量和控制方式的要求。
STC12C5616 是STC 公司推出的高速1T 单片机,时钟频率可达30 MHz 以上,其内部集成一个高速串行通信接口部件( 即SPI 接口)。 当STC12C5616 的SPI 部件采用主模式工作时,其SPI时钟输出频率( fclk) 可以达到晶振频率( fosc) 的1 /4 倍,并且可以灵活配置它的时钟相位和时钟极性,既满足对SST26VF016B存储器控制的要求,又满足超长LED 显示屏对时钟的要求。
利用串行Flash 存储器SST26VF016B 的多位数据口存储器和STC12C5616 单片机的SPI 部件能产生高速SCK 时钟的特点,将显示数据从串行Flash存储器旁路输出至LED 显示屏,电路如图3 所示。
单片机STC12C5616 的外部时钟选择22. 118 4 MHz,便于串行口波特率的精确控制; 引脚P3. 0和P3. 1为UART 接口,通过通信接口芯片MAX232 芯片实现控制卡和PC 机之间的通信连接; 引脚P2. 0 ~ P2. 3为4 位数据线,该数据线一方面连接存储器SST26VF016B 的4 位数据口,另一方面通过74HC245 驱动后连接到LED 单元板输出接口的数据线上。 在控制卡上设计有2 个单色LED单元板输出接口,接口J1 使用数据线为SPI 时钟输出,SPI 时钟输出线同时连接到串行Flash 存储器SST26VF016B 和LED 单元板的时钟输入; 引脚P1. 4为串行Flash 存储器SST26VF016B 的片选信号; 引脚P3. 5为LED 单元板的数据锁存信号; 引脚P3. 7为LED 单元板的使能信号输出; 引脚P1. 0 ~P1. 3为LED 单元板的行选择信号输出; J1 和J2 连接头用来连接显示屏在高度方向上的LED 单元板,以符合门头屏64 点高度要求。
该电路的设计可以灵活地在单片机、串行存储器和LED 单元板相互之间实现3 种不同的数据访问模式,分别是:
由图3 可以看出,单片机STC12C5616 和串行Flash 存储器SST26VF016B 之间的连接是参照数据手册进行连接的,可以实现正常的数据存取,同时该数据也会进入LED 单元板上的移位寄存器缓冲区,但只要LED 单元板上的数据锁存RCK 没有得到有效信号,进入LED 单元板的数据是不显示出来的无效数据。
将单片机引脚P1. 4置高电平,即将串行Flash存储器的使能端无效,这时存储器的数据端口呈高阻状态,单片机和LED 单元板之间数据通信就不会受到存储器数据口的影响,可以将单片机的数据正常输出到LED 单元板上。
首先采用第( 1) 种模式,单片机先向串行存储器输出命令字、存储地址和虚拟字节,然后将单片机的数据口P2. 0 ~ P2. 3全部置高电平,通过SPI 时钟从串行存储器读取显示数据,同时以DMA方式进入LED 单元板,当读取完一行数据后,在LED单元板上的数据锁存端RCK 上产生有效信号,就可以显示该行数据。 当采用这种模式时,一定要将单片机STC12C5616 的引脚P2. 0 ~ P2. 3设置为弱上拉模式。
在1 /16 单色LED 显示屏硬件电路设计中,74HC595 采用直通方式连接。 根据直通方式特点,预先对单色显示数据进行优化组织,将组织后的显示数据预先存放在串行Flash 存储器SST26VF016B 中。 如图4 所示,单片机输出显示每行数据时按输出数据送移位脉冲地址加1的顺序重复进行,显示完一行后,RCK 锁存显示,通过ABCD 切换行选通线 × 32 点) 连接方式。
以LED 显示屏的水平方向点数为4 096 点为例,其显示一帧数据的程序代码如下:
在设计程序时,仅在换行时关闭显示屏,避免它产生余辉,其余时间都点亮。 在该程序中,Bv为数据线 的组数; Lw为LED 显示屏水平方向像素点数; Ln为当前LED 显示屏显示数据行号。 当显示数据时,采用存储器和LED 显示屏的数据输出模式,单片机先向串行存储器输出读数据命令字0x0B,然后输出24 位地址和虚拟字节,再使单片机数据口输出高电平,就可以根据LED 显示屏的长度输出SCK 脉冲。 送完一行数据后,禁止SPI 接口,RCK 锁存信号有效,切换至下一行,按重复步骤继续输出显示数据。
经过测试后,显示屏显示正常,没有抖动情况,使用逻辑分析仪测试了其刷新率,如图5( b) 所示,信号A 的电平宽度表示显示1 行所需要的时间,其宽度为1. 036 16 ms,显示1 帧的时间为16 ×1. 036 16 ms16 ms,所以LED 显示屏的刷新率为1 /16 ms = 62. 5 Hz. 而当LED 显示屏的刷新率大于50 次/s 时,就可以满足设计要求,故本设计能够很好的满足正常显示要求。 通过测试SCK 信号,如图5( a)所示,能够准确的看出SCK 信号每8 个脉冲1 组,每组之间的时间间隔仅为570 ns,该时间主要消耗在判断SPI 数据传输完成标志和循环控制上。
基于多端口串行Flash 存储器的LED 显示控制管理系统,利用单片机的SPI 接口产生可控时钟,将多端口串行Flash 存储器中的显示数据以DMA方式直接输出至超长条形LED 显示屏。