基于s3c2410的嵌入式系统硬件结构设计.ppt

上传人:小飞机 文档编号:5064504 上传时间:2023-06-01 格式:PPT 页数:296 大小:3.02MB
返回 下载 相关 举报
基于s3c2410的嵌入式系统硬件结构设计.ppt_第1页
第1页 / 共296页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第2页
第2页 / 共296页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第3页
第3页 / 共296页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第4页
第4页 / 共296页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第5页
第5页 / 共296页
点击查看更多>>
资源描述

《基于s3c2410的嵌入式系统硬件结构设计.ppt》由会员分享,可在线阅读,更多相关《基于s3c2410的嵌入式系统硬件结构设计.ppt(296页珍藏版)》请在三一办公上搜索。

1、1,Part 5 基于S3C2410的硬件系统设计(一),1,3,2,4,S3C2410X简介存储器接口设计I/O接口设计UART设计IIC接口设计中断接口时钟和功耗管理PWM定时器,5,6,看门狗定时器日历时钟DMA LCD控制器A/D转换与触摸屏USB接口SPI,7,8,10,9,11,12,13,14,15,2,5.1 S3C2410X概述,主要内容主要特性系统结构引脚信号,3,5.1 S3C2410X概述,S3C2410X是韩国三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T内核,加上丰富的片内外设,为手持设备和其它应用,提供了低价格、低功耗、高性能微控制器的

2、解决方案。,4,主要特性具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU。外部存储器控制器,可扩展8组,每组128MB,总容量达1GB;支持从Nand flash存储器启动。55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设定。4通道的DMA,并且有外部请求引脚。3个通道的UART,带有16字节的TX/RX FIFO,支持IrDA1.0功能。具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口。有2个USB主机总线的端口,1个USB设备总线的端口。有4个具有PWM功能的16位定时器和1个16位内部定时器。,芯片体系结构,

3、5,芯片体系结构,主要特性8通道的10位A/D转换器,最高速率可达500kB/s;提供有触摸屏接口。具有117个通用I/O口和24通道的外部中断源。兼容MMC的SD卡接口。具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作。看门狗定时器。具有日历功能的RTC。有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道。具有PLL功能的时钟发生器,时钟频率高达203MHz。双电源系统:1.8/2.0V内核供电,3.3V存储器和I/O供电。,6,二、系统结构主要由两大部分构成:ARM920T内核片内外设。,7,1、ARM920T内核由三部分:ARM9内核ARM9

4、TDMI、32KB的Cache、MMU。,8,2、片内外设分为高速外设和低速外设,分别用AHB总线和APB总线。,9,三、引脚信号S3C微控制器是272-FBGA封装。其信号可以分成:addr0-addr26、Data0-data31、GPA0-GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、nGCS0nGCS7、AIN7、IIC、SPI、OM0-OM3等,大部分都是复用的,BACK,10,5.2 S3C2410X的存储器,主要内容存储器配置存储器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工

5、作原理,11,5.2.1 S3C2410X的存储器配置,一、概 述S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。S3C2410X的存储空间分成8组,最大容量是1GB,bank0-bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。

6、S3C2410X的存储器格式,可以为大端格式,也可以为小端格式。,12,ARM9内核,存储器控制器,存储器,存储器及存储器映射I/O,ARM9定义了局部总线的接口时序,各芯片厂商制定了自己的接口时序,ARM9局部总线,一般在两者之间加入存储器控制器,13,14,二、存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号,S3C2410X存储器控制器共有13个寄存器。,15,1、总线宽度和等待控制寄存器 back,STn:控制存储器组n的UB/LB引脚输出信号。1:使UB/LB与nBE3:0相连;0:使UB/LB与nWBE3:0相连WSn:使用/禁用存储器组n的WAIT状态1:使能WA

