本文主要介绍LED显示屏的静态灰度控制系统由控制端、主控卡以及分扫卡组成,具体架构如图4.1所示。
控制端通常为电脑或者移动设备(手机、平板电脑等),用户通过控制端给LED显示屏控制系统发送配置信息以及显示信息。主控卡接收到显示信息后,根据接收到的配置信息将其处理成与当前LED显示屏规格相适应的数据后连同配置信息发送给分扫卡。每级分扫卡只接受属于该级的数据并将其显示在对应的LED显示屏上,同时将不属于自己的数据传递给下一级分扫卡。各级分扫卡所驱动的LED显示屏之间无缝隙结合,将控制端发送的文字以及图片信息在整个系统所驱动的LED显示屏上完整地显示出来。
平台简介
飞思卡尔K60N512ARM单片机
本控制系统所采用的微处理器为飞思卡尔K60N512单片机,该单片机是一款基于ARMcortexM4的单片机。本控制系统中K60单片机的主要作用处理上位机发送过来的显示数据以及配置数据,将其处理成一副规整的图像后放进内存中。同时通过FlexBus总线发送给驱动显示单元在LED显示屏上进行显示。同时还需要不断接受上位机发送过来的操作指令,并在屏幕上对应的显示出来。除此之外,K60微处理器还需要不断地接受一些传感器的数据,比如亮度传感器,使LED显示屏随着外界亮度的变化而变化。
本设计所使用的K60微处理器,外接100MHz的晶振,为处理器处理各种复杂的工作提供了较高的频率。同时外接一个博通的以太网传感器芯片,一个Flash芯片以及一个SRAM芯片。使整个控制系统变得更加稳定和易用。
XilinxSpartan-6FPGA
本文驱动控制部分使用的控制芯片为XilinxSpartan-6FPGA芯片,SpartanFPGA为Xilinx的低成本的FPGA。该静态灰度控制系统所使用的FPGA具体型号为Spartan6-xc61x9-ftg256(主控卡)、Spartan6-xc61x9-3tqg144(分配卡)。FPGA与ARM单片机相比,其时序控制能力较强,没有周期指令,速度很快,控制能力很强。主控卡的FPGA主要用于接收K60芯片发送过来的数据,将其按照上位机提出的特效要求处理成一帧一帧的特效图片,将其发送给分扫卡的FPGA芯片。分扫卡的FPGA接收到主控卡的数据后,将其按照模组的走线在LED显示屏上驱动显示出来。
主控卡上的FPGA外接SPIFlash芯片,千兆以太网口芯片,分扫卡上的FPGA芯片外接千兆以太网口芯片,SPIFlash芯片,异步SRAM芯片等。FPGA在该控制系统充分发挥了其控制灵活、速度快的优势,使得该静态灰度控制系统在驱动显示方面有着无可比拟的优势。
主控卡
主控卡硬件结构
主控卡核心部分为飞思卡尔K60DARM微处理器与XilinxSpartan6FPGA芯片。在ARM微处理器基础上外接了RS232串口芯片、RS485串口芯片、千兆以太网口芯片、SRAM芯片、SD卡、nandFlash芯片以及亮度传感器;FPGA芯片外接了SPIFlash芯片、SRAM芯片以及千兆以太网口芯片。具体硬件结构如图4.2所示。
主控卡与控制端之间提供了RS232.RS485以及千兆以太网口三种连接方式供用户选择。ARM处理器外接SD卡与nandFlash用于存储控制端发送过来的文字、图片以及配置信息。当检测到有SD卡时,ARM将从控制端接收到的信息写入到SD卡中,并从SD卡中读取显示以及配置信息进行处理;当检测不到SD卡时,ARM处理器将从控制端接受到的信息写入到nandFlash中,并从nandFlash中读取显示以及配置信息进行处理。ARM微处理器将信息处理成与LED显示屏规格适应的数据之后,通过FlexBUS总线发送给FPGA芯片。FPGA芯片根据接收到的特效指令实现特效显示,并将实现特效后的显示数据通过一个千兆以太网口将其连同配置信息一起发送给级分扫卡。此外主控卡外接一个亮度传感器用来实现LED显示屏的亮度自适应调整功能,当外界环境变亮时,LED显示屏的亮度也随之增高,当外界环境变暗时,LED显示屏的亮度也随之降低。图4.3为该系统的主控卡实物图。
主控卡软件结构
主控卡的软件由communicate}ort,Process,Specialeffect等模块构成。Process为核心处理以及控制模块,具体软件结构如图4.4所示。
当控制端发送显示信息以及配置信息时,Process通过communicate_port将数据读进来并将其存储到SD卡或者nandFlash中。紧接着将显示信息从SD卡或者nandFlash中读进内存,并根据配置信息将其处理成与LED显示屏大小和规格适应的数据后发送给Specialeseffect(特效显示)模块。控制端发出特效显示请求后,通过communicate}ort以及Process模块传递给Specia.l_effect模块。Specialeffect模块与Process模块之间通过K60芯片的FlexBus总线进行数据传输。Speci处effect模块在接收到特效显示命令(移动、翻转、渐变、百叶窗等)之后,根据控制端所发出的指令,对内存中的数据进行处理[[25],产生对应的特效,并将其通过PHY}ort模块连同配置信息一起发送给级分扫卡。Sensor}ort模块为传感器接口模块(目前主要外接一个亮度传感器),将外接传感器采集的模拟信号通过模数转换处理成数字信号。Process模块接收到该信号之后,处理成对应的信息,经过PHY}ort模块传输给驱动显示模块。
分扫卡
分扫卡硬件结构
分扫卡核心部分为为XilinxSpartan6XC6SLX9FPGA芯片。在FPGA基础上外接了千兆以太网口芯片、SOpin的LED显示屏接口、SPIFlash芯片以及SRAM芯片,具体硬件结构如图4.5所示。
分扫卡与主控卡以及各级分扫卡之间都使用千兆以太网口连接,每级分扫卡接受来自上一级的数据,取出其中属于自己的部分将其处理后通过SOpin的LED显示屏接口在LED显示屏上显示出来,并将不属于自己的数据直接通过千兆以太网传送给下一级分扫卡。使用两块SRAM芯片实现乒乓读写,提高整体的工作效率。各级分扫卡采用级联的形式,并可以灵活地增减数量以适应不同尺寸的LED显示屏。图4.6为该系统的分扫卡实物图。
分扫卡软件结构
分扫卡的程序模块结构主要由Deal,Gray_control,PHYesin}ort,PHYtransform,PHYout-port,screendisplay等模块构成,具体程序模块结构如图4.7所示。
PHY_in_port模块接受数据后判断是否属于该级分扫卡,属于的话将数据传输给Deal模块,不属于则直接经由PHYtransform模块与PHY_out_port模块传递给下一级分扫卡。每级分扫卡取得属于自己的数据之后,首先将配置信息通过SPI_Flash_prot写入到SPIFlash中,以防止该级分扫卡断电引起的配置信息丢失问题。接着Deal模块根据配置信息(LED模组走线、该级分扫卡所带LED显示屏部分的宽和高像素等),将显示信息数据处理成相应的格式并通过ping-pangesRWesSRAM}ort模块存储到SRAM中去,并给Graycontrol模块发送dealcomplete(处理完成)信号。Gray_control模块收到deal_complete信号之后,将显示信息从SRAM中读出,配合screen_display模块,实现静态灰度显示的功能。
控制系统中的通信协议
主控卡ARM与FPGA通信协议主控卡与分扫卡之间通过K60芯片的F1exBus总线进行通信,具体的通信帧结构如表1所示:
字段 | 字节数 | 说明 |
帧头 | 1 | 表明一个通信帧的开始,通知FPGA准备接收数据 |
类型 | 1 | 表明该通信帧的功能 |
长度 | 2 | 表明后面数据的长度 |
数据 | 若干 | 通常为显示数据 |
校验 | 1 | 供FPGA判断所收到数据的正确性 |
帧尾 | 1 | 帧结束符,通知FPGA停止接收数据 |
帧头为5h,帧尾为ffh,使用奇偶校验,帧类型与其对应功能如表2所示:
帧类型 | 功能 |
01h | 向FPGA传入显示屏的配置信息,一般为长分辨率与高分辨率 |
02h | 传入显示数据 |
03h | 换帧信息 |
04h | 亮度信息 |
05h | 点检启动信号(预留) |
系统启动后,ARM先向FPGA发送显示屏的配置信息,将FPGA中的长与高寄存器置位。接着ARM向FPGA传送显示数据以及亮度数据,当需要切换显示内容时,ARM想FPGA发送显示数据以及换帧信息,通知FPGA更新显示内同。当系统处于空闲时,ARM不断向FPGA发送亮度信息,从而达到自动亮度调节的功能。
主控卡与分扫卡通信协议主控卡与分扫卡以及各级分扫卡之间通过以太网口进行通信,具体的通信帧结构如表3所示:
字段 | 字节数 | 说明 |
帧头 | 2 | 表明一个通信帧的开始,通知分扫卡的FPGA准备接收数据 |
类型 | 2 | 表明该通信帧的功能 |
长度 | 2 | 表明后面数据的长度 |
数据 | 若干 | 通常为显示数据 |
校验 | 1 | 供FPGA判断所收到数据的正确性 |
帧尾 | 1 | 帧结束符,通知FPGA停止接收数据 |
帧头为555d,当分扫卡通过以太网口芯片接收到555d后,表明通信帧开始,FPGA进入数据接收状态,帧尾为ffh,分扫卡FPGA接收到肋后,停止接收数据,校验也采用奇偶校验的方式,帧类型与其对应功能如表4所示:
帧类型 | 功能 |
aah | 传入显示数据 |
bbh | 换帧信息 |
cch | 调节亮度 |
ddh | 点检启动信息(预留) |
当分扫卡的网口接收到aah数据时,表明该帧传入的是显示数据信息,FPGA接收该帧的所有数据并将其存入到分扫卡上的SRAM中;接收到bbh时,表明启动换帧信息,这时候分扫卡将新的显示内容显示到LED显示屏上;接收到cch时表明接收到的是亮度信息数据,分扫卡将根据接收到的亮度数据在OE端生成PWM波,从而达到调节LED显示屏亮度的目的;较后当分扫卡接收到ddh时,该系统将对整个LED显示屏进行断点检测。
控制系统实际应用
该静态灰度控制系统目前己经通过了实验室的各项测试并且在实际社会中得到了实际应用,图4.8为该新型LED模组以及静态灰度控制系统在实验室测试的场景:
由上图可以看出,该新型LED显示屏模组以及静态灰度控制系统可以很好地进行灰度图片的显示,且有着良好的显示效果。目前该LED模组己经LED显示屏静态灰度控制系统已经正式商用,经过长时间实际应用表明,该新型LED显示屏模组有着更好的显示效果,同时该控制系统有着良好的稳定性。