142
东南大学第一届嵌入式系统设计大赛 Embedded System Design Contest'2008 获奖作品设计报告集 东南大学第一届嵌入式系统设计竞赛组委会

东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

Embed Size (px)

Citation preview

Page 1: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

东南大学第一届嵌入式系统设计大赛

Embedded System Design Contest'2008

获奖作品设计报告集

东南大学第一届嵌入式系统设计竞赛组委会

Page 2: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛组委会

主 任: 堵国樑

副主任: 凌 明

委 员: 胡仁杰、朱为、汤勇明、张萌、张哲、刘昊、钟锐、方霞

秘 书: 史先强

“ASIC 杯”东南大学第一届嵌入式系统设计竞赛顾问委员会委员

李久贤(吴健雄学院) 孟 桥(信息科学与工程学院)

黄学良(电气工程学院) 翟玉庆(计算机科学与工程学院)

孟正大(自动化学院) 况迎辉(仪器科学与工程学院)

徐 悦(教务处) 单晓峰(校团委)

主办单位:

东南大学教务处

东南大学电子科学与工程学院、东南大学集成电路学院

Page 3: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

前 言

随着信息化技术的发展,嵌入式系统已经成为当前IT产业界一个非常热门的

话题。嵌入式人才培养的重要性已经是各个高等院校的共识,而实践动手能力的

培养则是嵌入式人才培养过程中一个非常需要的环节。为促进东南大学嵌入式系

统教学开展的深度和广度、培养学生的实践创新意识与科研动手能力、团队协作

的人文精神和理论联系实际的学风、加强自主知识产权芯片SEP3203嵌入式处理

器的应用推广,于2008年3月至5月,在东南大学校内举办了第一届嵌入式系统设

计大赛。

本次竞赛统一采用大赛提供的基于东南大学 ASIC 中心自主知识产权的

SEP3203 处理器的竞赛平台,参赛队自主命题,自主设计,独立完成一个有一定

功能的参赛作品。竞赛受到了相关院系学生的热烈欢迎,共有包括电子科学与工

程学院、信息科学与工程学院、计算机科学与工程学院、仪器科学与工程学院在

内的 7 个院系的共计 61 支赛队参加,参赛队员更是涵盖本科生和研究生两大阵

营。通过筛选有 50 支赛队参加了复赛,经过激烈的角逐, 终包括本科生组和

研究生组在内的 19 支赛队分获一、二、三等奖。本次大赛在东南大学掀起了学

习嵌入式系统的热潮,大赛的成功举办更是受到广大参赛者的一致好评,达到了

竞赛预期目的,加深了同学们对嵌入式系统学习的兴趣,完善了嵌入式系统课程

教学体系。

为推广东南大学第一届嵌入式系统设计大赛的成果,组委会以各获奖参赛队

提交的设计报告为基础,汇编了《“ASIC杯”东南大学首届嵌入式系统设计大赛

获奖作品设计报告》,报告包括了本次大赛的19件获奖作品的设计报告。通过对

优秀作品的展示,希望能为嵌入式系统学习和教学提供一些基本的参考。也希望

嵌入式系统爱好者在学习的过程中不断提出自己的宝贵意见和不同看法,您可以

通过嵌入式系统爱好者论坛( http://www.armfans.net/)与我们交流,愿我们

在交流中共同进步。

东南大学第一届嵌入式系统设计大赛组委会

2009.02.10 于 南京·东南大学

Page 4: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

目 录

前 言 ............................................................. 3

目 录 ............................................................. 4

竞赛平台 GE01MB_Lite 简介 ........................................... 1

本科组一等奖作品 ................................................... 3

基于嵌入式数据库的智能公交查询系统 ............................................................................... 2

网络互联游戏机 ..................................................................................................................... 20

本科组二等奖作品 .................................................. 28

五 子 连 珠........................................................................................................................... 29

便携式多功能手机助理 ......................................................................................................... 34

模拟驾驶员培训系统 ............................................................................................................. 60

酒店客房自助服务器 ............................................................................................................. 66

研究生组一等奖作品 ................................................ 76

基于 SEP3203 的 GPRS 无线通信系统................................................................................... 77

智能型检测实验系统 ............................................................................................................. 86

研究生组二等奖作品 ............................................... 104

嵌入式无线综合路由器 ....................................................................................................... 105

智能化高精度(直流)信号发生器 ................................................................................... 112

基于 GSM 的无线户外广告控制器 ....................................................................................... 128

东南大学第一届嵌入式系统设计大赛 ................................. 133

东南大学第一届嵌入式系统设计大赛获奖名单(本科组) ............... 135

东南大学第一届嵌入式系统设计大赛获奖名单(研究生组) ............. 136

Page 5: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

1

竞赛平台 GE01MB_Lite 简介

GE01MB_Lite是南京博芯电子技术有限公司开发的嵌入式系统实验开发平台,其核心芯

片SEP3203微处理器是由东南大学国家专用集成电路系统工程技术研究中心基于ARM7TDMI处

理器内核设计的16/32位RISC微控制器。

一、SEP3203嵌入式微处理器简介

SEP3203嵌入式微处理器面向低成本手持设备和其它通用嵌入式设备,为用户提供了丰

富的外设、低功耗管理和低成本的外存配置,并集成了用于多媒体加速的MMA(Multimedia

Accelerator)模块和AC97控制器用于多媒体音频的解码和录音。处理器采用2.5V内核供电,

3.3V外围IO供电,工作温度范围-40摄氏度~+80摄氏度,典型功耗为250mW。

SEP3203微处理器采用ARM7TDMI 处理器内核,使用0.25um标准CMOS工艺设计,具有低功

耗、低成本的优点,提供完整的通用外设接口,可以满足系统用户的各种需求,芯片的整体

结构框图如下:

图一:SEP3203内部结构框图

二、GE01MB_LITE 实验开发板介绍

GE01MB_Lite(V2.0+)学习开发套件是南京博芯电子技术有限公司专为学习嵌入式系统

开发的一款简易开发系统,包括GE01MB_Lite开发板、显示屏和键盘、音频输入输出接口等。

开发板采用核心板和母板双层架构,集成高速并口仿真器的功能,只需一根并口线、DC 5V

电源适配器,用户便可以轻松完成在线仿真调试,用户还可根据自身的需要,开发自己的母

板,灵活配置外围接口,是一款工程师和学生进行嵌入式系统学习、研究、开发的低成本理

Page 6: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

2

想平台。

图二:GE01MB_Lite嵌入式系统开发板

GE01MB_Lite开发板主要规格如下:

处理器:SEP3203嵌入式微处理器,ARM7TDMI内核,主频75M Hz

存储器:8M SDRAM,2M NorFlash

外设功能:

通用串口(UART)*2

10M有线以太网(RTL8019)*1

VGA输出(CH7013)*1

硬件看门狗(WatchDog)*1

扩展接口:LCD接口、USB Device接口、AC97接口、MMC卡接口

电源接口:5V单电源供电

调试接口:集成并口MultiICE调试器,只需一根并口线即可调试

GE01MB_Lite开发主要特点:

采用与GE01MB 多核嵌入式教学实验平台相同的核心板设计,方便学生课外自学;

多操作系统支持:ASIX OS、UCOS、UCLinux、VxWorks、Nuclurs;

核心板+母板双层设计,方便用户自行设计应用系统;

快速并口 ICE 仿真器方便插拔,可用于笔记本电脑调试;

提供所有设计原理图, PCB 图的 Protel 99SE文件和实验源码;

成熟精简,价格低廉。

Page 7: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

3

“ASIC 杯”东南大学第一届嵌入式系统设计大赛

获奖作品设计报告

本科组一等奖作品

Page 8: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

2

基于嵌入式数据库的智能公交查询系统

作者:04005216 刘佳琪 04005141 冯毅 16005428 丁涛

设计概述 /Design Introduction

一、设计目的:

二十一世纪是个信息化的时代,二十一世纪是个面临人口增加挑战的时代。越

来越多的人需要选择乘坐公交车,以减小交通压力,减小环境污染。这就对公交信

息服务提出了更高的要求。

我们的系统主要有三个设计目的:

1、 实现多功能公交信息查询,提供全方位服务。

2、 设计人性化,操作界面简单易用,便于大众使用。

3、 优化算法,减少硬件消耗,从而降低成本。

现在的城市公交系统十分复杂。当您来到公交站台,想要到另一个站去时,你

往往会遇到一个问题,那就是怎样坐车去,是否有直达车,是否得转乘,转乘怎么

做。我们的这套系统就是帮人们解决了这个问题。同时,我们的系统还可查询其他

信息,比如某个公交路线有那些站点,有哪些公交路线经过某个站点。

现在的公交系统十分庞大,比如我们使用的南京公交系统数据库就有 258 条公

交线路,1608 个公交站点。如果没有一个很好的查询算法,那么一次换乘查询就

会计算很多时间,这往往会需要高性能的处理器,从而增加了成本。我们设计的一

个目的就是优化算法,降低算法实现复杂度, 终使得设计成本大幅度降低。这个

目标 终也是达到了,经计算,一般主频几兆赫兹,flash 256KB,ram 50KB 以上

的处理器即可很好的实现查询功能。这样就能大大降低产品成本,使得产品推广变

得更加可能。

二、应用领域:

城市公交系统是我们产品的主要应用领域。我们这个系统为出行者提供便捷而

准确的搭乘方案查询服务,满足了人们的强烈需求。操作人性化。特别适合大中型

城市的各种大小公交站台,以及一些公共场馆,让人们轻松坐公交走遍全程。

如果我们的设计品能用于 2008 北京奥运,那么我们的产品一定会派上大用途,

一定会让世界各国人民更加清楚地体会到中国电子信息的飞速发展。

系统组成及功能说明/System Construction & Function Description

一、 系统的技术功能:

Page 9: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

3

设计中的技术功能 备注

三星 2410 ARM9 芯片 博创科技开发

嵌入式数据库 SQLite 技术 开源技术

UcosII 操作系统 开源技术

Yaffs 文件系统 开源技术

公交查询优化算法 自己研究开发

数字键盘的多功能输入法(中文输入法) 自己研究开发

ASCII、GB2312 码到 Unicode 码的转换 自己研究开发

图形人性化操作界面 自己开发

二、 系统的功能框图

数字键盘中文输入法

&数字输入

操作界面设计方案

公交查询优化算法文件系统&文件读写

嵌入式数据库或其他文

件数据库

Main_task()处理

&消息处理

PC 机预处理公交数据并

建立相关数据结构

Page 10: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

4

三、 操作界面调用框图

四、 系统设计总述 我们的整套系统使用了 UCOS II 操作系统其中 ARM9 的 Nand Flash 使用了

Yaffs 文件系统,ARM7 设计的系统未使用文件系统。由于涉及大量数据处理,所

以使用了 SQLite 嵌入式数据库技术对数据进行预处理,但由于技术方面的原因,

以及执行算法时,速度相对地址索引低, 终嵌入式数据库没有嵌入操作系统中。

本系统设计的一大难点是查询算法问题,由于是 ARM,性能相比 PC 机差距比较

大,所以一般的全搜索方法在我们的系统中就会相当缓慢,所以我们自己研究了公

交查询优化算法。本系统另一比较大的难点就是 UCOSII 系统并不直接支持中文输

入及中文显示,我们花费了很多时间研究开发了数字键盘的中文输入法及编码转

化,并能成功使用。

五、 公交查询优化算法——N 叉树快速搜索比较算法

1. 公交查询优化算法目标:

1) 以尽量少的时间查询出两个站点之间的能够直达或一次转乘的所有路线。

2) 设立目标函数,对所得方案计算出目标函数值,通过目标函数值计算出

优方案,以供用户选择。

2. 嵌入式系统设计汇中算法实现的一般步骤:

1) 数据预处理,建立与算法相对应的数据结构。

2) 算法 PC 机测试

3) 移植至 ARM9/ARM7,界面制作与调试

开始

欢迎界面

功能选择主界面

换乘界面界面 线路查询界面 站点查询界面

返回

帮助界面

Page 11: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

5

算法实现流程图

3. 模型建立

公交查询在于求解出从起点站到终点站的乘车方案,方案包括直达方案、一次

转乘方案、两次转乘方案、N 此转乘方案。

首先我们将公交线路及公交站台全部以自然数逐一加以数字标签。给每个公交

线路一个公交线号,每个公交站点一个公交站号,经统计我们的这个南京公交查询

系统有 258 条公交线路,1608 个公交站点。

然后我们将公交网络进行网络变换,将原来的复合型网络变幻为树形网络,使

编程实现变为方便简洁。

原始复合型公交网络模型

T2

T1

Sb Sa

Page 12: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

6

N 叉树算法公交网络模型

我们假设:

Sa —— 起点站站号

Sb —— 终点站站号

S.line[] —— 经过站点 S 的所有路线号

L.sta[] —— 公交线路 L 经过的所有站点站号

在 C 程序实现过程中,我们建立了两种类型的结构体

struct busline

char *L;

U16 sta_num;

U16 *sta;

struct station

char *S;

U16 lin_num;

U16 *line;

结构体描述如下:

公交路线结构体——busline

包括以下数据类型

公交线路名

公交线路经过站点数

该公交站台经过的所有公交站点的数字标签数组,且数组中的公交站号按序从

小到大排列。

公交站点结构体——station

包括以下数据类型

Page 13: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

7

a. 公交站点名

b. 经过此公交站点的公交线路的条数

c. 经过此公交站点的公交线路的所有公交线号,且数组中的公交站号按序从小

到大排列。

有了以上的结构体,就可以定义相应的数组

struct busline busl[258];

struct station buss[1608];

注:我们这个系统的数据来源于南京公交线路,共 258 条公交线路,1608 个公

交站点。

以上两个结构体在数据量的处理上是相当大的,建立这两个结构便是上文所说

的 PC 机预处理。嵌入式系统中只要把 PC 计算并保存的结果读入内存即可,从而

大大提高了执行效率。建立以上结构体的 大好处在于只要知道一个路线的线号或

一个站点的站号,就可以以此站号为索引知道相关结构体的所有信息,由于过程中

需要不断搜索站点或线路,所以地址索引机制大大减少了搜索的时间,提高了算法

效率。

4. 算法描述——N 叉树快速搜索比较算法

1) 直达查询算法——1 叉树快速搜索比较算法

零次换乘即在起点 A 和终点 B 之间有公交车直接往返,用户无需经过换乘就

可以直达目的站点(如下图)。

原始网络模型

树形模型

图中输出相同的线号值即为直达路线方案。

Sb

Page 14: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

8

2) 一次转乘查询算法——N 叉树快速搜索比较算法

一次换乘即在起点 Sa 和终点 Sb 之间,用户需要在途经的某个站点下车,然

后转乘另一线路公交车才能到达目的站点。

原始网络模型

树形模型

注: S.line[] —— 经过站点 S 的所有路线号

L.sta[] —— 公交线路 L 经过的所有站点站号

算法具体描述如下:

步骤 描述

1

首先获取起点 Sa 和终点 Sb;

2

求出所有经过起点 Sa 和终点 Sb 的公交线的集合 Sa.Line[]和 Sb.Line[],首先

比较集合 Sa.Line[]和 Sb.Line[]中的相同线路,这些相同线路便是直达的线路。

3

将集合 Sa.Line[]和 Sb.Line[]中的这些相同线路去除,得到新的集合 A 和 B。

T2

T1

Sb Sa

Page 15: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

9

4

求出 A 中各条线路所经过的站点的集合,其中第 i 条线路经过的站点集合为

A[i].sta[]。

5

求出经过各个站点集合 A[i].sta[]中任一站点的公交线路集合,如图中 As0 中

的各个站点的路线集合为虚框中所以。

6

比较框中各个集合与集合 B 中的相同值,若有相同值 AS0[i].line[j],则便有

如下转乘方案:

从 Sa 乘坐公交线 A[i],到 As0[i]站下,再转乘 AS0[i].line[j]路至 Sb 站下。

7

设定循环,不断求解。

同理可以求得多次转乘方案图。从图中可以看出查询执行时间(计算次数)随

转乘次数呈指数级增加。

从 C 程序算法角度考虑,比较函数的效率会直接影响整个查询执行的效率。经

过精心思考我们使用了非穷举比较法,使每一组的计算量由 N*N 减少到 N*2 以下。

使算法效率提高了 N/2(本系统以南京公交系统为实例,效率提高了 20 倍左右)。

在前面预处理中已经实现了公交站点结构体——station 中经过此公交站点的公

交线路的所有公交线号,且公交站号按序从小到大排列。

具体比较发法如下:

for(i=0,j=0;i<NumA&&j< NumB;)

if (LineA[i]==LineB[j])

printf(",Line:%d\n",LineA[i]);

i++;

j++;

else if(LineA[i]<LineB[j]) i++;

else j++;

算法描述如下:

步骤 描述

1 从两个数组 LineA 和 LineB 的第一个数 LineA[i=0]和 LineB[j=0]开始比较

2 If 数组 LineA[i]==LineB[j],i++,j++;输出相同值

3 Else if LineA[i]<LineB[j],则 i++;

4 Else J++;

5 执行步骤 2 到 4,不断循环直到结束

经过以上优化过的算法,可以很容易在 ARM7 上执行,花费的时间在 1 秒以内,

达到这个标准的话也就是可以说,即使在一些较高性能单片机上实现都是可以的。

Page 16: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

10

六、 数字键盘的中文输入法 首先遇到的一个问题那就是 UCOSII 其中的编码转换函数有问题,无法直接支

持显示,所以我们自己写了相关的 GB2312 码及 ASCII 码到 Unicode16 码的转换函

数,取得了成功。

常用的此类算法及程序就是 T9 算法了,很多手机中都使用该算法。我们的

程序也是基于该算法而实现的。可以说中文输入法部分也是我们嵌入式系统设计中

的一个难点。当然 终的输入法功能也是根据我们这个项目需要而设计的。由于设

计中我们使用的是普通键盘的数字键盘部分来模拟的,所以很多按键都是我们自己

加以定义的。系统设计中我们也是给出了相关的帮助说明。

补充:

按键 符号描述 功能

+ PageUp 中文输入下,汉字选择时用于上下翻页;

也可用于查询结果的上下翻页 - PageDown

输入法改进思考:

其实这个 T9 算法本身并不是十分优化,汉字的显示也是使用穷举方法,这样

浪费了很多存储空间。经过这个项目之后我们找到了一个更好更全的汉字调用方

法。由于中文编码 GB2312 码的排列是按照拼音顺序的,所以我们可以完全不用穷

举汉字,只要取某个拼音 GB2312 码起始码和终点码就可以相对十分全面的描述出

所有中文字符。这样就会大大减少存储空间,提高代码执行效率。

Page 17: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

11

七、 嵌入式数据库 SQLite 技术

当面对大容量数据处理时,数据库无疑是个 好的选择。而对于嵌入式设备,

特别是 ARM7,没有很大的存储空间,大型数据库根本就没法使用。而嵌入式的开

源数据库就提供了这样一个小型数据库,使得大量数据的处理变得方便快捷。我们

这个系统从一开始就瞄准了嵌入式数据库 SQLtie。并使用该数据库对数据做了预

处理。

虽然数据库有它很多优点,然而也有很多缺点。比如需要文件系统支持,需要

开辟额外的空间存储数据库程序,搜索比较方便但却比较耗时。

根据我们的公交查询算法,我们设计了两种实现方案:一、数据库查询公交;

二、基于地址索引查询公交;通过我们设计出的方案实现的比较我们 终选择了耗

时相对小得多且消耗更少存储空间的地址索引实现方案。

八、 文件系统

为使得系统更加人性化,我们在系统中使用了文件系统。针对 Nand Flash 我们

使用了 Yaffs 文件系统,针对 Nor Flash 我们使用了 FAT16 文件系统,方便图片、

数据文件、数据库文件等文件的读入。但由于文件系统的写入和读出相对都比较简

单且和 windows 下的文件函数调用存在着某些差距,我们对文件系统的写入和读

入做了相关测试并把读入和写出函数做了相关的扩展,使得文件的读入和写出变得

像 Windows 平台下一样简单。

在 ARM9 的 Yaffs 文件系统中扩展的读写函数

自己扩展函数 描述

Readline() 读取一行字符直到遇到’\n’ 或文件结尾

Infile() 读取一段字符直到遇到空格、’\n’ 或文件结尾

九、 界面设计

一下系统的功能完成了,但他并不能算作一个应用的操作系统。一个人性化

的操作界面可以使得操作简单快捷,用户使用满意度增高,更有利于消费类产品的

市场投入及推广。考虑到以上,我们在设计界面时也是花费了很多心思,力求能使

用户的满意度达到 高。使用手机的输入法也是基于现在手机人手一个,大家对此

输入法了解比较多。

我们的界面主要有五个,分别是

1.欢迎界面 2.功能选择主界面 3.换乘查询界面

4.线路查询界面 5.站点查询界面 6.帮助界面

Page 18: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

12

具体界面如下:

界面调用流程图

1. 欢迎界面

开始

欢迎界面

功能选择主界面

换乘界面界面 线路查询界面 站点查询界面

返回

帮助界面

Page 19: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

13

2.功能选择主界面

3.换乘查询界面

注:中间透明区域为查询结果显示区域

Page 20: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

14

4.线路查询界面

注:中间透明区域为查询结果显示区域

5.站点查询界面

注:中间透明区域为查询结果显示区域

Page 21: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

15

6.帮助界面

完成情况及性能参数 /Final Design & Performance Parameters

经过我们一个多月的努力已经全部完成了预定目标,各功能经过调试都已正

常。

我们在设计本套系统时设计了两套方案,一套基于 ARM7,一套基于 ARM9,

设计方法总体一样,但考虑到不同的芯片功能,两套方案设计出的系统也是各有特

点。

指标名称 设计参数 实现参数

公交查询算法

设计

N 叉树快速搜索算

普通算法 优化算法

直达查询:

平均约为 320 次比较

直达查询:

平均约为 30 次比较

一次转乘:

平均约为120000次比较

一次转乘:

平均约为 10000 次比较

查询搜索使用

方式

文件读入数据

地址索引搜索

算法基于数据库搜索 算法基于地址索引搜索

PC 机上测试

时间为 nT,n>5

PC 机上测试

时间为 T

公交直达、换乘

查询

功能完成 功能完成,质量较高

Page 22: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

16

公交线路查询 功能完成 功能完成,质量较高

公交站点查询 功能完成 功能完成,质量较高

数字键盘中文、

数字输入法

汉字及数字输入,

功能完成

汉字及数字输入,功能完成,质量较高

人性化界面 操作简便,

操作人性化

ARM9 的系统采用绘制多幅漂亮图像;

ARM7 的系统采用对话框等控件;

中文显示 编写编码转换函

数:GB2312 码转换

成 Unicode16 码;

显示相关查询结果

ARM9 为中文查询,显示中文

ARM7 采用英文查询,显示英文

使用FLASH资源 ARM7 ARM9

系统文件大小约 1M

无文件

系统文件大小 161KB

相关文件约 4M

设计方法 /Design Methodology

我们的系统设计使用了自顶向下的设计方法。

步骤 设计方法

1 对整个系统需要完成什么功能模块进行的分析

2 对完成这些功能模块需要哪些硬件软件设计做了讨论分析

3 对整个产品的各个功能模块进行了具体的设计讨论、分析、与分工;

确立了系统具体功能模块,系统设计目的,设计方法

4 各功能模块的具体设计阶段

5 将设计好的各模块进行合成,调试

6 功能优化,改进

7 完成设计,撰写设计报告

总体上我们的设计经历了从模块到具体,再由具体到模块,再到整体的过程。

本作品的目的在于制作一个人性化、提供优良信息服务的产品,其中设计的难点就

在算法优化,数据处理及操作界面设计。

Page 23: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

17

具体软件硬件设计流程图如下图所示:

1. 硬件设计结构方案

2. 软件设计结构方案

数字键盘中文输入法

&数字输入

操作界面设计方案

公交查询优化算法文件系统&文件读写

嵌入式数据库或其他文

件数据库

Main_task()处理

&消息处理

PC 机预处理公交数据并

建立相关数据结构

ARM7/ARM9 处理器

数字键盘

显示器(可使用触摸

屏)

Page 24: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

18

设计特点 /Design Features

1. 算法效率高

由于我们的系统是一个设置于公交站台的终端小型系统设备,且考虑到 ARM

芯片处理速度比较低,ram 和 flash 都比较小,且为了减少成本,我们需要尽量选

用便宜的芯片(ARM7)开发,也就意味着更低的计算速度(主频 70MHz 左右),

更小的 ram(8MB 左右),更小的 flash(2MB 左右)。这就对公交查询算法及程序语

言的逻辑设计提出了相当高的要求。

考虑到嵌入式计算与PC机计算的种种差异性,我们采用了PC机预处理机制,

即:将部分比较费时的对数据的处理计算全部交由 PC 机处理,将需要用到的中间

计算值保存于文件中。而嵌入式处理器只需在启动时读取中间计算出的结果,这样

可以大大加快系统的运行效率,减少不必要内存及时间的消耗,使较为低速的

ARM7 芯片实现了快速公交查询。从而降低了成本。我们这套系统是基于南京公交

