论文网
首页 理科毕业电气毕业正文

基于双串行RAM的超长LED显示屏实时控制系统

  • 投稿图伦
  • 更新时间2015-09-11
  • 阅读量545次
  • 评分4
  • 92
  • 0

邬芝权,靳桅

(西南交通大学峨眉校区计算机与通信工程系,四川峨眉山614202)

摘要:利用ARM处理器SPI和DMA的工作特点,设计辅助电路对两组RAM进行逻辑控制,使得修改超长LED显示屏数据时不影响显示效果。控制系统设计2组串行RAM,通过控制2组串行RAM的逻辑和时序,可以实现同步刷新、异步修改和DMA方式高速输出等多种功能。在显示输出时采用SPI接口的DMA输出方式,实现了超长LED显示屏的控制。同时,阐述了该控制系统的设计理念、电路原理图及编程方法,并给出实测实验结果。实验结果表明,此设计具有很高的实用价值。

教育期刊网 http://www.jyqkw.com
关键词 :串行RAM;DMA;SPI;SQI;LED显示屏

中图分类号:TN710?34;TP391.1 文献标识码:A 文章编号:1004?373X(2015)14?0048?04

收稿日期:2015?01?04

基金项目:教育部春晖计划科研合作项目(22014044)

0 引言当前现实生活中,LED显示屏在城市亮化、广告、信息发布等方面的应用有目共睹,已然成为城市中一道亮丽的风景。LED显示屏的物理尺寸形状多样,都是由各种尺寸单元板级联构成,随着技术的发展和应用需求,如何实时控制超长LED显示屏成为一个越来越引起注目的研究课题。对超长LED显示屏的实时控制要解决两个问题:一是提高LED 显示屏单元板上串行移位脉冲速度;二是在修改数据时不影响显示屏正常显示。控制系统的通常做法是采用ARM+FPGA+大容量并行RAM电路结构,同时将并行RAM的读信号作为LED显示屏单元板上串行移位寄存器的串行移位脉冲。并行RAM 基本结构是“地址线+数据线+读/写信号+片选”,想要达到移位一次显示数据需要并行RAM:地址加1和读显示数据。存储器RAM 内保存的是显示数据,既要写入修改数据,又要不断地读出数据至LED显示屏,这2 个操作非常频繁并且不能同时操作。解决这个矛盾的传统做法是在行数据输出间隔时间内预留一部分时间用于修改显示数据,这样势必会影响驱动LED 显示屏的长度。基于SPI接口的串行RAM的操作时序,可以方便地将上述两个步骤合为一个步骤,提高了显示数据的输出速度,增加了驱动LED显示屏的长度。同时,串行RAM 引脚少,电路布线少,降低了系统设计的复杂性,简化了双RAM设计的难度。

23LC1024是Microchip(美国微芯科技公司)2012年8 月推出的串行SRAM 芯片,该芯片通过4 路SPI(SQI)协议可实现高达80 Mb/s的读/写速度,足以满足LED显示屏数据移位时钟的需要。本文在研究分析该芯片特点的基础上,提出一种显示数据以DMA方式高速输出、同步刷新及异步修改的超长LED显示屏控制系统。下面分几步对该控制系统的设计理念、电路设计及实测结果进行介绍。

1 串行SRAM 芯片23LC1024 工作时序23LC1024芯片有8个引脚,引脚定义见图1。

通过设置可以使该芯片工作于传统的SPI 模式、SDI( 双SPI)模式或SQI(4 路SPI) 模式。图2 为23LC1024工作于SQI模式的单字节读/写时序,读/写时序表明:除了命令字和读操作时有两个空周期不同外,所有读/写操作均在主机SCK 脉冲驱动下完成。

23LC1024 的数据输入(写)发生在主机SCK 时钟上升沿,而数据的输出(读)发生在主机SCK时钟的下降沿。