7、IT;0:禁止WAITDWn:控制存储器组n的数据线宽00:8位;01:16位;10:32位;11:保留,16,Tacs:设置nGCSn有效前地址的建立时间00:0个;01:1个;10:2个;11:4个时钟周期Tcos:设置nOE有效前片选信号的建立时间00:0个;01:1个;10:2个;11:4个时钟周期Tacc:访问周期000:1个;001:2个;010:3个;011:4个时钟100:6个:101:8个;110:10个;111:14个,2、BANKn-存储器组控制寄存器(n=0-5),17,Tcoh:nOE无效后片选信号的保持时间00:0个;01:1个;10:2个;11:4个时钟Tcah:

8、nGCSn无效后地址信号的保持时间00:0个;01:1个;10:2个;11:4个时钟Tacp:页模式的访问周期00:2个;01:3个;10:4个;11:6个时钟PMC:页模式的配置,每次读写的数据数00:1个;01:4个;10:8个;11:16个注:00为通常模式。注:紫色为某实验箱上的配置,其值为0 x0700,back,18,MT:设置存储器类型00:ROM或者SRAM,3:0为Tacp和PMC;11:SDRAM,3:0为Trcd和SCAN;01、10:保留Trcd:由行地址信号切换到列地址信号的延时时钟数00:2个时钟;01:3个时钟;10:4个时钟 SCAN:列地址位数00:8位;01

9、:9位;10:10位,3、BANK6/7-存储器组6/7控制寄存器,back,19,REFEN:刷新控制。1:使能刷新;0:禁止刷新TREFMD:刷新方式。1:自刷新0:自动刷新Trp:设置SDRAM行刷新时间(时钟数)00:2个时钟;01:3个;10:3个;11:4个时钟Tsrc:设置SDRAM行操作时间(时钟数)00:4个时钟;01:5个;10:6个;11:7个时钟注:SDRAM的行周期=Trp+Tsrc。Refresh_count:刷新计数值,4、REFRESH-刷新控制寄存器,20,Refresh_count:刷新计数器值计算公式:刷新周期=(211-Refresh_count+1)/

10、HCLK例子:设刷新周期=15.6s,HCLK=60MHz则刷新计数器值=211+1-6015.6=1113,back,21,高24位未用。BURST_EN:ARM突发操作控制0:禁止突发操作;1:可突发操作SCKE_EN:SCKE使能控制SDRAM省电模式0:关闭省电模式;1:使能省电模式SCLK_EN:SCLK省电控制,使其只在SDRAM访问周期内使能SCLK0:SCLK一直有效;1:SCLK只在访问期间有效BK76MAP:控制BANK6/7的大小及映射,5、BANKSIZE-BANK6/7组大小控制寄存器,22,BK76MAP:控制BANK6/7的大小及映射100:2MB;101:4MB

11、;110:8MB 111:16MB;000:32MB;001:64MB010:128MB,back,23,WBL:突发写的长度。0:固定长度;1:保留TM:测试模式。00:模式寄存器集;其它保留CL:列地址反应时间000:1个时钟;010:2个时钟;011:3个时钟;其它保留BT:猝发类型0:连续;1:保留BL:猝发时间000:1个时钟;其它保留,6、MRSRB6/7-BANK6/7模式设置寄存器,24,head.sENTRY(memsetup)movr1,#MEM_CTL_BASE adrlr2,mem_cfg_valaddr3,r1,#521:ldrr4,r2,#4strr4,r1,#4c

12、mpr1,r3bne1bmovpc,lrmem_cfg_val:.longvBWSCON.longvBANKCON0.longvBANKCON1.longvBANKCON2.longvBANKCON3.longvBANKCON4.longvBANKCON5.longvBANKCON6.longvBANKCON7.longvREFRESH.longvBANKSIZE.longvMRSRB6.longvMRSRB7,smdk2410.h/*initial values for DRAM*/#define MEM_CTL_BASE 0 x48000000#define vBWSCON0 x22111

