嵌入式课程设计.docx
《嵌入式课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计
1绪论
1.1课题背景与意义
通用串行总线(即USB)是一种目前广泛应用的计算机外围串行通信标准,计算机及通讯公司为解决个人计算机(PC-PersonalCamp}ter)外部设备接口在速度、扩展性、易用性等方面的局限与不足,提出了一种计算机与外部设备相连接的新技术,经USB执行论坛规范和完善,形成了这一如今广为流行的PC接口工业标准.相对于PC传统的串/并行接口,具有较高的数据传输率、即插即用,易扩充、热插拔等优点,从USB标准颁布以来的短时间内,USB己成为此上的标准接口,并为绝大多数PC外部设备如键盘、鼠标、打印机、扫描仪和游戏手柄所采纳使用,迅速占领了计算机中、低速外设市场。
在USB推动PC外部设备发展的同时,Pc外部设备反过来也对USB提出更高的要求,其中最主要的一点便是更高速率的数据传输。
为此,USB全速数据传输的USB。
1.2嵌入式系统的发展概况
20世纪70年代:
单片机出现,嵌入式系统最初的应用就是基于单片机。
汽车,工业机器,通信装置等成千上万种产品通过内部嵌入电子装置获得更佳的使用性能。
20世纪80年代:
嵌入式操作系统出现。
商业嵌入式实时内核包含传统操作系统的特征,使得开发周期缩短,成本降低,效率提高促使嵌入式系统有了更为广阔的应用空间。
20世纪90年代:
实时多任务操作系统。
软件规模的不断上升,对实时性要求的提高,使得实时内核逐步发展为实时多任务操作系统,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
随着嵌入式设备与Intemet的广泛结合,手机、PDA、路由器和调制解调器等复杂的高端应用对嵌入式处理器的性能提出了更高的要求a因此,以32位处理器作为高性能嵌入式系统开发的核心已经是嵌入式技术发展的必然趋势。
嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:
工业控制、交通管理、信息家电、环境监测。
1.3USB的发展概况
通用串行总线USB是一种外部总线规范,是计算机领域的一种新的接口技术。
早在1994年底,英特尔、康柏、IBM、微软等多家公司就已经联合提出USB总线规范。
在近期,USB技术得到了飞速的发展,USB版本已经发展到2.0。
通过USB接口,计算机可以方便的和具有USB接口的计算机周边设备如数码相机,打印机,鼠标,键盘等互连。
由于USB设备即插即用,数据传输速率快,USB接口已经取代串口,并口,IEEEl394,成为使用最广泛的电脑外围接口。
在USB推动PC外部设备发展的同时,PC外部设备反过来也对USB提出更高的要求,其中最主要的一点便是更高速率的数据传输。
为此,USB.IF在原先提供1.5Mbit/s低速和12Mbit/s全速数据传输的USBl.x的基础上,于2000年发布了支持480Mbit/s高速数据传输的USB2.0规范,为将USB推广到大容量移动存储、宽带网络产品、数码相机和摄像机等高速外部设备提供了解决方案。
USB3。
0将提供达到4.8Gbps的理论传输速度相当于600MB每秒,相比USB2.0提升了10倍的传输速度。
新的USB3.0标准能够让更多机器设备不靠外接电源即可运行使用,也使其传输速度更快。
支持USB3.0的产品会在2010年出现。
国外利用USB技术开发的产品种类很多,像USB存储设备,USB通讯设备,USB小家电等等,最近还推出了USB接口的红外护腕、USB指纹识别系统等,国外市场上基于USB的外设己经囊括几乎所有的主流数字产品,可见国外在USB实用性方面已作了很多工作,并且目前也正以很快的速度发展。
在国内,嵌入式USB主机系统的研究虽处于起步阶段,但也取得了一定的成绩。
朗科公司最早提出了“优盘”概念,并取得了USB外部存储装置专利知识产权。
USB在汽车领域也取得了飞速发展。
总的来说,USB技术在嵌入式系统已经被广泛使用,并成为当今嵌入式开发和应用中的一个热点。
2系统总体方案设计
2.1系统总体结构
本应用系统是嵌入式系统和现代电子技术的综合应用,总体上由软件和硬件两个部分组成,软件平台包括BIOS,操作系统、驱动程序和GU工四个部分,每个部分都是对硬件平台的逐级封装和调用快,是最上层应用软件运行的基础。
S3C2410主控
芯片
U盘存储
温度采集
USB
通信
JTAG
电源管理
上位机存储
总体结构如图2.1所示
2.2硬件方案
整个系统主要由嵌入式处理器、存储器、外围接口电路及设备三个部分组成。
2.2.1硬件平台概述S3C2410
S3C2410处理器是SAMSUNG公司基十ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位嵌入式微处理器。
该处理器拥有独立的16KB指令Cache和16KB数据Cache,内存管理单兀NINIL,支持TFT的LCD控制器,HANDFlash闪存控制器,3路DART,4路DMA,4路带PWM的Timer,工/0口,RTC,TouchScreen接口,2个USB主控制器,1个USB从控制器,SD主控制器和MMC接口,2路SP工0,S3C2410处理器最高可运行在下203MHz下。
采用了272脚的FBGA封装,价格便宜,适用十手持式设备,有很高的性价比。
嵌入式处理器是整个系统的硬件核心,它控制着整个系统中各个部件的协同工作,是系统的指挥中心,处理器的选择决定了整个系统的性能,基十综合考虑几款处理器的功能、速度、体积、成本、功耗、可靠性等因素,本系统中选择具有高性价比的二星公司的S3C2410处理器作为硬件的核心处理器。
S3C2410的具体特点有以下几点。
(1)系统管理
1.支持小端/大端模式;2.地址空间为128M每一个Bank(总共1GB);3.每个BANK可编程为8、16、32位数据总线;4.BANK0到BANK6可采用固定起始地址和大小;5.BANK7具有可编程的BANK起始地址和大小;6.一共8个存储器BANK;7.前6个存储器BANK用于ROM、SRAM和其它;8.两个存储器BANK用于ROM、SRAM、和SDRAM(同步随机存储器);9.支持等待信号用以扩展总线周期;10.支持SDRAM掉电模式下的自刷新;11.支持不同类型的ROM用于启动(NOR/NANDFlash、EEPROM和其它)。
(2)S3C2410的SOC芯片集成单元
1.16KB数据Cache,16KB指令Cache,MMU:
2.内置外部存储器控制器(SDRAM控制和芯片选择逻辑);3.LCD控制器,一个LCD专业DMA;4.4个带外部请求线的DMA;
5.3个通用异步串行端口,2通道SPI;6.一个多主12C总线,一个12S总线控制器;
7.SD主接口版本1.0和多媒体卡协议版本2.11兼容;8.两个USBHOST,一个USBDEVICE(VERl.1);9.4个PWM定时器和一个内部定时器;10.看门狗定时器;11.117个通用I/O;12.56个中断源;13.24个外部中断;14.电源控制模式:
标准、慢速、休眠、掉电:
15.8通道10位ADC和触摸屏接口;16.带日历功能的实时时钟;17.芯片内置PLL;18.设计用于手持设备和通用嵌入式系统;19.16/32位RISC体系结构,使用ARM920TCPU核的强大指令集。
20.带MMU的先进的体系结构支持WinCE、EPOC32、Linux;21.指令缓存(Cache)、数据缓存、写缓存和物理地址TAGRAM,减小了对主存储器带宽和性能的影响;22.ARM920TCPU内核支持ARM调试的体系结构;23.内部先进的位控制器总线(AMBA)、(AMBA2.0,AHB/APB)。
2.2.2基于S3C2410外围电路方案
存储器的组织是嵌入式系统的关键,既要考虑嵌入式系统的实时性,又要考虑其多任务性,速度和容量成为主要考虑因素,在ARM存储器系统中有非常灵活的体系结构,用户可以根据需要灵活的选用不同的存储管理策略。
本系统中采用ROM/FLASH存放程序和数据,使断电后不会丢失,用SDRAM作为程序运行的内存,通过在RAM中建立异常中断向量表,
利用内存映射技术实现虚拟空间到物理空间的映射,这样就可以满足嵌入式系统的需求。
对本系统外围设备首先要考虑的具有良好人机交互界面的,由十嵌入式系统中不可能有象PC机那样的键招‘设备,所以考虑用按钮和触摸屏来代替,另为考虑到需要和PC机数据交换以及和其他的USB设备进行数据交换,加入USB接口模块。
2.2.3USB接口芯片CH375
CH375芯片集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用固件程序等。
PLL倍频器用于将外部输入的12MHz时钟倍频到4MHz作为USB接口的SIE时钟。
主从USB接口SIE是USB主机方式和从机方式的一体式SIE,用于完成物理的数据接收和发送,CRC数据校验、出错重试、USB总路线状态检测等功能。
数据缓冲区用于缓冲USB接口SIE收发的数据。
被动并行接口用于与外部单片机等交换数据。
异步串行接口用于代替被动并行接口与外部单片机通讯。
命令解释器用于分析并执行外部单片机发出的各种命令。
通用固件程序包含两组:
第一组用于USB设备方式,自动处理USB默认端点0的各种标准事务等;第二组用于USB主机方式,自动处理Mass_Sto-ring海量存储设备的专用通讯协议。
CH375内部有7个物时端点。
其中端点0,1,2只用于从机设备方式,在主机方式下只需用主机端点。
并且在主机方式下支持各种全速设备。
USB设备的端点号可以是0到15,两个方向最多支持31个端点,包的长度可以是0到64字节。
内置固件的一个很大好处就是即使开发人员不懂USB相关协议,只需用单片机发送简单指令就能对USB设备进行操作,不过它要求USB存储设备支持Buk-0n1y传输协议。
3基于ARM的USB转存系统的设计
3.1ARM处理器简介型
ARM有二种含义,是一家公司的名称,是对一类微处理器的通称,又是一种技术名称,ARM公司不生产芯片但转让设计许可,由其合作伙伴生产ARM芯片,该类微处理器己广泛应用十工业控制、消费类电子产品、通信系统、网络系统、无线系统等各个领域。
3.1.1ARM的体系构架特点
ARM核采用精简指令集(RISC,ReducedInstructionSetComputer)结构的体系结构,RISC指令集是一套能在高时钟频率下单周期执行、简单}fu有效的指令系统,RISC结构的设训一降低了硬件执行指令的复杂度,ARM指令集与单纯的RISC又有些不同点,ARM体系结构主要有以下一些特征:
(1)一个大的、统一的寄存器文件,大量的寄存器,可以用十多种用途。
(2)加载/存储(Load/Store)体系结构,数据处理的操作只针对寄存器的内容,而不直接对存储器进行操作。
(3)多寄存器的加载/存储(Load/Store)指令,寻址模式简单,所有加载/存储的地址都只由寄存器的内容和指令域决定。
(4)每条指令都支持条件执行,实现了最快速的代码执行。
(5)统一和固定长度的指令域,简化了指令的译码。
(6)能够在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作。
(7)通过协处理器指令集来扩展指令集,包括在编程模式中增加了新的寄存器和数据类型。
(8)ARM专有的Thumb指令集,以高密度16位压缩形式表示指令集。
3.1.2ARM的流水线结构
ARM920T内核采用典型的5级流水线如3.1所示
(1)取指(fetch):
从存储器中取出指令,并将其放入指令流水线。
(2)译码(decode):
指令被译码,从寄存器堆中读取寄存器操作书。
在寄存器堆中有3个操作数读端口,因此大多数指令能在1个周期内读取器操作
(3)执行(execute):
将其中一个操作数移位,并在ALU中产生结果。
如果指令是Load或Store指令,则在ALU中计算存储器地址。
(4)缓冲/数据(buffe/data):
如果需要则访问数据存储器,否则ALU只简单的缓冲一个时钟周期。
(5)回写(write-back)将指令的结果回写到寄存器堆,包括从寄存器读出的数据。
3.1.3ARM存储器
ARM处理器具有灵活多样的存储器管理策略,可以适应十各种不同的系统的需求,在ARMS系列中采用了灵活方便的内存管理单兀(MMU,用户可以根据自己的需要使用不同的管理策略。
有以下几种存储管理策略:
(1)可使用多类型的存储单兀(SDRAM,FLASH等);
(2)Cache;(3)写缓存;(4)虚拟内存地址;
可以通过以下几种方法实现对存储器的管理:
(1)使能Cache,加快存储器的访问速度;
(2)启动虚拟地址到物理地址的映射;
(3)使用“域管理”策略,对存储单兀的访问进行保护;(4)对I/O映射地址空间的访问加以限制;
3.1.4基于ARM920T的S3C2410处理器介绍
S3C2410处理器是SAMSUNG公司基十ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位嵌入式微处理器。
该处理器拥有独立的16KB指令Cache和16KB数据Cache,内存管理单兀MMU,支持TFT的LCD控制器,NANDFlash闪存控制器,3路DART,4路DMA,4路带PWM的Timer,I/O口,RTC,TouchScreen接口,2个USB主控制器,1个USB从控制器,SD主控制器和MMC接口,2路SPIO,S3C2410处理器最高可运行在下203MHz下。
采用了272脚的FBGA封装,内含一个ARM920T核和主要片内外围
表3.2S3C2410内部所含接口功能部件
在时钟方面也有突出的特点,该芯片具有PLLCMPLL和UPLL)的芯片时钟发生器。
MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。
这能够使处理器轻松运行Windows,Linux等操作系统以进行较为复杂的信息处理。
UPLL产生实现USB主从功能的时钟。
S3C2410将系统的存储空间分成8个体(Bank),每个体的大小是128MB,共1G。
Bank0到Bank5的开始地址是固定的,用于ROM和SRAM。
Bank6和Ban7用于ROM,SRAM或SDRAM,这两个组可编程目大小相同。
Bank7的开始地址是Bank6的结束地址,灵活可变。
所有内存块的访问周期都可编程。
S3C2410采用8个(Ngcs[7:
0])通用片选信号选择这些纲。
另外S3C2410支持NandFlash启动,NandFlash具有容量大,价格低的特点,系统如采用NandFlash和SDRAM组和,可以获得非常高的性价比。
3.2主芯片S3C2410最小系统的电路设计
硬件平台的搭建和器件的选取应综合考虑系统的整体性价比。
根据硬件平台的通用设计原则,先构建基三星公司的S3C2410ARM9处理器的最小系统,然后在此最小系统的基础上按实际需要增删外围功能部件构建而成。
电路包括以下几个主要功能模块:
1.电源模块、晶振电路及复位电路设计
2.SDRAM模块设计
3.Nand-Flash存储模块设计
4.JTAG接口设计
3.2.1电源模块、晶振电路及复位电路设计
作为便携式应用系统,系统的供电问题以及对十电源的有效管理非常重要,主要从两方面考虑,一方面应尽可能满足系统各模块不同电压的需求,另一方面要尽可能的降低系统的功耗。
S3C2410处理器有4种系统工作状态:
正常方式(NORMALmode,空闲方式(IDLEmode,关l方式(Power-OFFmode不II非锁相环方式(Non-PLLmode,其中非锁相环方式(Non-PLLmode)采用外部时钟信号,其功耗取决十时钟信号的频率。
如果采用内置振荡电路,则可以工作在正常方式、空闲方式和关闭方式。
S3C2410处理器内部有一电源管理模块用十完成二种工作状态之间的切换,实现为系统运行不同的任务提供最佳的系统工作状态。
(1)电源模块设计
SC32140中的复位模块、时钟电路、端口寄存器、处理器内核等需要1.8V的电压,处理器端口和处理器存储器端口等需要3.3V电压,LCD等外设需要别电压。
由此可见,在该系统中,需要使用1.8V,3.3V和-5V的直流稳压电源。
为简化系统电源电路的设计,要求整个系统的输入电压为高质量的+5V直流稳压电源。
-5V输入电压经过DC-DC转换器LM1117可完成从-5V到3.3V和1.8V的电压转换。
系统中所需RTL电压由1.8V电源和后备电源共同提供,在系统工作时电压1.8V有效,系统掉电时后备电池开始工作,以供电路所需的电源。
电路如图3.3所示:
图3.3电源模块电路原理图
(2)晶振电路的设计
S3C2410微处理器的主时钟可以由外部时钟源提供,也可以由外部振荡器和内部电路来产生。
采用哪种方式通过引脚OM[3:
2]来进行选择。
在本设计中选择OM[3:
2]均接地的方式,即采用外部振荡器提供系统时钟。
外部振荡器由12MHZ晶振和2个1_5pF的微调电容组成。
振荡电路输出接到S3C2410微处理器的XTIpII引脚,输入由XTOpIl提供。
12MZH的晶振频率经过S3C2410片内的PLL电路倍频后,最高可以达到203MHZ。
由十片内的PLL电路兼有倍频和波形整形的功能,因此,系统可以较低的外部时钟信号获得较高的工作频率,从而降低因高速开关时钟所造成的高频噪声。
系统所需的RTC时钟也采用相同的方式,如图3.5所示:
图3.4晶振电路原理图
(3)复位电路设计
在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。
本设计中采用了较简单的RC复位电路,如图3.6所示。
图3.5系统复位电路图
该复位电路的工作原理如下,在系统上电时,通过电阻8108向电容C162充电,当两端的电压未达到高电平的门限电压时,RESET端输出为高电平,系统处十复位状态,当两端的电压达到高电平的门限时,RESET端输出为低电平,系统进入正常的工作状态。
当用户按下按键时,电容C162两端的电荷被放掉,RESET端输出为高电平,系统进入复位状态,重复以上的充电过程,系统进入正常工作状态。
nRESET端的输出状态与RESET端相反,用十低电平复位的器件。
通过调整8108和C162的参数,可调整复位状态的时间。
3.2.2SDRAM模块设计
系统启动后,虽然程序可以在Flash或内部的SDRAM中运行,但他们有速度慢或者容量小的缺点。
SDRAM存储器具有速度快、大容量的特点,是一种具有同步接口的高速动态随机存储器,其与ARM内部流水线结构一起可以允许高速存取外部数据,数据传输速度几乎可以和ARM的时钟频率同步。
在ARM系统中SDRAM主要用作程序的运行空间、数据及堆栈区。
系统启动时,先从复位地址0x0地址开始读取启动代码,完成系统的初始化,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。
S3C2410芯片内部有一可编程的16位或32位宽的SDRAM接口,内有SDRAM控制器,允许连接两组SDRAM容量512Mbit,只要选取标准的SDRAM芯片与接口连接就可以。
本系统中选用Hynix公司的HY57V561620作为SDRAM。
其存储容量为32MB<4MbitsX4BanksX16,工作电压为3.3V,为54脚TSOP封装,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh,单片数据宽度为16位。
为增大数据吞吐量,充分发挥32位ARM处理器的数据处理能力,本系统选用两片HY57V561620芯片并联构建32位的SDRAM存储器系统,共64MB的SDRAM空间,可满足嵌入式操作系统及各种相对较复杂的算法的运行要求。
SDRAM模块原理图如图3.6所示:
图3.6SDRAM模块原理图
3.2.3Nand-Flash存储模块
在嵌入式系统中,程序可以加载到SDRAM中在运行,也可以直接在ROM或Flash中运行,因为Flash作为非易失性存储器,因此一种比较常用的方法是把Flash存储器作为硬招来使用,当程序需要运行时,先将其加载到SDRAM中,因为SDRAM存储器的数据宽度宽,运行速度比较快。
Flash有Nor-Flash不IINand-Flash两类,相比之下,Nand-Flash的容量大,擦除速度更快,但由十ARM中没有专门用十Nand-Flash控制所需的CLE,ALE信号,因此需要借助通用的GPIO口来实现。
Nand-Flash存储器属十MTDCMemoryTedhnologyDevices)设备需要闪存技术驱动程序的支持,TDM核心层分为用户模块接口层、MTD抽象层和MTD设备驱动层,通过设备驱动层实现对存储设备的物理访问功能,用过用户模块提供用户空间的直接访问接口。
Linux提供了较为完善的驱动程序,只要在内核配置中选择好相应的类型即可。
在本设计中采用了Samsung公司的K9F1208Nand-Flash芯片作存储器,其存储容量为64M字节,数据总线宽度为8位,工作电压为2.7V}-3.6V,采用48脚TSOP封装,仅需要3.3V电压即可完成在系统的编程与擦除操作。
采用ARM的通用GPIO口作为CLE,ALE信号的控制线,电路如图3.8所示:
图3.7Nand-Flash电路模块
3.2.4JTAG接口电路
S3C2410A为ARM920T的内核,通过其内置的标准JTAG接口,可以对其进行在线实时仿真调试,也可以使用SJF2410等烧写工具通过JTAG接口对外部扩展的Flash存储器进行编程。
目前ARM普遍使用标准的10针JTAG接口,如图2.7所示为本系统的JTAG接口电路原理图。
JTAG信号中除TDO不需要上拉电阻外,其他的都必须接lOkS2的上拉电阻。
图3.8JTAG接口原理图
3.3温度采集电路设计
3.3.1温度传感器的选择
DS18B20“一线总线”数字化温度传感器是DALLAS最新单线数字温度传感器,同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为±2°C。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DS18B20的主要特点:
①全数字温度转换及输出。
②先进的单总线数据通信。
③最高12位分辨率,精度可达土0.5摄氏度。
④12位分辨率时的最大工作周期为750毫秒。
⑤可选择寄生工作方式。
⑥检测温度范围为–55°C~+125°C(–67°F~+257°F)
⑦内置EEPROM,限温报警功能。
⑧64位光刻ROM,内置产品序列号,方便多机挂接。
⑨多样封装形式,适应不同硬件系统,DS18B20的外形及管脚排列:
DS18B20外形及大小与一般晶体三极管相当,有三个引出端其管脚排列见图3.9
1GND电源地2DQ数据线3VDD电源电压
图3.9DS18B20管脚排列
基于以上优点,本系统采用DS18B20作为温度传感器。
3.3.2温度采集电路
DS18B20只需要接到S3C2410的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