图3为23LC1024连续多字节读/写时序,其中C1,C0分别为命令字高、低半个字节,例如:读命令字0x03其C1=0x0,C0=0x3。24位地址A5~A0、数据H0,L0 均对应8 位字节的高、低半个字节(4 位)。23LC1024串行RAM 的SQI字节读/写时序看似烦琐,但却解决了一个根本问题:在片选、命令字、读/写地址给定的条件下,每送一个SCK脉冲完成一次半字节(4位)数据读/写,如果2片23LC1024“并联”使用,可等效8位并行RAM的读/写,4片、8片“并联”使用可等效16,32位并行RAM的读/写。对“并联”后的23LC1024 读/写只需一个步骤,就是主机输出一个SCK脉冲。当输出数据的长度达到(LED显示的水平方向点数)1 024,2 048,4 096或更长时,前面送命令、地址所花的时间均可忽略不计。如果输出数据的SCK脉冲由ARM 芯片的SPI_SCK采用DMA信号产生,其显示数据的平均输出速率快且不占用CPU处理时间,这正是本文超长LED显示屏控制系统的设计理念。

2 控制系统硬件电路

在对超长屏实时控制时,由于保存在RAM 中的显示数据不断送至LED显示屏,RAM被长时间占用,留给CPU 修改RAM 数据的时间不足。本文提出双RAM 系统,RAM1 与MCU 连接,在显示数据不修改的情况下,RAM2 保存有和RAM1 一致的数据,采用DMA 方式将RAM2 的显示数据送至LED 显示屏。在显示内容变化时,修改RAM1 中的数据,然后将RAM1 的数据送至LED显示屏,同时也数据同步备份至RAM2。根据这个思路,控制系统硬件电路有两组RAM、用于切换的逻辑转换电路和驱动电路,电路如图4所示。

将U1和U3拼成8位的串行RAM1,U2和U4拼成8位的串行RAM2。通过对RAM1,RAM2,U5,U6引脚的逻辑控制,控制系统可以使RAM1 和RAM2 处在不同状态,达到预设的功能。

当U5关断时,RAM1,RAM2的数据口和控制引脚完全隔离,没有冲突,MCU 可以单独对RAM1和RAM2进行读/写操作,如图5(a)所示。

当U5,U6 关断,CPU 可以读/写RAM1,RAM2,通过08接口和LED显示屏相连,如图5(b)所示。当U5选通,U6 关断时,RAM1 和RAM2 相互连接,可以进行数据交换,如图5(c)所示。当U5选通,U6关断时,控制08接口的RCK 信号和RAM1 和RAM2 的读/写信号,可以将RAM1的数据同时送至RAM2和LED显示屏,如图5(d)所示。在显示屏不修改的情况下,每行数据的处理流程是先按图5(a)模式分别设置RAM1和RAM2的地址,然后按图5(b)所示输出显示数据。由于RAM2至LED显示屏的数据是采用DMA方式输出,不需要占用CPU,所以CPU的主要任务是修改RAM1中的显示数据。RAM2显示完一串数据后,如果RAM1中的显示数据有修改,则需要按图5(d)输出显示数据,在行数据输出时,也是先设置RAM1和RAM2的地址,再读RAM1,将数据输出至LED显示屏和RAM2,行数据输出时序如图6所示。

一串数据结束后,再切换到图5(b)模式工作,直至新的修改内容出现。

3 应用实例及测试结果

由于教学科研需要建一个以Φ3.75 ,1 16 扫描3 712×256双色LED实时控制显示屏,LED显示屏体采用464块64×32双色单元板级联,主要用于表示各种设备的运行状态。图7为其电路原理框图。

该系统核心采用1 片LQFP144 脚的ARM 芯片STM23F103ZE,使用PF0~15、PG0~15 两个16 位端口(4个8位口)作RAM1的命令、地址及数据口,用PE0~7口给RAM2旁路送命令字和地址,用PD 口的I/O 做片选、时钟及245选通控制线,DMA时钟由PA5(SPI1_SCK)提供。08 接口的245 驱动、通信及FLASH 存储部分鉴于篇幅限制省略。通过分析图7应用实例电路可以得到以下几点结论:

(1)使用SQI串行RAM,使连续顺序输出数据的速度大幅提高。

(2)最大限度地降低CPU 在输送数据中所占用的时间,CPU主要用于数据接收和修改。

(3)SQI 串行RAM 命令、地址及数据复用4 条I/O线,使占用CPU的I/O口数量减少。

(4)当LED 显示屏垂直方向扩展时只需增加数据口和模块数量,系统扩展非常方便。

(5)该控制系统更新速度快,特别适用于实时控制的LED显示屏。

(6)与并行RAM 相比,随机访问时需要拼凑命令字、地址及数据,读/写速度较慢。

