《嵌入式课件之——第5章_基于S3C2410的系统硬件设计.ppt》由会员分享,可在线阅读,更多相关《嵌入式课件之——第5章_基于S3C2410的系统硬件设计.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 5 章章 基于基于S3C2410的系统硬件设计的系统硬件设计 2第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容1 13 32 24 4S3C2410简介简介 I/O口口中断中断DMA5 5A/D接口接口6 6UART触摸屏触摸屏7 78 89 910101111LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制3第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.1 S3C2410 5.1 S3C2410简介简介 S3C2410 S3C2410是是SamsungSamsung公司公
2、司推出的推出的16/3216/32位位RISCRISC处理器,主要处理器,主要面向手持设备以及高性价比、低功耗的应用。面向手持设备以及高性价比、低功耗的应用。CPUCPU内核采用内核采用的是的是ARMARM公司设计的公司设计的16/3216/32位位ARM920T RISCARM920T RISC处理器处理器。S3C2410AS3C2410A提供一组完整的系统外围设备:提供一组完整的系统外围设备:2 2个个USBUSB主设备接口,主设备接口,1 1个个USBUSB从设备接口;从设备接口;4 4通道通道PWMPWM定时器和定时器和1 1通道内部定时器;通道内部定时器;看门狗定时器;看门狗定时器;
3、117117位通用位通用I/OI/O口和口和2424通道外部中断源;通道外部中断源;电源控制模式包括:正常、慢速、空闲和掉电电源控制模式包括:正常、慢速、空闲和掉电四种模式;四种模式;8 8通道通道1010位位ADCADC和触摸屏接口;和触摸屏接口;具有日历功能的具有日历功能的RTCRTC;使用使用PLLPLL的片上时钟发生器。的片上时钟发生器。1.8V/2.0V1.8V/2.0V内核供电,内核供电,3.33.3V V存储器供电,存储器供电,3.33.3V V外部外部I/OI/O供电;供电;具有具有1616KBKB的的ICacheICache和和1616KBKB的的DCacheDCache以及
4、以及MMUMMU;外部存储器控制器;外部存储器控制器;LCDLCD控制器提供控制器提供1 1通道通道LCDLCD专用专用DMADMA;4 4通道通道DMADMA并有外部请求引脚;并有外部请求引脚;3 3通道通道UARTUART和和2 2通道通道SPISPI;1 1通道多主机通道多主机IICIIC总线和总线和1 1通道通道IISIIS总线控制器;总线控制器;SDSD主接口版本主接口版本1.01.0和和MMCMMC卡协议卡协议2.112.11兼容版;兼容版;4第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计S3C2410S3C2410结构框图结构框图 5第第5 5章
5、章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5 5.1.1 1.1 S3C2410AS3C2410A的特点的特点 体系结构体系结构系统管理器系统管理器 NAND FlashNAND Flash启动装载器启动装载器 CacheCache存储器存储器 时钟和电源管理时钟和电源管理 中断控制器中断控制器具有脉冲带宽调制(具有脉冲带宽调制(PWMPWM)的定的定时器时器 RTCRTC(实时时钟)实时时钟)通用通用I/OI/O口口 UART UART DMADMA控制器控制器 A/DA/D转换和触摸屏接口转换和触摸屏接口 LCDLCD控制器控制器STN LCDSTN LCD显示
6、特性显示特性 TFTTFT彩色显示特性彩色显示特性 看门狗定时器看门狗定时器 IICIIC总线接口总线接口 IISIIS总线接口总线接口 USBUSB主设备主设备 USBUSB从设备从设备 SDSD主机接口主机接口 SPISPI接口接口 工作电压工作电压 封装封装 6第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5 5.1.2 1.2 存储器控制器存储器控制器 S3C2410A S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制器提供访问外部存储器所需要的存储器控制信号。的存储器控制信号。支持小支持小/大端(通过软件选择)大端(通过软件选择)
7、地址空间:每地址空间:每bankbank有有128128MM字节(总共有字节(总共有8 8个个banksbanks,共共1 1G G字节)字节)除除bank0bank0(只只能能是是16/3216/32位位宽宽)之之外外,其其他他bankbank都都具具有有可可编编程程的的访问大小(可以是访问大小(可以是8/16/328/16/32位宽)位宽)总共有总共有8 8个存储器个存储器banksbanks(bank0bank7bank0bank7)其中其中6 6个个banksbanks用于用于ROMROM,SRAMSRAM等等剩下剩下2 2个个banksbanks用于用于ROMROM,SRAMSRAM
8、,SDRAMSDRAM等等7 7个固定的存储器个固定的存储器bankbank(bank0bank6bank0bank6)起始地址起始地址最后一个最后一个bankbank(bank7bank7)的起始地址是可调整的的起始地址是可调整的最后两个最后两个bankbank(bank6bank7bank6bank7)的大小是可编程的的大小是可编程的所有存储器所有存储器bankbank的访问周期都是可编程的的访问周期都是可编程的总线访问周期可以通过插入外部等待来延长总线访问周期可以通过插入外部等待来延长支持支持SDRAMSDRAM的自刷新和掉电模式的自刷新和掉电模式 特性特性 7第第5 5章章 基于基于S
9、3C2410S3C2410的系统硬件设计的系统硬件设计存储器映射存储器映射 8第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5 5.1.3 1.3 NAND FlashNAND Flash控制器控制器 特性特性 NAND FlashNAND Flash模式:支持读模式:支持读/擦除擦除/编程编程NAND FlashNAND Flash存储器。存储器。自自动动启启动动模模式式:复复位位后后,启启动动代代码码被被传传送送到到SteppingstoneSteppingstone中。传送完毕后,启动代码在中。传送完毕后,启动代码在SteppingstoneStepp
10、ingstone中执行。中执行。具具备备硬硬件件ECCECC(校校验验码码,Error Error Correction Correction CodeCode)生生成成模模块(硬件生成校验码,通过软件校验)。块(硬件生成校验码,通过软件校验)。NAND NAND FlashFlash启启 动动 以以 后后,4 4KBKB的的 内内 部部 SRAMSRAM缓缓 冲冲 器器SteppingstoneSteppingstone可以作为其他用途使用。可以作为其他用途使用。NAND NAND FlashFlash控控制制器器不不能能通通过过DMADMA访访问问,可可以以使使用用LDM/STMLDM/S
11、TM指令来代替指令来代替DMADMA操作。操作。9第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v NAND Flash NAND Flash控制器的结构框图控制器的结构框图 10第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v NAND Flash NAND Flash的工作方式的工作方式 11第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v NAND Flash NAND Flash存储器的时序存储器的时序 12第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设
12、计 5 5.1.4 1.4 时钟和电源管理时钟和电源管理 时钟和电源管理模块包括三部分:时钟和电源管理模块包括三部分:时时钟钟控控制制:CPUCPU所所需需的的FCLKFCLK时时钟钟信信号号、AHBAHB总总线线外外围围设设备备所所需需的的HCLKHCLK时钟信号,以及时钟信号,以及APBAPB总线外围设备所需的总线外围设备所需的PCLKPCLK时钟信号时钟信号 。USBUSB控制控制电源控制电源控制正常模式正常模式慢速模式慢速模式空闲模式空闲模式掉电模式掉电模式13第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容1 13 32 24 4S3C2410
13、简介简介 I/O口口中断中断DMA5 5A/D接口接口6 6UART触摸屏触摸屏7 78 89 910101111LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制14第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.2.1 5.2.1 S3C2410AS3C2410A的的I/OI/O口工作原理口工作原理 S3C2410AS3C2410A共共有有117117个个多多功功能能复复用用输输入入输输出出口口(I/OI/O口口),分分为为8 8组组PORT PORT A APORT PORT H H。PORT PORT A A除除了了
14、作作为为功功能能口口外外,它它只只作作为为输输出出口口使使用用;其其余余的的PORT PORT B BPORT PORT H H都都可可以以作作为为输输入入输输出出口口使使用用。8 8组组I/OI/O口口按按照照其位数的不同,可分为:其位数的不同,可分为:1 1个个2323位的输出口(位的输出口(PORT APORT A)2 2个个1111位的位的I/OI/O口(口(PORT B PORT B 和和PORT HPORT H)4 4个个1616位的位的I/OI/O口(口(PORT CPORT C、PORT DPORT D、PORT EPORT E、PORT GPORT G)1 1个个8 8位的位
15、的I/OI/O口(口(PORT FPORT F)与配置与配置I/OI/O口相关的寄存器包括:口相关的寄存器包括:端口控制寄存器(端口控制寄存器(GPACONGPHCONGPACONGPHCON)端口数据寄存器(端口数据寄存器(GPADATGPHDATGPADATGPHDAT)端口上拉寄存器(端口上拉寄存器(GPBUPGPHUPGPBUPGPHUP)杂项控制寄存器杂项控制寄存器外部中断控制寄存器(外部中断控制寄存器(EXTINTNEXTINTN)15第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.2.2 5.2.2 I/OI/O口编程实例口编程实例 举例举例
16、:通过对通过对G G口的操作控制口的操作控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。void Main(void)void Main(void)intint flag,i;flag,i;Target_Init();/Target_Init();/进行硬件初始化操作,包括对进行硬件初始化操作,包括对I/OI/O口的初始化操作口的初始化操作 for(;)for(;)if(flag=0)if(flag=0)for(i=0;i1000000;i+);/for(i=0;i1000000;i+);/延时延时 rGPGCONrGPGCON=rGPGCO
17、NrGPGCON&0 xfff0ffff|0 x00050000;/&0 xfff0ffff|0 x00050000;/配置第配置第8 8、第、第9 9位为输出引脚位为输出引脚 rGPGDATrGPGDAT=rGPGDATrGPGDAT&0 xeff|0 x200;&0 xeff|0 x200;/第第8 8位输出为低电平位输出为低电平 /第第9 9位输出高电平位输出高电平 for(i=0;i10000000;i+);/for(i=0;i10000000;i+);/延时延时 flag=1;flag=1;else else for(i=0;i1000000;i+);/for(i=0;i100000
18、0;i+);/延时延时 rGPGCONrGPGCON=rGPGCONrGPGCON&0 xfff0ffff|0 x00050000;&0 xfff0ffff|0 x00050000;/配置第配置第8 8、第、第9 9位为输出引脚位为输出引脚 rGPGDATrGPGDAT=rGPGDATrGPGDAT&0 xdff|0 x100;&0 xdff|0 x100;/第第8 8位输出为高电平位输出为高电平 /第第9 9位输出低电平位输出低电平for(i=0;i1000000;i+);/for(i=0;i1000000;i+);/延时延时flag=0;flag=0;16第第5 5章章 基于基于S3C24
19、10S3C2410的系统硬件设计的系统硬件设计主要内容1 13 32 24 4S3C2410简介简介 I/O口口中断中断DMA5 5A/D接口接口6 6UART触摸屏触摸屏7 78 89 910101111LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制17第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.1 5.3.1 ARMARM的中断原理的中断原理 ARMARM系统包括两类中断:一是系统包括两类中断:一是IRQIRQ中断中断,一是,一是FIQFIQ中断中断。处理中断的步骤如下:处理中断的步骤如下:(1)(1)保保存
20、存现现场场。保保存存当当前前的的PCPC值值到到R14R14,保保存存当当前前的的程程序序运运行行状状态态到到SPSRSPSR。(2)(2)模式切换。根据发生的中断类型,进入模式切换。根据发生的中断类型,进入IRQIRQ模式或模式或FIQFIQ模式。模式。(3)(3)获获取取中中断断源源。以以异异常常向向量量表表保保存存在在低低地地址址处处为为例例,若若是是IRQIRQ中中断断,则则PCPC指指针针跳跳到到0 0 x18x18处处;若若是是FIQFIQ中中断断,则则跳跳到到0 0 x1Cx1C处处。IRQIRQ或或FIQFIQ的的异异常常向向量量地地址址处处一一般般保保存存的的是是中中断断服服
21、务务子子程程序序的的地地址址,所所以以接接下下来来PCPC指指针针跳跳入中断服务子程序处理中断。入中断服务子程序处理中断。(4)(4)中中断断处处理理。为为各各种种中中断断定定义义不不同同的的优优先先级级别别,并并为为每每一一个个中中断断设设置置一一个个中中断断标标志志位位。当当发发生生中中断断时时,通通过过判判断断中中断断优优先先级级以以及及访访问问中中断断标标志志位位的的状状态态来来识识别别到到底底哪哪一一个个中中断断发发生生了了。进进而而调调用用相相应应的的函函数数进进行行中中断处理。断处理。(5)(5)中断返回,恢复现场。当完成中断服务子程序后,将中断返回,恢复现场。当完成中断服务子程
22、序后,将SPSRSPSR中保存的中保存的程序运行状态恢复到程序运行状态恢复到CPSRCPSR中,中,R14R14中保存的被中断程序的地址恢复到中保存的被中断程序的地址恢复到PCPC中,进而继续执行被中断的程序。中,进而继续执行被中断的程序。18第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.2 5.3.2 S3C2410AS3C2410A的中断控制器的中断控制器 中断控制器使用的寄存器中断控制器使用的寄存器19第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v 优先级生成模块优先级生成模块 20第第5 5章章 基于基于S
23、3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.3 5.3.3 中断编程实例中断编程实例举例举例:通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。1 1对定时器对定时器1 1初始化,并设定定时器的中断时间为初始化,并设定定时器的中断时间为1 1秒。秒。void Timer1_init(void)void Timer1_init(void)rGPGCONrGPGCON=rGPGCONrGPGCON&0 xfff0ffff|0 x00050000;&0 xfff0ffff|0 x0005000
24、0;/配置配置GPGGPG口为输出口口为输出口 rGPGDATrGPGDAT=rGPGDATrGPGDAT|0 x300;|0 x300;rTCFG0 =255;rTCFG0 =255;rTCFG1 =0 4;rTCFG1 =0 4;/在在pclkpclk=50MHZ=50MHZ下,下,1 1秒钟的记数值秒钟的记数值rTCNTB1=50000000/4/256=48828;rTCNTB1=50000000/4/256=48828;rTCNTB1=48828;rTCNTB1=48828;rTCMPB1=0 x00;rTCMPB1=0 x00;rTCON rTCON =(1 11)|(1 9)|(
25、0 8);=(1 11)|(1 9)|(0 8);/禁用定时器禁用定时器1 1,手动加载,手动加载 rTCON rTCON =(1 11)|(0 9)|(1 8);=(1 11)|(0 9)|(1 8);/启动定时器启动定时器1 1,自动装载,自动装载 21第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计举例举例:通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。2 2为为了了使使CPUCPU响响应应中中断断,在在中中断断服服务务子子程程序序执执行行之之前前,必必须须打打开开
26、ARM920TARM920T的的CPSRCPSR中的中的I I位,以及相应的中断屏蔽寄存器中的位。位,以及相应的中断屏蔽寄存器中的位。void Timer1INT_Init(void)void Timer1INT_Init(void)/定时器接口使能定时器接口使能 if(if(rINTPNDrINTPND&BIT_TIMER1)&BIT_TIMER1)rSRCPNDrSRCPND|=BIT_TIMER1;|=BIT_TIMER1;/写入定时器写入定时器1 1中断服务子程序的入口地址中断服务子程序的入口地址 pISR pISR_TIMER1=(_TIMER1=(intint)Timer1_ISR
27、;)Timer1_ISR;rINTMSK rINTMSK&=(BIT_TIMER1);&=(BIT_TIMER1);/开中断;开中断;3 3等待定时器中断,通过一个死循环如等待定时器中断,通过一个死循环如“while(1)while(1);”实现等待过程。实现等待过程。22第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计举例举例:通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。4 4根根据据设设置置的的定定时时时时间间,将将产产生生定定时时器器中中断断。定定时时器器中中断断
28、发发生生后后,首首先先进进行行现现场场保保护护,接接下下来来转转入入中中断断的的入入口口代代码码处处执执行行,该该部部分分代代码码通通常常使使用用汇汇编编语语言言书书写写。在在执执行行中中断断服服务务程程序序之之前前,首首先先要要确确保保HandleIRQHandleIRQ地地址址处处保保存存中中断断分分发发程程序序IsrIRQIsrIRQ的入口地址。的入口地址。ldrldrr0,=r0,=HandleIRQ HandleIRQ ldr ldrr1,=r1,=IsrIRQ IsrIRQ strstrr1,r0r1,r0接下来将执行接下来将执行IsrIRQIsrIRQ中断分发程序,具体代码如下:
29、中断分发程序,具体代码如下:IsrIRQ IsrIRQ subsubsp,sp,#4 sp,sp,#4 ;为保存为保存PCPC预留堆栈空间预留堆栈空间stmfdstmfdsp!,r8-r9 sp!,r8-r9 ldrldrr9,=INTOFFSET r9,=INTOFFSET ldrldrr9,r9r9,r9 ;加载加载INTOFFSETINTOFFSET寄存器值到寄存器值到r9r9ldrldrr8,=HandleEINT0r8,=HandleEINT0;加载中断向量表的基地址到加载中断向量表的基地址到r8r8addaddr8,r8,r9,r8,r8,r9,lsllsl#2#2;获得中断向量获
30、得中断向量ldrldrr8,r8r8,r8;加载中断服务程序的入口地址到加载中断服务程序的入口地址到r8r8strstrr8,sp,#8r8,sp,#8;保存保存spsp,将其作为新的将其作为新的pcpc值值ldmfdldmfdsp!,r8-r9,pcsp!,r8-r9,pc;跳转到中断服务子程序执行跳转到中断服务子程序执行23第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计举例举例:通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。5 5执行中断服务子程序,该子程序实现将执
31、行中断服务子程序,该子程序实现将LED1LED1和和LED2LED2灯熄灭或点亮,灯熄灭或点亮,从现象中看到从现象中看到LED1LED1和和LED2LED2灯闪烁一次,则说明定时器发生了一次中断。灯闪烁一次,则说明定时器发生了一次中断。intint flag;flag;void _void _irqirq Timer1_ISR(void)Timer1_ISR(void)if(flag=0)if(flag=0)rGPGDATrGPGDAT=rGPGDATrGPGDAT&0 xeff|0 x200;&0 xeff|0 x200;flag=1;flag=1;elseelse rGPGDATrGPGD
32、AT=rGPGDATrGPGDAT&0 xdff|0 x100;&0 xdff|0 x100;flag=0;flag=0;rSRCPNDrSRCPND|=BIT_TIMER1;|=BIT_TIMER1;rINTPNDrINTPND|=BIT_TIMER1;|=BIT_TIMER1;66从中断返回,恢复现场,跳转到被中断的主程序继续执行,等待从中断返回,恢复现场,跳转到被中断的主程序继续执行,等待下一次中断的到来。下一次中断的到来。24第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容1 13 32 24 4S3C2410简介简介 I/O口口中断中断DMA5
33、 5A/D接口接口6 6UART触摸屏触摸屏7 78 89 910101111LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制25第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.4.1 5.4.1 DMADMA工作原理工作原理 所所谓谓DMADMA方方式式,即即直直接接存存储储器器存存取取(Direct Direct Memory Memory AcessAcess),是是指指存存储储器器与与外外设设在在DMADMA控控制制器器的的控控制制下下,直直接接传传送送数数据据而而不不通通过过CPUCPU,传传输输速速率率主主要要
34、取决于存储器存取速度。取决于存储器存取速度。采用采用DMADMA方式进行数据传输的具体过程如下:方式进行数据传输的具体过程如下:(1 1)外设向)外设向DMADMA控制器发出控制器发出DMADMA请求;请求;(2 2)DMADMA控制器向控制器向CPUCPU发出总线请求信号;发出总线请求信号;(3 3)CPUCPU执执行行完完现现行行的的总总线线周周期期后后,向向DMADMA控控制制器器发发出出响响应应请请求求的的回回答答信信号;号;(4 4)CPUCPU将控制总线、地址总线及数据总线让出,由将控制总线、地址总线及数据总线让出,由DMADMA控制器进行控制;控制器进行控制;(5 5)DMADM
35、A控制器向外部设备发出控制器向外部设备发出DMADMA请求回答信号;请求回答信号;(6 6)进行)进行DMADMA传送;传送;(7 7)数数据据传传送送完完毕毕,DMADMA控控制制器器通通过过中中断断请请求求线线发发出出中中断断信信号号。CPUCPU在在接接收到中断信号后,转入中断处理程序进行后续处理。收到中断信号后,转入中断处理程序进行后续处理。(8 8)中断处理结束后,)中断处理结束后,CPUCPU返回到被中断的程序继续执行。返回到被中断的程序继续执行。CPUCPU重新获得重新获得总线控制权。总线控制权。26第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计
36、 5.4.2 5.4.2 S3C2410AS3C2410A的的DMADMA控制器控制器 S3C2410AS3C2410A支持位于系统总线和外围总线之间的具有支持位于系统总线和外围总线之间的具有4 4个通道的个通道的DMADMA控制器。控制器。以以3 3种状态的种状态的FSMFSM来描述来描述DMADMA的操作过程如下:的操作过程如下:状状态态1 1:作作为为初初始始状状态态,DMADMA等等待待一一个个DMADMA请请求求。如如果果出出现现DMADMA请请求求,进进入入状态状态2 2。在这种状态下,。在这种状态下,DMA ACKDMA ACK和和INT REQINT REQ为为0 0。状状态态
37、2 2:在在这这种种状状态态下下,DMA DMA ACKACK变变为为1 1,并并且且从从DCON19:0DCON19:0寄寄存存器器向向计计数数器(器(CURR_TCCURR_TC)加载计数值。注意此时加载计数值。注意此时DMA ACKDMA ACK一直是一直是1 1直到以后被清零。直到以后被清零。状状态态3 3:在在这这种种状状态态下下,子子FSMFSM处处理理DMADMA的的原原子子操操作作被被初初始始化化。子子FSMFSM从从源源地地址址读读取取数数据据,并并将将其其写写入入目目标标地地址址。这这一一操操作作被被重重复复执执行行,直直到到在在整整体体服服务务模模式式下下计计数数器器(C
38、URR_TCCURR_TC)变变为为0 0;这这一一操操作作在在单单个个服服务务模模式式下下则则只只执执行行一一次次。当当子子FSMFSM每每完完成成一一次次原原子子操操作作,主主FSMFSM将将CURR_TCCURR_TC进进行行一一次次向向下下计计数数。另另外外,当当CURR_TCCURR_TC变变为为0 0时时,主主FSMFSM将将INT INT REQREQ信信号号置置1 1,并并将将DCONDCON寄寄存存器器的的中中断设置位断设置位2929置置1 1。除此以外,如果发生以下情况,则对。除此以外,如果发生以下情况,则对DMA ACKDMA ACK清零:清零:在整体服务模式下在整体服务
39、模式下CURR_TCCURR_TC变为变为0 0;在单个复位模式下完成原子操作。在单个复位模式下完成原子操作。27第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 要进行要进行DMADMA操作,首先要对操作,首先要对S3C2410AS3C2410A的相关寄存器进行正确配置。每的相关寄存器进行正确配置。每个个DMADMA通道有通道有9 9个控制寄存器个控制寄存器,因此对于,因此对于4 4通道的通道的DMADMA控制器来说总共有控制器来说总共有3636个寄存器。其中每个个寄存器。其中每个DMADMA通道的通道的9 9个控制寄存器中有个控制寄存器中有6 6个用于控制个
40、用于控制DMADMA传输,传输,另外另外3 3个用于监控个用于监控DMADMA控制器的状态。控制器的状态。v DMADMA操作的相关寄存器操作的相关寄存器DMADMA初始源寄存器(初始源寄存器(DISRCDISRC)DMADMA初始源控制寄存器(初始源控制寄存器(DISRCCDISRCC)DMADMA初始目标地址寄存器(初始目标地址寄存器(DIDSTDIDST)DMADMA初始目标控制寄存器(初始目标控制寄存器(DIDSTCDIDSTC)DMADMA控制寄存器(控制寄存器(DCONDCON)DMADMA状态寄存器(状态寄存器(DSTATDSTAT)DMADMA当前源寄存器(当前源寄存器(DCS
41、RCDCSRC)DMADMA当前目标寄存器(当前目标寄存器(DCDSTDCDST)DMADMA屏蔽触发寄存器(屏蔽触发寄存器(DMASKTRIGDMASKTRIG)28第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.4.3 5.4.3 DMADMA编程实例编程实例 举例:使用举例:使用DMADMA方式实现从存储器到串口方式实现从存储器到串口0 0进行数据发送。进行数据发送。#define SEND_DATA (*(volatile unsigned char*)0 x30200000)define SEND_DATA (*(volatile unsigne
42、d char*)0 x30200000)#define SEND_ADDR (volatile unsigned char*)0 x30200000)/#define SEND_ADDR (volatile unsigned char*)0 x30200000)/待发送数据的起始地址待发送数据的起始地址void Main(void)void Main(void)volatile unsigned char*p=SEND_ADDR;volatile unsigned char*p=SEND_ADDR;intint i;i;Target_Init();Target_Init();Delay(100
43、0);Delay(1000);SEND_DATA=0 x41;SEND_DATA=0 x41;/初始化要发送的数据初始化要发送的数据for(i=0;i 128;i+)for(i=0;i 128;i+)*p+=0 x41+i;*p+=0 x41+i;rUCON0=rUCON0&0 xff3|0 x8;rUCON0=rUCON0&0 xff3|0 x8;/UartUart设置成设置成DMADMA形式形式 rDISRC0=(U32)(SEND_ADDR);rDISRC0=(U32)(SEND_ADDR);/DMA0/DMA0 初始化初始化 rDISRCC0=(01)|(00);rDISRCC0=(0
44、1)|(00);/源源=AHBAHB,传送后地址增加传送后地址增加 rDIDST0=(U32)UTXH0;rDIDST0=(U32)UTXH0;/发送发送FIFOFIFO缓冲区地址缓冲区地址 rDIDSTC0=(11)|(10);rDIDSTC0=(11)|(10);/目标目标=APBAPB,地址固定地址固定 /设置设置DMA0DMA0控制寄存器:握手模式控制寄存器:握手模式,与与APBAPB同步同步,使能中断使能中断,单位传输单位传输,单个模式单个模式,目标目标=UART0,UART0,/硬件请求模式硬件请求模式,不自动加载不自动加载,半字半字,计数器初值计数器初值5050 rDCON0=(
45、031)|(030)|(129)|(028)|(027)|(124)|(123)|(122)|(020)|(50);rDCON0=(031)|(030)|(129)|(028)|(027)|(124)|(123)|(122)|(020)|(50);rDMASKTRIG0=(11);rDMASKTRIG0=(11);/打开打开DMADMA通道通道0 0 while(1);while(1);29第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容1 13 32 24 4S3C2410简介简介 I/O口口中断中断DMA5 5A/D接口接口6 6UART触摸屏触摸屏
46、7 78 89 910101111LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制30第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.5.1 5.5.1 UARTUART的工作原理的工作原理 UART(Universal Asynchronous Receiver and Transmitter,通用异步收发器)是广泛使用的串行数据传输方式。通用异步收发器)是广泛使用的串行数据传输方式。RS232C是通用的串行数据传输接口是通用的串行数据传输接口 标准,其标准,其DB9引脚定义如下:引脚定义如下:31第第5 5章章 基于基
47、于S3C2410S3C2410的系统硬件设计的系统硬件设计v RS-232C RS-232C接口的基本连接方式接口的基本连接方式 简单连接简单连接 完全连接完全连接 32第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v UART UART的功能和组成的功能和组成 UART UART的主要功能是将数据以字符为单位,按照先低位后高位的顺的主要功能是将数据以字符为单位,按照先低位后高位的顺序进行逐位传输。根据发送方和接收方是否使用同一个时钟,通讯方序进行逐位传输。根据发送方和接收方是否使用同一个时钟,通讯方式分成同步和异步两种。式分成同步和异步两种。UART UAR
48、T主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、发送部分和接收部分组成。发送部分和接收部分组成。UARTUART以字符为单位进行数据传输,每个字以字符为单位进行数据传输,每个字符的传输格式如下:符的传输格式如下:33第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.5.2 5.5.2 S3C2410AS3C2410A的的UART UART S3C2410A S3C2410A的的UARTUART提供提供3 3个独立的异步串个独立的异步串行行I/OI/O口(口(SIOSIO),),它它们都可以运行于中
49、断们都可以运行于中断模式或模式或DMADMA模式。模式。S3C2410A S3C2410A的每个的每个UARTUART由波特率发生器、由波特率发生器、发送器、接收器以及发送器、接收器以及控制单元组成。控制单元组成。34第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v 与与UARTUART相关的操作相关的操作 1 1数据发送数据发送 2 2数据接收数据接收 3 3自动流控制(自动流控制(AuroAuro Flow Control Flow Control,AFCAFC)4 4RS-232RS-232接口接口 5 5中断中断/DMADMA请求发生请求发生 6 6波
50、特率发生波特率发生 波特率时钟通过把源时钟除以波特率时钟通过把源时钟除以1616再除以一个再除以一个1616位的因子得位的因子得到,该到,该1616位的因子可以在位的因子可以在UARTUART波特率因子寄存器(波特率因子寄存器(UBRDIVnUBRDIVn)中指定。中指定。UBRDIVn UBRDIVn(intint)()(PCLK/PCLK/(bpsbps1616)-1-1 UBRDIVnUBRDIVn(intint)()(UEXTCLK/UEXTCLK/(bps16bps16)-1-17 7回送模式回送模式 8 8红外模式红外模式 35第第5 5章章 基于基于S3C2410S3C2410的