嵌入式系统开发3S3C2410主要外设功能部课件

上传人:磨石 文档编号:243136235 上传时间:2024-09-16 格式:PPT 页数:75 大小:2.75MB
返回 下载 相关 举报
嵌入式系统开发3S3C2410主要外设功能部课件_第1页
第1页 / 共75页
嵌入式系统开发3S3C2410主要外设功能部课件_第2页
第2页 / 共75页
嵌入式系统开发3S3C2410主要外设功能部课件_第3页
第3页 / 共75页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式系统开发3S3C2410主要外设功能部,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式系统开发3S3C2410主要外设功能部,*,第三章,S3C2410,主要外设功能部件,ARM,汇编指令,UART,异步串口通信,通用,I/O,端口,Nand,Flash,控制器,NOR Flash,接口电路,嵌入式系统开发3S3C2410主要外设功能部,1.,ARM,汇编指令,加载,/,存储指令,LDR,:,LDR,条件,目的寄存器,用于将存储器中的一个,32,位的字数据传送到目的寄存器中;常用于从存储器中读取,32,为的字数据到通用寄存器。,ldr,r0,,,=,rPCONE,/,寄存器地址存放到通用寄存器中,嵌入式系统开发3S3C2410主要外设功能部,STR,:,STR,条件,源寄存器,用于从源寄存器中将一个,32,位的字数据传送到存储器中。,ldr,r0,,,UARTADD,str,r1,,,r0,/,向,UART,中存入数据,嵌入式系统开发3S3C2410主要外设功能部,数据处理指令,MOV,:,MOV,条件,S,目的寄存器,源操作数,用于完成从另一个寄存器、被移位的寄存器或将一个立即数加载到目的寄存器;,S,项决定指令的操作是否影响,CPSR,中条件标志位的值,当无,S,时,指令不更新,CPRS,中条件标志位的值。,mov,r9,,,r2,movs,r0,,,#oxFF00,嵌入式系统开发3S3C2410主要外设功能部,CMP,:,CMP,条件,操作数,1,,操作数,2,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比较,同时更新,CPSR,中条件标志位的值。该指令只进行一次减法运算,但不存储结果,只更改条件标准位。,cmp,r0,,,#oxFF00,嵌入式系统开发3S3C2410主要外设功能部,跳转指令,用于实现程序流程的跳转;可以完成从当前指令向前或向后的,32MB,地址空间的跳转;(超过要使用直接向程序计数器,PC,写入跳转地址值的方式)。,B,跳转指令,BL,带返回的跳转指令,BLX,带返回和状态切换的跳转指令,BX,带状态切换的跳转指令,嵌入式系统开发3S3C2410主要外设功能部,WAKEUP_SLEEP,;Release SCLKn after wake-up from the SLEEP mode.,ldrr1,=MISCCR,ldrr0,r1,bicr0,r0,#(717),strr0,r1,;Set memory control registers,ldrr0,=SMRDATA,ldrr1,=BWSCON;BWSCON Address,addr2, r0, #52;End address of SMRDATA,ldrr3, r0, #4,strr3, r1, #4,cmpr2, r0,bne%B0,;(Before to lable 0),嵌入式系统开发3S3C2410主要外设功能部,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,串口、并口之争,嵌入式系统开发3S3C2410主要外设功能部,UART,TTL,电平,3.3V,正逻辑,RS232,+5+12,为低,,-12-5,为高,负逻辑,RS485,+2+6,为高,,-2-6,为低,正逻辑,电平为线间压差、,10Mbps,、,3000m,MAX232,、,MAX485,嵌入式系统开发3S3C2410主要外设功能部,UART,异步串口的传输格式:,以字符为传输单位,字符间的时间间隔不定,字符内的时间间隔固定,空闲位、起始位、资料位、奇偶校验位、停止位,UART,通信时序图,嵌入式系统开发3S3C2410主要外设功能部,开始前,空闲状态,送出连续“,1,”;,传送开始,发出“,0,”,然后是发送字符;,字符长度可以约定,,ASCII,编码;,字符最后一位之后添加奇偶校验(可选);,完毕后,发送停止位“,1,”信号,宽度约定;,进入空闲状态,送出连续“,1,”,UART,通信过程:,嵌入式系统开发3S3C2410主要外设功能部,S3C2410,的,UART,控制器:,3,个独立的异步串行,I/O,端口,;,具有中断和,DMA,两种模式;,最高支持速率,115.2Kpbs,;,每个通道包含,2,个,16,位,FIFO,寄存器;,可编程的波特率、红外收发模式;,UART Ch 0 and 1,with nRTS0, nCTS0, nRTS1, and nCTS1,每个,UART,包含波特率发生器、接收器、发送器和控制单元,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,波特率发生器:,为传输提供串行移位时钟;,其时钟源从内部系统或,UCLK,中选择;,波特率由时钟源,16,分频和波特率除数寄存器(,UBRDIVn,)指定的,16,位除数决定。,UBRDIVn = (int)(PCLK/(bps x 16) ) -1,UBRDIVn = (int)(40000000/(115200 x 16) -1,= (int)(21.7) -1,= 21 -1 = 20,嵌入式系统开发3S3C2410主要外设功能部,自动流控(,Auto Flow Control,):,通过,RTS,和,CTS,信号实现;,只有当,CTS,有效时,,UART,将,FIFO,中的数据发出;,只要接收,FIFO,至少,2B,空余时,,RTS,就会被置为有效。,嵌入式系统开发3S3C2410主要外设功能部,UART,异步串口的软硬件应用:,嵌入式系统开发3S3C2410主要外设功能部,硬件电路图:,嵌入式系统开发3S3C2410主要外设功能部,Max202,芯片相关信息,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,相关寄存器:,33,个控制寄存器,分为,11,类,;,线控制寄存器,ULCONn,:规定传输帧格式;,控制寄存器,UCONn,:定义发送,/,接收数据模式;,状态寄存器,UTRSTATn,,读取接收,/,发送状态;,波特率寄存器,UBRDIV,,确定波特率划分值;,发送寄存器,UTXHn,,表示发送的数据;,接收寄存器,URXHn,,表示接收的数据。,FIFO,控制寄存器、,FIFO,状态寄存器、,Modem,控制寄存器、,Modem,状态寄存器、错误状态寄存器,嵌入式系统开发3S3C2410主要外设功能部,UART LINE CONTROL REGISTER,奇偶模式,停止位数,字节长度,嵌入式系统开发3S3C2410主要外设功能部,UART CONTROL REGISTER,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,UART TX/RX STATUS REGISTER,发送器为空,发送缓存器为空,接收缓存器准备,嵌入式系统开发3S3C2410主要外设功能部,UART TRANSMIT BUFFER REGISTER,嵌入式系统开发3S3C2410主要外设功能部,UART RECEIVE BUFFER REGISTER,嵌入式系统开发3S3C2410主要外设功能部,UART BAUD RATE DIVISOR REGISTER,嵌入式系统开发3S3C2410主要外设功能部,#define ULCON0 (*(volatile unsigned *)0X50000000),/UART,线控制寄存器,#define UCON0 (*(volatile 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 unsigned *)0X50000024),嵌入式系统开发3S3C2410主要外设功能部,int TSmain(),char buf;,ULCON0 ,ULCON0 |=0X03; /1,位起始位,,8,位数据位,UCON0 =0X0805; /,串口时钟,PCLK,查询方式,UBRDIV0 =0X1A; /,波特率,115200,while(1),if(UTRSTAT0 & 0X01) /,接收是否完毕,=1,结束,buf=URXH0; /,读取数据,while(!(UTRSTAT0 /,是否允许发送,=1,允许,UTXH0=buf;,return 0;,嵌入式系统开发3S3C2410主要外设功能部,3.,通用,I/O,端口,通用,I/O,端口的分类,由软件设置。在启动程序之前必须定义每个引脚的使用功能。否则,即被配置为,I/O,端口。,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,I/O,端口的应用电路类型:,无需上拉电阻的应用,推荐:采用灌电流方式驱动电路,直接加限流电阻;,I/O,端口的电流为,4mA,。,例外:考虑拉电流与灌电流是否接近;,I/O,端口作输入用时,采集信号的需要;,需上拉电阻的应用,推荐:自身结构要求需要上拉电阻,如,IIC,总线功能,按芯片手册指定连接,嵌入式系统开发3S3C2410主要外设功能部,I/O,端口的软硬件应用:,硬件电路图:,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,相关的寄存器:,40,多个控制寄存器,分为,5,类,;,配置寄存器,CP,X,CON,:定义,X,端口的引脚;,数据寄存器,GP,X,DAT,:读,/,写端口数据;,上拉寄存器,GP,Y,UP,:使能端口的上拉寄存器;,混合控制寄存器:控制上拉电阻、高阻状态等;,外部中断控制寄存器,EXTINTN,等;,嵌入式系统开发3S3C2410主要外设功能部,GPxCON,寄存器,:它用于配置引脚的功能,端口,A,与端口,B-H,在功能上有所不同,,GPACON,中,每一位对应一根引脚,(共,23,根引脚);,GPACON,通常被设为全,1,,以便访问外部存储设备;,端口,B-H,在寄存器操作上完全相同,,GPxCon,中,每两位控制一根引脚,,,00,表示输入,,01,表示输出,,10,表示特殊功能,,11,保留不用,GPxDAT,寄存器:,用于读写引脚,当引脚被设为输入时,读此寄存器得到,对应引脚的电平状态,是高还是低;当引脚被设为输出时,写此寄存器相应位可,令此引脚输出高低电平,。,GPxUP,寄存器:,上拉电阻、下拉电阻的作用在于,当,GPIO,引脚处于第三态(非高低电平,而是高阻态,即相当于没接芯片)时,它的电平状态由上拉电阻和下拉电阻确定。,嵌入式系统开发3S3C2410主要外设功能部,PORT A CONTROL REGISTERS (GPACON/GPADAT),嵌入式系统开发3S3C2410主要外设功能部,PORT X CONTROL REGISTERS,(,X=BH,),(GPXCON, GPXDAT, and GPXUP),各组端口数量不一,所以并不固定。,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,嵌入式系统开发3S3C2410主要外设功能部,#define GPFCON (*(volatile unsigned *)0x56000050),#define GPFDAT (*(volatile unsigned *)0x56000054),#define GPFUP (*(volatile unsigned *)0x56000058),int LedMain(),void Delay(unsigned int);,unsigned char ledtab=0xf7,0xef,0xdf,0xbf;,int i;,GPFUP /,使能上拉,F3-6,GPFCON,GPFCON|=0X1540; /,将,F3-6,设为输出口,while(1),for(i=0;i9 /page address,也可以这么认为,一个,Nand Flash,地址的,A0A7,是它的,column_addr,,,A9A25,是它的,Page Address,。,嵌入式系统开发3S3C2410主要外设功能部,#define rNFCONF (*(volatile unsigned *)0x4e000000),/nand flash configuration,#define rNFCMD (*(volatile char *)0x4e000004 /nand flash command,#define rNFADDR (*(volatile char *)0x4e000008 /nand flash address,#define rNFDATA (*(volatile char *)0x4e00000c /nand flash data,#define rNFSTAT (*(volatile unsigned *)0x4e000010,/nand flash opreation status,#define rNFECC (*(volatile int *)0x4e000014 /nand flash ecc,#define rNFECC0 (*(volatile char *)0x4e000014,#define rNFECC1 (*(volatile char *)0x4e000015,#define rNFECC2 (*volatile char *)0x4e000016,嵌入式系统开发3S3C2410主要外设功能部,现在举一个例子,假设要从,Nand Flash,中的第,5000,字节处开始读取,1024,个字节到内存的,0x30000000,处,这样调用,read,函数:,nf_read(5000, 0x30000000,1024);,分析,5000,这个,src_addr,,根据,:,column_addr=src_addr%512;,page_address=(src_addr9);,可得出,column_addr=5000%512=392,page_address=(50009)=9,于是可以知道,5000,这个地址是在第,9,页的第,392,个字节处。,于是,nf_read,函数将这样发送命令和参数,column_addr=5000%512;,page_address=(50009);,NF_CMD=0x01;,从,2nd half,开始读取,NF_ADDR= column_addr ,1st Cycle A7:0,NF_ADDR=page_address,2nd.Cycle A16:9,NF_ADDR=(page_address8),3rd.Cycle,A24:17,NF_ADDR=(page_address16),4th.Cycle,A25,嵌入式系统开发3S3C2410主要外设功能部,向,NandFlash,的命令寄存器和地址寄存器发送完以上命令和参数之后,就可以从,rNFDATA,寄存器,(NandFlash,数据寄存器,),读取数据了,.,下面的代码进行数据的读取,.,for(i=column_addr;i 9);,unsigned char * buf = desc_addr;,while(unsigned int)buf 255),NF_CMD(0x01);,else,NF_CMD(0x00);,NF_ADDR(cloumn_addr ,NF_ADDR(page_address /page address A16:9,NF_ADDR(page_address 8) /A24:17,NF_ADDR(page_address 16) ,for(i=0;i10;i+);,NF_WAITRB();,for(i=column_addr;i512;i+), *buf+=NF_RDDATA(); ,NF_nFCE_H(); column_addr = 0; page_address +;,return ;,嵌入式系统开发3S3C2410主要外设功能部,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!