APP下载

面向工程应用的单片机实验案例设计

2020-09-29汪爱明刘纪伟李永兴张仔航贺宇航李峥峥

实验技术与管理 2020年6期
关键词:继电器脉冲语音

汪爱明,刘纪伟,李永兴,张仔航,贺宇航,李峥峥

(中国矿业大学(北京) 机电学院,北京 100083)

单片机课程是机械电子工程、电气工程、测控技术与仪器等专业必修的专业课程[1],是学习AVR、ARM 等高级嵌入式芯片的基础,是从事机电一体化设计人才必须掌握的一门技术。单片机是一种实践性很强的应用型技术[2-3],然而,传统单片机教学主要依赖于理论教学[4],弱化了实验教学,实验教学都是基于开发板进行,以验证性和演示性内容为主[5]。这与单片机实践性强的特点相矛盾,导致学生不能理解单片机如何使用,只是死记硬背相关知识点,应付考试,最终导致学完后学生都无法基于单片机进行最简单的应用设计,更别说去解决工程中遇到的问题。因此有必要对单片机课程教学方法进行改革。

我校从锻炼学生动手能力、提高学生学习兴趣这两点出发[6-8],提出采用具有相关行业背景的工程案例融合理论与实验教学[9-11],通过实验案例汇聚单片机相关知识点及相关工具软件的使用,使学生懂得如何使用单片机,为将来从事单片机工程应用打下坚实基础。

1 案例工程背景

矿用无极绳运输系统是实现在煤矿工作面顺槽和采掘大巷运输材料和设备的先进辅助运输设备,能够上坡、下坡和拐弯,运输距离可达3000 m。它利用绞车驱动钢丝绳,钢丝绳牵引矿用车辆(矿车、平板车、材料车、人车)实现连续往返运输。

现有矿用无极绳运输设备控制系统如图1 所示,主要由对讲机、无线通信网络、信号主机、本安电源及控制装置和绞车开关组成。矿用车辆作业人员通过对讲机打点,远距离与在控制室值班的绞车司机通信,绞车司机根据得到的指令操作绞车,实现运输系统的前进、停止、后退的工作状态的控制,满足现场运输需要。该系统缺少一套显示及语音提示装置(以下简称“打点装置”),辅助绞车司机在控制室及时掌握矿用无极绳运输设备当前的运输状态,通过操作指令控制设备运行;另外,如遇到急停工况指令,系统自动响应,及时停止设备,避免造成更大损失和安全事故。

该打点装置是一个应用单片机技术解决煤炭行业工程问题的典型案例,通过该案例使学生了解利用单片机研发测控系统基本开发流程,掌握元器件选型和电路设计的基本知识,掌握 Proteus、Keil、Altium Designer 等工具软件的使用方法,培养学生结合单片机相关模块的使用方法、应用单片机C 语言编写专用软件的能力。

图1 现有矿用无极绳运输设备的控制系统

2 案例设计

2.1 相关开发工具

单片机应用开发主要工作就是进行电路原理图和PCB 设计以及程序编制,因此需要安装Altium Designer 6.0 和Keil Vision 4。本实验案例基于STC15 系列国产单片机设计,因此需要安装STC-ISP 在线编程软件。本案例参考文献[12—13]设计了仿真实验模块,便于学生利用课余时间学习单片机相关知识点,因此需要安装Proteus 7.8。考虑到大部分学生备有笔记本,因此需要安装USB 转串口驱动软件CH341SER。为了最大化提高学生的参与程度,需要配置面包板、不同长度的连接线、12DVC 和5DVC 双路输出的开关电源;此外还需一台笔记本电脑、USB 转串口线、万用表以及螺丝刀等工具。

2.2 功能需求分析及总体方案设计

1)功能需求分析。

本实验案例要求学生综合应用单片机中断、定时器、PCA、人机接口、串口等知识点,采用模块化设计理念,开发矿用无极绳运输设备控制系统的打点装置,能够根据基站转发来打点控制信息(前进、后退、停车、急停),本装置显示前进、后退、停车、急停的信息状态,并进行语音提示,屏幕显示的前进、后退、停车用来提示绞车司机手动操作矿用无极绳绞车综合保护装置主机上的相关按钮实现正、反向运行,而“急停”状态下,则本装置直接将急停信号送给矿用无极绳绞车综合保护装置主机,自动实现急停控制。

本实验案例要求学生分析设计任务要求,合理设计方案,完成元器件选型、硬件电路和软件程序的设计,并能够采用Proteus 进行相关模块的仿真,采用Keil Vision 4 进行程序的编制,采用Altium Designer 6.0进行电路原理图和PCB 的设计。每个模块要求学生依据设计的电路原理图,在面包板上搭建电路,烧写程序,实现预期的功能。

2)总体方案设计。