路线的查询系统,实际设计时只设计了公交直达与一次换乘查询,公交路线查询,

公交站点查询。

经过我们的计算执行一次换乘查询大约需要 8000 次比较,这使得一个性能稍

高的单片机都可以作为处理器,从而可以使产品的设计成本大大降低。

2. 自己设计中文输入法

这本来可以说是我们设计过程中遇到的一个大问题,小型的操作系统并不是

非常支持中文输入,数字键盘的中文输入等。为了使我们的中文输入法更加简便,

我们参考了大多数手机使用的 T9 中文输入法,这也是非常有利于该产品推广的。

3. 界面漂亮、人性化

这是我们设计的一个主要目标,当然设计出的界面也的确达到了这种效果。

总结 /Conclusions

1. 总体评价:

总的来说,我们较好得完成了设计前得计划,而且能在规定的时间完成,我

们感到很欣慰。我们设计角度也比较好,社会在进步,这种类似的信息化服务越来

越多的出现在我们的眼前,而我们也在这方面做出了我们自己的努力!

2. 设计成果:

很好的达到了预期功能要求,及设计要求,我们团队中三个人很好的分工协

作。

针对这个系统,我们花了很大的力气制作了两套硬件系统,一套 ARM9,一

套 ARM7,设计思路方案基本相同,但考虑到芯片的特性,设计出的系统也有一定

的差异,可以说是各有系统。

Page 25: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

19

3. 提高与扩展:

虽然我们成功地完成了该系统地设计,但我们毕竟第一次完整地设计一个系

统,其中,还有很多要提高改进的地方:

1) 可以设计成中文英文双语查询,更加有利于该产品在开放大城市的推广。

2) 查询出的结果相对太多,未对结果进行目标函数优化,优化后效果会更加。

4. 心得建议:

这次设计中,我们体会到有两件事非常重要:设计计划和着手设计。我们之

前要制定的详细的设计计划,这样,以后会避免很多的麻烦;还有着手的时间一定

要早,不能一味地纸上谈兵,要去实践,这样我们才能发现问题、解决问题。

其实,也许设计的原理看上去很简单,但是一旦做起来,而且还是第一次,

遇到了一大堆的麻烦,我们必须学会耐心、学会踏实的去做,才能完成预期的工作。

可以说嵌入式系统开发的入门相对很困难,我们在入门阶段就遇到了很大的

问题,但我们团队还是持之以恒,一直坚持到 后,并很好的完成了工作。

我想,不管遇到的问题多么繁琐,只要团队中的每一员很好的用心去解决,

我们相信就一定能解决。

Page 26: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

20

网络互联游戏机

作者:06005323 谢震 06005322 曹飞 06005234 毛宁

设计概述 /Design Introduction

本小组准备制作一台以 SEP3203 处理器为核心的游戏机,作品特色在于该游戏机具有

多机互联功能。互联功能通过以太网接口实现,支持大数据量的信息快速传输。

为了适应手持信息终端的多媒体处理需求,SEP3203 处理器集成了用于多媒体加速的

MMA(Multimedia Accelerator)模块和 AC97 控制器用于多媒体音频的解码和录音。利用

SEP3203 处理器较为强大的运算能力,以及较大的数据存储空间,结合 VGA 显示、音频播

放等简单的多媒体技术,可以实现比较强大的游戏功能。根据开发进度,我们还有可能加入

一些有趣味性的创新元素,如模仿 Wii 主机的无线加速度传感手柄。

SEP3203 面向低成本手持设备和其它通用嵌入式设备,针对低成本个人移动终端的应用

需求,为用户提供了面向移动终端应用的丰富外设、低功耗管理和低成本的外存配置,这些

都使得本系统可以高度集成化,进一步缩小系统体积,制成掌上游戏机,提高便携性。

虽然系统具有较强的娱乐性。可能初期的游戏内容比较简单,但这毕竟只是一个开端,

随着对 SEP3203 处理器的进一步深入了解与研究,必定可以实现更为强大的游戏效果。与

PC 机不同的是本系统的专为游戏控制而定制,简单且高效。虽然可能系统刚刚问世时不怎

么凸显它的优点,但只要假以时日,随着游戏程序的日益复杂,专用游戏系统将显示出它的

独特的魅力。

系统组成及功能说明/System Construction & Function Description

本小组准备制作一台以 SEP3203 处理器为核心的游戏机,初期设想作品功能包括:利用

SEP3203 处理器较为强大的运算能力,以及较大的数据存储空间,结合 VGA 显示、音频播放

等简单的多媒体技术,实现比较强大的游戏功能。具有多机互联功能,互联功能通过以太网

接口实现,支持大数据量的信息快速传输。根据开发进度,我们还有可能加入一些有趣味性

的创新元素,初步设想为模仿 Wii 主机的无线加速度传感手柄。

考虑到 SEP3203 具有如下功能模块:

1、ARM7TDMI 主频 75MHz;

2、中断控制器(INTC),支持 32 个中断源,其中 18 个外部中断;

Page 27: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

21

3、通道通用定时器(TIMER);

4、2 个通用异步通讯模块(UART),均支持红外通讯;

5、液晶显示控制器(LCDC),支持单色/4 级灰度/16 级灰度/4K 彩色/64K 彩色;

6、 AC97 控制器(AC97C),支持 2 通道放音和 1 通道录音;

7、 多媒体加速模块(MMA),支持 MP3 解码、MPEG4 QCIF 和 WMA,JPEG 等多媒,

同时 GE01MB 开发板使用 SEP3203 为核心,对相关外围电路进行了有效的扩展,相关功

能实现方便。GE01MB 开发板还集成了网络接口,采用 RealTek 公司的 Rtl8019 芯片,Rtl8019

是一款高性能的网络控制器,自动检测网络运行状况,支持 Ethernet II 和 IEEE802.3 协

议,兼容 Microsoft 基于非跳线架构模式下的 plug&play 功能,支持全速运行和掉电模式。

可以实现基于 TCP/IP 协议的以太网通信。

系统预期组成如下:

SEP3203

LCDController

GPIO

RTL8019AS

通用游戏手柄

LCD显示器

INTController

游戏定时中断

以太网接口AC'97

音频模块

要开发实现我们的系统,就需要对系统各模块在 GE01MB 开发板上的实现有所认识。只

有在成功使用 GE01MB 开发板上的各项资源之后,我们才能顺利地开发我们的系统,实现我

们预期的目标。

完成情况及性能参数 /Final Design & Performance Parameters

根据实际情况,我们对项目修改如下:

1、实现游戏功能,包括两款游戏,俄罗斯方块与猫狗大战游戏,其中猫狗大战包括

单机版及联机版,都具有极强的可玩性及趣味性。

2、改进 VGA 显示效果,支持 LCD 显示屏,分辨率为 640*480,16bis 色深,显示效果

出色。

3、考虑到无线加速度传感手柄对于游戏可控性并没有太大的提高,但开发成本却较

高,故本小组决定使用通用游戏手柄输入方案,输入接口友好。

4、由于以太网接口较为复杂,且板子相关的技术支持稍显不足,我们决定采用串口

Page 28: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

22

通信方案,实现网络互联。

5、由于本小组成员在开发过程中需兼顾智能车竞赛,开发时间较为紧张,且音频模

块需要外部扩展,所以本小组决定暂时忽略音频模块的相关功能,全力完善游戏

的显示功能。

系统实际组成如下:

SEP3203

LCDController

GPIO

UARTController

通用游戏手柄

LCD显示器

INTController

游戏定时中断

系统实物照片

系统说明:

1、游戏功能主要由 SEP3203 实现,ARM7TDMI 可以提供强大的运算处理能力。8M-SDRAM

作为程序存储区,使得较复杂的程序代码有实现的可能,工程可以有较大的存储

Page 29: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

23

空间存放相关视频、音频资源,提升游戏的表现力。

2、VGA 显示功能主要由 SEP3203 的 LCD Controller 实现,通过研究,我们对于开发

板在 LCD、CRT 显示器上的显示效果有较大程度的改善。通过相关设置,通过

SEP3203 的 CH7013 模块,还可以实现电视信号的输出(未经实验)。

3、改造通用游戏手柄,通过 GPIO 口,将按键状态输入 SEP3203,简单稳定。考虑采

用简单的廉价单片机将按键状态打包,通过模拟 PS2 接口协议的串行方式输入

SEP3203,简化接口。

4、网络通信方案采用 UART 方案,主要由 UART Controller 实现双机互联。通过地址

判别,可以实现多机互联功能(未经实验)。若有足够支持,可使用以太网接口实

现网络通信,将支持更大的数据量传输,具有更强大的通信功能。

设计方法 /Design Methodology

系统硬件框图如下:

SEP3203

LCDController

GPIO

UARTController

通用游戏手柄

LCD显示器

INTController

游戏定时中断

实现过程:

1、系统开发的初始阶段,主要是了解 ADS 的开发过程,熟悉 GE01MB 各功能模块的使用,

对预期的系统方案进行适当的修改。

2、深入了解 LCD Controller 的工作原理,对大赛组委会提供的 lcd+VGA+key+mouse 工

程进行相应的修改,剥离工程所带 OS,得到适合我们系统开发的精简工程。同时调

整各参数,重写相关显示函数,使系统在 LCD 液晶屏上的显示操作更为简单,效果

更为出色。

3、对 INT Controller,GPIO 口及 UART Controller 的使用进行研究,打好系统开发的

基础。

4、在各模块调试使用成功的基础上,整合各模块代码,编写游戏代码,实现游戏功能。

Page 30: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

24

5、通过 Uart 模块,实现与上位机的通信,实现双机互联功能。

6、游戏测试,修改 BUG。

7、实成开发报告,结束开发。

系统软件框图如下:

1、主程序框图如下:

初始化GE01MB开发板各功能模块(定时器中断,UART,LCDC,CH7013)

显示启动画面,选择游戏模式(俄罗斯方块,猫狗大战单机/联机)

俄罗斯方块游戏 猫狗大战单机版 猫狗大战联机版

游戏结束

重新开始

游戏结束

重新开始

游戏结束

重新开始

离开游戏,重新选择游戏模式

2、俄罗斯方块游戏程序框图:

初始化各参数,清空方块寄存区

等待10MS读取按键定时中断

读取按键

执行俄罗斯方块游戏相应操作

游戏结束

NO

跳出至主程序循环YES

见下图说明

俄罗斯方块游戏相关操作流程

Page 31: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

25

判断按键类型(上/下/左/右移,旋转)

是否可以执行

执行操作跳出至俄罗斯方块游戏程序主循环

判断方块下移时间是否到来

NO

方块下移

判断是否触底

判断是否可以消除已有方块

消除方块,计算得分

YES

YESYES

新方块下落

NO

NO

NO

是否游戏结束

NO

跳出至主程序循环

YES

3、猫狗大战单机版游程序框图

初始化游戏参数(重力,风向,血量)

等待玩家1输入,计算扔骨头的力量

玩家1扔骨头开始计算水平速度,垂直速度每20ms移动相应距离

判断骨头是否扔出边界或砸中对手

计算伤害值,计算血量判断是否游戏结束

玩家2扔骨头开始计算水平速度,垂直速度每20ms移动相应距离

判断骨头是否扔出边界或砸中对手

计算伤害值,计算血量判断是否游戏结束

YES

YES

NO

游戏结束,跳出至主程序循环

YES

NO

NO

NO

YES

等待玩家2输入,计算扔骨头的力量

Page 32: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

26

4、猫狗大战联机版游程序框图(与单机版不同在于玩家 2 由上位机代替)

初始化游戏参数(重力,风向,血量)

等待玩家1输入,计算扔骨头的力量

玩家1扔骨头开始计算水平速度,垂直速度每20ms移动相应距离

判断骨头是否扔出边界或砸中对手

计算伤害值,计算血量判断是否游戏结束

上位机扔骨头开始计算水平速度,垂直速度每20ms移动相应距离

判断骨头是否扔出边界或砸中对手

计算伤害值,计算血量判断是否游戏结束

YES

YES

NO

游戏结束,跳出至主程序循环

YES

NO

NO

NO

YES

等待上位机发送数据,计算扔骨头的力量

设计特点 /Design Features

(1) 基于 SEP3203 强大的处理功能,通过 VGA 接口来实现游戏画面显示。系统中包含了

俄罗斯方块游戏以及猫狗大战单机版与联机版,集成度高。可以使用通用游戏手柄

的不同按键实现游戏之间的切换以及其他不同的动作控制,加强了娱乐性。利用

GE01MB 开发板较大的存储空间,实现了较为精美的游戏画面。同时对游戏中各种因

素的考虑较为充分,使游戏具有良好的可玩性、趣味性。

(2) 通过 MEGA8 芯片来实现通用游戏手柄与 SEP3203 之间的通信协议,模仿 PS2 接口协

议,改造简单且成本低廉,并且扩展性强,在以后的游戏优化过程中,可以更加简

便地实现对游戏输入部分的改造与更新,有较大的提升空间,完全有能力实现更强

大的、更复杂的游戏控制功能。

(3) 实现了游戏主机之间的互联。由于我们领到的开发板有一套无法使用,将其中一台

主机用 PC 机代替,同时可以通过 PC 机对游戏状态进行实时监控。通过的串口通信

来实现游戏数据的传输,使整个设计作品有较好的完整度,使游戏更加人性化,加

速玩家的适应过程,同时也为设计人员提供了一个透明的平台,方便对游戏进行逐

步的改进。

Page 33: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

27

总结 /Conclusions

本设计依托 SEP3203 强大的数据处理能力,利用 GE01MB 开发板丰富的扩展接口,实现

了 VGA 接口的显示功能,通过 MEGA8 芯片模仿 PS2 接口的通信协议,简单地改造了通用游戏

手柄,实现通用游戏手柄与 SEP3203 之间的通讯,实现了使用通用游戏手柄进行游戏控制输

入的功能。

通过使用串口通信,来实现数据之间的切换和传输。由于申请到的两块开发板中有一块

不稳定,我们使用上位机通过串口发送数据。虽然串口协议也可以支持多机寻址通信,但毕

竟不是一种理想的网络连接通信方式。通信方面可采用 TCP/IP 协议对传输功能进行提升。

使用网关以及不同的 IP 可以更加方便地实现不同游戏机之间的互联,支持大数据量的信息

快速传播。

当游戏被复杂化之后,需要更多样的硬件控制。通过 MEGA8 芯片可以实现手柄按钮功能

的全面化,在更复杂的游戏中达到更加出色的控制效果。在控制手段方面,可以添加不同的

控制器如加速度传感器等等,使游戏更加具有娱乐性和创新性。

Page 34: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

28

“ASIC 杯”东南大学第一届嵌入式系统设计大赛

获奖作品设计报告

本科组二等奖作品

Page 35: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

29

五 子 连 珠

作者:06006218 陈令 06006134 黄宁峰 06205108 张翔宇

设计概述 /Design Introduction

本作品为以 SEP3203ARM 为处理器, CRT 显示,鼠标操作的五子棋游戏。有双人对

弈和人机对战两种游戏模式。界面美观大方,风格古朴典雅,操作方便。

我们开发本项目的目的是尝试嵌入式游戏的制作,将来可利用其系统的便携式特点,开

发出掌上游戏机,推向电子玩具市场。

若将鼠标转换为触摸屏,添加声音效果和网络连接,则本系统将成为一个功能可与 GBA,

甚至 PSP 相媲美的“个人游戏终端”,而成本却低廉得多。不仅如此,本系统可轻松地转变为

“可编程游戏机”——玩家可自行将软件公司专门开发的游戏“烧”入系统中,扩展其“个人

游戏库”,甚至可以自己编写游戏(如同我们现在的工作),边学边玩,享受“可编程”带来的

无限可能和乐趣。而这一切,全部浓缩在一个掌上嵌入式系统

系统组成及功能说明/System Construction & Function Description

系统组成

本系统的功能由开发板、1 台 CRT 显示器和 1 只普通鼠标作为硬件支撑。硬件只需简单

地通过接口连接即可运行本系统(见图 1)。

系统功能

系统的功能为标准的无禁手五子棋游戏软件。可实现双人对战和单人游戏两种功能。主

界面如图 2 所示。

双人对战的开始对话框如图 3 所示。系统内存有 4 个常见人名(英文),玩家首次进入

时选择一个作为自己的帐号,其对弈的成绩将永久保留在本系统中。

单人游戏的开始对话框如图 4 所示,此处的人名与双人模式中的代表同一帐号。玩家可

Page 36: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

30

选择先手(持黑子)或后手(持白子)。

对弈中黑子先行,第一子必须落在天元(棋盘中心点,图 5 棋盘中心的黑点)。落子无

时间限制。首先成连续五子的一方获胜(图 6),这时弹出对话框(图 7),宣布成绩,同时

可选择继续以上一局的设置开始新居,或回到图 1 的主界面。

绩分的规则为:初始分——0 分,赢——加 50 分,输——不扣分。

以上软件部分的实现基于 ucOS II 操作系统。所有的设计代码均在 maintask 函数中,一

个 while(1)循环反复执行,即对应着本软件的运行。

完成情况及性能参数 /Final Design & Performance Parameters

作品 终完成了申请报告中的基本功能——双人对战和单人游戏的五子棋游戏,有初步

人工智能。但由于技术原因,未能实现音效;因时间原因,未能实现“道具”功能;而网络

连接对本系统意义不大,因为双人对战在 1 台显示器上就可方便地进行,故舍去了网络功能。

本系统以软件为主,无性能参数。

设计方法 /Design Methodology

软件流程图

Page 37: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

31

设计实现方法:

利用 Metrowerks Codewarrior for ARM Developer Suite v1.2 开发平台,使用 c 语言,

开发出基于以上软件流图的五子棋游戏。其中的“双人对战流程图”和“单人游戏流程图”

分别为“软件主流程图”中“两人轮流下棋”和“人和电脑轮流下棋”的具体实现流图。

本系统实际运行在一个 while(1)循环中,根据玩家在不同游戏状态的输入来决定进入

哪一模块来保证游戏的继续。下面就几个重点部分作详细介绍:

1. 游戏设置对话框的实现

uCGUI 本身带有 Dialog 对话框以及对话框控件的函数,可直接使用。但本系

统未利用其现有对话框技术,而是采用“BITMAP 位图打底,分立控件实现功能”

的方法。原因有二:一,画面效果,uCGUI 的对话框中规中矩,颜色单调,作为游

戏的交互式,没有视觉冲击力,而采用自己用 PS 制作的位图来 充当对话框,则

发挥空间广,且漂亮美观;二,技术原因,uCGUI 中的对话框实现控件信息的反馈

比较复杂,小组成员未能掌握,而其同时提供的分立控件则功能清晰,使用方便。

以上两点原因使得本系统的人机交互界面与众不同。

2. 赢局的判定

五子棋规则很明确:横、纵、斜任一方向成连续五子即判赢,但实现起来却需要

技巧。我们将棋盘状态用 piece_pos[15][15]二维矩阵存储,初始化为全 0。黑方

落子,相应位为 10,白方落子,相应位为 1,无子则为 0。这样,面对一个只有 0,

1,10 三种数值的矩阵,胜负这样判断:横、纵、斜中有一个方向连续五子的和为

50,黑赢,和为 5,白赢。没有其他赢的可能,因为白赢的五子和也只有 5,小于

10,不会产生冲突。这种判赢的方法简单而方便。

3. 电脑落子——人工智能

Page 38: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

32

本系统有初步的人工智能,且本算法为小组成员自创,没有采用,也没有参考现

有的五子棋人工智能算法。

其实电脑走棋也就是各种情况的判断和处理,下面列出各种情况,顺序执行,执

行完该情况即返回落子坐标,不再执行后续情况:

①一方成四子,且相邻处有一空位(图1)

①①己方成四子——己方赢定,落子空位成五子

①②对方成四子——没有选择,落子空位拦截

②一方成三子,且六子中,两边空(图2)

②①己方成三子——己方赢定,落子在除两边外的空位成活四

②②对方成三子——没有选择,落子在除两边外的空位拦截

③以上情况均不满足——考虑几方棋子(图3)。若六子中两边为空,且中间有己

方一子或两子,则在除两边外靠近己方棋子的空位落子,进行进攻。为了模拟智

能,此情况中采用了随机数来选择横、纵、斜的先后判断顺序,即三种方向的落

子均等可能出现。

注:图中仅示意典型情况,并非所有可能情况。

4. 界面设计

本系统的各个状态下的背景、人机交互界面等图片都是我们用 Photoshop CS3 生

成或美化的 BITMAP,小组成员有一定的 PS 功底。我们认为,作为一款游戏,吸引

人的画面是非常重要的,因而我们花了大量的时间处理美工,以期达到效果。

设计特点 /Design Features

本作品硬件设计简洁,软件部分思路清晰,系统拥有部分智能,界面美观,操作人性化,

老少咸宜。

创新点在于:

通过直接写寄存器来显示位图,而不通过 ucGUI,以达到支持 16 位真彩色的目的

(ucGUI 的标准窗口只支持8位色彩)。

两种游戏模式的选择,单人、双人均能开始游戏。

拥有自编的人工智能算法,模拟入门级棋手水平。

图1

图2

图3

Page 39: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

33

总结 /Conclusions

我们的作品基本完成了预定功能,实现了一套完整的游戏系统,且系统拥有初级人工智

能。将来可加入音效,进行单步落子时间限制,实现单人游戏的“故事模式”,即可用绩分

购买道具,来补充体力或让系统给出落子提示等,完善人工智能,给出不同级别的系统难度,

让游戏更加耐玩且具有趣味性。有条件的话,还可将 CRT 改为触摸屏,真正实现小型化。

我们小组分工明确,黄宁峰负责硬件接口和调试、烧写软件的工作,陈令尧负责整体软

件系统的编写。硬件工作从拿到开发板即开始,软件设计则用了一周的时间实现。我们更进

一步地体会到了工程的含义——“前途未卜,惟有不断尝试”。软件中,每一个控件,每一

个系统函数都是新鲜的,事先无法确定是否能按预想方式工作,这时就依赖经验以及迅速阅

读说明书的能力,更重要的一点是要敢于冒险和适时妥协,试验各种可能方式,不要走进死

胡同。做工程不求原理弄得多么通透,达到目标即可。

我们认为,无论做什么项目,都离不开一点——坚持。在多次受挫时,在看不到希望时,

能够坚持下来,终究会出现转机。

Page 40: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

34

便携式多功能手机助理

作者:09005213 唐朝辉 09005210 陈军 09005228 马俊

设计概述 /Design Introduction

1、 设计目的:

扩展手机功能,辅助手机短信发送、数据传输、娱乐等功能于一体,设计目标是手机的

桌面扩展系统。

2、 应用领域:

该设计属于娱乐 PDA,主要用于娱乐以及辅助办公。

系统组成及功能说明/System Construction & Function Description

一、 系统组成: 该系统有两部分组成,它们分别是“东芯 IV SEP3203F50”和 16 级灰度 320*240

液晶屏(包括 3.5 寸四线电阻式触摸屏、UCB1400、AC97CODEC)

二、 功能说明:

1、短信发送辅助功能:

该设备可以辅助手机进行编辑和发送短信。它独立于手机,通过红外线与带有红

外的手机连接。它提供手写编辑短信的功能,再输入接收方的手机号码(或从通讯录

中选择手机号码),然后将编辑好的短信和手机号码发送到手机并控制手机自动发送到

相应的手机号码。

Page 41: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

35

界面说明:

Page 42: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

36

功能实现:

该功能的实现需要UART 通过RS-232 协议和外设间进行串行通信。另外,通过外围

电路将红外信号转变成电信号(接收信息时)或将电信号转变成红外信号(发送时),然

后再和UART 进行串行通信,这样就可以支持低速红外通信。

要实现 Send 功能,首先系统要有文本编辑区,待短信编辑好后,点击“send”按

钮。此时弹出对话框要求用户输入要发送到的手机号码,然后系统通过红外发送命令

到红外手机,手机接收该命令后,将接收发送来的短信,并将短信发送到同时发送来

的手机号码上。

实现 Save 功能,需要用到文件系统 uC/FS,首先用 FS_FOpen( bookName, "w" ) 创

建或打开要写入的文件,然后将编辑区的文本存储到缓冲区 Buffer 中,然后利用

FS_FWrite 将 Buffer 中的内容存储到文件(文件名为 bookName)中。

2、数据传输功能:

1 该设备可以通过 USB 接口与电脑进行数据传输;

集成给出的 USB 模块,实现与电脑的数据传输。

2 该设备可以通过红外线与带有红外的手机进行数据传输。

系统利用通用异步串行通信(UART),UART 通过RS-232 协议和外设间进行串行

通信。,通过外围电路将红外信号转变成电信号(接收信息时)或将电信号转变成红外信

号(发送时),然后再和UART 进行串行通信,这样就可以支持低速红外通信。

3、娱乐功能:

1 mp3 播放

下面是 mp3 播放程序的界面,该程序具有播放,暂停,停止的功能

Page 43: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

37

使用说明:

进入 MP3Player 程序中,单击 Play 按钮即可对选中的歌曲进行播放,Pause 按钮

可以暂停播放,Stop 按钮可以停止播放;如果希望播放上一首歌曲或者下一首歌曲可

