基于S3C44BOX的电子词典软件设计与实现DOC.docx

上传人:b****3 文档编号:13284835 上传时间:2023-06-12 格式:DOCX 页数:29 大小:59.20KB
下载 相关 举报
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第1页
第1页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第2页
第2页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第3页
第3页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第4页
第4页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第5页
第5页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第6页
第6页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第7页
第7页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第8页
第8页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第9页
第9页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第10页
第10页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第11页
第11页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第12页
第12页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第13页
第13页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第14页
第14页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第15页
第15页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第16页
第16页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第17页
第17页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第18页
第18页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第19页
第19页 / 共29页
基于S3C44BOX的电子词典软件设计与实现DOC.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于S3C44BOX的电子词典软件设计与实现DOC.docx

《基于S3C44BOX的电子词典软件设计与实现DOC.docx》由会员分享,可在线阅读,更多相关《基于S3C44BOX的电子词典软件设计与实现DOC.docx(29页珍藏版)》请在冰点文库上搜索。

基于S3C44BOX的电子词典软件设计与实现DOC.docx

基于S3C44BOX的电子词典软件设计与实现DOC

基于S3C44BOX勺电子词典软件设计与实现

1概述

此次基于ARM7勺电子词典系统开发作业,由我们小组4人合作完成,其中我主要负责软件方面勺开发,所做勺方面有英译汉软件功能勺实现,输入值软件识别功能勺实现以及看门狗定时器勺实现。

由于不怎么熟悉arm勺开发,基本是看着书做,设计思路和方法、功能实现也都是书上怎么来,自己就怎么实现,希望傅老师谅解,这块勺基础确实薄弱。

2S3C44BOX处理器介绍

2.1S3C44BOX简介

S3C44BOX微处理器片类集成ARM7TDMI核,采用0.25卩mCMOS工艺制造,并在ARM7TDMI核勺基础上集成了丰富勺外围功能模块,便于低成本设计嵌入式系统应用系统。

片上集成勺主要功能如下:

DMA通道。

控制,片选逻辑)。

并带有一个LCD专用DMA通

在ARM7TDMI基础上增加至8KB勺Cache。

