课程设计(论文)
课程:
题目: 基于 ARM 的交通灯设计
嵌入式系统
学生姓名:
学
专
号:
业:
通信与信息系统
2012 年 6 月
目录
一 设计的目的与意义····················································································· 3
二 设计的内容·······························································································3
三 设计方案··································································································3
3.1 设计思路·································································································3
3.2 总体设计框图···························································································4
四 硬件设计··································································································4
4.1 LPC2138 芯片介绍及设计············································································4
4.2 LPC2138 芯片最小系统硬件设计·································································· 5
4.3 系统电源电路设计·····················································································6
4.4 晶振与复位电路························································································6
4.5 LED 循环显示设计·····················································································6
4.6 数码管倒计时显示硬件设计········································································ 7
4.7 蜂鸣器设计······························································································8
五 软件设计··································································································8
5.1 交通灯控制软件流程图···············································································9
5.2 ARM 交通灯模拟控制程序设计···································································· 9
六 设计心得体会及总结·················································································10
七 参考文献 错误!未定义书签。
一 设计的目的与意义
通过设计,培养自己综合运用所学知识、独立分析和解决实际问题的能力,培养创新意
识和创新能力,并获得科学研究的基础训练,加深对 ARM 芯片的了解;熟悉 ARM 芯片各
个引脚的功能,工作方式,计数/定时,I/O 口,中断等相关原理,巩固学习嵌入式的相关内
容知识。
二 设计的内容
利用 ARM 芯片模拟实现交通灯控制。自行选择所需 ARM 芯片,查阅相关
文献资料,熟悉所选 ARM 芯片,了解所选 ARM 芯片各个引脚功能,工作方式,
计数/定时,I/O 口,中断等相关原理,通过软硬件设计实现利用 ARM 芯片完成
交通灯的模拟控制。
三 设计方案
3.1 设计思路
利用 LPC2131ARM 芯片实现单路交通灯的控制:
a 实现红、绿、黄灯的循环控制。使用红、黄、绿三种不同颜色的 LED 灯实
现此功能,由南往北方向红、黄、绿三个灯依次接在 P1.18、P1.19、P1.20
上,由北往南方向的红、黄、绿三个灯依次接在 P1.21、P1.22、P1.23 上,
人行道用红、绿两个灯控制,依次接在 P1.24、P1.25 上,用软件控制灯的亮
与灭来控制车辆和行人的通行。
b 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行
并出实现。
c 南北方向控制车辆的绿灯熄灭的同时,控制蜂鸣器响 2 秒来作为警报。蜂
鸣器接 P0.7 引脚。
交通路口示意图如图 3.1 车辆遇到红灯停绿灯行的行走情况,红绿灯时间
均为 60s,切换时间为 10s,最后 5s 为黄灯闪烁。
公
共
场
所
公
共
场
所
3.2 总体设计框图
图 3.1
用 ARM7 系列芯片 LPC2138 作为系统的主控芯片,控制交通灯的循环点亮并
显示灯亮时间(采用倒计时显示),当定时时间到的时候控制蜂鸣器响来提醒人
们注意红绿灯的状态。
四 硬件设计
图 3.2
根据设计任务要求,自行选择电子元件,画出电气原理图,并调试。一个完整的系统除
了主控芯片以外,还需配上电源系统、时钟电路、复位电路等。独立的芯片是不能工作的。
4.1 LPC2138 芯片介绍及设计
LPC2138 是基于一个支持实时仿真和嵌入式跟踪的 32 位 ARM7TDMI-STM CPU
的微控制器,并带有 32kB 的嵌入的高速 Flash 存储器。128 位宽度的存储器接
口和独特的加速结构,使 32 位代码能够在最大时钟速率下运行。对代码规模有
严格控制的应用可使用 16 位 Thumb.模式将代码规模降低超过 30%,而性能的损
失却很小。较小的封装和极低的功耗使 LPC2131 可理想地用于小型系统中,具
有以下一些特性:
小型 LQFP64 封装
片内 Boot 装载软件实现在系统/在应用中编程(ISP/SAP)单扇
8k 的片内静态 RAM 和 32k 的片内 Flash 程序存储器。
区或整片擦除时间为 400ms。256 字节行编程时间为 1ms。
1 个 10 位 D/A 转换器
两个 32 位定时器/计数器(带四路捕获和四路比较通道)、PWM
单元(6 路输出)和看门狗
实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗
多个串行接口,包括 2 个 16C550 工业标准 UART、2 个高速 I2C 接口
(400 kbit/s)、SPITM 和具有缓冲作用和数据长度可变功能的 SSP。
多达 47 个 5V 的通用 I/O 口;向量中断控制器,可配置优先级和向量
地址
9 个边沿或电平触发的外部中断引脚
片内晶振频率范围:1~30 MHz。
通过片内 PLL 可实现最大为 60MHz 的 CPU 操作频率,PLL 的稳定时间
为 100us
低功耗模式:空闲和掉电。
可通过个别使能/禁止外部功能和外围时钟分频来优化功耗。
通过外部中断将处理器从掉电模式中唤醒。
单电源,具有上电复位(POR)和掉电检测(BOD)电路:
CPU 操作电压范围:3.0V~3.6 V (3.3 V± 10﹪),I/O 口可承受 5V
的电压。
4.2 LPC2138 芯片最小系统硬件设计
图 4.5 为 LPC2138 芯片的原理图,64 个引脚,采用 3.3V 电源供电,设计所需外接器件
的网络名已经标出。
4.3 系统电源电路设计
本电源运用 5V 的直流电源(图 3.5 所示)。通过 DS2434 芯片将 5V 电压转
换为 3.3V 电压,为 LPC2138 芯片供电,LPC2138 芯片所能承受的电压范围是
3V~3.6V(图 4.2 所示)。通过滤波电路(图 4.3 所示)可以很好地滤去转换后电
压中的毛刺。
图 4.2
图 4.3
4.4 晶振与复位电路
系统的晶振电路如图 4.4 所示 LPC2138 芯片采用 11.0592MHz 的晶振作为振荡时
钟源,通过对芯片的进行软件设计可以将晶体振荡器的频率分频为所需的频率;
系统的复位电路如图 4.5 所示,SP708S 芯片的 7 号引脚连接到主控芯片的复位
引脚(nRST)上,按下复位键 S2 时,系统将会复位到初始的状态。
图 4.4
图 4.5
4.5 LED 循环显示设计
由南向北和由北向南车道各用一组红、绿、黄三色的指示灯,指挥车辆通行。
绿灯是通行信号,面对绿灯的车辆可以直行,红灯是禁止通行信号,面对红灯的
车辆必须在路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停
车线,但车辆已十分接近停车线而不能安全停车时可以继续行进。具体红绿灯时
间分配时间如表 4—1 所示。
表 4—1:
50s
5s
5s
50s
5s
5s
1
2
Y
1
1
1
.
0
5
9
2
M
H
z
C
1
3
0
p
F
C
2
3
0
p
F
X
T
A
L
1
X
T
A
L
2
1
V
O
U
T
2
V
I
N
3
G
N
D
U
2
D
S
2
4
3
4
V
C
C
C
3
V
D
D
3
.
3
C
4
1
0
4
C
5
1
0
4
C
6
1
0
4
C
7
1
0
4
C
8
1
0
4
V
D
D
3
.
3
M
R
1
V
c
c
2
G
N
D
3
P
F
I
4
P
F
O
5
N
C
6
R
S
T
7
R
S
T
8
U
0
S
P
7
0
8
S
S
2
G
N
D
G
N
D
V
D
D
3
.
3
n
R
S
T
南北通道 绿灯亮 绿灯闪 黄灯闪 红灯亮 红灯闪 黄灯闪
人行道 红灯亮 红灯亮 红灯亮 绿灯亮 红灯亮 红灯亮
上表说明南北通道绿灯亮、绿灯闪黄灯闪时人行道都是红灯亮,只有车道
红灯亮(车辆完全停下来)时人行道绿灯才亮,这样保证了过马路的行人人身安
全,避免了不必要的交通事故。硬件电路连接图如图 4.6 所示
图 4.6
交通灯 LED 的发光和熄灭的控制,是通过控制 GPIO 寄存器组来完成的,须
先将引脚 P1.18~P1.25 通过引脚功能选择寄存器 PINSEL1,设置为 GPIO 方式;
再设置 GPIO 方向寄存器 1(IO1DIR),对应的引脚设置为输出方向。要点亮 LED1~
LED8 需要使用 GPIO 清零寄存器 1(IO1CLR)的对应位设置为 1,即在引脚 P1.18~
P1.25 上加逻辑低电平,即可点亮这些灯。与之相反,要熄灭这些灯,则要用 GPIO
输出置位寄存器 1(IO1SET)将对应的位置位即可。
4.6 数码管倒计时显示硬件设计
数码管是一种很普遍的显示器件,数码管的主要部分是七段发光二极管;数
码管分为共阴极和共阳极两种,为了保护各段 LED,需外加限流电阻。有的产品
还附加有一个小数点,因此有人也称之为八段式发光二极管。
图 4.7
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
8
V
D
D
3
.
3
1
0
0
R
1
4
7
0
1
0
0
R
2
4
7
0
1
0
0
R
3
4
7
0
1
0
0
R
5
4
7
0
1
0
0
R
4
4
7
0
1
0
0
R
6
4
7
0
1
0
0
R
7
4
7
0
1
0
0
R
8
4
7
0
P
1
.
1
8
P
1
.
1
9
P
1
.
2
0
P
1
.
2
1
P
1
.
2
2
P
1
.
2
3
P
1
.
2
4
P
1
.
2
5
L
E
D
1
L
E
D
2
L
E
D
3
L
E
D
4
L
E
D
5
L
E
D
6
L
E
D
7
L
E
D
8
如图 4.7 所示,数码管由 8 个发光段(第八段表示小数点)的不同组合,从
而实现十六进制数的显示。通过段选端可以控制数码管显示内容,位选端用于控
制整个数码管是否工作:对于共阴极数码管,位选端要接低电平,对于共阳极数
码管,位选端接高电平。数码管有两种显示方式:动态显示和静态显示。静态显
示让数码管要点亮的数码管同时持续点亮;动态显示则利用了人眼的视觉暂留原
理,在一个时间内只点亮一个数码管。本次设计采用 2 位一体的数码管,数码管
的 2 条位选线连接 ARM 的通用 I/O 口;数码管的 8 个段选端连接 74HC595 芯片的
并行 I/O 输出接口,74HC595 再与 ARM 的 SPI0 模式进行通信,接受 ARM 发送过
来的数据。数码管硬件电路连接图如图 4.8 所示。
4.7 蜂鸣器设计
图 4.8
将蜂鸣器正极端接电源,负极端通过三极管接地,三极管基极通过电阻接到
LPC2138 芯片的 P0.8 引脚上。具体硬件电路连接图如图 4.9 所示
五 软件设计
图 4.9
7
6
4
1
3
8
9
2
1
0
5
a
b
c
d
e
f
g
h
p
v
c
c
v
c
c
7
S
E
G
1
7
S
E
G
-
2
G
1
3
S
E
L
0
1
2
S
E
R
1
4
S
R
C
L
R
1
0
S
R
C
K
1
1
Q
A
1
5
Q
B
1
Q
C
2
Q
D
3
Q
E
4
Q
F
5
Q
G
6
Q
H
7
S
Q
H
9
V
C
C
1
6
G
N
D
8
U
1
7
4
H
C
5
9
5
G
N
D
V
D
D
3
.
3
4
7
0
X
8
Q
A
Q
A
Q
B
Q
B
Q
C
Q
C
Q
D
Q
D
Q
E
Q
E
Q
F
Q
F
Q
G
Q
G
Q
H
Q
H
M
O
S
I
0
S
C
K
0
M
I
S
O
0
1
K
R
1
1
1
K
R
1
2
Q
2
Q
3
S
E
L
1
S
E
L
2
V
D
D
3
.
3
n
C
S
L
S
1
B
e
l
l
Q
1
P
N
P
1
K
R
0
V
D
D
3
.
3
R
9
1
0
K
V
D
D
3
.
3
P
0
.
8