基于单片机的信号测量教学案例设计

来源 :锦绣·中旬刊 | 被引量 : 0次 | 上传用户:nqqlove
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为了锻炼学生单片机系统软硬件设计能力,为工程实际应用打下坚实基础,根据学生专业特点,精心设计了基于单片机的信号测量实践教学案例。本案例实现了信号的周期、频率测量和通过串口传输,经过改进后还可以实现占空比的测量。
  关键词:CubeMx,前后台编程,输入捕获,占空比
  一、引言
  《单片机原理及应用》是计算机科学与技术专业嵌入式方向的一门研究微机原理、接口技術及程序设计的专业拓展课程。本课程担负着认识理解微控制器工作原理、掌握单片机控制系统应用设计,为嵌入式专业课程打下专业基础的任务[1-2]。本课程简明扼要地讲授STM32单片机芯片的硬件结构和工作原理,系统讨论了单片机主要系统资源的设计方法,并为单片机系统设计进行了必要准备。主要内容包括STM32单片机的硬件结构、C语言程序设计、单片机内部主要模块的功能实现、外部接口的应用设计以及初步的单片机应用系统设计等内容。
  考虑到课程应用性强的特点,为了锻炼学生单片机系统软硬件设计能力,为工程实际应用打下坚实基础,课程以STM32CubeMX软件和MDK-ARM软件来学习单片机编程,其中STM32CubeMX采用图形化方式完成外设初始化的设计[3],在MDK-ARM编程中,引入了较多先进的编程思想,硬件采用较新的STM32Nucleo开发板和STM32F411RE控制器。
  课程在锻炼学生软硬件设计能力的同时,引入了前后台编程思想、图形化的初始化设计思想、状态机设计思想等,并引入了实际项目开发中自定义帧格式、复杂信号测量等常用的综合性技能项目,对于学生实践能力的锻炼很有好处。本文以信号测量项目为案例,可以在较短的课时内让学生掌握单片机定时器、串口的实践应用。
  二、信号测量案例分析
  1、任务内容
  本次信号测量任务属于定时器的输入捕获功能应用[4-5],并用到之前学习的定时器PWM输出功能,以及后续将要介绍的串口通讯。知识点包括引脚选择、参数计算,数据定义,接口函数调用等,具体实现了信号的周期、频率测量和通过串口传输,经过改进后还可以实现占空比的测量。
  外部脉冲信号利用A定时器的某通道产生,利用B定时器的某通道来测量一个外部脉冲信号的周期、频率和占空比,通过杜邦线与前述测量通道连接。如图1所示,通过计算t2,t3与t1的时间差,即可实现信号测量,时间差为对应的计数脉冲个数乘以计数脉冲周期数,计数脉冲个数通过输入捕获功能进行记录。
  2、设计思路
  1)、设置某引脚为定时器A的通道,利用定时器A的PWM输出功能,输出一定频率和占空比的方波;
  2)、配置B定时器的某通道为输入捕获模式,采用上升沿触发。设置合理的预分频系数和最大计数值;
  3)、采用前后台编程模式。在输入捕获中断的回调函数中,设置测量完成标志,主程序中检测该标志,一旦置位则计算信号的周期和频率,并清除标志位。
  三、项目设置
  1、引脚选择
  引导学生在CubeMx软件的Pinoutview界面查看STM32F411RETx芯片引脚功能。
  1)、串口RX、TX引脚选择。USART1使用PA10、PA9引脚;USART2使用PA3、PA2引脚;USART1使用PC7、PC6引脚。根据硬件实际情况,选择USART2作为示例,使用PA3、PA2引脚。
  2)、在本任务中既需要定时器作输入捕获,也需要作PWM输出来使用,经观察,在排除PA3、PA2引脚的条件下,定时器的引脚列于下方。
  TIM1_CH1:PA8;TIM1_CH2:PA9;TIM1_CH3:PA10;TIM1_CH4:PA11;
  TIM2_CH1:PA0,PA5,PA15;TIM2_CH2:PA1,PB3;TIM2_CH3:PB10;
  TIM3_CH1:PA6,PB4,PC6;TIM3_CH2:PA7,PB5,PC7;TIM3_CH3:PB0,PC8;TIM3_CH4:PB1,PC9;
  TIM4_CH1:PB6;TIM4_CH2:PB7;TIM4_CH3:PB8;TIM4_CH4:PB9;
  TIM5_CH1:PA0;TIM5_CH2:PA1;
  TIM10_CH1:PB8;TIM11_CH1:PB9;
  经讨论,根据被提问学生的意见选择一组,比如示例中选择TIM1_CH1的PA8、TIM2_CH1的PA0,分别作为PWM输出和输入捕获功能使用,实物中将两引脚连接起来。选择的引脚如图2所示。
  2、TIM1配置:
  1)ClockSource:InternalClock,选择时钟源为内部时钟;
  2)Channel1:PWMGenerationCH1,选择通道1为PWM输出;
  3)如果输出一个频率为50KHz,占空比60%的方波,该如何设计参数?
  根据公式Period=(ARR+1)(PSC+1)/TIM1_CLK,其中周期Period=1/50K=20us,TIM1_CLK=100MHz,引导学生计算ARR和PSC的取值,从学生计算的结果中选择一组,比如ARR=19(CounterSettings的CounterPeriod参数),PSC=99(CounterSettings的Prescaler参数);
  根据占空比60%,易于算出CCR(PWMGenerationChannel 1 的Pulse参数)应为12。
  3、TIM2配置:
  1)ClockSource:InternalClock,选择时钟源为内部时钟;
  2)Channel1:InputCapturedirectmode,选择通道1为输入捕获模式,捕获通道为直接输入方式;   3)引导学生分析ARR和PSC的值该如何选取:输入的方波信号在边沿处将进行捕获,此时记录下计数值(最大为ARR),显然ARR越大,可以测量的信号脉宽越大,故此处应将ARR设的足够大,建议ARR(CounterSettings的CounterPeriod参数)取最大值0XFFFFFFFF;计数的周期越小,对信号周期的测量越准确,故没必要预分频,建议PSC(CounterSettings的Prescaler参数)取0;
  4)在边沿处进行捕获时,采用中断方式处理较为方便,故将NVICSettings的TIM4 globalinterrupt使能。
  4、系统内核设置
  1)在RCC模式和配置中,将HSE来源设为旁路时钟源(BYPASS Clock Source);
  2)在SYS模式和配置中,将debug设置为串口调试(SerialWire);
  5、时钟配置
  1)Inputfrequency(输入时钟频率):8MHz;
  2)PLLSourceMux(锁相环时钟源):HSE;
  3)SystemClockMux(系统时钟源):PLLCLK;
  4)HCLK:100MHz。
  四、程序设计
  1、变量定义
  2、用户初始化设置
  用户初始化流程如图3(a)所示,是在由CubeMx软件自动生成的外设初始化代码之后,由用户编写的初始化代码,实现了启动TIM2_CH1的输入捕获和启动TIM1_CH1的PWM输出功能。
  3、前台程序
  前台程序如图3(b)所示,其中第一、第二次捕获分别对应图1的t1和t3时刻,完成2次捕获后,将置位测量完成标志MeasureFlag = 1,供后台程序使用。
  4、后台程序
  当前台(即TIM2的输入捕获中断函数)测量完成,即捕获到图1中的t1和t3时刻计数值,后台将在死循环中计算捕获差值,并计算信号周期、频率通过串口输出,当然还要清除测量完成标志,以利于新的捕获,其流程如图4(a)所示。
  讨论:程序中通过计算TIM2两次捕获值之差,乘以1个脉冲的周期(1/100000000s),计算得到测量信号周期。很明显只适用于测量信号周期不太大的情况,因为一旦测量信号周期太大,TIM2的第二个捕获值可能溢出。引导学生讨论测量信号周期的最大值,易于计算得到,应为(0xFFFFFFFF+)/100000000=42.95s,足够满足普通应用需求。
  如果想扩大对被测信号周期的测量,可以考虑第二次捕获加上计数溢出值即可。对应的程序流程如图4(b)所示。当然修改后的程序,对测量信号周期仍然有范围限制,易于想到,其值约为42.95×2=84s。
  5、实验结果
  编译并烧写可执行文件后,可在实物上观察对信号周期和频率的测量结果。连接串口,接收到的结果如下框所示,非常准确。
  五、案例的改进
  在上述案例中,通过捕获t1,t3时刻的计数值后计算差值,即可完成对信号周期和频率的测量。如果想实现占空比的测量,思路也较为简单,下面从前后台程序分别进行介绍。
  1、前台程序
  如图5所示,第一次捕获对应t1时刻(见图1),将保存捕获值CapVal1,修改捕获标识CapIndex=1,以及设置为下降沿中断。接下来在下降沿时,将再次成功捕获对应t2时刻,根据捕获标志即可判断出属于第二次捕获,此时保存捕获值CapVal2,修改捕获标识CapIndex=2,以及设置为上升沿中断。接下来在上升沿时,将再次成功捕获对应t3时刻,根据捕获标志即可判断出属于第三次捕获,此时保存捕获值CapVal3,重置捕获标识CapIndex=0,并置位测量完成标识MeasureFlag=1,供后台程序查询使用。
  2、后台程序
  后台程序流程图见图6所示,分别根据CapVal2与CapVal1的差值、CapVal3与CapVal1的差值是否大于零,判断TIM2是否在图1中的t2与t1中间、t3与t1中间存在计数溢出情况,如存在将分别加上2^32,从而扩大了对信号周期的测量范围,具体分析与四、4节的分析类似。
  3、实验结果
  编译并烧写可执行文件后,可在实物上观察对信号周期、频率和占空比的测量结果。连接串口,接收到的结果如下所示,非常准确。
  六、总结
  从本案例可以看出,课程体现了较强的应用性,学生通过STM32CubeMX软件的图形化操作完成外设初始化的设计,将在MDK-ARM软件中自动生成初始化代码;在MDK-ARM编程应用时,采用了前后台的编程思想,使得程序结构较为清晰;案例实践中,引入了定时器计数溢出、通过修改边沿捕获方式计算信号占空比等讨论,对定时器的设计应用学习更为深入。通过对本案例的设计、讨论与实现,培养了硬件设计和软件设计技能,开发了学生的创新思维,提高学生的自学、分析和解决问题的能力。
  参考文献
  [1]许江河, 高绪红. 基于单片机的多路信号采集测量系统设计与实现[J]. 电子科学技术, 2015, 2(005):547-551.
  [2]金国华, 滕君华. 基于单片机的出租车计价器实验教学案例设计[J]. 信息技术与信息化, 2019, 000(003):93-95.
  [3]罗清龙, 冯敏, 李清涛. 基于STM32CubeMX嵌入式实验教学改革实践[J]. 计算机教育, 2018, 000(001):155-158.
  [4]李建波, 张永亮, 梁振华. STM32CubeMX定时器中断回调函数的研究[J]. 电脑知识与技术, 2020, v.16(08):254-255+279.
  [5]李建波, 潘必超, 邱陽林. 基于STM32CubeMX外部中断回调函数的研究[J]. 电子世界, 2020, No.586(04):13-14.
  作者简介:李向阳(1984-),男,浙江宁波人,博士,副教授,主要研究方向为嵌入式系统开发
  [项目]教育部2019年第二批产学合作协同育人项目:《单片机原理及应用》重构式教学示范课程(项目编号:201902312002);宁波市公益项目(项目编号:2019C10051)