基站输出打点信号如下:一直为低电平表示没有打点要求,200 Hz、500 ms 的脉冲信号表示急停,300 Hz、500 ms 的脉冲信号表示停止,400 Hz、500 ms 脉冲信号表示前进,600 Hz、500 ms 脉冲信号表示后退。

本装置总体方案如图2 所示,以抗扰能力强的STC 单片机为核心开发装置。基站控制信号输入至STC 单片机,利用STC 单片机PCA 模块的脉冲捕获功能,配合定时器模块实现对规定时间内的平均频率进行计算,实现控制信号类别的判断;扩展2 个16×16点阵模块,实现前进、后退、停车、急停四种控制信号类别的高亮度显示;扩展语音模块,实现控制信号类别的语音提示;扩展继电器输出模块,输出急停节点至矿用无极绳绞车综合保护装置主机,实现自动急停;考虑系统功耗较大,采用12DVC 本安电源供电,设计电源模块,将12DVC 转变为5DVC,给单片机及各模块供电。

图2 总体方案

2.3 硬件电路设计

如表1 所示,以STC15F2K60S2 国产单片机为核心开发本装置,选用德飞莱16×16 点阵屏实现高亮度、大屏幕显示,选用MP3-FLASH-16P 语音模块实现前进、后退、停止、急停语音提示,选用G5V-1 继电器控制播报语音的选择以及急停节点的输出,选用VRB1205ZP-6W 电源模块,选用带灯自锁按钮开关实现电源通断控制及指示。装置硬件电路由单片机最小系统,继电器驱动、语音、急停输出电路,显示接口电路和电源模块四大部分组成。

表1 主要元器件选型

1)单片机最小系统。

如图3 所示,单片机最小系统由STC15F2K60S2单片机、MAX232 串口芯片、DB9 插接件以及多个电容组成,实现在线编程功能。利用STC-ISP 在线编程软件和一条串口线就可以将程序下载到单片机里,便于调试。

图3 STC 单片机最小系统电路图

2)继电器驱动、语音和急停输出电路。

如图4 所示,继电器驱动、语音和急停输出电路主要由7 通道达林管驱动芯片ULN2003、5 个G5V-1型继电器、MP3-FLASH-16P 语音模块组成。G5V-1继电器额定驱动电流30 mA,STC 单片机I/O 口最大驱动电流20 mA,因此采用达林管驱动芯片ULN2003实现对单片机I/O 口驱动电流的放大,最大可达150 mA。ULN2003 的输入接单片机的P2.7、P2.3、P2.2、P2.0和P4.4,当单片机I/O 口输出为高电平时,ULN2003对于I/O 输出低电平,此时对应继电器通电,常开节点闭合,分别用来控制急停节点的输出,以及急停、停止、前进、后退提示语音段的播放控制。

3)显示接口电路。

采用两块德飞莱16×16 点阵屏级联的方式实现两个汉字的显示,供电电源为5 V,接口电路如图3 所示。GND 引脚连接电源,P0.0、P0.1、P0.2、P0.3 分别连接A、B、C、D,用于控制16 行,SCK 引脚连接P2.5,LAT 引脚连接P2.6,R1 引脚信号连接至P2.4,G1 引脚连接至P0.4,OE 引脚接P2.1。

4)电源模块。

如图5 所示,电源模块核心为金升阳VRB1205ZP-6W模块,实现将12VDC 转变为5VDC;U2 为插接件,用于连接带灯自锁按钮开关,实现电源通断控制及指示;U1 也为插接件,用于连接外部12VDC 输入电源和基站脉冲信号。

2.4 软件设计

单片机C 语言较汇编语言更容易掌握,因此建议实验时采用C语言编写软件源程序。在Keil 编程平台下编写、调试、编译等,将生成的.hex 文件通过STC-ISP 在线编程方式加载到STC 单片机。编写软件时,要求学生首先设计软件主程序流程图,设计出各模块的流程图,然后编写软件程序,逐步调试成功,最后形成总程序。

图4 继电器驱动电路、语音电路及急停电路

图5 电源模块

如图6 所示,软件采用STC 单片机CCP/PCA 模块(工作于捕获模式,输入端为CCP1)实现对单个脉冲周期的测量,进而得到单个的脉冲频率,并存到一个数组中。定义变量Capture1,若Capture1=0,则表示某个脉冲开始计时;若Capture1=1,则表示该脉冲计时结束。单个脉冲周期的测量原理如图7 所示。当单片机检测到输入脉冲上升沿时,进入中断处理程序;如果是第一个脉冲上升沿,则启动CCP1 计数器;如果是第二个脉冲上升沿,则表示第一个脉冲结束了,此时读取CCP1 计数器的数值,依据设定的计数频率,换算为脉冲周期T1 及脉冲频率,根据该方法可测量后续脉冲周期T2、T3 等。为了提高准确性,软件对500 ms内的脉冲平均频率进行计算。因此,在检测到第一个脉冲上升沿时,还需启动定时器。定时器中断处理程序如图8 所示,当定时器定时时间达到500 ms 时,对脉冲频率记录数值取平均值,得到平均脉冲频率,进而根据平均脉冲频率给显示标志DisplayFlag 赋不同的数值,给单片机的P2.7、P2.3、P2.2、P2.0 和P4.4赋高电平或低电平,实现语音和急停控制。如图9 所示,在主程序中,首先进行串口、定时器、CCP/PCA模块的初始化,并开总中断;然后,依据显示标志DisplayFlag 的值,显示对应的提示内容。

图6 脉冲捕捉中断流程图

图7 脉冲频率检测原理示意图

图8 定时器中断处理流程图

图9 主程序流程图

3 案例实施

3.1 教学组织和任务分解

在案例实施过程中,指导教师可以将案例划分成不同模块[14],每个模块就是一个小实验。逐步完成各个模块,最后汇合在一起就完成了整个案例。本工程案例涉及单片机课程教学目标的存储器、中断系统、定时器、PCA 模块、按键、继电器、相关工具软件等多个知识点,既可以应用到课内实验教学,也可以用到课外独立实验教学。根据实际情况,本案例的课时可以设置为8 学时。教学过程中,将理论教学与实验教学穿插进行,以便提高教学效果。

案例的任务模块、课时分配和分值如表2 所示,分成单片机驱动继电器模块、STC 单片机最小系统、脉冲频率检测模块、显示模块及语音模块和各模块集成五大任务。基于模拟仿真和实际实验相结合的思路,提出了学生能够基于Proteus 仿真、绘制电路原理图及PCB、基于面包板搭建电路验证、基于Keil 编写相关程序的四大要求。学生掌握Proteus 仿真软件的使用方法,课后在自己电脑上安装该软件,结合教材就可以自学单片机相关知识。电路原理图及PCB 的绘制、基于Keil 编写相关程序是开发测控系统必备技能。利用单片机开发测控系统,需要学生在非常了解硬件电路的基础上进行编程;在面包板搭建电路验证相关任务,能够使学生更深刻地理解相关硬件电路并开发软件。因此,只要很好地完成上述四大要求,学生就掌握了利用单片机开发测控系统的基本技能。

考虑到Proteus 软件目前不支持国产STC 单片机,因此只对单片机驱动继电器仿真实验采用Proteus。应用单片机开发测控系统,如果所有的都从底层开发,即利用最基本的芯片开发相关硬件和软件,难度大、周期长;基于系统集成的理念,尽量利用成熟模块,进行二次开发,实现系统相关功能,节约时间,降低开发难度。本案例在显示模块和语音模块就是采用了系统集成的思路,选用德飞莱16×16 点阵屏、MP3-FLASH-16P 语音模块进行二次开发,实现高亮度、大屏幕显示以及“前进、后退、停止、急停”语音提示。在这两个模块设计和实现的过程中,开课前提前把说明书发给学生自学,结合功能需求,提出实验方案。在本案例实施过程中,应向学生强调系统集成的研发理念,这对于以后从事工程应用帮助较大。

此外,在程序编写的过程中,要求学生合理添加程序解释,并设计出主程序、子程序的流程图。

3.2 教学评价与考核

通过从不同角度进行评价与考核,能够帮助教师了解学生对相关知识的掌握情况,便于及时调整教学进度和方法[14]。因此在教学评价与考核方面,不仅对每个任务实验结果、实验过程中每个环节进行评价与考核,而且对整个系统完成情况和功能进行评价与考核,按照完成时间、功能实现情况以及完成质量综合打分,考核结果为优秀、良好、中等、及格和不及格5 个级别。总评成绩由实验环节成绩和实验报告成绩两部分组成,各100 分。若将本案例应用到课内实验教学,可以规定理论课考试成绩与总评成绩的百分比占比,换算为课程成绩;若将本案例应用到课外独立实验教学,总评成绩即为课程成绩。

表2 案例任务分解、课时分配和分值

4 结语

虚实结合、面向行业工程应用的单片机实验案例汇聚单片机相关知识点及相关工具软件的使用,案例设计完成后,应用于我校机械系的单片机课程教学,较采用成熟开发板的演示性和观摩性实验教学方式,能够更好调动学生积极性,提高学生参与程度,锻炼其动手实践能力。通过案例与理论课学习,学生懂得如何使用单片机,为将来在工作过程中利用单片机解决实际问题打下坚实基础。单片机课程案例式教学方法可以应用于课内、外实验教学,可以推广应用到测控、电气等其他专业。

猜你喜欢

继电器脉冲语音
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
继电器控制及诊断在电动汽车动力电池包的应用
便携式继电器测试台的研制和应用
上下解反向的脉冲微分包含解的存在性
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
计算机联锁复示继电器电路改进方案探讨
对方正在输入……
黄芩苷脉冲片的制备