嵌入式课程设计基于S3C44BOX电子词典软件开发.docx
- 文档编号:6193492
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:25
- 大小:329.47KB
嵌入式课程设计基于S3C44BOX电子词典软件开发.docx
《嵌入式课程设计基于S3C44BOX电子词典软件开发.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计基于S3C44BOX电子词典软件开发.docx(25页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计基于S3C44BOX电子词典软件开发
《嵌入式系统》课程设计说明书
基于S3C44BOX电子词典软件开发
系、部:
计算机与信息科学系
组成员:
指导教师:
职称
专业:
计算机科学与技术
班级:
计本0801班
完成时间:
2011年12月12日
摘要
随着电子系技术的发展,以ARM微处理器为核心的电子应用系统已经进入人们日常生产生活的各个方面,ARM以其出色的性能优势赢得了广大电子产品开发者的认可。
本文作者根据自己的课程学习,掌握了ARM系统微处理器相关的基础知识和基本技术,而这些技术需要实地的实验设计来帮助巩固和深入。
本案例属于日常生活当中和学习研究中比较常见和熟悉的应用,不但有比较强的综合性,而且有很高的趣味性。
在我们系统学习了嵌入式系统开发与应用实践课程之后,结合对ARM微处理器的基础知识和基本技术的掌握,实现了简单电子词典设计。
本设计主要解决了基于S3C44B0X通过I/O控制发光二极管的电子词典。
关键词:
ARM微处理器;词典设计;S3C44B0X
ABSTRACT
Alongwiththeelectronictechnologydevelopment,withARMmicroprocessorasthecoreoftheelectronicapplicationsystemhasenteredpeople'sdailyproductioninallaspectsoflife,ARMwithitsexcellentperformanceadvantagestowinthemajorityofelectronicproductdevelopersrecognized.Inthispapertheauthorsaccordingtotheircourseofstudy,masteroftheARMsystemrelatedtothebasicknowledgeandtechnology,andthesetechnologiesrequirefieldexperimentsdesignedtohelpconsolidateanddevelopment.Thiscasebelongstothedailylifeandstudyinthemorecommonandfamiliarwiththeapplication,notonlyhavestrongcomprehensive,butalsohavehighinterest.
Inoursystem,learningembeddedsystemdevelopmentandapplicationpracticeofcourse,accordingtotheARMmicroprocessorbasicknowledgeandbasictechnicalmastery,therealizationofasimpledirectorydesign.ThedesignofthemainsolutionbasedonS3C44B0XthroughI/Ocontrolledflashing.
Keywords:
ARMmicroprocessor;directory;S3C44B0X
1前言
1.1课题研究背景
随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求。
显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。
目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。
嵌入式方向包括了软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,大于当代大学生,更需要掌握嵌入式系统设计的典型开发工具和开发核心技术。
对于嵌入式市场的发展来说,中国市场的意义更加重大。
中国市场对于嵌入式互联网这场革命来说非常关键。
勃勃的生机,很好的产业互动,良好的协作精神,中国现在正在形成-个健康的嵌入式的发展模式和转型模式。
中国可能是-个引发点,嵌入式市场先在中国蓬勃发展,然后辐射到全球其他地区。
嵌入式系统是近年来发展很快的计算机方面的学科,并迅速渗透到控制、自动化、仪器仪表等学科。
浙江大学从2002年开设嵌入式课程以来,一直关注嵌入式系统领域的课程开发与建设,收集了国内外相关专业的嵌入式课程教学资料,总结并提高课程对嵌入式系统快速发展的适应性。
在英特尔公司的支持下,嵌入式中心从2003年以来嵌入式举办了多次嵌入式课程研讨班,与国内各高校多次探讨了嵌入式课程的知识点与课程安排,并与CMU一同开发嵌入式课程资料。
嵌入式方向包括软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,需要掌握嵌入式系统设计的典型开发工具,培训学生具备嵌入式系统软、硬件的开发能力,对于特定行业领域(例如移动终端、数字家庭、信息家电以及对传统产业信息化改造)已经逐步形成了特定的嵌入式开发方法与手段。
随着软硬件技术快速发展,嵌入式系统不再是一门课程就可以介绍清晰,而逐步成为一个课程群,该方向的专业课程可划分为:
嵌入式系统原理、嵌入式操作系统、实时系统、嵌入式软件设计、软硬件协同设计、嵌入式系统软件工程、嵌入式系统中间件、数字信号处理等。
1.2课程研究目的和意义
Linux操作系统是-个开放源代码的免费操作系统,它不仅安全、稳定、成本低,而且很少发现有病毒传播,越来越的服务器、工作站和个人电脑开始使用Linux软件,基于Linux具有稳定、可靠和强大的网络功能这些优点。
在Linux环境下实现-个boaweb服务器。
嵌人式系统是当前最热门最有发展前景的IT应用领域之一,我们
平常用的手机、可视电话、数码相机、摄像机、机顶盒、路由器、数控设备或仪
表、医疗仪器、航天航空设备等都是嵌入式系统,各个行业对嵌人式技术人才的
需求日益旺盛。
下面就由卓跃教育为您做一个介绍。
对于嵌入式开发工程师来说,在技术上需要逾越三道关卡,分别是"硬件
"开发、操作系统开发和应用软件开发,三者缺一不可(如果缺一环,在工作中
的技术发展会受限)。
逾越三个堡垒的最佳途径是通过平台级的应用软件开发,
锻造良好的应用软件编程思维;在这个软件编程思维和一定的编程经验基础上,
能够更好得看透操作系统,理解操作系统的各个子系统工作原理和构成要素;从
而在具备了一定"硬件"开发基础后,能够在开发板或者公司设计的板子上从容得
搭建起满足成本、性能或其他要求的嵌入式系统,并在这个嵌入式系统上完成设
备应用的软件开发。
嵌入式课程体系应该按照如上的最佳途径来设计的:
(1)基础阶段:
与高校的课程进行衔接,并为学员打下扎实得语言基础
;另外需要熟悉我们后期开发系统的环境即WINDOW和Linux操作系统
(2)平台系统软件:
以软件应用项目为主导,在项目中熟练掌握以GUI、
数据库、网络通讯等上位机的主流开发技术,建立起良好的编程思维和项目模块
化思想,熟悉了基于操作系统以上的开发技术,积累一定的项目开发经验和文档
能力。
(3)嵌入式设备:
以ARM裸机开发为起点,让学员掌握基于芯片级的开发
技术,理解计算机系统一步一步如何从底层被搭建起来。
以一款UCOS-II的嵌入
式设备为例,让学员明白了嵌入式系统工作原理和整个过程中需要完成的各类开
发技术。
最后让学员搭建起以基于嵌入式Linux操作系统的另外一款设备,从中
更加了解嵌入式Linux的总体工作原理以及总体架构,理解驱动开发过程,更加
有助于学员理解应用开发技术。
嵌入式是近几年发展最为迅速的IT领域之一,与我们所熟悉的通用计算机
系统一样,嵌入式系统也属于计算机系统的一种,但其应用领域之广、系统形态之
多、与多种技术结合之紧密,是通用计算机系统所不及的。
1.3S3C44BOX处理器介绍
S3C44BOX简介
S3C44BOX微处理器片类集成ARM7TDMI核,采用0.25μmCMOS工艺制造,并在ARM7TDMI核的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式系统应用系统。
片上集成的主要功能如下:
在ARM7TDMI基础上增加至8KB的Cache。
外部扩充存储器控制器。
LCD控制器,并带有一个LCD专用DMA通道。
2个通用DMA通道2个带外部请求引脚的DMA通道。
2个带有握手协议的UART,1个SIO。
1个多主的I*I*C总线控制器。
1个I*I*S总线控制器。
5个PWM定时器及1个内部定时器。
看门狗定时器。
71个通用可编程I/O口,8个外部中断源。
功耗控制模式:
正常,低速,休眠和停止。
8路10位ADC。
具有日历功能的RTC。
PLL时钟发生器。
2基于S3C44BOX电子词典开发概述
2.1电子词典系统定义与需求分析
电子词典系统应具备以下功能要求:
1.能够通过键盘输入英文。
键盘作为本系统中最主要的输入设备,需要完成26个英文字母的输入,并且需要上翻页,下翻页,上一行,下一行,翻译,退格等功能。
要求键盘至少要有32个按键,每个按键都可以被处理器及时,准确地读入。
键盘具体布局设计如图所示。
按键分别具有如下功能:
Øa~z:
实现字母输入;
ØPageup/down:
显示上/下一个被查询过的单词;
ØLineup/down:
光标移至上/下一行,在单词输入过程中,在单词翻译区会有拼写相近单词显示,用Lineup/down按键可以上下选择这些单词;
ØEnter:
翻译,将当前单词与词库中内如相比较,若一致则显示其内容,否则给出提示;
ØBackspace:
退格,删除单词最末尾的字母并将光标前移一位。
本电子词典系统还需要提供触摸输入,在触摸屏上划分出6个区域,分别对应键盘上的6个功能键。
2.提供友好的人机界面,将输入的内容和翻译的结果显示在LCD的相应区域内。
LCD显示窗口布局如下:
add_
add
[ad]
Vi
增加,计算
Abillthatdidn’taddup
Backspace
Pageup
Liveup
Enter
Linedown
Pagedown
最上面输入框内为单词输入区,中间区域为翻译区,最下面6个方框是触摸屏按键区。
单词输入过程中,翻译区会有相近单词显示,按下翻译键后会在此区域内显示翻译内容。
3.对输入的单词即时翻译。
4.可以记忆3个已经查询过的的单词。
2.2电子词典方案设计
子词典功能需求,结合嵌入式系统软硬件协同设计技术,采取以下设计方案。
2.2.1硬件设计方案
ARM芯片的选择原则,此处选择集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统的S3C44BOX处理器作为系统的主控制器。
利用其内置的LCD控制器实现LCD控制接口;利用I²C总线控制器实现键盘控制接口;利用A/D转换器实现触摸屏控制接口;
利用UART实现调试接口;利用GPIO连接LED灯显示有关状态。
2.2.2软件设计方案
本电子词典软件只要完成键盘操作,菜单操作及LCD显示功能。
根据软件模块化设计方法将系统软件分为3个模块;词库编写,功能控制软件设计,人机交互接口功能设计。
软件总体设计如图:
3基于S3C4BOX电子词典的硬件开发
3.1基于S3C4BOX的最小系统软件
基于ARM的嵌入式最小系统基本组成主要包括:
基于ARM核的微处理器,电源电路,复位电路,时钟电路,存储器电路,UART接口电路和JTAG调试接口。
在电子词典系统中,基于S3C44BOX最小系统的构成如图
3.2显示模块
本设计中的输出设备为液晶显示屏。
LCD屏主要用于显示文本及图形信息,具有轻薄,体积小,功耗低,无辐射危险,平面直角显示及影像稳定不闪烁等特点,因此,在许多电子应用系统中,常使用液晶屏最为显示界面。
3.3触摸屏及键盘模块
输入设备是将外界信息以某种形式输入到系统内部的设备,通常包括键盘,鼠标,麦克风,触摸屏,传感器,摄像头等。
由于适用场合的不同,输入设备可分为以下4大类:
Ø字符信息采集设备:
如键盘,鼠标,触摸屏等;
Ø音频信息采集设备:
如麦克风;
Ø图像采集设备:
如摄像头;
Ø感知系统周边环境的设备:
如温度传感器,湿度传感器,加速度传感器等。
4基于S3C44BOX电子词典软件开发环境的建立
4.1开发环境
电子词典硬件模块测试软件和无操作系统电子词典应用软件的开发采用了相同的交叉开发环境。
宿主机PC机上运行ARM公司为方便用户在基于ARM内核处理器上进行软件开发而推出的集成开发工具ARMADS(ARMDeveloperSuite)最新版本1.2在CodewarriorIDE(IntegrateDevelopmentEnvironment)集成开发环境中编辑电子词典软件程序,通过交叉编译器和交叉链接器对软件进行编译,链接。
最终生成可执行文件,通过在线仿真器Multi-ICE将此可真行文件下载到目标板运行。
在线仿真器通过并口链接宿主机,通过JTAG接口链接目标机。
串口线直接链接宿主机和目标板,在宿主机PC机上显示吊饰信息。
为加快软件开发的进度,在电子词典硬件平台未建立起来以前先使用EmbestEDUKIT实验板作为目标本吊饰各功能模块软件。
5基于S3C44BOX电子词典的软件开发
5.1电子词典各模块测试软件设计
(1)存储器模块
测试目的:
测试CPU能否正常对SDRAMHY57V651620B按字、半字、字节读/写。
会变程序测试函数:
sRWramtest
C语言程序函数:
voidcRWramtest(void)
(2)通用GPIO模块
测试目的:
测试能否通过GPIO的GPC8、GPC9、GPF3、GPF4控制电子词典硬件板上4个LED正常点亮和熄灭。
GPIO的测试函数如下:
VoidGPIO_Test(void)
{
Port_init();
Led1_on();
Led1_off();
Led2_on();
Led2_off();
Led3_on();
Led3_off();
}
(3)UART串口模块
测试目的:
测试串口能否正常通信。
测试带码:
VoidUART_Test(void)
{
Charc1;
Target_init();
While
(1)
{
While(!
(Rurastat0&0X2))
UART_PRINTF(“\ninputachar”);
Uart_sendbyte(0xa);
Uart_sendbyte(0xD);
C1=uart_getch();
Uart_sendbyte(c1);
}
}
(4)LCD显示模块
测试目的:
测试LCD能否正常显示文本及图形。
测试具体代码:
VoidLCD_Test(void)
{
IntI;
Lcd_clr();
Lcd_disp_hz16(10,10,BLUE,”欢迎使用电子词典“);
Set_font(&GUI_Font8x16);
Set_color(GUI_WHITE);
Disp_string(“welcome”,10,24);
/*绘制背景图案*/
Lcd_draw_box(10,40,310,320,GREEN);
Lcd_draw_box(20,45,300,225,GREEN);
Lcd_draw_box(30,50,290,220,GREEN);
Lcd_draw_box(40,55,280,215,GREEN);
}
(5)键盘模块
测试目的:
测试电子测点的键盘能否正常输入相应的字符。
测试代码:
Voidkeyboard_Test(void)
{
CharucChar=0;
Target_init();
While
(1)
{
Rinemsk&=(~(BIT_GLOBAK|BIT_EINT2));
While(f_nkeypress==0);
F_nkeypress=0;
Rinemsk&=(~(BIT_GLOBAK|BIT_IIC));
Iic_read(0x7,0x1,&ucchar);
Uart_printf(0,”inputkeyis0x%x”,ucchar);
}
}
(6)触摸屏模块
测试目的:
测试电子词典的触摸屏能否正常工作。
测试代码:
略。
5.2电子词典应用软件开发
(1)电子词典应用软件结构
1.启动代码
2.驱动程序
3.应用程序
无操作系统应用程序通常由一个协调所有模块功能的死循环主函数和若干功能子函数组成,其代码示意性结构如下:
Voidmain(void)
{
/*定义变量*/
/*系统初始化*/
/**************以下为具体的功能实现****************/
While
(1)
{
/*功能子函数*/
}
}
(2)电子词典系统软件流程
电子词典应用软件主要完成约定键盘,菜单操作及LCD显示功能,根据软件模块化设计方法将系统软件分成3个模块:
词库编写、功能控制软件设计、人机交互接口功能设计。
电子词典软件流程如图:
5.3无操作系统电子词典硬件驱动程序设计
电子词典中主要涉及的硬件驱动有:
Uart驱动程序,LCD驱动程序,键盘驱动程序,触摸屏驱动程序。
在电子辞典硬件模块测试软件时,我们已经积累了许多代码,这里只需要将的代码稍加修改,就可快速开发出各硬件的驱动程序,即:
建立.h头文件:
声明外部函数,定义数据结构。
修改.c源文件:
驱动程序源文件中仅包含功能实现而不需要对功能加以应用。
5.3.1Uart驱动程序
voidUart_Init(intmclk,intbaud,charport);
charUart_Getch(charport);
charUart_GetKey(charport);
intUart_GetIntNum(charport);
voidUart_SendByte(intdata,charport);
voidUart_Printf(charport,char*fmt);
voidUart_SendString(char*pt,charport);
5.3.2LCD驱动程序
externU32GUI_Init(void);
externvoidDraw_Point(U16x,U16y);
externU32Get_Point(U16x,U16y);
externvoidDraw_HLine(U16y0,U16x0,U16x1);
externvoidDraw_VLine(U16x0,U16y0,U16y1);
externvoidDraw_Line(S32x1,S32y1,S32x2,S32y2);
externvoidDraw_Circle(U32x0,U32y0,U32r);
externvoidFill_Cricle(U16x0,U16y0,U16r);
externvoidFill_Rect(U16x0,U16y0,U16x1,U16y1);
externvoidSet_Color(U32color);
externvoidSet_BkColor(U32color);
externvoidSet_Font(GUI_FONT*pFont);
externvoidDisp_String(constS8*s,S16x,S16y);
externvoidlcd_disp_hz16(U16x0,U16yo,U32ForeColor,S8*s);
externvoidDis_Chinese(U16x0,U16y0,U32ForeColor,S8*s);
externvoidLCD_SetColor(U16PhyColor);
externvoidLCD_SetBkColor(U16PhyColor);
externU16LCD_Init(U8Lcd_Bpp);
externvoidLCD_DrawPixel(U16x,U16y);
externvoidLCD_DrawHLine(U16x0,U16y,U16x1);
externvoidLCD_DrawVLine(U16x,U16y0,U16y1);
externvoidLCD_FillRect(U16x0,U16y0,U16x1,U16y1);
externvoidLCD_L0_DrawBitmap(U16x0,U16y0,U16xsize,U16ysize,
U16BitsPerPixel,U16BytesPerLine,
constU8*pData,U16Diff,
constU16*pTrans);
voidword_clear(void);
voidTrans_Clear(void);
5.3.3键盘驱动程序
voidkeyboard_read(U32unSlaveAddr,U32unAddr,S8*pData);
voidkeyboard_init(void);
U8key_set(U8ucChar);
voidiic_int(void);
voidiic_init(void);
voidiic_write(U32unSlaveAddr,U32unAddr,U8ucData);
voidiic_read(U32unSlaveAddr,U32unAddr,S8*pData);
5.3.4触摸屏驱动程序
voidtouchscreen_init(void);
voidtouchscreen_load(void);
voidtouchscreen_cood(S8*pData);
voidtouchscreen_close(void);
voidtouchscreen_int(void);
5.4电子词典系统应用软件个功能模块设计实现
无操作系统电子词典系统应用软件功能模块包括以下部分:
键盘接口功能软件,触摸屏接口功能软件,LCD显示接口功能软件,输入键值识别功能软件,英译汉功能软件,已查单词记忆功能软件,汉语词库编写和英语词库编写功能软件。
5.4.1键盘接口功能软件
键盘接口软件主要实现键盘输入功能。
5.4.2触摸屏接口功能软件
触摸屏接口功能软件实现触摸屏输入功能。
5.4.3LCD显示接口功能软件
LCD显示接口功能软件实现输入字符,翻译结果的显示功能。
5.4.4输入键值识别功能软件
本电子词典设计中共有26个字母键和6个功能键。
26各字母键的键值对应于英文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 基于 S3C44BOX 电子词典 软件 开发