嵌入式之——第5章_基于S3C2410的系统硬件设计.ppt_第1页
嵌入式之——第5章_基于S3C2410的系统硬件设计.ppt_第2页
嵌入式之——第5章_基于S3C2410的系统硬件设计.ppt_第3页
嵌入式之——第5章_基于S3C2410的系统硬件设计.ppt_第4页
嵌入式之——第5章_基于S3C2410的系统硬件设计.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章基于S3C2410的系统硬件设计 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 1S3C2410简介 S3C2410是Samsung公司推出的16 32位RISC处理器 主要面向手持设备以及高性价比 低功耗的应用 CPU内核采用的是ARM公司设计的16 32位ARM920TRISC处理器 S3C2410A提供一组完整的系统外围设备 2个USB主设备接口 1个USB从设备接口 4通道PWM定时器和1通道内部定时器 看门狗定时器 117位通用I O口和24通道外部中断源 电源控制模式包括 正常 慢速 空闲和掉电四种模式 8通道10位ADC和触摸屏接口 具有日历功能的RTC 使用PLL的片上时钟发生器 1 8V 2 0V内核供电 3 3V存储器供电 3 3V外部I O供电 具有16KB的ICache和16KB的DCache以及MMU 外部存储器控制器 LCD控制器提供1通道LCD专用DMA 4通道DMA并有外部请求引脚 3通道UART和2通道SPI 1通道多主机IIC总线和1通道IIS总线控制器 SD主接口版本1 0和MMC卡协议2 11兼容版 S3C2410结构框图 5 1 1S3C2410A的特点 体系结构系统管理器NANDFlash启动装载器Cache存储器时钟和电源管理中断控制器具有脉冲带宽调制 PWM 的定时器RTC 实时时钟 通用I O口UARTDMA控制器A D转换和触摸屏接口 LCD控制器STNLCD显示特性TFT彩色显示特性看门狗定时器IIC总线接口IIS总线接口USB主设备USB从设备SD主机接口SPI接口工作电压封装 5 1 2存储器控制器 S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制信号 支持小 大端 通过软件选择 地址空间 每bank有128M字节 总共有8个banks 共1G字节 除bank0 只能是16 32位宽 之外 其他bank都具有可编程的访问大小 可以是8 16 32位宽 总共有8个存储器banks bank0 bank7 其中6个banks用于ROM SRAM等剩下2个banks用于ROM SRAM SDRAM等7个固定的存储器bank bank0 bank6 起始地址最后一个bank bank7 的起始地址是可调整的最后两个bank bank6 bank7 的大小是可编程的所有存储器bank的访问周期都是可编程的总线访问周期可以通过插入外部等待来延长支持SDRAM的自刷新和掉电模式 特性 存储器映射 5 1 3NANDFlash控制器 特性 NANDFlash模式 支持读 擦除 编程NANDFlash存储器 自动启动模式 复位后 启动代码被传送到Steppingstone中 传送完毕后 启动代码在Steppingstone中执行 具备硬件ECC 校验码 ErrorCorrectionCode 生成模块 硬件生成校验码 通过软件校验 NANDFlash启动以后 4KB的内部SRAM缓冲器Steppingstone可以作为其他用途使用 NANDFlash控制器不能通过DMA访问 可以使用LDM STM指令来代替DMA操作 NANDFlash控制器的结构框图 NANDFlash的工作方式 NANDFlash存储器的时序 5 1 4时钟和电源管理 时钟和电源管理模块包括三部分 时钟控制 CPU所需的FCLK时钟信号 AHB总线外围设备所需的HCLK时钟信号 以及APB总线外围设备所需的PCLK时钟信号 USB控制电源控制 正常模式慢速模式空闲模式掉电模式 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 2 1S3C2410A的I O口工作原理 S3C2410A共有117个多功能复用输入输出口 I O口 分为8组PORTA PORTH PORTA除了作为功能口外 它只作为输出口使用 其余的PORTB PORTH都可以作为输入输出口使用 8组I O口按照其位数的不同 可分为 1个23位的输出口 PORTA 2个11位的I O口 PORTB和PORTH 4个16位的I O口 PORTC PORTD PORTE PORTG 1个8位的I O口 PORTF 与配置I O口相关的寄存器包括 端口控制寄存器 GPACON GPHCON 端口数据寄存器 GPADAT GPHDAT 端口上拉寄存器 GPBUP GPHUP 杂项控制寄存器外部中断控制寄存器 EXTINTN 5 2 2I O口编程实例 举例 通过对G口的操作控制CPU板左下角的LED1和LED2实现轮流闪烁 voidMain void intflag i Target Init 进行硬件初始化操作 包括对I O口的初始化操作for if flag 0 for i 0 i 1000000 i 延时rGPGCON rGPGCON 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 3 1ARM的中断原理 ARM系统包括两类中断 一是IRQ中断 一是FIQ中断 处理中断的步骤如下 1 保存现场 保存当前的PC值到R14 保存当前的程序运行状态到SPSR 2 模式切换 根据发生的中断类型 进入IRQ模式或FIQ模式 3 获取中断源 以异常向量表保存在低地址处为例 若是IRQ中断 则PC指针跳到0 x18处 若是FIQ中断 则跳到0 x1C处 IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址 所以接下来PC指针跳入中断服务子程序处理中断 4 中断处理 为各种中断定义不同的优先级别 并为每一个中断设置一个中断标志位 当发生中断时 通过判断中断优先级以及访问中断标志位的状态来识别到底哪一个中断发生了 进而调用相应的函数进行中断处理 5 中断返回 恢复现场 当完成中断服务子程序后 将SPSR中保存的程序运行状态恢复到CPSR中 R14中保存的被中断程序的地址恢复到PC中 进而继续执行被中断的程序 5 3 2S3C2410A的中断控制器 中断控制器使用的寄存器 优先级生成模块 5 3 3中断编程实例 举例 通过定时器1中断控制CPU板左下角的LED1和LED2实现轮流闪烁 1 对定时器1初始化 并设定定时器的中断时间为1秒 voidTimer1 init void rGPGCON rGPGCON 启动定时器1 自动装载 举例 通过定时器1中断控制CPU板左下角的LED1和LED2实现轮流闪烁 2 为了使CPU响应中断 在中断服务子程序执行之前 必须打开ARM920T的CPSR中的I位 以及相应的中断屏蔽寄存器中的位 voidTimer1INT Init void 定时器接口使能if rINTPND 开中断 3 等待定时器中断 通过一个死循环如 while 1 实现等待过程 举例 通过定时器1中断控制CPU板左下角的LED1和LED2实现轮流闪烁 4 根据设置的定时时间 将产生定时器中断 定时器中断发生后 首先进行现场保护 接下来转入中断的入口代码处执行 该部分代码通常使用汇编语言书写 在执行中断服务程序之前 首先要确保HandleIRQ地址处保存中断分发程序IsrIRQ的入口地址 ldrr0 HandleIRQldrr1 IsrIRQstrr1 r0 接下来将执行IsrIRQ中断分发程序 具体代码如下 IsrIRQsubsp sp 4 为保存PC预留堆栈空间stmfdsp r8 r9 ldrr9 INTOFFSETldrr9 r9 加载INTOFFSET寄存器值到r9ldrr8 HandleEINT0 加载中断向量表的基地址到r8addr8 r8 r9 lsl 2 获得中断向量ldrr8 r8 加载中断服务程序的入口地址到r8strr8 sp 8 保存sp 将其作为新的pc值ldmfdsp r8 r9 pc 跳转到中断服务子程序执行 举例 通过定时器1中断控制CPU板左下角的LED1和LED2实现轮流闪烁 5 执行中断服务子程序 该子程序实现将LED1和LED2灯熄灭或点亮 从现象中看到LED1和LED2灯闪烁一次 则说明定时器发生了一次中断 intflag void irqTimer1 ISR void if flag 0 rGPGDAT rGPGDAT 6 从中断返回 恢复现场 跳转到被中断的主程序继续执行 等待下一次中断的到来 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 4 1DMA工作原理 所谓DMA方式 即直接存储器存取 DirectMemoryAcess 是指存储器与外设在DMA控制器的控制下 直接传送数据而不通过CPU 传输速率主要取决于存储器存取速度 采用DMA方式进行数据传输的具体过程如下 1 外设向DMA控制器发出DMA请求 2 DMA控制器向CPU发出总线请求信号 3 CPU执行完现行的总线周期后 向DMA控制器发出响应请求的回答信号 4 CPU将控制总线 地址总线及数据总线让出 由DMA控制器进行控制 5 DMA控制器向外部设备发出DMA请求回答信号 6 进行DMA传送 7 数据传送完毕 DMA控制器通过中断请求线发出中断信号 CPU在接收到中断信号后 转入中断处理程序进行后续处理 8 中断处理结束后 CPU返回到被中断的程序继续执行 CPU重新获得总线控制权 5 4 2S3C2410A的DMA控制器 S3C2410A支持位于系统总线和外围总线之间的具有4个通道的DMA控制器 以3种状态的FSM来描述DMA的操作过程如下 状态1 作为初始状态 DMA等待一个DMA请求 如果出现DMA请求 进入状态2 在这种状态下 DMAACK和INTREQ为0 状态2 在这种状态下 DMAACK变为1 并且从DCON 19 0 寄存器向计数器 CURR TC 加载计数值 注意此时DMAACK一直是1直到以后被清零 状态3 在这种状态下 子FSM处理DMA的原子操作被初始化 子FSM从源地址读取数据 并将其写入目标地址 这一操作被重复执行 直到在整体服务模式下计数器 CURR TC 变为0 这一操作在单个服务模式下则只执行一次 当子FSM每完成一次原子操作 主FSM将CURR TC进行一次向下计数 另外 当CURR TC变为0时 主FSM将INTREQ信号置1 并将DCON寄存器的中断设置位 29 置1 除此以外 如果发生以下情况 则对DMAACK清零 在整体服务模式下CURR TC变为0 在单个复位模式下完成原子操作 要进行DMA操作 首先要对S3C2410A的相关寄存器进行正确配置 每个DMA通道有9个控制寄存器 因此对于4通道的DMA控制器来说总共有36个寄存器 其中每个DMA通道的9个控制寄存器中有6个用于控制DMA传输 另外3个用于监控DMA控制器的状态 DMA操作的相关寄存器 DMA初始源寄存器 DISRC DMA初始源控制寄存器 DISRCC DMA初始目标地址寄存器 DIDST DMA初始目标控制寄存器 DIDSTC DMA控制寄存器 DCON DMA状态寄存器 DSTAT DMA当前源寄存器 DCSRC DMA当前目标寄存器 DCDST DMA屏蔽触发寄存器 DMASKTRIG 5 4 3DMA编程实例 举例 使用DMA方式实现从存储器到串口0进行数据发送 defineSEND DATA volatileunsignedchar 0 x30200000 defineSEND ADDR volatileunsignedchar 0 x30200000 待发送数据的起始地址voidMain void volatileunsignedchar p SEND ADDR inti Target Init Delay 1000 SEND DATA 0 x41 初始化要发送的数据for i 0 i 128 i p 0 x41 i rUCON0 rUCON0 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 5 1UART的工作原理 UART UniversalAsynchronousReceiverandTransmitter 通用异步收发器 是广泛使用的串行数据传输方式 RS232C是通用的串行数据传输接口标准 其DB9引脚定义如下 RS 232C接口的基本连接方式 简单连接 完全连接 UART的功能和组成 UART的主要功能是将数据以字符为单位 按照先低位后高位的顺序进行逐位传输 根据发送方和接收方是否使用同一个时钟 通讯方式分成同步和异步两种 UART主要由数据线接口 控制逻辑 配置寄存器 波特率发生器 发送部分和接收部分组成 UART以字符为单位进行数据传输 每个字符的传输格式如下 5 5 2S3C2410A的UART S3C2410A的UART提供3个独立的异步串行I O口 SIO 它们都可以运行于中断模式或DMA模式 S3C2410A的每个UART由波特率发生器 发送器 接收器以及控制单元组成 与UART相关的操作 1 数据发送2 数据接收3 自动流控制 AuroFlowControl AFC 4 RS 232接口5 中断 DMA请求发生6 波特率发生波特率时钟通过把源时钟除以16再除以一个16位的因子得到 该16位的因子可以在UART波特率因子寄存器 UBRDIVn 中指定 UBRDIVn int PCLK bps 16 1UBRDIVn int UEXTCLK bps 16 17 回送模式8 红外模式 与UART相关的寄存器 UART行控制寄存器 ULCONn UART控制寄存器 UCONn UARTFIFO控制寄存器 UFCONn UARTModem控制寄存器 UMCONn UARTTX RX状态寄存器 UTRSTATn UART错误状态寄存器 UERSTATn UARTFIFO状态寄存器 UFSTATn UARTMODEM状态寄存器 UMSTATn UART发送缓冲寄存器 UTXHn UART接收缓冲寄存器 URXHn UART波特率因子寄存器 UBRDIVn 5 5 3UART编程实例 举例 从UART0接收数据 然后分别从UART0和UART1发送出去 1 定义与UART相关的寄存器 definerULCON0 volatileunsigned 0 x50000000 UART0行控制寄存器 definerUCON0 volatileunsigned 0 x50000004 UART0控制寄存器 definerUFCON0 volatileunsigned 0 x50000008 UART0FIFO控制寄存器 definerUMCON0 volatileunsigned 0 x5000000c UART0Modem控制寄存器 definerUTRSTAT0 volatileunsigned 0 x50000010 UART0Tx Rx状态寄存器 definerUERSTAT0 volatileunsigned 0 x50000014 UART0Rx错误状态寄存器 definerUFSTAT0 volatileunsigned 0 x50000018 UART0FIFO状态寄存器 definerUMSTAT0 volatileunsigned 0 x5000001c UART0Modem状态寄存器 definerUBRDIV0 volatileunsigned 0 x50000028 UART0波特率因子寄存器 2 对串口进行初始化操作 参数pclk为时钟源的时钟频率 band为数据传输的波特率 举例 从UART0接收数据 然后分别从UART0和UART1发送出去 voidUart Init intpclk intbaud inti if pclk 0 pclk PCLK rUFCON0 0 x0 UART0FIFO控制寄存器 FIFO禁止rUFCON1 0 x0 UART1FIFO控制寄存器 FIFO禁止rUFCON2 0 x0 UART2FIFO控制寄存器 FIFO禁止rUMCON0 0 x0 UART0MODEM控制寄存器 AFC禁止rUMCON1 0 x0 UART1MODEM控制寄存器 AFC禁止 UART0rULCON0 0 x3 行控制寄存器 正常模式 无奇偶校验 1位停止位 8位数据位 rUCON0 0 x245 控制寄存器rUBRDIV0 int pclk 16 baud 0 5 1 波特率因子寄存器 举例 从UART0接收数据 然后分别从UART0和UART1发送出去 3 使用串口发送数据 其中whichUart为全局变量 指示当前选择的UART通道 使用串口发送一个字节的代码如下 voidUart SendByte intdata if whichUart 0 if data n while rUTRSTAT0 elseif whichUart 1 elseif whichUart 2 举例 从UART0接收数据 然后分别从UART0和UART1发送出去 4 使用串口接收数据 如果没有接收到字符则返回0 charUart GetKey void if whichUart 0 if rUTRSTAT0 举例 从UART0接收数据 然后分别从UART0和UART1发送出去 5 书写主函数 实现的功能为从UART0接收字符 然后将接收到的字符再分别从UART0和UART1发送出去 其中Uart Select n 用于选择使用的传输通道为UARTn voidMain void chardata Target Init while 1 data Uart GetKey 接收字符if data 0 x0 Uart Select 0 从UART0发送出去Uart Printf key c n data Uart Select 1 从UART1发送出去Uart Printf key c n data Uart Select 0 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 6 1A D接口原理 A D转换器是模拟信号和CPU之间联系的接口 它将连续变化的模拟信号转换为数字信号 以供计算机和数字系统进行分析 处理 存储 控制和显示 双积分型的A D转换器逐次逼近型的A D转换器 按照转换速度 精度 功能以及接口等因素 常用的A D转换器有以下两种 5 6 2S3C2410A的A D转换器 S3C2410A的A D转换器包含一个8通道的模拟输入转换器 可以将模拟输入信号转换成10位数字编码 在AD转换时钟为2 5MHz时 其最大转换率为500KSPS 输入电压范围是0 3 3V 与A D转换相关的寄存器 ADC控制寄存器 ADCCON ADC触摸屏控制寄存器 ADCTSC ADC启动延时寄存器 ADCDLY ADC转换数据寄存器 ADCDATn 5 6 3A D接口编程实例 举例 从A D转换器的通道0获取模拟数据 并将转换后的数字量以波形的形式在LCD上显示 1 定义与A D转换相关的寄存器 definerADCCON volatileunsigned 0 x58000000 ADC控制寄存器 definerADCTSC volatileunsigned 0 x58000004 ADC触摸屏控制寄存器 definerADCDLY volatileunsigned 0 x58000008 ADC启动或间隔延时寄存器 definerADCDAT0 volatileunsigned 0 x5800000c ADC转换数据寄存器0 definerADCDAT1 volatileunsigned 0 x58000010 ADC转换数据寄存器1 2 对A D转换器进行初始化 这里的参数ch表示选择的通道号 voidAD Init unsignedcharch rADCDLY 100 ADC启动或间隔延时rADCTSC 0 选择ADC模式rADCCON 1 14 49 6 ch 3 0 2 0 1 0 设置ADC控制寄存器 举例 从A D转换器的通道0获取模拟数据 并将转换后的数字量以波形的形式在LCD上显示 3 获取A D的转换值 参数ch为选用的通道号 intGet AD unsignedcharch inti intval 0 if ch 7 return0 通道不能大于7for i 0 i 4 为转换准确 除以16取均值 4 书写主函数 实现将转换后的数据在LCD上以波形的方式显示 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 7 1键盘和LED的接口原理 HA7279A是一片具有串行接口并可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片 该芯片同时可连接多达64键的键盘矩阵 一片即可完成LED显示及键盘接口的全部功能 HA7279A一共有28个引脚 RESET 复位端 通常 该端接 5V电源 DIG0 DIG7 个LED管的位驱动输出端 SA SG LED数码管的 段 段的输出端 DP 小数点的驱动输出端 RC 外接振荡元件连接端 HD7279A与微处理器仅需 条接口线 CS 片选信号 低电平有效 DATA 串行数据端 CLK 数据串行传送的同步时钟输入端 时钟的上升沿表示数据有效 KEY 按键信号输出端 该端在无键按下时为高电平 而在有键按下时变为低电平 并一直保持到按键释放为止 HD7279A与S3C2410A的连接原理图 5 7 2键盘和LED控制的编程实例 举例 通过按键来控制LED的显示 1 键盘中断的初始化 voidKeyINT Init void rGPFCON rGPFCON 举例 通过按键来控制LED的显示 2 书写中断服务子程序 void irqKey ISR void intj rINTMSK BIT ALLMSK 关中断if rEINTPEND 举例 通过按键来控制LED的显示 3 主程序的主要功能是根据按键键值 向HD7279A发送不同的处理命令 程序结构如下 voidMain charp Target Init 目标初始化while 1 switch key number case0 send byte cmd test 测试键break case1 for p 0 p 8 p 右移8位send byte 0 xA0 send byte 0 xC8 7 send byte p long delay Delay 7000 break case2到case14case15 最右两个数码管上显示15write7279 decode1 5 key number 16 8 write7279 decode1 4 key number 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 8 1LCD显示原理 所谓LCD 是LiquidCrystalDisplay的缩写 即液晶显示器 LCD液晶显示器主要有两类 STN SuperTwistedNematic 超扭曲向列型 和TFT ThinFilmTransistor 薄膜晶体管型 对于S3C2410A的LCD控制器 同时支持STN和TFT显示器 STN与TFT的主要区别在于 从工作原理上看 STN主要是增大液晶分子的扭曲角 而TFT为每个像素点设置一个开关电路 做到完全单独的控制每个像素点 从品质上看 STN的亮度较暗 画面的质量较差 颜色不够丰富 播放动画时有拖尾现象 耗电量小 价格便宜 而TFT亮度高 画面质量高 颜色丰富 播放动画时清晰 耗电量大 价格高 常用的LCD显示模块有两种 一是带有驱动电路的LCD显示模块 一是不带驱动电路的LCD显示屏 大部分ARM处理器中都集成了LCD控制器 所以对于采用ARM处理器的系统 一般使用不带驱动电路的LCD显示屏 5 8 2S3C2410A的LCD控制器 S3C2410A中的LCD控制器可支持STN和TFT两种液晶显示屏 LCD控制器支持单色 4级 16级灰度LCD显示 以及8位彩色 12位彩色LCD显示 LCD控制器由REGBANK LCDCDMA VIDPRCS TIMEGEN和LPC3600组成 8位彩色LCD显示原理 与LCD相关的寄存器 LCD控制寄存器1 LCDCON1 LCD控制寄存器2 LCDCON2 LCD控制寄存器3 LCDCON3 LCD控制寄存器4 LCDCON4 LCD控制寄存器5 LCDCON5 帧缓冲起始地址寄存器1 LCDSADDR1 帧缓冲起始地址寄存器2 LCDSADDR2 帧缓冲起始地址寄存器3 LCDSADDR3 RGB查找表寄存器 REDLUT GREENLUT BLUELUT 抖动模式寄存器 DITHMODE 5 8 3LCD显示的编程实例 举例 在LCD上填充一个蓝色的矩形 并画一个红色的圆 1 定义与LCD相关的寄存器 defineM5D n n 0 x1fffff defineMVAL 13 defineMVAL USED 0 defineMODE CSTN 8BIT 0 x2001 defineLCD XSIZE CSTN 320 defineLCD YSIZE CSTN 240 defineSCR XSIZE CSTN LCD XSIZE CSTN 2 虚拟屏幕大小 defineSCR YSIZE CSTN LCD YSIZE CSTN 2 defineHOZVAL CSTN LCD XSIZE CSTN 3 8 1 有效的VD数据行号是8 defineLINEVAL CSTN LCD YSIZE CSTN 1 defineWLH CSTN 0 defineWDLY CSTN 0 defineLINEBLANK CSTN 16 0 xff defineCLKVAL CSTN 6 130hz 50Mhz WLH 16hclk WDLY 16hclk LINEBLANK 16 8hclk VD 8 defineLCDFRAMEBUFFER0 x33800000 帧缓冲区起始地址 举例 在LCD上填充一个蓝色的矩形 并画一个红色的圆 2 初始化LCD 即对相关寄存器进行赋初值 其中参数type用于传递显示器的类型 如STN8位彩色 STN12位彩色等 voidLCD Init inttype rIISPSR 2 22 1 rLCDSADDR2 M5D U32 frameBuffer8Bit SCR XSIZE CSTN LCD YSIZE CSTN 1 rLCDSADDR3 SCR XSIZE CSTN LCD XSIZE CSTN 2 11 LCD XSIZE CSTN 2 rDITHMODE 0 rREDLUT 0 xfdb96420 rGREENLUT 0 xfdb96420 rBLUELUT 0 xfb40 break default break 举例 在LCD上填充一个蓝色的矩形 并画一个红色的圆 3 书写常用的绘图函数 函数 PutCstn8Bit 实现了在LCD的 x y 处打点的功能 void PutCstn8Bit U32x U32y U32c if x x 4 8 c 4 书写主函数 通过调用初始化函数及绘图API函数 实现在LCD上填充一个蓝色的矩形 并画一个红色的圆 voidMain void intCount 3000 Target Init 硬件初始化GUI Init 图形用户接口初始化 包括对LCD的初始化Set Color GUI BLUE Fill Rect 0 0 319 239 Delay Count Set Color GUI RED Draw Circle 100 100 50 Delay Count while 1 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 9 1触摸屏工作原理 根据采用的不同技术原理 触摸屏可分为以下五类 矢量压力传感式 电阻式 电容式 红外线式和表面声波式 其中电阻式触摸屏在嵌入式系统中用的较多 结构如下 5 9 2S3C2410A的触摸屏接口 S3C2410A支持触摸屏接口 它由一个触摸屏面板 四个外部晶体管 一个外部电压源 信号AIN 7 和信号AIN 5 组成 CPU与触摸屏连接图 5 9 3触摸屏编程实例 举例 在触摸屏上按下的位置画一个点 1 对与触摸屏相关的寄存器进行初始化 voidTouch Init void rADCDLY 0 x5000 ADC启动或间隔延时rADCTSC 0 8 1 7 1 6 0 5 1 4 0 3 0 2 3 设置成为等待中断模式 1101rADCCON 1 14 49 6 7 3 0 2 1 1 0 设置ADC控制寄存器 举例 在触摸屏上按下的位置画一个点 2 对触摸屏中断进行初始化 voidTouchINT Init void if rSRCPND 设置中断向量 举例 在触摸屏上按下的位置画一个点 3 书写触摸屏中断服务程序 当有触笔按下时 转到中断服务程序执行 void irqTouch ISR void intAD XY yPhys xPhys 关中断rINTMSK BIT ADC rINTSUBMSK BIT SUB ADC BIT SUB TC 关闭子中断 ADC和TC 获取位置AD XY GetTouch XY AD 得到阿A D转换后的X Y值yPhys AD XY 举例 在触摸屏上按下的位置画一个点 4 书写主程序 首先对硬件及图形用户界面进行初始化 接下来通过一个while循环语句等待触摸屏中断的发生 一旦有触摸屏中断发生 则转到触摸屏中断服务程序执行 voidMain void Target Init 初始化硬件GUI Init 初始化图形用户界面 背景填充为蓝色Set Color GUI BLUE Fill Rect 0 0 319 239 设置当有触笔按下时 在LCD上画点的颜色为黄色Set Color GUI YELLOW 等待触摸屏中断while 1 主要内容 1 3 2 4 S3C2410简介 I O口 中断 DMA 5 A D接口 6 UART 触摸屏 7 8 9 10 11 LCD USB设备的数据收发 音频录放 键盘和LED控制 5 10 1音频录放的实现原理 声波是在时间上和幅度上都连续的模拟信号 我们称之为模拟音频信号 而计算机的内部是一个二进制的世界 二进制是计算机唯一能够识别的语言 因此为了让计算机能够对音频信号进行存储和处理 必须将模拟音频信号进行数字化 数字化的过程涉及到采样 量化和编码等步骤 我们把数字化后的音频信号称之为数字音频信号 录音过程 把模拟音频转换成数字音频的过程 通常通过AD转换器 ADC 实现 放音过程 把数字音频转换成模拟音频的过程 该过程与AD转换过程相反 通常通过DA转换器 DAC 实现 5 10 2S3C2410A的IIS总线接口 IIS总线是近年出现的一种面向多媒体计算机的音频总线 该总线专门用于音频设备之间的数据传输 IIS总线接口是为连接标准编解码器 CODEC 提供的外部接口 S3C2410AIIS Inter ICSound 接口能用来连接一个外部8 16位立体声音频CODEC 与IIS相关的寄存器 IIS控制寄存器 IISCON IIS模式寄存器 IISMOD IIS预分频寄存器 IISPSR IISFIFO控制寄存器 IISFCON IISFIFO寄存器 IISFIFO 5 10 3音频录放的编程实例 举例 实现语音的实时录制和实时播放功能 由于使用DMA方式进行语音录放 因此这里需要注册DMA中断pISR DMA2 unsigned TX Done pISR DMA1 unsigned RX Done rINTMSK 录音过程 DMA1用于音频输入rDMASKTRIG1 1 2 0 1 初始化DMA通道1rDISRC1 U32 IISFIFO 接收FIFO地址rDISRCC1 1 1 1 0 源 APB 地址固定rDIDST1 U32 rxdata rDIDSTC1 0 1 0 0 目标 AHB 地址增加rDCON1 0 31 0 30 1 29 0 28 0 27 2 24 1 23 1 22 1 20 0 xffff0 握手模式 与APB同步 中断使能 单元发送 单个服务模式 目标 I2SSDI 硬件请求模式 不自动重加载 半字rDMASKTRIG1 1 1 DMA1通道打开 初始化IIS 用于接收rIISCON 0 5 1 4 1 1 发送DMA请求禁止 接收DMA请求使能 IIS预分频器使能rIISMOD 0 8 1 6 0 5 0 4 1 3 0 2 1 0 主模式 接收模式 IIS格式 16位 256fs 32fsrIISPSR 8 5 8 0 50 7 9 5 6448rIISFCON 0 15 1 14 0 13 1 12 发送FIFO 正常 接收FIFO DMA 发送FIFO禁止 接收FIFO使能rIISCON 1 0 IIS使能while Rx Done Rx Done 0 IIS停止Delay 10 用于结束半字 字接收rIISCON 0 x0 IIS停止rDMASKTRIG1 1 2 DMA1停止rIISFCON 0 x0 发送 接收FIFO禁止 放音过程 DMA2用于音频输出rDMASKTRIG2 1 2 0 1 初始化DMA通道2rDISRC2 U32 rxdata rDISRCC2 0 1 0 0 源 AHB 地址增加rDIDST2 U32 IISFIFO 发送FIFO地址rDIDSTC2 1 1 1 0 目标 APB 地址固定rDCON2 0 31 0 30 1 29 0 28 0 27 0 24 1 23 1 22 1 20 0 xffff0 握手模式 与APB同步 中断使能 单元发送 单个服务模式 目标 I2SSDO 硬件请求模式 不自动重加载 半字rDMASKTRIG2 1 1 DMA2通道打开 初始化IIS 用于发送rIISCON 1 5 0 4 1 1 发送DMA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论