基于STM32的全彩LED显示屏系统的设计

最新更新时间:2012-11-22来源: 维库电子关键字:STM32  LED  显示屏系统 手机看文章 扫描二维码
随时随地手机看文章

  LED显示屏是利用LED点阵模块或像素单元组成的一种现代平面显示屏幕,具有发光效率高、使用寿命长、视角范围大、色彩丰富以及对室内外环境适应能力强等优点。20世纪80年代后期,它在全世界迅速发展起来,并很快成为大屏幕平板显示的代表性主流产品;近年来,随着蓝色LED产品价格的快速下降,全彩色LED显示屏的价格逐步降低,市场需求急剧增长,应用日益普遍。目前的LED显示屏控制系统多采用ARM处理器来完成整个系统的功能,这种控制系统在数据处理速度上存在很大的局限,影响显示效果的连续性。基于此,在分析了STM32微处理器总线结构特点的基础上,提出了STM32+FPGA的控制系统方案,该方案充分了利用STM32微处理器的灵活的储器控制技术和可编程逻辑器件的灵活性,提高了系统数据处理的速度,而且简化了电路结构,方便调试。

  1 系统总体方案设计

  系统结构框图如图1所示。

图1 系统结构框图

图1 系统结构框图

  系统采用新一代的32bitRISC处理器STM32作为主控芯片,通过以太网传输数据,以FLASH作为存储模块,由FPGA完成对LED显示屏的高速扫描刷新。系统工作时,利用上位机编辑显示信息,通过以太网接口将显示信息传输给微处理器,微处理器接收数据信息后写入FLASH存储器。在显示时,微处理器读取FLASH中的数据,通过总线将数据以并行方式发送给FPGA,FPGA处理后将数据传输到LED显示屏显示。

  2 系统硬件设计

  本系统选用ST公司新推出的32位微处理器STM32F103ZET6作为主控芯片,STM32F103ZET6使用了先进架构的ARMCortex-M3内核,其灵活的静态存储器控制器使得它能很方便的和许多存储器和外设连接,同时STM32片上外设丰富,可以简化系统外围电路的设计。

  2.1 FLASH存储器电路设计

  FLASH采用的是三星公司的K9F1G16U0M,它是一种NAND型FLASH,存储容量为64M16位,工作电压3.3V,系统中STM32F103ZET6与K9F1G16U0M的连接如图2所示。FLASH存储器的IO0~IO7和FMSC数据总线的低8位相连,STM32处理器通过FSMC访问存储器;FLASH存储器的片选信号nCE和FSMC的FSMC_NCE2相连接,这样存储器的地址空间为0x70000000~077FFFFFFFF;FLASH存储器的R/nB连接至STM32处理器的FSMC_NWAIT管脚,处理器将R/nB作为一个中断源使用,因此可以在存储器的等待周期内执行其他的任务。

图2NANDFLASH与STM32F103ZET6连接图

图2NANDFLASH与STM32F103ZET6连接图

  2.2 以太网接口电路设计

  采用以太网接口代替传统的串口,加快了数据传输的速度,同时可以实现远程控制。由于STM32F103ZET6片内没有集成以太网MAC和PHY功能,但其FSMC支持扩展以太网控制芯片,本系统在FSMC上扩展一片DAVICOM公司的DM9000A芯片对STM32F103ZET6进行以太网扩展,DM9000A与STM32F103ZET6的连接如图3所示。

图3 DM9000A与STM32F103ZET6连接图

图3 DM9000A与STM32F103ZET6连接图

  STM32F103ZET6通过FSMC访问DM9000A,对于STM32F103ZET6来说,DM9000A就是一个静态存储器外设。DM9000A采用16位模式,数据线SD0~SD15直接与FMSC数据线低16位FSMC_D0~FSMC_D15相连;DM9000A片选信号线nCS连接至FSMC片选信号FSMC_NE4,这样DM9000A端口地址为0x6c000000;DM9000A的中断信号线INT可直接连接至STM32F103ZET6的IO口,在程序中激活处理器IO口的中断复用功能,STM32以中断方式接收网卡数据。

  2.3 扫描驱动电路设计

  扫描驱动电路是整个控制系统的重要组成部分,系统中它由一块FPGA和双体RAM组成,其结构如图4所示,主要完成灰度数据读取、上屏数据的产生与传输、移位和锁存时钟的产生、行选信号的产生、灰度控制信号的产生等功能。

