嵌入式系统及应用课程设计说明书格式范文Word文件下载.docx
《嵌入式系统及应用课程设计说明书格式范文Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统及应用课程设计说明书格式范文Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
1设计目的1
2设计要求1
3设计内容1
3.1原理结构分析1
3.2电源电路2
3.3晶体振荡电路3
3.4复位电路3
3.5存储模块4
3.6JTAG接口电路6
3.7输入/输出电路6
3.8初始化程序设计7
总结与致谢9
参考文献10
摘要
S3C4510B是SAMSUNG公司生产的基于ARM7TDMI的RISC微处理器,主频可达50MHZ。
液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,液晶显示以其微功耗、体积小、显示内容丰富、模块化,接口电路简单等诸多优点得到广泛应用。
利用S3C4510B的通用I/O口来控制液晶显示屏的软硬件方法,实现了与LCD控制模块一样的功能。
本文介绍基于S3C4510B型ARM微处理器的输入输出显示系统的构建,并给出系统外围相关器件的选型。
利用S3C4510B的通用I/O口,采用串行方式控制液晶模块显示的方法。
并给出了S3C4510B与LCD模块的硬件连接图和显示程序的部分原代码。
关键词:
ARM;
I/O口;
LCD显示;
输入;
输出
1设计目的
根据所学ARM知识,设计出基于ARM的输入输出显示系统。
将输入的信号送入主控芯片,经处理后送到显示系统显示。
2设计要求
设计几个输入端口如键盘、按键、温度采集、压力采集等将所采集信号送入主控芯片,经过处理后送到显示系统显示。
根据设计题目的要求,选择确定ARM芯片型号、信号采集芯片型号,完成系统硬件设计和程序设计。
3设计内容
3.1原理结构分析
ARM最小系统是由保证微处理器可靠工作所必须的基本电路组成的。
S3C4510B的最小系统由S3C4510B、电源电路、晶体振荡器电路、复位电路和JTAG接口电路组成。
在系统ARM模块主要负责系统控制部分,其硬件体系结构灵活、接口丰富。
核心包括嵌入式ARMCPU及必需的SDRAM和Flash等器件,通过表贴封装的双排插针将各信号线及控制线引出。
这样,只需要设计不同的扩展板即可实现不同的系统功能,节约了开发成本并提高了平台的灵活性。
嵌入式系统硬件平台结构主要分为2大部分:
一部分为系统主板,为基于ARM的最小系统,包括ARMCPU、Flash、SDRAM、串口、键盘等最基本部分;
另一部分为系统扩展板,提供了用于完成各个不同硬件的功能模块。
电源电路
输入电压5V,经过变换给嵌入式微处理器提供3.3V的电压
晶振电路
10MHz有源晶振经过倍频分别为ARM核提供166MHz的时钟频率
微处理器
ARM-CPU,系统的工作和控制中心
Flash
存放嵌入式操作系统、用户应用程序或其他在系统掉电后需要保存的数据
SDRAM
系统代码的运场所
串口
系统与其他应用系统的短距离双向串行通信
JTAG
通过接口可对系统进行调试、编程等
3.2电源电路
在系统中,S3C4510B及部分外围器件需3.3V电源,另外,部分器件需要5V电源,为简化系统电源电路的设计,要求整个系统的输入电压为5V直流稳压电源。
并得到可靠的3.3V电压,因此选用的变换器要满足以上条件,电源电路如图所示。
3.3晶体振荡器电路
晶振电路用于向CPU及其它电路提供工作时钟。
为了获得稳定的运行环境,将S3C4510B的CLKSEL置为高电平,即外部时钟输入直接作为系统时钟。
根据S3C4510B的最高工作频率选择50MHz的有源晶振,不同常用的无源晶振,有源晶振的接法略有不。
有源晶振的4脚接3.3V电源,1脚悬空,2脚接地,3脚为晶振的输出,晶振的输出端接一个小电阻(22欧姆),对时钟信号去尖峰。
该电路用于向S3C4510B和其他电路提供工作时钟。
鉴于有源晶体振荡器在工作可靠性和精度上都要优于无源晶体振荡器,故在系统中使用了有源晶体振荡器。
根据S3C4510B的最高工作频率及PLL电路的工作方式,选择10MHz的有源晶体振荡器,其频率经过S3C4510B内部PLL电路倍频后,最高可达50MHz。
内部PLL电路兼有频率放大和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率。
晶振电路如图所示。
3.4复位电路
复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。
该电路主要完成系统的上电复位和系统运行时用户的按键复位功能,有助于用户调试程序。
复位电路如图所示。
3.5存储模块
1、FLASH:
目前市面上主要有两种类型的FLASH芯片,即NORFlash和NANDFlash。
Intel公司1988年提出了NORFlash芯片技术,NORFlash接口简单,使用独立的地址和数据线,具有快速的随机访问速度,但由于其结构限制,通常在小容量时才肯有明显的成本优势,嵌入式系统中通常使用NORFlash来存储容量较小的程序的启动代码。
本平台使用SST39VF160Flash存储器,SST39VF160是16M位的Flash存储器。
工作电压为2.7V~3.6V,采用48脚TSOP封装或48脚FBGA封装,16位数据宽度,可以以8位(字节模式)或16位(字模式)数据宽度的方式工作。
SST39VF160仅需3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程、整片擦除、按扇区擦除以及其它操作。
本设计中与FLASH连接的引脚为ADDR[21:
0]、XDATA[31:
0]、nRCS0、nOE、nWBE0、nRESFT。
Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,因此,应将存有程序代码的Flash存储器配置到ROM/SRAM/FlashBank0,即将S3C4510B的nRCS<
0>
(Pin75)接至SST39VF160的CE#端。
注意,此时应将S3C4510B的B0SIZE[1:
0]置为“10”,选择ROM/SRAM/FlashBank0为16位工作方式。
2、SDRAM:
系统设计中S3C4510B与SDRAM连接的引脚为ADDR[21:
0]、nSDCS0、nDWE、nSDRAS、nSDCAS、nWBE0、nWBE1、SDCLK、CKE。
S3C4510B支持16位或32位的SDRAM。
在S3C4510B中,可以通过寄存器设置,改变任一存储器组在编址空间里的地址映射。
SDRAM是非线性结构的存储器,通过行、列地址寻址,内部采用组加阵列的寻址方式寻址。
SDRAM与SDROM
FLASH
3.6JTAG接口电路
JTAG(JointTestActionGroup-联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式测试技术。
通过JTAG接口可对芯片内部的所有部件进行访问,是开发调试嵌入式系统的一种简洁高效的手段。
它有2种连接标准,即14针接口和20针接口。
此处选择14针接口的标准。
JTAG接口电路如图所示。
3.7输入/输出电路
S3C4510B提供了18个通用输入/输出接口(简称为GPIO),其中部分GPIO口还可以通过寄存器配置为其他功能。
通过寄存器,可以设置GPIO口为输入或输出模式,在输出模式下还可以设置输出电平的高低。
GPIO口8~11是多功能口,可作为普通GPIO口使用,也可以作为外部中断的输入引脚,通过寄存器IOPCON进行设置,按键电路连接在处理器的GPIO口8~11,可用作外部中断输入。
处理器的输入输出口可以通过连接串并转换芯片来实现对数码管等的控制,从而实现显示输出的功能。
3.8初始化程序设计
以下程序为系统设计中的ARM初始化程序,使用汇编语言书写。
以及C语言书写的显示主程序。
ARM初始化汇编语言部分:
IOPMOD
EQU
0x3FF5000
;
定义IO口模式寄存器
IOPDATA
0x3FF5008
;
定义IO口数据寄存器
IMPORT
Main
AREA
Init,CODE,READONLY
ENTRY
LDR
R0,=0x3FF0000
R1,=0xE7FFFF80
配置SYSCFG,片内4Kcache,4KSRAM
STR
R1,[R0]
SP,=0x3FE1000
SP指向SRAM的尾地址,堆栈向下生成
R0,
=0X3FF5000
R1,
=0X000002A8
设置IO3,IO5,IO7,IO9为输出模式
STR
R1,[R0]
BL
B
.
END
C语言部分:
几个主要的子函数。
#include"
typDef.h"
#define
IOPMOD
(*(volatileunsigned*)0x03FF5000)
IOPDATA
(*(volatileunsigned*)0x03FF5008)
/*定义子函数如下*/
voidclr_lcd_rst(void){IOPDATA&
=0XFDFF;
}
清零复位引脚
voidset_lcd_rst(void){IOPDATA|=0X0200;
}
置位复位引脚
voidclr_lcd_sclk(void){IOPDATA&
=0XFFF7;
时钟端置低
voidset_lcd_sclk(void){IOPDATA|=0X0008;
时钟端置高
voidclr_lcd_sid(void){IOPDATA&
=0XFF7F;
串行输出数据0
voidset_lcd_sid(void){IOPDATA|=0X0080;
串行输出数据1
voidclr_lcd_cs(void){IOPDATA&
=0XFFDF;
清零使能端
voidset_lcd_cs(void){IOPDATA|=0X0020;
置位使能端
voidprint_led_p0(void){IOPDATA|=0X0001;
使led0亮
voidprint_led_p1(void){IOPDATA|=0X0002;
使led1亮
voidoff_led_p0(void){IOPDATA&
=0XFFFE;
使led0灭
/*lcd初始化部分*/
voidInit_lcd(void)
{set_lcd_rst();
delay(4);
write_lcd(0,0x01);
清除显示
write_lcd(0,0x0c);
显示状态设置
write_lcd(0,0x30);
设置为8位控制接口
}
总结与致谢
本次设计设计的系统具有内容广泛的特点。
通过本次课程设计,使我对ARM的掌握和理解,巩固了我在《嵌入式系统开发技术》课程中所学的基本理论知识和实验技能,使我对《嵌入式系统开发技术》课程有了更深入的了解进一步激发了我对所学专业学习的兴趣。
在设计的过程和设计说明书的撰写过程中,………老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。
在此我向老师致以崇高的敬意和衷心的感谢!
在我的学习过程中,衷心的谢谢老师给予我耐心的指导和帮助。
我在此对各位老师表示诚挚的感谢!
参考文献
[1]杜春雷.ARM体系结构与编程[M].北京:
清华大学出版社,2003.
[2]周立功.ARM嵌入式Linux系统构建与驱动开发范例[M].北京:
北京航空航天大学出版社,2006.
[3]斯洛斯(Sloss,A.N.).ARM嵌入式系统开发:
软件设计与优化[M].北京:
北京航空航天大学出版社,2005.
[4]ARM&
Linux嵌入式系统教程.北京:
北京航空航天大学出版社,2004.
[5]陈赜.ARM9嵌入式技术及Linux高级实践教程[M].北京:
北京航空航天大学出版社,2005.
[6]孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M].第2版.北京:
电子工业出版社,2007.
[7]田泽.ARM9嵌入式Linux开发实验与实践[M].北京: