原创 M.M.数码相框DIY记录(2)(081219p2330)

2008-12-21 02:45 2215 4 4 分类: MCU/ 嵌入式
粘贴后格式和标号有所变化,后期的主PDF会修正这个问题。

---------------------------------------------------------------------------------------------

1.1        预备

(1)了解你所选择的控制器体系结构和开发环境;

(2)具备一定的编程知识。

(3)了解实时操作系统。本次使用了uCOS-II RTOS,那么你可能需要把它移植到您的处理器上来。或者您可以选择更适合您自己的系统,前后台也可以。

预计制作过程中需要解决的问题:

(1)系统物理和软件构建;

(2)系统移植;

(3)液晶屏驱动(准备使用uCGUI);

(4)键盘等外设的驱动;

(5)文件系统;

(6)SD/CF/IDE的驱动;

(7)图片格式解码;

(8)其他辅助功能(如RTC, 温度等)。

以上列出的都只是一些必要解决的问题。仔细看看,提到数码相框或许您会认为原理很简单,但是仔细想想其中也囊括了很多实用的知识,这些东西大部分都不依赖硬件平台而存在,有较强的移植性。

后期可能会依个人的喜好加入一些自己的想法,如果可能希望您能有更多的创意。好了,万丈高楼平地起,把美好的憧憬放入心底,我们现在需要做的就是各个击破!

2. 硬件所有系统的设计都离不开系统根图。在这个阶段,你需要简要的思考系统的构成。这个过程中可能你会有很多灵感的闪现,此时一定要拿起笔记下来,我始终相信一句话:好记性比不上烂笔头!有时候我们把这种记录灵感的图像叫做mad map。呵呵,顺便贴上我自己的mad map(本来是画在纸上的,顺便转成文档格式)。

 f75af3c9-2b21-4f7a-aa52-9a647c5bf9d3.jpg

­

­

2.4.1  系统mad map

在这个阶段里,除了自己的灵感,可以到网络中去搜索一些电子相框的完成方案,这样不仅可以使自己的设计更加完善,您也会惊奇的发现有很多相当棒的点子。这些东西都需要拿笔记下来哦。

当有了个大体的框架后那么就需要进一步的细化。其实,上一节里列举的需要完成的东西其实就是我想要按照完成的顺序,类似框架。系统架构是一门很广博的学问,更是一门艺术。系统架构实在不是一朝一夕能学好的,大家原谅我这粗制滥造的东西吧,我会努力的,嘿嘿!

初步打算就按照以上的顺序,以上过程如果有反复和更改请勿殴打!砖头可以来!一直认为图片可以更清晰表达我的思维。疏漏、错误之处还请您指正。

硬件组图如图 2.4.2所示。

 

­点击看大图

­

2.4.2  硬件组图

系统软件架构如图 2.4.3所示。

 点击看大图

­

2.4.3  软件架构

这里仅仅是出发前对系统的简简单单的规划。真正实施起来肯能会有些许的扩展或删减。不过,请相信您自己肯定能比上面所列举的功能做得更加完善和稳定。设想过系统的框架后是否心里就有一些底了?是不是迫不及待想去实现自己一连串的想法了呢?哈,且慢!以上所涉及的仅仅是空想,那么我们还需要对系统的一些特定的参数进行规划。这样才能用最少的投入获得更有效的回报。不过,反过来说,DIYer好像也不怎么在乎诸如性能评估和成本核算。哈哈,一切就图开心和畅快。不过,性能参数的预估也是必不可少的嘞,就像您要配置一台适用的计算机的时候您会去评估它的性能一样。

本次采用的是2.4240 X 320点阵 65536色屏,虽然属于伪彩的行列,不过我手里的这块屏表现总体还是令人满意的。如果您手里有更好的屏,那就更需要好好将其加以利用喔。