图4 扫描驱动电路结构图

图4 扫描驱动电路结构图

  扫描驱动输出信号的仿真波形如图5所示,其中en是灰度控制信号,用来控制显示时间,产生灰度效果;row_sel是行选信号,显示时用于确定点亮哪一行;sck是移位时钟,lck是锁存时钟,ds_red、ds_blue、ds_green是上屏红、蓝、绿数据的输入端。仿真时红、蓝、绿显示数据分别设定为01交错、全1、全0。可以看到,在移位时钟的作用下数据移位正确,移位完成后,lck变为高电平,将数据锁存输出到LED屏上显示。

图5 输出信号的仿真波形

图5 输出信号的仿真波形

  3 系统软件设计

  整个系统的软件包括3个部分:上位机应用软件、微处理器控制软件和FPGA控制软件。3个部分协同工作,实现对LED显示屏的控制。

  3.1 上位机应用软件

  上位机应用软件用于人机交互,是控制系统对用户的接口,要求界面友好、操作简单。软件采用VisualC++编写,完成的主要功能包括:图像文字信息的编辑、图像的解码以及根据通信协议将数据发送给下位机。

  3.2 微处理器控制软件

  微处理器在整个系统中起着核心调度的作用,它控制着系统各功能模块的工作状态,程序包括TCP/IP协议栈的移植、DM9000A网卡驱动程序等,完成的主要功能有:硬件初始化,上位机与下位机的以太网通信,显示模式算法设计等。

  3.3 FPGA控制软件

  FPGA控制软件的设计是在QuartusII环境下完成的,采用硬件描述语言Verilog编写。主要功能是根据微处理器的控制,对存储器进行切换,实现乒乓操作;完成图像数据的重构,把数据转换为能直接用于LED扫描显示的含有灰度信息的??0和??1组成的编码系列,并根据显示屏驱动芯片的时序,将编码系列传输到显示屏上显示。

  4 总结

  本设计采用32位嵌入式微处理器STM32F103ZET6和可编程逻辑器件EP1C6Q240C8设计了全彩色LED显示屏控制系统,并在实验室验证,实现了LED显示屏的彩色显示,图6(a)为一幅实际图像,图6(b)是在显示屏上的显示效果。

图6 图像的灰度显示

图6 图像的灰度显示

  实验结果表明,系统运行稳定,显示画面清晰、流畅。系统该系统能满足异步全彩色LED显示屏高处理速度,大容量数据存储的要求,支持256灰度级全彩图像、动画的显示,同时通过改变FPGA内部的硬件逻辑可方便地对系统进行升级,结构简单、可靠性高,可替代市场上同类设计产品,应用前景广泛。

关键字:STM32  LED  显示屏系统 编辑:探路者 引用地址:基于STM32的全彩LED显示屏系统的设计

上一篇:基于FPGA动态背光源及其驱动电路设计
下一篇:一种液晶显示器的LED背光驱动控制设计方案

推荐阅读最新更新时间:2023-10-17 15:08