13、110#define vBANKCON00 x00000700#define vBANKCON10 x00000700#define vBANKCON20 x00000700#define vBANKCON30 x00000700#define vBANKCON40 x00000700#define vBANKCON50 x00000700#define vBANKCON60 x00018005#define vBANKCON70 x00018005#define vREFRESH0 x008e0459#define vBANKSIZE0 xb2#define vMRSRB60 x30#def

14、ine vMRSRB70 x30,VIVI For s3c2410中Bootloader之存储器初始化,25,;Tacc 10:8 存取周期 110=10 clocks 111=14 clocks,;Bank1,3 16位,其余32位,For 44b0 x中Bootloader之存储器初始化,26,5.2.2 Flash,FLASH存储器又称闪存,是一种可在线多次擦除的非易失性存储器,即掉电后数据不会丢失。FLASH存储器还具有体积小、功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。FLASH存储器主要分为两种,一种为NOR型FLASH,另一种为NAND型FLASH。,一、概述,27,(1

15、)接口差别 NOR型FLASH采用的是SRAM接口,提供有足够的地址引脚来寻址,可以很容易地存取其片内的每一个字节;NAND型FLASH使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。通常是采用8个引脚来传送控制、地址和数据信息。(2)读写的基本单位 NOR型FLASH操作是以“字”为基本单位;NAND型FLASH操作是以“页面”为基本单位,页的大小一般为512字节。(3)性能比较 NOR型FLASH的地址线和数据线是分开的,传输效率很高,程序可以在芯片内执行。NOR型的读速度比NAND型稍快一些;NAND型的写入速度比NOR型快很多(由于NAND型读写的基本单位为“页面

16、”,所以对于小量数据的写入,总体速度要比NOR型慢);,二、NOR型与NAND型FLASH的区别,28,(4)容量和成本 NAND型FLASH具有极高的单元密度,容量可以做得比较大,加上其生产过程更为简单,价格也就相应地降低了。NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。(5)软件支持 在NOR型FLASH上运行代码不需要任何的软件支持,而在NAND型FLASH上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序MTD(Memory Technology Dri

17、vers)。NAND型和NOR型FLASH在进行写入和擦除操作时都需要MTD(说明,MTD已集成在FLASH芯片内部,它是对FLASH进行操作的接口)。,29,这里以SST39VF160为例,介绍NOR型FLASH存储器的结构及操作。SST39VF160是SST公司的CMOS多功能FLASH(MPF)器件,存储容量为2M字节,16位数据宽度(即一个字为2字节),工作电压为2.73.6V。SST39VF160由SST特有的高性能SuperFlash技术制造而成,SuperFlash技术提供了固定的擦除和编程时间,与擦除/编程周期数无关。芯片管脚配置如下图所示。,三、NOR型Flash存储器,30

18、,SST39VF160管脚描述,NOR型FLASH存储器采用的是SRAM接口,其地址线和数据线是分开的。,31,SST39VF160工作模式选择,32,NOR型FLASH存储器容量越来越大,为了方便数据管理,将FLASH划分为块(Block),每个块又分成扇区(Sector)。SST39VF160的块大小为32K字,扇区大小为2K字。读操作,可以对任何地址的任何字节进行,不受限制;写操作,以字形式进行编程。编程前包含字的扇区必须完全擦除;擦除操作,以扇区(2K)、块(32K)或全片为单位进行擦除。擦除后数据变为0 xFF。,33,SST39VF160的存储器操作由命令来启动。命令通过标准微处理

19、器写时序写入器件。,34,内部操作状态检测:SST39VFl60提供两种软件方式来检测内部操作是否完成。软件检测方式涉及两个状态位:利用数据轮询特性Data Polling bit(DQ7)和跳转位特性Toggle bit(DQ6)。在WE的上升沿,写入结束检测功能被使能,同时内部写入或擦除操作也被初始化。这里只介绍Toggle bit方式。在内部写入或擦除的过程中,任何对DQ6连续的读操作都会产生一个不断翻转的1和O。当内部写入或擦除完成时,DQ6位将停止翻转。,void Waitfor_endofprg(void)volatile unsigned int old_Status,now_S