外部扩充存储器控制器(FP/EDO/SDRAMLCD控制器(最大支持256色勺DSTN),道。

2个通用DMA通道2个带外部请求引脚勺

2个带有握手协议勺UART,1个SIO。

1个多主勺I2C总线控制器。

1个I2S总线控制器。

5个PWM定时器及1个内部定时器。

看门狗定时器。

71个通用可编程I/O口,8个外部中断源。

功耗控制模式:

正常,低速,休眠和停止。

8路10位ADC。

具有日历功能的RTC(实时时钟)。

PLL时钟发生器。

2.2S3C44BOX特点

2.2.1S3C44BOX体系结构

S3C44BOX是基ARM7TDMI体系结构的SOC。

集成了手持设备和通用嵌入式系统应用的解决方案;

16/32位RISC体系结构和ARM7TDMI处理器内核强大的指令体系;

Thumb代码压缩机,最大化代码密度同时保持了32位指令的性能;基于JTAG的片上集成ICE调试支持解决方案;

32>8位硬件乘法器;

实现低功耗SAMBAII(三星ARM处理器嵌入式微控制器总线体系结构)的新型总线结构。

2.2.2系统(存储)管理

支持大/小端方式;

寻址空间:

每bank32M字节(共256M字节);

支持每bank可编程的8/16/32位数据总线宽度;

7个bank具有固定的bank起始地址和可编程的bank大小;

1个bank具有可编程的bank起始地址和bank大小;

8个存储器bank:

-6个ROM,SRAM存储器bank;

—2个ROM/SRAM/DRAM(快速页面,EDO和同步DRAM);

所有的存储器bank具有可编程的操作周期;

支持外部等待信号延长总线周期;

支持掉电时DRAM/SDRAM的自刷新模式;

支持均匀/非均匀的DRAM地址。

223Cache存储器和内部SRAM

4路组相联统一的8KB指令/数据Cache;

未用的Cache空间用来作为4/8KBCache存储空间可作为片内的SRAM使用;

支持LRU(近期最少使用)替换算法

采用保持主存储器与cache内容一致性的“写穿式”策略

写存储器具有4级深度

当缓冲区出错时,采用“请求数据优首先填充”技术2.2.4时钟和电源管理

低功耗

正常模式低速模式休眠模式SL空闲模式停止模式

片上PLL使MCU工作时钟最大达到75MHZ可以通过软件设置各功能模块的输入时钟电源模式:

正常,慢速,空闲和停止模式;正常工作模式;不加PLL的低时钟频率模式;只停止CPU的时钟;LCD控制器工作停止所有的时钟;

通过EINT[7:

0]或RTC报警中断从停止模式唤醒2.2.5中断控制器

30个中断源(看门狗定时器,6个定时器,6个UART,8个外部中断,4个DMA,2个RTC,1个ADC,1个I2C,1个SIO)

采用向量化的IRQ中断模式以减少中断的延迟可选的电平/边沿模式触发外部中断电平/边沿模式具有可编程的优先级支持FIQ为紧急的中断请求进行服务

2.2.6定时器和PWM(脉宽调制)

5通道16位具有PWM功能的定时器,1通道16位内部定时器(可进行基于DMA或中断的操作)

可编程的占空比周期,频率,和优先级能产生死区

支持外部时钟源2.2.7RTC(实时时钟)

充分的时钟特性:

毫秒,秒,分钟,小时,日,星期,月,年

32.768KHZ时钟;

定时警报,可用于唤醒CPU;可产生时钟节拍中断

2.2.8通用I/O口

8个外部中断口

71个多功能输入/输出口229UART(异步串行通讯)

2通道UART,可进行基于DMA或中断的操作支持5位,6位,7位或8位串行数据传输/接收支持在发送/接收期间的H/W握手功能可编程的波特率

支持IrDA1.0(115.2Kbps)

支持用于测试的回馈模式

每个通道具有2个内部32字节的FIFO分别用于输入和输出2210DMA(直接存储器操作)控制器

2通道通用DMA(直接存储器操作)控制器,不需要CPU干预

2通道DMA桥(外设DMA)控制器

支持I/O到存储器,存储器到I/O,I/O到I/O的6种DMA请求:

软件,4个内部功能模块(UART,SIO,定时器,IIS),和外部引脚。

在同时发生的多个DMA之间具有可编程的优先级顺序;采用猝发式的传输模式以提高FPDRAM,EDODRAM和SDRAM的数据传输速率;

支持在外部设备到存储器和存储器到外部设备之间采用fly-by模式

2.2.11A/D转换器

8通道的ADC

最大500kSPS/10-bit

2.2.12LCD控制器

支持彩色/黑白/灰度LCD屏支持单路扫描和双路扫描支持虚拟显示屏功能系统存储器用来作为显示缓存用专门的DMA来从系统存储器中获得图象数据可编程的屏幕大小灰度等级:

16级灰度;最多256种颜色

2.2.13看门狗定时器

16位的看门狗定时器

在定时器溢出时发出中断请求或系统复位

2

2.2.14I2C总线接口

1通道多主I2C总线,可进行基于中断的操作模式

可进行串行,8位,双向数据传输,标准模式速度达到100Kbit/S,快速模

式达到400Kbit/s

2

2.2.15IS总线接口

1通道音频l2S总线接口,可进行基于DMA的操作串行,每通道8/16位数据传输

支持MSB-justified数据格式2216SIO(同步串行I/O)

1通道SIO,可进行基于DMA或中断的操作

可编程的波特率

支持8位串行数据的传输和接收操作2.2.17工作电压范围

内核2.5V,I/O口:

3.0V到3.6V2.2.18工作频率

最大75MHz2.2.19封装

160LQFP/160FBGA

2.3S3C44BOX功能结构框图

JTAG

ODCk(PLL)

CPUUnrt

WriteBtrfter

**

*

ARurrcMiCPUCare

Cflctie&K-t)vle

