嵌入式高级应用复习_第1页
嵌入式高级应用复习_第2页
嵌入式高级应用复习_第3页
嵌入式高级应用复习_第4页
嵌入式高级应用复习_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、1、最小系统包括哪些模块?答:1、一个嵌入式处理器是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器才可能工作。2、这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。3、大多数基于ARM9处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以把这部分也归入到最小系统中。 2、ARM微处理器有多达十几种内核结构、几十个芯片生产厂家以及千变万化的内部功能配置组合;开发人员应如何选择?答:1、系统的工作频率 系统的工作频率在很大程度上决定

2、了处理器的处理能力; ARM7系列:0.9MIPS/MHz,主频:20133MHz; ARM9系列:1.1MIPS/MHz,主频:100233MHz;ARM10最高可达700MHz2、芯片内存储器的容量 大多数的ARM微处理器片内容量都不大,需要用户在设计系统时外扩存储器; ATMEL公司的AT91F40162具有2MB的片内存储空间;3、片内外围电路的选择 ARM芯片根据各自不同的应用领域,扩展相关的功能模块,集成在芯片中,称之为片内外围电路; 如:USB接口、IIS接口、LCD控制器、键盘接口、ADC和DAC等等; 4、目标系统是否使用操作系统 Windows CE、Linux; 需要选择

3、ARM720T以上,带有MMU功能,如ARM920T、ARM922T、Strong ARM;而ARM7TDMI没有MMU。 ucLinux、uC/OS-II不需要MMU支持,可以运行于ARM7TDMI硬件平台5、芯片性价比;开发熟悉度等为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1V6表示。3、ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列。4、在ARM汇编语言程序中,以程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时所需

4、的数据。可执行映像文件通常由以下几部分构成: 一个或多个代码段,代码段为只读属性(RO)。 零个或多个包含初始化数据的数据段,数据段的属性为可读写(RW)。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写(ZI)。5、硬件启动程序的工作一般包括:(1) 分配中断向量表(2) 初始化存储器系统(3) 初始化各工作模式下的堆栈(4) 初始化有特殊要求的硬件模块(5) 初始化用户程序的执行环境(6) 切换处理器的工作模式(7) 呼叫主应用程序6、S3C2410是Samsung公司推出的16/32位RISC处理器,主要面向手持设备以及高性价比、低功耗的应用。 CPU内核采用的是ARM公司设计

5、的16/32位ARM920T RISC处理器。7、CPU所需的FCLK时钟信号、AHB总线外围设备所需的HCLK时钟信号,以及APB总线外围设备所需的PCLK时钟信号 。8、电源控制:正常模式:电源管理模块为CPU和所有外设提供电源慢速模式:使用外部时钟为CPU提供电源空闲模式:电源管理模块只为外设提供时钟 掉电模式:电源管理模块断开内部电源9、端口分类:数据端口、状态端口和控制端口10、S3C2410A共有117个多功能复用输入输出口(I/O口),分为8组PORT APORT H。PORT A除了作为功能口外,它只作为输出口使用;其余的PORT BPORT H都可以作为输入输出口使用。11、