20、tatus;old_Status=*(volatile unsigned short*)0 x00);/从任意地址读出数据while(1)new_Status=*(volatile unsigned short*)0 x00):/从同一地址读出数据 if(old_Status&Ox40)=(new_Status&Ox40)/比较DQ6位 break;else old_Status=new_Status:,35,SST39VF160擦除Int SST39VF160_Sectorerase(unsigned long SAaddr)writeflash(0 x5555,0 xAA)writefla

21、sh(0 x2AAA,0 x55)writeflash(0 x5555,0 x80)writeflash(0 x5555,0 xAA)writeflash(0 x2AAA,0 x55)writeflash(SAaddr,0 x30)waitfor_endofprg()#define writeflash(addr,dat)*(volatile unsigned short*)(addr1)=(unsigned short)dat Addr 为写入数据的目标地址。Dat为16位半字而不是字节,因而addr也是半字地址,但对存储器而言地址是以字节为单位的,因此,addr必须加以调整,左移1位。如需

22、擦除最后一个扇区,Saaddr=0 xFF800即可。,36,SST39VF160写入,Int SST39VF160_wordProg(unsigned long addr,unsigned short dat)writeflash(0 x5555,0 xAA)writeflash(0 x2AAA,0 x55)writeflash(0 x5555,0 xA0)writeflash(addr,dat)waitfor_endofprg()写入操作是一个字一个字进行的,在需要进行多字(16位)写入时,只要循环调用SST39VF160_wordProg即可。类似:LINUX 下公开源代码的J-FLAS

23、H,37,四、Nand Flash及其控制器,Nor flash存储器:读速度高,而擦、写速度低,容量小,价格高。Nand flash存储器:读速度不如Nor flash,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。因此,现在不少用户从Nand flash启动和引导系统,而在SDRAM上执 行主程序代码。(一)Nand Flash控制器概述S3C2410X微控制器从Nand flash的引导功能:其内部有一个叫做“起步石(Steppingstone)”的 SRAM缓冲器,系统 启动时,Nand flash存储器的前面4KByte字节将被自动载入到起步石中,然后系统自动执行这些载入的引导代

24、码。引导代 码执行完毕后,自动跳转到SDRAM执行。Nand flash操作的校验功能:使用S3C2410X内部硬件ECC功能可以对Nand flash的数据进行有效性的检测。,38,(二)Nand Flash控制器主要特性Nand Flash模式:支持读/擦/编程Nand flash存储器。自动导入模式:复位后,引导代码被送入Steppingstone,传送后,引导代码在 Steppingstone中执行。具有硬件ECC(纠错码)功能:硬件产生纠错代码。内部4KB的SRAM缓冲器Steppingstone,在Nand flash引导后可以作为其他用途使用。,39,Nand Flash控制器功

25、能框图,主要由6部分组成引脚信号:CLE:命令锁存R/nB:就绪/忙,40,(三)Nand Flash 控制器的寄存器,41,NFEN:NF控制器使能控制0:禁止使用;1:允许使用IECC:初始化ECC编码/解码器控制位0:不初始化ECC;1:初始化ECCNFCE:NF片选信号nFCE控制位持续时间设置0:nFCE为低有效;0:nFCE为高无效TACLE:CLE/ALE持续时间设置值(0-7)持续时间 HCLK*(TACLS+1)CLE/ALE:命令/地址锁存允许TWRPH0:写信号持续时间设置值(07)持续时间 HCLK*(TWRPH01)TWRPH1:写信号无效后CLE/ALE保持时间设置

