题 目: 电子相册
效果图
课程名称: 嵌入式系统
学 院:
专 业:学 号:
姓 名:
指导教师:
完成日期: 2017年X月X日
目 录
1 设计工程背景 2
11 务阐述 2
12 务分析 2
13 课题项目理计划进度表 3
2工程设计方案 3
21 系统方案设计 3
22 硬件电路设计 5
23 软件程序设计 5
3 方案实施 6
31软件程序调试程 6
4 结果结 12
41 设计结果 12
42 结 13
5 收获致谢 14
6 参考文献 15
7 附件 16
附件1 :答辩问题回答记录表 27
1 设计工程背景
11 务阐述
设计务:
制作电子相册求种特效结果显示ARM开发板开发台LINUX
电子相册简介:
数字片存储浏览功具置数存储器USB等卡接口强文件理等特征
背景:
市场需求着数码相机普作种数字片保存回放浏览核心功产品迎合消费者需求嵌入式linux电子相册般电子相册更具优越性实性目前市场目前流电子相册软件普遍体积庞占存硬件求高开发运行速度快占空间硬件求较低功实嵌入式Linux电子相册意义
Linux开发优势:
Linux种开放源码类Unix操作系统目前存着许LinuxLinux核Linux安装种计算机硬件设备中手机板电脑路器视频游戏控制台台式计算机型机超级计算机Linux领先操作系统世界运算快10台超级计算机运行Linux操作系统严格讲Linux词身表示Linux核实际已惯Linux形容整基Linux核GNU 工程种工具数库操作系统 Linux国软件国策尤IT行业庞群体开放体系丰富资源Linux日普推广重点Linux优越性日益凸显Linux学工作实首选目前网络技术服务器网络设备基Linux操作系统少时尚手机PDA媒体播放器等消费类电子产品中已广泛Linux作操作系统
Linux软件国策指引Linux已普学生已发通书籍互联网等资源学Linux 综述提高技术水市场流行需求导进行研发特嵌入式种工程类技术条件允许情况甚应该时刻国际接轨掌握前领先技术
12 务分析
设计目标制作5种电子相册特效负责制作种制作前期首先查阅资料解电子相册背景制作原理形成致设计方案然根资料安装linux虚拟机软件搭建开发环境安装交叉编译根设计方案进行尝试断修改错误直达目标
13 课题项目理计划进度表
序号
阶段完成容
完成时间
1
查阅相关文献资料课题调研
20175202017523
2
掌握设计软件制订进度计划
20175232017527
3
系统方案较选定
20175272017528
4
编写实现特效代码
2017529201765
5
编译运行目标文件查结果根结果进行代码修改
20176052017608
6
制作答辩PPT
20176082017609
7
撰写课程设计说明书
20176092017611
8
答辩
2017612
2工程设计方案
21 系统方案设计
目前市场设计方案:
① 单芯片解决方案
单芯片解决方案ESSAMLOGICMPX等芯片设计代表PHILIPSony等品牌厂商该方式 该方案优点:
(1)结构简单成低芯片功强
(2)媒体编解码速度快
该方案缺点:
(1)扩展余足
(2)读卡部分某方案硬件实现支持新类型卡
(3)应客户求二次开发较方便
②DSP+FPGA等硬件基础软件算法实现功
种方案DSP实现媒体部分编解码算法FPGA实现显示输出格式算法转化读卡部分文件系统部分DSP软件处理外围设备驱动DSP软件算法实现
种方案优点:
功扩展升级性强软件实现读卡部分新类型卡外围设备通升级方式实现
种方案缺点:
(1)整体成较
(2)客户二次开发难度DSPFPGA算法实现需专业员
(3)显示输出FPGA实现该类输出部分数字输出模拟输出支持较弱
③ARM核心方案
ARM等强CPU核心WINCELINUX等操作系统软件核心架构系统方案ARMS3C2410Intel xscale等强嵌入式CPU架构速度200M300MHZ嵌入WINCELINUX等操作系统实现媒体编解码
该方案优点:
(1)系统芯片功强实现功新媒体格式支持需安装更新软件
(2)硬件电路简单
(3)二次开发容易实现
该方案缺点:
(1)成较该类强CPU般PDA等嵌入式领域(2)较耗电软件解码功耗频率相关性
设计选第三种方案:Cortex A8核心Linux操作系统软件核心架构 基Cortex A8微处理器具低功耗低成高性等特点
GEC210开发板简介:
GEC210款高性Cortex A8核心板广州粤嵌股份设计生产发行销售采三星S5PV210作处理器运行频高1GHzS5PV210部集成PowerVR SGX540高性图形引擎支持3D图形流畅运行流畅播放1080P尺寸视频
GEC210采20mm间距双排针引出CPU部分常功引脚外根S5PV210芯片特性分引出标准miniHDMI接口图示
GEC210板载512M DDR2存流畅运行Android LinuxWinCE6等高级操作系统非常适合开发高端物联网终端广告媒体终端智家居高端监控系统游戏机控制板等设备
图21 GEC210开发板(a) 图22 GEC210开发板(b)
22 硬件电路设计
粤嵌GEC210开发板硬件台Ubuntu开发环境通串口进行文件传输工程师定项目基础函数通修改运void lcd_draw_bmp(char *name int x0 int y0 int w int h)函数实现图片位置改变加延时函数运实现五种图片特效
ARM芯片
Cortex A8
时钟电路
LCD显示
USB接口
电路
图23 硬件总框图
23 软件程序设计
总设计方案:
层叠(图形浮现位置)
反转(反转函数)
3 方案实施
31软件程序调试程
①安装虚拟机linux软件
②搭建环境安装交叉编译
1)找ubuntu系统工作目录
图31
2)windos系统找该工作目录创建文件夹arm2009q3tarbz2复制
图32
3)启享文件夹
图33
4)机路径windos系统arm2009q3tarbz2目录名称动生成
图34
图35
5)文件系统中mnthgfsshare目录
图36
6)arm2009q3tarbz2复制opt目录opt默认者root更改opt者登陆账户
图37
7)文件复制opt 目录
图38
8)执行解压命令
② 聚焦逐现特效部分调试
原算做图片翻转特效网查图片翻转特效算法修改:
24bit to 32bit
for(x0y800*480*41x<800*480*3x+3)
{
pic_mem[y3] bmp_mem[x]
pic_mem[y2] bmp_mem[x+1]
pic_mem[y1] bmp_mem[x+2]
y4
}
调试时总出错寻找终原应该图片转换矩阵时图片翻转间步骤误导致调试时直报错转变设计方案先确定出现图片位置通位置处显示图片次出现达三维视觉动态效果反转函数实现图片反转制作程中想加入音乐时间限未实现图片显示函数:
显示张24位bmp图片图片宽度必须4倍数
void lcd_draw_bmp(char *name int x0 int y0 int w int h)
{
int fd
fd open(name O_RDWR)
if (1 fd)
{
printf(open s error\n name)
return
}
图片反转函数:
位运算
int x y ki 0
for (y 0 y < h y++)
{
for (x w x >0 x)
{
b ch[i]
g ch[i+1]
r ch[i+2]
i + 3
color (r << 16) | (g << 8) | b
lcd_draw_point(x+x0 hy+y0color)
}
}
}
显示界面调函数:
显示BMP图片
lcd_draw_bmp(zsbmp 1 1 796 477)
delayms(3000000)
lcd_draw_bmp(zsonebmp 100 60 600 360)
delayms(3000000)
lcd_draw_bmp(zstwobmp 200 120 400 240)
delayms(3000000)
lcd_draw_bmp(zsthreebmp 300 140 200 200)
delayms(3000000)
lcd_draw_bmpop(zsbmp 1 1 796 477)
图片效果速度通改变延时函数时间改变
4 结果结
41 设计结果
设计结果实现4点:
1) LCD显示图片文字
2) 关GEC210芯片Ubuntu环境操作
3) 时更换图片具串行通信功
4) 聚焦逐现图片特效
效果分布展示:
图41 开始界面
图42 逐步缩界面
图43 放反转界面
42 结
设计优缺点:
1) 实现种图片播放特效
2) 二次开发容易实现
3) 图片动播放
4) 未实现手动播放音乐功
设计核心工程实价值:
着数码相机量普媒体播放需求户计算机中存满种片连桌相框中片更换频率提高数码相片进行便捷显示分享编辑删印等操作逐渐成市场需求电子相框数码伴侣等概念型产品逐渐出现数码市场电子相册概念型产品进入市场已六七年目前电子相册产品应礼品市场真正目标户非常广终消费群应该家庭普通消费者应领域更广阔
改进意见:
1) 实现通触屏实现图片特效间切换
2) 音乐播放功增加
3) 张图片合成张图片播放功实现
展:
电子相框结合液晶显示技术电视技术数字存储技术日益成面时尚性数码相机数码摄佳伴侣着核心器件NandFlashLCD屏降价必进步刺激电子相框市场需求
功电子相册方便携带重量轻样式丰富必定更发展空间
5 收获致谢
次设计开始前先开始查资料通查找资料解图片显示种特效实现原理然尝试设计特效开始想特效复杂想步实现尝试方法没成功改变思路图片逐层显示实现动态程特效然简单复杂特效基础明白复杂设计简单开始想着口吃胖子答辩前天设计特效点想效果时想实现触屏音乐播放功前期尝试时直调试成功没实现次设计中遗憾
通次设计更加熟悉linux操作流程熟悉做实验中搭建环境交叉编译开始时步骤记太清楚复遍前实验里体会时学复杂工程做铺垫更解决设计工程理基础基础层建筑会更加稳利时完成图片LED屏显示聚焦逐现特效显示图片操作开始屏幕总会花显示图片理想仔细工程师显示图片代码清屏代码通学商量终完成图片显示特效实现程中开始想做立体炫酷特效通查找资料理解原理算法实现流程调试时总成功里长时间改变设计思路觉应该简单开始做步步增加功通学商量摸索终实现简单特效然设计实现程困难体会学起完成务快收获课没知识体会实践乐趣
感谢队友予帮助老师粤嵌工程师台机会尤粤嵌工程师学指导
6 参考文献
[1] 童凯 基LinuxQt网络电子相框设计实现[D] 电子科技学 2014
[2] 林锋 基ARM7TDMI芯片嵌入式LINUX交叉调试器设计实现[D] 四川学 2002
[3] 王浩 陈邦琼 嵌入式Qt开发项目教程[M] 中国水利水电出版社 2014
[4] 梁融凌 余昌嵩 基嵌入式 Linux 电子书设计实现[J] 牡丹江师范学院学报(然科学版) 2014(4)1214
[5] Yan H Liu L Xue T SPLITSCREEN PROCESSING METHOD AND DEVICE AND COMPUTER STORAGE MEDIUM WO2015123937[P] 2015
[6] 燕丽红 林志雄 杨星 基Windows 7操作系统Qt技术电子相册设计Design of electronic photo album based on Windows 7 operating system and QT[J] 现代电子技术 2013
[7] 范定焓 基ARM9台便携式媒体播放器设计开发[D] 复旦学 2009
[8] 朱涛 种基互联网络电子相册 CN CN 201846349 U[P] 2011
[9] 范定焓 基ARM9台便携式媒体播放器设计开发[D] 复旦学 2009
[10] Zhu M CATERING INFORMATION SYSTEM BASED ON DIGITAL MENU SUPPORTING CARD SWIPING WO 2013152620 A1[P] 2013
[11] 杨燕 陈祝 种基Cortex核家电子相册设计[C] 2014`全国半导体器件产业发展创新产品新技术研讨会暨第七届中国微纳电子技术交流学术研讨会 2014
7 附件
1)答辩问题回答记录(必需)
问:没实现手动播放功?
答:没目前完成动播放图片换功
2)元器件清单
粤嵌GEC210开发板安装虚拟机LINUX电脑
3)设计代码
*
NAME
open and possibly create a file or device
SYNOPSIS
#include
#include
#include
int open(const char *pathname int flags)
int open(const char *pathname int flags mode_t mode)
file descriptor文件描述符
*
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int *plcd NULL
char wo[] {
0x040x400x0E0x500x780x480x080x480x080x400xFF0xFE0x080x400x080x44
0x0A0x440x0C0x480x180x300x680x220x080x520x080x8A0x2B0x060x100x02
}
void lcd_draw_point(int x0 int y0 int color)
{
*(plcd + y0*800 + x0) color
}
顶点x0y0位置开始显示颜色矩形矩形宽度w 高度h颜色color
void lcd_draw_rect(int x0 int y0 int w int h int color)
{
int x y
for (y y0 y < y0+h y++)
{
for (x x0 x < x0+w x++)
lcd_draw_point(x y color)
}
}
lcd清成color颜色
void lcd_clean_screen(int color)
{
int x y
for (y 0 y < 480 y++)
{
for (x 0 x < 800 x++)
lcd_draw_point(x y color)
}
}
void delayms(int xms){
int ij
for( i 0 i < xms i++)
for( j 110 j > 0 j)
}
显示张24位bmp图片图片宽度必须4倍数
void lcd_draw_bmp(char *name int x0 int y0 int w int h)
{
int fd
fd open(name O_RDWR)
if (1 fd)
{
printf(open s error\n name)
return
}
1跳前54byte
lseek(fd 54 SEEK_SET)
char ch[w*h*3]
read(fd ch sizeof(ch))
close(fd)
lcd 素点占4byte 24位bmp 3byte
int color
char r g b
位运算
int x y i 0
for (y 0 y < h y++)
{
for (x 0 x < w x++)
{
b ch[i]
g ch[i+1]
r ch[i+2]
i + 3
color (r << 16) | (g << 8) | b
lcd_draw_point(x+x0 hy+y0 color)
delayms(1)
}
}
}
显示张24位bmp图片图片宽度必须4倍数 左右颠倒
void lcd_draw_bmpop(char *name int x0 int y0 int w int h)
{
int fd
fd open(name O_RDWR)
if (1 fd)
{
printf(open s error\n name)
return
}
1跳前54byte
lseek(fd 54 SEEK_SET)
char ch[w*h*3]
read(fd ch sizeof(ch))
close(fd)
lcd 素点占4byte 24位bmp 3byte
int color
char r g b
位运算
int x y ki 0
for (y 0 y < h y++)
{
for (x w x >0 x)
{
b ch[i]
g ch[i+1]
r ch[i+2]
i + 3
color (r << 16) | (g << 8) | b
lcd_draw_point(x+x0 hy+y0color)
}
}
}
void monitor_touch()
{
int fd
fd open(devevent0 O_RDWR)
if (1 fd)
return
struct input_event ev
int x y
while (1)
{
read(fd &ev sizeof(ev))
判断该事件触摸事件
if ((evtype EV_ABS) && (evcode ABS_X))
{
x evvalue
}
else if ((evtype EV_ABS) && (evcode ABS_Y))
{
y evvalue
}
手指弹起
if ((evtype EV_ABS) && (evcode ABS_PRESSURE) && (evvalue 0))
{
printf(x d y d\n x y)
}
}
close(fd)
}
显示字
void lcd_draw_word(unsigned char *ch int color int len int w int x int y)
{
int i j
int high
32 * 64
字显示:画点(素点)
八点 unsigned char
已知:数组长度:len > 素点数:len * 8
已知:字宽度> 高度:len*8w
high len*8 w 64
int flag
flag w8 4
for (i 0 i < len i++)
{
for (j 7 j > 0 j)
{
if ((ch[i] >> j) & 1 1)
{
if (iflag 0)
lcd_draw_point(7j+x iflag+y color)
else
lcd_draw_point(8*(iflag)+7j+x iflag+y color)
}
}
}
}
int main(int argc char *argv[])
{
int fd
O_RDWR 读写
fd open(devfb0 O_RDWR)
if(fd 1)
if (fd 1)
if (1 fd)
{
printf(open devfb0 error \n)
return 0
}
存映射吧文件者设备映射进程址空间中(存)进程中操作块映射存相操作 映射文件
plcd 存储映射址空间首址
plcd mmap(NULL 800*480*4
PROT_READ | PROT_WRITE
MAP_SHARED
fd
0)
lcd第n素点 显示成红色?
*(plcd + n) 0x00ff0000
坐标(x y)素点显示成红色?
*(plcd + y*800+x) 0x00ff0000
整屏幕全部显示白色?
循环
lcd_clean_screen(0xFFFFFFFF)
显示矩形
lcd_draw_rect(50 50 100 100 0x00ff0000)
显示BMP图片
lcd_draw_bmp(zsbmp 1 1 796 477)
delayms(3000000)
lcd_draw_bmp(zsonebmp 100 60 600 360)
delayms(3000000)
lcd_draw_bmp(zstwobmp 200 120 400 240)
delayms(3000000)
lcd_draw_bmp(zsthreebmp 300 140 200 200)
delayms(3000000)
lcd_draw_bmpop(zsbmp 1 1 796 477)
初始化串口
int com_fd init_serial(devs3c2410_serial3 9600)
lcd_draw_word(wo 0x00ff0000 32 16 100 100)
monitor_touch()
close(fd)
return 0
}
5) 实物电效果图
图71效果图1
图71效果图2
图71效果图3
附件1 :答辩问题回答记录表
学号: 姓名: 专业班级: 14电子信息工程班
老师提问题:
手动播放实现张张暂停?
学生回答问题:
未实现实现图片显示种特效动播放片换尝试实现手动播放音乐播放调试没成功
设计成绩评定:
序号
考核容
评定权重系数
评分
1
设计方案否正确否创新处
02
3
硬件制作软件程序设计否规范
02
4
硬件运行结果否正确
02
5
答辩成绩
01
6
设计报告否规范组织表述否准确清晰
03
加权总分
百分制成绩等级制成绩应关系:90分(含)——优秀80(含)90间——良70(含)80间——中等60(含)70间——格60分——格
总 成 绩:
指导教师:
年 月 日
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档