(2021年整理)嵌入式系统设计实训报告_第1页
(2021年整理)嵌入式系统设计实训报告_第2页
(2021年整理)嵌入式系统设计实训报告_第3页
(2021年整理)嵌入式系统设计实训报告_第4页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统设计实训报告嵌入式系统设计实训报告 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(嵌入式系统设计实训报告)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为嵌入式系统设计实训报告的全部内容。上海海洋大学嵌入式系统设计项目实训报告(2016 2017第_1_学期) 专业:_计算机科学与技术_实训项目:_嵌入式应用-电

2、子相册_ _实训时间:_2016_年_12_月_26_日实训成员:_孙嘉晨 1351127_ _周力 1351137_ _ _指导老师:_池涛_计算机科学技术系2015年11月制一、实训目的通过电子相册的制作,了解s3c2440芯片的构造,了解外围sdram及nandflash的存储结构。学会运用定时器中断及通过lcd显示图片,加强自身对嵌入式的理解,提升自身的实践能力。二、实训内容以s3c2440芯片为核心,通过外围sdram及nandflash存储实现照片的存储,结合定时器中断,实现lcd显示图片,完成简易电子相册的设计。三、实训设备硬件:mini2440硬件平台软件:bmp2h。exe软

3、件进行图片转换 codewarrior for arm developer suite软件四、实训设计方案(包括项目功能需求分析,方案设计,完成时间规划)需求分析:在上世纪末本世纪初,电子相册呈现迅速发展的势头,普及型数码相机的分辨率由200万象素增长到现在的800-1500万象素,价格也由300美元左右下降到现在的120美元左右。随着数码相机的日益普及,作为一种以数字照片的保存、回放和浏览为核心功能的产品电子相册自然迎合了消费者的需求。方案设计: 软件设计:代码包含2个模块,lcd模块包含两个文件,进行图片的显示与编辑;timer模块包含6个文件,其中timer.c和timer。h文件完成定

4、时器的初始化,interrupt。h和interrupt.c文件完成定时器中断函数的初始化,isrservice。h和isrservice。c文件完成定时器中断处理,pic。c和pic.h等文件是由图片生产的c语言数组文件 硬件方面选择了s3c2440为核心的架构。基于arm的微处理器具有低功耗、低成本、高性能等特点,arm采用risc(精简指令集计算机)架构和流水线结构,使用了大量的寄存器,具有极高的工作效率。其中,risc架构具有如下特点:固定长度的指令格式,指令归整、简单,基本寻址方式只有23种,使用单周期指令,便于流水线操作.因此选择此硬件方案的优势有如下:(1)系统芯片功能强大,实现

5、的功能多,对于新的多媒体格式支持性好,只需要安装更新的软件;(2)硬件电路简单,可采用标准电路,不需耗费过多的资源(人力,资金等);(3)可以在硬件上增加模块,留作二次开发使用,极为方便;(4)s3c2440是一个比较成熟的芯片,技术积累齐全;(5)s3c2440支持丰富的存储卡接口。完成时间规划:第一天分析实训项目实现过程,完成软件方面内容,编写代码。 第二天实现硬件分析,完成硬件连接,对项目进行测试。 第三天完成实训内容,提交报告。 五、实训项目实现代码结构逻辑:main.c文件tft lcd模块timer模块pic.c文件pic.h文件lcd.c文件lcd.h文件time.c文件time

6、.h文件isrservice.c文件isrservice.h文件interrupt.c文件interrupt.h文件s3c2440简介:samsung 公司推出的32位risc处理器s3c2440a,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案.s3c2440为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。采用272脚fpga封装,内含一个arm920t内核。为了降低系统成本,s3c2440a 提供了以下丰富的片内外围.arm9s3c2440处理器,arm920t核由arm9tdmi、存储管理单元,mmu和高速缓存三部分组成.其中mmu

7、可以管理虚拟内存,高速缓存由独立的16kb地址和16kb数据高速cache组成。arm92t0有两个内部协处理器:cp14和cp15。cp14用于调试控制cp15用于存储系统控制以及测试控制.总的资源如下:内核工作电压为1.2v,内存工作电压兼容1.8v/2.5v/3。3v,外围i/o口使用3。3v,集成16kb的指令缓存和16kb的数据缓存,带mmu(memory management unit),支持sram和sdram等内存。lcd控制器接口(最高支持4k色的stn和256k色的tft)4通道dma控制器3通道uart2通道spi接口iic总线接口iis音频编解码数据接口ac97音频接口

8、mmc/sd存储卡接口2通道usb传输接口和1个复用的usb设备接口4通道pwm(脉宽调制)定时器和1个看门狗定时器8通道10位adc和一个触控屏接口实时时钟130个gpio口和24通道外部中断源接口片上pll时钟发生锁相环硬件系统框图如下:lcd显示arm芯片s3c2440sdramnandflash时钟电路电源sdram存储接口原理图:sdram:同步动态随机存储器,同步是指 memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写.sdram从发展到现在已经经历了四代