26、值(07)持续时间 HCLK*(TWRPH11),1、NFCON-Flash配置寄存器,42,2、NFCMD-Flash命令寄存器,高24位未用,低8位为读入或者写出的数据,3、NFADDR-Flash地址寄存器,4、NFDATA-Flash数据寄存器,高24位未用,低8位为Flash存储器地址值,43,RnB:Nand Flash存储器状态位0:存储器忙;1:存储器准备好,5、NFSTAT-Flash状态寄存器,6、NFECC-Flash错误校正码寄存器,44,(四)Nand Flash 控制器的工作原理 1、自动导入启动代码步骤完成复位。如果自动导入模式使能,Nand flash存储器的前

27、面4K字节被自动拷贝到Steppingstone 内部缓冲器中。Steppingstone被映射到nGCS0对应的BANK0存储空间。CPU在Steppingstone的4-KB内部缓冲器中开始执行引导代码。注意:在自动导入模式下,不进行ECC检测。因此,Nand flash的前4KB应确保不能有位错误(一 般Nandflash厂家都确保)。,45,2、Nand FLASH模式配置 通过NFCONF寄存器配置Nand flash;写Nand flash命令到NFCMD寄存器;写Nand flash地址到NFADDR寄存器;在读写数据时,通过NFSTAT寄存器来获得Nand flash的状态信息

28、。应该在读操作前或写入 之后检查R/nB信号(准备好/忙信号)。在读写操作后要查询校验错误代码,对错误进行纠正。,46,3、系统引导和 Nand FLASH 配置 OM1:0=00b:使能Nand flash控制器自动导入模式;OM3:0为芯片引脚,设置引导模式、存储器bank0的数据宽度、时钟模式等。OM1:0=01b、10b:bank0数据宽度为16位、32位OM1:0=11b:测试模式Nand flash的存储页面大小应该为512字节。NCON(引脚):Nand flash 寻址步骤数选择 0:3步寻址;1:4步寻址注:如果NAND Flash的容量是256Mbit以下,那么,block

29、 adress最高位只到bit24,因此寻址只需要3步。,47,4、Nand Flash操作的校验问题S3C2410A在写/读操作时,每512字节数据自动产生3字节的ECC奇偶代码(24位)。24位 ECC 奇偶代码18位行奇偶 6位列奇偶ECC产生模块执行以下步骤:当MCU写数据到Nand时,ECC产生模块生成ECC代码。当MCU从Nand读数据时,ECC产生模块生成ECC代码同时用户程序将它与先前写入时产 生的ECC代码比较。,48,Flash,这里以K9F2808U0C为例,介绍NAND型FLASH存储器的结构及操作。K9F2808U0C是SAMSUNG公司生产的NAND型FLASH存储

30、器,存储容量为16M8Bit,工作电压为2.73.6V。528字节的页编程操作时间为200s,16K字节的块擦除操作时间为2ms。页面的数据以每个字50ns的速度被读出。片内写控制自动实现所有编程和擦除功能,包括脉冲的周期、内部校验和数据冗余。,NAND型Flash存储器,49,Flash,NAND型Flash存储器,K9F2808U0C的存储空间分为32K页,每一页有(512+16)字节。该寄存器被分为两个区:数据区和空闲区。数据区又可分为上、下两个区,每个区为256字节;空闲区可以用于存放ECC校验和其它校验信息。,50,并行Flash,NAND型Flash存储器,对K9F2808U0C的

31、操作是通过将特定的指令数据写到芯片指令寄存器中实现,指令与时序的定义如下表所示。,BACK,51,5.3 输入/输出端口,主要内容概述寄存器应用举例,52,一、概述S3C2410X有117个输入/输出端口。这些端口是:A口(GPA):23个输出口B口(GPB):11个输入/输出口C口(GPC):16个输入/输出口D口(GPD):16个输入/输出口E口(GPE):16个输入/输出口F口(GPF):8个输入/输出口G口(GPG):16个输入/输出口H口(GPH):11个输入/输出口这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:I/O功能、中断功能等等。,53,二、端口寄

