基于s3c2410的嵌入式系统硬件结构设计.ppt_第1页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第2页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第3页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第4页
基于s3c2410的嵌入式系统硬件结构设计.ppt_第5页
已阅读5页,还剩291页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 Part5基于S3C2410的硬件系统设计 一 1 3 2 4 S3C2410X简介存储器接口设计I O接口设计UART设计IIC接口设计中断接口时钟和功耗管理PWM定时器 5 6 看门狗定时器日历时钟DMALCD控制器A D转换与触摸屏USB接口SPI 7 8 10 9 11 12 13 14 15 2 5 1S3C2410X概述 主要内容主要特性系统结构引脚信号 3 5 1S3C2410X概述 S3C2410X是韩国三星公司推出的16 32位RISC微控制器 其CPU采用的是ARM920T内核 加上丰富的片内外设 为手持设备和其它应用 提供了低价格 低功耗 高性能微控制器的解决方案 4 系统结构主要由两大部分构成 ARM920T内核片内外设 5 1 ARM920T内核由三部分 ARM9内核ARM9TDMI 32KB的Cache MMU CP15及它的寄存器C13 总线接口单元 6 2 片内外设分为高速外设和低速外设 分别用AHB总线和APB总线 7 主要特性 具有16KB指令Cache 16KB数据Cache和存储器管理单元MMU 外部存储器控制器 可扩展8组 每组128MB 总容量达1GB 支持从Nandflash存储器启动 55个中断源 可以设定1个为快速中断 有24个外部中断 并且触发方式可以设定 4通道的DMA 并且有外部请求引脚 3个通道的UART 带有16字节的TX RXFIFO 支持IrDA1 0功能 具有2通道的SPI 1个通道的IIC串行总线接口和1个通道的IIS音频总线接口 有2个USB主机总线的端口 1个USB设备总线的端口 有4个具有PWM功能的16位定时器和1个16位内部定时器 8 芯片体系结构 主要特性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供电 9 三 引脚信号S3C微控制器是272 FBGA封装 其信号可以分成 addr0 addr26 Data0 data31 GPA0 GPA22GPB10 GPC15 GPD15 GPE15 GPF7 GPG15 GPH10 EINT23 nGCS0 nGCS7 AIN7 IIC SPI OM0 OM3等 大部分都是复用的 BACK 10 5 2S3C2410X的存储器 主要内容存储器配置存储器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工作原理 11 ARM9内核 存储器控制器 存储器 存储器及存储器映射I O ARM9定义了局部总线的接口时序 各芯片厂商制定了自己的接口时序 ARM9局部总线 一般在两者之间加入存储器控制器 12 5 2 1S3C2410X的存储器配置 一 概述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位 S3C2410X的存储器格式 可以为大端格式 也可以为小端格式 13 14 二 存储器的控制寄存器内存控制器为访问外部存储空间提供存储器控制信号 S3C2410X存储器控制器共有13个寄存器 15 1 总线宽度和等待控制寄存器back STn 控制存储器组n的UB LB引脚输出信号 1 使UB LB与nBE 3 0 相连 0 使UB LB与nWBE 3 0 相连WSn 使用 禁用存储器组n的WAIT状态1 使能WAIT 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 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位 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 HCLK例子 设刷新周期 15 6 s HCLK 60MHz则刷新计数器值 211 1 60 15 6 11131113 0 x459 0b10001011001 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 110 8MB111 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 BASEadrlr2 mem cfg val 取址指令mem cfg val对应的地址给R2addr3 r1 521 ldrr4 r2 4strr4 r1 4cmpr1 r3Bne1b 循环操作 直到13个寄存器赋值完成movpc lrmem cfg val longvBWSCON longvBANKCON0 longvBANKCON1 longvBANKCON2 longvBANKCON3 longvBANKCON4 longvBANKCON5 longvBANKCON6 longvBANKCON7 longvREFRESH longvBANKSIZE longvMRSRB6 longvMRSRB713个变量 52个地址单元 smdk2410 h initialvaluesforDRAM defineMEM CTL BASE0 x48000000 definevBWSCON0 x22111110 definevBANKCON00 x00000700 definevBANKCON10 x00000700 definevBANKCON20 x00000700 definevBANKCON30 x00000700 definevBANKCON40 x00000700 definevBANKCON50 x00000700 definevBANKCON60 x00018005 definevBANKCON70 x00018005 definevREFRESH0 x008e0459 definevBANKSIZE0 xb2 definevMRSRB60 x30 definevMRSRB70 x30 VIVIFors3c2410中Bootloader之存储器初始化 25 Tacc 10 8 存取周期110 10clocks111 14clocks Bank1 316位 其余32位 For44b0 x中Bootloader之存储器初始化 26 5 2 2Flash FLASH存储器又称闪存 是一种可在线多次擦除的非易失性存储器 即掉电后数据不会丢失 FLASH存储器还具有体积小 功耗低 抗振性强等优点 是嵌入式系统的首选存储设备 FLASH存储器主要分为两种 一种为NOR型FLASH 另一种为NAND型FLASH 一 概述 27 1 接口差别NOR型FLASH采用的是SRAM接口 提供有足够的地址引脚来寻址 可以很容易地存取其片内的每一个字节 NAND型FLASH使用复杂的I O口来串行地存取数据 各个产品或厂商的方法可能各不相同 通常是采用8个引脚来传送控制 地址和数据信息 2 读写的基本单位NOR型FLASH操作是以 字 为基本单位 NAND型FLASH操作是以 页面 为基本单位 页的大小一般为512字节 3 性能比较NOR型FLASH的地址线和数据线是分开的 传输效率很高 程序可以在芯片内执行 NOR型的读速度比NAND型稍快一些 NAND型的写入速度比NOR型快很多 由于NAND型读写的基本单位为 页面 所以对于小量数据的写入 总体速度要比NOR型慢 二 NOR型与NAND型FLASH的区别 28 4 容量和成本NAND型FLASH具有极高的单元密度 容量可以做得比较大 加上其生产过程更为简单 价格也就相应地降低了 NOR主要应用在代码存储介质中 NAND适合于数据存储 NAND在CompactFlash SecureDigital PCCards和MMC存储卡市场上所占份额最大 5 软件支持在NOR型FLASH上运行代码不需要任何的软件支持 而在NAND型FLASH上进行同样操作时 通常需要驱动程序 也就是内存技术驱动程序MTD MemoryTechnologyDrivers NAND型和NOR型FLASH在进行写入和擦除操作时都需要MTD 说明 MTD已集成在FLASH芯片内部 它是对FLASH进行操作的接口 29 这里以SST39VF160为例 介绍NOR型FLASH存储器的结构及操作 SST39VF160是SST公司的CMOS多功能FLASH MPF 器件 存储容量为2M字节 16位数据宽度 即一个字为2字节 工作电压为2 7 3 6V SST39VF160由SST特有的高性能SuperFlash技术制造而成 SuperFlash技术提供了固定的擦除和编程时间 与擦除 编程周期数无关 芯片管脚配置如下图所示 三 NOR型Flash存储器 30 SST39VF160管脚描述 NOR型FLASH存储器采用的是SRAM接口 其地址线和数据线是分开的 31 SST39VF160工作模式选择 32 NOR型FLASH存储器容量越来越大 为了方便数据管理 将FLASH划分为块 Block 每个块又分成扇区 Sector SST39VF160的块大小为32K字 扇区大小为2K字 读操作 可以对任何地址的任何字节进行 不受限制 写操作 以字形式进行编程 编程前包含字的扇区必须完全擦除 擦除操作 以扇区 2K 块 32K 或全片为单位进行擦除 擦除后数据变为0 xFF 33 SST39VF160的存储器操作由命令来启动 命令通过标准微处理器写时序写入器件 34 内部操作状态检测 SST39VFl60提供两种软件方式来检测内部操作是否完成 软件检测方式涉及两个状态位 利用数据轮询特性DataPollingbit DQ7 和跳转位特性Togglebit DQ6 在WE的上升沿 写入结束检测功能被使能 同时内部写入或擦除操作也被初始化 这里只介绍Togglebit方式 在内部写入或擦除的过程中 任何对DQ6连续的读操作都会产生一个不断翻转的1和O 当内部写入或擦除完成时 DQ6位将停止翻转 voidWaitfor endofprg void volatileunsignedintold Status now Status old Status volatileunsignedshort 0 x00 从任意地址读出数据while 1 new Status volatileunsignedshort 0 x00 从同一地址读出数据if old Status Ox40 new Status Ox40 比较DQ6位break elseold Status new Status 35 SST39VF160擦除IntSST39VF160 Sectorerase unsignedlongSAaddr writeflash 0 x5555 0 xAA writeflash 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 如需擦除最后一个扇区 Saaddr 0 xFF800即可 芯片共2M空间 所以地址范围0 x00000 0 xfffff0 xff800 0 xfffff为2k的空间 36 SST39VF160写入 IntSST39VF160 wordProg unsignedlongaddr unsignedshortdat writeflash 0 x5555 0 xAA writeflash 0 x2AAA 0 x55 writeflash 0 x5555 0 xA0 writeflash addr dat waitfor endofprg 写入操作是一个字一个字进行的 在需要进行多字 16位 写入时 只要循环调用SST39VF160 wordProg即可 37 四 NandFlash及其控制器 Norflash存储器 读速度高 而擦 写速度低 容量小 价格高 Nandflash存储器 读速度不如Norflash 而擦 写速度高 容量大 价格低 有取代磁盘的趋势 因此 现在不少用户从Nandflash启动和引导系统 而在SDRAM上执行主程序代码 一 NandFlash控制器概述S3C2410X微控制器从Nandflash的引导功能 其内部有一个叫做 起步石 Steppingstone 的SRAM缓冲器 系统启动时 Nandflash存储器的前面4KByte字节将被自动载入到起步石中 然后系统自动执行这些载入的引导代码 引导代码执行完毕后 自动跳转到SDRAM执行 Nandflash操作的校验功能 使用S3C2410X内部硬件ECC功能可以对Nandflash的数据进行有效性的检测 38 二 NandFlash控制器主要特性NandFlash模式 支持读 擦 编程Nandflash存储器 自动导入模式 复位后 引导代码被送入Steppingstone 传送后 引导代码在Steppingstone中执行 具有硬件ECC 纠错码 功能 硬件产生纠错代码 内部4KB的SRAM缓冲器Steppingstone 在Nandflash引导后可以作为其他用途使用 39 NandFlash控制器功能框图 主要由6部分组成引脚信号 CLE 命令锁存R nB 就绪 忙 40 三 NandFlash控制器的寄存器 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 写信号持续时间设置值 0 7 持续时间 HCLK TWRPH0 1 TWRPH1 写信号无效后CLE ALE保持时间设置值 0 7 持续时间 HCLK TWRPH1 1 1 NFCON Flash配置寄存器 42 2 NFCMD Flash命令寄存器 高24位未用 低8位为读入或者写出的数据 3 NFADDR Flash地址寄存器 4 NFDATA Flash数据寄存器 高24位未用 低8位为Flash存储器地址值 43 RnB NandFlash存储器状态位0 存储器忙 1 存储器准备好 5 NFSTAT Flash状态寄存器 6 NFECC Flash错误校正码寄存器 44 四 NandFlash控制器的工作原理1 自动导入启动代码步骤完成复位 如果自动导入模式使能 Nandflash存储器的前面4K字节被自动拷贝到Steppingstone内部缓冲器中 Steppingstone被映射到nGCS0对应的BANK0存储空间 CPU在Steppingstone的4 KB内部缓冲器中开始执行引导代码 注意 在自动导入模式下 不进行ECC检测 因此 Nandflash的前4KB应确保不能有位错误 一般Nandflash厂家都确保 45 2 NandFLASH模式配置通过NFCONF寄存器配置Nandflash 写Nandflash命令到NFCMD寄存器 写Nandflash地址到NFADDR寄存器 在读写数据时 通过NFSTAT寄存器来获得Nandflash的状态信息 应该在读操作前或写入之后检查R nB信号 准备好 忙信号 在读写操作后要查询校验错误代码 对错误进行纠正 46 3 系统引导和NandFLASH配置OM 1 0 00b 使能Nandflash控制器自动导入模式 OM 3 0 为芯片引脚 设置引导模式 存储器bank0的数据宽度 时钟模式等 OM 1 0 01b 10b bank0数据宽度为16位 32位OM 1 0 11b 测试模式Nandflash的存储页面大小应该为512字节 NCON 引脚 Nandflash寻址步骤数选择0 3步寻址 1 4步寻址注 如果NANDFlash的容量是256Mbit以下 那么 blockadress最高位只到bit24 因此寻址只需要3步 47 4 NandFlash操作的校验问题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存储器 存储容量为16M 8Bit 工作电压为2 7 3 6V 528字节的页编程操作时间为200 s 16K字节的块擦除操作时间为2ms 页面的数据以每个字50ns的速度被读出 片内写控制自动实现所有编程和擦除功能 包括脉冲的周期 内部校验和数据冗余 NAND型Flash存储器 49 Flash NAND型Flash存储器 K9F2808U0C的存储空间分为32K页 每一页有 512 16 字节 该寄存器被分为两个区 数据区和空闲区 数据区又可分为上 下两个区 每个区为256字节 空闲区可以用于存放ECC校验和其它校验信息 50 并行Flash NAND型Flash存储器 对K9F2808U0C的操作是通过将特定的指令数据写到芯片指令寄存器中实现 指令与时序的定义如下表所示 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 二 端口寄存器及引脚配置每一个端口都有4个寄存器 它们是 引脚配置寄存器 数据寄存器 引脚上拉寄存器等 54 GPADAT寄存器为准备输出的数据其值为23位 22 0 注意 1 当A口引脚配置为非输出功能时 其输出无意义 2 从引脚输入没有意义 1 端口A寄存器及引脚配置 55 1 端口A寄存器及引脚配置 56 GPBDAT 为准备输出或输入的数据其值为11位 10 0 GPBUP 端口B上拉寄存器 位 10 0 有意义 0 对应引脚设置为上拉1 无上拉功能注意 当B口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 2 端口B寄存器及引脚配置 57 端口B引脚配置寄存器 58 GPCDAT 为准备输出或输入的数据其值为16位 15 0 GPCUP 端口C上拉寄存器 位 15 0 有意义 0 对应引脚设置为上拉1 无上拉功能注意 当C口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 3 端口C寄存器及引脚配置 59 端口C引脚配置寄存器 60 GPDDAT 为准备输出或输入的数据其值为16位 15 0 GPDUP 端口D上拉寄存器 位 15 0 有意义 0 对应引脚设置为上拉1 无上拉功能初始化时 15 12 无上拉功能 而 11 0 有上拉注意 当D口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 4 端口D寄存器及引脚配置 61 端口D引脚配置寄存器 62 GPEDAT 为准备输出或输入的数据其值为16位 15 0 GPEUP 端口E上拉寄存器 位 15 0 有意义 0 对应引脚设置为上拉1 无上拉功能初始化时 各个引脚都有上拉功能 注意 当E口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 5 端口E寄存器及引脚配置 63 端口E引脚配置寄存器 64 GPFDAT 为准备输出或输入的数据其值为8位 7 0 GPFUP 端口F上拉寄存器 位 7 0 有意义 0 对应引脚设置为上拉1 无上拉功能初始化时 各个引脚都有上拉功能 注意 当F口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 6 端口F寄存器及引脚配置 65 端口F引脚配置寄存器 66 GPGDAT 为准备输出或输入的数据其值为16位 15 0 GPGUP 端口G上拉寄存器 位 15 0 有意义 0 对应引脚设置为上拉1 无上拉功能初始化时 15 11 引脚无上拉功能 其它引脚有 注意 当G口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 7 端口G寄存器及引脚配置 67 端口G引脚配置寄存器 LCD PEN POWER ENABLE nSS0 SPI0 SELECT 68 GPHDAT 为准备输出或输入的数据其值为11位 10 0 GPHUP 端口H上拉寄存器 位 10 0 有意义 0 对应引脚设置为上拉1 无上拉功能注意 当H口引脚配置为非输入 输出功能时 其寄存器中的值没有意义 8 端口H寄存器及引脚配置 69 端口H引脚配置寄存器 BACK 程序示例见VIVI中 S3C2410 h 地址映射 smdk2410 h 功能设置值 smdk c 将值写到指定地址 70 9 端口其它控制寄存器 71 nEN SCKE SCLK使能位 在电源关闭模式下对SDRAM做保护0 正常状态1 低电平nEN SCLKx SCLKx使能位 在电源关闭模式下对SDRAM做保护0 SCLKx SCLK1 低电平nRSTCON 对nRSTOUT软件复位控制位0 使nRSTOUT为低 0 1 使nRSTOUT为高 1 1 MISCCR 混合控制寄存器 72 USBSUSPND1 USB端口1模式0 正常1 浮空USBSUSPND0 USB端口0模式0 正常1 浮空CLKSEL1 CLKOUT1引脚输出信号源选择000 MPLLCLK001 UPLLCLK010 FCLK011 HCLK100 PCLK101 DCLK111x 保留CLKSEL0 CLKOUT0引脚输出信号源选择000 MPLLCLK001 UPLLCLK010 FCLK011 HCLK100 PCLK101 DCLK011x 保留 73 USBPAD 与USB连接选择0 与USB设备连接1 与USB主机连接MEM HZ CON MEM高阻控制位0 Hi Z1 前一状态SPUCR L 数据口低16位 15 0 上拉控制位0 上拉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 mDCLK1 0 DIV DCLK1 0 分频值DCLK1 0 frequency sourceclock DCLK1 0 DIV 1 75 2 DCLKCON D时钟控制寄存器 续 DCLK1 0 SelCK DCLK1 0 sourceclock选择0 源时钟选择PCLK1 源时钟选择UCLK USB DCLK1 0 EN DCLK1 0 Enable0 禁止1 允许 76 主要设置各个外中断源的触发方式 滤波 10 外中断控制寄存器 77 EINT0 7 中断请求信号触发方式选择000 低电平触发001 高电平触发01x 下降沿触发10 x 上升沿触发11x 双边沿触发第3 7 11 15 19 23 27 31位 保留 1 EXTINT0 外中断触发方式控制寄存器0 78 EINT8 15 中断请求信号触发方式选择000 低电平触发001 高电平触发01x 下降沿触发10 x 上升沿触发11x 双边沿触发第3 7 11 15 19 23 27 31位 保留 2 EXTINT1 外中断触发方式控制寄存器1 79 EINT16 23 外中断请求信号触发方式选择000 低电平触发001 高电平触发01x 下降沿触发10 x 上升沿触发11x 双边沿触发第3 7 11 15 19 23 27 31位 为FILTEN各引脚滤波控制位0 禁止滤波1 使能滤波 3 EXTINT2 外中断控制寄存器2 80 主要设置各个外中断源的滤波器设置 11 外中断滤波控制寄存器 81 FLTCLK16 19 外中断16 19滤波器时钟选择0 PCLK1 外部 振荡时钟 由OM引脚选择 EINTFLT16 19 外中断16 19滤波器宽度 频带宽度 1 EINTFLT2 外中断滤波控制寄存器2 82 FLTCLK20 23 外中断20 23滤波器时钟选择0 PCLK1 外部 振荡时钟 由OM引脚选择 EINTFLT20 23 外中断20 23滤波器宽度 频带宽度 2 EINTFLT3 外中断滤波控制寄存器3 83 12 外中断屏蔽 标志寄存器 84 外中断屏蔽寄存器 0 允许中断1 禁止中断注意 EINT0 EINT3不能在此被屏蔽 在SRCPND中屏蔽 85 外中断标志寄存器 0 无中断请求1 有中断请求注意 对某位写1 则清除相应标志 即清为0 86 GSTATUS3 4 复位时被清0 其它情况下其数据不变 用户可以用于保存数据 13 外中断状态寄存器 87 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 4UART通用异步串行接口 主要内容概述结构寄存器应用举例 90 一 概述S3C2410的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 依次被移位输出 被接收的数据也同样从接收端口 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部分构成 接收器 发送器 波特率发生器 控制逻辑等 95 接收器 发送器的结构 96 2 工作原理 1 串行口的操作数据帧格式 可编程 包含1个开始位 5到8个数据位 1个可选的奇偶校验位 1个或2个停止位 通过线路控制器 ULCONn 来设置 发送中止信号 迫使串口输出逻辑0 这种状态保持一个传输帧的时间长度 通常在一帧传输数据完整地传输完之后 再通过这个全0状态将中止信号发送给对方 中止信号发送之后 传送数据连续放到FIFO中 在不使用FIFO模式下 将被放到输出保持寄存器 接收器具有错误检测功能 可以检测出溢出错误 奇偶校验错误 帧错误和中止状况 每种情况下都会将一个错误标志在接收状态寄存器置位 97 2 串行口的波特率发生器每个UART的波特率发生器为传输提供了串行移位时钟 波特率产生器的时钟源可以从S3C2410的内部系统时钟PCLK或UCLK中来选择 波特率数值决定于波特率除数寄存器 UBRDIVn 的值 波特率数与UBRDIVn的关系为 UBRDIVn int CLK fB 16 1其中CLK为所选择的时钟频率 fB为波特率 fB CLK 16 UBRDIVn 1 例如 如果波特率为115200bps且PCLK或UCLK为40MHz 则UBRDIVn为 UBRDIVn int 40000000 115200 16 1 int 21 7 1 21 1 20 98 3 串行口波特率误差极限在应用中 实际波特率往往与理想波特率有差别 其误差不能超过一定的范围 其极限为 UART传输10bit数据的时间误差应该小于1 87 3 160 t true UBRDIVn 1 16 10 PCLK实际的传输10bit所需时间t ideal 10 baud rate理想情况下传输10位需要的时间UARTerror t true t ideal t ideal 100 99 4 串行口的自动流控制功能UART0和UART1不仅有完整的握手信号 而且有自动流控制功能 在寄存器UMCONn中设置实现 自动流控制是利用信号nRTS nCTS来实现的 在接收数据时 只要接收FIFO中有两个空字节就会使nRTS有效 使对方发送数据 在发送数据时 只要nCTS有效 就会发送数据 其实现过程如下图所示 nRTS 请求对方发送nCTS 清除请求发送 100 5 使用FIFO进行收发主要是通过对FIFO状态寄存器UFSTATn的查询 确定进行收发 使用FIFO进行发送 1 选择发送模式 中断或者DMA模式 2 查询对方是否有请求发送要求 由MODEM状态寄存器UMSTATn 0 给出 该位为1 则有请求 再查询FIFO状态寄存器UFSTATn的数据满状态位是否为1 如果不是1 可以向发送缓冲寄存器UTXHn写入发送的数据 上面二者有一个或者两个都不满足 则不发送数据 使用FIFO进行接收 请求发送 1 选择接收模式 中断或者DMA模式 2 请求发送 先要查询FIFO状态寄存器UFSTATn的数据满状态位是否为1 如果不是1 则可以向对方发出 请求发送信号 对MODEM控制寄存器MCONn中的请求发送信号产生位置1 使UARTn发出nRTS信号 如果UFSTATn的数据满状态位是1 则不能够请求发送数据 101 6 不使用FIFO进行收发主要是通过对收 发状态寄存器UTRSTATn的查询 确定进行收发 数据发送 1 选择发送模式 中断或者DMA模式 2 查询对方是否有请求发送要求 由MODEM状态寄存器UMSTATn 0 给出 该位为1 则有请求 再查询发送 接收状态寄存器UTRSTATn 1 的 发送缓冲器空 状态位是否为1 如果是1 可以向发送缓冲寄存器UTXHn写入发送的数据 数据接收 请求发送 1 选择接收模式 中断或者DMA模式 2 请求发送 先要查询发送 接收状态寄存器UTRSTATn 0 的接收缓冲器 数据就绪状态位 是否为1 如果是1 需要先读取数据 然后再请求对方发送数据 方法是对MODEM控制寄存器MCONn中的请求发送信号产生位置1 使UARTn发出nRTS信号 如果UFSTATn的数据满状态位是1 则不能够请求发送数据 102 7 中断或DMA请求每个UART都有3类 7种事件产生中断请求或者DMA请求 7种中断请求事件是 溢出错误 奇偶校验错误 帧格式错误 传输中断信号 接收缓冲器数据就绪 发送缓冲器空 发送移位器空 它们可以分成3类 错误中断请求 接收中断请求 发送中断请求 接收中断 非FIFO模式 当接收缓冲寄存器收到数据后 产生中断请求 FIFO模式 RxFIFO中数据的数目达到了触发中断的水平 或者超时 在三帧时间内未收到任何数据 均产生中断请求 发送中断 非FIFO模式 当发送缓冲器空时 产生中断请求 FIFO模式 TxFIFO中数据的数目达到了触发中断的水平 103 错误中断 一共有4种错误中断 溢出错误 奇偶检验错误 帧格式错误 传输中断信号错误 说明 1 对于 奇偶校验错误 帧格式错误 传输中断信号错误 中断 在数据接收时就产生了 但是在数据接收产生时并非出现中断请求 而是在读出错误数据时才出现中断请求 2 如果设置的是DMA模式 而不是中断请求模式 对于以上所出现的中断请求 应该是DMA请求 3 传输中断信号定义 在超出一帧的时间内 全部输出低电平 104 8 循环检测模式S3C2410X的每一个UART都提供有检测功能 它是一种数据循环流动的自发 自收方式 数据从发送缓冲器传送到TXD 数据不经过引脚输出 在内部将数据传到接收引脚RXD 再传输到接收缓冲器 105 三 UART专用寄存器3个UART 每个都有11个专用寄存器 共31个寄存器 UART2无MODEM寄存器 NEXT 106 1 线路控制寄存器 ULCON back 107 2 控制寄存器 UCON 108 2 控制寄存器 UCON back 109 3 FIFO控制寄存器 UFCON 110 3 FIFO控制寄存器 back 111 4 MODEM控制寄存器 UMCON back 112 5 发送 接收状态寄存器 UTRSTAT back 113 6 Rx错误状态寄存器 UERSTAT back 114 7 FIFO状态寄存器 UFSTAT back 115 8 MODEM状态寄存器 UMSTAT back 116 9 发送缓冲寄存器 UTxH back 117 10 接收缓冲寄存器 URxH back 118 11 波特率除数寄存器 UBRDIV back 119 四 UART应用举例例1 编写一程序 使用S3C2410X的UART2进行串行数据收发 要求用脉冲请求中断的方式 使用收 发FIFO 8个数据位 1个停止位 不校验 波特率为125kb s 设Pclk为50MHz 提示 主程序对UART2初始化 引脚配置 中断初始化等 并进行一次发送 中断服务程序进行数据收发 标签清除中断请求标志和中断服务标志 解 1 计算波特率除数 由公式 UBRDIVn int CLK fB 16 1这里 Pclk 50MHz fB 125kb s计算得 UBRDIVn 25 1 24 2 UART2控制寄存器 线路控制寄存器 ULCON2 00000011 0 x03含义 非红外 不校验 1个停止位 8个数据位 120 控制寄存器 UCON2 0b00000000101 0 x05含义 选Pclk 发 收中断脉冲请求 关闭接收超时中断 允许接收错误中断 不回送 不发送暂停信号 发 收用中断方式 FIFO控制寄存器 UFCON2 0b10010001 0 x91含义 发 收FIFO选8字节触发 保留位为0 不复位发 收FIFO 使能FIFO 3 引脚配置需要设置TxD2 RxD2 它们对应GPH6 GPH7 在GPH配置寄存器GPHCON中的位置为 0b1010 方法 GPHCON GPHCON 0 xF 12 0 xA 12 121 4 中断寄存器设置中断模式寄存器 INTMOD 1 15 INT UART2位于第15位 将UART2设置为IRQ中断中断屏蔽寄存器 INTMSK 1 15 中断优先级寄存器PRIORITY 不设置 使用固定优先级 子中断屏蔽寄存器 INTSUBMSK 7 6 INT ERR2 INT TXD2 INT RXD2位于子中断屏蔽寄存器中的8 7 6位 5 在中断服务程序中对寄存器的操作清除中断标志寄存器相应位 SRCPND 1 15 清除中断服务寄存器相应位 INTPND 1 15 122 例2 S3C2410的UART的应用 1 电路接口和I O口设置S3C2410的串行应用接口占用H端口中的PH7 PH6 PH5 PH4 PH3 PH2多功能I O口 因此 在编写串口数据收发程序之前 首先需要对PH口的工作模式进行设置 rGPHCON 0 x00000FAAA rPCONH 设置内部上拉端口初始化 smdk2410 h 123 S3C2410的UART的应用 2 UART初始化smdk2410 h所有寄存器映射的存储器地址在s3c2410 h中对UART口的可配置参数进行初始化 使其能够按照所要求的通讯方式进行通讯 3 字符发送程序Uart SendByten 4 字符接收程序Uart Getchn 5 应用程序 BACK 124 5 5I2C IIC 串行总线接口 主要内容1 概述2 结构与工作原理3 寄存器4 应用方法5 IIC应用举例 125 一 概述IIC总线的产生和应用 IIC总线是PHILIPS公司开发的一种串行总线 IIC总线应用越来越广泛 现在在很多器件上都配置有IIC总线接口 如EEPROM 时钟芯片等 IIC总线信号 为两线 双向传输的数据线SDA 双向传输的时钟线SCL 是信号线最少的串行总线 S3C2410的IIC总线的特点 1 有一个IIC总线接口 2 IIC总线的速度 可以标准速度传输 100kb s 也可以高速传输 高达400kb s 3 可以查询方式和中断方式工作 4 可以主设备身份传输 也可以从设备身份传输 因此共有4种操作模式 主机发送模式 主机接收模式从机发送模式 从机接收模式 126 1 IIC总线系统组成IIC总线是多主系统 系统可以有多个IIC节点设备组成 并且可以是多主系统 任何一个设备都可以为主IIC 但是任一时刻只能有一个主IIC设备 IIC具有总线仲裁功能 保证系统正确运行 主IIC设备发出时钟信号 地址信号和控制信号 选择通信的从IIC设备和控制收发 系统要求 1 各个节点设备必须具有IIC接口功能 2 各个节点设备必须共地 3 两个信号线必须接上拉电阻 如下图所示 二 S3C2410的IIC结构与工作原理 127 电气连接 I2C总线接口均为开漏或开集电极输出 因此需要为总线增加上拉电阻Rp 总线速率越高 总线上拉电阻就越小 100Kbit s总线速率 通常使用5 1K欧姆的上拉电阻 128 2 IIC总线的工作原理 1 IIC总线对数据线上信号的定义 1 总线空闲状态 时钟信号线和数据信号线均为高电平 2 起始信号 即启动一次传输 时钟信号线是高电平时 数据信号线由高变低 3 停止信号 即结束一次传输 时钟信号线是高电平时 数据信号线由低变高 129 4 数据位信号 时钟信号线是低电平时 可以改变数据信号线电位 时钟信号线是高电平时 应保持数据信号线上电位不变 5 应答信号 占1位 数据接收者接收1字节数据后 应向数据发出者发送一应答信号 低电平为应答 继续发送 高电平为非应答 结束发送 6 控制位信号 占1位 主IIC设备发出的读写控制信号 高为读 低为写 对主IIC设备而言 控制位在寻址字节中 130 7 地址信号 为从机地址 占7位 如下表所示 称之为 寻址字节 各字段含义如下 器件地址 DA3 DA0 是IIC总线接口器件固有的地址编码 由器件生产厂家给定 如IIC总线EEPROMAT24C 的器件地址为1010等 引脚地址 A2 A1 A0 由IIC总线接口器件的地址引脚A2 A1 A0的高低来确定 接电源者为1 接地者为0 读写控制位 R W 1表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论