6410端口.docx
《6410端口.docx》由会员分享,可在线阅读,更多相关《6410端口.docx(15页珍藏版)》请在冰点文库上搜索。
6410端口
如图2-2所示,说明了S3C6410的结构框图。
S3C6410是由ARM1176处理器,几个多媒体协处理器和各种外设IP组成的。
ARM1176处理器是通过64位AXI总线连接到几个内存控制器上的。
这样做是为了满足带宽需求。
多媒体协处理器分为五个电源域,包括MFC(多格式编解码器),JPEG,Camera接口,TV译码器等等。
当IP没有被一个应用程序所要求时,五个电源域可以进行独立的控制,以减少不必要的电力消耗。
1.DMA控制器
DMA控制器提供以下功能:
(1)S3C6410包含四个的DMA控制器。
每个DMA控制器由八个传输的通道组成,每个通道支持单向传输。
(2)每个DMA控制器提供了16个外设DMA请求。
(3)每个外设连接到DMAC,可以表明一个脉冲DMA请求或者一个单一的DMA请求。
DMA脉冲的大小通过执行DMAC来设置。
(4)支持内存到内存,内存到外设,外设到内存以及外设向外设传输。
(5)通过使用连接表,支持分散DMA或集合DMA。
(6)硬件DMA通道的优先权,每一个DMA通道有一个特定的硬件优先。
DMA通道0有最高优先级下降至通道7,具有最低的优先级。
如果请求在同一时间两个通道变为有效,则首先服务最高优先级。
(7)该DMAC通过写入DMA控制寄存器来超过AHB接口。
(8)两个AXI总线主要通过AHD和AXI桥传输数据,当DMA请求其作用时,这些接口将用于传输数据。
(9)来源及目标的递增或非递增地址。
(10)可编程的DMA的脉冲大小。
DMA的脉冲大小可以编程,以提高效率的传输数据。
通常是脉冲大小,在外设,设置为FIFO的一半大小。
(11)内部4字FIFO通道。
(12)支持8位,16位和32位宽度处理。
(13)支持大端和小端模式。
复位时,DMA控制器默认的是小端模式。
(14)单独的和组合的DMA错误和DMA计数中断请求。
在一个DMA错误上或者当DMA计数读取0(通常用于指示传输完成)时,处理器的中断产生。
三个中断请求信号是用来做到以下几点:
♉当传输已完成时,产生DMACINTTC信号。
♉当发生错误时,产生DMACINERR信号。
♉DMACINTTC和DMACINERR中断请求信号。
DMACINTR中断请求可以在系统中使用,其中有少数中断控制器的请求输入。
(15)中断屏蔽。
DMA错误和DMA终端计数中断请求可能被屏蔽。
(16)原始中断状态,DMA错误和计数原始中断状态可以读取预屏蔽的信息。
USB2.0OTG
三星USB接口OTG是一个双角色的设备控制器,可以支持设备和主机两种功能。
它支持高速
(HS,480Mbps)、全速(FS,12Mbps,只用于设备)、以及低速(LS,1.5Mbps,只用于主机)转换。
高速OTG
可以作为主机或设备控制器。
USB2.0高速OTG的主要性能包括:
(1)符合补充的SUB2.0OTG规范
(2)操作在高速(480Mbps)、全速(12Mbps,只用于设备)和低速(1.5Mbps,只用于主机)模式
(3)支持UTMI+level3接口
(4)支持SRP和HNP
(5)在AHB上,只支持32位数据
(6)控制转换机上有一个控制端点0
(7)15个设备模式可编程端点:
可编程端点类型:
块类型,同步类型,或中断类型。
可编程输入/输出方向
(8)支持16个主机通道
(9)支持基础包,动态FIFO存储器分配(6144depths,35-bitwidth)
高速OTG控制器由两个独立的模块组成,分别是USB2.0OTG链接核心和USB2.0PHY控制两部分.每个模块都有一个AHBSlave,可以支持微型控制器对控制寄存器和状态寄存器的读写访问。
OTG连接有一个AHBMster,可以使能连接,在AHB上进行数据转换。
在上图所示中的S3C6400XUSB系统可以根据下面所述进行配置:
(1)USB1.1主机1端口和USB2.0OTG1端口
(2)USB1.1主机2端口
为了使能串行接口1和使用2个主机1.1端口,需要设置OPHYCLK.串行模式寄存器位为1.
1.操作模式
实际应用中,可以在DMA模式下和Slave模式下操作链接,不可以同时使用DMA和Slave模式运行
核心。
(1)DMA模式
USBOTG主机用AHBmaster接口转换包数据,以及进行接收数据更新。
AHBmaster用可程式化的DMA地址访问数据缓冲区。
(2)Slave模式
USBOTG可以在transaction-level操作和Pipelinedtransaction-level操作下运行。
在transaction-level操作中,应用可以在每个通道或端口处理一个数据包。
在Pipelinedtransaction-level操作中,应用可以运行OTG进行多重转换操作。
Pipelined操作功能的提高主要指在包基础上的应用不再需要中断。
29SPI接口
串行外设接口(SPI)能进行串行数据传输。
SPI包括两个8、16、32位的移位寄存器,分别用于传输和接收。
在SPI传输期间,数据同步传输(串行输出)和接收(串行输入)。
29.1SPI接口的特性
SPI支持下面特性:
♉全双工。
♉用于发送和接收的8/16/32位移位寄存器。
♉8位预分频逻辑。
♉三个时钟源。
♉8/16/32位总线接口。
♉两个独立的发送和接收FIFO。
♉主控器模式和从属器模式。
29.2信号描述
如表29-1所示,列出了SPI和外部设备之间的外部信号。
当无效时,SPI的所有端口可以作为通用I/O端口。
29.3SPI操作
S3C6410中,SPI在S3C6410和外部设备之间传输1位串行数据。
S3C6410中的SPI支持CPU或DMA分别发送或接收FIF,并且同时双向传输数据。
SPI有两个通道,发送通道和接收通道。
CPU(或DMA)必须在SPI_TX_DATA寄存器写入数据以将数据写入到FIFO。
寄存器的数据自动移动到发送FIFO。
为了从接收FIFO读数据,CPU(或DMA)必须访问寄存器SPI_RX_DATA,并且数据被自动发送到寄存器SPI_RX_DATA。
1.操作模式
HS_SPI有两个模式,主控器模式和从属器模式。
在主控器模式下,HS_SPICLK产生,并被发送到外部设备。
PSS选择从属器的信号,当它为低电平时,表示数据有效。
在信息包开始发送和传输前PSS必须设置为低电平。
2.FIFO访问
S3C6410的SPI支持CPU和DMA访问FIFO。
CPU访问和DMA访问FIFO的数据大小可以选择8位或者32位。
如果选择8位数据大小,有效位为0到7位。
通过触发用户定义的阈值,CPU访问正常打开和关闭。
每个FIFO的触发器级别被设置从0~64字节。
SPI_MODE_CFG寄存器的TxDMAOn或RxDMAOn位必须设置DMA访问。
DMA访问仅仅支持单传输和四个脉冲传输。
在发送FIFO时,DMA要求信号为高电平直到FIFO满。
在接收FIFO时,如果FIFO非空,DMA要求信号是高电平。
3.在接收FIFO中的结尾字节
在中断模式下,接收FIFO中采样的数量小于阈值的值,或者是DMA四个脉冲模式,并且没有其它数据被接收,该保留字节被称做结尾字节。
为了在接收FIFO中移动这些字节,需要用到内部时钟和中断信号。
基于APB总线时钟,内部时钟的值能被设置到1024时钟。
当定时器值为0时,中断信号发生,并且CPU能在FIFO中移动结尾字节。
4.信息包数目控制
在主控器模式下,SPI可以控制接收的信息包的数量。
如果有信息包要被接收,则设置SFR(Packet_Count_reg)有多少包要接收。
当包的数量和设置的数量相同时,SPI停止产生SPICLK。
在该功能被再次装载前,它严格遵循软件和硬件复位(软件复位能清除除了特殊功能的寄存器外的所有的寄存器,但是硬件复位清除所有的寄存器)。
5.NCS控制
nCS可以选择自动控制和手动控制。
对于手动控制,Auto_n_Manual必须设置为默认值0。
nCS电平设置和设置的nSSout位相同。
自动控制下,nCS能被固定在包与包之间。
Auto_n_Manual设置为1,只要nCS不活动,nCS_time_count必须设置。
这时nSSout是可用的。
6.SPI传输格式
S3C6410支持4种不同的格式来传输数据。
如图29-1所示,描述了SPICLK的4种波形。
30IIC总线接口
这一节主要讲述S3C6410RISC中IIC总线接口的功能和使用方法。
30.1IIC总线接口概述
S3C6410RISC处理器能支持一个多主控器IIC串行接口。
一个专用的串行数据线(SDA)和一个串行时钟线(SCL)在总线主控器和连接到IIC总线的外部设备之间传输数据。
SDA和SCL线是双向的。
在多主控制IIC总线模式下,多个S3C6410RISC处理器能发送(或接收)串行数据到从属设备。
主控器S3C6410能开始和结束IIC总线上的数据传输。
在S3C6410中IIC总线使用标准的总线仲裁程序。
为了控制多个IIC总线操作,必须将值写入下面的寄存器:
♉多主控器IIC总线控制寄存器,IICCON;
♉多主控器IIC总线控制/状态寄存器,IICSTAT;
♉多主控器IIC总线发送/接收数据移位寄存器,IICDS;
♉读主控器IIC总线地址寄存器,IICADD。
当IIC总线空闲,SDA和SCL线必须是高电平。
SDA从高到低转换能启动一个开始条件。
当SCL处于高电平,保持稳定时,SDA从低位到高位传输能启动一个停止条件。
主设备能一直产生开始和停止条件。
开始条件产生后,主控器通过在第一次输出的数据字节中写入7位的地址来选择从属器设备。
第8位用于确定传输方向(读或写)。
在到SDA总线上的每一个数据字节总数上必须是8位。
在总线传输操作期间,发送或接收字节没有限制。
数据一直是先从最高有效位(MSB)发送,并且每个字节后面必须立即跟随确认(ACK)位。
31UART接口
这一节介绍S3C6410RSIC微处理器上的通用异步接收/发送器(UART)串行端口。
该S3C6410通用异步接收和发送器(UART)提供了四个独立的异步串行I/O(SIO)端口。
每个异步串行I/O(SIO)端口通过中断或者直接存储器存取(DMA)模式来操作。
换句话说,UART是通过产生一个中断或DMA请求,在CPU和UART之间传输数据的。
该UART使用系统时钟的时间可以支持的比特率最高为115.2kb/s。
如果一外部设备提供ext_uclk0或ext_uclk1,则UART可以以更高的速度运行。
每个UART的通道包含了两个64字节收发FIFO存储器。
该S3C6410的UART包括可编程波特率,红外线(IR)的传送/接收,一个或两个停止位插入,5位,6位,7位或8位数据的宽度和奇偶校验。
31.1UART接口特性
UART的特性包括:
(1)基于rxd0,txd0,rxd1,txd1,rxd2,txd2,rxd3和txd3的DMA或中断来操作。
(2)UART通道0、1、2符合IrDA1.0要求,且具有16字节的FIFO。
(3)UART通道0、1具有nRTS0,nCTS0,nRTS1和nCTS1。
(4)支持收发时握手模式。
每个UART包含一个波特率发生器,发送器,接收器和控制单元。
该波特率发生器由pclk,ext_uclk0或ext_uclk1进行时钟控制。
发射器和接收器包含64字节的FIFO存储器和数据移位寄存器。
发送数据之前,首先将数据写入FIFO存储器,然后复制到发送移位寄存器。
通过发送数据的引脚(txdn)将数据发送,同时,通过数据接收的引脚(rxdn)将接收到的数据从接收移位寄存器复制到FIFO存储器。
UART的结构框图,如图31-1所示。
、
32PWM定时器
该S3C6410RISC微处理器由五个32位定时器组成。
这些计时器用来产生内部中断到ARM子系统。
此外,定时器0,1,2和3包含一个PWM功能(脉宽调制),它可以驱动外部的I/O信号。
定时器0上的PWM能够产生一个可选的死区发生器。
它可能被用来支持大量的通用装置。
定时器4只是一个没有输出引脚的内部定时器。
该定时器的时钟频率通常是APB-PCLK分频的版本。
定时器0和1共享一个可编程的8位预定标器,它提供第一层为PCLK。
计时器2,3,4共享不同的8位预定标器。
每个定时器拥有它自己的时钟分频器,个别时钟分频器提供有一个二级时钟版本(预定标器由2,4,8或16进行分频)。
另外,定时器从外部引脚选择时钟来源。
定时器0和1可以选择外部时钟TCLK0。
定时器2,3和4可以选择外部时钟TCLK1。
每个定时器有自己的32位向下计数器,被定时器时钟驱动。
下数计数器是最初被加载来自定时器计数缓冲寄存器(TCNTBn)。
当下数计数器达到零,定时器产生中断请求通知CPU,定时器操作完成。
当定时器下数计数器达到零,相应的TCNTBn能被自动重新进入下数计数器的下一个周期的开始。
然而,如果定时器停止,例如,在定时器运行模式下,通过清除定时器的使能位TCONn,TCNTBn的值将不被加载到计数器中。
脉冲宽度调制功能(PWM)使用TCMPBn寄存器的值,当下数计数器的值匹配于定时器控制器逻辑中的比较寄存器的值时,定时器控制器逻辑改变输出标准。
因此,比较寄存器决定一个PWM输出的打开时间(或关闭时间)。
TCNTBn和TCMPBn寄存器是双缓冲,允许定时器参数在循环中更新。
直到目前的定时器周期完成,新的值才能生效。
一个PWM的周期的简单的例子如图32-1所示。
(1)初始化带有160(50+110)的TCNTBn和带有110位的TCMPBn。
(2)通过设置起始位启动定时器和设置手动更新位关闭。
TCNTBn的160值载入下数计数器,输出为低电平。
(3)当下数计数器的计数下降到TCMPBn寄存器的值(110)时,输出从低电平到高电平。
(4)当下数计数器达到零,产生中断请求。
(5)同时,通过TCNTBn(重新启动循环)下数计数器是自动重新载入。
如图32-2所示,描述的是PWM定时器的结构框图。
32.1PWM定时器的特性
PWM支持的特性分别如下:
_五个32位的定时器。
_两个8位的时钟预定标器,提供第一级版本,用于PCLK,五个时钟分频器和多路复用器提供第二级版本,用于分频器时钟和两个外部时钟。
_可编程的时钟,用于个别PWM通道选择逻辑。
_四个独立的脉宽调制通道,具有可编程控制的作用和极性。
_静态配置:
脉宽调制为停止状态。
_动态配置:
脉宽调制正在运行。
_支持自动重新装载模式和一次触发脉冲模式。
_支持两个外部输入到启动PWM。
_死区发生器在两个PWM上输出。
_支持DMA传输。
_可选脉冲或中断级产生。
PWM有两个运行模式:
(1)自动重新载入模式
连续的PWM脉冲产生,基于编程作用循环和极性。
(2)一次触发脉冲模式
只有一个PWM脉冲的产生是基于编程作用循环和极性的。
PWM的控制功能,提供18个特殊功能寄存器。
PWM是一个可编程输出,双重时钟输入AMBA次模块并连接先进的外设总线(APB)。
PWM内的18个特殊功能寄存器通过APB处理被存取。