32、存器及引脚配置每一个端口都有4个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。,54,GPADAT寄存器为准备输出的数据其值为23位22:0注意:(1)当A口引脚配置为非输出功能时,其输出无意义;(2)从引脚输入没有意义。,1、端口A寄存器及引脚配置,55,1、端口A寄存器及引脚配置,56,GPBDAT-为准备输出或输入的数据其值为11位10:0GPBUP-端口B上拉寄存器,位10:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当B口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,2、端口B寄存器及引脚配置,57,端口B引脚配置寄存器,58,GPCDAT-为准备输

33、出或输入的数据其值为16位15:0GPCUP-端口C上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当C口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,3、端口C寄存器及引脚配置,59,端口C引脚配置寄存器,60,GPDDAT-为准备输出或输入的数据其值为16位15:0GPDUP-端口D上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,15:12无上拉功能,而11:0有上拉注意:当D口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,4、端口D寄存器及引脚配置,61,端口D引脚配置寄存器,62,GPEDAT-为准备输出或输入的数

34、据其值为16位15:0GPEUP-端口E上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,各个引脚都有上拉功能。注意:当E口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,5、端口E寄存器及引脚配置,63,端口E引脚配置寄存器,64,GPFDAT-为准备输出或输入的数据其值为8位7:0GPFUP-端口F上拉寄存器,位7:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,各个引脚都有上拉功能。注意:当F口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,6、端口F寄存器及引脚配置,65,端口F引脚配置寄存器,66,GPGDAT-为准备输出或输入的数据

35、其值为16位15:0GPGUP-端口G上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,15:11引脚无上拉功能,其它引脚有。注意:当G口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,7、端口G寄存器及引脚配置,67,端口G引脚配置寄存器,LCD-PEN:POWER_ENABLE,nSS0:SPI0_SELECT,68,GPHDAT-为准备输出或输入的数据其值为11位10:0GPHUP-端口H上拉寄存器,位10:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当H口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,8、端口H寄存器及引脚配置,69,

36、端口H引脚配置寄存器,BACK,程序示例见VIVI中:S3C2410.h(地址映射)、smdk2410.h(功能设置值)、smdk.c(将值写到指定地址),70,9、端口其它控制寄存器,71,nEN_SCKE-SCLK使能位。在电源关闭模式下对SDRAM做保护0:正常状态 1:低电平nEN_SCLKx-SCLKx使能位。在电源关闭模式下对SDRAM做保护0:SCLKx=SCLK 1:低电平nRSTCON-对nRSTOUT软件复位控制位0:使nRSTOUT为低,0;1:使nRSTOUT为高,1,(1)MISCCR-混合控制寄存器,72,USBSUSPND1-USB端口1模式0:正常1:浮空USB

37、SUSPND0-USB端口0模式0:正常1:浮空CLKSEL1-CLKOUT1引脚输出信号源选择000:MPLL CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK111x:保留CLKSEL0-CLKOUT0引脚输出信号源选择000:MPLL CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK011x:保留,73,USBPAD-与USB连接选择0:与USB设备连接1:与USB主机连接MEM_HZ_CON-MEM高阻控制位0:Hi-Z 1:前一状态SPUCR_L-数据口低16位15:0上拉控制位0:上

38、拉1:无上拉SPUCR_H-数据口高16位31:16上拉控制位0:上拉1:无上拉,74,(2)DCLKCON-D时钟控制寄存器,DCLK1(0)CMP-DCLK1(0)低电平时间所占的比例数。设该位值为m,m DCLK1(0)DIV。则低、高电平持续时间的源周期数分别为:m+1、DCLK1(0)DIV-m DCLK1(0)DIV-DCLK1(0)分频值 DCLK1(0)frequency=source clock/(DCLK1(0)DIV+1),75,(2)DCLKCON-D时钟控制寄存器(续),DCLK1(0)SelCK-DCLK1(0)source clock 选择0:源时钟选择PCLK1

