嵌入式系统开发3s3c2410主要外设功能部

上传人:san****019 文档编号:69735055 上传时间:2019-01-14 格式:PPT 页数:75 大小:8.91MB
返回 下载 相关 举报
嵌入式系统开发3s3c2410主要外设功能部_第1页
第1页 / 共75页
嵌入式系统开发3s3c2410主要外设功能部_第2页
第2页 / 共75页
嵌入式系统开发3s3c2410主要外设功能部_第3页
第3页 / 共75页
嵌入式系统开发3s3c2410主要外设功能部_第4页
第4页 / 共75页
嵌入式系统开发3s3c2410主要外设功能部_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《嵌入式系统开发3s3c2410主要外设功能部》由会员分享,可在线阅读,更多相关《嵌入式系统开发3s3c2410主要外设功能部(75页珍藏版)》请在金锄头文库上搜索。

1、第三章 S3C2410主要外设功能部件,ARM汇编指令 UART异步串口通信 通用I/O端口 Nand Flash控制器 NOR Flash接口电路,1. ARM汇编指令,加载/存储指令,LDR:LDR条件目的寄存器, 用于将存储器中的一个32位的字数据传送到目的寄存器中;常用于从存储器中读取32为的字数据到通用寄存器。 ldr r0,=rPCONE /寄存器地址存放到通用寄存器中,STR:STR条件源寄存器, 用于从源寄存器中将一个32位的字数据传送到存储器中。 ldr r0,UARTADD str r1,r0 /向UART中存入数据,数据处理指令,MOV:MOV条件S目的寄存器,源操作数

2、用于完成从另一个寄存器、被移位的寄存器或将一个立即数加载到目的寄存器;S项决定指令的操作是否影响CPSR中条件标志位的值,当无S时,指令不更新CPRS中条件标志位的值。 mov r9,r2 movs r0,#oxFF00,CMP:CMP条件 操作数1,操作数2 用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比较,同时更新CPSR中条件标志位的值。该指令只进行一次减法运算,但不存储结果,只更改条件标准位。 cmp r0,#oxFF00,跳转指令 用于实现程序流程的跳转;可以完成从当前指令向前或向后的32MB地址空间的跳转;(超过要使用直接向程序计数器PC写入跳转地址值的方式)。 B 跳转

3、指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令,WAKEUP_SLEEP ;Release SCLKn after wake-up from the SLEEP mode. ldr r1,=MISCCR ldr r0,r1 bic r0,r0,#(717) str r0,r1 ;Set memory control registers ldr r0,=SMRDATA ldr r1,=BWSCON ;BWSCON Address add r2, r0, #52 ;End address of SMRDATA ldr r3, r0, #4 str r3

4、, r1, #4 cmp r2, r0 bne %B0 ;(Before to lable 0),2. UART异步串口通信,UART与RS232、RS485之间的联系与区别,计算机史前 RS232 DB25 同步和异步 个人计算机 RS232 DB9(小型) 异步 IBM PC RS232 DB9 完整的定义 PC时代 整合RS232和非RS232串口的UART NB时代 USB和1394取代UART 后PC时代 USB3.0、SATA,串口、并口之争,UART TTL电平 3.3V 正逻辑 RS232 +5+12为低,-12-5为高 负逻辑 RS485 +2+6为高,-2-6为低 正逻辑

5、电平为线间压差、10Mbps、3000m MAX232、MAX485,UART异步串口的传输格式:,以字符为传输单位 字符间的时间间隔不定,字符内的时间间隔固定 空闲位、起始位、资料位、奇偶校验位、停止位,UART通信时序图,开始前,空闲状态,送出连续“1”; 传送开始,发出“0”,然后是发送字符; 字符长度可以约定,ASCII编码; 字符最后一位之后添加奇偶校验(可选); 完毕后,发送停止位“1”信号,宽度约定; 进入空闲状态,送出连续“1”,UART通信过程:,S3C2410的UART控制器:,3个独立的异步串行I/O端口; 具有中断和DMA两种模式; 最高支持速率115.2Kpbs; 每