6、与配置I/O口相关的寄存器包括: 端口控制寄存器(GPACONGPHCON) 端口数据寄存器(GPADATGPHDAT) 端口上拉寄存器(GPBUPGPHUP) 杂项控制寄存器 外部中断控制寄存器(EXTINTN) 12、处理中断的步骤如下: (1)保存现场。保存当前的PC值到R14,保存当前的程序运行状态到SPSR。 (2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。 (3)获取中断源。以异常向量表保存在低地址处为例,若是IRQ中断,则PC指针跳到0x18处;若是FIQ中断,则跳到0x1C处。IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来PC指针跳入

7、中断服务子程序处理中断。 (4)中断处理。为各种中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别到底哪一个中断发生了。进而调用相应的函数进行中断处理。 (5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,进 而继续执行被中断的程序。 13、ARM系统包括两类中断:一是IRQ中断,一是FIQ中断。 14、S3C2410为什么要有中断控制器,功能是什么。 S3C2410由ARM920T内核和若干外设组成,每个外设都需要产生一个或多个中断信

8、号,但ARM920T只有一个IRQ和一个FIQ中断引脚,所以需要一个中断控制器来统一管理这些中断。 中断控制器功能包括中断的记录、屏蔽和优先级判断。 中断控制器的功能是需要借助中断控制器的寄存器组来实现。15、中断服务子程序的编写步骤。 1、屏蔽相同(同级)中断 2、处理中断任务 3、对INTPND、SRCPND进行清零操作 4、打开相同(同级)中断16、中断中的main函数编写 1、初始化 2、传递中断服务子程序的地址 3、清除屏蔽寄存器中对应的位 4、进入while循环,等待中断来临。17、Watchdog timer工作原理工作原理:嵌入式系统通常需要工作在具有很大干扰的环境中,因此需要

9、一个独立的硬件电路,检测系统的状态。 Watchdog timer实际是一个计数器,系统正常工作时,每隔一段时间重置计数器值(俗称“喂狗”),从而使得计数条件不触发。当系统出错,无法重置计数器, Watchdog timer可执行特定动作(如reset),从而使系统重新进入正常工作状态。18、S3c2410内置了一个可编程的Watchdog timer,使用递减的方式计数。当计数器到达0时,计数器自动停止,并触发计数条件。两种工作方式: (1)中断方式:当计数条件达到时, Watchdog timer将会向中断控制器发出中断请求。 (2)Reset方式:当计数条件到达时, Watchdog t

10、imer将会直接向S3C2410发出维持128个PCLK时钟周期的Reset信号。19、Watchdog timer一般实验步骤 对WTCON寄存器进行设置 对WTDAT和WTCNT进行设置 传递WDT中断服务程序地址 打开WDT中断 启动看门狗在WDT中断服务程序中,可以喂狗,从而实现计数器重置,保证系统不会重启。20、所谓DMA方式,即直接存储器存取(Direct Memory Acess),是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。S3C2410A支持位于系统总线和外围总线之间的具有4个通道的DMA控制器。 要进行DMA操作,首

11、先要对S3C2410A的相关寄存器进行正确配置。每个DMA通道有9个控制寄存器,因此对于4通道的DMA控制器来说总共有36个寄存器。其中每个DMA通道的9个控制寄存器中有6个用于控制DMA传输,另外3个用于监控DMA控制器的状态。 21、使用串口发送数据。其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节的代码如下:void Uart_SendByte(int data) if(whichUart=0) if(data=n) while(!(rUTRSTAT0 & 0x2); Delay(10); /延时,因为超级终端速度较慢 WrUTXH0(r); while

12、(!(rUTRSTAT0 & 0x2); /等待直到发送状态就绪 Delay(10); WrUTXH0(data); else if(whichUart=1) else if(whichUart=2) 22、使用串口接收数据。如果没有接收到字符则返回0。char Uart_GetKey(void) if(whichUart=0) if(rUTRSTAT0 & 0x1) /UART0接收到数据 return RdURXH0(); else return 0; else if(whichUart=1) else if(whichUart=2) else return 0;23、S3C2410A的A

13、/D转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换成10位数字编码。在AD转换时钟为2.5MHz时,其最大转换率为500KSPS,输入电压范围是03.3V。启动采样q 将ADCCON寄存器的BIT0置1可以启动转换,当启动转换后,该位会被自动清除。同时启动转换时还需要指定转换通道。q 下面代码启动A/D转换:rADCCON|=0x1; /start ADCrADCCON = rADCCON & 0xffc7 | (ch7) return 0;/通道不能大于7 for(i=0;i16;i+)/为转换准确,转换16次 rADCCON |= 0x1; /启动 A/D 转换 rADCCO

14、N = rADCCON & 0xffc7 | (ch4); /为转换准确,除以16取均值 24、闹钟功能 (中断) Alarm RTC 在指定的时间产生报警信号,包括 CPU 工作在正常模式和休眠(power down)模式下。 在正常工作模式,报警中断信号(ALMINT)被激活。 在休眠模式,报警中断信号和唤醒信号(PMWKUP)同时被激活。RTC 报警寄存器(RTCALM)决定报警功能的使能/屏蔽和完成报警时间检测。 /*/ Function name: rtc_alarm_set/ Description : 设置S3C2410的告警时间以及方式/ Return type: void/

15、Argument : p_date, 告警的时间/ mode, 告警模式*/void rtc_alarm_set(st_date* p_date, unsigned char mode) Irq_Request(IRQ_RTC, rtc_int_isr); rRTCCON = 0x01; rALMYEAR = p_date-year; rALMMON = p_date-mon; rALMDATE = p_date-day; rALMHOUR = p_date-hour; rALMMIN = p_date-min; rALMSEC = p_date-sec; rRTCALM = mode; rR

16、TCCON = 0x00; Irq_Enable(IRQ_RTC); 25、时间片中断 Time tick RTC 时间片中断用于中断请求。寄存器 TICNT有一个中断使能位和中断计数。该中断计数自动递减,当达到 0 时,则产生中断。 中断周期按照下列公式计算: Period = ( n+1 ) / 128 second 其中,n 为 RTC 时钟中断计数,可取值为(1-127) /*/ Function name: rtc_tick_init/ Description : 初始化S3C2410的TICK定时器/ Return type: void/ Argument : tick, 设置的T

17、ICK频率(时钟滴答的周期为 (1+tick)/128秒)*/void rtc_tick_init( char tick ) Irq_Request(IRQ_TICK, rtc_tick_isr); rRTCCON = 0x0; /No reset3, Merge BCD counters2, BCD clock select XTAL1, RTC Control disable0 rTICNT = (tick&0x7f)|0x80;/*TICK 中断使能,周期为(1+tick)/128秒*/ Irq_Enable(IRQ_TICK); 26、LCD液晶显示器主要有两类:STN(Super T

18、wisted Nematic,超扭曲向列型)和TFT(Thin Film Transistor,薄膜晶体管型)。对于S3C2410A的LCD控制器,同时支持STN和TFT显示器。 常用的LCD显示模块有两种:一是带有驱动电路的LCD显示模块,一是不带驱动电路的LCD显示屏。大部分ARM处理器中都集成了LCD控制器,所以对于采用ARM处理器的系统,一般使用不带驱动电路的LCD显示屏。 27、根据采用的不同技术原理,触摸屏可分为以下五类:矢量压力传感式、电阻式、电容式、红外线式和表面声波式。其中电阻式触摸屏在嵌入式系统中用的较多,28、IIC总线是PHILIPS公司推出的芯片间串行传输总线。它以1

19、根串行数据线(SDA)和1根串行时钟线(SCL)实现了全双工的同步数据传输。29、IIC总线硬件结构 IIC串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。 总线的运行(数据传输)由主控器控制。主控器启动数据的传送(发出启动信号),发出时钟信号,传送结束时发出停止信号,通常主控器是微处理器。被主控器寻访的设备都称为从机。 为了进行通讯,每个接到IIC总线的设备都有一个唯一的地址,以便于主控器寻访。30、IIC总线时序和读写逻辑 开始条件: 在开始条件下,当 SCL为高电平时,SDA 由高转为低。 停止条件: 在停止条件下,当 SCL为高电平时,SDA 由低转为高。 确认信号

20、(ACK): 在接收方应答下,每收到一个字节后便将 SDA电平拉低。 数据传送(Read/Write):IIC 总线启动或应答后 SCL高电平期间数据串行传送;低电平期间为数据准备,并允许 SDA 线上数据电平变换。总线以字节(8bit)为单位传送数据,且高有效位(MSB)在前。31、脉宽调制- PWMq PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。q PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。q 电压或电流源是以一种通(ON)或断(OFF)的重复脉

21、冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。q S3C2410处理器有5个16位定时器,其中定时器0/1/2/3有PWM脉冲输出功能编程改变输出的频率rTCFG0=0xFF; /* 设置定时器的预分频率值:TIME0/1=255, TIME2/3/4=0 */rTCFG1=0x1; /* 设置定时器的工作模式:中断模式*/* 设置定时器的分频率值:TIMER0为1/4,其他为1/2*/* 输出脉冲:频率从4000HZ到14000HZ, 使用2/3的占空比 */for ( freq = 400

22、0; freq 14000; freq+=1000 )div = (PCLK/256/4)/freq; rTCON=0x0; rTCNTB0= div; rTCMPB0= (2*div)/3;rTCON=0xa;/* 手工装载定时器的计数值 */ rTCON=0x9;/* 启动定时器*/ for( index = 0; index 100000; index+); rTCON=0x0;/* 延时并停止定时器 */编程改变输出的占空比div = (PCLK/256/4)/8000;/* 输出频率8000HZ, 使用1/100 - 95/100的占空比 */for ( rate = 1; rate 100; rate += 5 ) rTCNTB0= div;rTCMPB0= (rate*div)/50;/* 修改占空比 */rTCON=0xa;/* 手工装载定时器的计数值 */rTCON=0x9;/* 启动定时器*/

温馨提示

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

评论

0/150

提交评论