39、:源时钟选择UCLK(USB)DCLK1(0)EN-DCLK1(0)Enable0:禁止1:允许,76,主要设置各个外中断源的触发方式、滤波,10、外中断控制寄存器,77,EINT07-中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发11x:双边沿触发第3、7、11、15、19、23、27、31位-保留,(1)EXTINT0-外中断触发方式控制寄存器0,78,EINT815-中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发11x:双边沿触发第3、7、11、15、19、23、27、31位-保留,(

40、2)EXTINT1-外中断触发方式控制寄存器1,79,EINT1623-外中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发11x:双边沿触发第3、7、11、15、19、23、27、31位-为FILTEN各引脚滤波控制位0:禁止滤波1:使能滤波,(3)EXTINT2-外中断控制寄存器2,80,主要设置各个外中断源的滤波器设置,11、外中断滤波控制寄存器,81,FLTCLK1619-外中断1619滤波器时钟选择0:PCLK1:外部/振荡时钟(由OM引脚选择)EINTFLT1619-外中断1619滤波器宽度(频带宽度),(1)EINTFLT2-外中断

41、滤波控制寄存器2,82,FLTCLK2023-外中断2023滤波器时钟选择0:PCLK1:外部/振荡时钟(由OM引脚选择)EINTFLT2023-外中断2023滤波器宽度(频带宽度),(2)EINTFLT3-外中断滤波控制寄存器3,83,12、外中断屏蔽、标志寄存器,84,外中断屏蔽寄存器,0:允许中断1:禁止中断注意:EINT0-EINT3不能在此被屏蔽,在SRCPND中屏蔽。,85,外中断标志寄存器,0:无中断请求1:有中断请求注意:对某位写1,则清除相应标志,即清为0.,86,GSTATUS3、4:复位时被清0,其它情况下其数据不变。用户可以用于保存数据。,13、外中断状态寄存器,87,

42、nWEIT-引脚nWEIT状态nCON-引脚nCON状态RnB-引脚R/nB状态nBATT_FLT-引脚nBATT_FLT状态注意:各位的数值0、1,随着对应引脚变化。,(1)GSTATUS0-外部引脚状态寄存器,88,WDTRST-上电复位控制状态1:出现了上电复位对该位写,则将该位清0OFFRST-掉电模式复位状态。1:系统出现了从掉电模式唤醒复位对该位写,则将该位清0PWRST-看门狗复位状态1:系统出现了看门狗定时器复位对该位写,则将该位清0,(2)GSTATUS2-复位状态寄存器,BACK,89,5.4 UART通用异步串行接口,主要内容概述结构寄存器应用举例,90,一、概 述S3C

43、2410 的UART(通用异步串行口)有三个独立的异步串行I/O 端口:UART0、UART1、UART2,每个串口都可以在中断和DMA 两种模式下进行收发。UART支持的最高波特率达230.4kbps。每个UART 包含:波特率发生器、接收器、发送器和控制单元。波特率发生器以PCLK或UCLK为时钟源。发送器和接收器各包含1个16 字节的FIFO 寄存器和移位寄存器。S3C2410 的3个UART都有遵从1.0规范的红外传输功能,UART0、UART1有完整的握手信号,可以连接MODEM。当发送数据的时候,数据先写到FIFO 然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位

44、输出。被接收的数据也同样从接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO 中。,91,通用异步收发,嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接。,串行数据传送模式:单工半双工全双工 串行通信方式:同步通信异步通信,92,使用UART0通信,S3C2410的I/O电压为3.3V(可承受5V),连接时须注意电平的匹配。,与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。,93,RS-232-C标准采用的接口是9芯或25芯的D型插头,以常用的9芯D型插头为例,各引脚定义如下:,94,二、串行口结构和工作原理1、串行口结构,主要有4部分构成