其他文献
摘要:本文通过对国内学者在美国媒体涉华报道方面的研究进行纵向梳理和横向比较,旨在更加系统全面的了解中美双边关系的演进和变化,深挖美国媒体塑造的“中国形象”政治、文化和经济内含,以期总结研究中存在的问题和不足,为中国国家形象的建立、维护和修复提出建议与对策。  关键词:国家形象;媒体;研究现状  一、国内学术著作研究现状与评述  研究中国形象,离不开研究媒体,而研究媒体,离不开对美国媒体的研究。所以
期刊
摘要:消费主义发源于西方,逐渐成为他们的一种社会道德现象。随着改革开放,我国经济的不断发展,消费主义也在中国蔓延开来。由于青少年的的情感变化,受到消费主义冲击较大的一个群体就是我国大学生,消费主义对大学生的负面影响日趋严重,为了遏制大学生进一步的被消费主义所侵蚀,德育刻不容缓。  关键词:消费主义;大学生;德育  一、消费主义理论概述  (一)消费主义产生的原因  消费主义文化兴起于20世纪20-
期刊
摘要:新时代,高校是立德树人的主阵地,旨在培养具有德才兼备的中国特色社会主义事业的建设者与接班人。德育教育不在是思政课教师的独角戏,而是强调全员育人、全过程育人,全方位育人,“思政课程”到“课程思政”已经成为高校教育教学改革的大趋势。在《配送管理实务》的教学过程中,必须充分挖掘课程中的德育元素,培育学生的社会主义核心价值观。从而将思政教育与专业课教学无缝连接,德育育能全方位发展。  关键词:课程思
期刊
摘要:本文主要针对大学生创新创业能力培养展开研究,先阐述其重要性分析,然后详细提出大学生创新创业能力培养策略,主要包括改变传统教育理念和方法、构建创新创业教育课程体系、加强校企合作,旨在更好地推进大学生创新创业能力,满足高等院校双创建设目标,为高等院校健康发展保驾护航。  关键词:大学生;创新创业能力;培养策略  现阶段,国家对于创新创业人才培养提出了明确要求,所以对于高等院校来说,必须要注重自身
期刊
摘要:数学是新时期高中素质教育阶段的重点学科,加强数学学科教学质量能够提升学生的抽象思维能力与形象思维能力,尤其是教学情境的创设更是对学生学科核心素养的培养大有裨益。然而,新课程改革全面实施以来,高中数学教育虽然在不断创新,但课堂教学情境创设的教学手段应用不够完善,未能最大化突出该教学模式的价值。基于此,本文就新课程背景下,高中数学课堂教学中情境创设的探讨。  关键词:新课程;高中数学;情境创设 
期刊
摘要:当代高校学生党员作为高校大学生群体中的先进代表,是加强高校党建的重要力量,同时高校是学生党员紧密联系党组织,积极向党组织靠拢,学习党的理论知识,坚定理想信念的重要阵地。党的十九大精神指引下,高校更应致力于加强学生党员理想信念教育。现阶段部分学生党员自身定位不清晰,理想信念不够坚定,高校对学生党员理想信念教育形式較为单一,实施模式也不够新颖。高校以开展理想信念教育过程中存在的问题为出发点,发挥
期刊
摘要:体育是当前教育体系中的重要学科,体育教育的有效开展,有助于提升学生的身体素养,锻炼学生的意志,培养学生的终身体育意识,对于学生的成长和发展都具有非常明显的促进作用。在素质教育背景下,高职院校在体育教育中,要注重教育模式的改进,结合学生的学习需求,引入多媒体技术,给学生带来更佳的学习体验,进一步的发挥出高职体育教学的重要作用,这也是老师必须要重点完成的任务。本文对此进行分析,并且提出了几点浅见
期刊
摘要:英语口语能力是做好国际交流,使用英语完成信息传达的重要能力环节。无论英语专业与非英语专业都应该锻炼口语能力,提升交流的流畅度。但是很多在校的大学生,口语表达环节薄弱,这是多方面原因造成的。本文就大学生当前英语口语能力低下的问题进行深入分析,探讨通过多样化的途径有效的提升英语口语能力。  关键词:口语训练、校园文化、风俗、阅读  一、大学生英语口语能力的重要作用:  英语口语能力在多方面发挥作
期刊
摘要:在教育改革的大时代背景下,高职院校要想实现新的教育突破,最为有效的方式就是深化校企合作力度,进一步突出校企合作教育的职业导向,根据企业需求培养学生能力,从而有效提高学生的就业竞争力。在整篇文章中,将会以校企合作为核心出发点,在充分考虑教学实际情况和学生本质需求的前提下,系统性阐述校企合作对于高职院校民航英语教学的重要作用,深入探究进一步推动校企合作促进高职院校民航英语教学质量提高的有效措施,
期刊
摘要:2020年初,武汉爆发了新冠肺炎疫情,从1月23日至4月8号,武汉处于封城的状态。长期的封闭,对人们正常的生产生活都产生了巨大的影响,也使武汉的经济后退了一大截。这样的状况,让很多大学生产生了逃离武汉的想法。武汉,作为全国大学众多的城市之一,拥有高等院校89所,以及130万的大学生。但是,据调查研究显示,武汉的大学生毕业之后更多的会选择离开武汉,前往北上广深等城市,为了留住人才,武汉市政府也
期刊