嵌入式作业.doc

上传人:李医生 文档编号:5655519 上传时间:2020-07-20 格式:DOC 页数:8 大小:39KB
返回 下载 相关 举报
嵌入式作业.doc_第1页
第1页 / 共8页
嵌入式作业.doc_第2页
第2页 / 共8页
嵌入式作业.doc_第3页
第3页 / 共8页
嵌入式作业.doc_第4页
第4页 / 共8页
嵌入式作业.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《嵌入式作业.doc》由会员分享,可在线阅读,更多相关《嵌入式作业.doc(8页珍藏版)》请在三一文库上搜索。

1、功能应用场合TPM TPM共有三个模块,TPM0、TPM1、TPM2,TPM0有6个通道,TPM1和TPM2只有2个通道。TPM支持输入捕捉、输出比较,并能产生脉宽调信号(PWM)来控制电机。通过异步时钟源,可以让计数器、输出比较和捕捉寄存器工作在低功耗模式下,所以KL25的TPM模块又可以称为LPTPM。 TPM是递增计数器,通过设定模块的溢出值,当计数器达到该数值时产生中断。输入捕捉功能靠中断来实现。PIT 周期中断定时器模块PIT是一组可以用于产生中断和触发器DMA通道定时器。该模块的中断都是可屏蔽的,每个定时器都有独立的溢出周期,此外,周期终端定时器模块没有外部引脚。PIT的基本操作有

2、: 1.定时器:当使能时,定时器定期产生触发 2.调试模式:调试模式下,定时器由MCRFRZ决定是否冻结 3.中断:所有定时器都支持中断的产生 PIT可实现定时中断功能。LPTMR 低功耗定时器LPTMR可以被配置成具有可选预分频因子的定时计数器,也可以被配置成带有脉冲干扰滤波器的脉冲计数器。绝大多数的系统复位都不会影响其继续使用,可以用作天数计数器。LPTMR模块共有5种操作模式,即运行模式、等待模式、停止模式、低漏电模式和调试模式。在这五种模式下,LPTMR都可以正常工作。在等待模式、停止模式、低漏电模式下,可以通过配置LPTMR,产生一个中断请求,退出低功耗模式。 LPTMR可应用于脉冲

3、技术和定时中。RTC 实时时钟RTC模块是一个独立供电的模块,在芯片掉电时由备用电源供电,确保RTC计时器正常运行,保持RTC寄存器运行状态。RTC模块主要包含外部晶体振荡器、POR块、RTC计时器以及自身的软件复位控制位。外部晶体振荡器为RTC计时器或其他外设提供32.768kHz的时钟;POR块在RTC模块上电时产生一个上电复位信号,将所有的RTC寄存器初始化为默认状态;RTC计时器由一个具有报警功能的32位秒寄存器和一个具有补偿功能的16位预分频寄存器组成;RTC自身的软件复位控制位,也会初始化所有的RTC寄存器。在VBAT掉电或POR中断时,不允许访问RTC任何寄存器(除控制寄存器),

4、否则将产生总线错误。 RTC可应用在日历和闹钟历。1. 分析归纳TPM、PIT、LPTMR、RTC各定时器模块的功能及应用场合,列表说明。2. 编写DAC模块程序,分别配置缓冲区操作模式为缓冲区正常模式和缓冲区单次扫描模式,完成三角波发生器功能。/DAC驱动程序typedef structDACx dacx;/配置DAC模块号DAC_MemMapPtr DACx_Base_Ptr;/选择DAC通道号unit8_t Water_Mark_Mode;/选择水印模式的数字unit8_t Buffer_Enable;/配置buffer缓冲区使能unit8_t Buffer_Mode;/配置buffer

5、缓冲区的模式unit8_t Triger_Mode;/配置触发器模式unit8_t Buffer_Init_Pos;/配置buffer缓存区的起始位置unit8_t Buffer_Up_Limit;/配置buffer缓冲区的最大长度unit8_t DAC_irqc;/选择DAC中断模块DAC_ISR_CALLBACK isr_func;/设置回掉函数LPLD_DAC_Cfg_t;/对DAC_Config进行默认配置unit8_t LPLD_DAC_Init(LPLD_DAC_Cfg_t *DAC_Config)/水印模式的字数默认为一个字节if(DAC_Config - Water_Mark_

6、Mode = NULL)DAC_Config - Water_Mark_Mode = WATER_MODE_1WORD;/缓冲区使能默认为禁用缓冲区在单次扫描模式下,这里改为BUFFER_MODE_ONETIMESCAN;if(DAC_Config - Buffer_Enable = NULL)DAC_Config - Buffer_Enable = BUFFER_DISABLE;/缓冲区模式默认为正常模式if(DAC_Config - Buffer_Mode = NULL)DAC_Config - Buffer_Mode =BUFFER_MODE_NORMAL;/触发模式默认为无触发模式if