高亮度LED解决关键问题前程似锦
随着发光二极管发 光效 率的不断提高,发光二极管无疑为近几年来最受重视的光源之一。一方面凭借的其轻、薄、短、小的特性,另一方面藉其封装型式的耐摔、耐震及特殊的发光光形,发光二极管的确给了一般人们一个很不一样的光源选择。然而,目前已经看到 LED 发展的困难包括散热问题,以及发光二极管特殊发光光形的利用等。如何克服,考验各家厂商研发能力。 发光二极管有一个很大的特点,就是具备低电流、低电压 驱动 的省电特性,而这样的特性在世界能源缺乏及各国针对绿色环保观念的提升同时,尤其吸引大家的注意。目前各国政府除了致力于新型能源的开发外,对既有电器设备效率的提升及环保的研究亦投注相当的心力。而在研发如何降低工业用电量的同时,目前普及率
[电源管理]
STM32串口发送数据和接收数据方式总结
之前写了篇关于ESP8266使用AT指令进行互相通讯的实验,在写STM32串口接发数据的程序中,觉得有必要将之前学的有关于串口方面的使用经历加以总结。 串口发送数据: 1. 串口发送数据最直接的方式就是标准调用库函数 。 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); 第一个参数是发送的串口号,第二个参数是要发送的数据了。但是用过的朋友应该觉得不好用,一次只能发送单个字符,所以我们有必要根据这个函数加以扩展。 void Send_data(u8 *s) { while(*s!='\0') { while(USART_GetFla
[单片机]
STM32笔记之外部中断GPIO
b) 初始化函数定义: void EXTI_Configuration(void); //定义IO中断初始化函数 c) 初始化函数调用: EXTI_Configuration();//IO中断初始化函数调用简单应用: d) 初始化函数: void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; //EXTI初始化结构定义 EXTI_ClearITPendingBit(EXTI_LINE_KEY_BUTTON);//清除中断标志 GPIO_EXTILineConfig(GPIO_Por
[单片机]
STM32 HAL库学习系列第3篇 常使用的几种延时方式
1 自带的hal_delay 函数 毫秒级延迟 void HAL_Delay(__IO uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); //获取tick值(毫秒) uint32_t wait = Delay; /* Add a period to guarantee minimum wait */ if (wait HAL_MAX_DELAY) { wait++;//传参,延时的时间 } while((HAL_GetTick() - tickstart) wait) { } } 也可以配置为us延时,改变函数参数 配置方法:
[单片机]
STM32外设驱动篇——AT24C02(I2C接口)
SOC:STM32F103RCT6 软件平台:STM官方库V3.5.0 开发工具:Keil 1. 摘要   本文章将给出STM32F103RCT6控制AT24C02的代码。如有疑问和错误,欢迎留言告之。 2.硬件连接 AT24C02使用I2C进行数据访问,板子上使用STM32的I2C控制器2和AT24C02进行连接。 具体来说,PB10作为SCL和AT24C02相连,PB11作为SDL和AT24C02相连。 这里就不给出硬件连接图了,比较简单。 3. AT24C022C访问代码(轮询) I2C这里使用轮询方法,不是中断,请留意。 首先,给出I2C控制器的初始化代码,和读写代码,一共三个函数,对应三个功能。 注
[单片机]
低噪声16通道恒流LED驱动器【德州仪器】
2011 年 2 月 16 日,北京讯 日前,德州仪器 (TI) 宣布推出一款带 4 通道分组式延迟的串行控制 16 通道恒流LED 驱动器,可显著简化视频显示、留言板、娱乐照明和 LED 指示灯等 LED 显示应用的设计工作。 TLC59282 可通过对 LED 输出开关进行摆动处理来最大限度降低同步开关噪声,从而进一步降低峰值开关电流瞬变以促进 LED 模块中低成本双层印刷电路板 (PCB) 的布线。如果采用传统的多通道 LED 驱动器,就必须采用四层 PCB 布线来避免开关瞬变在输出消隐期间破坏串行数据通信路径。除了降低电磁噪声之外,TLC59282 还支持极高的通道间与芯片间精确度,能够有效确保为每
[电源管理]
低噪声16通道恒流<font color='red'>LED</font>驱动器【德州仪器】
STM32系列第25篇--CAN总线
简介: CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。此后,CAN通过ISO11898及ISO11519进行了标准化。现在在欧洲已是汽车网络的标准协议。 CAN协议经过ISO标准化后有两个标准:ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准,而ISO11519-2是针对通信速率为125Kbps以下的低速通信标准。 CAN具有很高的可靠性,广泛应用于:汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。 特点: 多主控制。总线空闲时
[单片机]
<font color='red'>STM32</font>系列第25篇--CAN总线
STM32看门狗WWDG和IWDG的区别是什么
STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG:独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。 简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。 对于一般的独立看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但是这样有一个隐患,有可能程序跑乱了又跑回正常的地方,或者跑乱的程序正好执行了刷新看门狗操作,这样的情况下一按的看门狗就检测不出来故障了;但是如果使用窗口看门狗,程序员可以根据程序正常执行
[单片机]
<font color='red'>STM32</font>看门狗WWDG和IWDG的区别是什么
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved