嵌入式系统及应用——基于ARM的嵌入式系统外网硬件设计课件.ppt
73页1 电子与信息工程系第三章基于ARM的嵌入式系统外围硬件设计2 电子与信息工程系核心内容•嵌入式处理器系统硬件设计•嵌入式存储器系统设计 •外围通讯接口设计 3 电子与信息工程系3.1 嵌入式处理器系统硬件设计•芯片选型原则 •电源模块设计 •时钟模块设计 •复位电路设计 4 电子与信息工程系一、芯片选型原则 ①①ARM微处理器内核的选择微处理器内核的选择②②系统的工作频率系统的工作频率 ③③芯片内存储器的容量芯片内存储器的容量 ④④片内外围电路的选择片内外围电路的选择 5 电子与信息工程系二、电源模块设计 S3C2410X的电源引脚主要有:lVDDalive引脚给处理器复位模块和端口寄存器提供1.8V电压;lVDDi和VDDiarm为处理器内核提供1.8V电压;lVDDi_MPLL为MPLL提供1.8V模拟电源和数字电源;lVDDi_UPLL为UPLL提供1.8V模拟电源和数字电源;lVDDOP和VDDMOP分别为处理器端口和处理器存储器端口提供3.3V电压;lVDDA_ADC为处理器内的ADC系统提供3.3V电压;lVDDRTC为时钟电路提供1.8V电压,该电压在系统掉电后仍需维持。
6 电子与信息工程系7 电子与信息工程系三、时钟模块设计 ①①时钟管理模块时钟管理模块l时钟管理模块为各个外围模块提供时钟,在不使用某个单元时关闭其时钟以降低功耗l主时钟来源可以使用外部的晶振或外部时钟l时钟发生器有一个振荡器(振荡放大)连接到外部的晶体上lARM微处理器内核中有一个可控频率的时钟源PLL把低频振荡器的输出作为自己的输入,产生所需的高频信号l时钟发生模块有一个逻辑电路,用来在复位后或各种模式下产生稳定的时钟频率其他的时钟均来自核内部的PLL8 电子与信息工程系②②晶振电路设计晶振电路设计 S3C2410X的时钟模式 OM3OM2S10-5S10-4S10-1时钟模式时钟模式00ONONONMPLL:晶振 UPLL:晶振01ONOFFOFFMPLL:晶振 UPLL:时钟10OFFONOFFMPLL:时钟 UPLL:晶振11OFFOFFOFFMPLL:时钟 UPLL:时钟9 电子与信息工程系外部晶振电路 10 电子与信息工程系四、复位电路设计 l硬件复位(RESET 引脚)lWatchdog软件复位11 电子与信息工程系系统复位电路 12 电子与信息工程系3.2 嵌入式存储器系统设计 •Flash接口电路设计 •SDRAM接口电路设计 13 电子与信息工程系存储器的分类在复杂的嵌入式系统中,存储器系统的组织结构按作用可以划分为4级:寄存器、cache、主存储器和辅助存储器,如下图所示。
当然,对于简单的嵌入式系统来说,没有必要把存储器系统设计成4级,最简单的只需寄存器和主存储器即可辅助存储器主存储器cache寄存器14 电子与信息工程系 存储器根据其存取方式分成两类:随机存储器(RAM)和只读存储器(ROM)RAM是易失性存储器,ROM是非易失性存储器 随机存储器又分为两大类: ·静态随机存储器(SRAM) ·动态随机存储器(DRAM) 15 电子与信息工程系 •只读存储器(ROM)通常又分成EPROM、EEPROM和闪存(Flash)目前,闪存作为只读存储器在嵌入式系统中被大量采用,闪存使用标准电压既可擦写和编程,因此,闪存在标准电压的系统内就可进行编程写入 •NOR和NAND是现在市场上两种主要的非易失闪存技术 16 电子与信息工程系NAND Flash和NOR Flash比较•1988年,Intel首先开发出NOR Flash技术;•1989年,东芝公司发表了NAND Flash结构的存储器。
NAND Flash和NOR Flash比较,有以下特点:ØNOR Flash的读取速度比NAND Flash稍快一些,NAND Flash的擦除和写入速度比NOR Flash快很多ØFlash芯片在写入操作时,需要先进行擦除操作NAND Flash的擦除单元更小,因此相应的擦除电路更少 17 电子与信息工程系 Ø接口方面它们也有差别,NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节,可以像其他SRAM存储器那样与微处理器连接;NAND Flash器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法还各不相同,因此,与微处理器的接口复杂ØNAND Flash读和写操作采用512字节的块,这一点类似硬盘管理操作,很自然地,基于NAND Flash的存储器就可以取代硬盘或其他块设备18 电子与信息工程系存储系统地址分配方法存储系统地址分配方法微处理器与随机存储器接口的信号线一般有:•片片选选信信号号线线CECE 用于选中该芯片。
若CE=0时,该芯片的数据引脚被启用;若CE=1时,该芯片的数据引脚被禁止,对外呈高阻状态•读读/ /写写控控制制信信号号线线 控制芯片数据引脚的传送方向若是读有效,则数据引脚的方向是向外的,CPU从其存储单元读出数据;若是写有效,则数据引脚的方向是向内的,CPU向其存储单元写入数据 •地地址址线线 用于指明读/写单元的地址地址线是多根,应与芯片内部的存储容量相匹配 •数据线数据线 双向信号线,用于数据交换数据线上的数据传送方向由读/写控制信号线控制 19 电子与信息工程系一个典型的微处理器与SRAM存储器接口电路如图所示 CPUSRAMCE (片选)读/写地址数据20 电子与信息工程系动态随机存储器的接口 DRAM中的存储单元内容在通电状态下随着时间的推移会丢失,因而,其存储单元需要定期的刷新CPU与其接口的信号线除了有与SRAM相同的信号线外,还有RAS(行地址选择)信号线和CAS(列地址选择)信号线。
需要这些信号的原因是可以减少芯片地址引脚数(这样只需要一半地址引脚),并且方便刷新操作 21 电子与信息工程系S3C2410S3C2410的存储系统的存储系统•S3C2410芯片采用的是ARM920T核,地址空间总共为4GB,其中,1GB地址空间用于支持外部存储器的连接,另外的空间有一小部分用于I/O端口或部件的寻址,其他的地址空间没有用到 •S3C2410芯片外部可寻址的存储空间是1GB,被分成8个存储块,每块128MB22 电子与信息工程系S3C2410存储空间分配图 23 电子与信息工程系S3C2410存储空间说明0号存储块可以外接SRAM类型的存储器或者具有SRAM接口特性的ROM存储器(如NOR Flash),其数据总线宽度应设定为16位或32位中的一种当0号存储块作为ROM区,完成引导装入工作时(从0x00000000启动),0号存储块的总线宽度应在第一次访问ROM前根据OM1、OM0在复位时的逻辑组合来确定 24 电子与信息工程系OM1、OM0逻辑组合的作用 OM1OM0引导ROM数据的宽度00NAND Flash 模式0116位1032位11测试模式25 电子与信息工程系 •1号存储块到5号存储块也可以外接SRAM类型的存储器或者具有SRAM接口特性的ROM存储器(如NOR Flash),其数据总线宽度应设定为8位、16位或32位。
•6号存储块、7号存储块可以外接SDRAM类型的存储器,它们的块容量可改变,且7号存储块的起始地址也可改变 26 电子与信息工程系NOR Flash接口电路设计SST39LV160是一款常见的NOR Flash存储器:•单片存储容量为16M位•工作电压为2.7V~3.6V•采用TSOP-48或TFBGA-48封装•16位数据宽度•仅需3.3V电压即可完成在系统的编程与擦除操作27 电子与信息工程系引引 脚脚类型类型描描 述述A[19:0] I 地址总线在字节模式下,DQ[15]/A[-1]用作21位字节地址的最低位 DQ[15]/A[-1] I/O 数据总线在读写操作时提供8位或16位的数据宽度在字节模式下,DQ[15]/A[-1]用作21位字节地址的最低位,而DQ[14:8]处于高阻状态 DQ[14:0] 三态 BYTE# I 模式选择低电平选择字节模式,高电平选择字模式 CE# I 片选信号,低电平有效。
在对SST39LV160进行读写操作时,该引脚必须为低电平,当为高电平时,芯片处于高阻旁路状态 OE# I 输出使能,低电平有效在读操作时有效,写操作时无效 WE# I 写使能,低电平有效在对SST39LV160进行编程和擦除操作时,控制相应的写命令 RESET# I 硬件复位,低电平有效对SST39LV160进行硬件复位当复位时,SST39LV160立即终止正在进行的操作 RY/BY# O 就绪/忙 状态指示用于指示写或擦除操作是否完成当SST39LV160正在进行编程或擦除操作时,该引脚位低电平,操作完成时为高电平,此时可读取内部的数据 VCC -- 3.3V电源 VSS -- 接地 28 电子与信息工程系29 电子与信息工程系NAND Flash 接口电路设计接口电路设计 以K9F1208为例:•存储容量为64M字节•数据总线宽度为8位•工作电压为2.7V~3.6V•采用TSOP48封装•仅需要3.3V电压便可完成在系统的编程与擦除操作 30 电子与信息工程系引引 脚脚描描 述述I/O[7:0]数据输入输出、控制命令和地址的输入CLE命令锁存信号ALE地址锁存信号CE#芯片使能信号RE#读有效信号 WE#写有效信号WP# 写保护信号 R/nB就绪/忙标志信号VCC 2.7V~3.3V电源 VSS 接地 31 电子与信息工程系32 电子与信息工程系SDRAM接口电路设计 •存储容量为4组×16M位(8M字节)•工作电压为3.3V•常见封装为54脚TSOP•兼容LVTTL接口•支持自动刷新和自刷新•16位数据宽度以HY57V641620为例 33 电子与信息工程系引引 脚脚 名称名称 描描 述述CLK 时钟 芯片时钟输入。
CKE 时钟使能 片内时钟信号控制 /CS 片选 禁止或使能除CLK、CKE和DQM外的所有输入信号 BA0,BA1 组地址选择 用于片内4个组的选择 A12~A0 地址总线 行地址:A12~A0,列地址:A8~A0 /RAS行地址锁存时钟沿和/RAS有效时锁存行地址,允许行的访问和改写/CAS列地址锁存时钟沿和/CAS有效时锁存列地址,允许列的访问/WE 写使能 使能写信号和允许列改写,/WE和/CAS有效时开始锁存数据LDQ,UDQM 数据I/O屏蔽 在读模式下控制输出缓冲;在写模式下屏蔽输入数据 DQ15~DQ0 数据总线 数据输入输出引脚 VDD/VSS 电源/地 内部电路及输入缓冲电源/地 VDDQ/VSSQ 电源/地 输出缓冲电源/地 NC 未连接 未连接 34 电子与信息工程系35 电子与信息工程系3.3 UART串行接口 RS232-C标准通常采用的接口是9芯D型插头,以常用的9芯D型插头为例 36 电子与信息工程系引引 脚脚 名名 称称 功功 能能 描描 述述 1DCD 数据载波检测 2RXD 数据接收 3TXD 数据发送 4DTR 数据终端准备好 5GND 地 6DSR 数据设备准备好 7RTS 请求发送 8CTS 清除发送 9RI振铃指示37 电子与信息工程系RS-232C接口电路接口电路 38 电子与信息工程系3.4 JTAG电路以及调试方式 JTAG引脚定义:TCK——测试时钟输入;TDI——测试数据输入,数据通过TDI输入JTAG口;TDO——测试数据输出,数据通过TDO从JTAG口输出;TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式;可选引脚TRST——测试复位,输入引脚,低电平有效。
39 电子与信息工程系14针针JTAG接口引脚接口引脚 40 电子与信息工程系引引 脚脚 名名 称称 描描 述述 1、13 VCC 接电源 2、4、6、8、10、14 GND 接地 3nTRST 测试系统复位信号 5TDI 测试数据串行输入 7TMS 测试模式选择 9TCK 测试时钟 11TDO 测试数据串行输出 12NC 未连接 41 电子与信息工程系20针针JTAG接口引脚接口引脚 42 电子与信息工程系引脚引脚名称名称描述描述1VTref目标板参考电压,接电源2VCC接电源3nTRST测试系统复位信号4、6、8、10、12、14、16、18、20GND接地5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11RTCK测试时钟返回信号13TDO测试数据串行输出15nRESET目标系统复位信号17、19NC未连接43 电子与信息工程系JTAG接口电路接口电路 44 电子与信息工程系定时控制部件定时器或计数器的逻辑电路本质上是相同的,它们之间的区别主要在用途上。
它们都是主要由带有保存当前值的寄存器和当前寄存器值加1或减1逻辑组成在应用时,定时器的计数信号是由内部的、周期性的时钟信号承担,以便产生具有固定时间间隔的脉冲信号,实现定时的功能而计数器的计数信号是由非周期性的信号承担,通常是外部事件产生的脉冲信号,以便对外部事件发生的次数进行计数因为同样的逻辑电路可用于这两个目的,所以该功能部件通常被称为“定时/计数器” 45 电子与信息工程系 定时/计数器内部工作原理图是以一个N位的加1或减1计数器为核心,计数器的初始值由初始化编程设置,计数脉冲的来源有两类:系统时钟和外部事件脉冲 系统时钟M分频外部事件脉冲N位计数器=046 电子与信息工程系看门狗定时器S3C2410芯片看门狗定时器的作用是,当系统程序出现功能错乱,引起系统程序死循环时,能中断该系统程序的不正常运行,恢复系统程序的正常运行47 电子与信息工程系RTC部件•实时时钟部件RTC是用于提供年、月、日、时、分、秒、星期等实时时间信息的定时部件。
•RTC部件可以将年、月、日、时、分、秒、星期等信息的8位数据以BCD码格式输出它由外部时钟驱动工作,外部时钟频率为32.768 kHz晶体同时RTC部件还可以具有报警功能 48 电子与信息工程系主要特点•年、月、日、时、分、秒、星期等信息采用BCD码表示•闰年发生器•具有报警功能,能提供报警中断或者系统在节电模式下的唤醒•拥有独立的电源引脚(RTCVDD)•支持RTOS内核时间片所需的毫秒计时中断•进位复位功能49 电子与信息工程系 •RTC的时间片计时器用于产生一个中断请求,TICNT 寄存器有一个中断使能位,和计数器中的值一起用来控制中断当计数器的值变为0时,引起时间片计时中断中断信号的周期用下列公式计算:•周期=( n + 1 )/128s 50 电子与信息工程系 预分频器的值和频率分解因子可由看门狗定时器的控制寄存器(WTCON)进行编程设定。
预分频器值的可选范围是: 0~28-1频率分割因子可选择的值为16,32,64,128使用下面公式来计算看门狗定时器的计数时钟周期:计数时钟周期 = 1/ (PCLK / (预分频器值 + 1) / 分割因子)51 电子与信息工程系I/OI/O接口接口•嵌入式系统的硬件平台是由微处理器(或微控制器)、存储器、I/O端口及设备组成I/O接口部件是嵌入式系统的关键组成部分•控制I/O接口部件的方式主要有:程序查询、中断控制、DMA方式 等•中断技术主要是用于I/O接口部件与微处理器之间进行数据传输的控制,它协调了数据传输的双方的步调52 电子与信息工程系S3C2410S3C2410的的I/OI/O接口接口S3C2410芯片共有117个输入/输出引脚,分属于8个I/O端口这8个I/O端口均为多功能端口,端口功能可以编程设置8个I/O端口是: •端口A (GPA):有23条输出引脚的端口•端口B (GPB):有11条输入/输出引脚的端口。
•端口C (GPC):有16条输入/输出引脚的端口•端口D (GPD):有16条输入/输出引脚的端口•端口E (GPE):有16条输入/输出引脚的端口•端口F (GPF):有8条输入/输出引脚的端口•·端口G (GPG):有16条输入/输出引脚的端口•端口H (GPH):有11条输入/输出引脚的端口 53 电子与信息工程系端口功能定义•S3C2410芯片的每个I/O端口均是多功能的 •上8个I/O端口根据系统配置和设计的不同需求,设计者可以选择这些I/O端口的功能若选定某个I/O端口的功能,设计者应在主程序运行之前编程设置对应的控制寄存器,从而选定所需I/O端口的功能如果某个I/O引脚不用于特定功能的话,那么该引脚就可以设置为普通的输入/输出引脚 54 电子与信息工程系 •每个端口(除了A口)均有3个寄存器用于控制其操作,一个是端口控制寄存器,用于设置其每个引脚的功能;一个是数据寄存器,用于作为普通输入/输出功能时的数据存储器;再一个是上拉控制寄存器,控制该端口的引脚是否需要接上拉电阻。
55 电子与信息工程系实例使用端口E、端口F作为普通I/O接口用,其中端口E的GPE3位输出控制一个LED指示灯、GPE4位输出控制一个蜂鸣器56 电子与信息工程系 程序代码如下:#include "reg2410.h"#include "isr.h"//**端口E的GPE4用作蜂鸣器输出控制端,//宏定义蜂鸣器的开、关,高电平为鸣叫#define beepon() {rGPEDAT =rGPEDAT |0x0010;}#define beepoff() {rGPEDAT =rGPEDAT &0xffef;}//**端口E的GPE3用作LED输出控制端,//宏定义LED的亮、灭,低电平为亮#define ledlight() {rGPEDAT =rGPEDAT &0xfff7;}#define ledclear() {rGPEDAT =rGPEDAT |0x0008;}//*****************************************************//**函数名:Main()//**参 数:无//**返回值:无//*****************************************************57 电子与信息工程系 void Main(void){ INT16U temp; //**定义变量用来判断并口输入是否有变化 INT8U oldportf=0xff,newportf; //**初始化端口E,使GPE4、GPE3为输出 rGPECON=((rGPECON|0x00000140)&0xfffffd7f); beepoff() ; //关蜂鸣器 rGPFCON=rGPFCON&0x0000; //**初始化端口F,使所有位均为输入newportf= rGPFDAT; //**读端口F,用于判断输入的变化 while(1) { //**若端口F的引脚上有一位是低电平时,则蜂鸣器发声,LED指示灯亮if(newportf!=oldportf) { ledlight(); beepon(); Delay(3000); beepoff(); ledclear(); }}}58 电子与信息工程系S3C2410的I2C接口•I2C总线是嵌入式系统中常用的网络接口,它常用于将微控制器链接到系统的总线,其通信方式采用串行数据传送,可以达到100kb/s的数据速率。
是一种易实现、低成本、中速的嵌入式网络 •I2C总线协议包含了2层协议:物理层和数据链路层 59 电子与信息工程系 I2C总线只使用了两条信号线:•串行数据线(SDA)用于数据的发送和接收,•串行时钟线(SCL)用于指示什么时候数据线上是有效数据即数据同步60 电子与信息工程系 下图是一个典型的I2C总线网络物理连接结构网络中的每一个节点都被连接到SCL和SDA信号线上,需要某些节点起到总线主控器的作用,总线上可以有多个主控器其它节点响应总线主控器的请求,是总线受控器 主控器1主控器2受控器2受控器161 电子与信息工程系 标准中没有规定逻辑“0”和“1”所使用电压的高低,因而双极性电路或MOS电路都能够连接到总线上所有的总线信号使用开放集电极或开放漏电极电路通过一个上拉电阻使信号的默认状态保持为高电平,当传输逻辑“0”时,每一条总线所接的晶体管起到下拉该信号电平的作用。
开放集电极或开放漏极信号允许一些设备同时写总线而不引起电路故障62 电子与信息工程系数据链路层每一个链接到I2C总线上的设备都有唯一的地址设备的地址都由系统设计者决定的,通常是I2C驱动程序的一部分在标准的I2C总线定义中,设备地址是7位二进制(扩展的I2C总线允许10位地址)地址0000000B一般用于发出通用呼叫或总线广播,总线广播可以同时给总线上所有的设备发出信号地址11110XXB为10位地址机制保留,还有一些其他的保留地址 63 电子与信息工程系 总线事务由一个开始信号启动,以一个结束信号完成,描述如下:•开始信号通过保留SCL信号线为高电平,并且在SDA信号线上发送1到0的转换产生•结束信号通过设置SCL信号线为高电平,并且在SDA信号线上发送0到1的转换产生64 电子与信息工程系 •S3C2410芯片支持I2C总线序列接口,其端口E的GPE15用作数据线 (SDA),GPE14用作连续时钟线 (SCL)。
这2根信号线用于在S3C2410芯片内部的总线主控器和连接到I2C总线上的外围设备之间传输信息,此数据线和连续时钟线均是双向的•当I2C总线空闲时,GPE15引脚(SDA信号线)和GPE14引脚(SCL信号线)都应该设置为高电平GPE15引脚从高电平转换到低电平时,启动一个传输当GPE14保持在高电平时,GPE15引脚从低电平转换到高电平则表示传输结束65 电子与信息工程系I2CI2C总线实例总线实例主控传送模式的流程:下图中,主控传送程序完成对相关专用寄存器配置后,即可向IICDS寄存器中写入数据,一旦数据写入IICDS,即启动I2C总线主控传送(向IICSTAT寄存器写入0xF0)传送完一个字节后,判断ACK信号若ACK信号之后还有数据要传送,则循环写入新数据到IICDS寄存器中若没有新数据要传送时,则向IICSTAT寄存器中写入0xD0,发出结束信号,从而结束I2C总线主控传送66 电子与信息工程系 67 电子与信息工程系 从属传送模式的流程:下图中,从属传送程序完成对相关配置为从属发送模式后,则要检测开始信号,若检测到开始信号,则通过IICDS寄存器接收8位地址,然后进行从属地址比较。
一旦接收到的地址与IICADD寄存器中的地址匹配,即可把数据写入IICDS,即启动I2C总线从属传送传送完一个字节后,判断是否有终止信号,有则结束68 电子与信息工程系 69 电子与信息工程系 主控接收模式的流程:下图中,主控接收程序完成对相关专用寄存器配置后,即应向IICDS寄存器中写入从属地址,并向IICSTAT寄存器中写入0xB0,即设置主控接收模式并发出启动信号,随后传送IICDS寄存器中的数据(即从属地址),判断ACK信号若ACK信号之后还有数据要接收,则循环接收新数据到IICDS寄存器中若没有新数据要接收时,则向IICSTAT寄存器中写入0x90,发出结束信号,从而结束I2C总线主控接收70 电子与信息工程系 71 电子与信息工程系 从属接收模式的流程:下图中,从属接收程序完成对相关配置为从属接收模式后,则要检测开始信号,若检测到开始信号,则通过IICDS寄存器接收8位地址,然后进行从属地址比较。
一旦接收到的地址与IICADD寄存器中的地址匹配,即可把数据从IICDS寄存器中读出,接收完一个字节后,判断是否有终止信号,有则结束 72 电子与信息工程系 73 电子与信息工程系本章结束!本章结束! 。