硬件控制系统经两次改进已经定型,在调试过程中发现系统软件也有很多地方可以优化。例如在如图7时序刷新时RAM1,RAM2除读/写控制字低4位和空操作不同外,其余部分完全一致,所以图7时序可改进为读/写控制字低4位和空周期RAM1,RAM2异步操作,其余部分RAM1,RAM2 同步操作。除DMA 传输外,RAM1,RAM2 送读/写控制字、地址及空操作部分所占用的时间为7.27 μs,对于1 000 μs 的行扫描时间可以忽略不计,实验发现最后的输出速度主要是受LED 单元板最大速度的限制,一般至少要将ARM 的SPI_SCK 时钟4 分频后才可正常显示。所以本控制系统在1 16 扫描的情况下,输出的屏长理论上可达到16 384点,屏的高度只会影响数据修改的速度,没有多大关系。

经测试后,显示屏显示正常,没有抖动情况,使用逻辑分析仪测试其刷新率,如图8(a)所示,信号A的电平宽度代表显示一行所需要的时间,其宽度为1.000 11 ms,显示一帧的时间为16 × 1.000 11 ms = 16 ms ,所以LED 显示屏的刷新率为1 16 ms = 62.5 Hz ,满足正常显示要求。分析一行数据输出的SCK信号,如图8(b)所示,信号前序部分为RAM1、RAM2送读/写控制字、地址及空操作部分,所占用的时间为7.27 μs,后续部分为3 712个SCK 周期信号,所用时间为412 μs,SCK 电平变换时间仅为55 ns。根据SCK时钟输出速度,8 192个SCK周期的时间为8 192×55×2 ns=0.911 ms,该时间小于1 行所需时间宽度;因此,控制卡控制LED显示屏的长度可以达到8 192点。

4 结语

在控制系统研制过程中发现,传统的SPI总线串行FLASH产品非常多,而串行RAM却很少,SQI串行RAM产品只有Microchip在产,其他只有ON Semiconductor与23LC1024同类产品N01S830HA 仅见于新品目录,如果有8,16 线串行RAM 芯片用于控制系统设计将大大提升单块控制卡控制LED显示屏区域的大小,本文虽以控制双色LED屏为例,实际只加一个接口转换板就可驱动全彩LED 屏。控制系统中RAM1、RAM2也可看成一个大容量的“双端口RAM”,正常时分别工作,刷新时同步工作。关于该控制系统改进有待进一步研究与实验。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 刘志龙,吴昊.STM32F103ZET6芯片在LED显示屏控制应用中的探索[J].科技创新与应用,2014(4):30?31.

[2] 杨雪君.LED 点阵显示屏控制与设计[J].山东工业技术,2013(12):217?217.

[3] 李秀忠.大屏幕LED 显示屏控制系统设计[J].现代电子技术,2012,35(19):135?138.

[4] 陈兰,薛超《. LED显示屏通用规范》解读[J].信息技术与标准化,2012(10):60?63.

[5] 潘磊.基于ARM的多个LED显示屏无线控制系统设计[J].电子技术,2013(4):37?39.

[6] 袁胜春,刘延,赵小明.PWM调制LED显示屏高灰度高刷新的一种方案[J].光电工程,2013(5):145?150.

[7] 靳桅,朱云芳,邬芝权,等.LED显示屏多扫描线数据组织的通用方法[J].西南交通大学学报,2013,48(2):257?263.

[8] 樊梅香,崔琳.单片机控制LED显示屏动态显示的设计[J].河北工业科技,2011,28(5):306?308.

[9] 祝宇琳.LED 显示屏主要技术指标及检测方法[J].信息技术,2011(10):216?218.

[10] 吕晓雯.LED显示屏设计与应用[J].宁波工程学院学报,2011,23(4):77?82.

[11] 邬芝权,靳桅,朱云芳,等.基于多端口串行Flash的超长条形LED 显示屏控制[J].西南交通大学学报,2012,47(3):433?438.

[12] 徐文权,张齐.LED 显示屏硬件控制系统设计[J].工业控制计算机,2012(5):43?44.

[13] 李卫卫,钱剑敏.基于ARM的LED显示屏多功能控制卡设计[J].电子设计工程,2012(17):172?174.

作者简介:邬芝权(1976—),男,工学硕士,实验师。研究方向为嵌入式控制。靳桅(1960—),男,副教授。研究方向为无线电、单片机控制。