以按 Next 或 Last

Play按钮:调用函数int mp3_exp()播放char 型数组形式存放了一首歌曲

Pause按钮:程序进入等待状态中,直到标志PauseFlag=0才继续进行mp3的数据解

码,然后将数据送入Codec播放

Stop按钮:停止解码MP3数据,从循环中跳出

Next/Last按钮:选择不同的mp3文件送入播放程序中

2 电子书阅读

电子书有两个界面,分别是显示电子书列表,电子阅读界面。具体如下:

使用说明:

在 Book 中选择相应的电子书,例如“test.txt”,然后点击“Read”,就会弹出一个

Txt 窗口,显示的就是“test.txt”的内容。

功能实现:

首先要在系统中添加文件系统 uC/FS,uC/FS 首先格式化存储器,支持通过

FS_OpenDir 存储器中的目录文件,然后用 FS_ReadDir 函数读取目录,得到存储器中的

Page 44: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

38

文件名,用来初始化 Book 的电子书列表。

阅读某电子书的时候,需要在电子书目录列表中得到电子书的文件名,然后利用

FS_FOpen( bookName, "r" ) 打开要读的文件,再用 FS_FRead 函数读取文件内容到缓

存区(Buffer), 后从缓存区将文件内容输出到 Txt 的显示区。

4、辅助功能:

1 手写字体识别

由于该模块难度太大,故我们小组讨论决定集成市面上已有模块,具体实现

过程略。

2 触摸屏

该系统采用3.5寸四线电阻式触摸屏,并选用比较普遍的AC97+UCB1400的工作方

式。

init_Pen(void) 初始化触摸屏系统。本软件系统利用一个实时检查任务

(Rtc_Touch_Task)来处理触摸屏事件。

具体功能实现为:

应用函数U32 readx(U32 tmp)、U32 ready(U32 tmp)得到所触摸的坐标

定义一个 WM_HWIN 变量 win 有来存储当前拥有焦点()的窗口,

switch(win)

case Book 窗口: //如果当前激活的窗口是电子书主窗口

if( ?<x && x<? && ?<y && y<?)

//do somethint

else if(?<x && x<? && ?<y && y<)

…… ……

break;

case message 窗口:

if( ?<x && x<? && ?<y && y<?)

//do somethint

else if(?<x && x<? && ?<y && y<)

…… ……

break;

………………

也就是说,该实时检查任务当检测到触摸屏事件后,首先得到当前处于激活状态

的窗口,然后通过 switch 语句进入不同的窗口处理程序块, 后根据返回的坐标确定

要执行的任务。

3 通讯录

通讯录有两个界面,分别是通讯录主界面和添加界面。其中主界面用来显示通讯

Page 45: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

39

录列表。

使用说明:

Add 添加 Item 到通讯录中,Del 从通讯录中删除当前选项,Exit 退出通讯录回到主

界面。

功能实现:

通讯录的 Item 以结构(struct)为单位存储在文件 addressList.txt 中,结构的实现为

typedef struct

char *name;

char *phone;

AddressListData;

实现通讯录列表初始化功能,FS_FOpen("addressList.txt", "r")打开 addressList.txt,

然后以 AddressListData 为单位读取,将读取的 Item 添加到 AddressList 中。

实现 Add 功能,读取 Name,Phone 编辑框中的内容,将读取的值给 AddressListData

类型的 bItem 赋值,然后 FS_FOpen("addressList.txt","a")打开 addressList.txt,调用

FS_FWrite((void *)ptrbItem,sizeof(ptrbItem),1,myfileAddItem),添加 bItem 到其中,其中

ptrbItem 是指向 bItem 的指针。

4 计算器

计算器界面如下:

Page 46: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

40

使用说明:

计算器用来进行一些简单的整数的四则运算,包括加减乘除四种。

功能实现:

Key = WM_WaitKey();等待用户按键事件的发生。

用户按键发生后,其后的代码段根据用户的不同输入,处理各种不同的输入

完成情况及性能参数 /Final Design & Performance Parameters

一、主界面

二、系统界面实现: 该系统所有界面由 uC/GUI 实现。主界面一窗口(Frame)为容器,添加菜单栏(Menu)

来控制整个系统。其他界面以 Dialog 为容器,在 Dialog 中添加按钮(Button)、列表

(ListView)、多行编辑框(MultiEdit)等。

系统采用了“回调函数”机制,回调函数在用户程序中定义,当一个指定的事件

Page 47: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

41

发生时,通知图形系统调用指定的函数。通常应用于一个窗口内容改变时自动重绘的

场合。该系统利用回调函数初始化窗口,当窗口内容改变时重绘窗口,同时处理事件

响应,例如当鼠标点击“Read”按钮是,通过回调函数调用 txtTask()函数弹出电子

书显示对话框(Txt)。

承载各个功能的界面请参考该文档的第二部分(系统组成及功能说明)以及下面

的一些补充。

三、功能实现

1、短信发送辅助功能:

实现该功能需要扩展外围电路,红外接口将待传输的数据转变成 IRDA 串行红外物

理层所规定的格式。然后通过 UART 模块的红外串行通信单元,可以对串行红外信号进

行编码、解码。

扩展外围电路需要一定的资金,由于对时间、资金、人力等的错误估计,本小组

没有完全实现该功能。

具体来说,本组仅仅实现了 UART 异步通信传输功能。

本系统实现了短信的存储功能(Save)。

鼠标点击 Save 按钮,系统将传递编辑框中的文本传递给 void saveTask(char

*message),该函数创建 Save 对话框:

myfilemessage = FS_FOpen(fileName,"w");

if (myfilemessage!=0)

FS_FWrite(message1,1,strlen(message1),myfilemessage);

FS_FClose(myfilemessage);

在 Save.c 中,系统用 message1 来接收传递来的文本信息,同时 fileName 存储要

保存的文件名。

这里要说明的是,在该处保存的文件,可以在电子书列表(Book)中看到,同时

用户还可以通过选择保存的文件,然后点击“Read”来阅读。

2、数据传输功能:

1 该设备可以通过 USB 接口与电脑进行数据传输;

未完成

2 该设备可以通过红外线与带有红外的手机进行数据传输。

未完成

Page 48: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

42

3、娱乐功能:

1 mp3 播放

说明: MP3播放主要使用SEP3203F50的AC97、DMA、MMA、eSRAM等片内模块以及片外音

频Codec(UCB1400)

MP3 解码播放的核心接口程序为函数mp3_exp(),该函数实现播放的主要流程

如下:

1 系统初始化包括:配置中断控制器init_intc()、DMA 传送

边界对齐、MP3 解码器结构体初始化InitMP3()、以及相关变量的初始化;

2 进 入 while() 循 环 后 , 函 数 decodeMP3(&gmp, &encbuf[penc],

lenenc,&decbuf[pdec], lendec, &incdec)

完成解码一帧MP3 数据的功能;

3 解码完,判断是否解完了所有Mp3 数据,如果解完跳出循环,否则更新有关参

数并继续解码;如果解码达到5 帧,则配置DMA、AC97 开始播放音乐。

注意:一旦配置过DMA 和AC97 后,就会以中断方式传送音乐数据(PCM 码)。在

解码过程中,PCM 码由解码缓冲区向AC97 输出FIFO 的搬运由DMA 负责,因此是解

码和播放并发进行;只是每次DMA 完成一次传送,会进入中断处理函数ac97_handler

(),再次配置DMA,触发新的传送以连续播放。

重要函数介绍:

1.MP3 播放的接口函数int mp3_exp ()

Dencef[]:存放待播放的MP3 文件的内存区首地址,该程序以char 型数组形式存

放了mp3文件

2.MP3 解码的接口函数int decodeMP3(struct mpstr *mp, char *in, int isize, char *out,

int osize,int*pcmsize)

decodeMP3函数是上层应用程序和mp3 解码库之间的的接口函数,上层应用程序

要调用解码库,只要调用此函数即可,该函数负责解码一帧数据。

struct mpstr *mp:mp3 解码库系统数据结构,与InitMP3 函数的入口函数用的是同

一个全局变量;

char *in:mp3 解码输入buffer 地址;

int isize:被解码数据的剩余总长度,若此参数值小于4 则接口函数直接返回;

char * out :mp3 解码输出buffer 地址;

int osize:解出的数据的总长度,如果此参数值小于0 则接口函数直接返回;

int * pcmsize:存放被解出的pcm 码的长度;

不知是程序的原因还是UCB1400的问题,程序始终播放不出声音

2 电子书阅读

首先要初始化电子书主窗口(Book)中的电子书列表。

char bookTable[5][3][20]; //用来存储电子书列表项

Page 49: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

43

void getDiv() //从存储器读取文件目录到 bookTable 中

FS_DIR *dirp;

struct FS_DIRENT *direntp;

int n =0;

dirp = FS_OpenDir("ram:"); /* Open root directory of the RAM device */

if (dirp)

/* display directory */

direntp = FS_ReadDir(dirp);

while (direntp)

strcpy(bookTable[n][0], direntp->d_name);

strcpy(bookTable[n][1], (char*)(n+48));

strcpy(bookTable[n][2], "nothing");

direntp = FS_ReadDir(dirp);

++n;

FS_CloseDir(dirp);

然后通过调用 LISTVIEW_AddRow()将 bookTable 中的数据添加到列表中显示出来。

电子书的读取

用户点击“Read”调用 void txtTask(char* bookName),将要打开的电子书的名字

bookName 传递给函数,函数根据电子书名打开该文件:

//添加所选择的电子书的内容到 EDIT 中

myfile = FS_FOpen(bookName, "r");

if(myfile!=0)

FS_FRead(buffer,1,sizeof(buffer)-1,myfile);

MULTIEDIT_SetText(hMultiEdit, buffer); //将读取的电子书内容添加到

文本显示区

FS_FClose(myfile);

4、辅助功能:

1 手写字体识别

考虑到时间和触摸屏的原因,本系统放弃手写字体识别功能借以软键盘实现字符

输入功能。

软键盘的界面为:

Page 50: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

44

“shift”键实现键盘切换功能,即将键值变换为

'!', '@', '#', '$', '%', '^', '&', '*', '(', ')',

'+'

,'~', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O',

'P'

,'_', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',

':'

,'|', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<' ,'>',

'?'

,1, ' ', ' ', ' ', ' ', 0, 0

;

如下图:

void softKeyboardTask(WM_HWIN hMultiEdit)函数接收一个 WM_HWIN hMultiEdit

(编辑框)变量,当用户点击按钮,就会在该编辑框内添加响应键值。

/* Handle Keyboard until ESC or ENTER is pressed */

int test = 1; //根据 test 的值确定要切换到的键值组

do

Key = WM_WaitKey(); //获取鼠标点击的按钮对应的键值

// _ButtonReleased 函数在 按钮点击释放中会

调用

// GUI_StoreKey(pObj->Widget.Id)函数存储 Key

的值

Page 51: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

45

if (Key == 1) //实现 shift 键功能,切换按钮键值

if (test)

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

char c = _bcText[i];

int Id = c ? c : 1; //设置每个按钮的 ID,用于按钮释

放的时候获取键值

char ac[2] = 0;

char *s= ac;

ac[0] = c;

WM_SetId(ahButton[i], Id);

BUTTON_SetText (ahButton[i], s);

#if GUI_SUPPORT_MEMDEV

BUTTON_EnableMemdev(ahButton[i]);

#endif

BUTTON_SetText (ahButton[44], "shft");

test = 0;

else

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

char c = _acText[i];

int Id = c ? c : 1; //设置每个按钮的 ID,用于按钮

释放的时候获取键值

char ac[2] = 0;

char *s= ac;

ac[0] = c;

WM_SetId(ahButton[i], Id);

BUTTON_SetText (ahButton[i], s);

#if GUI_SUPPORT_MEMDEV

BUTTON_EnableMemdev(ahButton[i]);

#endif

BUTTON_SetText (ahButton[44], "shft");

test = 1;

else if(Key==GUI_ID_CANCEL) //退出

for (i=0; i< GUI_COUNTOF(ahButton); i++)

BUTTON_Delete(ahButton[i]);

Page 52: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

46

BUTTON_Delete(hButtonESC); //删除的按钮 Exit

BUTTON_Delete(hButtonBackspace); //删除的按钮 Backspace

WM_DeleteWindow(hKeyboard);//删除窗口

break;

else if((Key!=GUI_ID_CANCEL)&&(Key!=0))

MULTIEDIT_AddKey(hMultiEdit, Key); //将键值加入到 MULTIEdit 控

件的空白处

WM_SetFocus(hMultiEdit); //设置光标

while (hKeyboard);

算法由一个无限循环来不断检测鼠标的点击事件,然后根据键值进入不同分支实

现不同功能。

系统通过在各个文本编辑框出添加按钮“Keyboard”按钮,用于调用软键盘,该

软键盘代替手写字体识别功能实现短信编辑是文本的输入功能。(具体见面见下列示意

图)

由此带来的实际界面的改变,例如:(message 分支中)

Page 53: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

47

2 触摸屏

由于显示器中 GUI 显示的问题,无法准确固定具体按钮的坐标,故无法使用触摸

屏。

3 通讯录

首先定义单个 Item 的结构:

typedef struct

char *name;

char *phone;

AddressListData;

所有数据以 AddressListData 为单位存储在文件“addressList.txt”中。

初 始 化 通 讯 录 列 表 , 从 addressList.txt 中 读 取 Item 存 储 到

addressTable[5][2][20]中,然后由 addressTable 多为数组初始化列表控件。

具体算法如下:

char addressTable[5][2][20];

//添加读取通讯列表并存储到 addressTable 中

void getAddressList()

int n = 0;

myfileAddress = FS_FOpen("addressList.txt", "r+"); //打开 addressList.txt 用来

if(myfileAddress!=0)

do

i = FS_FRead((void *)ptraItem,1,sizeof(aItem),myfileAddress); //以

AddressListData

//为单位读,然后存储到 addressTable 中,其中,ptraItem 是指

向 aItem 的指针

if (i)

strcpy(addressTable[n][0], ptraItem->name);

strcpy(addressTable[n][1], ptraItem->phone);

++n;

while (i);

FS_FClose(myfileAddress);

Page 54: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

48

添加 Item(Name、Phone),

系统要求从编辑框中得到 Name、Phone,赋值给一个 bItem,然后将 bItem 写入到

addressList.txt 中:

/*添加 Item 到通讯录中*/

if(itemName && itemPhone)

strcpy(ptrbItem->name, itemName);

strcpy(ptrbItem->phone, itemPhone);

myfileAddItem = FS_FOpen("addressList.txt","a");

if (myfileAddItem!=0)

FS_FWrite((void *)ptrbItem,1,sizeof(bItem),myfileAddItem);

FS_FClose(myfileAddItem);

4 计算器

使用说明:

Page 55: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

49

计算器用来进行一些简单的整数的四则运算,包括加减乘除四种。

刚开始时,计算器的显示区域是没用任何内容的。用户输入某个数据,在显

示区显示此数据;用户输入某个操作符,显示区被清空。再次输入数据并按下‘=’键

后,显示区即可显示相应的结果。若在输入数据的中途,用户输入‘C’,则之前的输

入及计算结果全部清除。

功能实现:

Key = WM_WaitKey();等待用户按键事件的发生。用户按键发生后,其后的代码段

根据用户的不同输入,处理各种不同的输入.

当用户的按键为数字时,程序将原来所存的中间变量乘以 10,并再加上新输入的数字,得到一

个可以新的操作数。代码实现如下:

if((Key >= '0' && Key <= '9') || Key == '.')

if(ByteCounter == 0 && Key == GUI_ID_EDITP_OR_N)

. . . . . .

//中间省略了部分消除用户错误输入的代码

if(ByteCounter <= 8)

ByteCounter++;

EDIT_AddKey(hEdit, Key);

WM_SetFocus(hEdit);

temp1 *= 10;

temp1 += (Key - '0');

当用户输入一个操作符时,程序保存所输入的操作符,直到下次有‘=’输入时,用此操作符对

两个操作数进行

运算,并显示运算的结果。运算结果以两位小数的形式输出。

if(Key == '+' || Key == '-' || Key == '*' || Key == '/' )

EDIT_SetText(hEdit, " ");

if(chact == '+')

sum += temp1;

if(chact == '-')

sum -= temp1;

if(chact == '*')

sum *= temp1;

if(chact == '/')

if(temp1==0)

continue;

Page 56: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

50

sum /= temp1;

temp1=sum;

if(sum<0)

EDIT_AddKey(hEdit,'-');

sum=-sum;

WM_SetFocus(hEdit);

//EDIT_SetFloatValue(hEdit,(float)sum);

sum*=100;//显示两位小数点

for(i=10;i>=0;i--)

temp2=sum/GUI_Pow10[i];

if(temp2!=0)

break;

if(sum<100)

EDIT_AddKey(hEdit,'0');

for(;i>=0;)

if(i==1)

EDIT_AddKey(hEdit,GUI_DecChar);

c=temp2+'0';

EDIT_AddKey(hEdit, c);

sum-=temp2*GUI_Pow10[i];

i--;

if(i!=-1)

temp2=sum/GUI_Pow10[i];

设计方法 /Design Methodology

一、归纳阐述:

该系统实现基于 uC/COS、uC/GUI、uC/FS 的整合。首先要根据硬件配置三者。

uC/COS 是基于嵌入式的实时操作系统,它管理任务、内存、文件、电源等,为嵌

入式系统提供多任务的开发环境。uC/GUI 是一种用于嵌入式应用的图形支持软件,本

系统借用 uC/GUI 实现系统所需要的各种界面。uC/FS 是一种文件系统,本系统借用其

来管理存储器中的文件,在 book、message 中都用到文件的读写,可以说 uC/FS 是系

统实现的不可或缺的部分。

Page 57: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

51

系统设计框图的具体实现方法请参见下面的软件流程图。

三、 软件流程图:

本系统的设计框图分多个部分:分别是主流程图,message 任务流程图,book 任务

流程图,addressList 任务流程图,music 任务流程图,calculator 流程图。

Page 58: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

52

1、 主流程图:

Page 59: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

53

2、 message 任务流程图

3、 book 任务流程图

Page 60: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

54

Page 61: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

55

4、 addressList 任务流程图

Page 62: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

56

5、 music 任务流程图

Page 63: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

57

6、 calculator 流程图

Page 64: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

58

设计特点 /Design Features

1、 使用 uC/FS 管理文件

电子书模块和短信编辑模块的 Save 功能都需要大量操作文件的代码。由于实时操

作系统 uC/GUI 没有实现文件系统,在参考了各种版本的文件系统后,小组决定选用

uC/FS。uC/FS 是一种 FAT 格式的文件系统,它可以用于所有的存储媒体,但你必须提

供存储媒体的底层接口函数。

引进 uC/FS 后,小组很方便地实现了系统的各种主要功能。

2、 借用软键盘代替手写字体识别功能

当考虑到手写字体识别功能的难度和时间的有限,小组讨论果断决定使用软件盘

实现字符的输入功能。

首先,小键盘界面小巧简洁。我们以 woindow 系统中的软键盘为模板,删除掉不

需要的复杂按键,形成了独具风格的嵌入式版软键盘。

其次,由于界面大小限制,软键盘进入了”shift”键,实现键盘按键的切换,实

现了所有字符(包括数字、大小写字母和各种操作符)的输入功能。

3、 系统内容丰富多彩

这一点可以说是系统的坏处也可以说是系统的好处,坏处就是由于本次竞赛时间

有限,有些功能实现的也比较简单,但是可惜的是该系统脉络清晰,很合理地将各个

模块有机地结合到了一起。而且各个模块并不是相互独立的,而是相互约束、相互协

作的。例如:message 模块的 Save 功能,将文本信息保存到存储器中,保存的文件有

可以在 book 中查阅;通讯录协助 message 模块中 Send 功能的手机号码查询。

这些都可以说是本系统的一大特色。

总结 /Conclusions

竞赛接近尾声,首先我要说的是小组成员在这次竞赛中得到了很大的提高。嵌入

式系统设计入门挺难,前期很长时间小组都没有什么进展,有的只是美妙的想象。前

期大量的资料查阅,代码分析是很痛苦的过程,但是我们从中体验到了嵌入式系统的

乐趣。

总的来说,该设计结构合理,逻辑严密,各个模块相互协调实现了复杂的功能。

系统界面小组力求简单大方,各个模块的功能实现都用到了不少精妙的算法。但是,

由于小组能力有限,前期对嵌入式的了解浅薄,以及时间等各方面的限制,系统并没

有完全实现所预期的功能,也可以说仅实现了一些辅助功能。

首先说 message 模块,设计预期是用到红外发送,实现与红外手机的数据传输和

操纵手机的短信发送,但是在实际操作中小组发现需要扩展外围电路(红外发送),

由于资金问题,小组讨论放弃该功能,仅实现了信息编辑和信息保存功能。其实该功

能的实现小组也是有很清晰的思路的,如果有足够的资金和时间,小组完全可以实现

该功能,这里很有些遗憾。

然后是文件系统, 后的几天里,我们发现了一个严重的问题,也就是我们所用

文件系统所管理的 RAM 是可挥发性的(一时没有意识到),我们保存到其中的文件在

系统下一次启动的时候都会消失。小组发现 norflash 是不可挥发的存储器,于是我

们考虑将文件存储到 norflash 中,但是在将 norflash 添加到 uC/FS 中的过程中,我

Page 65: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

59

们发现必须为其编写驱动程序。经过数天的努力,我们编辑出了 norflash 的 uC/FS

驱动,但是很遗憾,没有成功,竞赛举办方给出的 norflash 模块的实验太过简单,

无法编辑驱动程序的底层控制存储器算法。

Music 模块,其实 music 仅仅实现了简单的 mp3 播放功能,同时提供暂停、下一

首等功能,但是经过小组的不懈努力仍然没有声音。于是我们怀疑是硬件模块

(UCB1400、AC97CODEC)的问题。

系统整体功能也有待改进,比如开机,进行一段时间的操作后,系统就会不正常

的死掉。虽然我们做了大量的性能改良功能,但这个问题依然存在。

小组在近期做了此次竞赛的总结,一直表示此次竞赛给我们提供了一个很好的学

习机会,大家都有了很大的提高,至少是对嵌入式有了切身的认识。大家对嵌入式系

统设计也有了很大的兴趣,同时表示将在以后对嵌入式进行更深层次的研究。

在此,我们对同类设计提供一些建议。前期应该对资金、时间等做准确的估计,同时选

择 主要的功能模块,这样可以集中有限精力将单个模块的功能实现的更加强大。在功

能设计的阶段应尽量考虑到所有细节,这样可以避免在 后时刻发现关键因素致使系统

功能大打折扣。

Page 66: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

60

模拟驾驶员培训系统

作者:16005415 张钰金 16005424 朱超

设计概述 /Design Introduction

设计目的

随着社会的发展和生活水平的提高,伴着中国逐渐实现的小康社会,汽车成了日常生活

必不可少的一部分。而当今社会,驾校也成了热门话题,我们开发的这套工具正式基于使初

学开车者快速入门而为。在轻松愉快的环境中,就能很真实的学好这门技术就是我们的目的!

该作品即作为一汽车驾驶员模拟训练系统的硬件部分,并发挥其可编程功能,大大提高了模

拟汽车培训系统硬件的灵活性,增强了硬件对软件的适应性,避免多次开发。并且该系统硬

件设计很逼真,给具体的培训带来了很多乐趣。我们的设计主要介绍了一种支持汽车电子的

嵌入式软件平台编程接口库的内容和设计方法。该接口库提供了以汽车电子领域常用算法为

主的基础编程接口库和以底层硬件驱动函数为主的专用编程接口库,以及针对特定系统而设

计的 API 函数库。用户通过调用接口库提供的 API 函数,就可实现运算和硬件操作。严格

的说,用教学软件来定义这个系统或许更合适一点:严谨的交规,复杂的路况,完善的驾照

考试系统,人性化的辅导教练,多款真实汽车和摩托车......但是精细的 3D 画面,中等的配

置要求(机龄 3 年以内的 机器基本合格),不算太复杂的操作(和真实开车相比)你有完全

可以把它当作一款游戏。而我们开发的系统使该软件更成熟,操作起来更方便,在真实感上

也是更上一层楼。

应用领域

实用于驾驶员培训,对于汽车驾驶初学者和汽车爱好者来说,这是一款不可多得的好帮

手。其一,该系统使用起来很方便,容易上手;其二,该系统成本相对很低,试想,如果把

该培训系统广泛应用起来的话,将是一个很大的突破,就不用去驾校那么麻烦了;其三,鉴

于系统的可移植性,可以很方便的把他移植到其他各个领域,譬如模拟航海系统,模拟飞行

系统……

设计简介

1. 使用 asic 以及外接电路模拟汽车驾驶各控制按钮及方向盘,对软件平台进行控制。

2. 实现 asic 与计算机上模拟软件平台的通信,完成编写 Universal Serial Bus I/O

driver 和 asic-PC intercrossing platform .

3. 具有硬件编程功能,在脱离 PC 的情况下可对各模拟按钮进行编程。

系统组成及功能说明/System Construction & Function Description

