欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第五章高速输入(1讲).ppt

    • 资源ID:71439375       资源大小:1.60MB        全文页数:30页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第五章高速输入(1讲).ppt

    第五章 高速输入单元HSIHSI:用于测量外部频率信号的子系统 (频率信号传输特点,基本无信号损耗、抗干扰能力强、便于远距离传输)5.1 频率参数计算及频率测量的一般方法一、频率基本参数 1、频率:f 2、周期:T 3、占空比:占空比=(脉宽/周期)100%占空比是常在变频控制中使用的一种参数二、计算机常用频率测量方法(间接测量法测量频率信号)频率测量:最直接的方法:捕捉被测脉冲的上升沿或下降沿,利用算法编程计算频率参数。T测=T2-T11、计数测量法 计算机输出闸门时间T(利用定时器编程获取的标准时间),通过记录在闸门时间内通过的被测脉冲个数N(利用计数器获得脉冲个数),通过一定的算法获得频率信号参数。T测=T标/N ;f测=N/T标 被测频率越高,测量精度越高。(测量精度与计数脉冲数成正比)2、周期测量法 以被测脉冲信号作为控制信号(闸门时间),通过计算一个外部的标准频率在闸门时间内通过的被测脉冲个数,获得频率信号参数。f测=f标/N 被测频率越低,测量精度越高。5.2 HSI的基本结构与工作原理一、硬件结构及工作原理 核心:720位的FIFO 与 保持寄存器 四路频率信号输入:HSI.0HSI.3 HSI允许逻辑:通过对IOC0的设置选通HSI引脚 HSI_MODE(方式寄存器):设定HSI工作方式(编程决定)输入变化检测器:对各引脚输入的脉冲信号作正沿或负沿检测,对于8个正跳变为一外部事件的检测方式,输入脉冲通过八分频计数器后送输入变化检测器。FIFO中断及控制逻辑:根据保持寄存器是否有数据及FIFO队列所存储数据的数量达到6项可以申请HSI中断 FIFO队列及保持寄存器(20位):高4位用于存放事件发生时的状态,低16位存放事件发生时的时间信息。最先发生的事件状态与时间信息放入保持寄存器。FIFO队列及保持寄存器组合可以存放8个事件数据,如果记满8个事件后不及时读空,后续事件数据将不能再装入。HSI_TIME:存放保持寄存器低16位的时间信息(编程读出)HSI_STATUS:存放保持寄存器高8位的事件状态信息(编程读出)MCS-96 HSI的特点:1.直接检测脉冲沿的变化,同时记录状态变化的时刻(时间基准由T1提供)2.可记录多达8个外部事件的时间而不丢失数据(自动记录、具有事件的记忆能力)3.对于一个外部事件,可提供多种检测状态变化的方式。(上沿、下沿、每个沿、8个正跳变)4.提供多通道的频率数据采集。二、HSI 的控制及数据读出 1.HSI引脚控制(IOC0、IOC1)例:接通HIS.0HIS.3 ORB IOC0,#01010101B ANDB IOC1,#10101111B2.HSI方式控制(HSI_MODE)8位:地址:03H,通过对HSI_MODE的设定,决定输入脉冲的检测方式 相邻2位分配给一个引脚00:方式0:8个正跳变为一触发事件01:方式1:每个正跳变为一触发事件10:方式2:每个负跳变为一触发事件11:方式3:每个跳变为一触发事件3.HSI数据状态判断(HSI_STATUS)8位:地址:06H,通过对HSI_STATUS各位的检测,了解事件产生的引脚以及引脚电平情况。相邻两位表达一个引脚的事件与电平状况。低位:引脚有无事件产生,=1,有事件产生高位:检测到的引脚电平。4.HSI是否有数据的判断 当FIFO内记满后,要及时的读出,否则将丢失后续被测频率数据。最基本的读出方式为查询方式(例如通过查询FIFO满标志或保持寄存器有数标志来及时读取检测到的频率数据)。JBS IOS1,6,HSI_READ或:JBS IOS1,7,HSI_READ如果考虑到单片机的工作效率,可以使用中断方式监视FIFO满标志或保持寄存器有数标志,通过编制中断服务程序读取FIFO或保持寄存器中的数据5.HSI数据读出一、读取HIS状态状态寄存器事件的状态寄存器:HSI_STATUS 8位 地址:06H 状态寄存器中保留了所采集到的频率引脚的状态信息,由此可判断频率信号来自于那个输入引脚及输入电平的“0”、“1”状态LDB AL,HSI_STATUS二、读取HIS时间寄存器事件的时间计数器:HSI_TIME 16位、地址:04H、05H 采用16位数据读出方式读:HSI_TIME LD BX,HSI_TIME 注意:当读取一次时间计数器后,与本次事件有关的HSI_STATUS将全部清0,因此为了能够保留HSI_STATUS的内容,操作过程为先读状态寄存器,后读时间寄存器。LDB AL,HSI_STATUS LD BX.HSI_TIME三、参数计算1、周期计算:T测=(HIS_TIME2)-(HIS_TIME1)*T1min2、频率计算:f测=1/T测例:开启HSI的各个引脚,各引脚均为每个正跳变为一触发事件。当FIFO满时,将状态寄存器内容读入3000H地址开始的存储空间中,将时间寄存器内容读入3100H地址开始的存储空间中,试编程。ORG 2500HHSI_READ:ORB IOC0,#55H ;接通各引脚 LDB HSI_MODE,#01010101B;设定跳变检测方式WAIT:LDB FIOS1,IOS1 ;复制IOS1 JBC FIOS1,6,WAIT ;查询FIFO满?未满,等待,查询 LDB DL,#8 ;设定循环计数器=8 LD AX,#3000H ;设定AX为间址寄存器 LD BX,#3100H ;设定BX为间址寄存器LOOP:LDB CL,HSI_STATUS ;读状态 STB CL,AX+;状态转存3000H开始存储空间 LD CX,HSI_TIME ;读时间 ST CX,BX+;时间转存3100H开始存储空间 DJNZ DL,LOOP ;8组数据读完否?RET ;读完返回 5.3 HSI所能分辨的输入频率范围方式方式0:8个正跳变为一触发事件个正跳变为一触发事件(取取8次跳变的平均值次跳变的平均值)T测=T1(2)-T1(1)/8由于:T1(2)-T1(1)的最小分辨值为:T1min f测=8/T测 f测max=8/T1min f测min=8/T1max当系统晶体振荡器选用12MHz:T1min=2s f测max=8/T1min4MHz T1max=131.072ms f测min=8/T1max61Hz频率测量范围大致为:61Hz4MHz方式方式1:每个正跳变为一触发事件:每个正跳变为一触发事件 方式方式2:每个负跳变为一触发事件:每个负跳变为一触发事件以上两种方式测量频率范围是相同的的f测=1/T测 f测max=1/T1min f测min=1/T1max当系统晶体振荡器选用12MHz:T1min=2s f测max=1/T1min500KHz T1max=131.072ms f测min=1/T1max7.6 Hz频率测量范围大致为:7.6Hz500KHz方式方式3:每个跳变为一触发事件:每个跳变为一触发事件f测=1/2 T测 f测max=1/2T1min f测min=1/2T1max由于HSI的频率测量值来自T1,而T1由16位计数器构成,因此,在 HSI的频率测量全范围内,并非是连续无间断测量,而是在全范围内将测量频率分为了65536等份。如:在12MHz1、采用8个正跳变时被测最高频率为:f测(max)=8/(2*20)s=4MHz被测次高频率为:f测(max-1)=8/(2*21)s=2MHz-被测最低频率为:f测(min)=8/(2*216)s=61Hz2、采用1个正跳变时被测最高频率为:f测(max)=1/(2*20)s=500KHz被测次高频率为:f测(max-1)=1/(2*21)s=250KHz-被测最低频率为:f测(min)=1/(2*216)s=7.6Hz5.4 HSI中断处理HSI包含了两种中断一、HSI.0中断由HSI.0引脚上的正跳变引发的中断。(相当于一个外部中断)HSI.0引脚上的正跳变引发的中断以及中断处理程序可以参考EXTINT外中断程序处理方式二、HSI数据有效中断这个中断包含有两个中断源:FIFI满(FIFO内存储的数据达到6项)、保持寄存器有数(由于这两个中断源共用一个中断类别,在中断系统设计时,两个中断源在每次任务中只能选择一种,不能同时使用)。HSI中断的向量地址:2004H通过对IOC1.7的设置决定中断源三、中断处理程序的编制1、主程序与中断初始化(对于开放多个HSI引脚的情况)2、中断服务程序5.5 HSI应用举例例1:采用查询方式计算HSI.0引脚输入脉冲的周期例题编程思路:1.查询方式:查询保持寄存器有数便读出 2.事件触发方式:每个跳变为一外部触发事件 3.周期:T=高电平持续时间+低电平持续时间 高电平持续时间=(后沿计数值-前一个前沿计数值)T1min 低电平持续时间=(前沿计数值-前一个后沿计数值)T1min寄存器设置:HI_TIME equ 30H ;高电平持续时间LOW_TIME equ 32H;低电平持续时间PERIOD equ 34H ;周期值寄存器HI_EDGE equ 36H ;正跳(前沿)计数值寄存器LO_EDGE equ 38H ;负跳(后沿)计数值寄存器(注:由于本例题没有给出系统晶体振荡器的频率参数,因此程序没有考虑将周期计算值转换为带时间量纲的周期值。而只是计算到无时间量纲的周期计数值。)例1:采用中断方式计算HSI.0引脚输入脉冲的周期例题编程思路:1.中断方式:由中断系统查询保持寄存器有数进入中 断服务程序读出事件数据 2.事件触发方式:每个跳变为一外部触发事件 3.周期:T=高电平持续时间+低电平持续时间 高电平持续时间=(后沿计数值-前一个前沿计数值)T1min 低电平持续时间=(前沿计数值-前一个后沿计数值)T1min寄存器设置:HI_TIME equ 30H ;高电平持续时间LOW_TIME equ 32H;低电平持续时间PERIOD equ 34H ;周期值寄存器HI_EDGE equ 36H ;正跳(前沿)计数值寄存器LO_EDGE equ 38H ;负跳(后沿)计数值寄存器HSI小结1.了解HSI的用途2.了解HSI相关专用寄存器的作用 HSI _MODE HSI _STATUS HSI _TIME IOC0.0、2、4、6 IOC1.4、6 (HSI引脚接通)IOC1.7(中断源选择)3.HSI事件的处理(编程)查询方式 中断方式 无论那种方式,程序中均要区分不同引脚的事件,将事件产生的定时器计时数据按引脚分别存储,只有对同一引脚上的信号数据进行处理,才能获得正确的结果。4.HSI计数值与时间的关系 计数值来自定时器T1 周期:T=(N2-N1)T1min 或 T=(N2-N1)T1min/8 (8个正跳变时)频率:f=1/T 占空比:

    注意事项

    本文(第五章高速输入(1讲).ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开