7、(DAC_Config - Triger_Mode = NULL)DAC_Config - Triger_Mode = TRIFER_MODE_NONE;/缓冲区的起始位置默认为0if(DAC_Config - Buffer_Init_Pos = NULL)DAC_Config - Buffer_Init_Pos = 0;/缓冲区的最大值为16if(DAC_Config - Buffer_UP_Limit = NULL)DAC_Config - Buffer_Up_Limit = 15;/中断方式默认为不开中断if(DAC_Config - DAC_irqc =NULL)DAC_Config

8、- DAC_irqc = 0;/配置DMA寄存器return LPLD_DAC_Config(DAC_Config);/设置DAC通道的缓冲区数据void LPLD_DAC_Set_Buffer(DACx dacx,unit8 DACx_DATn,unit16 data16)/配置端口基地址DAC_MemMapPtr dacptr = DAC_Ptrdacx;/配置DAC缓存区地址好DAC_DALT_REG(dacptr,DACx_DATn) = (data16 &0x0ff);/配置相应缓冲区的数据DAC_DATH_REG(dacptr,DACx_DATn) = (data16 &0xf00

9、)8;/定义初始化结构体LPLD_DAC_Cfg_t dac_config;/三角波函数void main (void)int i=0,j;char delta=1;/选择DAC0,DAC0引脚输出dac_config.DACx_Base_Ptr = DAC0_BASE_PTR;LPLD_DAC_Init(&dac_config);while(1)if(i=0)delta=1;else if(i=4095)delta=1;i+=delta;LPLD_DAC_Set_Buffer(DAC0,0,i);for(j=0;j10;i+)/上述代码决定每次循环的输出值是增还是减,因为我们要输出三角波,因

10、/此不管波形的增加还是减小,它都是线性变化的,当到达底部后,让每次/变化为递增DELTA,当达到顶部后,让每次变化为递减DELTA,这个DELTA/值默认设置为13. 从从机的接入、时钟控制、数据传输速度、是否可以实现多主控、作用领域等方面比较SPI和I2C。SPII2C从机的接入 SPI是典型的“主机-从机”系统。一个SPI系统。由一个主机和一个或多个从机构成,主机启动一个与从机的同步通信,从而完成数据的交换。提供SPI串行时钟的SPI设备称为SPI主机或者主设备,其他设备则成为SPI从机或者从设备。在MCU扩展外设结构中,仍然使用主机-从机的概念,此时MCU必须工作于主机方式,外设工作于从

11、机方式。 为了消除I2C总线系统中主机与从机的地址选择线,最大限度地简化总线连接线,I2C采用了独特的寻址约定,规定了起始信号后的第一个字节为寻址字节,用以寻址从机并规定数据传送方向。 方向位为0时,表示主机将数据写入从机,方向位为1时反之。主机发送起始信号后,立即发送寻址字节,这时总线上的所有器件都将寻址字节中的7位地址与自己器件的地址相比较。如果两者相同,则该器件认为被从机寻址,并发送应答信号,从机根据数据方向位确定自身是发送器还是接收器。时钟控制 SPI的数据传输是在时钟信号SCK的控制下完成的。数据传输过程涉及时钟相位与时钟极性两个概念。时钟极性是指时钟信号在空闲时是高电平还是低电平,

12、所谓时钟相位是指时钟信号SCK的第一个沿边出现在第一位数据传输周期的中央位置还是开始位置。主机和从机必须使用同样的时序模式才能正常通信。总体要求是:确保发送数据在一周期开始的时刻上线,接收方在1/2周期的时刻从线上读取,这样是最稳定的通信方式。 如果某从设备在时钟的上升沿输入数据,在下降沿输出数据。那么,主机的SPI时钟配置应为在时钟的上升沿输出数据,下降沿输入数据,因此主设备SPI时钟极性应配置为下降沿有效。只有正确地配置时钟极性和时钟相位,数据才能够被准确地发送和接收。因此必须严格对照从设备的SPI接口时序来配置主设备时钟。 在四种状态下进行时钟控制。 开始信号START: 当SCL为高电