Page 67: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

61

系统组成:

a. 硬件部分:

1. arm 开发套件。(学校提供)

2. PC 机。

3. 汽车模拟驾驶控制面板。(小组自主开发)

b. 软件部分:

1. 模拟驾驶员控制系统 PC 平台。(小组自主开发)

2. 某模拟汽车驾驶培训软件,默认设置为 3D-Driving School 模拟驾驶员系统

设置

实现功能:

a. 主要功能(以 3D-Driving School 模拟驾驶员系统默认设置为例)

1、正确安装 3D-Driving School 模拟驾驶员软件

2、将 ARM 开发套件通过串口线于 PC 相连。

3、打开模拟驾驶员培训系统 PC 平台。

4、打开 ARM 开发板开关,在模拟驾驶培训系统 PC 平台中正确选择 ARM 对应的

串口号,并打开。

5、打开 3D-Driving School 模拟驾驶员培训系统软件,在模拟驾驶过程中即可使用

模拟驾驶控制面板对汽车进行控制。(各按钮说明见附)

b. 编程功能:

硬件可编程功能:ARM 开发板有很好的可编程功能,并且编好的程序可以烧

录到开发板中,很便捷

c. 调试功能:

当在模拟汽车驾驶员培训系统 PC平台上打开调试功能时,调试窗口将显示ARM

与 PC 的通讯码,从而方便调试。

附:按钮

按键号 对应操作 按键号 对应操作 按键号 对应操作

0 汽车左转 1 汽车右转 2 左方向灯

3 有方向灯 4 前进模式 5 倒退模式

6 油门 7 刹车 8 后视镜

9 手刹

完成情况及性能参数 /Final Design & Performance Parameters

设计参数

我们的这个项目没有太多的参数问题,主要是要实现外部设备和计算机的顺利通信,

其中,外部设备全部是手工制作,所以没有什么参数的说法。外部设备在制作时没有按照预

期的打算,全部用钢材,一来是由于时间太紧,二来是因为设计经费的问题,最后选用木材

作为原料,纯手工制作,所以从光泽度和坚固的程度上没有预期的完美。当然,如果经过充

Page 68: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

62

分的开发,相信会有更好的产品诞生! 硬件的参数基本能按照预期的要求完成,能够按照

要求完成相应的动作。

后的实物已经全部实现了初期的设计计划,并且自主开发的硬件系统在真实性上有很

大的提高,通过精巧的机械设计来控制各个按钮,比如自己动手制作的方向盘,油门刹车,

等等和真实的驾驶很类似。但是具体的制作过程中也遇到了很多问题,比如说我们在初步调

试的过程中发现 GPIO 口有些引脚是有问题的,这个问题只能通过慢慢试探来解决,还有就

是在 后的封装之后,由于自主开发的硬件控制系统制作精度在纯手工的基础上有一定的局

限,造成按钮很容易抖动, 后用了防抖动按钮,也考虑过用触发器来消除抖动, 后选择

用光电耦合器来隔离电气设备和电子器件,从而防止上述情况的发生。还有改动编程等方法

都仔细考虑过……

预期效果图:

设计方法 /Design Methodology

功能框图:

整体框架(正面)

手刹(侧面)

整体框架(侧面)

档位(侧面) 油门或刹车(侧面)

硬件编程输入

通信码生成

寄存器

Page 69: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

63

各模块功能说明:

A. ARM 模块功能:

1. 硬件编程输入:读取 ARM 板上的微动开关动作。

2.寄存器:用于在微动开关动作时,捕捉各开关的动作,主要是处理在一个进程中,对不

同时钟上升沿的处理。

3. 通信码生成:根据编程状态和按键动作按我们定义的 ARM—DELPHI 通信标准生成通

信码。

4.上传至串口:该模块控制串口芯片,将生成的通信码上传到 PC 或其他主控制器的串口。

B. 上位机模块功能:

1. 串口监听:上位机使用 DELPHI 7.0 编写。该模块监听记录由串口传来的通信码,以便

下一步处理。(使用 MSCOMM 控件代替 WIN32 API 实现模块化,提高开发速度)

2. 软件编程输入:对通信码及其所对应动作的编程。

3. 生成动作:将 ARM 模拟为底层硬件,从而对动作码生成动作,进行对模拟驾驶员培训

软件这样 DX 类型的应用程序的控制。(普通按键进行全局模拟,摇杆等使用 WINIO 控件以

汇编编写接口)

简明工作流程:

上传至串口 串口监听 生成动作

上层模拟平台

控制面板按键按下

生成通信码

上传至串口

读取通信码 软件编程按键按下

更改通信码对应动作

码 生成动作码

Page 70: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

64

附:ARM——DELPHI 通讯标准:

ARM 与 DELPHI 之间的通讯使用 8 位二进制码互相交换信息。

0 1 0 0 0 0 0 0

1 2 3 4 5 6 7 8

设计特点 /Design Features

该设计在总体上采用了分模块设计法,首先总体的设计被分成三块:外接电路设计、ARM

程序设计、DELPHI 程序设计。这三部分由小组内成员分别负责,在具体的每一块设计时也

分别独立了各小模块,具体模块如下:

外接电路设计模块:行列按键主电路、抗干扰设计、PCB 布线设计、按键接线布线设计、

控制面板布局设计。

ARM 程序设计模块:按键寄存防抖模块、硬件编程模块、串口上传模块、通信码生成模

块。

DELPHI 程序设计模块:串口监听模块、托盘显示模块、软件编程模块、编程调试显示

模块、动作生成模块。

1、 具有硬件编程功能,在脱离 PC 的情况下可对各模拟按钮进行编程,使其在实用过

程中具有高灵活性和可拓展性。

2、 具有软件编程功能,使用者可使用上层软件平台对各各模拟按钮进行编程,使其

控制性大大增强,也更便于形成标准统一的模块化设置。

3、 该硬件适用于各种不同的模拟软件平台,具有很强的软件兼容性,避免了传统模

拟平台软硬件只能一一对应的问题。

4、 具有的可编程功能使其可以通过对模拟设备的再编程模拟各种不同软件系统。

5、 在接口通信时在 ARM 和 PC 上形成统一的通信标准,方便了信息的处理。

6、 在搭建外部电路时选用加工了例如废弃木箱、油漆等很廉价的材料结构,降低了

成本,增加了设计外形的美观。

7、 使用 DELPHI 这种适合进行快速开发的语言进行开发,同时配合各种性能优良的

控件进一步增加了开发速度和修改调试的方便性。

8、 使用光电耦合器将电压控制转为电流控制,大大提高了系统的稳定性和抗干扰性。

总结 /Conclusions

成果概述:

后的成品其具有的功能以完全达到原有设计计划,并有所超越,外形美观大方,性能

稳定,具有仿真模拟平台的绝大部分功能,同时实现了高灵活性和扩展性的部分。

可扩展性:

1. 可在 DELPHI 程序中连接数据库,对现有编程状态生成可加载导出的文件,方便配置间

生成动作

Page 71: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

65

的交流。

2. 可使用 A/D 转换器模拟摇杆、油门等模拟量的输入,增加操作精度。

3. 可以用更加坚固的材料封装,从而更加坚固,美观。

设计体会:

在整个设计的过程中我们很深刻的意识到经验的重要性,从硬件语言和高级语言的区

别、支撑结构的打孔制作、大规模电路接线、干扰的消除以及各芯片使能端的使用上等,都

能很明显的发现如果仅在理论上进行论证,很多实际问题难以解决,同时,在了解和领悟到

一些实用技巧后,很多问题将不会出现。

另外,这次设计的主办方给了我们很大的支持,我们遇到的问题总能够得到及时而且

充分的解答,从网上的论坛到飞信,能看出主办方的认真仔细,这也是我们需要学习的一个

方面。

一个项目不可能一个人完成,团队的合作精神也是这次活动教给我们的宝贵的经验!

因此,这次的设计给我们提供了大量宝贵的开发经验,将对日后的学习开发大有帮助。

在此非常感谢集成电路学院为我们提供了这样一个难得的机会。

Page 72: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

66

酒店客房自助服务器

作者:06005426 侯吉祥 06005437 刘君寅 06205110 李哲文

设计概述 /Design Introduction

我们的设计为“酒店客房自助服务器”,顾名思义,是将酒店的一系列客房服务选项陈

列出来,供客人自己选择。我们的灵感来自于街头的自动售货机。自助式的服务不仅方便了

消费者,而且还节约了劳动力。随着酒店的大型化,酒店的管理尤其是客房服务的管理问题

日益突出。客房服务种类繁杂,加上客人对服务品质的要求的提高,原来的全人工化管理不

再适用,取而代之的将是数字化管理。而我们的“酒店客房自助服务器”正是基于这个理念

诞生的。它包括一个酒店服务终端软件和一个客户端。客户端使用触摸屏,为用户提供了一

个简单美观的操作窗口。服务终端软件为酒店对信息的统一管理提供了一个很好的途径,便

于数据的统计及核对。由此可见,自助式服务器的前景是美好的。

这个设备适用于大中小各种酒店,宾馆等。将它安装于客房墙上,或是置于床头柜上,

这样既不占用客房空间又便于客人进行对客房服务的选择。此设计便于酒店进行集中管理及

控制,从而为客户提供高质量高效率的服务

系统组成及功能说明/System Construction & Function Description

功能简介:

主要有六大功能:呼叫客房服务,结账,留言,评价,酒店简介和点菜。在开机时,会

有酒店对客人的欢迎辞和酒店外景图片。进入主菜单界面之后,会有各个功能对应的按钮,

按下对应的按钮进入功能服务子菜单。例如客房服务子菜单中会有洗衣等子选项。进入点菜

子选项,会看到详细的菜单和价格,加上菜的实际图片,让客人自由选择。确定后信息将会

被发送到酒店的自助服务终端,终端会将信息进行整合及统计。结账时只需按结账键就会有

服务生在 短时间内来结账。留言可以使用我们自制的键盘栏进行输入。留言功能可以方便

给酒店留信息。评价可以方便客人随时写下对酒店的意见或满意程度,此信息将发送至终端

以便于统计以及改进客房服务。客户端使用串口与终端通信。

详细功能介绍:

使用流程:

Page 73: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

67

客户端:

欢迎界面:

打开电源,将显示下图,点击一下触摸屏,即退出欢迎界面进入主菜单。

主菜单:

显示下列按钮——客服、点菜、留言、评价、结账、酒店简介。点击相应按钮,即进入

所对应的功能子菜单。

Page 74: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

68

客服:

进入客服子菜单,有洗衣和打扫两个按钮,以及一个返回按钮。按下返回按钮即返回到

主菜单。

点菜:

进入点菜子菜单,有中式、日式、法式、俄式和返回五个按钮。按下每个按钮都会给出

一份菜单。上部为菜品实物图(小),下部为四个按钮——上一页、下一页、选择和返回(回

至上一菜单)。上下页将切换图片。按下选择后,显示菜品实物图(大),图上可清楚地看到

菜的名称、单价和介绍,下部为取消(返回上一级菜单)和确认(信息将发送至上位机)。

Page 75: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

69

留言:

进入留言子菜单,屏幕上方为留言输入区,下方为自制的键盘栏。按下对应的字母或数

字,输入区将会有相应的显示。当输入的字符超出输入区 大范围时,整体前移,首字符自

动隐去。键盘栏 后三个字符分别为回车、空格和后退。输入完成后,按输入区右上角进行

确认,同时留言会被发送到上位机上。例如可以让酒店帮客户预订出租车、提醒客户事务等

等,也可以写下对酒店的一些建议。如想退出留言功能,只需按下输入区左上角即回到主菜

单。

——此为自制的键盘栏

评价:

进入留言子菜单,有满意、一般、合格和不满意四个选项。按下任意按钮,将显示“Thank

you!”,同时评价结果会通过串口上传到上位机。再按一下触摸屏,将返回主菜单。

结账:

按下结账,会显示“请稍作等待,我们的服务员会在五分钟内过来结账。谢谢您的惠顾,

欢迎下次光临!”点击一下触摸屏,返回主菜单。

Page 76: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

70

酒店简介:

其中是酒店的服务和文化介绍。

终端:

完成情况及性能参数 /Final Design & Performance Parameters

Page 77: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

71

截至作品上交时间,我们已经基本完成了在申请书中所列举的大部分功能。

主要功能有:

1. 客户端六大功能:客房服务、点菜、留言、评价、结账、酒店简介。

2. 终端七大功能:终端开启时间、查看客房、当前服务、客户留言、客户评价、菜单、

评价总结。

3. 利用串口将客户端数据发送至终端,以便及时提供优质服务和统计信息。

性能参数:

RS232 串口通信 比特率:9600bps,8 位数据位,1 位停止位,无奇偶校验

液晶屏 3.5 寸,320*240,16 级灰度

触摸屏 3.5 寸,四线电阻式

上位机软件 使用 MFC 编程,软件大小 527K

Number 项目 参数

1 欢迎界面 一幅图片

2 主菜单 六个功能键

3 客服 两个功能键

4 点菜 十个按钮,20 张图片

5 留言 一个自制键盘栏

6 评价 四个按钮

7 结账 一幅图片

8 酒店评价 一幅图片

9 程序编译后的大小 1.39M

Page 78: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

72

10 所使用的硬件资源 核心板 1 块,触摸屏 1块,PC 机 1

台,一个并口,一个串口

设计方法 /Design Methodology

硬件框图:

酒店客房自助服务器的硬件连接框图如下图所示。客户通过触摸屏进行操作,触摸屏通

过并口与核心板相连,核心板受触摸屏信号的控制,上位机与核心板通过串口(RS232)连

接。核心板将信息通过串口发送至上位机 PC,PC 软件对信息进行统计处理后显示给酒店工

作人员,从而达到了客户与酒店工作人员的交流。

软件流程图:

在软件设计方面,本系统主要使用的是模块化设计的设计方法。我们将软件分为上位机

软件和下位机软件,即终端程序和客户端程序。终端程序使用 MFC 编程,具有简洁美观的界

面设计,同时操作也十分简单方便。客户端程序主要分为六大模块:客服、点菜、留言、评

价、结账、酒店简介。每个模块的顶层相连,但内部互不干扰。每个模块中都可以返回到“主

菜单”,实现不同模块之间的切换。而将终端与客户端相连的接口是串口接发收程序。

在设计过程中我们首先实现的是触摸屏的显示及其坐标的定位。其次我们完成了终端的

调试。而在将终端与客户端相连的时候,问题出现了。这也是我们设计中的难点所在。

客户端:

Page 79: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

73

图(1)流程综述

自制键盘的输入:

首先我们制作了一幅键盘的图片,然后我们以每个字符的中心点为中心制作触摸屏的有

效按钮坐标,当按下相应字符时,在输入区显示事先做好的字符的字模,即达到了输入的效

果。

终端:

终端流程

终端程序中添加了两个功能:终端开启时间和收到服务信息之后播放波形文件。前者能

监督工作人员的到勤情况,后者能够提醒工作人员及时发现信息并采取相应措施。

串口程序:

Page 80: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

74

利用串口建立起终端与客户端的联系,是我们设计当中必不可少的重要桥梁。它承担

了客户端信息的上传工作,为终端的一系列操作提供了坚实的基础。

设计特点 /Design Features

(1)此设备集成众多功能,整洁美观,可以作为摆饰品放在客房内,并能够提供给客

人更加方便快捷的客房服务。

(2)酒店采用服务终端软件便于对各客房集中管理,节省酒店人力资源,并提高了服

务质量。

(3)点菜系统的菜谱丰富,种类齐全,且各具特色,能够吸引顾客的眼球。

(4)本设计主要利用了触摸屏设计。将触摸屏的资源充分利用,以达到更加美观吸引

顾客的目的。为酒店的宣传起到了一个很好的促进作用。

(5)我们将上位机与嵌入式系统结合,以补充嵌入式的不足之处。以串口的方式将嵌

入式与上位机连接起来进行通信。便于信息与数据的统计。

(6)我们在上位机程序中添加了两个功能:终端开启时间和收到服务信息之后播放波形

文件。前者能监督工作人员的到勤情况,后者能够提醒工作人员及时发现信息并采取相应措

施。

总结 /Conclusions

作为一个第一次接触到嵌入式系统设计的小组,虽然我们缺少一些嵌入式设计的经验,

但是我们在此次活动中投入了大量的时间和精力。我们充分考虑了系统各个方面可能存在的

问题,并且及时排查处理了在测试中冒出的没有想到的问题, 终的成果已经完成了我们

初设计的大部分功能。介于时间有限,一些功能 终没有得到实现,有些遗憾。但总体而言,

本设计已经达到了我们的预期值。

当然要说可提高和扩展的地方还有很多:

1, 由于 TCP/IP 协议难度较高,又介于时间有限,本打算用网线进行终端与数据端通信

的计划没有实现,改而代之的是用串口通信。这显然是不符合实际应用的。串口适用

于短距离通信。用网线建立起来的局域网能够更好的对数据信息的统计和整合。

2, 由于我们没有设计输入法,特别是中文输入法,导致输入只能靠简单的数字加上字母

来实现,很不实用。如果加上输入法,此设备将会更加完善。

3, 介于资金有限,触摸屏用了 320 *240 的灰度屏。不仅显示的大小受限,而且还影响

到了图片的美观性。在实际产品中,要达到吸引顾客宣传酒店的作用,比较大的真彩

屏是必不可少的。

4, 终端只接收信息进行整合与统计,不对客户端的信息进行更新,也不产生反馈信息返

回给客户端,这会在很大程度上影响到此设备的应用范围。以后需要着重改进。

Page 81: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

75

5, 如果加入 MP3,将会给客户带来不同凡响的听觉享受。

6, 可以将电视及空调等电器的遥控器集成进来,避免遥控器的丢失,实现酒店客房的一

体化控制。

可见,我们的改进措施就是向商业用自助服务器的靠近,由此可以看出,竞赛作品在水

平上和商品还是有很大的差距的。

设计心得:

当我开始写文档的时候,我就开始怀念这一个月以来,每日一有空闲就泡在实验室的时

光,虽然大多数是在崩溃和痛苦中度过的,当我们一路走来,把它做出来的时候。我觉得这一

切都是值得的,崩溃换来的是经验和心得。

到了大三,单片机和可编程逻辑器件都已经接触过。但嵌入式还是第一次接触。刚接触

嵌入式,感觉很有难度,一开始就产生了畏惧心理。但在我们组其他两位成员的支持下,我

一步步走来,坚持到了现在。回想起初,心中的畏惧感占了主导作用,而现在,一路走来,

也不觉得什么。万事开头难,进了状态,也就没有什么可以畏惧的了。

组队参赛是一个团体,大家应该随时保持联系,保持相互讨论的好习惯。这在这次竞赛中

得到了充分体现。由于我们系报名的队伍很多,大家一起在实验室奋斗的时候,酸甜苦辣一

起分享。这也为我们系的创新实验室营造了一个很好的研究氛围。在写程序期间,我们走了

许多弯路。所以我觉得在做任何事情时都不要孤身前往,团队合作很重要,大家彼此可以学到

很多东西。

由于底层的驱动等等已经做好,我们的主要工作就是在看懂程序的前提下,进行已有程

序的拼接和增添。虽说是拼接和增添,但在这个过程中我们还是遇到了许多的困难。在这期

间我们也了解到了嵌入式开发的基本流程,为以后的继续学习打下了一个良好的基础。

近期也做了个 SRTP,很有感触。再加上这次的嵌入式竞赛,感想又加深了许多。其中

铭心刻骨的是学生作品与实际产品巨大的差距。一个成熟的产品从研发到上市,这是一个

不断发现问题,不断改进的过程,需要考虑的细节很多很多。相比之下,我们学生的作品只

能作为一个展览品,而远远达不到上市的要求。这让我们了解到我们的不足,以后我们将努

力向真实的产品研发靠近,不再仅仅停留于大学生的课外研学。

能够坚持到 后并做出成品,是我们一起发现问题并不断解决问题的回报,是大家齐心

合力的结果,我们也体会到团队合作在项目开发中的重要作用。总之,这次竞赛令我们所有

人都受益匪浅。

Page 82: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

76

“ASIC 杯”东南大学第一届嵌入式系统设计大赛

获奖作品设计报告

研究生组一等奖作品

Page 83: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

77

基于 SEP3203 的 GPRS 无线通信系统

作者:060845 周伯健 060834 张煌 070911 黄英

设计概述 /Design Introduction

设计概述:

本设计在原有硬件平台上添加了 GPRS 模块,扩展了 LCD 显示器,并在软件上架构了嵌

入式操作系统,TCP/IP 协议栈,编写了 GUI 库函数和应用程序,实现了一个基于 GPRS 网

络的无线数据传输终端。配合自主设计的服务器软件可以完成双向实时的无线通讯。从而组

建成一个完整的无线通讯系统。

考虑到通用性,系统对外提供标准接口,配合不同的用户设备可以实现不同的功能。此

外,系统添加的 LCD 显示屏可以提供显示接口,使得无线通讯过程更加直观。

设计目的:

1)由于传统的有线传输在通信距离增加时,存在安装不易,使用不灵活,设备和运行费

急剧上升等缺点,而且在一些特殊情况(比如火山,断层等特殊地形)不能搭建有线环境,

本设计的主要目的就是克服上述缺点,采用 GPRS 无线方式进行数据通讯,不受距离和环境

限制,安装简单灵活;

2)实现在嵌入式平台上的 Internet 接入,为用户设备提供透明的无线数据传输通道,降低

系统成本,便于实现小型化及手持式设备。

应用领域及适用范围

本设计主要是面向工业领域的远程数据采集及控制,也可以用于一些特殊系统的架构,特

别适用于间断的,突发性的和频繁的、少量的数据传输,也适用于偶尔的大数据量传输。比如,

本系统可以实现电力部门的远程自动抄表系统,也可以实现环保部门的环境数据采集,还可以

实现矿井安全监测等,应用前景非常广泛。

系统组成及功能说明/System Construction & Function Description

系统功能:

系统为用户设备(工业数据采集设备等)提供透明无线传输通道,用户设备不用关心数

据的传输方式,只需要将数据发送给传输终端(SEP3203 嵌入式平台),由传输终端负责和

服务器进行 GPRS 连接和通讯。

本设计需要实现 SEP3203 嵌入式平台和服务器之间的双向、实时的 GPRS 无线通讯,并为

用户设备提供数据接口,同时还要将传输的状态和数据进行实时显示。(系统详细功能见下

面系统组成介绍)

Page 84: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

78

系统组成:

GPRS网络Internet网络

用户设备

移动网关

RS232

服务器

adsl

网线

电话线

电信服务器

SEP3203嵌入式平台GPRS模块 RS232

LCD显示

GPIO

图 1 GPRS 无线通讯系统结构图

上图是系统的组成结构图,整个结构可以分为 3 个部分:

1) 网络部分:选择中国移动提供的 GPRS 网络和中国电信提供的 Internet 宽带服务。

客户端(传输终端,即嵌入式平台)通过 CMNET 方式拨号连接到中国移动的 GPRS

网络,这样,系统传输的数据就可以经由中国移动网关连接到 Internet。

服务器端需要在 Internet 上有独立 IP 地址,系统使用中国电信 adsl 宽带服务

接入 Internet。

为了使数据能够在 Internet 上传播,客户端发送的数据需要符合 Internet 协议

(即 TCP/IP 协议),同时,客户端与移动 GPRS 网络服务器的通讯还需要满足 PPP 协

议,所以,为了实现数据传输功能,客户端发送的数据需要采用 PPP+TCP/IP 的方式。

2) 服务器:使用 adsl 宽带连接到 Internet

需要具有独立 IP 地址,用于运行服务器软件,监听相应的网络端口,并且负责与

客户端之间数据的传输和交互

3) 客户端:包括 SEP3203 平台,GPRS 模块,LCD 显示器和用户设备

客户端以 SEP3203 做为主控制器,硬件上使用 RS232 串口和 GPRS 模块连接,用于同

服务器之间的 GPRS 无线通讯,同时为用户设备提供 RS232 接口用来和平台之间传输数

Page 85: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

79

据(SEP3203 有两个串口),使用 GPIO 口连接 LCD 显示屏。软件上实现底层驱动,运行

嵌入式操作系统,控制 GPRS 模块的数据传输,运行网络协议栈,支持 GUI 函数,并

终实现整个系统功能。

GPRS 模块使用 SIMENS 公司的 MC39i 模块,负责按照 GPRS 无线格式同中国移动公司

GPRS 服务器进行拨号连接和数据传输,使用串口和 SEP3203 连接,由于模块本身不带

TCP/IP 协议和 PPP 协议,需要 SEP3203 将数据按照协议组织好后,经串口发送给 GPRS

模块,由模块将组织好的数据发送给服务器。从服务器接收的数据也经过该通路回送给

SEP3203 平台。GPRS 模块提供一个 SIM 卡接口,系统就是通过插入中国移动的 SIM 卡来

使用移动的 GPRS 网络服务的。

LCD 模块提供了一个和客户交互的平台,在 LCD 上可以显示连接的状态信息和接收发

送的数据。系统中采用 NOKIA3510i 手机上使用的液晶屏,该液晶支持 4096 色显示,

