单片机综合实践教学中科研开发实例应用
2013-10-12史中权
史中权,丁 坤
(河海大学机电工程学院,江苏常州213022)
“单片机原理与应用”课程是实践性较强的课程[1]。传统的单片机教学模式以原理讲授为中心,强调理论知识体系的完整性,讲授内容比较抽象[2,3]。即使有若干相应的实验作为教学辅助,教学效果仍然不够理想。本文根据单片机教学的特点和经验,结合“电控柴油发动机的喷油控制”这项科研项目开发实例,提高讲授单片机综合实践课程中各模块应用的教学效果。
1 科研实例中各模块分类
单片机处理的信号一般可以分为开关量、模拟量、数字量和脉冲量等几大类,处理模块包括开关量输入输出、定时/计数、模拟量采集A/D、模拟量输出D/A、脉冲量输入、PWM输出、通信以及中断控制等。其中的中断控制模块往往贯穿于其它各模块之中。如何选取一个有价值的科研案例是本教学方法最关键内容之一。本课程的案例选取要注重两个原则:①尽可能多体现教学内容;②简单易懂。
本课程科研案例选用“电控柴油发动机喷油控制”,其核心控制器简称为电子控制单元ECU,其主控芯片为单片机,涉及到的外围部件包含了常用的单片机基本模块。ECU单片机各模块见表1。
表1 ECU单片机各模块分类
2 各模块教学的讲授要点
2.1 开关量输入模块
开关量输入模块的输入信号来自于各种只有开和关两种状态的设备,如限位开关,操作按键按钮、选择开关、行程开关以及其他一些传感器比如温度开关、压力开关输出的开关量等,通过输入电路转换成单片机能够接收和处理的信号。本科研实例为0V或+5V。最简单可靠的开关量处理方案是:在输入端与地之间并联一只电容来吸收干扰脉冲,如图1(a)所示。更可靠的方案是采用光耦进行信号隔离,如图1(b)所示。本科研实例采用的是光耦隔离的方式。
图1 开关量输入模块
对于开关量的编程处理,最简单的就是直接读取相应的端口,外部开关状态对应内部字节位状态“0”或“1”,判断相应位的值来决定处理流程。上述方案中,外部相应开关接通,相应端口位为0。本例中,启动开关对应单片机的P1.0口,刹车信号对应于P1.1口。如果程序读取到P1.0为0,则表明启动开关接通,则通电启动电机并按时序接通发动机的喷油阀以完成喷油输出。如果P1.1口为0,则表明刹车信号接通,则此时喷油量不能按照油门决定,必须强制回到怠速控制甚至断油。
开关量处理中经常要检测一个开关的状态变化,比如从断开到接通或者从接通到断开的跳变,这一点对于初学的学生常常会感到无从下手。常规处理方法是,判断某开关对应位的上一次状态和本次采集到的状态,即可判断是何种跳变,但这种处理方法不利于批量开关量跳变的判断。本例采用的是利用上次状态和本次状态进行逻辑计算,结果中为1的位即表明该位对应开关有跳变。设批量开关的上次输入状态为oldST,本次的输入状态为nowST,对应位1表明开关处于接通状态。则开关从接通到断开的跳变变量edgSTP和从断开到接通跳变变量edgSTQ的逻辑计算公式如下:
2.2 开关量输出模块
对于开关量输出,我们可以简单地解释为字节中位的状态决定了相应端口引脚的电平状态:引脚直接通过场效应管接地或通过一个电阻直接接到电源+5V。因此,单片机开关量输出端口一般驱动能力不强,除了直接驱动小电流器件如LED等,一般情况下均需专用的驱动芯片。其输出虽因控制对象的不同而千差万别,但一般情况下均需满足对输出电压、电流和隔离抗干扰的要求。常规的驱动采用三极管或驱动能力更强的MC1413或UN2003等复合晶体管。本项目实例采用的是MC1413来驱动相应继电器线圈,最终接通预热塞和风扇电机等开关设备,如图2所示。需要接通外部设备时,引脚输出高电平,反之输出低电平。
图2 开关量输出驱动电路
2.3 模拟量输入模块
A/D转换模块最重要的指标就是输出的二进制数据位数,位数越多分辨率越高。12位A/D转换后的数字量最大值为212-1=4095。本项目实例中,单片机需要检测油门,通过油门传感器,将实际的油门开度0%~100%线性地转换为0~5V的直流电压,然后通过A/D转换成数字量0~4095。对于A/D转换模块的操作,在设置好转换速率等参数基础上,实时操作主要有启动A/D转换和读取转换结果两个步骤。可以定时启动,也可以读取完结果再启动下一次转换,可以等待转换完毕读取,或者转换完毕产生中断,在中断服务程序里读取,以提高单片机实时性。
2.4 模拟量输出模块
单片机控制输出中,常常需要连续调节某个物理量,如本项目实例中需连续调节阀门开度。将数字量转换成模拟量,由D/A转换模块完成。本实例中采用12位D/A,即将0~4095转换成0~5V电压。需要向学生强调的是:0~4095只取其中的整数值,因此从微观上看,输出的模拟量也只有4095个级数,也就是实质上还是有级调节,只不过级数比较多,能够满足大多数场合连续调节分辨率的需要。比如本项目中对于一个阀门的开度0%~100%,调节的最小分辨率可达到100/4095=0.024=2.4%,对于此应用来说完全足够。
2.5 脉冲量输入模块
常规的转速测量方法都是在转速盘圆周上开有齿槽,由专用的转速传感器接近轮齿,转速盘转动时,传感器将感应并发出频率与转速成正比的脉冲信号,如图3所示[4]。
图3 转速测量电路
由转速脉冲计算转速有两种处理方法:
(1)统计单位时间内的脉冲数:转动部件一圈的脉冲数已知,如统计1秒内的脉冲数,即可算出1秒内转动部件转过的圈数即转速。(2)统计两脉冲信号间隔的时间:对于没有专门输入捕捉模块的单片机,可用外部中断配合定时器来处理;而对于有专门输入捕捉功能的单片机,则只需对输入捕捉模块进行操作即可完成转速测量。
2.6 通信模块
常规的通信功能主要有串行口和并行口通信之分。现在的单片机还包含现场总线、无线射频和以太网等先进通信模块。通信最重要的要求就是数据能够及时、准确的到达指定单元。本项目实例中,为了便于调试,需要与计算机上的监控软件进行通信,监控软件随时需要向ECU发指令并获取实时状态数据。
3 结语
对于本科研项目实例,我们要尽量让学生参与整个项目全部开发流程,从方案的制定、电路原理图和电路板的制作、元器件的焊接、电路板的调试和电路改进等。通过工程实践能力的训练,能让学生在将来工作中快速地融入到具体的项目开发之中。
本文以具体的科研开发项目为实例,将单片机综合实践教学中各模块的学习和应用贯穿在项目方案设计、程序编写和系统调试整个过程中。引导学生对对所学知识的融会贯通,达到理论知识与生产实际的结合。
[1] 张友德,赵志英,涂时亮.单片机微型机原理应用与实验[M] .上海:复旦大学出版社.2006年第5版
[2] 唐鸿儒,夏扬,黄亚忠.单片机课程的实践教学探索[J] .南京:电气电子教学学报,2009(1):67-69
[3] 胡敬朋,王聪.单片机项目教学研究及实践[J] .南京:电气电子教学学报,2009(5):82-84
[4] 王绍銧,夏群生,李建秋.汽车电子学[M] .北京:清华大学出版社.2005年第1版