嵌入式课设基于ARM的输入输出显示系统.docx
- 文档编号:28258705
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:18
- 大小:325.37KB
嵌入式课设基于ARM的输入输出显示系统.docx
《嵌入式课设基于ARM的输入输出显示系统.docx》由会员分享,可在线阅读,更多相关《嵌入式课设基于ARM的输入输出显示系统.docx(18页珍藏版)》请在冰豆网上搜索。
嵌入式课设基于ARM的输入输出显示系统
大连科技学院
嵌入式系统设计与开发
课程设计
题目基于ARM的输入输出显示系统
学生姓名 专业班级计算机08-2
指导教师王影姜志明职称 高工副教授
所在单位信息科学系计算机教研室
教学部主任孙辉
完成日期2011年12月16日
课程设计报告单
学号
姓名
专业班级
计算机08-2
考核项目
评分
备注
1
平时工作态度及遵守纪律情况
(10分)
2
掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平
(10分)
3
独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度
(20分)
4
完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)
(60分)
总评成绩
综合评定:
(优、良、中、及格、不及格)
指导教师签字:
2011年12月22日
《嵌入式系统设计与开发课程设计》任务书
一、课程设计任务及要求:
任务:
选择以下一个设计项目进行课程设计:
嵌入式系统实验平台简介、Linux的安装和基本操作实验、交叉编译环境的建立和bootloader的使用、多线程应用程序设计、A/D接口实验、Qtopia2.1.1在2410-S上的移植、无线通讯实验,除此之外,学生可自行选择课题进行设计(课题必须经指导教师审题后合格),对于大型项目可进行团队开发,但应制定详细的项目分工说明。
完成从需求分析、系统设计、系统实现,软件测试的全过程。
要求:
(1)培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
(2)通过对所选题目方案分析比较,确立方案,编制程序与调试程序,掌握嵌入式系统的设计方法。
(3)能够完成团队分工合作,在教师的指导下,完成课题任务。
(4)根据个人的设计调试过程,撰写设计报告。
写出不少于3000字的课程设计说明书。
其正文一般有如下几个方面的内容:
需求分析、概要设计、详细设计、调试分析、运行界面(附主要代码)、测试结果、附录或参考资料。
二、工作量
3周(15个工作日)时间
三、计划安排
第1个工作日-第3个工作日:
查阅相关资料、书籍,阅读示例文档,选择题目。
第4个工作日-第5个工作日:
确定题目,进行结构设计、模块设计。
第6个工作日-第11个工作日:
完成硬件的连接和程序的编码,并且进行调试、测试。
第12个工作日-第14个工作日:
进行课程设计报告的撰写。
第15个工作日:
上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。
指导教师签字:
2011年11月28日
1需求分析
1.1设计目的和意义
设计出基于ARM的输入输出显示系统。
将输入的信号送入主控芯片,经处理后送到显示系统显示。
1.2设计任务要求
设计几个输入端口如键盘、按键、温度采集、压力采集等将所采集信号送入主控芯片,经过处理后送到显示系统显示。
根据设计题目的要求,选择确定ARM芯片型号、信号采集芯片型号,完成系统硬件设计和程序设计。
1.3原理结构及分析
ARM最小系统是由保证微处理器可靠工作所必须的基本电路组成的。
S3C4510B的最小系统由S3C4510B、电源电路、晶体振荡器电路、复位电路和JTAG接口电路组成。
在系统ARM模块主要负责系统控制部分,其硬件体系结构灵活、接口丰富。
核心包括嵌入式ARMCPU及必需的SDRAM和Flash等器件,通过表贴封装的双排插针将各信号线及控制线引出。
这样,只需要设计不同的扩展板即可实现不同的系统功能,节约了开发成本并提高了平台的灵活性。
嵌入式系统硬件平台结构主要分为2大部分:
一部分为系统主板,为基于ARM的最小系统,包括ARMCPU、Flash、SDRAM、串口、键盘等最基本部分;另一部分为系统扩展板,提供了用于完成各个不同硬件的功能模块。
2概要设计
设计几个输入端口如键盘、按键、温度采集、压力采集等将所采集信号送入主控芯片,经过处理后送到显示系统显示。
根据设计题目的要求,选择确定ARM芯片型号、信号采集芯片型号,完成系统硬件设计和程序设计。
ARM嵌入式系统的大致开发流程是:
先在PC机上编写程序源代码;由ARM的交叉编译器编译、链接生成一个目标文件;然后将目标文件转化成可以下载到目标机运行的二进制代码,在目标机上调试运行;最终将调试成功的二进制文件固化在目标机中。
这一系列过程中,最关键的步骤就是在PC机上调试在目标机上运行的程序。
这就需要采用远程调试的方式,即在PC机上运行调试器软件,被调试程序在目标机上运行。
本文描述了这样一个远程调试系统:
利用USB批量传输的可靠性,将远程调试协议EmRDI的报文封装在USB数据包中;协议转换器EmJTAG再根据接收到的USB数据包中的协议信息,转换成适当的JTAG信号来控制和调试ARM核。
协议转换器EmJTAG由ST公司的ST72651芯片外加一片接口驱动芯片74LVC244来实现。
ST72651内部集成了USB模块和数据传输协处理器部件(DTC),通过对DTC的编程来产生控制ARM核的边界扫描序列,以产生相应的JTAG信号。
文章最终实现了PC机对ARM核的目标机的调试功能:
PC机的调试器软件可以下载程序至目标机,实时控制目标机上代码的单步/全速运行或停止,以及设置断点和观察点、读写寄存器/存储器等。
1系统组成及原理如图1所示,整个调试系统包括三部分:
PC机(调试器)、协议转换器(EmJTAG)以及目标板(基于ARM核)。
调试的目的是实现在PC机上控制目标板单步或全速运行,并可以实时地察看或修改寄存器及存储器的值。
系统设计实现了一个远程调试协议EmRDI,它采用点对点的连接方式,以请求响应的方式进行交互。
调试请求由PC机上的调试器软件发出,经由USB总线传输至协议转换器EmJTAG;EmJTAG解读该协议请求,在执行相应的操作之后,以USB数据包的形式发送回PC机(即响应过程)。
EmRDI协议定义了如下一些调试请求:
读/写核寄存器、读/写存储器、设置/清除硬件断点、设置/清除软件断点、设置/清除数据观察点、复位、停止运行、全速/单步运行和返回处理器状态/设备标识符。
经验证,这些请求的组合,可以实现PC机对目标机上ARM核的调试和控制功能。
EmRDI协议请求格式(16字节)如下:
命令前导字节。
3详细设计
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-1设计大纲图
4编码
ARM初始化汇编语言部分:
IOPMOD EQU 0x3FF5000 ;定义IO口模式寄存器
IOPDATA EQU 0x3FF5008 ;定义IO口数据寄存器
IMPORT Main
AREA Init,CODE,READONLY
ENTRY
LDR R0,=0x3FF0000
LDR R1,=0xE7FFFF80 ;配置SYSCFG,片内4Kcache,4KSRAM
STR R1,[R0]
LDR SP,=0x3FE1000 ;SP指向SRAM的尾地址,堆栈向下生成
LDR R0, =0X3FF5000
LDR R1, =0X000002A8 ;设置IO3,IO5,IO7,IO9为输出模式
STR R1,[R0]
BL Main
B .
END
C语言部分:
几个主要的子函数。
#include"typDef.h"
#define IOPMOD (*(volatileunsigned*)0x03FF5000)
#define 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); 清除显示
delay(4);
write_lcd(0,0x0c); 显示状态设置
delay(4);
write_lcd(0,0x30); 设置为8位控制接口
delay(4);
}
5调试分析
系统程序是在ARM公司的集成开发环境ADS1.2中完成开发与调试。
软件设计,是基于嵌入式系统程序设计的前后台设计思想(即传统的主函数加中断的程序设计思想),整个系统的运行是在一个while
(1)加上若干个中断服务程序。
中断部分主要是完成2ms的精确定时和SPI的定时发送的功能。
在整个while
(1)里面完成了按键检测和AD值与重量量纲的转化和将所需要显示的数转换为BCD码的功能。
初始化TAP控制器TAP控制器的基本功能是产生时钟信号和控制信号。
它包括一个带有16个状态的有限状态机:
TestLogicReset状态、RunTest/Idle状态、SelectDRScan状态、SelectIRScan状态、CaptureDR状态、ShiftDR状态、Exit1DR状态、PauseDR状态、Exit2DR状态、UpdateDR状态、CaptureIR状态、ShiftIR状态、Exit1IR状态、PauseIR状态、Exit2IR状态和UpdateIR状态。
初始化TAP控制器的目的是使TAP控制器进入SelectDRScan状态。
无论当前TAP控制器处于什么状态,只要在TMS为1时产生5个TCK信号,TAP控制器就进入TestLogicReset状态。
因此,使TAP控制器进入SelectDRScan状态的步骤为:
首先使TMS为1,产生5个TCK信号,使TAP控制器进入TestLogicReset状态;然后使TMS为0,产生1个TCK信号,使TAP控制器进入RunTest/Idle状态;最后使TMS为1,产生1个TCK信号,使TAP控制器进入SelectDRScan状态。
6测试结果及运行效果
6.1电源电路
在系统中,S3C4510B及部分外围器件需3.3V电源,另外,部分器件需要5V电源,为简化系统电源电路的设计,要求整个系统的输入电压为5V直流稳压电源。
并得到可靠的3.3V电压,因此选用的变换器要满足以上条件,电源电路如图所示。
图6-1电源图
6.2晶体振荡器电路
晶振电路用于向CPU及其它电路提供工作时钟。
为了获得稳定的运行环境,将S3C4510B的CLKSEL置为高电平,即外部时钟输入直接作为系统时钟。
根据S3C4510B的最高工作频率选择50MHz的有源晶振,不同常用的无源晶振,有源晶振的接法略有不。
有源晶振的4脚接3.3V电源,1脚悬空,2脚接地,3脚为晶振的输出,晶振的输出端接一个小电阻(22欧姆),对时钟信号去尖峰。
该电路用于向S3C4510B和其他电路提供工作时钟。
鉴于有源晶体振荡器在工作可靠性和精度上都要优于无源晶体振荡器,故在系统中使用了有源晶体振荡器。
根据S3C4510B的最高工作频率及PLL电路的工作方式,选择10MHz的有源晶体振荡器,其频率经过S3C4510B内部PLL电路倍频后,最高可达50MHz。
内部PLL电路兼有频率放大和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率。
晶振电路如图所示。
图6-2晶体振荡器电路
6.3复位电路
复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。
该电路主要完成系统的上电复位和系统运行时用户的按键复位功能,有助于用户调试程序。
复位电路如图所示。
图6-3复位电路图
6.4存储模块
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]、XDATA[31:
0]、nSDCS0、nDWE、nSDRAS、nSDCAS、nWBE0、nWBE1、SDCLK、CKE。
S3C4510B支持16位或32位的SDRAM。
在S3C4510B中,可以通过寄存器设置,改变任一存储器组在编址空间里的地址映射。
SDRAM是非线性结构的存储器,通过行、列地址寻址,内部采用组加阵列的寻址方式寻址。
图6-4储存电路图
图6-5储存电路图
6.5JTAG接口电路
JTAG(JointTestActionGroup-联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式测试技术。
通过JTAG接口可对芯片内部的所有部件进行访问,是开发调试嵌入式系统的一种简洁高效的手段。
它有2种连接标准,即14针接口和20针接口。
此处选择14针接口的标准。
JTAG接口电路如图所示。
图6-6JTAG接口电路图
6.6输入/输出电路
S3C4510B提供了18个通用输入/输出接口(简称为GPIO),其中部分GPIO口还可以通过寄存器配置为其他功能。
通过寄存器,可以设置GPIO口为输入或输出模式,在输出模式下还可以设置输出电平的高低。
GPIO口8~11是多功能口,可作为普通GPIO口使用,也可以作为外部中断的输入引脚,通过寄存器IOPCON进行设置,按键电路连接在处理器的GPIO口8~11,可用作外部中断输入。
处理器的输入输出口可以通过连接串并转换芯片来实现对数码管等的控制,从而实现显示输出的功能。
7系统开发所用到的技术
S3C4510B是SAMSUNG公司生产的基于ARM7TDMI的RISC微处理器,主频可达50MHZ。
液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,液晶显示以其微功耗、体积小、显示内容丰富、模块化,接口电路简单等诸多优点得到广泛应用。
利用S3C4510B的通用I/O口来控制液晶显示屏的软硬件方法,实现了与LCD控制模块一样的功能。
本文介绍基于S3C4510B型ARM微处理器的输入输出显示系统的构建,并给出系统外围相关器件的选型。
利用S3C4510B的通用I/O口,采用串行方式控制液晶模块显示的方法。
并给出了S3C4510B与LCD模块的硬件连接图和显示程序的部分原代码
本系统就是以ASP为开发平台,以DreamweaverMX2004为开发工具,MicrosoftSQLServer为后台数据库的新闻发布系统,该系统充分解决了系统交互性问题(用户可以对所浏览的新闻进行评论,评论的内容会放入数据库中,管理员在后台查看评论并给出回复。
),在新闻发布模块使用了完整的插件进行新闻发布,能以网页的形式发布也可以以文本形式发布;发布前可以进行预览;支持Flash动画播放和各种图片的发布;新闻可以直接从本地链接中导入也可以从网络上转载。
参考文献
[1]周立功等.深入浅出ARM7:
LPC213X/214X上册.北京航空航天大学出版社.2005.6
[2]华成英,童诗白等.模拟电子技术基础(第四版).高等教育出版社.2006.1
[3][日]铃木雅臣编著.晶体管电路设计(上).北京:
科学出版社,2004.9
[4]谭浩强,C程序设计[M],清华大学出版社
[5]韩亚萍编著.ProtelDXP基础教程.北京:
清华大学出版社,2005.5
[6]张珺,王祖麟.基于LPC2131的失重秤配料系统设计.自动化技术与应用,2007(6)
[7]ARM&Linux嵌入式系统教程北京航空航天大学出版社
[8]C程序设计(第三版)清华大学出版社
[9]鸟哥的私房菜(第二版)人民邮电出版社
课程设计实践总结
本次设计设计的系统具有内容广泛的特点。
通过本次课程设计,使我对ARM的掌握和理解,巩固了我在《嵌入式系统开发技术》课程中所学的基本理论知识和实验技能,使我对《嵌入式系统开发技术》课程有了更深入的了解进一步激发了我对所学专业学习的兴趣。
在设计的过程和设计说明书的撰写过程中,………老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。
在此我向老师致以崇高的敬意和衷心的感谢!
在我的学习过程中,衷心的谢谢老师给予我耐心的指导和帮助。
我在此对各位老师表示诚挚的感谢!
附录
ARM初始化汇编语言部分:
IOPMOD EQU 0x3FF5000 ;定义IO口模式寄存器
IOPDATA EQU 0x3FF5008 ;定义IO口数据寄存器
IMPORT Main
AREA Init,CODE,READONLY
ENTRY
LDR R0,=0x3FF0000
LDR R1,=0xE7FFFF80 ;配置SYSCFG,片内4Kcache,4KSRAM
STR R1,[R0]
LDR SP,=0x3FE1000 ;SP指向SRAM的尾地址,堆栈向下生成
LDR R0, =0X3FF5000
LDR R1, =0X000002A8 ;设置IO3,IO5,IO7,IO9为输出模式
STR R1,[R0]
BL Main
B .
END
C语言部分:
几个主要的子函数。
#include"typDef.h"
#define IOPMOD (*(volatileunsigned*)0x03FF5000)
#define 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;} 时钟端置高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式课设 基于ARM的输入输出显示系统 嵌入式 基于 ARM 输入输出 显示 系统