大分辨率为 98*67。使用 GPIO 口线和 SEP3203 连接。

用户设备为本系统的使用者,通过 RS232 串口和 SEP3203 相连,由于本系统设计时并

不针对具体应用,在实际测试时采用一台 PC 机模拟用户设备。

系统实物图:

图 2 系统实物图

上图中,中间的核心平台就是 SEP3203 嵌入式系统实验板,下方为本设计中使用的

SIEMENS 公司的 MC39IGPRS 模块,右侧为 NOKIA3510I 液晶显示屏。

完成情况及性能参数 /Final Design & Performance Parameters

设计目标:

GPRS 双向数据传输,数据发送和接收延迟小于 10S,系统软件占用内存空间和代码空间

总和小于 8M(平台 SDRAM 大小)

完成情况:

Page 86: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

80

本作品 终实现了在 SEP3203 平台上拨号连接 GPRS 网络,成功通过 Internet 和服务器

进行数据的双向传输,用户设备可以由串口向服务器发送数据,服务器也可以向用户设备发

送数据和命令,并可以在 LCD 显示器上直观地看到网络的连接状态和传输的数据内容,达到

了设计要求。(见系统功能测试图)

此外,考虑到系统升级及交互界面的需要,系统还完成了 GUI 图形界面接口。(见 GUI

界面图)。

性能指标:

本设计在测试中数据延时小于 5S,可满足绝大部分工业系统实时传输数据的要求。

添加了心跳包,可以在没有数据传输时依然保证网络链路的存在,提高系统稳定性。

设计时考虑到嵌入式系统大多资源有限,系统完成后除界面部分外仅占用 40K 的内

存空间和 100K 的代码空间,包括图形界面在内仅占用 43K 内存空间和 133K 代码空

间,远远小于平台提供的空间大小。为系统进一步实现设备的小型化和手持式打下

基础。

GUI 界面图:

图 3 GUI 界面图

图 3 为本设计中开发的 GUI 界面演示图,左图中演示了 GUI 中的窗口,任务栏和下拉框

等接口,可以方便地使用这些接口开发出人机交互节界面。右图演示了 GUI 中的图象显示及

中文显示接口,背景图像为本参赛队的 logo。

从上图可以看到,GUI 能同时支持中英文显示,这样就可以满足更多应用的需求。

功能验证图:

Page 87: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

81

图 4 系统功能验证图

图 4 显示了系统功能测试时的一次数据交互图,左侧为系统服务器软件,右侧为客户端

的 LCD 显示屏。

测试中使用一台 PC 机模拟用户设备,通过串口与 SEP3203 连接,测试时,首先打开服

务器软件监听 1785 端口,然后启动客户端,客户端应用程序通过 GPRS 模块拨号到中国移动

的 GPRS 网络,并使用 1785 端口和服务器软件进行 TCP 连接(客户端的应用程序流程可参考

第四部分),在服务器软件中可以看到客户端连接时的IP地址,该IP地址(211.138.201.148)

为中国移动江苏地区的 GPRS 服务器 IP。本系统的通讯数据就是由该服务器转发。

当客户端连接上服务器软件后,就可以在两端进行通讯,这里我们首先通过用户设备向服务

器发送了一个字符串“Hello!”,然后服务器回送了一个“OK!”,从图中可以看到,系统实

现了两端的双向通讯并在 LCD 屏上显示出了通讯的信息。达到了预期的要求。

设计方法 /Design Methodology

为实现系统功能,需要在实验平台上外扩硬件,并编写相应的软件代码,在本部分中,

将对硬件和软件部分分别描述,具体的实现方法和步骤也在各个部分中进行介绍。

硬件框图:

Page 88: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

82

各部分的功能在第二部分都已经进行了说明,这里补充一些硬件介绍,

实验平台给我们提供了 8M 的 SDRAM 空间和 2M 的 Flash,SDRAM 用来提供程序运行

的环境,Flash 用来静态存储程序代码。此外,平台还提供 JTAG 接口,可以方便进行在线

调试。

用户设备使用 SEP3203 的 Uart0 接口,MC39I 模块使用 Uart1 接口,两个接口都使用 3

线连接方式,即 TXD RXD 和 GND。

3510I 显示屏供使用 7 根线和平台连接,其中 3.3V 给显示屏供电,5V 给显示屏提供背光

电源。4 根控制线使用 GPIO 直接连接。该模块通过排线连接在实验平台的 JP7 插座上。GPIO

口的定义如下:

CS:处理器和显示屏通讯的片选信号,低电平有效,连接在 PF4 脚上

SIO:数据信号,用于在时钟有效时想显示屏串行发送数据,连接在 PF5 脚上

SCL:时钟信号,用于同步显示屏的传输数据,上升沿对 SIO 进行采样。连接 PF6 脚

RST:显示屏复位信号,连接在 PF7 脚上

软件结构:

为了实现系统功能,首先需要底层驱动支持,嵌入式平台自带的 bootloader 代码在

初始化时完成了对底层的硬件初始化及代码搬运的工作。

由于本设计中使用串口同模块及用户设备连接,需要实现对应的串口硬件驱动。

考虑到系统的稳定性,我们在平台上移植了 UC/OS II 嵌入式操作系统,UC/OS II

是一个可裁减的、源代码开放的、结构小巧、可剥夺型的实时多任务内核,它提供

任务调度、任务间的通信与同步、任务管理、时间管理和内存管理等基本功能。将

UC/OS II 移植到本设计平台中,可以为后续协议栈的添加和 GUI 运行提供稳定的

多任务环境。

在第二部分提到,SEP3203需要将数据按照PPP+TCP/IP的形式组织后发送到GPRS

模块,这就需要在系统中添加 TCP/IP 协议栈,本设计中,我们选择 LWIP 协议栈,

LWIP 是瑞士计算机科学院开发的一套用于嵌入式系统的开放源码的 TCP/IP 协议

栈,其实现的重点是减少对 RAM 的占用,该协议栈同时支持 PPP 协议,所以,LWIP

很适合在本系统中使用;

为了实现界面交互,本设计中自主编写了 GUI 函数,可以提供图形界面支持,在

Page 89: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

83

LCD 上实现窗口,任务栏和下拉菜单等界面接口。

终,应用程序使用底层软件提供的机制完成系统功能(应用程序流程详见后续内

容),为配合客户端,还需要编写相应的服务器端软件。

系统的软件框图如下:

硬件平台

Bootloader

硬件驱动UC/OS II

LWIP

应用程序

GUI

图 6 系统软件结构框图

图 6 中上面三行灰色部分为本设计中自行完成的内容。图中仅包括了客户端部分的软

件结构,没有标示服务器软件设计。

设计步骤为:1)移植 UC/OS II 操作系统,编写多任务测试程序;

2)编写串口驱动,编写串口测试程序;

3)移植 LWIP 协议;

4)编写 GPRS 模块控制程序,测试模块功能;

5)编写 LCD 驱动和 GUI 函数,实现 GUI 接口;

6)编写客户端网络及界面应用程序;

7)编写服务器软件,整合系统功能;

8)对系统进行测试和完善。

应用程序的主要工作包括初始化 GPRS 模块,拨号连接到 GPRS,然后开始和移动网络

进行身份认证,在认证成功后,就可以和服务器软件进行 TCP 连接,一旦连接成功,整个

系统的通路就建立起来了,GPRS 数据传输终端就可以和用户设备进行交互,把数据经协议

栈封装成TCP/IP包传输到服务器,或者从服务器接收TCP/IP包并解析为相应的数据和命令。

在整个过程中,应用程序需要控制 LCD 显示对应的状态和数据。此外,应用程序还需要对

一些可能出现的异常进行处理,比如认证失败,连接失败等。

程序流程图如图 7:

Page 90: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

84

初始化硬件,初始化UC/OS II、LWIP及GUI

建立网络连接任务,开始PPP认证,显示当前状态

认证成功?

连接成功?

和用户设备交互,与服务器通讯,显示通讯信息

任务完成?

断开连接,关闭GPRS模块

建立数据传输任务,连接服务器,显示当前状态

初始化GPRS模块,拨号到GPRS网络,建立GUI任务

图 7 系统应用程序流程图

设计特点 /Design Features

可以作为通用模块集成到工业应用中,透明传输用户设备数据。使用灵活、方便;

采用无线传输技术,克服有线数据传输的技术瓶颈;

同 SMS(短消息)方式的无线传输相比,GPRS 传输模式速度快,延迟小,数据量大,成

本低;

使用嵌入式平台上实现无线数据双向传输,对外提供了 RS232 接口,应用前景广泛;

系统占用资源量小,便于实现小型化和手持设备,降低系统成本;

提供了 GUI 图形界面接口,便于软件升级,同时支持中英文显示,可满足更多应用要求。

总结 /Conclusions

本设计完成了预期的目标,实现了基于 SEP3203 的 GPRS 无线通讯系统,系统的主体功能

都得到了实现,包括操作系统移植,协议栈实现,GUI 图形显示等。

由于竞赛时间较紧,设计中还有一些方面需要进一步完善,比如人机交互界面的设计,

系统功能的进一步测试等。

通过本次竞赛,本参赛队队员丰富了嵌入式系统的理论和实践知识,也提高了动手能力,

Page 91: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

85

更增强了团队协作的能力。从 初的项目规划到一步步的具体实现,有挫折,更有收获。我

们面临过许多问题,当被一个个解决掉的时候,留下的是战胜困难的喜悦和再向前进的信心。

Page 92: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

86

智能型检测实验系统

作者:071114 牛丹 071040 董茂飞

设计概述 /Design Introduction

对工业生产而言,采用各种先进的检测技术对生产全过程进行检查、测量,对确保安

全生产 ,保证产品质量,提高产品合格率,降低能源和原材料消耗,提高企业的劳动生产

率和经济效益是必不可少的 。

本系统作为一个测量系统,可以对常见的 7 种电信号进行高精度的测量(包括:1 直流

电压、2 直流电流、3 电阻、4 电容、5 电感、6 频率、7 温度)。对于功能切换,既可以使

用有线的键盘输入也可以无线的利用红外功能接收金星遥控器的遥控信号。同时我们利用液

晶,一方面设计菜单配合键盘进行功能切换,另一方面实时的显示各个物理量的测试数据。

后我们也设计了自己的上位机软件,可以把测量结果远距离的显示在电脑监控画面上。

因为本作品的设计目标是用来作为自动化学院本科阶段嵌入式芯片和检测技术学习的

学生实验平台,因此系统必须方便设计实验,电路要有一定的灵活性。基于此,本系统在设

计时各个模块尽量独立,各模块有其独立的信号输入端和信号输出端,在实验时可以通过引

线进行连接,以使系统具有 大的柔性。另外作为一个参赛作品,我们也尽可能的使用东芯

嵌入式实验板提供的功能模块,一方面节约系统设计成本,另一方面锻炼自己学习,使用该

款芯片的能力。本系统主要使用到了下面一些资源:

(1)GPIO 通用输入输出模块

(2)Timer 定时器模块

(3)SPI 串行通信模块

(4)INTC 中断控制器模块

(5)UART 通用异步收发器模块

(6)PWM 脉冲调制器模块

系统组成及功能说明/System Construction & Function Description

一、系统完成的功能

(1)具有对多种传感器信号(电阻、电容、频率、电压、4-20mA 电流、液位、温度)

的测量能力;

(2)使用 SPI 模块用 128*64 液晶显示汉字和图片,通过设计菜单对各种测量量进行实

时液晶显示功能;

(3)使用 UART 串行通讯功能,设计自己的上位机软件,把物理量的测量结果实时的传

Page 93: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

87

到电脑的监视画面上;

(4)可选频率 PWM 方波产生功能,通过键盘输入灵活选择所需频率的方波。另外通过

硬件系统设计,也可以方便得到 8M、4M、2M、1M 等方波信号方便学生实验使用。

(5)555 振荡电路模块,用于电容的测量。

(6)电压频率转换电路,方便学生学习设计电压转化频率的测量方法和实验过程。

(7)灵活的按键输入结合液晶的菜单进行不同物理量测试功能的选择切换。

(8)红外接收功能,通过遥控器的按键用于无线控制各个物理量测量的切换。

重要的是系统具有一定的柔性,在完成设定功能的同时,便于设计学生实验;

二、详细的设计指标

1、嵌入式硬件部分: (1)采用 PT100 进行测量温度;

(2)测量 0~10V 电压;

(3)对 4~20mA 标准直流电流信号的测量;

(4)测量频率;

(5)对电容和电阻进行测量;

(6)液晶显示;

(7)键盘输入。

(8)PWM 波产生。

(9)红外接收功能。

2、PC 机部分:

上位机软件要能够实时准确的显示下位机的测量结果,并且要能够根据自定的传输

协议判断上传的数据是哪一个物理量的测量结果。

三、系统的具体实现

㈠ 系统的总体实现方框图如下图所示:

图 1:系统总体方框图

Page 94: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

88

㈡ 具体的软硬件实现

Ⅰ硬件设计

(1)电压测量模块

电压测量可以采用两种方案,A/D 转换和压频转换,A/D 转换是通过专用模拟信号转换

芯片,其种类很多按其原理不同可以分为-∑型,逐次逼近型,双积分型,跟踪比较型,

并行比较型等;按照分辨率不同又分为 8 位、12 位、14 位、16 位等多种;按数据输出又可

以分为并行和串行输出两种方式。使用 AD 转换芯片的优点是具有采样速度快(双积分型除

外),适应于快速变化的信号,缺点是价格昂贵,不易降低成本。另外一种是(电压频率转

换+计数器)的方案。 VFC 器件的种类很多,可以作为廉价的 AD 方案,并且其转换精度一

般高于 AD 转换芯片的精度;另外输出频率信号很容易通过一个光电转换器与高电平进行隔

离,因而比使用 A/D 转换器具有更好的抗干扰性,更好的传输特性,更低廉的价格优势,但

是转换速度低,只适合缓变信号的测量是其不容回避的缺点。这种方案对于变化速度不高的

信号,比如温度,比较适合。

图 2:电压测量模块图

此处使用的 A/D 转换电路是采用芯片 ADS774,它是逐次比较型模拟数字转换芯片,是

BB 公司的产品,其与 AD774 系列的 AD 芯片兼容,但是只需要+5 的电源。它的输入方式有单

极性和双极性方式,两种输入方式只在调零电路上有所不同,转换电路图如下,此处使用单

极性输入。

Page 95: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

89

图 3:模拟数字转换电路图

压频转换电路我们此处采用了 LM331A 芯片。LM331A 的性价比很高,可以用于压频或

频压转换。本系统使用其典型电路,输入电压为 0~10V,输出频率为 1~10k;输入端增加

了一个 11V 的稳压二极管,将输入电压限制在 11V 以内,并使用一个低通滤波器对输入电压

进行滤波。

图 4:电压频率转换电路

(2) 测量放大电路模块

当传感器的工作条件恶劣,传感器的输出有各种噪声,共模干扰很大,而传感器的输出信

号往往很小,输出阻抗大时,一般运放组成的放大器已经不能胜任,这种情况下,可以使用测

量放大器对差值信号放大。测量放大器又称为数据放大器、仪表放大器;它的特点是输入阻

抗高,易于和各种信号源匹配, 它的输入失调电压,输入失调电流及输入偏置电流小,温漂小,

因而稳定性很好。另外它的共模抑制比大,适合在大的共模电压下对微小的电压进行放大。

由于测量放大器有以上这些优点,因而常用于热电偶、电桥、流量计量、生物测量以及其他

Page 96: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

90

有较大共模干扰下直流缓变的微弱差值信号的放大。

本系统使用的测量放大器为 INA118,它的的增益为:G=1+50000/RG(RG 为图中

INA118 的两个 RG 引脚之间的电阻值)。此外为了提高增益调整的连续性,我们将增益调节

分成两挡。当拨动开关的 2 和 3 导通,增益 G 的调节范围 11~1064;当拨动开关 1 和 4 导

通时,增益 G 的调节范围 1.01~11;当拨动开关不导通,则增益 G=1。

图 5:测量放大电路

(3)温度测量模块

我们此处使用 pt100 热电阻的阻值随温度变化,将温度变化转换为电压的变化。通过

测量电压来得到温度的数值。热电阻的内引线是出厂时自身具备的引线,功能是使感温元件

与外部测量和控制装置相连接。热电阻的外引线有两线制,三线制和四线制 3 种几种形式:

1、两线制:

在热电阻感温元件的两端各连一根导线的引线形式。配线简单,安装费用低,但会引

进导线电阻的附加误差。因此不适应高精度的测量,使用时引线及导线都不宜太长。

2、三线制:

在热电阻的一端连接两根导线,另一端连接一根导线,可以消除内引线电阻的影响,

精度高于两线制。目前,在工业检测中应用 广。在测温范围窄或导线长,导线途中温度有可

能变化的场合,必须考虑三线制。我们此处使用三线制解法。

输入电桥用于将热电阻 PT100 随温度的阻值变化,转化为差分输出端的电压变化。接

线端子用于三线制接法时与热电阻进行连接。和热电阻对应的桥路电阻选择 100Ω。输入电

桥如下图 6所示。

电桥输出的小电压信号经测量放大器放大,然后可以通过两种方式来输入微处理器,一

种是经 ADS774,A/D 转换成数字量,另一种是经 LM331A 压频转换,再经测频模块,转换

Page 97: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

91

成频率信号输入微处理器。结构如下图 7 所示。

图 6:温度测量电路图

图 7:温度测量流程框图

(4)电流测量模块

有了电压测量模块,电流测量也就是很容易实现了。我们此处使用简单的通过电阻把

电流转化为电压进行测量。4~20mA电流通过一个精密电阻转换为电压信号,再接入到A/D

转换电路的输入。

模块图和连线图如下:

(5)电阻测量模块

采用精密金属膜电阻(1%)对 AD584 提供的稳定 10V 电压分压,通过测量分压电压值通

过公式得到所测电阻。其中的 op07 运放接成跟随器形式,抗干扰。

A/D

Page 98: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

92

图 8:电阻测量电路图

(6)频率测量模块

我们此处使用处理器提供的 INTC 中断模块和 TIMER 定时器模块,通过 INTC 中断模块采

样待测波形的前后两次上升沿,使用 TIMER 定时器模块计数两次上升沿之间的时间间隔,通

过一定的数学公式计算待测频率。因为 TIMER 定时器采用的 70MHZ 的系统时钟,所以频率的

测量精度可以得到保障。同时对于低频和高频信号我们分别采用多周期同步法和测周法,在

不增加外围电路的情况下,通过软件进一步的提高测量精度精度。

1、测周期法

测量单个脉冲信号的周期 Tx ,即测量单个待测脉冲信号内标准频率信号的个数 n,

待测频率信号的周期和频率为:

Tx=n×Ts

Fx=Fs/n

周期法的原理性误差为±1 个标准频率信号,即误差为 1/n, 可见待测信号的频率越

低(n 越大)测量精度越高,待测频率越高(n 越小)则测量精度越低,此方法适较适应于低频

信号的测量。

2、 多周期同步法

测量 N 个待测信号的时间,即测量 N 个待测信号时间内标准频率信号的个数 n,待测

频率的为:

Fx=N×Fs/n

多周期同步法的原理性误差为±1 个标准频率信号,即误差为 1/n,因为测量多个周期,

所以可以保证 n 为一个较大的数,从而保证了较高的精度。

(7)电容测量模块

采用 555 定时器产生一定周期的方波信号,而方波信号的周期和电容有固定的数学公式

T=0.7*2*R1*C。

通过前面的频率测量模块测得产生方波的频率进而得到待测的电容值。

Page 99: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

93

图 9:电容测量电路图

(8) 时钟发生模块

本系统由 8M 晶振产生频率信号,并通过 74ls393 分频得到一系列标准的频率,供频率测

量时作为标准频率和待测频率使用。其原理电路图:

图 10:方波产生电路

(9) 键盘输入模块

我们此处使用自己焊制的 4 个单独按键,通过查询 GPIO 口的电平来判断哪一个按键

被按下。未有按键按下时为输入到 GPIO 口为高电平,按下按键后输入为低电平。

键盘的读取关键是解决抖动的干扰,因此软件上采用一定的抗干扰措施以防止错误读

取按键,一般使用软件延时、多次读取的方法解决抖动问题。本程序中键盘子程序读取的

操作顺序如下:读取键盘,如果有键按下则延时 10ms,在输入稳定后读取按键,此后等

待键释放,一旦检测到键释放继续延时 1ms, 后返回按键结果。

Page 100: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

94

图 11:键盘输入电路图

(10) 液晶输出模块

设计中选用的液晶是带 7920 控制器的 LCD。其特点是:

1、并口数据传输可为8 位数据传输和4位数据传输两种方式。

2、具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。

3、内置字符生成ROM(CGROM)8320 位,字符生成RAM(CGRAM)512 位,显示

RAM(DDRAM)80×8位。

4、内置升压功能,无需对LCD管脚3提供负压。

5、拥有基本指令集和扩展指令集,可以对液晶进行丰富的操作。

6、宽工作电压,低功耗。

以下是液晶模块说明:

引脚 标号 功能说明 备注

1 Vss 逻辑负电源输入引脚,0V

2 Vdd 逻辑正电源输入引脚,+5V

3 NC

4 RS(CS) 数据/指令寄存器选择引脚

RS=“H” :数据D0-D7 与数据寄存器通信

RS=“L” :数据D0-D7 与指令寄存器通信

5 R/W(SID) 读/写选择引脚

高电平:读数据

低电平:写数据

若不要读操作

功能,该引脚

可直接接地

6 E(SCLK) 读写使能引脚

高电平有效,下降沿锁定数据

7~14 D0~D7 8 位数据线引脚 4 位总线模式

下, D0 ~ D3

脚断开

15 A 背光电源输入引脚,+5V 不带背光的模

块无此引脚 16 K 背光电源输入引脚,0V

Page 101: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

95

当采用数据串行传输时,数据线只需要接LCD模块的4、5、6三个引脚,串行传输方式

遵循串行外设接口(SPI)规范。

液晶与ARM的硬件连接电路图如图4-17 所示:

图12:液晶显示电路图

(11) 红外输入模块

红外接收电路的原理图如图3-7所示

图13: 红外接收电路原理图

红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚、接地

和信号输出脚。根据发射端调制载波的不同 应选用相应解调频率的接收头。红外接收头内

部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在

1µF 以上。故一般在供电脚和电源之间接入 100 欧电阻,进一步降低电源干扰。

Ⅱ 柔性测量系统下位机软件设计

1、主程序 void main(void) 采用查询键值的方式来进入各不同的测量模式。不停的循

环查询键值,可以实现实时测量。主程序流程图如下:

Page 102: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

96

图 14: 程序流程图

2、键盘子程序

键盘的读取关键是解决抖动的干扰,因此软件上需要采用一定的抗干扰措施以防止错

误读取按键,一般使用软件延时、多次读取的方法解决抖动问题。本程序中键盘子程序读

取的操作顺序如下:读取键盘,如果有键按下则延时 10ms,在输入稳定后读取按键,此后

等待键释放,一旦检测到键释放继续延时 1ms, 后返回按键结果。其程序流程图如下:

KEY_4

KEY_4

KEY_3 KEY_2 KEY_1 KEY_0

进入主程序

各个功能模块的初

始化

显示图片东南

大学

查询键值

主画面 1 主画面 2

KEY5 KEY6 KEY7

Page 103: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

97

Ⅲ 上位机软件设计

上位机软件用 Visual Basic 编写。

1、 程序界面设计

运行 Visual Bacic 6.0,创建标准的工程项目文件,设计程序窗体,如下图所示:

图 15:上位机监控画面

(1)添加 MSComm 控件。默认的工具箱中没有 MSComm 串口通信控件,因此首先要把它加

入到工具箱中。将 MSComm 控件夹道程序窗体上,利用该控件 PC 机就可以通过 Visual Basic

实现与单片机的串口通信了。

Page 104: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

98

(2)添加其他控件。一个 Timer 控件、一个 CommandButton 控件、两个 Label 控件、一

个图像控件。

2、 程序代码设计

在窗体加载的事件 Private Sub Form_Load()中,设置 MSComm 控件的各属性,具体如

下:

MSComm1.Settings = "9600,N,8,1" '设置通信参数,传输速率为 9600bit/s,

'没有奇偶校验位,8 位数据位,1 位停止位

MSComm1.CommPort = 1 '设置通信端口号为 1

MSComm1.InputLen = 0 '设置从接收缓冲区读取的字符数为 0

MSComm1.InBufferSize = 512 '设置接收缓冲区大小为 512 字节

MSComm1.InBufferCount = 0 '设置接收缓冲区计数值为 0

MSComm1.OutBufferCount = 0 '设置发送缓冲区计数值为 0

MSComm1.OutBufferSize = 512 '设置发送缓冲区大小为 512 字节

MSComm1.RThreshold = 1 '设置 OnComm 事件发生之前接收缓冲区可

'接收的字符数为 1

MSComm1.SThreshold = 1 '设置 OnComm 事件发生之前发送缓冲区中

'允许的 小字符数为 1

MSComm1.PortOpen = True '打开端口

