刘新平,徐俊鹏,宋继志
(中国石油大学计算机与通信工程学院,山东青岛 266580)
高校电器信息类专业实验室中需配备多种测试仪器,如万用表、直流稳压电源、示波器、信号发生器等,购置的仪器多为单功能测试或信号发生仪器,需要的种类多,不便于实验室摆放与使用,且总费用较高,需要花费较多的人力物力进行维护和维修。
我校在为学生开设硬件综合实习课程的同时,研究开发了一种集多种测试及信号发生于一体的简易综合仪器,可实现基本的电压测试、电流测试、虚拟示波器、波形发生器、可调直流稳压电源、脉冲计数器、数字温度计等功能,满足了实验教学的基本需求。另外,将该综合测试仪做成一个开放式平台,学生可通过电路设计及在线编程实现仪器的所有功能,锻炼学生的综合应用能力。该平台不仅可以承担高年级本科生硬件综合实验和自选课题的创新实验内容,也可参加多种大学生竞赛,如电子设计大赛、嵌入式设计竞赛等,对培养学生动手能力及创新意识具有积极意义;同时,可作为普通实验室测试及信号发生仪器,为学校节约资金,方便实验室管理及使用。
系统总体结构如图1所示,以STC12C5A60S2单片机为核心,外加必要的扩展接口电路[1]。STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,指令代码完全兼容传统8051,内部有8 KB Flash 程序存储器、1280BRAM 和2KB EEPROM,内置监视定时器(看门狗)电路,具有超强的抗干扰能力,可直接在用户系统上用ISP在线下载方式,将用户程序下载进STC 单片机运行,这样可省去编程器和仿真器、降低实验成本[2]。利用宏晶科技提供的免费下载软件STC-ISP.EXE,学生可将实验板带回宿舍编程调试。
图1 系统组成框图
系统设计采用单片机STC12C5A60S2自带的12位串行 A/D 转换器和8 位串行D/A 转换器DAC0832,实现模拟量和数字量的转换;设计有4 个独立键盘,采用液晶显示屏或LED 数码显示器显示输出。系统功能包括数字时钟和定时器、温度控制器、波形发生器、脉冲计数器、可调节输出电源、简易数字万用表等。具体功能可通过对单片机编程实现,将多种功能集成为一台开放的数字测试和调试用的多功能仪器。编程时单片机和上位机之间用RS232串口相连,传送数据和命令。
单片机通过串口与PC 机进行通信。这里,单片机串口输出的是TTL 电平,而PC 机串口输出的是RS232电平,两者之间需要外加接口电路进行电平匹配,故采用专用电平转换芯片MAX232 来实现。MAX232 芯片内部有电源电压转换器,可以把输入的+5V 电压变换为RS232 输出电平所需的-10~+10V 电压,故仅需要单一+5V 电源[3]。图2是单片机和PC机之间的串行接口电路。通过串口通信,可实现用户程序的在线下载。
用键盘设定当前时间及定时时间,采用一片HC162L字符液晶模块或6个LED 数码管显示当前时间,到达设定的定时时间后蜂鸣器发出蜂鸣声。数码管采用动态显示方式,以P0口输出段码和位码,用2个74LS373锁存器驱动段码和位码。HC162L 字符液晶显示驱动及LED 数码管显示驱动均采用常规电路[4-5],本文不再详述。
图2 单片机与PC机之间串口通信电路
采用DS18B20 芯片作为数字温度传感器。DS18B20的最大的特点是单线接口方式,在与微处理器连接时只需要一条线即可实现微处理器与芯片的双向通信。DS18B20的测温范围为-55~+125 ℃,固有测温分辨率0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。另外,因为每一个DS18B20都有一个独特的序号,多个DS18B20可以同时连接在一条总线上,因此温度传感器可放置在许多不同的地方。采用此芯片的缺点是:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格保证读写时序,否则将无法读取测温结果。DS18B20在外部电源供电方式下,工作电源由VDD 引脚接入,此时I/O 线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论上可以挂接任意多个DS18B20传感器,组成多点测温系统[6]。多点测温电路如图3所示。
图3 DS18B20多点测温电路图
波形发生器及脉冲计数器主要用到D/A 转换器和运算放大器,选用美国TI公司生产的DAC0832芯片。该DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A 转换电路及转换控制电路构成。可以采用单+5V~+15V 供电,本系统中采用+5V 电压供电,DAC0832的D/A 转换数据通过DI0—DI7并行输入。在波形发生器中,对电压的大小没有要求,可以采用任意基准电压。
由于DAC0832的输出为电流输出,利用运算放大器可以将电流信号转换成电压信号,得到期望波形,具体转换电路见图4。通过编程可实现方波、三角波、锯齿波、正弦波等波形输出,改变输出延迟时间,可改变其输出频率,具体编程时可通过按键增加或减小输出频率。
图4 D/A转换及放大输出电路
脉冲计数器电路较为简单,可直接采用单片机的内部计数器T0/T1对外部输入脉冲计数,并由数码管显示。
设计4个独立按键,一端接地,另一端与P3口相连。有键按下时单片机采集到的电压为低信号。该功能模块主要练习中断及键盘检测与消抖的编程方法。
设计一个交通信号灯控制器,在十字路口每个入口处设置红、黄、绿三色信号灯,红灯亮禁止通行,绿灯亮允许通行。主干道每次放行45s,支干道每次放行25s,在每次由绿灯转红灯的过程中,黄灯闪烁3s作为过渡,使行驶中的车辆有时间停到禁行线外。分别用数码管显示45s、25s倒计时,用红、黄、绿发光二极管作信号灯。发光二极管电路由锁存器和限流电阻共同组成,发光二极管正常工作电流为3~10mA,所以通过限流电阻就可以使发光二极管正常工作。本功能模块旨在练习定时器的编程与设计方法。
电路中用到多种供电电源,比如芯片LM324 属于非轨对轨的元件,所以在放大电压信号时需要加上±12V 的电压才能使运算放大器正常工作;在电压源部分,希望得到0~24V 的电压,运算放大器只有加上+30V 电压才能正常工作;另外还有需要设置+5V基准电压等。可以利用一系列的原件进行电压的转换。如图5所示,可实现+30V 电压转换成1.25~30 V 之间任意电压[7]。输出电压VOUT=1.25(1+R4/R3),调节R4的值就可以得到不同的电压值,所需要的+5V、+12V、都可以由芯片LM317转换得到,只需要将R4分别设置为450Ω 和1.29kΩ。
图5 LM317电源转换原理图
-5 V 和-12 V 电压可通过 MAX660 和MC34063芯片转换[8]。电荷泵反极性开关集成稳压器MAX660可以把正输入电压变换成负输出电压,也可以把负输入电压变换成正输出电压,还可以产生二倍压,即输出电压为输入电压的2倍。图6可实现+5 V 电压转换为-5V 电压。
图6 MAX660电源转换原理图
MC34063是一单片双极型线性集成电路,专用于直流—直流变换器控制部分。片内包含有温度补偿带隙基准源、一个占空比周期控制振荡器、驱动器和大电流输出开关,能输出1.5A 的开关电流。它能用最少的外接元件构成开关式升压变换器、降压式变换器和电源反向器。+5V 转换输出-12V 电源电路如图7所示。
图7 MC34063电源转换原理
数控直流电压源主要利用运算放大器LM324,其原理是将可控的数字信号通过DAC0832转换成模拟信号,再利用运算放大器的放大作用,将模拟信号放大到期望得到的信号。数控电压源的原理如图8所示。基准电压通过DA转换输出,2个晶体三极管的作用是扩流,电阻R7和R8的作用是对输出电压进行采集。采集后的电压送到自带AD的单片机中,可用PID控制算法或模糊控制算法实现电压输出的闭环控制。
图8 数控电压源电路
数控直流电流源的原理和电压源类似,都是通过DAC0832将可控的数字信号转换成模拟信号,然后利用运算放大器进行放大,将模拟信号放大到期望得到的电流值。数控电流源电路如图9所示,2个晶体三极管的作用是扩流,电阻R15—R18是4个并联的采样电阻,其作用是在不降低输出功率的前提下降低采样电压。这个电路也可用PID 控制算法或模糊控制算法实现电流输出的闭环控制。
图9 数控电流源原理图
电压表的测量原理很简单,将待测电压直接输给带AD 转换的单片机中,就可以直接在单片机中进行模数转换,转换后的数值大小就是待测电压值。将待测电压送给低通滤波器,滤除高频干扰,可以获得比较稳定的电压值[9]。如图10 所示,采用运算放大器LM324,负向输入端与输出端直接相连,输出端的电压等于正相输入端输入的电压值,待测电压的大小没有变化。
电流表原理如下:首先通过串接电阻将待测电流通过AD 转换器转换成电压值,串接的电阻必须很小,否则会影响电流的准确性。电流表原理如图11,其中电阻R20和电阻R22可以决定电流的测量范围,根据电阻R21两端的电压差可以计算出待测电流的大小。因为电阻很小,需要将电压进行放大,先后经过反相缓冲、差分放大和同相放大电路获得电压值,然后将电压值送到带AD 转换的单片机中,就可以计算出待测电流的大小。
测量电阻的原理如图12所示,可以由单独一个运算放大器构成,这就要求运算放大器的反相输入端的电压值为-5V;也可以由2个运算放大器构成,前运算放大器的主要作用是产生一个-5V 的电位,作为后一级放大电路的反相输入端,而后一级的正相输入端接地。所以运放的输出端电压与反相输入端的电压之比和待测电阻与电阻R19之比相等,根据输出端的电压,可以计算出待测电阻值的大小。调节电阻R19的大小可以改变待测电阻的测量范围。
图10 电压表原理图
图11 电流表原理图
图12 电阻测量原理图
为提高学生动手能力,增强学生社会适应性,开设了“硬件综合实习”课程,让学生亲自设计一台小型计算机系统,包括计算机的各个部件和功能,“麻雀虽小,五脏俱全”,旨在让学生真真切切感受到如何设计一个可独立工作的计算机系统。本实习安排在第六学期末,是一门综合性设计实践课程,也是对前面所学课程的一个全面应用和总结。该课程综合运用了“组成原理”、“汇编语言”、“接口技术”、“单片机原理”、“数据采集系统”、“计算机控制技术”等硬件课程中的知识,在硬件课程群建设中起着“总练兵”的作用,能进一步强化和提高学生的综合实践能力,培养学生的创新思维和创造能力[10-13]。
本课程面向计算机科学与技术专业本科生开设,实习时间共安排4周。具体任务为:设计电路原理图和印刷电路图,进行电路制版;完成电路板的焊接与调试;用汇编语言或C 语言编写下位机程序,包括数据采集与处理程序、键盘监测与显示输出程序、PID 或模糊控制算法程序、串口通信程序等;将各功能模块程序进行系统联调,用键盘程序将其功能连接起来,通过按键可选择不同的功能;最后将用户程序下载至STC 单片机的程序存储器,使其上电独立工作;最后完成系统测试,撰写实习总结报告。上位机程序采用VC 编程,利用NI的Component Works 控件实现人机接口界面,包括设置参数与显示输出程序、串口通信程序等,用以输出显示、传送数据和命令等。
为了更好地培养学生的创新思维和创造能力,系统硬件设计时仅提出任务及技术指标要求,具体器件型号不给出,而是由学生自主设计。设计出的电路原理图及制版图由教师评判打分。由于实验室条件及时间所限,学生实际使用的电路板及器件是由教师统一制作和采购的,具体的电路板焊接及编程调试则全部由学生独立完成。
该硬件综合实习方案经过精心准备,迄今已在4届计算机专业本科生中开设,取得了令人满意的效果。由于系统既有硬件设计,也有软件编程,极大地激发了学生的学习兴趣,锻炼了学生综合应用知识的能力和综合实践能力,培养了学生的创新思维和创造力,同时也培养了学生的团队合作精神。设计期间,从资料的查找,到设计方案的论证,再到系统的最终调试,学生都投入了极大的热情和精力。学生经常为一个问题争得面红耳赤,经常到了吃饭时间被教师赶几遍才依依不舍地离开实验室。从学生的实习总结报告可以看出,学生做完硬件综合实习后,普遍充满自豪感和成就感,感到硬件设计及底层软件开发不再可怕。参加完实习的学生每年都有多人在各种创新竞赛中获奖,在2008 至2011 年的“博创杯”全国大学生嵌入式设计大赛中,共获得一等奖2项、二等奖1项、三等奖3项;在全国大学生“飞思卡尔”杯智能汽车竞赛中获得全国二等奖2 项,华北赛区一等奖1项、三等奖3项;第七届“挑战杯”山东省大学生创业设计竞赛中获特等奖。
(
)
[1]李红伟,胡涛,徐熙平,等.基于单片机的伺服电机控制系统的研究[J].长春理工大学学报:自然科学版,2012,35(1):116-118.
[2]代芬,王卫星,邓小玲,等.单片机综合实验开发板设计[J].实验室研究与探索,2010,29(8):213-215.
[3]朱立忠,冯丹.PC 机与MCS51 单片机串行通信接口电路的设计[J].沈阳工业学院学报,2003,22(2):22-24.
[4]张天宏,丁毅.自动控制综合教学实验仪器开发[J].实验室研究与探索,2004,23(12):141-143.
[5]刘燕,陈兴文.通用采集系统在自控原理实验教学中的应用[J].实验室研究与探索,2003,22(2):76-77.
[6]王福泉,万频,冯孔淼,等.DS18B20在空调检测系统温度采集模块中的应用[J].电子技术应用,2011,37(8):46-48.
[7]冯平,张治中.基于可调式稳压器LM317的直流稳压电源[J].电子测试,2009,5(2):70-74.
[8]管小明,李跃忠,王晓娟.基于MC34063 的便携式仪器电源电路设计[J].东华理工大学学报:自然科学版,2010,33(1):97-100.
[9]秦辉,李静,董蓓蓓,等.全自动数字万用表的设计[J].仪器仪表装置,2010(1):14-17.
[10]周向红,李建军.单片机实践教学的探讨与研究[J].实验技术与管理,2007,24(7):120-122.
[11]苏检德,何富运,殷严刚,等.“单片机应用设计”课程教学改革与实践[J].实验技术与管理,2011,28(12):148-150.
[12]朱震华.单片机综合实验箱的研制[J].实验科学与技术,2007,5(1):124-126.
[13]崔夏荣.基于工程素质培养的单片机教学改革[J].南平师专学报,2006,25(2):103-105.