LED点阵书写显示屏913II.docx
- 文档编号:12263501
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:43
- 大小:694.76KB
LED点阵书写显示屏913II.docx
《LED点阵书写显示屏913II.docx》由会员分享,可在线阅读,更多相关《LED点阵书写显示屏913II.docx(43页珍藏版)》请在冰豆网上搜索。
LED点阵书写显示屏913II
LED点阵书写显示屏
摘要
本设计运用了基于NiosII嵌入式处理器的SOPC技术。
系统以ALTERA公司的CycloneII系列FPGA为数字平台,将微处理器、Avalon总线、LED点阵扫描控制器、存储器和人机接口控制器等硬件设备集中在一片FPGA上,利用片内硬件来实现LED点阵的带地址扫描,降低系统总功耗和简化CPU编程的同时,提高了系统的精确度、稳定性和抗干扰性能。
关键词:
SOPCFPGA带地址扫描
Abstract
ThisdesignusingtheNiosIIbasedonembeddedprocessorSOPCtechnology.ALTERAsystemtothecompanyfortheCycloneIIFPGAdigitalplatform、series、Willmicroprocessor、AvalonbusofLEDdotmatrixscanningcontroller、memoryandhuman-computerinterfacecontrollerhardwaredevicefocusedonsuchaFPGA,UsingthepieceofhardwaretoachieveinsideofLEDdotmatrixwithaddressscanning,reducethetotalpoweroftheprogrammingandsimplifytheCPU,improvetheprecisionandstabilityofthesystemandtheanti-jammingperformance.
Keyword:
SOPCFPGAAddressscanning
目录
1引言..................................................................3
2系统方案..............................................................3
2.1主控器选择方案论证...................................................3
2.2点阵驱动方案论证.....................................................3
3理论分析与计算.......................................................4
3.1光笔选取与参数设计..................................................5
3.2LED点阵屏驱动参数设计..............................................5
3.3屏亮自动调节设计....................................................6
3.4超时关显示节电设计..................................................6
4系统电路设计.........................................................7
4.1系统工作原理........................................................7
4.2系统工作时序........................................................7
5系统程序设计.........................................................8
5.1系统流程概述........................................................8
5.2系统总流程图........................................................8
6系统测试与结果.......................................................9
7结论..................................................................9
参考文献...............................................................10
附录:
...................................................................10
附1:
电路原理图.........................................................10
附2:
扫描电路硬件描述...................................................11
附2:
软核NIOSII程序...................................................17
附4:
完整的测试结果.....................................................47
1引言
LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势。
传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势。
FPGA的结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现复杂逻辑功能,满足各种设计需求。
其速度快,功耗低,通用性强,特别适用于大型系统的设计。
使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。
用FPGA做为控制器对本系统进行设计,利用它灵活丰富的I/0资源简化了电路,降低了系统的成本。
本作品用FPGA做为控制器,来实现LED点阵书写显示屏的功能。
2系统方案
2.1主控器选择方案论证
方案一:
以ARM为系统控制器
采用32位RISC微处理器ARM实现点阵屏的控制和编码功能,基本上能完成题目的要求,但是ARM不适合多线程操作,如果应用在系统中会使电路和软件设计变得复杂。
方案二:
用FPGA作为系统控制器
FPGA可以直接用硬件扫描、编码、解码、纠错,速度快、稳定性高、扩展性能好、体积小,可以提供丰富的逻辑单元和I/O资源。
用SOPC工具可以快速生成片上软核处理器,将所有的控制单元集成在一片FPGA芯片内,降低了额外的功耗开支。
采用并行的输入/输出方式,可以达到很快的速度。
这样合理的分配了FPGA资源,具有很强的实时性和准确性。
可以实现各种灵活控制。
综合考虑,最后采用方案二。
2.2点阵驱动方案论证
方案一:
串行方式显示
这种显示方式由译码器单元74HC138、数据移位寄存器74HC595和列驱动器组成,点阵显示屏可以用少量I/O口接收控制器传输下来的大量数据,此方案为点阵显示屏系统中比较常用的,所用器件也比较常用,容易买到。
但是它存在一个致命的缺点,就是刷新速度不够快,高速度的地址编码信息无法发送。
方案二:
并行方式显示
可以通过锁存器芯片来增强FPGA的I/O口的驱动能力,将32位宽的数据同时输入到LED点阵列中,达到并行控制LED点阵的目的。
方案中运用4片锁存器74HC573来组成双缓冲寄存器,驱动LED点阵行线,用5片3-8译码器74HC138组合成5-32译码器对LED点阵的32列进行选取。
这样就避免了各行数据显示不同步的问题。
由于并行数据传输速度非常快,所以高速度的地址编码信息可以同步发出。
综上所述,本设计最终选择了第二个方案。
3理论分析与计算
3.1光笔选取和参数设计
光笔用光电三极管3DU33(3DU33三极管有个普遍识别管腿的方法,发射极位置会有一块突出的头。
)做为的感光元件,LM393为比较器。
由于点阵的光强相对较弱,通过光电三极管的电流很小,通过串接硅二极管来提升光电三极管发射极电压,方便后级比较器作业。
光笔原理图如下图:
LM393内部结构图图1光笔原理图
3.2LED点阵屏驱动设计
本电路采用74HC573做电平转换及行驱动,8550三极管做列驱动,用5片74HC138扩展成5-32译码器对列选信号进行译码,显示亮度和器件参数均可达到系统要求的功能设计。
系统原理图如下:
省略4行
……………………………
……
……
……
……
……
图2LED点阵驱动原理图
3.3屏亮自动调节设计
利用片外A/D转换芯片将当前光强转换成数字信号,将传统的PWM调光技术稍加修改,变换成带编码的PWM调光方式,根据显示的内容进行屏亮的自动调节。
设计的框图如下:
图3点阵屏亮度自动调节图
3.4超时关显示节电设计
基于定时器的数字电路,给定一个时间,当光笔检测到光信号,定时电路自动复位,否则定时电路到给定的时间后数字信号溢出,把溢出信号传送给核心模块,通过功耗管理模块,把系统其余部分模块的时钟切断以达到节电的目的。
系统的节电框图如下:
图4超时待机框图
4系统电路设计
4.1系统工作原理
以NIOSII软核为主控,系统包括LED扫描为主的多功能模块、按键管理模块、LCD控制等,通过键盘扫描来确定工作模式以实现点亮、划亮、擦除、区域拖拽等功能,用外围电路的反相功能能实现点阵显示屏的反显,功耗管理模块对各模块时钟的控制可以实现节电的功能。
光笔输入
反显
点阵数据
显示缓存
RAM
按键
管理
点阵列选
驱动芯片片选控制
A/D调光调理
NIOSII
32位软核
微处理器
功耗管理模块
LCD
控制器
图5系统工作原理框图
4.2系统工作时序
D10~D6送出Y轴坐标的原码,D5为原码的奇校验,D4~D0为原码的反码校检。
经过双层编码校验,有效防止了周边点阵对数据的干扰。
降低了CPU数据处理的难度,只有确定有效的数据才会通过中断被CPU读入内部进行处理。
X轴坐标值则为当前所选列的地址。
系统工作时序图如下:
5系统程序设计
5.1系统流程概述
本系统是以软核NIOSII为主控,编程采用模块死循环的方式:
按任意模式设置键将会复位CPU,CPU重新启动后将根据复位标志进入相应的管理模式,从而实现点亮、划亮、擦除、拖移等功能,这种编程模式在降低编程难度的同时增强了系统的可靠性。
5.2系统总流程图
图6系统程序设计流程图
6系统测试与结果
6.1划亮反显擦除拖移的测试和结果
各模块均调通,将调好的模块连在一起,加上5v电压源,启动进行系统初始化。
按键进入点亮模式,用光电笔在LED点阵书写显示屏上接触,可以看到接触的点点亮,LCD上显示亮点的精确坐标。
用光笔快速的在书写显示屏上划过,发现划过的地方变亮,多次操作都能实现。
再次按键,进入反显模式,光笔划过,发现经过的地方没有亮其他的部分高亮,反显测试正常。
再次按键进入擦除模式,用光笔在屏幕上划过,显示屏亮的地方变暗了。
再按一次键可以看到整屏由亮变暗,实现了擦除这一功能。
最后进入多字连写模式和区域拖动模式用光笔在LED点阵显示屏上写四个字,最后在屏上循环显示。
最后对写的字用笔圈起来可以用笔移动。
实现了对象拖移功能。
经过反复的测试,所有的功能都能很好的实现,系统正常。
6.2屏亮自动调节测试和结果
外部光环境人为地改变后,测试LED点阵书写显示屏的亮度是否发生变化如果发生变化,则表明能够自动调节,结果屏亮随外部环境的变化而改变,系统正常。
6.3超时关显示节电测试和结果
加5v电压启动系统,对系统初始化。
设定待机关显示的时间,在测试点接入万用表,不进行任何操作到设定的时间,看显示屏是否自动关闭。
结果书写显示屏自动关闭,电路板测试点上的电流小于5mA。
表明测试正常,完成系统要求。
7结论
本作品完成了题目的基本要求和发挥部分的全部要求,系统性能良好。
通过对作品的各项进行了优化,使系统的性能有了提高。
FPGA的运用提高了强大的数据处理能力和较高的运行速度,并且使电路简单。
同时也提高了系统的集成度和可靠性。
参考文献
《模拟电子线路基础》,吴运昌著,广州:
华南理工大学出版社,2004年;
《数字电子技术基础》,阎石著,北京:
高等教育出版社,1997年;
《FPAG系统设计与实践》,黄智伟著,北京:
电子工业出版社,2004年;
《EDA技术与应用(第2版)》,江国强著,北京:
电子工业出版社,2007年;
《电子系统设计》,李金平、沈明山、姜余祥著,北京:
电子工业出版社,2007年;
附录
附1:
FPGA内部构架图
附2扫描电路硬件描述
modulesaomiao(ram_data,ram_address,
saomiao_clk,saomiao_en_n,
leds_data32,leds_select,
pen_in,
pen_zuobiao_x,pen_zuobiao_y,pen_ok
pen_du_shunjian,liangdu);
//reg[7:
0]liangdu;
input[7:
0]liangdu;
output[3:
0]pen_du_shunjian;
reg[3:
0]pen_du_shunjian;
//line91
input[31:
0]ram_data;
output[4:
0]ram_address;
inputsaomiao_clk,saomiao_en_n;
output[31:
0]leds_data32;
output[4:
0]leds_select;
inputpen_in;
output[4:
0]pen_zuobiao_x;
output[4:
0]pen_zuobiao_y;
outputpen_ok;//兩次數據相同,座標值有效,輸出中斷
regram_clock;
reg[31:
0]leds_data32;
reg[4:
0]leds_select;
reg[4:
0]pen_zuobiao_x;
reg[4:
0]pen_zuobiao_y;
regpen_ok;
reg[4:
0]ram_address;
reg[11:
0]all_shixu;//d'2047.
//hang+xiao.//6bits
//\5..1\0.
reg[5:
0]pen_serial;
reg[5:
0]pen_serial_backup;
reg[4:
0]pen_serial_fan;
always@(negedgesaomiao_clk)
begin
if(!
saomiao_en_n)
begin
leds_select<=5'b11111;
all_shixu=9'd0;
leds_data32<=32'h00000000;
pen_zuobiao_x<=5'b00001;
pen_zuobiao_y<=5'b00010;
pen_du_shunjian<=0;//////////////////////////////////////
end
else
begin
all_shixu<=all_shixu+1;
////////////////////////////////////////////////////////////////
//liangdu='hff;
if(all_shixu==(12'd2000+(liangdu*5-1281)))leds_data32<=32'h00000000;//liangdu
if(all_shixu==12'd2000)all_shixu<=12'd0;
//---------------------------------------------------
case(all_shixu)
12'd0:
leds_data32<=32'h00000000;
12'd1:
begin
leds_select<=leds_select+1;
end
//
12'd2:
leds_data32<=32'hffff0000;
12'd52:
pen_serial[5]<=pen_in;//bigwei
12'd53:
leds_data32<=32'hff00ff00;
12'd103:
pen_serial[4]<=pen_in;//3
12'd104:
leds_data32<=32'hf0f0f0f0;
12'd154:
pen_serial[3]<=pen_in;//2
12'd155:
leds_data32<=32'hcccccccc;
12'd205:
pen_serial[2]<=pen_in;//1
12'd206:
leds_data32<=32'haaaaaaaa;
12'd256:
pen_serial[1]<=pen_in;//smallwei
//
12'd257:
leds_data32<=32'h69969669;//
12'd307:
pen_serial[0]<=pen_in;
//反碼
///////////////////////////////////////////////////
12'd308:
leds_data32<=32'h0000ffff;
12'd358:
pen_serial_fan[4]<=pen_in;//bigwei
12'd359:
leds_data32<=32'h00ff00ff;
12'd409:
pen_serial_fan[3]<=pen_in;//3
12'd410:
leds_data32<=32'h0f0f0f0f;
12'd460:
pen_serial_fan[2]<=pen_in;//2
12'd461:
leds_data32<=32'h33333333;
12'd511:
pen_serial_fan[1]<=pen_in;//1
12'd512:
leds_data32<=32'h55555555;
12'd562:
pen_serial_fan[0]<=pen_in;//smallwei
/////////////////////////////////////////////////////
12'd563:
leds_data32<=ram_data;//xianshi
/*11'd369:
begin
pen_zuobiao_x<=pen_serial[5:
1];
pen_zuobiao_y<=leds_select;
end
*/
12'd564:
if(
(pen_serial[0]!
=(pen_serial[5]+pen_serial[4]+pen_serial[3]+pen_serial[2]+pen_serial[1]))
&&(pen_serial_fan==~pen_serial[5:
1])
)
begin
if(pen_serial==pen_serial_backup)
begin
pen_zuobiao_x<=pen_serial[5:
1];
pen_zuobiao_y<=leds_select;
pen_ok<=1;
end
pen_serial_backup<=pen_serial;//getnewdata
end
//--
12'd580:
pen_ok<=0;//getnewdata
endcase
//---------------------------------------------------
end
end
Endmodule
附3软核NIOSII程序
#include"sys/alt_stdio.h"
#include"system.h"
#include"altera_avalon_pio_regs.h"
#include"alt_types.h"
#include"lcd12864.h"
volatilealt_u8temp_x_old;
volatilealt_u8temp_y_old;
volatilealt_u8PEN_GET;//markint
volatilealt_u8DiJiGeZi;//第幾個字
volatilealt_u32ram_zi_1[32];
volatilealt_u32ram_zi_2[32];
volatilealt_u32ram_zi_3[32];
volatilealt_u32ram_zi_4[32];
alt_u8disp_dijigezi[]="-";
volatilealt_u8quyu_state;//區域功能
volatilealt_u8start_x_point;
volatilealt_u8start_y_point;
volatilealt_u32ram_back_up[32];
volatilealt_u32ram_shixin_xuanqu[32];
/*volatilealt_u8quyu_state;//區域功能
volatilealt_u8start_x_point;
volatilealt_u8start_y_point;
volatilealt_u32ram_back_up[32];
volatilealt_u32ram_shixin_xuanqu[32];*/
volatilealt_u8start_point_biaozhi;
volatilealt_u8likai_start_point;//是否离开原点
volatilealt_u8huidao_start_point;//是否回到原点
volatilealt_u8shixing_xuanqu;//是否已经实心选区
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 点阵 书写 显示屏 913 II