程序中,通过对 OnComm 事件的处理 Private Sub MSComm1_OnComm(),来接收缓冲区中的

字符。在串口接收缓冲区中有一个字符到达或一个变化发生时,程序都可以利用 MSComm 控

件 OnComm 事件捕获并处理这些通信事件,此外,OnComm 事件还可以检查和处理通信错误。

完成情况及性能参数 /Final Design & Performance Parameters

后作品完成的功能

(1)具有对多种传感器信号(电压、4-20mA 电流、电阻、液位、温度)的测量能力;

(2)使用 SPI 模块用 128*64 液晶显示汉字和图片,通过设计菜单对各种测量量进行实

时液晶显示功能;

(3)使用 UART 串行通讯功能,设计了自己的上位机软件,把物理量的测量结果实时的

传到电脑的监视画面上;

(4)可选频率 PWM 方波产生功能,通过键盘输入灵活选择所需频率的方波。另外通过

硬件系统设计,也可以方便得到 8M、4M、2M、1M 等方波信号方便学生实验使用。

(5)555 振荡电路模块。

(6)电压频率转换电路,方便学生学习设计电压转化频率的测量方法和实验过程。

(7)灵活的按键输入结合液晶的菜单进行不同物理量测试功能的选择切换。

(8)红外接收硬件电路。

说明: 得到该比赛组委会技术支持相关同学的确切肯定消息,该款嵌入式芯片的中断无法进行

边沿(包括上升沿和下降沿)触法,但因为测量原理和硬件扩展板电路是在不知道此情况设

计的,而按照已选定的原理对于频率的测量和红外指令的接收都要使用中断边沿触法,因此

很遗憾在该款嵌入式芯片条件下无法编程实现上述两个功能模块。

Page 105: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

99

设计方法 /Design Methodology

总体方案设计与论证

1、硬件部分

系统方框图如下图所示:

图 1:系统总体方框图

注:图中开关代表可以使用导线进行连接;通过不同的连接即可以完成不同信号的测量

或设计不同的实验。

2、设计实现的各模块方案 (1)微处理器 选择东芯 IV SEP3203F50 移动终端应用处理器作为处理器,通过扩展线把

要使用的实验板上的功能模块引到自制的 PCB 电路板上,以实现设定的功能。

(2)模数转换模块 模拟数字转换提供了两种常用的方案,可以通过 AD 转换芯片和压频

转换器进行模拟数字转换。A/D 转换芯片选用 ADS774,具有 12 位的分辨率。压频转换模块

选用 LM331A 的标准转换电路。

(3)电压测量模块 对于 0-10V 的电压信号用 ADS774 进行模数转换,或者使用下面将提

到的压频转换模块转换为方波信号,通过测量频率得到电压值。

(4)电流测量模块 对于 4-20MA 的电流信号通过 250V 的精密金属膜电阻转换为电压信号

通过电压测量模块得到电压值进而通过数学计算得到电流值。

(5)电阻测量模块 采用精密金属膜电阻(1%)对 AD584 提供的稳定 10V 电压分压,通过

测量分压电压值通过公式得到所测电阻。

(6)温度测量模块 采用电桥式电阻电压转换电路将 PT100 热电阻的阻值变化转换为电压

的变化,经测量放大器放大,AD 转换,把转换结果送给微处理器,由微处理器通过软件的方

法进行线性化处理和补偿。

(7)水位测量模块 通过压阻式压力变送器把水位信号转换为 0-5V 电压信号,通过测量

电压得到水位的高度。

(8)频率测量模块 使用处理器提供的 INTC 中断模块和 TIMER 定时器模块,通过 INTC 中

Page 106: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

100

断模块采样待测波形的前后两次上升沿,使用 TIMER 定时器模块计数两次上升沿之间的时间

间隔,通过一定的数学公式计算待测频率。因为 TIMER 定时器采用的 70MHZ 的系统时钟,所

以频率的测量精度可以得到保障。同时对于低频和高频信号我们分别采用多周期测周和测周

法,在不增加外围电路的情况下,通过软件进一步的提高测量精度精度。

(9)电容测量模块 采用 555 定时器产生一定周期的方波信号,而方波信号的周期和电容

有固定的数学公式,通过前面的频率测量模块测得产生方波的频率进而得到待测的电容值。

(10)频率发生模块 提供从 8M 开始依次二分频的标准频率,实验时可以作为频率信号进

行测量。其中 8M 信号还作为频率测量时的标准频率信号使用。

(11)串行通信模块 串行通讯实验采用 UART 标准的串行接口与上位机通讯或其他的微处

理器通讯。

(12)键盘输入模块 此处使用 4 个按键,分别为功能选择键“向上”,“向下”,“确定”,“红

外功能选择”。

(13)红外遥控模块 此处使用市场上普遍的金星遥控器发射红外信号,通过一体化红外接

收头 TL0038A 进行红外信号的接收,同时将调制在 38KHz 载波上的红外脉冲信号解调出来,

然后将其输入到处理器的中断口。通过处理器对采集到的信号进行检测,分析其编码,然后

根据检测到的不同的编码来判断遥控器上的具体按键。红外遥控功能设置上和键盘输入一

致。

(14)液晶显示模块 LCD 屏显示的优点是显示内容丰富,接口电路简单,一般的 LCD 屏

都有现成的模块可以使用,显示驱动电路已经包含在内,只需要连接相应的数据/地址线即

可;程序编写也不复杂,LCD 模块内部的随机存储器可以存放要显示的数据,而且通过对

内部的功能寄存器简单的操作可以实现多种显示方式的选择。特别是带字库的液晶,使得编

程变得更加简单,只需通过 MCU 给 LCD 发送字符的 ASCII 码,液晶屏上就能显示字符了。

此处选用带 7920 控制器的 LCD。控制方式我们为了节省数据线采用数据串行传输,数据线

只需要接 LCD 模块的 4、5、6 三个引脚,使用 SPI 串行通信模块进行显示控制。

Page 107: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

101

3、软件总体设计 (1)下位机软件流程图

(2) 上位机软件部分

本系统中采用 RS232C 串口通信标准,这个标准对串口通信接口的有关问题,如信号电

平、信号线功能、电气特性、机械特性等都做了明确的规定。界面方面,使用 Visual Basic

编写。

Visual Basic 是一般程序设计人员在 Windows 环境下 常使用的串口编程语言。利用

Visual Basic 开发串口通信程序主要有两种方法:一是使用 MSComm 串口控件,二是调用

Windows API 函数。实践中,使用 Visual Basic 串口控件实现通信的方法比调用 API 动态

链接库的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,从而使编程效率大

大提高,也减少了因编程不当而导致的系统不稳定。

MSComm 控件全称为 Microsoft Communications Control,是 Microsoft 公司提供的

ActiveX 控件,目的是简化 Windows 下串行通信编程,它既可以用来提供简单的串行端口通

信功能,也可以用来创建功能完备的、事件驱动的高级驱动工具。

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通行工具。

通常以下面的步骤来使用 Visual Basic 的 MSComm 控件作通信控制。

(1) 加入通信部件,也就是 MSComm 对象。

(2) 设置通信端口号码,即 CommPort 属性。

Page 108: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

102

(3) 设置通信协议,即 HandShaking 属性。

(4) 设置传输速度等参数,即 Setting 属性。

(5) 设置其他参数,若必要时再加上其他的属性设置。

(6) 打开通信端口,即 PortOpen 属性设成 Ture。

(7) 送出字符串或读入字符串,使用 Input 及 Output 属性。

(8) 使用完 MSComm 通信对象后,将通行端口关闭,即 PortOpen 属性设成 False。

通过以上的步骤,就可以构建串行通行系统了。

4、设计步骤 (1)原理论证

(2)画原理图,制作 PCB 板

(3)焊接各模块,进行简单的程序编写,熟悉 ARM 编程软件使用环境和该款芯片的一

些基本特点。

(4)查找技术文档,进行各功能块程序的编写。

(5)把程序下到硬件中,软硬件联调。

(6)编写上位机程序。

设计特点 /Design Features

作品设计将主要具有以下特点:

(1) 功能强大

可以高精度的测量:1 直流电压、2 直流电流、3 电阻、4 电容、5 电感、6 频率、7

温度,7 个物理量的测试。测试结果可以实时的在液晶屏上显示。具体的精度取决于采

用的 AD 芯片的精度,现采用的是 8 通道的 12 位 ADS774。

(2) 测试量程范围大,量程选择智能化

该作品设计思路是可以测出上述 7 个物理量大范围的变化,同时为了保证测量精

度,把测量范围分为多个等级,使用程控放大器,先预测待测物理量的大概数值,对处

在不同等级范围的物理量采用不同的放大倍数,从而保证特别是小信号的测量精度。同

时因为要使用到开关电源,对测量电路有很大的干扰,因此软件上要进行抗干扰处理。

再者因为使用 Pt100 测温,所以软件也要进行非线性处理。

(3) 人机界面友好,功能选择方式多样

以液晶菜单的方式进行功能显示,功能切换可以选择有线和无线两种操作方式。

有线:采用自制的 4*4 小键盘进行灵活的功能切换,同时液晶上会同步的按照选择的功

能进行显示菜单切换。

无线:采用市场上通用的 SAA3010 电视遥控器发射红外信号进行功能选择。

(4) 完善的通信功能

使用芯片集成的 UART 串行口可以方便的和电脑通信,把测量数据实时显示在自

设计的软件界面上。

总结 /Conclusions

这个为比赛而做的柔性测量系统经过近一个月的设计,改进,终于基本上完成了。

该作品可作为自动化院检测技术学科实验课程的硬件平台,方便学生对于多种物理量测

量方法的学习和了解。

Page 109: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

103

本系统主要特点有:

(1)功能多样。可以对电压,电流等 7 个物理量进行测量,另外还可以产生可调频率的

PWM 波。

(2)人机界面友好,功能选择方式多样。以液晶菜单的方式进行功能显示,测量结果可

以在液晶上显示也可以实时的传输到上位机在软件界面上显示。功能切换可以选择有线的按

键操作,也可以选择无线的通过红外传输接收遥控器的控制指令。

同样本系统还有一些不足有待于改进,如一些参量的测量精度不够高,同时得到该比赛

组委会技术支持有关同学的确切肯定消息,该款嵌入式芯片的中断无法进行边沿(包括上升

沿和下降沿)触法,而对于频率的测量和红外指令的接收都要使用中断边沿触法,因此很遗

憾在该款嵌入式芯片条件下无法编程实现上述两个功能模块。

通过这个项目,我学到了很多新的东西。如:更加系统的掌握了各种电参量的测量方法

及其不同的实现方法,掌握了如何接触学习一款新的嵌入式芯片,如何查找相关资料进行软

件编程与设计,也建立了柔性系统的概念。同时将上位机与下位机通信的概念从理论转化为

实践,学习了用 Visual Basic 语言编写 Windows 风格的人机界面,熟悉了系统的调试方法,

培养了团队合作精神。

后谢谢各位老师给我这次学习实践的机会。

Page 110: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

104

“ASIC 杯”东南大学第一届嵌入式系统设计大赛

获奖作品设计报告

研究生组二等奖作品

Page 111: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

105

嵌入式无线综合路由器

作者:070603 吕睿超 070452 张弘 070542 叶自强

设计概述 /Design Introduction

随着 Internet 接入技术的不断发展,各种短距离宽带无线接入技术不断涌现,越来越

多的终端设备开始支持至少一种的接入方式。目前市面上的小型无线路由设备或是 AP 通常

只能提供一种功能的接入方式,功能单一且结构简单。

当前市场上应用 广、具有潜在用户 多的两种接入方式分别是:蓝牙和 802.11。

本作品基于 ARM 平台和 Linux 操作系统,设计实现了一种支持蓝牙和 802.11 双重接入

方式的多模无线综合接入模块,支持 802.11g 和蓝牙两种接入方式的双重接入功能。由于设

计实现的无线接入模块基于嵌入式平台,同时具备低成本、低功耗等技术优势。

本作品设计实现的无线多模接入模块可同时支持 7 个蓝牙设备和多个 802.11 设备的同

时接入,蓝牙接入的总带宽 1Mbs,802.11 接入的总带宽为 54Mb/s。

本作品在各种无线接入需求大的场合有着广阔的应用前景。

系统组成及功能说明/System Construction & Function Description

本作品设计选用了 SEP3203 核心处理器芯片的开发板,SEP3203 是东南大学自主研发

的 ARM7 32 位 RISC 处理器,具有低功耗和高性能等优点。作品中使用的开发板包含以下

几个部件:SEP3203 芯片,32M NOR FLASH,32M SDRAM,UART 接口,一个 USB(HOST)

扩展接口,总体硬件框架如图 1 所示。

利用 SEP3203 的 UART 接口可以外扩蓝牙模块,通过 GPIO 口扩展的 USB 接口可以外

接 USB 接口的 802.11g 模块。但 ARM 开发板上并没有现成的蓝牙和 802.11 设备的驱动程

序,和实现网关中数据转发的应用程序。本产品开发时完成的主要工作是对蓝牙和 802.11

的基础协议栈进行移植,同时将两者的设备驱动和网络配置相关的应用程序 iptables 移植到

了带有 Linux 操作系统的 ARM 开发板上,实现了蓝牙和 802.11 设备综合路由的功能。本作

品的总体硬件结构框图如下所示:

Page 112: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

106

完成情况及性能参数 /Final Design & Performance Parameters

本作品 终实现了嵌入式多模无线接入模块的全部功能,所有相关的工作包括:

1. uCLinux 操作系统在 SEP3203 嵌入式开发板上的移植

2. USB 接口扩展板的原理图和 PCB 设计

3. USB (high speed)设备驱动程序的编写与移植

4. 串口蓝牙设备库文件 bluez-lib 和命令工具 bluez-utils 在 uCLinux 操作系统下的移植

5. 802.11g 设备驱动程序以及相应的配置工具 wireless tools 在 uClinux 操作系统下的移

6. 无线多模接入模块 NAT 配置程序 iptables 在 uClinxu 操作系统下的移植

7. 平台的综合配置,无线多模接入模块功能的实现

本作品 终实现的 802.11 设备接入带宽为 54Mb/s,蓝牙设备接入带宽为 1Mb/s。接入

的速度受到 USB 和串口传输速率瓶颈的限制。

设计方法 /Design Methodology

无线多模接入模块的设计在完成 UCLinux 系统移植之后的工作主要包括了以下三个方

面:蓝牙相关 Bluez 协议栈的分析与移植;IEEE 802.11g WLAN 接入的设计与实现;以及无

线接入模块数据转发的实现,现详细阐述如下:

1. 蓝牙相关 Bluez 协议栈的分析与移植

蓝牙技术由一组称为IEEE802.15.4协议栈的技术协议规定。蓝牙协议栈分为四部分:核心

协议(Baseband, LMP, L2CAP, SDP)、电缆替代协议(RFCOMM )、电话传输控制协议(TSC

Binary, AT命令集)、蓝牙网络封装协议(BNEP)和选用协议(PPP, UDP/TCP/IP, OBEX, WAP,

vCard, vCal, IrMC,WAE)。

BlueZ 是官方的 Linux 蓝牙协议栈。它为蓝牙提供各个核心层次及其协议的支持,并在

所有层都提供了标准的 SOCKET 接口,具有高效、灵活、模块化,多线程处理数据和硬件抽

象化等特点,它已作为开发源码被接纳为 Linux 2.4 内核,可以提供完善的蓝牙功能,同时

具有较高的可靠性、稳定性和兼容性。所以本设计中选用 BlueZ 作为软件开发的基础。

BlueZ 的协议结构如图 2 所示,分为内核区和用户区两部分。内核区包括 BlueZ 核心协

议和驱动程序等,其中 BlueZ-kernel 和 BlueZ-libs 软件包实现了主机控制接口和套接字功能,

Page 113: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

107

均采用模块化设计;用户区中,应用程序接口提供了库函数便于程序员的自主开发,BlueZ

工具集负责蓝牙设备的配置和应用,实现蓝牙设备的初始化、查询等控制。

图 2. 蓝牙BLUEZ协议栈的总体框架

蓝牙BLUEZ协议栈的代码主要分成两部分,蓝牙的命令工具集

bluez-util 以及相应的bluez-lib,bluez-utils主要包含以下的应用程序:

表 1. bluez-utils中包含的应用程序

命 令 功 能

l2ping 测试两个蓝牙设备数据链路层连通性

hciattach 启动已连接的蓝牙设备

hciconfig 察看现有蓝牙设备的相关信息

hcitool 查询/启动周围蓝牙设备的各项服务

pand 建立两个蓝牙设备 BNEP层的数据链

以上这些应用程序(命令)的代码中大量调用到了库文件bluez-lib中所编写的接口函数,

因此在嵌入式ARM平台上运行蓝牙设备,首先要做的就是bluez协议相应的库文件bluez-lib

和命令工具集bluez-util的移植。具体步骤如下:

(1) 对内核应用bluez-kernel补丁

由于开发板上操作系统Linux内核版本为2.4.19-rmk7,内核码在net目录下没有能够对蓝

牙设备的协议栈进行完全的实现,因此首先要对Linux内核应用一个关于蓝牙设备的补丁文

件patch-2.4.19-mh15,具体执行命令如下:

#gzip -dc.. /patch-2.4.19-mhl5.gz I patch-pl

接下来进入开发板内核源码的目录下,运行make menuconfig命令,在” bluetooth

Support->”,以栏的目录下选择所有选项, 后对内核进行重新编译、下载运行。

(2) 编译、下载蓝牙库文件bluez-lib和命令工具集bluez-util

网上下载蓝牙BlueZ库文件的bluez-libs-2.20.tar.gz,对其进行交叉编译并且链接成动态

库文件,命令如下:

#arm-elf-gcc -shared -o libbluetooth.so.1.0.17 bluetooth.o hci.o sdp.o

然后用同样的交叉编译器对命令工具集进行编译,再将编译好的动态库文件下载到开

发板的文件系统中的/bin或/usr/bin目录下,将编译好的相应命令工具下载到/bin或/usr/bin目

录下。这样bluez协议栈的移植工作就完成了。

Page 114: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

108

(3)启动蓝牙的BNEP服务

BNEP是蓝牙BLUEZ协议栈中的提供的网络层服务,它是基于蓝牙基础协议L2CAP之上

的虚拟网络服务,它将IP层的数据包封装才l2cap层的数据桢中,使得蓝牙设备能够支持无

线上网的功能。一台带有Linux的PC机和开发板上的蓝牙设备建立BNEP层的数据连接所使

用的命令如下:

开发板上:

#hciattach –s 57600 ttyS0 any noflow //l启动串口蓝牙设备

#hciconfig hci0 up

PC机上

#pand –c <与开发板相连的蓝牙设备地址>

#ifconfig bnep0 up

这样就建立起了主机和开发板上蓝牙模块之间IP层的连接,至此无线多模接入模块上的

蓝牙设备就完全能够正常工作了。

2 . IEEE 802.11g WLAN 接入的设计与实现

无线网卡接入的选择取决于两方面因素:传输速率和 Linux的驱动支持。目前应用较多

的无线局域网协议包括 IEEE802.11a、 IEEE802.11b和 IEEE802.11g,其传输速率分别为

54Mbps、11Mbps、54Mbps,都能满足网关所需的功能。但IEEE802.11a产品的通用性不强,

IEEE 802.11b的传输速率相对较慢,出于多方面原因考虑 终选定了基于Zydas芯片组的

IEEE 802..11g USB接口WLAN模块。

(1) 驱动的移植

Linux对无线网卡的支持内核源码自带的wireless extension版本号上,版本号越高,它对

无线网卡的支持也就越好,通常要在Linux上运行802.11g的驱动需要的 低版本是 15,而

开发板上内核版本为2.4.19 wireless extension版本只有13,需要修改内核的某些文件以获得

对wireless extension的支持。PC机中的Redhat 9 支持的wireless extension版本恰好是15,可以

将相应的文件拷贝到ARM Linux内核中,主要拷贝的文件有

表 2. 升级内核wireless extension时需修改的文件

文 件 文件所在目录

iw_handler.h、wireless.h include/linux

netsyms.c net/

wireless.c net/core

同时将拷贝过后的netsym.c文件中添加如下语句:

#include <iw_handler.h>

EXPORT_SYMBOL(wireless_send_event);

此外,ZD1211芯片组的Linux标准驱动可通过ZyDas的官方网站(www.zydas.com.cn)

下载其标准驱动源码包 zd1211.tar.gz。解压后发现在驱动中有三种接入模式可选:

Page 115: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

109

PURE_B_MODE(纯802.11b模式)、PURE_G_MODE(纯802.11g模式)以及MIXED_MODE

(混合模式)。而模式的选择通过检测USB 主机接口的类型而决定,根据实测,对于设定为

PURE_B_MODE和MIXED_MODE时,网卡与AP的连接速度均为11Mbps,即处于802.11b模

式。在本网关中,希望网卡处于802.11g模式,以达到更高的速率,所以需将网卡强制设定

为802.11g模式。

接下来用arm-elf-gcc交叉编译器编译整个驱动代码树,产生相应得驱动模块文件为

zd1211.o,驱动的加载采用模块动态加载的方式,即insmod zd1211.o,这时插入无线网卡模

块,运行ifconfig eth1 up即可在系统中看到无线网卡的设备名被命名为eth1。

(2) 网卡工作模式的配置

IEEE802.11g定义了两种接入模式,一种是无线站模式(BS),运行在这种模式的模块做

从设备;另一种是无线接入点模式(Access Point, AP),运行在这种模式的模块做主设备。无

线路由器上的模块需要和多个PC机终端无线建立连接,必须做主设备使用。可以采用相应

wireless tools命令工具集对其进行配置,本文中采用的是版本是Wireless_tools.26,其中包含

的主要应用程序及其功能如下:

表 3. wireless tools 中的应用程序

命 令 功 能

iwconfig 查看/修改无线网卡参数

如:ESSID、工作模式等

iwlist

查看无线网卡除iwconfig以外的其他参

如:工作频率等

iwspy 查看其他802.11设备的IP地址和MAC

地址

iwpriv 提供对特定802.11设备私有数据的访问

Wireless_tools.26的移植过程与bluez-utils基本类似,在此不做过多介绍,经交叉编译后

产生上述四个可执行程序,将其放在开发板文件系统的/bin目录下。用ifconfig eth1 up激活无

线网卡之后,运行iwconfig eth1 mode ap, 这样开发板上的无线网卡就能工作在指定的AP模

式下了。

3. 无线接入模块数据转发的实现

在开发板上实现无线综合接入的功能,就要将蓝牙网卡和IEEE802.11g无线网卡从其它

网络终端设备上所得到IP数据包通过有线网卡转发出去。这就要用到NAT技术,把私有的IP

地址转换成合法的IP地址。

(1) NAT 和 iptables

NAT 通 常 分 为 两 种 类 型 : 源 NAT(source NAT,SNAT) 和 目 标 NAT ( Destination

NAT),DNAT).SNAT用来修改一个IP数据包的源地址,DNAT用来修改目的地址。NAT的原

理通常通过 NAT 规则表来实现的,它包含了两个 chains 列表: PREROUTING 和

POSTROUTING。其中PREROUTING用于DNAT,在数据包进入时检查;POSTROUTING用

于SNAT,在数据包离开时检查,通过NAT主机的数据包按顺序与规则表中的规则匹配。

Linux中的命令工具iptables实现了NAT功能,它通过调用Linux内核中的Netfilter组建实现

数据包的过滤。Netfilter由一些数据包的过滤表组成,这些表包含了内核用来控制数据包过

Page 116: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

110

滤的规则。这样用户级的程序可以通过iptables添加、修改和删除数据包过滤表中的规则。

通过iptables用户可以定制自己的规则,并将这些规则存储在内核空间的数据包过滤表中,

iptables工具的主要参数和功能如下:

例如:利用iptables向规则链中加入一条规则,将数据包的源地址转换为192.168.0.1:

iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to 192.168.0.1

(2) 在接入模块上实现NAT

嵌入式多模无线接入模块中实现NAT的主要步骤有三步,配置内核、移植iptables和添加

规则表。首先,在内核源码主目录下运行make menuconfig进行内核配置,在setup目录下的

Sysctl support选择支持IP转发功能,另外在Networking options下的Network packet filtering和

IP netfilter configurations选项转中,并且静态编译进内核以支持Netfilter组件。由于开发板中

没有现成的iptables命令,必须自己添加。iptables工具包可以免费从网上获得,本文中使用

了iptables -1.3.7版本。经过交叉编译,即可下载运行。

完成了上述两步工作以后,就需要进行路由规则的配置。在看法板上有三个网络设备,

名称分别为eth0、eth1和bnep0,其中eth0对应有线网卡,eth1对应802.11g无线网卡,bnep0对

应蓝牙虚拟网卡。假定配置802.11g网卡所在的网段是192.168.2.0/24,IP地址为192.168.2.1;

蓝牙网卡所在的网段是172.28.0.0/16,IP地址是172.28.0.1;有线网卡是一个一直在线的静态

网络连接,固定的IP地址是222.136.12.56。则相应的iptables配制为:

echo 1>/proc/sys/net/ipv4/ip_forward /*开启IP转发*/

iptables –t nat –F

