杜海龙, 王 琦, 李 娟
(吉林大学 通信工程学院, 吉林 长春 130012)
电子信息专业综合实验是电子类和信息类各专业的专业实践环节一门必修课,是完成本科教学的重要环节,一般安排在本科四年级的第一学期开学完成。综合实验旨在提高学生动手能力,丰富学生的创新实践知识的实验教学。因此,综合实验应体现综合性、阶段性、创造性和开放性[1]。学生通过电子信息专业综合实验,加强本科专业课程之间的联系,提高学生的综合实验能力。通过实验,使学生能够由浅入深、更加系统地了解和掌握相关的理论和实践课程,并能够把它们综合起来加以运用,为学生的毕业设计环节和将来走上工作岗位奠定的基础。
本文设计采用了具有在线调试功能的C8051F320单片机[2],它具有丰富的资源,包括:
(1) 高速8051微控制器内核。流水线指令结构,70%的指令的执行时间为1个或2个系统时钟周期,速度可达25 MIPS,以及可扩展的中断系统。
(2) 模拟外设。10位模拟数字转换单元,17个或13个外部单端或差分输入,参考电压VREF可在内部VREF(2.44V)、外部引脚或VDD电源引脚选择,可通过外部转换启动输入,同时内置温度传感器。
(3) 在线调试。片内调试电路提供全速、非侵入式的在系统调试,支持断点、单步、观察/修改存储器和寄存器,比使用仿真芯片、目标仿真头和仿真插座的仿真系统有更优越的性能。
(4) 数字外设。增强型UART和SMBus串口,硬件增强型SPI。
选择的RC网络为电阻电容串联[3],电阻选择1 MΩ,电容选择1 μF,其充放电时间常数为1 s。
3.3 V电平在阻容网络上的最大充放电电流I=V/R=3.3 V/106Ω=3.3 μA。
选用单片机一个IO口作为控制信号,控制电容的充放电过程以及充放电驱动信号的形式,如图1所示。单个IO口可以提供10 mA的电流,其电流值远远大于阻容网络的充放电极限电流。
计算机负责发送指令,指令包括驱动信号形式、采样时间间隔、采样点数等。A/D转换负责把电容两端的电压转换成数字信号,然后通过串行口发送给计算机。
图1 综合实验平台原理框图
单片机电路将全部输入输出接口通过一个51 Ω电阻后引出,该电阻可以防止外部接口短路造成的芯片损坏。引出全部引脚,方便学生在其他实验中扩展。单片机核心电路见图2。
图2 单片机核心电路
采用单片机输出状态的P1.0引脚作为控制信号,输入状态的ADIN0引脚作为模数转换的输入引脚[4-6],阻容网络电路见图3。
图3 阻容网络电路
单片机输出的电压为CMOS逻辑电平,要转换成计算机可以直接接收的标准RS232电平,需要进行电平转换。本文选自了集成的RS232驱动器芯片MAX232[7],其包含双路电荷泵DC-DC电压转换器、RS232驱动器、RS232接收器,以及接收器与发送器使能控制输入。该芯片的连接电路如图4所示。
图4 RS232串行口电路
在KEIL开发环境下,利用C语言对单片机进行编程,流程见图5。单片机等待上位机传送指令,指令格式为Axxxxxyyy,其中xxxxx表示5位数采样间隔,单位为μs,最小间隔为90 μs。yyy表示采样点数。
图5 软件流程
为了保证数据快速、准确传输,选择RS232速度为115.2 kbit/s,该速度需要上位机与下位机保持一致[8-11]。
VB在是一种比较适合教学和小规模产品开发的语言,在开发可视化环境下的监控系统时具有其独特的优势。VB提供了串行通信控件,学生可以在尽可能短的时间内实现串行口通信,并可以对数据进行分析等简单的编程处理[12-14]。
本文在VB6.0的环境下进行编程,运用串行口通信控件进行收发数据,并用命令进行画图。
(1) 在实验平台关机的条件下,将实验箱的串口、USB接口线与计算机连接。在A/D转换输入接口上接入电阻电容网络。
(2) 接通电源,运行VB上位机程序。
(3) 在发送区输入数据A02000500,然后点击发送字符串。
(4) 点击读取字符串,将会在接收区显示已经读取的数据。
(5) 点击画图,根据接收到的数据,转换成十进制,然后画图,结果如图6所示。
(6) 为了验证数据准确性,在发送区输入数据A05000200,然后重复(4)和(5)的过程。
(7) 点击结束按钮退出程序。
图6 实验数据
根据电路理论,阻容网络充放电公式为
(1)
其中,V为理论电压值,Vref为参考电压值,T为时间常数。
由式(1)可得
(2)
理论曲线如图7所示。
图7 阻容网络充放电理论曲线
根据选定的电阻电容参数,时间常数T为1 s;两组数据中,总体时间长度均为1 s,即为1个充电时间常数。根据理论数据分析,在第一个时间常数的位置,曲线的η值为η=0.632。分别计算两组数据中的绝对误差[15]如下:
末点采样电压值:
其中,D表示采样值电压的量化值,D0表示参考电压时对应的量化值。
充电比例ηT为
ηT=(V/VCC)×100%=
(2.09 V/3.3 V)×100%=63.3%
其中,VCC表示充电电源电压值。
相对误差e为
e=η-ηT=63.2%-63.3%=-0.1%
同样方式计算实验数据B,误差为-0.4%。
重复的数据误差的绝对值均低于0.5%,多次反复测量重复性较好,适合学生做重复性实验。
本文针对信息工程专业学生设计的电子信息专业综合实验平台,涉及到本科的多门基础及专业课程。学生通过该实验平台,可以深刻领会到计算机通信的实际应用、数据采集系统的搭建及如何对传感器采集到的数据进行分析等;学生可以对所学习的知识点直观地理解,增强学生的感性认识,培养学生独立思考、综合运用所学知识解决实际问题的能力,实践教学和学生培养质量得到了提高。
[1] 古天祥,张红莉,古军,等.电子信息技术综合实验平台的建设[J].实验技术与管理,2001,18(3):5-12.
[2] Silicon Laboratories Inc.C8051F320/1混合信号ISP FLASH微控制器数据手册[EB/OL].(2009-08)[2017-12-21]. https://www.silabs.com/documents/public/data-sheets/C8051F32x.pdf.
[3] 童诗白,华成英.模拟电子技术基础[M].3版.北京:高等教育出版社,2001.
[4] 龚运新,罗惠敏,彭建军.单片机接口C语言开发技术[M].北京:清华大学出版社,2009.
[5] 张毅刚,彭喜元,姜守达, 等.新编MCS-51单片机应用设计[M].哈尔滨: 哈尔滨工业大学出版社,2003.
[6] 杜海龙,马海涛,郑喜凤,等. 基于单片机的氘灯电源系统[J].微计算机信息,2009,25(3):131-153.
[7] MAX220-MAX249+5V供电、多通道RS-232驱动器/接收器[EB/OL].(2010-07)[2017-12-21].https://datasheets.maximintegrated.com/cn/ds/MAX220-MAX249_cn.pdf.
[8] 朱艳萍,邹应全,廖建辉. Keil C环境下串口实验的模拟调试[J]. 实验技术与管理,2012,29(3):112-126.
[9] 杨潮.C语言程序设计及应用实例[M].北京:电子工业出版社,1995.
[10] 程晓旭,耿鲁静,张海,等.C语言算法速查手册[M].北京:人民邮电出版社,2009.
[11] 谭浩强.C程序设计[M]. 2版.北京:清华大学出版社,1999.
[12] 范逸之,陈立元.Visual Basic与RS-232串行通信控制(最新版)[M].北京:清华大学出版社,2002.
[13] 柏逢明,卫昱含.VB基础与RS-232通信技术[M].北京:机械工业出版社,2014.
[14] 张辉,李荣利,王和平.Visual Basic串口通信及编程实例[M].北京:化学工业出版社,2011.
[15] 吕伟锋. RC和RL微分实验电路误差的时间分析法[J]. 实验技术与管理,2010,27(12):48-50.