45、:接收器、发送器、波特率发生器、控制逻辑等。,95,接收器/发送器的结构,96,2、工作原理(1)串行口的操作数据帧格式:可编程,包含1个开始位、5 到8 个数据位、1个可选的奇偶校验位、1个或2个停止位,通过线路控制器(ULCONn)来设置。发送中止信号:迫使串口输出逻辑0,这种状态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再通过这个全0 状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到FIFO 中(在不使用FIFO 模式下,将被放到输出保持寄存器)。接收器具有错误检测功能:可以检测出溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志在接收

46、状态寄存器置位。,97,(2)串行口的波特率发生器每个UART 的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以从S3C2410 的内部系统时钟PCLK或UCLK 中来选择。波特率数值决定于波特率除数寄存器(UBRDIVn)的值,波特率数与UBRDIVn 的关系为:UBRDIVn=(int)(CLK/(f B*16)1 其中CLK为所选择的时钟频率,f B为波特率。f B=CLK/16/(UBRDIVn 1)例如,如果波特率为115200bps 且PCLK 或UCLK 为40MHz,则UBRDIVn 为:UBRDIVn=(int)(40000000)/(115200*16)1=

47、(int)(21.7)1=21 1=20,98,(3)串行口波特率误差极限在应用中,实际波特率往往与理想波特率有差别,其误差不能超过一定的范围,其极限为:UART传输10bit数据的时间误差应该小于1.87(3/160)。t_true=(UBRDIVn+1)1610/PCLK实际的传输10bit所需时间 t_ideal=10/baud_rate理想情况下传输10位需要的时间UART error(t_true t_ideal)/t_ideal)100%,99,(4)串行口的自动流控制功能UART0和UART1不仅有完整的握手信号,而且有自动流控制功能,在寄存器UMCONn中设置实现。自动流控制是

48、利用信号nRTS、nCTS来实现的。在接收数据时,只要接收FIFO中有两个空字节就会使nRTS有效,使对方发送数据;在发送数据时,只要nCTS有效,就会发送数据。其实现过程如下图所示。nRTS:请求对方发送nCTS:清除请求发送,100,(5)使用FIFO进行收发主要是通过对FIFO状态寄存器UFSTATn的查询,确定进行收发。使用FIFO进行发送:(1)选择发送模式(中断或者DMA模式)(2)查询对方是否有请求发送要求,由MODEM状态寄存器UMSTATn0给出,该位为1,则有请求,再查询FIFO状态寄存器UFSTATn的数据满状态位是否为1,如果不是1,可以向发送缓冲寄存器UTXHn写入发

49、送的数据。上面二者有一个或者两个都不满足,则不发送数据。使用FIFO进行接收(请求发送):(1)选择接收模式(中断或者DMA模式)(2)请求发送。先要查询FIFO状态寄存器UFSTATn的数据满状态位是否为1,如果不是1,则可以向对方发出“请求发送信号”,对MODEM控制寄存器MCONn中的请求发送信号产生位置1,使UARTn发出nRTS信号;如果UFSTATn的数据满状态位是1,则不能够请求发送数据。,101,(6)不使用FIFO进行收发主要是通过对收/发状态寄存器UTRSTATn的查询,确定进行收发。数据发送:(1)选择发送模式(中断或者DMA模式)(2)查询对方是否有请求发送要求,由MO

50、DEM状态寄存器UMSTATn0给出,该位为1,则有请求,再查询发送/接收状态寄存器UTRSTATn1的“发送缓冲器空”状态位是否为1,如果是1,可以向发送缓冲寄存器UTXHn写入发送的数据。数据接收(请求发送):(1)选择接收模式(中断或者DMA模式)(2)请求发送。先要查询发送/接收状态寄存器UTRSTATn0的接收缓冲器“数据就绪状态位”是否为1,如果是1,需要先读取数据,然后再请求对方发送数据,方法是对MODEM控制寄存器MCONn中的请求发送信号产生位置1,使UARTn发出nRTS信号。如果UFSTATn的数据满状态位是1,则不能够请求发送数据,102,(7)中断或DMA请求每个UA

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号