iptables –A POSTROUTING –t nat –s 172.28.0.0/16 –o eth0 –j SNAT –to 222.136.12.56

/*将源IP地址为172.28.0.0/16做SNAT变为 222.136.12.56*/

iptables –A POSTROUTING –t nat –s 192.168.2.0/16 –o eth0 –j SNAT –to 222.136.12.56

经过上述两个步骤以后,带有网络功能的蓝牙及IEEE802.11终端设备就可以通过上述方

法所设计的无线综合接入模块实现无线上网的功能了,其总体结构如图3所示。

图3 . 无线综合接入模块总体功能结构图

设计特点 /Design Features

Internet

IEEE802.11g终端 IP: 172.27.0.5 GW: 172.27.0.1

蓝牙网络终端 IP: 10.0.0.5 GW:10.0.0.1

IEEE802.11g终端 IP: 172.27.0.6 GW: 172.27.0.1

IEEE802.11g USB模块 IP: 172.27.0.1 GW: 192.168.0.1

有线网卡eth0IP: 192.168.0.1状态:一直在线

串口蓝牙模块

(BNEP0)IP: 10.0.0.1GW:192.168.0.1

Page 117: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

111

本作品实现了蓝牙和 IEEE802.11 两种接入方式在嵌入式 SEP3203 平台上的融合,完

成了多模无线接入模块硬件和软件的组成和开发,其中重点解决了它在软件上的设计与实

现,包括 bluez 蓝牙协议栈的分析与移植,IEEE802.11 设备模块驱动程序的移植, 后介

绍了如何利用在 Linux 下利用 iptables 进行路由表的配置。本设计实现的嵌入式多模无线接

入模块通过了多个终端蓝牙和 IEEE802.11g 数据终端的联合接入测试,达到了预期的效果。

创新点:同一个嵌入式硬件平台上实现了双重的 Internet 方式接入(包括蓝牙和 802.11)。

总结 /Conclusions

本作品设计的多模无线接入模块实现了蓝牙和802.11g双重接入方式在SEP3203处理器

上的融合,使得带有蓝牙和 802.11g 设备的数据终端能够(如:手机、PDA、笔记型电脑等)

通过同一硬件平台实现 Internet 的无线接入。

心得与体会:本设计蓝牙模块通过 SEP3203 处理器的异步串口扩展,蓝牙接入的实际速率受

到串口速率上限的限制(波特率:115200),如果蓝牙模块通过 SPI 口等更高速率的接口扩

展,可进一步提高蓝牙设备的接入速率;通过 GPIO 口扩展的 USB high Speed 模块运行在

480Mb/s 的速率,在 PCB 板布线时很有讲究,如布线不当,则外括的 802.11g 模块极有可能

只跑到 12Mb/s(full speed 模式)后就会出现运行不稳定的状况

Page 118: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

112

智能化高精度(直流)信号发生器

作者:071088 王翻 071102 陈朝明 071113 孔祥伟

设计概述 /Design Introduction

直流信号发生器广泛用于各种计算机测控系统、智能化仪器、PLC 系统、嵌入式系统

以及自动化装置等分析、调试等用途,是科研与开发有力工具。

本竞赛项目为设计和研制一台以 SEP3203 微处理器为核心构成、方便本学科实验室科

研调试时应用的智能化高精度直流信号发生器。采用双通道 DAC 产生直流电压信号,一路

调节动态范围,一路实现高精度要求,通过高精度 16 位 DAC 检测输出电压,反馈给 MCU

构成闭环调节,提高了输出直流电压的精度,通过电压电流转换电路,产生高精度的直流

电流信号。

为了扩展该信号发生器的使用范围,增加了正弦波和三角波信号的产生,基于直接

数字频率合成技术,通过集成 DDS 芯片 AD9834 来实现,通过 10 位数字电位器 X9118 设计

可编程放大器,实现了频率可调的正弦波和三角波信号。

关键问题及难点:

1. 对于直流信号中的直流小信号(0-10mV 与 0-100mV 档),要实现高精度的输出;

2. 实现直流电流信号的高精度(0.1% F.S)输出;

3. 通过键盘设定参数实现正弦波和三角波信号的输出频率和幅值可调。

4. 编写信号发生器人性化的显示和操作界面,使得信号发生器操作方便,很容易让

初次使用的人上手。

系统组成及功能说明/System Construction & Function Description

功能:

1. 能方便地产生 0~10 mV、10~100 mV、0.1~1.0V、1.0~5.0 V,精度为 0.1%

F.S 直流电压信号;

2. 能产生 0~25 mA 精度为 0.1% F.S 直流电流信号;

3. 能方便地产生频率可调(从1Hz-10KHz预设定)和幅值可设定从±10 mV 至±5V 的

正弦波信号, 大幅值为+5V、频率从1Hz至10KHz的三角波信号;

4. 输出信号幅值大小可通过键盘设定或手动调节(这时需同步显示)

直流电压信号产生:

采用 DAC 产生直流信号的方法适合由键盘输入数值,MCU 进行相应的计算处理后,直接

向 DAC 输出数字量来保证高分辨率的电压信号的产生,可以方便地对信号的大小进行调节。

直流电流信号的产生方法:

Page 119: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

113

采用模拟运放电路和高精度采样反馈电阻组成电压电流转换电路,通过 0-5V 电压转换

为 0-25mA 电流。

正弦波、三角波的产生方法:

DDS 方法,从相位概念出发,用全数字的方式直接合成所需波形的一种合成原理。DDS

方法在输出频率、频率转换时间、频率分辨率、相位变化连续性、输出波形的灵活性、易于

集成性、功耗、体积、重量、可靠性、且易于程控和性价比等等方面都有很大优势。

AD 公司的 AD9834 能够产生频率、波形十分稳定的正弦波和三角波; 大的工作频率也已经

达到 50MHz,理论上可产生 25MHz 的频率,远远超出课题任务书的 10KHz 高频率要求,

AD9834 还有极低的功耗, 大功耗只有 25mW,同时,价格也较低。因此 终选定用 DDS 芯

片采用 AD9834。

完成情况及性能参数 /Final Design & Performance Parameters

1. 能方便地产生 0~10 mV、10~100 mV、0.1~1.0V、1.0~5.0 V,精度为 0.1% F.S

直流电压信号,在 1-5.0V 范围输出时,精度远高于要求的 0.1%精度。

2. 能产生 0~25 mA 精度为 0.1% F.S 直流电流信号;

3. 能方便地产生频率可调(从1Hz-10KHz预设定)和幅值可设定从±10 mV 至±5V 的

正弦波信号, 大幅值为+5V、频率从1Hz至10KHz的三角波信号;

4. 输出信号幅值大小可通过4×4小键盘设定,菜单显示由128×64分辨率的液晶屏显示,

操作人性化。

设计方法 /Design Methodology

系统硬件设计

一:系统模块构成:

系统除了包含除了处理器 SEP3203 外 ,还包含:

(1) 显示电路,用于显示菜单和数据的显示。

(2) 键盘输入电路,用于对系统方便地进行操作。

(3) RS-232 接口电路,用于和上位机设备进行通信。

(4) 电压检测和复位电路,用于保障系统稳定、持续运行。

(5) 双通道 DAC,用于产生两路直流电压信号。

(6) 16 位 ADC,检测输出电压信号,将输出电压信号大小反馈给 MCU,使 MCU 可

以及时调整输出电压的大小。

(7) DDS(AD9834)电路,用于产生正弦波和三角波信号。

(8) 滤波和调幅电路,用于正弦波和三角波信号幅度的调节。

Page 120: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

114

二 直流电压信号产生电路设计:

2.1 MAX5154与MCU的接口电路:

图 2 MAX5154 与 MCU 的接口电路

Max5154 的两个 DA 输出通道,DA 输出都通过一个跟随电路,通道二经过数字电位器

X9118分压后经过200倍的衰减后与通道一的输出电压相加后经过缓冲器输出衰减的电路中

加一数字电位器可以起到调节精调电压分辨率作用,将电位器的值设置为 168 ;

(5/200)/4096×(168/1024)=0.001mV 即 D/A2 的分辨率为 0.001mV

此时 DA2 通道的对整个输出口电压的调节范围为 0-4.095mV 。达到电压的精调。

2.2 Max7705 与 MCU 的接口电路:

Page 121: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

115

图 3 Max7705与MCU的接口电路

MAX7705 带有增益可编程放大器, 小测量量程为 0-20mV 的电压信号。当信号发生器的

量程为 0-10mV,电压测量精度约为 0.003%,与 0.1%的精度要求相比 留有较大余量。由于

基准电压为 2.5V,故 AD 的 大量程为 0-2.5V,当输出的电压为 0-5V 时,将电压衰减为原

来的一半,输入第二个差分通道测量。

三 电压电流转换电路:

R2110

R18

1K

Q1

2N5088

Q2

2N5088

R20

1K

12

J4

J_Iout

+15V

Vout1

Q7

Q6

R16 18K

R4910K

R63

1K

R17 10KVOUT

+9V+9V

-9V

-9V

图 4 电流产生电路

R21 为 10Ω精密采样电阻,经过运放 Q1 放大 19 倍,根据运放的虚短虚断可知:

outoutout IIV 1901019

Page 122: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

116

当 outV 为 0-5V 的范围时, outI 的输出电流范围为 0-26.3mA,完全满足 0-25mA 的电流

信号要求。

电流电路需要+15V 电压供电,由于系统电源没有设计+15V 电压,因此,采用 DC-DC

升压芯片 AD762,其 大输出电流为 150mA,完全满足 0-25mA 的电流输出要求。

LBO 1

LBI2

FB3

SHDN4

REF5

GND6

LX7

V+8

U2

AD762C19104

L1

18uH1N5817

C5

104

A+5V +15V

+ C1833uF

+ C633uF

图 5 DC-DC 升压电路

四 正弦、三角波信号产生电路设计:

4.1 AD9834与MCU的接口电路

FS ADJUST1

REFOUT2

COMP3

AVDD4

DVDD5

CAP/+2.5v6

DGND7

MCLK8

FSELECT9

PSELECT10

RESET11SLEEP12

SDATA 13SCLK

14FSYNC 15

SIGNBITOUT16VIN17

AGND 18IOUT

19IOUTB 20

AD9834

U9

AD9834

R40

6.8K

C46

104

C45

104A+5V

C47 103

C40

0.1uF+5V

C410.1uF

C420.01uF

C430.1uF

NC1

GND2 OUT 3

VCC4

C44

CRYSTAL

+5V

C39

04

R391K

R411K

C49

103R42

200

R43

200

C50103

IOUT

C48 103

P0.4_SCK0P0.6_MOSI0

P1.24_AD9834

图 6 AD9834与MCU的接口电路

与 AD9834 的接口电路如图 6 所示。其中,电阻 SETR决定输出电流 Iout 的大小,由公

式计算,可得

SETREFOUTScaleFull RVIOUT /18_ )(8.6/2.118 mA mA176.3

Page 123: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

117

由于 AD9834 的输出电压的范围有限, 大输出电压值为 0.8V,因此,取 20025R

则输出电压 大值约为 600mV。

4.2 滤波电路

对于理想的 DDS,产生的是阶梯的正弦波,对其进行傅里叶分析,可以证明若一周期

内的采样点数为 N,高次谐波能量主要出现在输出频率的 N±1 倍频上,其幅值为基频的 1/

(N±1)。因此考虑用低通滤波器对正弦波阶梯进行平滑处理。

对于本系统,若选用 2MHz 的外部时钟,理论上的 高频率只能达到 1MHz,对于

AD9834 来说,波形存储器的地位为 12 位,即一个周期波形的点数为 4096212 。由上述

论证可知,对于 AD9834,其产生的正弦波的高频分量与基频相差很远。AD9834 内部的

DAC 的采样频率为 50MHz,由它产生的也是与输出相差很大的高频噪声。同时,本系统主

要需要保证的是输出正弦信号频谱在通带内的平坦。因此 终选用二阶有源低通巴特沃兹滤

波器。

4.3 调幅电路设计

目前,利用螺丝刀进行模拟调节的方式正逐步被淘汰,这种方式的成本较高,而且存在

人为误差。针对当前市场,用数字电位器替代机械式电位器将会为产品带来极大的竞争力。

数字电位器能够提高产品的可靠性,另外,由于消除了高成本、存在一定问题的手工调节,

简化了生产流程。可以很容易地降低产品成本,提高装配速度。通常情况下,用数字电位器

替代机械式电位器,可以得到完美的解决方案。

X9118 数字电位器,具有可编程、易控制、高分辨率、高集成度等等优点,借助它完全

可以实现上述要求的可编程的电压放大器,如下图所示的电路就可以实现增益既可大于 1

也可小于 1,即实现了对电压的放大和缩小。

考虑到前一级的 DDS 芯片 AD9834 产生的正弦信号和三角信号的电压变化范围在 0 到

+240mV 之间,因此,要实现±10mV 到±5V 的信号,就要加上一个偏置电压,或者直接加上

一个隔直电容对信号进行处理。 终选用加上一个偏置电压进行处理的方法。考虑到若对信

号先进行放大再进行偏置,则信号对地的峰值必须达到 10V 以上,这样,对于运放的供电电

源来说,就至少需要 10V 以上,加大了电源的负担。相反,若先对信号进行偏置,则可以很

好地解决这个问题, 终确定的方案如图 7 所示。

Page 124: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

118

V+1

NC2

A03

SCLK4

WP5

SDA6

VSS7 A1 9

NC 10Rw 11Rh

12Rl 13Vcc 14

V-8

U12

X9118

A+5V+5V

+5V

P0.3_SDA1

2

35

6

8

1

47

X1

LM318N(8)R5210K

C52

20P

A-5V

2.5VR50 10K

+9V

-9V

P0.2_SCL1

Q5

OP07

R46

1KR4710K

R48

1K+9V

-9V

图 7 调幅电路

五 液晶显示电路设计

设计中选用的液晶是带 7920 控制器的 LCD。其特点是:

1、并口数据传输可为8 位数据传输和4位数据传输两种方式。

2、具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。

3、内置字符生成ROM(CGROM)8320 位,字符生成RAM(CGRAM)512 位,显示RAM(DDRAM)

80×8位。

4、内置升压功能,无需对LCD管脚3提供负压。

5、拥有基本指令集和扩展指令集,可以对液晶进行丰富的操作。

6、宽工作电压,低功耗。

表1所示为液晶模块说明:

引脚 标号 功能说明 备注

1 Vss 逻辑负电源输入引脚,0V

2 Vdd 逻辑正电源输入引脚,+5V

3 NC

4 RS(CS) 数据/指令寄存器选择引脚

RS=“H” :数据D0-D7 与数据寄存器通信

RS=“L” :数据D0-D7 与指令寄存器通信

5 R/W(SID) 读/写选择引脚

高电平:读数据

低电平:写数据

若不要读操作

功能,该引脚

可直接接地

C52 用于

消除自激

Page 125: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

119

6 E(SCLK) 读写使能引脚

高电平有效,下降沿锁定数据

7~14 D0~D7 8 位数据线引脚 4 位总线模式

下,D0~D3 引

脚断开

15 A 背光电源输入引脚,+5V 不带背光的模

块无此引脚 16 K 背光电源输入引脚,0V

表1 液晶模块说明

当采用数据串行传输时,数据线只需要接 LCD 模块的 4、5、6 三个引脚,串行传输方式

遵循串行外设接口(SPI)规范。

液晶与开发平台的硬件连接电路图如图 8 所示:

图 8 ARM与液晶接口电路

六 键盘电路设计

考虑到整个系统的人性化操作,使用者能够方便直接地操作该信号发生器,故设计了一

个 4×4 的小键盘,

对于小键盘的管理方便,采用了周立功公司的键盘显示专用管理芯片 ZLG7290,

ZLG7290 芯片键盘管理特点:

1. I2C 串行接口,提供键盘中断信号,方便与处理器接口;

2. 8 个功能键,可检测任意键的连击次数

3. 键盘去抖动处理,双键互锁处理。

4. 只使用键盘扫描管理功能,这时工作电流可降至 1mA。

具体电路如图 9 所示:

Page 126: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

120

S14

S16

S10

S12

S6

S8

S2

S4

S13

S15

S9

S11

S5

S7

S1

S3

D3 D4

BT0

BT1

BT2

BT3

BT4

BT5

BT6

BT7 R28

1KR29

1KR30

1KR31

1K

R35

1K

R34

1K

R33

1K

R32

1K

BT0

BT1

BT2

BT3

BT4

BT5

BT6

BT7

bit0

bit1

bit2

bit3

bit4

bit5

bit6

bit7

SEG6 SEG7

SegC1

SegD2

SegE7

SegF8

SegG9

SegH10

SegA23

SegB24

VCC16

OSC117

OSC2 18

RES15

Dig33

Dig24

Dig15

Dig06

Dig713

Dig422

Dig521 Dig612

SDA20

SCL19

INT14

GND11

U19

ZLG7290

SEG6SEG7

bit0bit1bit2bit3bit4bit5bit6bit7

+3.3V_1

C30

30p

C31

30p

Y48Mhz

OscIN

OscIN

OscOUT

OscOUTP0.2_SCL_1P0.3_SDA_1

P0.30_EINT3_1

GND

nRST_1

GND

图 9 键盘电路 ZLG7290芯片需要使用一频率小于等于8MHz的晶振,其典型值为8MHz。

系统软件设计

一 DDS 模块软件设计:

1.1 SPI 串行协议

AD9834 与 MCU 的接口采用的是 SPI 接口,图 10 是采用 SPI 方式加载 AD9834 的两个频

率寄存器、四个相位寄存器及控制寄存器的时序图。

MCU 的 SPI 输出接口连接 AD9834 的 FSYNC、SCLK 和 SDATA。主程序初始化时,将 SCLK

设置为低电平,FSYNC 为高电平。串行加载子程序的流程是:首先,MCU 控制 FSYNC 由

高电平转为低电平,通知 AD9834 有数据写入,之后控制 SCLK 由低电平转为高电平,MCU

接着将数据 D15 由 SPI 的 MOSI 输出,随后控制 SCLK 由高电平转为低电平,将数据 D15 写

入 AD9834,按照写入 D15 的过程,依次写入 D14 到 D0 各位数据。 后,MCU 控制 FSYNC,

使其由低电平转为高电平,完成 16 比特数据的写入。

对于本系统这种低速的 MCU 来说,对 AD9834 的控制采用上图的串行数据加载时序,

利用串行写入线 FSYNC、SCLK 和 SDATA,向 AD9834 写入 16 比特数据,是完全可行的。

图 10 AD9834 串行加载时序图

Page 127: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

121

然而,对于一些高速的 MCU 芯片或 DSP 控制芯片来说,就要考虑得更加细致了。AD9834

的串行接口对于 大为 40MHz 的时钟频率都可适用,但在高频下,对 SPI 时序的要求更高。

例如,如上图所示,在初始化后 SCLK 为低、FSYNC 为高,在 FSYNC 下跳沿开始数据传输

前,SCLK 必须有 5ns 延迟,即图中的 t12。具体的时序可以参见 AD9834 的芯片资料。

1.2 AD9834 的初始化

如图 11 所示,为 AD9834 初始化的流程图,可以看到,在上电后,先要对 AD9834 进行

复位,这将使相应的内部寄存器清零,产生一个半满程的输出,为避免 DAC 的误输出,在

AD9834 初始化过程中,RESET 位必须一直保持为高。其中 RESET 可为芯片上的引脚(硬件复

位)或为控制字中的 reset bit。RESET 位并不对相位寄存器、频率控制字寄存器、控制寄

存器进行复位,这些寄存器中的数据为无效的,因此它们都要由用户输入,因此在要在复位

后,对频率和相位寄存器进行赋值,产生波形时,RESET 应置为“0”,因为 AD9834 中的频

率和相位数据寄存器都有两个,因此在复位同时还要为写入的数据选择频率和相位寄存器,

这样,在此之后 8 个主时钟(MCLK,下文同)周期后,DAC 开始输出。

二 数字电位器

2.1 I2C 串行协议

X9118 采用的接口电路遵循 2 线的串行总线接口,即类似 I2C 总线的协议。I2C 是一种

简单、双向二线制同步串行总线,它只需要两根线(串线时钟线 SCL 和串行数据线 SDA)即

可在连接于总线上的器件之间传送信息。这种总线的主要特性如下:

总线只有两根线:串行时钟线和串行数据线;

图 11 AD9834 初始化流程图

Page 128: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

122

每个连到总线上的器件都可由软件以惟一的地址寻址,并建立简单的主从关系;

主器件既可作为发送器,也可作为接收器;

它是一个真正的多主总线,带有竞争检测和仲裁电路,可使多个主机任意同时发送

数据而不破坏总线上的数据信息;

同步时钟允许器件通过总线以不同的波特率进行通信;

同步时钟可以作为停止和重新启动串行口发送的握手方式;

连接到同一总线上的集成电路器件只受 400pF 的 大总线电容的限制。

I2C 总线进行数据传输时,总是由主设备开始,主设备同时提供收发的时钟,对于 X9118,

总是把它看作是从设备,把 MCU 看作主设备。在 SDA 的数据状态只能在 SCL 为低电平时改变,

如果 SDA 在 SCL 的高电平期间改变,则表示传输开始或结束。其中,I2C 中一个很重要的保

证数据可靠性的方式就是采用了应答的协议。应答用于确认总线上的主从设备是否成功收到

信号的,它是一种确认握手信号的软件协议。在传输中的设备,不论主从,都要等到传输完

8 位数据后才释放 SDA 总线。主设备产生第 9 个时钟周期,收端在此期间将 SDA 拉低到低电

平,以此来确认收到了 8 位数据(如图 12 所示)。X9118 会在收到开始信号、从设备地址和

在成功收到命令字之后产生一个应答信号,同样,如果命令之后跟了一个数据字节,X9118

会 后产生一个应答信号。

1. 指令与寄存器

1) 设备地址

起始条件后,紧接着就要给出 I2C 总线上从设备的设备地址,即 X9118 的设备地址。其

地址取决于 X9118 上 A1、A0 引脚上硬件连接的逻辑高或低。发送设备地址时,总线上的 8

位数据的 高 4 位 ID3~ID0 应为“0101”,其格式如图 13 所示。其中,A1A0 为设备地址,

它们的值必须要和硬件上引脚的连接相对应, 低位为读写选择位。

2) 指令字节和寄存器选择

接下来一个字节就是对寄存器的读写指令,这个字节的高三位 I2~I0 为指令码,其格式

图 12 I2C 总线应答时序

图 13 X9118 设备地址指令格式

图 14 X9118 读写指令格式

Page 129: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

123

如上图所示,RBRA 为对应寄存器的地址,主要的指令集如表 2 所示。

指令名称 R/W指令集

I2 I1 I0 0 RB RA 0 0

读 WCR 1 1 0 0 0 0 0 0 0

写 WCR 0 1 0 1 0 0 0 0 0

读数据寄存器(DR0~DR3) 1 1 0 1 0 0/1 0/1 0 0

写数据寄存器(DR0~DR3) 0 1 1 0 0 0/1 0/1 0 0

从数据寄存器将数据导入 WCR 1 1 1 0 0 0/1 0/1 0 0

将 WCR 值存入数据寄存器 0 1 1 1 0 0/1 0/1 0 0

表 2 X9118 指令集

2. 信号调幅软件设计

如图 15 所示,为由数字电位器构成信号调幅

电路的示意图,R1 对应着数字电位器的三端。对于

X9118,其 大阻值为 100k,有 1023 个抽头,对应

了包括 0 在内的 1024 个值。

那么,为得到一个输出幅值与对应的数字电位

器内 WCR 的计数值的关系式,我们设输出幅值为 A,

输入幅值为 A0,WCR 的值为 X,则有:

X

X

X

X

RLR

RL

A

A

RLR

RL

RH

RL

Vin

Vout

10241024

