目前采用的led大屏幕显示系统的控制电路,大多由单个或多个cpu及复杂的外围电路组成,这种电路设计,单片机编程比较复杂,整个电路的调试比较麻烦,可靠性和实时性很难得到保证。针对这种情况,介绍一种基于cyclone ep1c6的led大屏幕设计方案,该设计方案无须外挂flash rom和ram,无须任何外部功能电路,所有功能均由一片cyclone ep1c6和一片单片机spce061a来实现,具有数据处理速度快、可靠性高的特点。其中fpga内部双口ram的运用,为不同总线间的数据通信提供了一个新的解决方案。
1 系统结构及功能概述
设计对象是一块具有192×128个红色led点阵的电子屏。整块电子屏是模块化的结构,每4个16×16的点阵块为一个单元,共3×8个这样的单元。屏上要求连续显示5屏内容,且每屏具有上下左右移动等动画效果,实际应用中主控制室距离电子屏约为200米。结合设计对象的要求和大屏幕设计的特点,系统结构框图如图1所示。
led大屏设计系统由三个主要单元组成:上位机图象/文字编辑与发送部分单元、主控板单元、led电子屏。系统上位机由一台pc机来控制,主要是编辑、发送图象/文字信息到主控板,而主控板对这些数据进行处理后发送到大屏幕上显示出来。
2系统硬件设计
系统硬件设计主要是对主控板的设计,主控板的主要功能包括:数据通讯、数据存储、数据处理、扫描控制等。传统led大屏设计由作为数据存储器的flash rom和数据处理缓存器的ram、cpu和可编程逻辑器件fpga/cpld、作为数据扫描缓冲区的ram组成,其结构如图2所示。
传统主控板硬件设计需要较多的外围器件(有的设计中还不止一个cpu和cpld),不仅硬件结构和连线复杂,而且设计成本较高。此外,由于led大屏幕数据量很大,各个分立存储器之间、单片机与fpga/cpld之前数据实时可靠的传输也是一个问题。为解决这些问题,主控板硬件电路的设计选用一片凌阳单片机spce061a和一片fpga cyclone ep1c6,其结构框图如图3所示。
2.1 cyclone ep1c6和spce061a简介
cyclone ep1c6是altera推出的一款高性价比fpga,工作电压3.3v,内核电压1.5v。采用0.13μm工艺技术,全铜sram工艺,其密度为5980个逻辑单元,包含20个128×36位的ram块(m4k模块),总的ram空间达到92160位。内嵌2个锁相环电路和一个用于连接sdram的特定双数据率接口,工作频率高达200mhz。
spce061a是凌阳科技推出的一款16位微控制器,内嵌32k字flash和2k字sram,并集成了ice仿真电路接口﹑通用i/o端口﹑定时器/计数器﹑中断控制﹑cpu时钟﹑模数转换器a/d﹑dac输出﹑通用异步串行输入输出接口、串行输入输出接口﹑低电压检测/低电压复位﹑看门狗等功能。cpu最高可工作在49mhz的主频下,较高的处理速度使spce061a能够非常容易、快速地处理复杂的数字信号。
2.2 主控板结构及功能
主控板结构如图3所示,上位机发送的数据通过双绞传送到rs422接收模块[2],经转换后送至单片机,由单片机的iob7口以uart中断的方式接收上位机发送的数据。单片机将接收的串口数据以两个字节为单位逐一写入内置的flash中。单片机内部的2k字sram在此作为一个缓存区,每次单片机要向fpga中写一屏新的数据时,先按特定的地址从flash中读出数据并存放到sram中,再将sram的数据并行写到fpga的双口ram中。
fpga在其内部配置一个双口ram缓存单片机写入的数据,同时将这些数据按照大屏的结构和扫描电路的特点,从双口ram中有选择性地读出,并将读出的数据由并转串,按照一定的时序对大屏点阵进行、列扫描,这个时序也是由fpga产生的。扫描数据和时序控制信号从fpga的i/o口输出后,经过一个由74ls245构成的隔离驱动电路送至大屏幕。
2.3 基于fpga的双口ram的配置
基于fpga的双口ram的配置是本设计的独特之处。ram作为中介将单片机送来的数据在led电子屏上显示出来,由于数据显示是一种动态扫描方式,若采用一个ram 区,单片机在写ram 时,fpga只能处于等待状态,fpga读ram时,单片机写数据也无法同时进行,导致屏幕刷新频率降低,动态扫描不连续,影响屏幕的显示效果。因此设计了两个同样大小的ram 区:a区和b区。当单片机写a区时, fpga读b区的数据,单片机写b区时,fpga读a区的数据。此外,由于fpga扫描模块可以达到很高的扫描速率,而单片机的运行速率则相对较低,且两个模块间有大量的数据交换,为此选择高速双口ram,一方面保证单片机和fpga同时读写数据,另一方面保证了数据的处理速度。
cyclone ep1c6提供了20个具有异步﹑双端口﹑带寄存器输入口﹑可选择的带寄存器输出口的存储模块—m4k模块,每个m4k模块的存储容量为4kbit。在quartus软件中进行简单的设置,就可以将m4k模块配置成双口ram,数据和地址的位宽可根据实际需要进行选择。本文设计的ram可容纳两屏的数据,数据位宽为16位,地址为12位,其中地址的最高位作ram分区用,每个区存储一屏的数据,两屏读写同时进行,双口ram的配置如图4所示。
图4 双口ram配置
其中wren是单片机往fpga中写入数据的写使能信号,wraddress[11..0]是写的地址信号, wrclock是写时钟,data[15..0]是写的数据,rdaddress[11..0]是读的地址信号,rdclock是读数据的时钟信号,q[15..0]是读出的数据。
2.4 基于fpga的独立扫描单元
点阵模块是红色led共阴模块,4块16×16点阵模块连接成64×16点阵作为一个单元进行控制,整个大屏有3×8个这样的单元。将led的公共接口作为行控制,行扫描信号同时控制着一行中多个led的通断,以每个led流过的电流为10ma计算,一个单元有64列,行扫描信号至少得提供1a左右的电流,因此,在扫描信号送到led之前必须经过一个三极管以提高驱动能力。三极管选用高速中功率达林顿管tip127,它的集电极吸收电流最大可达5a,保证行驱动能力。由于点阵的每行需要一个三极管驱动,所以一个64×16的单元块需要16个tip127。行扫描电路采用带锁存的移位寄存器74ls595来控制,每片74ls595控制 8行点阵的选通与否。由于采用的扫描方式为每隔8行数据同时扫描,一片74ls595每次只能点亮一行的数据,每行点亮的时间相等即占空比为1/8,因此屏幕亮度非常均衡。
列扫描电路的功能是把要显示的行对应的列数据送到led的阴极,列扫描也是由74ls595控制的。本文设计的屏幕的硬件结构特点是:每8行led的阴极是连在一起的,每片74ls595控制8列数据,每隔8行同时扫描,对于一个64×16的点阵单元,共需要8×2个74ls595控制,每行上的74ls595都是级联起来的。每完成一次列扫描,fpga都要输出一个锁存信号给74ls595以锁存列数据,接着输出行扫描信号点亮对应的行,再对行扫描数据进行锁存,如此循环往复实现整个大屏幕的动态实时显示功能。
由于fpga在行列扫描之前已经对数据进行并串转换,数据都是串行输出的,每隔8行同时扫描,整个屏幕行扫描只需占用1个i/o口,列扫描只需占用16个i/o口,从而大大减少了对i/o的占用。采用fpga设计扫描逻辑,扫描的关键不在是硬件连接,而是对芯片资源的配置。
3 软件设计
系统的软件设计由三部分组成:上位机图象/文字编辑与发送软件设计,单片机控制单元软件设计,fpga控制单元软件设计。
3.1 上位机软件设计
上位机的图象/文字编辑与发送软件由visual basic编写,只须在界面中将屏幕大小设置为192×128,串口选择com1或com2,波特率设置为9600,设置每屏起始地址和要发送的屏数,调入包含相关信息的文件,点击“发送”按钮即可。该软件适用于任何大小彩色/单色屏,提供了丰富的图形/文字编辑﹑修改功能,也可以直接调用windows中的16色画图文件(*.bmp)。
3.2 单片机控制单元软件设计
单片机控制单元的软件设计主要实现三大功能:串行数据接收和存储、数据输出和图象显示方式变换。串行数据接收部分主要是通过uart中断接收并保存数据。图象显示方式变换部分实现图象的变换如上移、下移、左移、右移等以实现丰富多彩的图象显示效果。单片机软件设计是在凌阳科技的集成开发环境unsp ide下完成的,主要由一个c文件和一个asm文件组成,c文件包括5屏数据的循环送显和图像显示方式变换,汇编文件包括中断服务子程序和其他函数调用的子程序。
3.3 fpga控制单元软件设计
fpga控制单元的设计是在quartusii环境下完成,并用硬件描述语言vhdl描述,主要功能是配置双口ram、设计扫描控制电路。该单元的软件设计模块如图5所示。
双端口ram的配置完全通过在quartus环境中设置菜单实现,配置完成后将自动生成一个vhdl文件,描述双口ram的内部逻辑功能,双口ram在整个程序设计作为一个元件调用。
基于fpga的扫描模块的软件设计如下:首先对fpga总时钟clk进行64分频得到clk1,clk1的低电平其间fpga读取双口ram的数据,每4个clk周期读一个16位的数据,共读出16个数。clk1的高电平期间fpga进行列扫描,每2个clk周期同时输出16个数的1位,共32个周期将这16个数由并转串输出到16根数据线上,由于单片机写ram的速度低于fpga对数据的处理速度,剩下的32个clk周期用于等待单片机完成一个区的写操作。12个clk1周期后,一行的数据全部扫描完毕,fpga输出一个列锁存信号给74ls595锁存这些数据,同时输出行扫描信号和行锁存信号,接着扫描第二行,由于采用16根数据线进行隔8行扫描,整个led电子屏128行只要完成8次行扫描即可,时序如图6所示。
苹果市值破万亿 成史上第二个超巨头公司
探讨一下中国动力电池的技术路线
oled电视机有什么优缺点
思必驰与虹美智能成立联合实验室,共同推动人工智能在智能家电领域的应用
角度传感器IC中的片载线性化功能
采用cyclone EP1C6和单片机SPCE061A实现LED大屏幕的设计
荣耀9已正式发布!.华为Mate9,华为P10,荣耀V9,荣耀9你买谁?华为Mate9,华为P10,荣耀V9,荣耀9区别对比评测
光纤链路的端面测试问题
联纲光电创业板IPO!三星电子多年为第一大客户,募资5.41亿扩产等
在线仿真器对嵌入式系统进行调试和开发
不到10%的美国人愿意花费1000美元以上买手机
关于双输入充电IC——RT9502的性能分析和介绍
数字晶体管的特点
Linux中的可重入、异步信号安全和线程安全
立式广告机,定制你想要的广告传播方式
注塑机远程维护系统解决方案,设备问题从此不再犯愁
如何理解电路板上的元器件
直线电机激光打标的包装盒
诺基亚申请石墨烯光传感器专利,微弱光线亦可检测
购买品牌笔记本必修课程