2.34k likes | 2.66k Views
第六章 基于 S3C44B0X 嵌入式系统应用开发实例. 6.1 S3C44B0X 处理器介绍 6.2 S3C44B0X 存储控制器功能及应用开发 6.3 S3C44B0X I/O 端口功能及应用开发 6.4 S3C44B0X DMA 功能及应用开发 6.5 S3C44B0X UART 接口功能及应用开发 6.6 S3C44B0X 中断控制器功能及应用开发 6.7 S3C44B0X 时钟电源管理器功能及应用开发 6.8 S3C44B0X PWM 定时器功能及应用开发 6.9 S3C44B0X LCD 控制器功能及应用开发.
E N D
第六章 基于S3C44B0X嵌入式系统应用开发实例 • 6.1 S3C44B0X处理器介绍 • 6.2 S3C44B0X存储控制器功能及应用开发 • 6.3 S3C44B0X I/O端口功能及应用开发 • 6.4 S3C44B0X DMA功能及应用开发 • 6.5 S3C44B0X UART接口功能及应用开发 • 6.6 S3C44B0X中断控制器功能及应用开发 • 6.7 S3C44B0X时钟电源管理器功能及应用开发 • 6.8 S3C44B0X PWM定时器功能及应用开发 • 6.9 S3C44B0X LCD控制器功能及应用开发
6.10 S3C44B0X A/D转换器功能及应用开发 • 6.11 S3C44B0X RTC(实时时钟)功能及应用开发 • 6.12 S3C44B0X看门狗定时器功能及应用开发 • 6.13 S3C44B0X IIC总线接口功能及应用开发 • 6.14 S3C44B0X IIS总线接口功能及应用开发 • 6.15 S3C44B0X SIO接口功能及应用开发 • 6.16 基于S3C44B0X的S3CEV40开发介绍 • 6.17 S3CEV40启动程序设计 • 6.18 USB接口功能开发实例
6.1 S3C44B0X处理器介绍 • 6.1.1 Samsung S3C44B0X简介 • 6.1.2 Samsung S3C44B0X特点 • 6.1.3 S3C44B0X功能结构框图 • 6.1.4 S3C44B0X引脚信号描述
6.1.1 Samsung S3C44B0X简介 • Samsung S3C44B0X微处理器片内集成ARM7TDMI核,采用0.25μm CMOS工艺制造,并在ARM7TDMI核基本功能(详细见第二章2.13.1节)的基础集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。片上集成的主要功能如下:片上在ARM7TDMI基础上增加8KB的Cache; • 外部扩充存储器控制器(FP/EDO/SDRAM控制,片选逻辑); • LCD控制器(最大支持256色的DSTN),并带有1个LCD专用DMA通道; • 2个通用DMA通道/2个带外部请求管脚的DMA通道; • 2个带有握手协议的UART,1个SIO;
1个多主的IIC总线控制器; • 1个IIS总线控制器; • 5个PWM定时器及1个内部定时器; • 看门狗定时器; • 71个通用可编程I/O口,8个外部中断源; • 功耗控制模式:正常、低、休眠和停止; • 8路10位ADC; • 具有日历功能的RTC(实时时钟); • 片上集成PLL时钟发生器。
6.1.2 Samsung S3C44B0X特点 一、S3C44B0X体系结构 • S3C44B0X是基于ARM7TDMI的体系结构,ARM7TDMI是ARM公司最早为业界普遍认可且赢得了最为广泛的应用的处理器核,详细内容见本书第二章2.13.1节(ARM7系列核介绍)进行了介绍,在此不再作介绍。
二、系统(存储)管理 • 支持大、小端模式(通过外部引脚来选择); • 地址空间:包含8个地址空间,每个地址空间的大小为32M字节,总共有256M字节的地址空间; • 所有地址空间都可以通过编程设置为8位、16位或32位宽数据对准访问; • 8个地址空间中,6个地址空间可以用于ROM、SRAM等存储器,2个用于ROM、SRAM、FP/EDO/SDRAM等存储器; • 7个起始地址固定及大小可编程的地址空间; • 1个起始地址及大小可变的地址空间; • 所有存储器空间的访问周期都可以通过编程配置; • 提供外部扩展总线的等待周期; • 在低功耗的情况下支持DRAM/SDARM自动刷新; • 支持地址对称或非地址对称的DRAM。
三、Cache和片内SRAM • 4路组相联统一的8KB指令/数据Cache; • 未作为Cache使用的0/4/8 Kbytes Cache存储空间可作为片内SRAM使用; • Cache伪LRU(最近最少使用)的替换算法; • 通过在主内存和缓冲区内容之间保持一致的方式写内存; • 具有四级深度的写缓冲; • 当缓冲区出错时,请求数据填充。
四、时钟和功耗管理 • 低功耗; • 片上PLL使得MCU的工作时钟最高为66MHz; • 时钟可以通过软件选择性地反馈回每个功能块; • 功耗管理模式为: • 正常模式:正常运行模式; • 低速模式:不带PLL的低频时钟; • 休眠模式:只使CPU的时钟停止; • 停止模式:所有时钟都停止。 • EINT[7:0]或RTC警告中断可使功耗管理从停止模式中唤醒。
五、中断控制器 • 30个中断源(1个看门狗定时器中断,6个定时器中断,6个UART中断,8个外部中断,4个DMA中断,2个RTC中断,1个ADC中断,1个IIC中断,1个SIO中断); • 矢量IRQ中断模式减少中断响应周期; • 外部中断源的电平/边沿模式; • 可编程的电平/边沿极性; • 支持紧急中断请求的FIQ(快速中断请求)。
六、带PWM的定时器(脉宽可调制) • 5个16位带PWM的定时器,1个16位基于DMA或基于中断的内部定时器; • 可编程的工作周期、频率和极性; • 死区(Dead-zone)产生器; • 支持外部时钟源。
七、实时时钟RTC • 全时钟特点:毫秒、秒、分、时、天、星期、月、年; • 运行于32.768KHz; • CPU唤醒的警告中断; • 时间滴答(Time tick)中断。 • 八、通用输入/输出端口 • 8个外部中断端口; • 71个(多功能)复用输入/输出口。
九、UART • 2个基于DMA或基于中断的UART; • 支持5位、6位、7位、8位串行数据传送/接收; • 在传送/接收时支持硬件握手; • 波特率可编程; • 支持IrDA 1.0(115.2kbps); • 用于回环测试模式; • 每个通道有2个用于接收和发送的内部32字节FIFO 。
十、DMA控制器 • 2路通用的无CPU干涉的DMA控制器; • 2路桥式DMA(外设DMA)控制器; • 支持I/O到内存、内存到IO、IO到IO的桥式DMA传送,有6种DMA请求方式:软件、4个内部功能块(UART、SIO、实时器、IIS)和外部管脚; • DMA之间优先级次序可编程; • 突发传送模式提高了FPDRAM、EDODRAM和SDRAM的传送率; • 支持内存到外围设备的fly-by模式和外围设备到内存的传送模式。
十一、A/D转换 • 8通道多路ADC; • 最大转换速率100KSPS/10位。 • 十二、LCD控制器 • 支持彩色/单色/灰度LCD; • 支持单扫描和双扫描显示; • 支持虚拟显示功能; • 系统内存可作为显示内存; • 专用DMA用于从系统内存中提取图像数据; • 可编程屏幕大小; • 灰度:16级; • 彩色模式:256色。
十三、看门狗定时器 • 16位看门狗定时器; • 定时中断请求或系统超时复位。 • 十四、IIC总线接口 • 1个基于中断操作的多主的IIC总线; • 8位双向串行数据传送器能够工作于100Kbps的标准模式和400Kbps的快速模式。 • 十五、IIS总线接口 • 1路基于DMA操作的音频IIS总线接口; • 每通道8/16位串行数据传送; • 支持MSB可调整的数据格式。
十六、SIO(同步串行I/0) • 1路基于DMA或基于中断的SIO; • 波特率可编程; • 支持8位SIO的串行数据传送/接收操作。 • 十七、操作电压范围 • 内核:2.5V; I/O:3.0V~3.6V。 • 十八、运行频率 • 最高达66MHz。 • 十九、封装 • 160LQFP/160FBGA。
6.1.3 S3C44B0X功能结构框图 • S3C44B0X的体系结构的功能框图如图6-1所示。 • 图6-1 S3C44B0微处理器体系结构框图
6.1.4 S3C44B0X引脚信号描述 • S3C44B0X引脚按以下几种功能详细列表描述信号功能。
一、总线控制信号S3C44B0的X总线控制信号的引脚一、总线控制信号S3C44B0的X总线控制信号的引脚
6.2 S3C44B0X存储控制器功能及应用开发 • 6.2.1 S3C44B0X存储控制器概 • 6.2.2 S3C44B0X存储器空间划分简述 • 6.2.3 S3C44B0X存储控制器功能描述 • 6.2.4 S3C44B0X存储控制器的特殊功能 寄存器 • 6.2.5 S3C44B0X存储器应用编程
6.2.1 S3C44B0X存储控制器概 • 正如2.9.3节所述,在基于ARM核的嵌入式应用系统中可能包含多种类型的存储器件,如Flash、ROM、SRAM和SDRAM等。而且不同类型的存储器件要求不同的速度、数据宽度等,为了实现对这些不同速度、类型、总线宽度的存储器进行管理,存储器管理控制器是必不可少的。在基于S3C44B0X处理器的嵌入式系统开发中,也是通过存储控制器为片外存储器访问提供必要的控制信号,管理片外存储部件。S3C44B0X的存储器控制器的主要特点在6.1.2节系统(存储)管理中已进行了高度概括,在此不再讲述。
6.2.2 S3C44B0X存储器空间划分简述 • 特殊功能寄存器位于0x01C00000到0x02000000的4M空间内; • Bank0-Bank5的起始地址和空间大小都是固定的; • Bank6的起始地址是固定的,空间可以配置为2/4/8/16/32M。参考表6-16可访问区域4M特殊功能寄存器 • Bank7的空间大小和Bank6一样是可变的,也可以配置为2/4/8/16/32M。
6.2.5 S3C44B0X存储器应用编程 • 下面给出了存储器的几个编程实例,包括存储控制寄存器的配置、存储器的读写,通过一个简单例子,使学生对存储器的应用编程有一定的了解。
观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布在从0x01c80000开始的连续地址空间,所以上面的程序先将各个寄存器需要配置的值从起始地址为SMRDATA的区域取出来,然后可以利用指令“stmia r0, {r1-r13}”实现将配置好的寄存器的值依次写入到相应的寄存器中,这就完成了存储器13个控制寄存器的配置。
6.3 S3C44B0X I/O端口功能及应用开发 • 6.3.1 S3C444B0X I/O功能概述 • 6.3.2 S3C444B0X 端口功能配置 • 6.3.3 S3C444B0X 端口功能控制描述 • 6.3.4 S3C444B0X I/O端口的特殊功能寄存 器 • 6.3.5 S3C444B0X I/O端口应用编程
6.3.1 S3C444B0X I/O功能概述 • S3C44B0X有71个通用可编程多功能输入输出引脚,可分为以下7类端口: • 两个9位输入输出端口(PortE和PortF); • 两个8位输入输出端口(PortD和PortG); • 一个16位输入输出端口(PortC); • 一个10位输出端口(PortA); • 一个11位的输出端口(PortB)。
6.3.2 S3C444B0X 端口功能配置 • 每个端口都可以通过软件设置来满足各种各样的系统设置和设计要求。每个端口的功能通常都要在主程序开始前被定义。如果一个引脚的多功能没有使用,那么这个引脚将被设置为I/O端口。在引脚配置以前,需要对引脚的初始化状态进行设定来避免一些问题的出现。
6.2.3 S3C44B0X存储控制器功能描述 • I/O端口的各种功能主要是通过对端口各个寄存器进行设置而实现的,下面通过对各个寄存器的说明来分别介绍I/O端口所能完成的功能。 • 端口配置寄存器(PCONA-G): • 在S3C44B0X里,大多数的引脚都是多功能引脚。因此,应当为每个引脚选择功能。端口控制寄存器(PCONn)决定了每一个引脚的功能。 • 如果PG0-PG7在掉电模式下被用做唤醒信号,则在中断模式里这些端口必须被设定。 • 端口数据寄存器(PDATA-G): • 如果这些端口被设定为输出端口,输出数据可以被写入到PDATn的相应的位;如果被设定为输入端口,输入数据可以被读到PDATn的相应的位。 • 端口上拉寄存器(PUPC-G): • 端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端。当相应的位被设为0时,引脚接上拉电阻;当相应的位为1时,引脚不接上拉电阻。
特殊的上拉电阻控制寄存器(SPUCR) • 数据线D[15:0]引脚的上拉电阻能够通过SPUPCR寄存器控制。 • 在STOP/SL-IDLE模式里,数据线(D[31:0]或D[15:0])处于高阻状态(Hi-z state)。由于I/O端口的特征,在STOP/SL-IDLE模式里,数据线上拉电阻可以降低功耗。D[31:16]引脚的上拉电阻能够通过PUPC寄存器来控制;D[15:0] 引脚上拉电阻能够通过SPUCR寄存器来控制。 • 在STOP模式中,为了保护存储器不出现错误功能(mal-function),存储器控制信号通过在特殊的上拉电阻控制寄存器里设置HZ@STOP区域来选择高阻状态(Hi-z state)或先前的状态。
外部中断控制寄存器: • 8个外部中断可以用各种信号所请求。外部中断寄存器为外部中断设置了信号触发方法选择位,也设置了触发信号的极性选择位。外部中断请求信号触发的方法有以下几种:低电平触发、高电平触发、下降沿触发、上升沿触发、双沿触发。 • 8个外部中断寄存器的具体设置情况请详见I/O的特殊功能寄存器。 • 因为每个外部中断引脚都有一个数字滤波器,这让中断控制器能够识别长于3个时钟周期的请求信号。
外部中断挂起寄存器(EXTINTPND) 外部中断请求(4/5/6/7)对于中断控制器来说是“或”的关系。EINT4、EINT5、EINT6、EINT7共享在中断控制器里同一个中断请求队列。如果外部中断请求的4位中的任何一位被激活的话,那么EXTINPNDn将会被设置为1。外部挂起条件清除以后,中断服务程序必须清除中断挂起状态。通过EXTINPND对应位写1来清除挂起条件。
6.4 S3C44B0X DMA功能及应用开发 • 6.4.1 S3C444B0X DMA概述 • 6.4.2 S3C444B0X ZDMA/BDMA操作 • 6.4.3 S3C444B0X DMA特殊功能寄存器 • 6.4.4 S3C444B0X DMA应用编程
6.4.1 S3C444B0X DMA概述 • S3C44B0X拥有4通道的DMA控制器,其有中两个DMA称为ZDMA(普通GDMA),连接于SSB(Samsung System Bus三星系统总线),另外两个DMA称为BDMA(桥梁DMA)在桥内,桥是SSB和SPB(Samsung Peripheral Bus三星外围总线)之间的接口层。 • 与SSB相连的ZDMA控制器可以从存储器到存储器,从存储器到I/O设备(固定的目的地址)和从I/O设备到存储器传送数据。另外两个BDMA控制器只能从存储器到I/O设备和从I/O设备到存储器传送数据。在这种情况下,I/O设备意味着外围设备,象SIO、IIS和UART一样连接到SPB。DMA的主要优势是它可以在无CPU干涉的情况下传送数据。ZDMA和BDMA的操作由S/W(SoftWare)或来自内部设备或外部请求引脚(nXDREQ0/1)的请求来启动。
6.4.2 S3C444B0X ZDMA/BDMA操作 • 1.ZDMA(普通 DMA) • 2.BDMA(桥梁 DMA) • 3.外部 DMA REQ/ACK协议 • 4.DMA传送方式 • 5.DMA请求源的选择 • 6.自动重装模式
6.4.3 S3C444B0X DMA特殊功能寄存器 • 1. ZDMA 控制寄存器(ZDCONn) • 2. ZDMA0/1初始源/目的地址和计数寄存器和ZDMA0/1当前源/目的地址和计数寄存器 • 3. ZDMAn 初始源/目标地址寄存器((ZDISRC, ZDCSRC)) • 4. ZDMAn初始/当前目的地址寄存器 ((ZDIDES, ,ZDCDE))