100)1024(

1024

100

11 0

0

1024AA

AX

由上式,可以看到,对应于将要输出的信号来说,可以预知它的幅值,输入的信号为

DDS 芯片 AD9834 输出的信号,也可预先测得。因此,通过计算上式就可以相应的设定输出

信号的幅值了。

三 显示程序设计

3.1 液晶显示程序设计

一般对液晶进行写操作需要有判忙、 写指令数据、 写显示数据等,不管是写指令数据

还是写显示数据,之前一般需要判忙。图 16 是液晶显示程序设计流程图。如果在显示数据

之前留有足够的延时,可以不需要判断液晶是否忙,

图 15 由数字电位器构成信号调幅电路

Page 130: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

124

图 16 液晶显示程序设计流程图

3.2 液晶菜单设计

由于带 7920 控制器的液晶指令集非常丰富,所以可以对液晶进行丰富的菜单设计。带

7920 控制器的第一行行地址对应到液晶显示屏上的 1、3 行,第二行行地址对应到液晶显示

屏上的 2、4 行,用 7920 控制器的反白指令对液晶进行反白显示时,7920 控制器只认行地

址,故对第一行进行反白时,实际是对液晶显示屏上的 1、3 行进行反白,所以用反白指令

来进行菜单选择是不合适的。7920 控制器指令集中有游标显示功能,故用游标显示指令来

标记菜单选择项。在程序设计中只需开游标显示(用一条开游标显示指令就能实现),写游

标显示地址,游标就能在指定位置显示了。

四 系统主程序设计

整个主程序采用有限状态机的方法来实现多级菜单的编写,在每个主程序循环中,对应

一个当前状态,当有键盘按下后,判断按键值,从而引起状态改变,在下一次循环中会根据

新的状态来执行新的程序。从而使系统可以从一级菜单进入另外一级菜单,这种编程方法有

很多优点,其中 重要的特点是扩展性强,程序的可移植性强。当要加入新的菜单程序时,

只需要增加一个新的状态,增加新的状态在特定情况下的转移方向即可。

Page 131: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

125

图 17 系统主程序流程图

设计特点 /Design Features

1. 布线考虑抗干扰

2. 基于直接数字频率合成技术,通过集成DDS芯片AD9834来实现,通过10位数字电位器

X9118设计可编程放大器,实现了频率,幅值可调的正弦波和三角波信号。

3. 液晶、菜单显示人性化设计。

4. 可以达到较高的精度要求

总结 /Conclusions

在设计的过程中学到了很多东西,也遇到过很多困难,但都逐一解决了。

本设计的系统硬件有 SEP3203、MAX5154、串行 AD 转化器 MAX7705、DDS 芯片 AD9834、

键盘、液晶等。系统调试步骤遵循的原则是先易后难,这样做的好处是不至于遇到难题而让

系统调试进度停滞不前。所以我先把简单的模块先调试好,然后集中精力解决复杂模块的调

试。

调试步骤:

1. 对 MAX5154 的调试。通过 ARM 的 SPI 数据口向 MAX5154 发送数据,看 MAX5154 的输

出电压是否正常。

Page 132: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

126

2. 对键盘的调试。通过仿真器仿真窗口观察键盘响应操作是否正确。

3. 对液晶的调试。编写一个液晶显示程序看液晶的显示效果是否和预期效果相同。

4. 对 MAX7705 的调试,通过向 MAX7705 的发送命令,启动模数转换,读如转换数据,

看转换数据是否正常

5. 对 MAX7705 通道二上的数字电位器进行设置,通过 ARM 的 I2C 接口向数字电位器

送命令,看数字电位器是否正常工作。

6. 对直流电压信号的输出模拟模块进行调试,对电压电流转换模块进行调试。

7. 对以上直流信号模块进行联调。看以上各模块能不能协调工作。

8. LCD 显示屏进行调试,是否硬件连接有问题。

9. 对键盘电路进行调试,看 ZLG7290 芯片是否工作正常。

10. 对 DDS 芯片 AD9834 进行调试,看是否能够输出正弦波信号。

11. 对 DDS 芯片的后级电路进行调试,包括调幅电路的调试,看是否能够对正弦波的幅

值进行调节。

12. 对 SEP3203 进行 PWM 输出,看是否输出正常,包括后级电平转换电路的工作是否正

常。

13. 将上述模块的驱动程序整理,编写完整,以方便主程序的调用,提高程序的可读性。

14. 编写丰富的显示菜单,并且将相应的菜单中执行对相应模块的操作,实现整个系统

的协调工作,从而实现整个仪表的智能化。

系统软件调试问题及解决方法:

1. 在 初的程序编写和调试过程中,由于对编程调试环境的不熟悉,在对 MAX5154 芯

片进行 SPI 数据传输后,一直没有进行正常的工作,后来发现 ARM 对 SEP3203 片选

引脚没有进行相应的输入输出设置,当设置为输出后,芯片工作正常。

2. 在调试 MAX7705 的过程中,发现对 MAX7705 发出转换数据命令后,转换完成后,ARM

向 MAX7705 读两个字节的数据,总是在读的时候程序停止运行, 后发现主机(ARM)

要接受 1 个字节的数据时,需要向 MAX7705 发送 1 个字节的数据,因为只有当主机

发送信号时,CLK 信号才会启动(CLK 信号由主机产生),这样主机才会从从机接收

到相应的数据。

3. 在调试键盘中断时,在键盘中断产生时,进入了键盘中断后,发现程序在一直等待

接收 ZLG7290 芯片的 I2C 的数据, 后在程序的单步调试中发现,一旦产生外部 IRQ

中断,则自动关闭 IRQ 中断,进入中断服务程序后读键盘时要用等待 I2C 信号的传

输中断,则程序不能够继续进行下去,解决方法是在进入中断服务子程序后重新使

能 IRQ 即可。

4. 在进行 LCD 显示电路的调试时,开始显示电路一直没有正确地显示, 后发现,一

般的芯片片选是低有效,而液晶屏模块式高电平片选有效,将 LCD 片选信号在读写

数据时电平拉高即可。

5. 在存放液晶显示的菜单数据时,数据的存放存在一个 ARM 字对齐的问题,由于显示

的菜单中的汉字的占用 2 个字节,而一个字母或数字占用 1 个字节,每个菜单的起

始地址应该为偶地址才不会出现取数据发生错误,因此,在显示菜单的时候,如果

出现一行字符占用奇数个字节空间(包括结束位)时,应该在 后加上一个空字符,

Page 133: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

127

将这一行字符凑成偶数个字节。

6. 对 DDS 的数据写入部分的调试是严格按照 AD9834 的芯片资料进行操作,然而在选择

波形的部分遇到了问题。芯片资料并未给出明确的对控制寄存器的操作顺序。在第

四章 DDS 部分已提及相关内容,在对三角波的选择时,不能直接在对频率相位进行

写操作的同时对 OPBITEN 位和 MODE 位进行赋值,要首先对相位和频率进行修改后,

再进行对控制寄存器的写操作,改变 OPBITEN 位和 MODE 位的值,这样才能实现对正

弦表的旁路,实现三角波的输出。

7. 在 初的直流电压输出调节过程中发现输出电压与所设定的电压值相差约 3mV,通

过仪表测量发现,是由于 ADC 的模拟地与输出口的模拟地之间有约 3mV 的压降,虽

然表面上两者是连接在一起的,但是由于同一根线上存在着压降,导致了系统的测

量电压会存在着相应的误差, 后在这两点之间的地线过孔中填充了焊锡,发现情

况得到很大的改善, 总压降降为 0.05mV 以内,分析认为板上地线的过孔存在一定

的电阻,导致在同一根地线上的两点存在着微小的压降。

在设计过程中,学习了我校 ASIC 中心自主开发的基于 ARM7 内核的处理器芯片

SEP3203,熟练掌握了基于 SEP3203 处理器的嵌入式系统开发的流程,为以后的工作打

下了良好的基础。也发现了不少以前掌握不好的或是疏忽的问题,尤其是在模拟电子技

术上,通过整个设计过程的锻炼,对模拟电子技术有了一个较大地提高。除此之外,设

计中也进行了一些创新,对一些新技术进行了研究和试验,还学习到了不少新知识,提

高了自己运用知识分析问题的能力。总而言之,通过这次设计,收益匪浅。

Page 134: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

128

基于 GSM 的无线户外广告控制器

作者:070903 梅晨 070906 张纪艳 070973 张伟伟

设计概述 /Design Introduction

设计目的:

在日常工作生活中,以 LED 显示屏为显示媒介的低成本显示装置有着广泛的运用。这些

设备通常需要有线连接来更改其中的广告内容。但是在一些场合,有线连接及内容更换会造

成成本的增加,同时有些显示牌处于露天状态,过多的硬件设备会因自然天气影响造成性能

降低。而短信接收模块性能较稳定,通过接收短信将信息直接显示在 LED 屏幕上,不需要连

接其它硬件,移动性较好,可以及时的通知一些信息。

本设计基于 SEP3203 处理器,增加了 MC35i 模块,用于实现短消息(SMS)收发,并连

接了一个 16×32 的 LED 点阵屏用于显示无线控制其内容的更换。

应用领域及范围:

LED 显示屏在经济社会的很多领域都有很多应用,如:证券交易、金融信息显示;机场

航班动态信息显示;港口、车站旅客引导信息显示;体育场馆信息显示;道路交通信息显示;

调度指挥中心信息显示;邮政、电信、商场购物中心等服务领域的业务宣传及信息显示等。

尤其在一些特殊场合下,如自然灾害后的信息通知,信息的及时通知有着重要的作用。由于

传统的有线传输在通信距离增加时,存在安装不宜,使用不灵活和运行费急剧增加的缺点,

本设计的目的就是克服这些缺点,采用接受短信进行数据接入,不受距离和环境限制,安装

简单快捷。

本设计利用 GSM 全球移动通讯系统,覆盖范围广,在自然条件恶劣的情况下能还可以正

常使用,在一些显示系统更改显示信息不方便的情况下具有明显优势,更能够做到可以随时

随地更改显示信息,不需要有线硬件连接到显示屏所在地进行操作,灵活性好。

本设计局限于 GSM 全球移动通讯系统,要在 GSM 覆盖范围内使用。

系统组成及功能说明/System Construction & Function Description

实现的功能:

1. 通过无线通信模块进行短信接收

2. 通过 SEP3203 进行数据处理

3. 将接收的的信息在两字 LED 显示屏上显示

系统组成:

本系统主要由以下几部分构成:

移动手机端,GSM 移动通信系统,MC35i 无线通信模块,SEP3203 处理器和 LED 显示

Page 135: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

129

屏。其中我们设计的是从 MC35i 无线通信模块到 LED 显示的部分。

系统组成示意图

具体实现:

信息接收部分直接使用西门子的 MC35i 无线模块,它提供简单、内嵌式的无线 GPRS

连接,其 GPRS 永久在线功能提供了 快的数传速率;体积小巧,功耗低,能提供数据、语

音、短信等功能,此设计中主要使用其短信功能,能够通过移动通信系统接收用户手机端发

送来的短信。

SEP3203 作为中心控制单元,硬件方面将 UART 串行通信端口与 MC35i 的串行通信

端口的相应管脚相连,接收 MC35i 传送过来的信息。设计中通过软件方式将接收的短信内

容转换成便于显示的字符格式。由于短信接收的是 PDU 格式的字符,而显示部分需要用 GB

国标码进行显示,因此要进行字符的解码和转换。软件具体实现的大体是:发送 AT 指令,

接收 MC35i 模块传送过来的数据,将接收到的 PDU 格式的数据进行解码,并将 PDU 码转

换成易于显示的国标码。

从成本因素考虑,本设计的展示部分仅使用 16*32 点阵式 LED 显示屏,显示两个汉字,而

在实际运用采用本设计的原理可以支持多行多姿显示。收到显示字数的显示,本设计采用滚

动显示的方式,而在实际应用中,只需要对软件稍微进行修改就可以支持固定显示、滚动显

示等多种显示方式。LED 显示屏的主要组成部分有:两片 74LS138 译码器、4 片 74HC595

移位寄存器和 74HC245 缓冲器。两片 74LS138 译码器主要用来完成 4-16 译码器的显示屏行

片选,依次选中 16 行中的一行;74HC595 用来将串行输入数据转变为并行数据输出,每次

输出一行即 32 列的数据;74HC245 起缓冲作用,增大总线驱动能力。软件部分实现的主要

功能:调用缓冲区存储的接收的信息的国标码,将信息的编码进行转换,然后在 LED 上动

态显示出来。

完成情况及性能参数 /Final Design & Performance Parameters

本作品硬件通路及软件设计已完成,但部分功能还没有调试成功。

收到 MC35i 芯片的启动及接收功能的影响,会造成有时不能及时的接收到新传输的短

信,本设计将启动保留功能,可以显示存放在 SIM 卡中的短信内容。关于短信的及时收发,

仍在进一步调试中。

为了方便的显示汉字,本设计采用较复杂的 PDU 格式解码。现在 SEP3203 已经能将接

收到的短信内容正常解码到 GB 库,并得到支持本设计显示格式的 16*16 的字符点阵显示形

式。

Page 136: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

130

对于 LED 显示部分,已经可以实现相关内容的显示。本设计将对显示部分进行进一步修改,

来完成更稳定的显示及多种显示方式。

设计方法 /Design Methodology

硬件实现:

12345678910 11

121314151617181920

J1

SEP3203

RXD0RXD0TXD0TXD0

PE0PE1PE2PE3PE4PE5SPI_OUTSPI_CLKGND

ABCDE

STRR

CLK

VCC

GND

VCC5VCC3

GND

+5V

GND

+5V

+3.3V

GND

12345678910

J3

LED显示屏

123 4

56

J2

MC35i

硬件连线示意图

SEP3203 与无线通信模块 MC35i 的通信是通过 UART 串行通信接口实现的。

SEP3203 的串口通过 RS232 协议与外设进行串行通信,但是在实际使用中,我们发现

SEP3203 经过两次 RS232 电平转换后,实际输出电平不能达到驱动 MC35i 模块的要求。因

此我们对 SEP3203 的硬件作出一定的修改,去除了 RS232 的电平转换,直接将 SEP320 芯

片的 TXD 和 RXD 输出的 TTL 电平与 MC35I 连接在一起。在发送时,数据从数据总线上写

到 16 个字节深度的发送 FIFO,然后再被送入移位寄存器转换成串行数据从 TXD 引脚输出。

在接收时,数据从 RXD 引脚串行接收,先送入接收移位寄存器,然后再送入 16 个字节深

度的 FIFO。本设计配置波特率为 57600,使用中断触发模式工作,并接触发级设置较低,

一旦 MC35i 有内容送入,通过系统软件分析就可以及时分析并显示内容。

我们使用课用 SEP3203 的 GPIO 口中的 PE 端口的通用功能,PE0~PE3 分别与 LED

的行片选线相接,通过软件的控制来用来顺序选中各行。每行分别对应不同的列数据;采用

通用 GPIO 口的专用功能 SPI 串行通信接口 SPI_OUT 端和 SPI_CLK 端,SPI_OUT 来提供

选中行的数据字符的串行输出,并通过时钟信号 SPI_CLK 的控制,使用 74HC595 的串并转

功能来实现选中行中各列 LED 的点亮、熄灭。PE4 为 LED 屏提供使能,PE5 信号连接显示

屏的 STR 端,做为 74HC245 的缓冲使能。

软件实现:

软件流程图如下图所示。主程序主要实现 SEP3203、MC35i、UART、GPIO、SPI 等

相关初始化工作,通过对相关寄存器控制位的配置为短信接收做准备工作,然后调用短信接

收和解码模块子程序,当短信接收并处理完毕后调用显示模块子程序,实现将所接收短信的

Page 137: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

131

动态滚动显示。

短信接收解码模块子程序主要通过发送 AT 指令,从 MC35i 接收短信,信息收到后

以中断的形式通知 SEP3203,SEP3203 接收存放在 FIFO 中的数据,将接收到的 PDU 格式

码转换为显示时需要的国标码,然后将数据存放到显示缓冲区中。

显示模块子程序主要实现将接收到的信息在显示屏上滚动显示,其基本流程是:将显

示缓冲区中的数据装载到列缓冲区,将各列数据进行转换并存放到 SPI 的 FIFO 中,关显示

屏,使能显示屏中的缓冲器,然后串行输出数据到 74HC595 中,打开显示屏,然后将指针

指向下一个汉字的相应字模数据,动态显示的功能主要是在各列数据的转换及循环过程中实

现的。

开始

发送AT指令

接收FIFO中的数据

PDU格式码解码

PDU格式码转换为国标码

结束

中断到来?否

短信接收解码模块

结束

数据转换并存入SPI的FIFO中

关显示屏

显示屏缓冲器使能

串行数据输出到74HC595

开显示屏

开始

装载一线点阵数据

行扫描结束?

否 是

开始

SEP3203初始化MC35I初始化串口初始化

GPIO口初始化SPI初始化

串口中断屏蔽串口中断使能打开串口中断打开MC35I

短信接收解码模块

显示模块

结束

主程序

显示模块

一个汉字移动后指向下一个

汉字

软件设计流程图

设计特点 /Design Features

LED 显示屏在日常工作生活中都有广泛应用,但目前主流显示屏都是有线电脑或人

工控制的,此作品利用 GSM 移动通信系统这一便捷条件,实现用短信方式更换 LED 显示

屏的显示内容。

本作品的主要创新点在于用短信来更换显示屏的内容,实现远距离的 LED 屏内容的

更改。本设计在实际运用中有广泛的应用前景,例如,在自然条件恶劣和高速公路等场合,

Page 138: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

132

长距离的连线设备会造成成本的增加,一旦硬件连线出现问题检修也是难题,在这种条件下

使用短信修改内容的 LED 屏,只需要对其提供 5V 电源,免去可长距离的硬件连线;在一

些不便于于人工随时更改通知或广告内容时,用此无线短信方式修改快捷简单;在一些特殊

情况下,紧急通知可以在远距离或异地直接按需要随时修改要通知的内容,实时性较好。

由于本设计仅需要提供一个 SIM 卡和 5V 电源,所以移动性较好,可以运用在不同的应

用场合。

总结 /Conclusions

本设计基于 GSM 无线通信系统,以 SEP3203 处理器为控制中心,实现短信更该 LED 显示

屏的显示内容,硬件电路和程序设计已基本完成,正在进行进一步的调试工作。

出于成本等因素考虑,本设计采用的显示屏为 16×32 LED,每次可以显示两个 16×16

的汉字,仅针对演示,如果用于实际产品,需要对 LED 的行列进行扩充,增大显示屏面积,

增多显示字数硬件电路及相关的软件驱动还要进行进一步的改进。受显示屏的面积限制,本

设计仅采用了滚动显示的方式,但是我们的程序仅需要一些简单修改就可以进行固定显示,

在大屏幕上,如果需要多种显示方式,可以对代码进行相应的修改。

MC35i 的功能较强大,本设计仅使用了其短信接收的功能。MC35i 还可以实现 GPRS、语

音信号等功能,可以在设计上进一步进行提高,实现更多功能。

该设计总体来说还是令人满意的,在硬件设计,代码编写及调试过程中出现过很多问题,

但经测试检验或向有经验者请教后,大都找到了解决方法,通过解决问题的过程,本队成员

都收获颇多。

后要感谢 ASIC 工程中心举办此次活动,为我们提供了一次良好的锻炼机会,感谢我们实

验室的老师和同组及其它组的同学,感谢你们对我们参赛队的支持和帮助,感谢实验室为我

们提供良好的实验设施!

Page 139: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

133

附录 1

东南大学第一届嵌入式系统设计大赛

章 程

一、竞赛目的

为进一步加强东南大学学生的实践创新意识与科研动手能力、团队协作的人文精神和理

论联系实际的学风,丰富和活跃校园学术氛围,促进优秀创新人才脱颖而出。加强东南大学

自主知识产权芯片 SEP3203 嵌入式处理器的应用推广,特举办“东南大学第一届‘ASIC 杯’

嵌入式系统设计竞赛”。

二、参赛对象:

以电子科学与工程学院、信息科学与工程学院、自动化学院、计算机科学与工程学院、

电气工程学院、仪器科学与工程学院、生物科学与医学工程学院、物理系、吴健雄学院、集

成电路学院、软件学院等学生为主,也欢迎其他院系的学生参加。

三、竞赛内容

本次竞赛统一采用大赛提供的基于东南大学ASIC中心自主知识产权的SEP3203处理器

的竞赛平台,参赛队自主命题,自主设计,独立完成一个有一定功能的参赛作品。

四、竞赛的组织管理

设立竞赛组委会(组委会名单见附录),负责竞赛的组织和实施工作,与竞赛相关的信

息可访问竞赛网站:http://edept.seu.edu.cn/edc/。

五、报名方式:

本科生组采用自由组队,院系推荐报名的形式,研究生采用自由组队与邀请报名结合的

形式每 1~3 人组成一参赛队,以队为单位,到竞赛网站下载报名表,并在 2008 年 3 月 30

日以前将报名表发送到指定邮箱([email protected]),以收到回执为准。

竞赛不收报名费,除嵌入式开发系统以外,各参赛队自行设计电路部分的费用自理。

六、竞赛时间:

报名时间:3月 15 日--3 月 30 日

报名后经竞赛组委会对报名表进行评审,获得复赛资格的参赛队名单于 4 月 5 日在竞赛

网站上公布,参赛队于 2008 年 4 月 7 日到竞赛组委会指定地点领取嵌入式开发系统;各参

Page 140: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

134

赛队必须在 2008 年 5 月 25 日前提交完成的设计作品及相关的文档材料;组委会将根据作品

完成度、作品创意、作品设计难度、设计文档撰写等评奖,并与 2008 年 6 月上旬发文公布

成绩并举行颁奖仪式。

七、竞赛方式:

本次竞赛采用开放式,不限定竞赛场所,参赛队利用课余时间,在规定时间内由参赛学

生完成作品的设计、制作、调试及设计报告。参赛学生应独立设计与制作,不得依靠教师或

其他学生的帮助。

八、竞赛的奖励办法:

竞赛设特等奖(ASIC 杯),一等奖,二等奖,三等奖,所有获奖的参赛队除了可以获得

相应证书及奖品外,还可永久保留所发东南大学嵌入式开发系统,未获奖的参赛队需要返还

该开发系统。

参赛获奖本科学生可获得相应的课外研学学分,学分认定见《东南大学本科学生课外研

学学分认定办法》。

九、竞赛作品的知识产权:

1、参赛作品的知识产权归参赛队员及竞赛组委会所有。

2、参赛队应自觉遵守知识产权的有关法规,不得侵犯他人的知识产权或其他权益,对于由

此造成的不良后果,本次竞赛的主办、协办方均不负任何法律责任。

3、竞赛组委会拥有免费使用参赛作品进行演示和出版的权利(不涉及技术细节)。如果竞赛

组委会以盈利为目的使用参赛作品,需与参赛队员协商,经参赛队员同意后,签署有关对参

赛作品使用的协议。

4、在竞赛与评审期间(2008 年 4 月 1日—2008 年 5 月 25 日),参赛者不能将参赛作品转让

或许可给任何第三方。

5、竞赛结束后,各参赛队应将组委会所提供的用于竞赛的硬件开发系统和开发软件(包括

损毁的开发系统)交还竞赛组委会。所有工作结束后,竞赛平台以奖品的形式发放给获奖队。

二 OO 八年三月十一日

Page 141: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

135

附录 2

东南大学第一届嵌入式系统设计大赛获奖名单(本科组)

序号 赛队 作品名 参赛队员 评比结果

1 FLD 基于嵌入式数据库的

智能公交查询系统

04005216 刘佳琪

04005141 冯 毅

16005428 丁 涛

一等奖

2 DropCAT 网络互联游戏机

06005323 谢 震

06005322 曹 飞

06005234 毛 宁

一等奖

3 Victoire

III 酒店客房自助服务器

06005426 侯吉祥

06005437 刘君寅

06205110 李哲文

二等奖

4 OREO 五子连珠

06006218 陈令尧

06006134 黄宁峰

06205108 张翔宇

二等奖

5 TCM 工作室 便携式多功能手机助

09005213 唐朝辉

09005210 陈 军

09005228 马 俊

二等奖

6 效率第一 模拟驾驶员培训系统 16005415 张钰金

16005424 朱 超 二等奖

7 超级蜗牛队 婴儿看护助手

06005215 顾 飞

06005235 陆 奇

06005211 潘 超

三等奖

8 编号 787 硬件 mp3 播放器

06005311 吉佳斌

06005313 赵 阳

06005337 叶 刚

三等奖

9 史努比 音乐驱动的激光投射

06005412 高文晨

06005428 孔 笛 三等奖

10 LSX 路口交通综合管理系

06006416 生 辉

06006436 许申申

06006435 李浩翔

三等奖

11 KAEE 手持式监视器测试仪 06204526 程 杰 三等奖

Page 142: 东南大学第一届嵌入式系统设计大赛 Embedded System · PDF file三星2410 ARM9 芯片 博创科技开发 ... 我们的整套系统使用了 UCOS II操作系统其中 ARM9

“ASIC 杯”东南大学第一届嵌入式系统设计大赛获奖作品设计报告

136

12 电气三人组 SEP3203 的无刷直流电

机控制

16005501 康 丽

16005412 葛 健

16005614 马洲俊

三等奖

13 飞翔方块 嵌入式俄罗斯方块游

戏 16005626 张 叶 三等奖

14 Herald 智能实用型高精度正

弦波逆变器

16006326 彭 飞

22005217 严铖锴

09006227 吴辰夏

三等奖

东南大学第一届嵌入式系统设计大赛获奖名单(研究生组)

序号 赛队 作品名 参赛队员 评比结果

1

Code Play

基于 SEP3203 的 GPRS

无线通信系统

060845 周伯健

060834 张 煌

070911 黄 英

一等奖

2

07 检测队

(研究生)

智能型检测实验系统

071114 牛 丹

071040 董茂飞 一等奖

3

飞虎队

(研究生)

嵌入式无线综合路由

070603 吕睿超

070452 张 弘

070542 叶自强

二等奖

4

长江 8 号

(研究生)

智能化高精度(直流)

信号发生器

071088 王 翻

071102 陈朝明

071113 孔祥伟

二等奖

5

风力无限

(研究生)

基于 GSM 的无线户外

广告控制器

070903 梅 晨

070906 张纪艳

070973 张伟伟

二等奖