4*

PowdrMBnag^msnl

floundgryScan

ARM7TDMTAP

Contrallflr

A/bitAf

Uemorvl/F

ROM/SRAM<

DRfiMSDRAM

LCD

1LCD1

DU^

1CONIf

(rfSnuptCONT.L

32763Hz

£DMA(2Ch)jU

SystemQusBnoge&ArtiTralionJ

go^tA(;o)

GPIOL^Cwhollflr)|*

l-CBust

CDnirt^llSr

WsrchdoyTimer

HS&fiL

CEMUTDllftrp

UAKToTtiachL

Lzi_I

(RoalTimoCta—

SynchnDnoulUO卡口£

PWMTimsfQ”4,$(ln|ern叭

TCLKLeXTCLK

图1S3C44BOX功能结构框图

 

2.4S3C44BOX芯片引脚定义

sp

w

XTE

-EMC

n3>-VEDKT

愛03CJ0siacy-^SS3負皆Z3一cm巨UJWQTJXicm呂衣上h口_Fr£l-A1盂咅ypcrn豆写s凸ixpcia容SJCtw

OWE已nCIBKPCHUMEi星lPUUE歹云旱g戈gD>-.Ek95-eRZ^

£sLM-E-EDVJ陪s->NQ<5asST赛兰E门P殆己TM婪smflp:

!

gs

 

—■•-—"■"—•■—n一1三1—七ifgfqog口去g[biv口4ia卩耳4"

PMr灵CtE口此mmPF曰QfS口rnghTirrMITin.rc.i—i—iIrlrwiuiTbn*ii>\nJh

llAI*U

MIW(WTMI(lAIMJ

MUJId"ZQfilOIkKlAfruMJ[MWQMMOMAjIMIAJ|»IAi

Q*r«urAirwrAiAWILMCIWdX灼AmHTKSPMADORH^PAj

ADOn21X]P«

AmnNiCnjgANihiiH^bu

PomuTiCHij

ADUH1HJIK,

AZOnia山"nij

*rmi?

V5SI0

I—

S3C44B0X

160-LQFP

All㈣fBrrfUra

■pH

n

-iu

IH

a/

eB

q:

Qk

□D

a3爵二1hH忖IB1T|JH,拓If

11沖il

I——r

nn

n

Elj

MU*Wd

/rt!

wi

kA;SAE>:

■jckinrziUT-lVDrCPErT3UnVDGCP[6lOLTardK^TEEl_rij|IilFUKi斗卜d18让鼻冲l-bOTCLK

RLCW*nfTAifl

■4BJicaaxypro

ICEZKGffrIaoTroE£mmzKAE弓Ac~»finirniniHiir[^tT4^ac用Hti凰U仙引JlfUFTHCV]K/rvCISMHflMKFmnWOMECLKGFFftLM'J匚M2

CU1rlUHn^FSFI□.KtuIGPEO廖0iiJIJUTTX-t3l™b

TTKrinSTk±lNl”垃RlKjCJ'CJT

 

-□■占s-sHHts寻二二asKfciw潯穽吟S2営咒A采le吐aPN出fe

cs^ps^^brd;h■書|^-巒Elvnl^nH-£o艮3僉sd

umESCTCnsiass-Im-TPPFySPQSnccs^n岂岂nRk国

SB

咅艮cmWGftswJr琴nOZSO

3s

-霍沪-雷卬ds^JlTprwuroH乍-™自」ibs.os^峻帝?

UDW星-nUSW一&r1us2-h9QkTBSNnOA一

电g

Afnrwwoi=

Au)頁

UJUf

 

图2S3C44BOX芯片引脚定义图

3基于S3C44BOX电子词典开发

嵌入式系统以其体积小,性能好,功耗低,可靠性高以及面向行业应用的特点已被广泛应用与各个领域。

其中电子词典是嵌入式系统消费电子领域典型的应用实例,它具有完整的输入/输出设备。

3.1电子词典系统定义与需求分析

电子词典系统应具备以下功能要求:

(1)能够通过键盘、触摸屏输入英文

a〜z:

实现字母输入;

Pageup/down:

显示上/下一个被查询过的单词;

Lineup/down:

光标移至上/下一行,在单词输入过程中,在单词翻译区会有拼写相近单词显示,用Lineup/down按键可以上下选择这些单词;

Enter:

翻译,将当前单词与词库中的内容相比较,如有一致则显示其内容,否则给出提示;

Backspace:

退格,删除单词最末尾的字母并将光标前移一位;

LCD的相应

提供友好的人机界面,将输入的内容和翻译的结果显示在

提供触摸屏输入六个功能键。

(2)

(3)

(4)

区域内。

对输入的单词即时翻译。

可以记忆3个已经查询过的单词。

理1]

Ab-LJzhzrtdicbitaddup

图3-1查询界面

3.2电子词典方案设计

为实现电子词典功能需求,结合嵌入式系统软硬件协同技术设计,采取以下设计方案。

3.2.1硬件设计

依据ARM芯片的选择原则,此处选择集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统的S3C44BO处理器作为系统的主控制器。

利用其内置的LCD控制器实现LCD控制接口;

利用I2C总线控制器实现键盘控制接口;

利用A/D转换器实现触摸屏控制接口;

利用UART实现调试接口;

利用GPIO连接LED灯显示有关状态。

以上5个硬件部分的开发中,其中第1,2,3,5本组其他同学完成,第4个部分UART实现调试接口的开发与应用,在本文档中重点说明,由本人单独完成。

322软件设计

本电子词典软件只要完成键盘操作,菜单操作及LCD显示功能。

根据软件

模块化设计方法将系统软件分为3个模块;词库编写,功能控制软件设计,人机交互接口功能设计。

我负责软件的总体设计图,实现其基本功能。

其中按键分别具有如下功能:

a~z:

实现字母输入;

Pageup/down:

显示上/下一个被查询过的单词;

Lineup/down:

光标移至上/下一行,在单词输入过程中,在单词翻译区会有拼写相近单词显示,用Lineup/down按键可以上下选择这些单词;

Enter:

翻译,将当前单词与词库中内如相比较,若一致则显示其内容,否则给出提示;

Backspace退格,删除单词最末尾的字母并将光标前移一位。

本电子词典系统还需要提供触摸输入,在触摸屏上划分出6个区域,分别对应键盘上的6个功能键。

4开发环境

电子词典硬件模块测试软件和无操作系统电子词典应用软件的开发采

用了相同的交叉开发环境。

宿主机PC机上运行ARM公司为方便用户在基于ARM内核处理器上进行软件开发而推出的集成开发工具ARMADS(ARMDeveloper

Suite)最新版本1.2在CodewarriorIDE(IntegrateDevelopmentEnvironment)集成开发环境中编辑电子词典软件程序,通过交叉编译器和交叉链接器对软件进行编译,链接。

最终生成可执行文件,通过在线仿真器Multi

ICE将此可真行文件下载到目标板运行。

在线仿真器通过并口链接宿主机,通过JTAG接口链接目标机。

串口线直接链接宿主机和目标板,在宿主机PC机上

显示吊饰信息。

为加快软件开发的进度,在电子词典硬件平台未建立起来以前先使用EmbestEDUKIT实验板作为目标本吊饰各功能模块软件。

5开发功能说明和代码

5.1英译汉功能软件

由于要查的英文单词有两种输入方式:

一种是通过在输入框中输入字母;另一种是通过上一行/下一行键在选择框里显示的单词中进行选择,所以用参数Position表示输入方式(TRUE输入框,FALSE选择框查找)。

具体实现流程如图所示:

结束

/************************************************************

name:

translate

*func:

Translationfunctionimpiementationprogram

para:

none

*ret:

none

*modify:

*comment

*************************************************************/

U8transate(S8*word,U8Position,U8No)

U8k=0;

Trans_Clear();

 

Dis_Chinese(20,55,Gui_WHITE,”正在查找,请等待!

if(!

Position)

strcpy(word,vocab[No].c);

Disp_String(word,English_area.xO+5,English_area.y0+2);

for(k=0;k

{

if(strcmp(word,vocab[k].c)==0)

Trans_Clear();

Disp_String(vocab[k].d,20,55);

Disp_chinese(20,75,GUI_WHITE,vocab[k].e);

Disp_String(vocab[k].f,20,95);

Returnk;

}

Trans_Clear()'

Dis_Chinese(20,55,GUI_WHITE,”查无此词!

return(k=ALL_WNo);

/********************************************************************

name:

KeyboardInt

*func:

keyboardinterrupthandlerfunction

para:

none

*ret:

none

*modify:

*comment:

********************************************************************/

voidKeyboardInt(void)

intnTemp,i,j,k,m=0;

charbbyte;

rI_ISPC=BIT_EINT1;

//clearpendingbit

charpbyte[10];

nTemp=key_read();

if(nTemp>-1)

//Lcd_Draw_HLine(10,310,80,WHITE,50);

input_char=nTemp;

Lcd_DspAscll8x16(15,45,WHITE,word);

switch(input_char)case0:

num=1;break;

case1:

num=2;break;

case2:

num=3;break;

case3:

num=4;break;

case4:

num=5;break;

case5:

num=6;break;

case6:

num=7;break;

case7:

num=8;break;

case8:

num=9;break;

case9:

counter=1;break;

case

10:

 

counter=2;break;

case

11:

 

counter=3;break;

case

12:

 

m=1;

Lcd_Draw_HLine(15+n-10,15+n,45,WHITE,16);

word[wordIndex]-\0';

wordIndex--;

/*if(n==0)

wordIndex=0;

Lcd_Draw_HLine(10,310,85,WHITE,160);

}break;*/

case13:

word[wordIndex]-\0';

wordIndex=0;

for(i=0;i<20;i++)

if(strcmp(word,vocab[i].c)==0)

j=0;

k=i;

break;

else

j=1;

if(j==0)

Lcd_DspAscll8x16(15,40,BLUE,vocab[k].c);

Lcd_DspAscll8x16(15,60,BLUE,vocab[k].d);

Lcd_DspAscll8x16(15,80,BLUE,vocab[k].f);

//#else

Lcd_DspHz16(15,100,BLUE,vocab[k].e);

//#endif

else

{

Lcd_DspHz16(15,120,BLUE,"未找到相应的单词");

DelayMs(600);

Lcd_DspHz16(15,120,WHITE,"未找到相应的单词");

case14:

word[wordlndex]-\0';

wordIndex=0;

if(strcmp(word,vocab[i].c)==0)

j=0;

k=i;

break;

else

j=1;

if(j==0)

Lcd_DspAscll8x16(15,40,BLUE,vocab[k].c);

Lcd_DspAscll8x16(15,60,BLUE,vocab[k].d);

Lcd_DspAscll8x16(15,80,BLUE,vocab[k].f);

//#else

Lcd_DspHz16(15,100,BLUE,vocab[k].e);

//#endif

else

if(20>x>0)

for(i=0;i<20;i++)

vocab[x].c[i]=word[i];

word[i]='\0';

Lcd_DspAscll8x16(15,40,BLUE,vocab[x].c);

x++;

else

//Lcd_DspAscll8x16(15,45,BLUE,word);

for(i=0;i<20;i++)

word[i]='\0';

break;

〃Lcd_Draw_Box(10,40,310,80,GREEN);

break;

if(num!

=0&&counter!

=0)

switch(3*(num-1)+counter-1)

{

case0:

bbyte='a';break;

case1:

bbyte='b';break;

case2:

bbyte='c';break;

case3:

bbyte='d';break;

case4:

bbyte='e';break;

case5:

bbyte='f';break;

case6:

bbyte='g';break;

case7:

bbyte='h';break;

case8:

bbyte='i

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2