先来算算刷满整屏需要的数据大小。从655536可以看出屏色深为16位(216次方),那么每个像素需要2个字节来表达,屏一共有240 X 230 = 76800点。那么需要76800 X 2 = 153600 字节,折合一下就是 153600 / 1024 = 150 KB 。可见刷一副整屏图像需要150KB数据。这样大数据对于通用计算机来说九牛九分之一根毛都不到,但是对于存储空间‘弥足珍贵’的单片机来说目前算是必杀了,当然也没有人会把暴多的图片放在容量又小又较贵的存储器里,那么比较好的解决方案是使用诸如SD/CF卡、硬盘、U盘之类的存储介质。去电脑城、数码广场逛逛您会发现这些东西基本已经是白菜一样的价格了,容量也是能满足数据存储要求的,何乐而不为?本来打算使用U盘作为这次图片的存储介质,但是我自己所使用的平台上的没有现成的U口需要额外的扩展(可能后期会考虑加上)。如果您的有那么可以试一试,顺便可以学习一下USB的协议,可谓是一举多得!存储介质的大小估计128MB就够了,放那么多图片,估计一时也浏览不过来,很小了吧,128M的空间很容易就达到了。其实存储介质不限于一种,可以多挂几种试一试,一来依您最容易找到的为准,二来学习各种介质的存储原理。这些东西学了可以在不同处理器上通用,这些才是真正长久能学以致用的东西。如果,一个相框没有几个按键来操作一下,那将是多么恐怖的一件事。就如您的计算机没有键盘和鼠标一样。以下提供几种不同的方案给您选择:

(1)利用CPUI/O口做编码键盘(简便&便宜);

(2)利用现成的键盘显示驱动芯片(比较现实,可以减轻CPU的负担);

(3)用计算机的外置键盘做键盘输入(有点杀鸡用牛刀的感觉);

(4)其他适合您的方案(嘿嘿)。

初步想了一下并参考了市售的数码相框,个人感觉还是5维建来得比较方便,可能与您手机中间那个类似。当然,你用更少或者是更多也无所谓,程序里处理一下,照样能出效果。哈哈。

我们再来讨论一下这个处理器的选择——老生常谈的问题。我的原则是:使用您用得最熟悉的处理器。不要太多考虑性能和成本,只有您熟悉了它才再来谈及这些,只有您熟悉了一样东西您才会知道发挥它极致,毕竟它们只是工具。这方面我没有多想就利用了手头的SmartARM2200开发板了。因为玩得也有一段时间了,对ARM7架构的处理器有一点点亲切。SmartARM2200的资源主要为:

(1)CPU

l       LPC2220    60MHz, 64K inchip RAM located 0x40000000, no internal flash

(2)外置存储器

l       EXTERNAL PSRAM MT45W4MW16 8 Mbyte

l       EXTERNAL FLASH SST 39VF160  2 Mbyte

l       NAND-FLASH       16M * 8bit

(3)输入设备

l       ZLG7290键盘驱动芯片

(4)接口

l       SD/CF/IDE接口;

l       以太网接口;

l       2个串口;

l       3个液晶接口;

l       1个扩展插座。

看来资源还是比较够用的。用它来做调试应该不是问题。后期如果调试OK,那么可能就需要单独的进行资源裁剪做成单板驱动,仅保留需求的模块即可。

接下来就是选择软件开发环境和调试的工具了。这个和您使用的处理器等有直接的联系,也还是那句话:使用您最熟悉的!本人长期使用ADS1.2环境和JILINK调试器,感觉挺好的,尽管ARM公司已经‘抛弃’了ADS

今天小小感冒,早点睡觉,抗不住了,硬件平台就分析成这样,根据自己手头的平台搭建一个调试环境是万里长征的第一步,好的调试环境能让您事半功倍、游刃有余!

前期花更多的时间去思考系统的架构将为您的系统增色不少,尽管咋们现在都还是菜菜,哈!好,下一节就正式开始硬件施工,到时候就会有翔实的图片资料等着您!
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条