6、个通道包含2个16位FIFO寄存器; 可编程的波特率、红外收发模式; UART Ch 0 and 1 with nRTS0, nCTS0, nRTS1, and nCTS1 每个UART包含波特率发生器、接收器、发送器和控制单元,波特率发生器:,为传输提供串行移位时钟; 其时钟源从内部系统或UCLK中选择; 波特率由时钟源16分频和波特率除数寄存器(UBRDIVn)指定的16位除数决定。,UBRDIVn = (int)(PCLK/(bps x 16) ) -1,UBRDIVn = (int)(40000000/(115200 x 16) -1 = (int)(21.7) -1 = 21 -1

7、= 20,自动流控(Auto Flow Control):,通过RTS和CTS信号实现; 只有当CTS有效时,UART将FIFO中的数据发出; 只要接收FIFO至少2B空余时,RTS就会被置为有效。,UART异步串口的软硬件应用:,硬件电路图:,Max202芯片相关信息,相关寄存器:,33个控制寄存器,分为11类; 线控制寄存器ULCONn:规定传输帧格式; 控制寄存器UCONn:定义发送/接收数据模式; 状态寄存器UTRSTATn,读取接收/发送状态; 波特率寄存器UBRDIV,确定波特率划分值; 发送寄存器UTXHn,表示发送的数据; 接收寄存器URXHn,表示接收的数据。 FIFO控制寄

8、存器、 FIFO状态寄存器、 Modem控制寄存器、 Modem状态寄存器、错误状态寄存器,UART LINE CONTROL REGISTER,UART CONTROL REGISTER,UART TX/RX STATUS REGISTER,UART TRANSMIT BUFFER REGISTER,UART RECEIVE BUFFER REGISTER,UART BAUD RATE DIVISOR REGISTER,#define ULCON0 (*(volatile unsigned *)0X50000000) /UART线控制寄存器 #define UCON0 (*(volatile

9、 unsigned *)0X50000004) /UART控制寄存器 #define UFCON0 (*(volatile unsigned *)0X50000008) /FIFO控制寄存器 #define UTRSTAT0 (*(volatile unsigned*)0X50000010) /UART状态寄存器 #define UBRDIV0 (*(volatile unsigned *)0X50000028) /波特率除数寄存器 #define UTXH0 (*(volatile unsigned *)0X50000020) #define URXH0 (*(volatile unsign

10、ed *)0X50000024),int TSmain() char buf; ULCON0 ,3. 通用I/O端口,通用I/O端口的分类,由软件设置。在启动程序之前必须定义每个引脚的使用功能。否则,即被配置为I/O端口。,I/O端口的应用电路类型:,无需上拉电阻的应用,推荐:采用灌电流方式驱动电路,直接加限流电阻; I/O端口的电流为4mA。 例外:考虑拉电流与灌电流是否接近; I/O端口作输入用时,采集信号的需要;,需上拉电阻的应用,推荐:自身结构要求需要上拉电阻,如IIC总线功能 按芯片手册指定连接,I/O端口的软硬件应用:,硬件电路图:,相关的寄存器:,40多个控制寄存器,分为5类;

11、配置寄存器CPXCON:定义X端口的引脚; 数据寄存器GPXDAT:读/写端口数据; 上拉寄存器GPYUP:使能端口的上拉寄存器; 混合控制寄存器:控制上拉电阻、高阻状态等; 外部中断控制寄存器EXTINTN等;,GPxCON寄存器:它用于配置引脚的功能 端口A与端口B-H在功能上有所不同,GPACON中每一位对应一根引脚(共23根引脚);GPACON通常被设为全1,以便访问外部存储设备; 端口B-H在寄存器操作上完全相同,GPxCon中每两位控制一根引脚,00表示输入,01表示输出,10表示特殊功能,11保留不用 GPxDAT寄存器:用于读写引脚 当引脚被设为输入时,读此寄存器得到对应引脚的

12、电平状态是高还是低;当引脚被设为输出时,写此寄存器相应位可令此引脚输出高低电平。 GPxUP寄存器: 上拉电阻、下拉电阻的作用在于,当GPIO引脚处于第三态(非高低电平,而是高阻态,即相当于没接芯片)时,它的电平状态由上拉电阻和下拉电阻确定。,PORT A CONTROL REGISTERS (GPACON/GPADAT),PORT X CONTROL REGISTERS (X=BH) (GPXCON, GPXDAT, and GPXUP),各组端口数量不一,所以并不固定。,#define GPFCON (*(volatile unsigned *)0x56000050) #define GP

13、FDAT (*(volatile unsigned *)0x56000054) #define GPFUP (*(volatile unsigned *)0x56000058) int LedMain() void Delay(unsigned int); unsigned char ledtab=0xf7,0xef,0xdf,0xbf; int i; GPFUP ,4. Nand Flash控制器,Flash芯片的类型,有Samsung、TOSHIBA和Fujistu生产; 以页为单位读和编程;以块为单位擦除; 具有块编程和块擦除功能,块擦除时间2ms; 数据、地址采用同一总线,串行读取;

14、随机读取速度慢,不能按字节随机编程; 芯片尺寸小、引脚少,位成本最低的固态存储器; 应用Smart-Media、CF卡、固态盘等的存储介质。,Nand Flash简介:,Nor Flash简介:,Intel开发出以替代EEPROM; 单字节或单字编程;以块或整片为单位擦除; 在重编程之前要对块或整片进行预编程和擦除操作; 擦除或编程的时间很长; 拥有独立的数据总线和地址总线; 可直接从芯片中读取代码执行;,Nor Flash和Nand Flash区别,性能比较,擦除NOR器件是以64128KB的块进行,执行一个写入/擦除操作的时间为5s;擦除NAND器件是以832KB的块进行的,执行相同的操作

15、最多只需要4ms。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少,NAND flash生产过程更为简单,成本低 常见的NOR flash为128KB16MB,而NAND flash通常有512MB2GB NOR主要应用在代码存储介质中,NAND适合于数据存储 NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大,在NAND中每块的最大擦写次数是100万次,而NOR的擦写次数是10万次 位交换的问题NAND flash中更突出,需

16、要ECC纠错 NAND flash中坏块随机分布,需要通过软件标定产品量产的问题,接口差别,NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。 NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备,使用差别,可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。 由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。 在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。,Nand Flash

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号