1、 第 21页第一章 绪论根据IEEE(国际电气和电子工程师协会)从应用上的定义为:嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置(原文为device used to control, monitor or assist the operation of equipment, machinery or plants)”1。从20世纪70年代单片机的出现到今天各种各样的嵌入式处理器、微控制器的大规模应用,嵌入式系统已经有了40多年的发展历史,并且是以硬件和软件交替双螺旋式发展的。综观嵌入式技术的发展,大致经历了以下4个阶段2 :第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有
2、与监测、伺服、指示设备相配合的功能,应用于一些专业性强的工业控制系统中2;第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统2;第三阶段是以嵌入式操作系统为标志的嵌入式系统2;第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段2。嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:3 工业控制、交通管理、信息家电、家庭智能管理、网络及电子商务、环境监测、机器人等。随着国内嵌入式应用的发展,ARM因其高性能、低功耗、低成本而成为移动通信、便携设备、消费与图像应用等嵌入式产品的首选。基于ARM技术的微处理器,其应用约占据了32位RISC微处理器75以
3、上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面4。ARM处理器核已经有6个系列产品:ARM7、ARM9、ARM9E、ARM10E、SecureCore以及最新的ARM11系列。随着信息化、智能化、网络化的发展,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、娱乐业等方面。随着国内外嵌入式产品如车载电脑、机顶盒等的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。第二章 硬件系统设计2.1 系统框图首先,根据系统功能需求分析,本系统硬件部分的设计首先考虑它的性能,其次还要顾及它的成本,力求它的性价比及开发时间等指标达到最优。在设计过程中必须考虑到如何使硬件平台尽可能地满足
4、系统软件和应用程序运行时的资源要求如频率、存储器空间等,其次还必须提供丰富的通讯接口,包括程序下载的接口、USB设备接口以及与以太网的通讯接口等,硬件部分还包括电源部分以及其它功能模块的设计,最后还有成本控制的要求。本系统主板整体设计框图如图2-1所示2: 2-1主板的整体设计框图根据实际的应用,设计的该系统分为以下几个部分:处理器、电源、复位模块、时钟模块、存储器系统、通讯接口部分、LCD和触摸屏、JTAG接口、键盘。1处理器:S3C2410是整个硬件系统的核心,除了完成所有的逻辑运算和控制功能外,还提供各种通讯接口及其它的功能模块,例如LCD控制器、USB总线控制器等。2时钟模块:提供给C
5、PU内核时钟输入的模块。3存储系统:外部扩展存储系统是必不可少的,包括SDRAM与Flash ROM接口,它提供了操作系统和应用程序运行的空间并用来存放操作系统和应用程序以及其它数据。4通讯模块:包括USB、UART、网络接口,提供主板与外界通讯的通道,USB接口还被用来接外部设备。5LCD显示器与触摸屏接口:作为系统显示与人机交互的必不可少的接口。6JTAG接口:作为系统调试接口,可以通过JTAG口下载程序或进行在线调试。2.2 三星S3C2410介绍S3C2410 是韩国三星公司的一款基于ARM920T 内核的16/32 位RISC 嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应
6、用。运行的频率可以达到203MHz ARM920T 核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。其中MMU 可以管理虚拟内存,高速缓存由独立的16KB 地址和16KB 数据高速Cache 组成。 ARM920T 有两个协处理器:CP14 和CP15。CP14 用于调试控制,CP15 用于存储系统控制以及测试控制。S3C2410的资源包括5:(1) 1个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)。(2) SDRAM控制器。(3) 3个通道的UART。(4) 4个通道的DMA。(5) 4个具有PWM功能的计时器和一个内部时钟。(6) 8 通道的10位ADC。(7
7、) 触摸屏接口。(8) IIS总线接口。(9) 2个USB主机接口,1个USB设备接口。(10) 2个SPI接口。(11) SD接口和MMC卡接口。(12) 看门狗计数器。(13) 117个通用I/O口和24位外部中断源。(14) 8通道10位AD控制器。2.3 TFT液晶显示屏TFT型液晶显示技术采用了“主动式矩阵”的方式来驱动。方法是利用薄膜技术所做成的电晶体电极,利用扫描的方法“主动地”控制任意一个显示点的亮与暗。光源照射时先通过下偏光片向上透出,借助液晶分子传导光线。本次设计的实际系统采用了夏普256K色3.5英寸TFT液晶屏,分辨率为320*240,通过VFRAME(帧同步)、VLI
8、NE(行同步)、VCLK(点时钟)、VDATA(视频数据)、VM(开关)等信号可以直接与S3C2410接口。2.4 S3C2410 LCD控制器2.4.1概述S3C2410X 中的LCD 控制器由传送逻辑构成,这种逻辑是把位于系统内存显示缓冲区中LCD视频数据传到外部的LCD 驱动器。LCD 控制器支持单色,使用基于时间的抖动算法和帧频控制的方法,可以支持每像素2位(四级灰度)或每像素4 位(16 级灰度)的单色LCD 显示屏。支持每像素1 位、2 位、4 位和8 位带有调色板的TFT 彩色LCD 和每像素16 位与24 位的无调色板真彩色显示。根据屏幕的水平与垂直像素数,数据界面的数据宽度,
9、界面时间和自刷新速率,LCD 控制器可以编程以支持各种不同要求的显示屏6。2.4.2 方框图图2-2 LCD控制器方框图S3C2410 中LCD 控制器用为传送视频数据和产生需要的控制信号的,如VFRAME, VLINE,VCLK, VM,等。除控制信号外,S3C2410X 中的LCD 控制器还有传送视频数据的端口,如图中VD23:0所示。LCD 控制器由REGBANK, LCDCDMA, VIDPRCS, TIMEGEN, and LPC3600(如图2-2 LCD 控制器框图)组成。REGBANK 有17个可编程寄存器组和用来配置LCD 控制器的256*16的调色板存储器。LCDCDMA
10、是一个专用DMA,自动传送数据到LCD 驱动器。利用这个专用的DMA,视频数据可以在没有CPU 的参与下自动显示。VIDPRCS 从LCDCDMA 接收视频数据,然后将其转换成适合的数据格式通过数据端口VD23:0发送到LCD 驱动器上,例如4/8 位单扫描或4 位双扫描模式。TIMEGEN 由可编程逻辑组成,支持各种常见LCD 驱动器的定时与速率界面的不同要求。TIMEGEN 模块产生FRAME, VLINE, VCLK, VM 等信号。数据流描述:LCDCDMA 有FIFO(First-In First-Out, 先入先出)存储器。当FIFO 为空或者部分为空时,LCDCDMA 模块就以爆
11、发式传送模式从帧存储器中取数据(每次爆发式请求连续取16个字节,期间不允许总线控制权的转变)。当传送请求被位于内存控制器中的总线仲裁器接受时,将有连续的4个字的数据从系统内存送到外部的FIFO。FIFO 的大小总共为28 字,其中分别有12个字的FIFOL 和16个字的FIFOH。S3C2410X 有两个FIFO 存储器以支持双扫描显示模式。在单扫描模式下只有一路FIFO(FIFOH)工作。2.4.3 TFT 型LCD 控制器操作1LCD控制器的外部接口信号VSYNC:垂直同步信号HSYNC:水平同步信号VCLK:像素时钟信号VD23:0: LCD像素数据输出端口VDEN:数据使能信号LEND
12、:行结束信号LCD_PWREN:LCD屏电源控制信号2TIMEGEN(脉冲发生器)产生适合LCD 驱动器的各种控制信号,如VSYNC, HSYNC, VCLK, VDEN,和LEND 等信号。这些控制信号与寄存器组中的控制寄存器LCDCON1/2/3/4/5 的配置密切相关。基于这些可编程LCD 控制寄存器,脉冲发生器可以产生可编程的信号,可支持各种不同类型的LCD 驱动器。VSYNC和HSYNC脉冲的产生依赖于LCDCON2/3寄存器的HOZVAL域和LINEVAL域的配置。HOZVAL和LINEVAL的值由LCD屏的尺寸决定,如下公式:HOZVAL=水平显示尺寸-1 LINEVAL=垂直显
13、示尺寸-1VCLK信号的频率取决于LCDCON1寄存器中的CLKVAL域。VCLK和CLKVAL的关系如下,其中CLKVAL的最小值是0: VCLK(Hz)=HCLK/(CLKVAL+1)2帧频率是VSYNC信号的频率,它与LCDCON1和LCDCON2/3/4寄存器的VSYNC、VBPD、VFPD、LINEVAL、HSYNC、HBPD、HFPD、HOZVAL和CLKVAL都有关系。大多数LCD驱动器都需要与显示器相匹配的帧频率,帧频率计算公式如下:FrameRate=1/(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)(HSPW+1)+(HBPD+1)+(HFPD
14、+1)+(HOZVAL+1)2(CLKVAL+1)/(HCLK)3TFT-LCD信号时序图图2-3 TFT-LCD信号时序图4视频操作S3C2410 中TFT LCD 控制器支持1、2、4 或8 位每像素带调色板显示和16 或24 位每像素无调色板真彩色显示。支持多种颜色映射选择的256 色调色板,使用户的操作更具弹性。5虚拟显示S3C2410X 支持硬件方式的水平和垂直滚屏。要实现滚屏,可修改LCDSADDR1 和LCDSADDR2寄存器中的LCDBASEU 和LCDBASEL 的值(如图2-4)。但不是通过修改PAGEWIDTH 和OFFSIZE来实现。显示缓冲区中的图像在尺寸上应比LCD
15、 显示屏大些。图2-4 虚拟显示滚屏6LCD 的电源控制S3C2410X 有电源控制(PWREN)功能。启用电源控制时,引脚LCD_PWREN 的输出值是由ENVID 控制的。换言之,当引脚LCD_PWREN 连接至LCD 屏的电源开启控制端后,LCD 屏的电源就自动由ENVID 的设置确定。S3C2410X 亦有极性反转位(INVPWREN),可使PWREN 信号的极性反转。此功能只有当LCD 屏有电源控制端口且被正确连接至LCD_PWREN 引脚时方为有效。第三章 TFT屏驱动设计3.1开发环境ARM处理器产品作为一种高性能、低功耗的处理器产品,现在已经得到广泛应用。ARM开发工具也因此得
16、到很大的发展,ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等7。本次设计选用的开发环境为ADS1.2。ADS 1.2提供完整的WINDOWS界面开发环境,C编译器效率极高,支持C以及C+,可以很方便的使用C语言进行开发。提供软件模拟仿真功能,很容易使初学习者能够熟悉ARM的指令系统;配合FFT-ICE使用ADS 1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。3.2 S3C2410启动过程3.2.1硬件启动过程81在板子上电的一开始,系统首先自动判断是否是autoboot模式(这是由
17、硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并且被设置成autoboot,从nandflash开始启动。2在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着bootloader的最前面4k代码)拷贝到samsung所谓的steppingstone里面(实际上是一块4k大小的SRAM).这一过程完全由硬件自动实现,不需软件控制。3在拷贝完前4k代码后,nandflash控制器自动将steppingstone映射到arm地址空间0x00000000开始的前4k
18、区域。4在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行steppingstone上的代码.5而steppingstone上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域.而这steppingstone上的4k代码就是bootloader的前4k代码.6在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然
19、后一个很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置。7在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址,然后跳转到该位置,继续执行bootloader的剩余代码引导系统.3.2.2 LCD的初始化LCD显示模块由S3C2410的LCD控制器和TFT液晶LCD显示器组成。其显示方式以直接操作显示缓冲区的内容进
20、行,LCD控制器通过DMA从显示缓冲区中获取数据,而不需要CPU干预9。本系统采用TFT LCD的分辨率为320240。在点亮LCD之前,首先对LCD控制器相关的寄存器进行初始化,从而使LCD控制器的配置与外接LCD模块特性能够匹配;同在内存中划出一块显示缓冲区,与显示像素点一一对应10,其主要过程包括(1) 初始化LCD端口。(2) 申请显示缓冲区。(3) 初始化LCD控制寄存器,包括设置LCD分辨率、扫描频率、显示缓冲区等。按照上述分析,初始化程序如下:第一部分:TFT LCD数据和控制端口初始化,包括初始化了VD7:0,VD15:8,LCDVF2:0,VM,VFRAME,VLINE,VC
21、LK,LEND等数据以及控制信号。函数名 : static void Lcd_Port_Init(void)第二部分:申请显示缓冲区。S3C2410的LCD控制模块自带了DMA控制器,只要在SDRAM里面开一块空间,然后设定要DMA的起始地址(LCDSADDR1寄存器)和结束地址(LCDSADDR2)就可以了。注意,LCDSADDR2指向的是整个大缓冲区之后的第一个地址。第三部分: LCD控制寄存器初始化。static void Lcd_Init(void)rLCDCON1=(CLKVAL_TFT_2403208)|(MVAL_USED7)|(35)|(121)|0; / (35):11(二进
22、制) = TFT型LCD显示 (121):1100 = TFT型16位/像素 0 :ENVID LCD视频输出和逻辑信号使能位 0 = 视频输出和控制信号无效rLCDCON2=(VBPD_24032024)|(LINEVAL_TFT_24032014)|(VFPD_2403206)|(VSPW_240320); /垂直同步信号的后肩3,LCD 屏的垂直尺寸240-1,垂直同步信号的前肩5,垂直同步信号的脉宽15,rLCDCON3=(HBPD_24032019)|(HOZVAL_TFT_2403208)|(HFPD_240320);/水平同步信号的后肩5,LCD屏水平尺寸320-1,水平同步信号
23、的前肩15 rLCDCON4=(MVAL8)|(HSPW_240320); /MVAL=13, 水平同步信号的脉宽8rLCDCON5=(111)|(110)|(19)|(18)|(07)|(06)|(05)|(04)|(13)|(02)|(022)1);/系统内存中视频缓冲区的位置A30:22/指示帧缓冲区的开始地址A21:1 M5D(U32)LCD_BUFER指取(U32)LCD_BUFER的低21位rLCDSADDR2=M5D(U32)LCD_BUFER+SCR_XSIZE_TFT_240320*SCR_YSIZE_TFT_240320*2)1);rLCDSADDR3=(SCR_XSIZE
24、_TFT_240320-LCD_XSIZE_TFT_240320)/1)11)|(LCD_XSIZE_TFT_240320/1);/LCD中断屏蔽寄存器 决定哪一个中断源被屏蔽。被屏蔽的中断源将不会被响应。rLCDINTMSK|=(3); / MASK LCD Sub Interrupt/LPC3600控制寄存器rLPCSEL=0; / Disable LPC3600/临时调色板寄存器rTPAL=0; / Disable Temp Palette初始化成功并启动LCD的显示,就可以通过对系统存储器的写入来显示屏上显示出对应的内容。如下面代码为在LCD的(X,Y)位置处以颜色C打一个点。stat
25、ic void PutPixel(U32 x,U32 y,U32 c)if ( (x SCR_XSIZE_TFT_240320) & (y SCR_YSIZE_TFT_240320) )LCD_BUFER(y)(x) = c;最直观的图形显示方式就是将图形中的颜色信息逐点输出到LCD的相应位置,有了上面的基础,实现整屏图形的显示或者部分图形显示就变得非常简单。3.3建立开发系统3.3.1硬件调试链接1调试系统架构体系整个调试系统包括集成调试环境和硬件仿真器,它们组成了一个类似于“客户服务器”模型的系统,服务器端把所有硬件封装起来,给客户端只提供了一个虚拟的处理器接口。客户端的调试工具软件通过一
26、个动态链接库与服务器相连,所以服务器一侧的硬件和客户端的调试工具软件是相互独立的。在同一个动态链接库的基础上,双方可以自动行升级或替换,同样也方便了用户选择不同的仿真器和调试软件来组合自己的调试平台11。一个具体的调试程序应该能够支持许多不同的链接库,不同的链接库提供了不同的功能调用。以ADS工具包为例,“ARMulate.dll”提供了一个软ARM内核,用作程序的逻辑验证。若要把Multi-ICE Server程序连接在一起进行实时仿真,则只要调入“MultiICE.dll”就可以了。该动态库文件在Multi-ICE Server的安装目录下可以找到。调试系统架构见下图3-1。图3-1调试系
27、统架构2调试连接ARM JTAG使用标准的25芯并口插座和20针的JTAG插座作为接口。与PC的连接线使用标准的25芯并口连接线缆,与目标板的连接线使用20芯的IDC宽带线缆。PC机通过并口向MultiICE发送数据,MultiICE对嵌入式系统的CPU的JTAG接口产生响应的操作。MultiICE通过20芯的JTAG接口给MultiICE内部硬件系统供电。使用MultiICE的调试系统如图3-2所示。图3-2使用MultiICE的调试系统示意图3.3.2软件使用使用MultiICE调试系统时,还要在PC机上安装MultiICE Server软件,配合硬件调试。软件的使用流程是这样的:(1)保
28、证硬件连接正确的前提下,每次使用MultiICE是都要启动Multi-ICE Server(仿真器驱动程序),运行AutoConfigure来检测目标板上的CPU。(2)启动CodeWarrior for ARM Developer Suite(ADS集成开发环境)建立或调入项目文件,编译项目。(3)在AXD中进行了一些设置工作后开始进行仿真。第四章 TFT屏动画程序开发此次毕业设计中关于小车跑动的显示程序的实现,我采用了在固定点画出小车,然后利用TFT屏滚屏实现小车的移动。4.1设计图图4-1为原始设计图图4-1原始设计图4.2需要函数的实现1清屏函数思想:即用固定颜色填充屏幕函数名:sta
29、tic void Lcd_ClearScr(U16 c)static void Lcd_ClearScr(U16 c)unsigned int x,y ;for( y = 0 ; y SCR_YSIZE_TFT_240320 ; y+ ) for( x = 0 ; x SCR_XSIZE_TFT_240320 ; x+ ) LCD_BUFERyx = c; 2画直线函数思想:数学上的直线是没有宽度、由无数个点构成的集合,显然,光栅显示器只能近地似显示直线。当我们对直线进行光栅化时,需要在显示器有限个象素中,确定最佳逼近该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作,这个过程称为用显示
30、器绘制直线或直线的扫描转换。由于在一个图形中,可能包含成千上万条直线,所以要求绘制算法应尽可能地快。在这里,使用数值微分(DDA)法,设过端点P0(x0,y0)、P1(x1,y1)的直线段为L(P0,P1),则直线段L的斜率为k=(y1-y0)/(x1-x0)。要在显示器显示L,必须确定最佳逼近L的像素集合。我们从L的起点P0的横坐标x0向L的终点P1的横坐标x1步进,取步长=1(个象素),用L的直线方程y=kx+b计算相应的y坐标,并取象素点(x,round(y)作为当前点。 因为:yi+1=kxi+1+b=kxi+b+kDx=yi+kDx所以,当Dx=1;yi+1=yi+k。也就是说,当x
31、每递增1,y递增k(即直线斜率)。根据这个原理,写出DDA画线算法程序。 函数名:static void Glib_Line(int x1,int y1,int x2,int y2,int color)3绘制矩形函数思想:即矩形的四个顶点用线段相连,可调用画直线函数实现函数名:static void Glib_Rectangle(int x1,int y1,int x2,int y2,int color)static void Glib_Rectangle(int x1,int y1,int x2,int y2,int color) Glib_Line(x1,y1,x2,y1,color);
32、Glib_Line(x2,y1,x2,y2,color); Glib_Line(x1,y2,x2,y2,color); Glib_Line(x1,y1,x1,y2,color);4绘制圆函数思想:采用Bresenham画圆算法。Bresenham算法的主要思想是:以坐标原点(0,0)为圆心的圆可以通过0到45的弧计算得到,即x从0增加到半径,然后利用对称性计算余下的七段圆弧。当x从0增加到半径时,y从半径递减到0。设圆的半径为R,则圆的方程为f(x,y)=(x+1)2+y2-R2=0。假设当前列(x=xi列)中最接近圆弧的像素已经取为P(xi,yi),根据第二卦限1/8圆的走向,下一列(x=x
33、i+1列)中最接近圆弧的像素只能在P的正右方点H(xi+1,yi)或右下方点L(xi+1,yi-1)中选择。Bresenham画圆算法采用点T(x,y)到圆心的距离平方与半径平方之差D(T)作为选择标准,即D(T)=(x+1)2+y2-R2。通过比较H、L两点各自对实圆弧上点的距离大小,即根据误差大小来选取,具有最小误差的点为绘制点。对H(xi+1,yi)点有:D(H)=(xi+1)2+yi2-R2;对L(xi+1,yi-1)点有:D(L)=(xi+1)2+(yi-1)2-R2;根据Bresenham画圆算法,则选择的标准是:如果|D(H)|D(L)|,那么下一点选取L(xi+1,yi-1);
34、如果|D(H)|=|D(L)|,那么下一点可以取L(xi+1,yi-1),也可以选取H(xi+1,yi),我们约定选取H(xi+1,yi)。综合上述情况,得:当|D(H)|D(L)|时,选取L点(xi+1,yi-1)为绘制点坐标;当|D(H)|D(L)|时,选取H点(xi+1,yi)为绘制点坐标。然后将选取的点坐标作为当前坐标,重复上述过程直至xi=R或者yi=0为止,(xi,yi)的初始值为(0,R)。函数名:static void Glib_ Circularity (int x1,int y1,int r, int color)5绘制小车函数思想:一个矩形下面有两个圆形车轮函数名: st
35、atic void Glib_Car(int csx1,int csy1,int csx2,int csy2,int cscolor,int r,int qlx1,int qly1,int qlcolor,int hlx1,int hly1,int hllolor )/cs车身,ql前轮,hl后轮4.3小车在屏幕中移动为实现小车在屏幕中从左到右移动,可以有两种实现方式,第一种是用连续重新画LCD屏的方式,每次重画的同时将小车的起始点坐标向前画几位,来实现小车的移动。但这种方式占用资源大,显示的时候会导致很严重的闪烁现象。第二种是利用LCD的虚拟显示来实现,即通过滚屏方式让小车实现移动。首先开辟
36、一个二倍于实际需要大小的缓冲区,通过设置LCDSADDR1 和LCDSADDR2寄存器中的LCDBASEU 和LCDBASEL 的值来实现了小车的移动,其实质是小车并没有动,而是滚动屏幕向左移动。如图4-2所示。通过循环使LCDBASEU 和LCDBASEL从LCDBASEU0 和LCDBASEL0逐渐减小为LCDBASEU1 和LCDBASEL1,这样显示的好处在于占用资源小,显示效果好。图4-2 缓冲区图设计函数名:static void Tft_Car_move ( void )第五章 结束语经过了对嵌入式系统近一学期的学习,通过大胆尝试、认真实践终于完成了本次毕业设计-基于ARM的液晶
37、屏动画显示程序开发。在选定了毕业设计题目之后,我首先了解了嵌入式系统的发展史及其相关概念方面的知识,学习了ARM体系结构及相关的编程语言。其次,在选定开发硬件之后,我仔细学习了三星S3C2410的数据文档,并着重阅读学习了LCD控制器部分,学习了驱动的编写。再次,我学习了ARM的开发环境ADS,并在该环境下,进行相关配置,通过C语言编写,实现了小车的生成以及动态移动。从开始拟定毕业题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战。在这段时间里,我学到了很多知识也有很多感受,从开始时我对嵌入式开发技术一知半解,到独立学习和试验,我查看了许多相关的资料和书籍,让自己头脑中模
38、糊的概念逐渐清晰,使自己对嵌入式开发的过程有每一个非常明确的步骤,作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋。这次论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。在做毕业设计的过程中,非常感谢范老师给我无私的帮助,帮我一一突破难点,交给我的学习方法,使我终生收益。参考文献1 王田苗.嵌入式系统设计与实例开发M.北京:清华大学出版社,2003.2 贾智平,张瑞化.嵌入式系统原理与接口技术M.北京
39、:清华大学出版社,2005.3 马洪连,丁男,李屹璐,马艳华.嵌入式系统设计教程M.北京:电子工业出版社,2006.4 赵寒星,刘涛.从51到ARM-32位嵌入式系统入门M.北京:北京航空航天大学出版社,2005.5 S3C2410 USERS MANUAL. 6 李向阳,曾旖等.在UC/GUI中实现汉字显示J.单片机与嵌入式系统应用,2005,5:76-77.7 周立功.ARM嵌入式系统实验教程M.北京:北京航空航天大学出版社,2004. 8 陈文智.嵌入式系统开发原理与实践M.北京:北京航空航天大学出版社,2005.9 张晓林等编著.嵌入式系统设计与实践M.北京:北京航空航天大学出版社,2
40、006.10 于明,范书瑞.ARM9嵌入式系统设计与开发教程M.北京:电子工业出版社,2006.11 周立功.ARM嵌入式系统软件开发实例M.北京:北京航空航天大学出版社,2004.致谢在我的论文完成之际,我向所有向我提供过帮助的老师表达我最真挚的感谢!特别是我的指导老师范道尔吉老师,他在百忙之中抽出时间,从选题、收集资料、论文写作和修改等各方面给我耐心指导和极大的帮助和鼓励,培养了我对科学究的严谨态度和创新精神,这将非常有利于我今后的学习和工作,在此表示衷心的感谢!我还要感谢电信学院的各位老师,感谢他们对我的培养;另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知识。我还要感谢
41、我的学校,是学校给我提供了优良的学习、生活环境。在此,我再一次表示真挚的感谢!谢谢大家!目 录第一章 绪论1第二章 硬件系统设计22.1系统框图22.2三星S3C2410介绍32.3 TFT液晶显示屏32.4 S3C2410 LCD控制器42.4.1概述42.4.2方框图42.4.3 TFT型LCD控制器操作5第三章 TFT屏驱动设计83.1开发环境83.2 S3C2410启动过程83.2.1硬件启动过程83.2.2 LCD的初始化93.3建立开发系统113.3.1硬件调试链接113.3.2软件使用13第四章 TFT屏动画程序开发144.1设计图144.2需要函数的实现144.3小车在屏幕中移动16第五章 结束语18致谢19参考文献20
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922