9、,分别是:第一代sdr sdram,第二代ddr sdram,第三代ddr2 sdram,第四代ddr3 sdram.(显卡上的ddr已经发展到ddr5) 第一代sdram采用单端(single-ended)时钟信号,第二代、第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。sdram之所以成为drarm就是因为它要不断进行刷新(refresh)才能保留住数据,因此它是dram最重要的操作。那么要隔多长时间重复一次刷新,目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行

10、数量/64ms。我们在看内存规格时,经常会看到4096 refresh cycles/64ms或8192 refresh cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个bank的行数.刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15。625s(微秒,1/1000毫秒),8192行时就为7。8125s.hy57v561620为8192 refresh cycles / 64ms。本设计采用32m的hy57v56162来设计sdram存储电路,它的单片内存规格为256mbit 4m16bit4 banks,即容量为32mb的16位sdram。使用s

11、3c2410的ngcs6片选信号hy57v56162的数据总线与上s3c2410的低16位相连。操作地址的最小值变为0x00000004,所以将s3c2410的addr2-addr14顺序与hy57v56162的a0-a12相连。为了能够正确访问hy57v56162高/低位字节数据,又将hy57v56162的ldqm和udqm分别与nbe0:nwbe0:dqm0和nbe1:nwbe1:dqm1相连, hy57v56162的ba0、ba1是sdram内部bank选择地址线,代表着sdram内存的最高地址,因为两片hy57v56162组成了64m的内存,也就是说要26根地址线来实现寻址,所以将ba

12、0、ba1分别与s3c2410的addr24和addr25引脚相连。原理图如下图所示:实验代码:nandflash存储接口原理图:nandflash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。nandflash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、mp3随身听记忆卡、体积小巧的u盘等。nor和nand是现在市场上两种主要的非易失闪存技术。intel于1988年首先开发出nor flash技术,彻底改变了原先由eprom和eeprom一统天下的局面。紧接

13、着,1989年,东芝公司发表了nand flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级.但是经过了十多年之后,仍然有相当多的硬件工程师分不清nor和nand闪存。许多业内人士也搞不清楚nand闪存技术相对于nor技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时nor闪存更适合一些.而nand则是高数据存储密度的理想解决方案。nand flash的单元尺寸几乎是nor器件的一半,由于生产过程更为简单,nand结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。nandflash读和写操作采用512字节的块,这一点有点像硬盘管理此类

14、操作,很自然地,基于nand的存储器就可以取代硬盘或其他块设备。nor flash占据了容量为116mb闪存市场的大部分,而nand flash只是用在8128m b的产品当中,这也说明nor主要应用在代码存 储介质中,nand适合于数据存储,nand在compactflash、secure digital、pc cards和m mc存储卡市场上所占份额最大。当前norflash价格比较昂贵,考虑到成本问题,本设计采用了64m的k9f1208u0b nand flash作为介质存储电路,将k9f1208u0b的i/o0-7与上s3c2410的数据总线data0-7相连,实现数据的读写.s3c2

