嵌入式交通灯课程设计Word下载.docx
《嵌入式交通灯课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《嵌入式交通灯课程设计Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
2.绪论
2.1课程设计目的
(1)掌握嵌入式系统设计的基本方法,熟悉S3C2410的开发环境及软硬件的调试过程,巩固和加深对理论课中知识的理解,提高对所学知识的综合运用能力。
(2)了解S3C2410A处理器的工作原理。
(3)能够使用S3C2410A处理器的对试验箱上的硬件接口进行控制,输入和输出。
(4)能够完成S3C2410A处理器的最小系统的硬件电路设计,并用Protel99设计原理电路图。
(5)能够正确编写调试软件。
(6)通过完成一个包括电路设计和程序开发的完整过程,了解开发一AR应用系统的全过程,为今后从事相应打下基础。
2.2课程设计内容
(1)完成S3C2410最小系统的硬件电路设计,并用ProtelDXP设计原理路图;
(2)最小系统包括电源、时钟、复位、存储器、JTAG接口
(3)JTAG接口选择20针插头
(4)存储器容量要求至少2MB的NorFlash和64MB的SDRAM。
(5)完成交通指示灯的电路设计以及控制程序代码,在试验箱上进行调试并且能正常工作。
3.最小系统设计及交通灯电路设计
3.1设计原理
最小系统整体框图
图1最小系统整体框图
说明:
由最小系统整体框图可以以看出,一个最小系统至少应该由CPU(S3C2410A)、系统电源、复位电路、系统时钟、JTAG电路、存储器以及外围扩展电路组成。
3.2整体电路原理图
图2.整体电路原理图
这是用ProtelDXPSE所画的最小系统的电路图,其元件清单如下:
[][C10.1uF][C20.1uF][C30.1uF][C40.1uF][C21100nF][C4515pF][C4615pF][C4722pF][C4822pF][C6210uF/16V][C710.1uF][C100CAP][C101CAP][C102CAP][C103CAP][C104CAP][C105CAP][C106CAP][C107CAP][C108CAP][C109CAP][C110CAP][C111CAP][C112CAP][C113CAP][C125220uF/25V][CZ1DB-9/MUART1][CZ11DB-9/MUART0][J28TX-4PIN][JP2RXD1][JP?
JTAG][R10][R1510K][R1610K][R1710K][R3710K][R5410K][R604.7K][R1793K][RP3010K][RST][U1LK-ARM2410][U2DIP-24LK-CAT1025JI-30][U3LK-SP3232E][X112MHz][X232768Hz](GND-1)(NetJ28_3-1J28-3)(NetR1_2JP?
-15R1-2R37-2)(NetR179_1-1R179-1)(NetU1_H5JP?
-3R1-1RP30-1U1-H5)(NetU1_J1JP?
-5RP30-1U1-J1)(NetU1_J3JP?
-9RP30-2U1-J3)(NetU1_J3JP?
-7RP30-2U1-J3)(NetU1_J5JP?
-13U1-J5)(Net_1-1C113-2)(Net_1-1C106-2)(Net_2-1-2)(PC-RXD0CZ11-2)(VCCC2-2JP?
-4JP?
-6JP?
-8JP?
-10JP?
-12JP?
-14JP?
-16JP?
-18JP?
-20R15-1R60-1U1-T13U1-U14)(VCC33C100-1C107-1)(VDD33-2JP?
-1JP?
-2R16-2R17-2R37-1R54-2RP30-1RP30-2U1-J11)
4.具体设计框图
4.1电源电路原理图
图3电源电路原理图
本电源运用5V的直流电源通过两个三端稳压器转换成我们所设计的最小系统所需要的两个电压,分别是3.3V和1.8V,3.3V的给VDDMOP,VDDIO,VDDADC等供电,而1.8V的给VDDi和RTC供电。
其电源原理图如上图3:
4.2时钟电路原理图
图4.时钟电路原理图
S3C2410A可以使用外部晶体或外部时钟输入作为系统时钟,外部晶振频率范围是10MHz~20MHz。
本次设计用的事12MHz外部晶振,所以将S3C2410A的OM2,OM3引脚接为低电平,将外部时钟输入引脚EXTCLK接为高电平,电源原理图如上图4:
4.3存储器电路原理图
1)NorFlash原理图
图5.NorFlash原理图
SST39VF1601是16位宽的存储器,每次读操作可取2字节数据,对于S3C2410A来说相应于半字对其,其操作地址最小的变化值为0x00000002。
因此将S3C2410A的ADDR1引脚与SST39VF1601的A0引脚链接,不用ADDR0引脚,其它地址依次递增连接即可。
2)SDRAM存储器原理图
图6.SDRAM存储器原理图
此32位总线的存储器由两片16位的SDRAM(HY57V561620)组成,使用s3c2410a的nGCS6片选信号,用U4与数据总线的低16相连,U5与数据总线的高16位相连。
4.4JTAG电路原理图
图7.JTAG电路原理图
用20脚的JATG仿真调试接口,JTAG信号的定义与s3c2410a的链接如上图。
JTAG接口J29上的信号nTRST连到s3c2410a芯片的TRST(低电平有效)引脚,达到控制s3c2410a内部JTAG接口电路复位的目的。
为了能够使用Multi-ICE仿真器,设置了一个0欧电阻R1(在整体电路原理图中)将JTAG接口的PIN3与PIN15短接。
4.5复位电路原理图
图8.复位电路原理图
复位电路(此图的上半部分),芯片CAT1025JI-30的信号nRESET连接到s3c2410a芯片的复位脚nRESET,当复位按键RST按下时,CAT1025JI-30的信号nRESET引脚立即输出复位信号,使s3c2410a复位。
就是那几个上拉电阻不能省略。
5.程序设计
#include"
config.h"
//定义LED控制口(输出高电平时点亮LED)
#defineLED1_CON(1<
<
11)/*GPE11口*/
#defineLED2_CON(1<
12)/*GPE12口*/
#defineLED3_CON(1<
4)/*GPH4口*/
#defineLED4_CON(1<
6)/*GPH6口*/
/****************************************************
**Funtionname:
DelayNS
**Descriptions:
长软件延时。
延时时间与系统时钟有关。
**Input:
dly延时参数,值越大,延时越久
**Output:
无
*********************************************************/
voidDelayTime(uint32time)
{
inti,j;
for(i=0;
i<
500*time;
i++)
for(j=0;
j<
1500;
j++);
}
voidDelayFTime(uint32time)//设计高频率的延迟。
250*time;
/***********************************************
**Functionname:
LED_DispAllOn
控制LED1~LED4全部点亮。
***********************************************/
voidLED1_On(void)
rGPEDAT=rGPEDAT|(0x01<
11);
//led1点亮
voidLED2_On(void)
{
12);
//led2点亮
voidLED3_On(void)
rGPHDAT=rGPHDAT|(0x01<
4);
//led3点亮
voidLED4_On(void)
6);
//led4点亮
/*********************************************
LED_Off
控制LED1~LED4全部熄灭。
**************************************************/
voidLED_AllOff(void)
rGPEDAT=rGPEDAT&
(~(0x03<
11));
rGPHDAT=rGPHDAT&
(~(0x05<
4));
voidLED1_Off(void)
(~(0x01<
voidLED2_Off(void)
12));
voidLED3_Off(void)
voidLED4_Off(void)
6));
/********************************************************
main
初始化I/O,然后控制LED显示。
系统返回值0
*******************************************************/
intmain(void)
inti;
LED_AllOff();
rGPECON=(rGPECON&
(~(0x0F<
22)))|(0x05<
22);
//rGPECON[25:
22]=0101b,
//设置GPE11、GPE12为GPIO输出模式
rGPHCON=(rGPHCON&
(~(0x33<
8)))|(0x11<
8);
//rGPHCON[13:
8]=01xx01b,
//设置GPH4、GPIO6为GPIO输出模式
while
(1)//LED显示控制
{
LED4_On();
//把LED4点亮(LED4代表红灯)
DelayTime(20);
//延迟20s
LED4_Off();
//20s后,关闭LED4
LED3_On();
//把LED3点亮(LED3代表绿灯)
DelayTime(5);
//延迟5s(绿灯亮5s+5s=10s)
for(i=0;
10;
i++)//设置黄灯一闪一闪。
(相当于黄灯亮,警告还有5秒红灯就亮了,0.5秒闪一下)
{
LED2_On();
DelayFTime
(1);
LED2_Off();
}
}
return0;
6.课程设计总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,ARM嵌入式系统已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握嵌入式的开发技术是十分重要的。
回顾起此次ARM课程设计,我仍感慨颇多,我学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。