13、平时,SDA由高电平向低电平跳变,产生开始信号。当总线空闲的时候,主机通过发送开始信号START建立通信。 停止信号STOP: 当SCL为高电平时,SDA由低电平向高电平跳变,产生停止信号。主机通过发送停止信号,结束时钟信号和数据通信。SDA和SCL都将被复位为高电平状态。 重新开始信号Repeated START: SCL为高电平时,SDA由高电平向低电平跳变,产生重新开始信号,它的本质就是一个开始信号。 应答信号A: 应答信号是在发送了8个数据位之后,第9个时钟周期出现的,这时主机必须在这一时钟位上释放数据线,由接收设备拉低SDA电平来产生应答幸好或者由接收设备保持SDA的高电平来产生非应

14、答信号,一个完整的字节数据传输需要9个时钟脉冲。数据传输速度 SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。 总线时钟频率为24MHz,系统时钟频率为48MHz。 串行的8位双向数据传输位速率在标准模式下可以达到100Kb/s(S08AW系列的I2C模块只支持标准模式),快速模式下可达到400Kb/s,高速模式下可达到400Kb/s。 是否可以实现多主控 不支持多主控。 SPI总线可以配置成单主单从,单主多从,互为主从。 SPI是一种串行同步通讯协议,

15、由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。 支持多主控。 I2C支持多主控,如果两个或者多个主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。其中任何能够进行发送和接收的设备都可以成为主机。一个主机能够控制信号的传输和时钟频率。当然在任何时间点上只能有一个主机。作用领域 SPI主要应用在高速数据传输的外设上,例如 SD卡,flash芯片等。 I2C的特点是接线少,并且有握手协议,可以用在数量不大的地方。例如 24LC04等e2prom。4.谈谈学习该门课程的收获与体会。通过一学期嵌入式基础知识的学习和实践,我对嵌入式系统有了一定的了解

16、。嵌入式系统大体上是指带有微处理器的专用软硬件系统,他们具有自己的操作系统,能实现具体的功能。嵌入式系统有四个层次:功能层、软件层、中间层、硬件层。不同层次分别包含了不同的模块:功能层:应用程序软件层:文件系统、图形用户接口、任务管理、实时操作系统中间层:硬件抽象层、极板支持包硬件层:嵌入式微处理器、各类接口不过在课程中仅仅掌握理论知识是远远不够的,所以最后三周的实践课给了我们很好的实践机会,让我们将理论付诸于实际,最终在开发板上实现呼吸灯的转换,键盘输入/输出以及传感器数据的采集。在使用KL25嵌入式开发板做工程的时候,我发现C语言尤为重要,不论是做嵌入式软件开发还是硬件开发,C语言都是格外

17、有用的工具。接着,我们应该对操作系统有详尽的了解,这让我们懂得软件是如何支配硬件执行命令的,例如操作系统的进程、线程、操作系统分配资源的方式、操作系统管理硬件的方式。最后们我们还需要细细学习ARM 系列的嵌入式系统,深入理解ARM的含义,只有这样才能算得上初步掌握嵌入式的含义。在学习嵌入式系统的课程中,我发现C语言,数据结构,操作系统和硬件组成原理等几门课程对嵌入式的学习都有相当大的帮助,于是在看书过程中,遇到的无法理解的时序和接口的问题,我就翻出以前的书籍查询,或是在网络上搜索相关的工程案例,这对我学习嵌入式系统来说有相当大的帮助。近年来,嵌入式作为一个热门行业备受关注,我们也应该好好学习嵌入式的知识。综上所述,我认为学习嵌入式系统需要把握好下述两个方面:1. 把握通用知识与芯片相关知识之间的平衡即理解芯片应用的设计,理解与芯片功能相关的知识,将理论化为应用;2. 把握硬件与软件之间的关系嵌入式系统是软硬结合一体的工程,两者不可相互分割,必须结合在一起学习。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1