15、410中nand flash控制器的r/nb与k9f1208u0b的r/nb相连,可以检查nfce/gpa22、nfre/gpa20、nfwe/gpa19分别与k9f1208u0b的cle、nce、nre、new是否相连。分别可以控制k9f1208u0b的地址锁存使能、命令锁存使能、片选使能、读使能和写使能。原理图如下图所示:lcd电路模块:lcd 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置tft(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过tft上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的.现在lcd已经替代crt成为主流

16、,价格也已经下降了很多,并已充分的普及。lcd制造时选用的控制ic、滤光片和定向膜等配件,与面板的对比度有关,一般而言,对比度能够达到350:1就足够了,但在专业领域这样的对比度平还不够。相对crt显示器轻易达到500:1甚至更高的对比度而言,只有高档液晶显示器才能达到这样如此程度。lcd是一种介于固态与液态之间的物质,本身是不能发光的,需借助要额外的光源才行。最早的液晶显示器只有上下两个灯管,发展到现在,普及型的最低也是四灯,高端的是六灯。四灯管设计分为三种摆放形式:一种是四个边各有一个灯管,但缺点是中间会出现黑影,解决的方法就是由上到下四个灯管平排列的方式,最后一种是u型的摆放形式,其实是

17、两灯变相产生的两根灯管。六灯管设计实际使用的是三根灯管,将三根灯管都弯成u型,然后平行放置,以达到六根灯管的效果。下2图是s3c2410x芯片内部集成的lcd控制器的外部管脚图和内部方框图,其中内部的寄存器作用如下:regbank有17个可编程寄存器组和25616的调色板存储器,用来设定lcd控制器。lcdcdma是一个专用dma,自动从帧存储器传输视频数据到lcd控制器,用这个特殊的dma,视频数据可不经过cpu干涉就显示在屏幕上。vidprcs接受从lcdcdma来的视频数据,并在将其改变到合适数据格式后,经vd23:0将之送到lcd驱动器,如4/8单扫描或4双扫描显示模式。lendlcd

18、-pwrenlcdvf0lcdvf1lcdvf2s3c2440lcd控制器vd23-0vm/vden/tpvframe/vsync/stvvline/vsync/cpvvclk/lcd hclktimegen 由可编程逻辑组成,以支持不同lcd驱动器的接口时序和速率的不同要求.timegen产生vframe、vline、vclk、vm信号等.数据流描述如下:fifo存储器位于lcdcdma。当fifo空或部分空时,lcdcdma要求从基于突发传输模式的帧存储器中获取数据,存入要显示的图像数据,而这个帧存储器是lcd控制器在ram中开辟的一片缓冲区。当这个传输请求被存储控制器中的总线仲裁器接收到

19、后,从系统存储器到内部fifo就会成功传输4个字。begbanklcdcdmavidprcsvideomuxlpc3600timegenvsynchsyncvclkvdenlcdvf0lcdvf1lcdvf2vd23-0由于s3c2410内部集成的lcd控制器如上所以设计的外接lcd电路模块如下图: 软件代码:main。c文件:include timer。h#include”isrservice.hinclude uart.h”include lcd。h”#include ”pic。h”include pic1。h”#include ”pic2。h”include ”pic3。h”#inclu

20、de ”pic4。hinclude led。h”void io_init(void) ;unsigned int flag = 0 ;int main(void)io_init() ;while(1)switch(flag)case 1:paint_bmp(pic) ;break ;case 2:paint_bmp(pic1) ;break ;case 3:paint_bmp(pic2) ;break ;case 4:paint_bmp(pic3) ;break ;case 5:paint_bmp(pic4) ;break ;default: break ; return 0;void io_

21、init(void) timer0_init() ; timer0_interrupt_init() ;isr_init() ;lcd_init() ;lcd.c文件:include 2440addr。h#include ”lcd.h#define low21bits(n)(n) & 0x1fffff)/ to get lower 21bits#define lcd_enable() rlcdcon1 |= 1volatile unsigned short lcd_buffer240320;extern unsigned char _chs;static void lcd_config(voi

22、d) rgpccon = 0xaaaa02a9; rgpdcon = 0xaaaaaaaa; rlcdcon1 = (clkval_tft 8)(3 5 )|(bppmode_tft 1) ; rlcdcon2 = (vbpd 24)|(lineval_tft 14)|(vfpd 6)(vspw); rlcdcon3 = (hbpd 19)|(hozval_tft 8)|(hfpd); rlcdcon4 = (hspw); rlcdcon5 = (frm565_tft 11) (invvclk_tft 10) | (invvline_tft 22) 1); rlcdsaddr2 = low21

23、bits( ((unsigned int)lcd_buffer + (lcd_ysize_tft lcd_xsize_tft *2) ) 1 ); rlcdsaddr3 = (0 11) | (lcd_xsize_tft / 1); void lcd_powerenable(int powerenable)rgpgcon = rgpgcon (38)) |(38); rgpgdat = rgpgdat (14) ;rlcdcon5 = rlcdcon5 & (13)) (powerenable3); void putpixel(unsigned int x,unsigned int y, un

24、signed short c )if ( (x 320) & (y 240) )lcd_buffer(y)(x) = c;void paint_bmp(const unsigned char bmp)int x,y;unsigned short c;int p = 0; for( y = 0 ; y 240 ; y+ ) for( x = 0 ; x 320 ; x+ ) c = bmpp+1 | (bmpp8) ;if ( ( x 320) & ( y 240) )lcd_bufferyx = c ;p = p + 2 ; void lcd_init(void)lcd_config() ;l

25、cd_enable() ;lcd_powerenable(1);lcd.h文件:ifndef _lcd_h_define _lcd_h_define mval (0)define invvden (1)/0=normal 1=inverted#define hwswp (1)/half word swap controldefine pnrmode (3)/ 设置为tft屏#define bppmode (12)/ 设置为16bpp模式define lcd_xsize_tft (320)#define lcd_ysize_tft (240)define clkval_tft (7) #defi

26、ne vbpd (14)#define vfpd (11)define vspw (2)define hbpd (37)define hfpd (19)#define hspw (29)define hozval_tft(3201)#define lineval_tft(2401)#define bppmode_tft (12)define frm565_tft (1) #define invvclk_tft (1)#define invvline_tft (1) #define invvframe_tft (1)define invvd_tft (0) #define invvden_tft (0)define pwren_tft (0)extern void lcd_init(void) ;extern void lcd_powerenable(int powerenable) ;extern void paint_bmp(const unsigned char bmp) ;endiftimer。h文件:ifndef _timer0_h_#define _timer0_h_void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论