基于上位机控制自动接线的单片机实验系统研究
0 引言
对单片机实验系统的基本需求是:在有限的IO 接口上可以进行多个项目的实验。为了实现这个基本需求,在进行多个不同项目实验时,要对单片机各个IO口进行现场重接线。传统的单片机实验装置现场重接线方法有2类:
一类是现场手工插拔自锁紧接插件;
另一类是现场手工插拔积木式实验模块。
这两类接线方式的实质都属于机械式金属接触。单片机实验系统经过较长时间的使用,都难免会发生金属接触件之间的接触不良现象。特别是自锁紧接插件,问题更为严重:即使线芯开路了,从表面也难以通过肉眼发觉。导致实验成功率低下,占用学生甚至指导老师的排故时间,严重影响了实验效果。现代单片机实验或单片机开发都离不开上位机对软件的编译和程序的下载。在实验现场进行手工重接线时上位机处于空闲状态。利用上位机控制对实验现场进行自动重接线,是该研发项目研究的重要内容。
1 项目研发思路概述
项目的研发思路见图1 所示的流程图。首先从底层做起,经过深入调研,对自己要研制的项目进行定位,根据各个学校提出的具体要求进行筛选,制定出总共需要多少个实验项目,并为各个实验项目设计出对应的实验电路图,这些实验电路图作为项目研发的基础理论依据。根据这实验电路图研制实验系统硬件装置,各个实验项目对应的元器件(包含单片机)布置在电路板的顶层,控制现场自动重接线的电子式交叉开关电路所用到的元器件( 包含FPGA 和专用模拟开关阵列ADG1161)布置在电路板的底层。
上位机和实验系统通信采用USB连接,共要传输两类数据,实验项目编号和单片机实验的目标程序。上位机应用软件程序采用Visual C++编制,应用程序将各个实验电路图与实验编号一一对应。当要做某个实验项目时,可以启动该实验编号,自动调出实验电路图,将实验编号通过接口电路传送给实验系统的控制部分,实验系统控制部分获得该实验编号后,由FPGA内的51核,根据项目编号对应出电子式交叉开关的接通与断开,实现现场自动重接线,使实验系统满足实验电路图接线要求。
此时便可以在上位机上做编程实验,由专门的编译系统(如Keil uV4或IAR)编译实验程序,产生目标代码(*.bin 或*.hex),再由上位机通过所编制的应用程序将该目标代码传送给实验系统的单片机内ROM中保存。单片机复位后便开始运行该目标程序,实现用户实验目的。
2 实验系统中的电子式交叉开关及其控制电路设计
项目研发的关键是具有能按照不同的实验电路指导现场自动重接线的装置。即实验系统的控制器按照上位机下达的实验项目号对应出实验电路,控制交叉开关进行现场自动接线。实现该控制功能所需的主要控制器件为2种:一种是超大规模现场可编程的FPGA芯片;另一种是高性能的模拟开关阵列。通过对这两种器件的有机组合,得到控制器电路结构框图如图2所示。
FPGA芯片采用赛灵思公司(Xilinx,Inc.)的Spartan?3E系列中XC3S1200E[3],器件密度多于百万门,该系列能方便实现微处理器、微控制器和数字信号处理器功能。
支持的通用I/O种类多,可通过串行(SPI)和并行闪存进行器件配置,也可作为普通DDR存储接口,这些特性减少了对其他分立器件的需求,从而可大大简化应用系统的设计。低导通电阻模拟开关阵列ADG1611[4]由ADI公司开发销售,为每片4个通道的模拟开关,宽电压供电,轨到轨输出,其低到1 Ω的导通电阻和大到每通道175 mA的连续电流非常适合于本研发项目的实际应用。
3 控制实验项目电路设计举例
LED发光二极管流水灯[5]和4×4矩阵键盘是单片机实验中最常用的两个实验实例,这里给出该研发项目中关于这两个实验项目的切换的设计电路原理图,见图3.
由图3可知,FPGA 控制着两组ADG1611模拟开关阵列,第一组连接LED 流水灯;第二组连接矩阵键盘。
当选择做LED 流水灯实验时,FPGA 控制第一组ADG1611 模拟开关接通、第二组模拟开关断开;反之,当选择做矩阵键盘实验时,FPGA控制第一组ADG1611模拟开关断开、第二组模拟开关接通。当要同时使用LED发光二极管和矩阵键盘实验时,可以通过FPGA控制第三组(或第若干组)的ADG1611模拟开关阵列接通实验单片机别的IO口(图中未画出)。如何进行现场自动重接线,完全由当前实验号所对应的实验电路图指导控制,项目研发时已经充分加以考虑了。限于篇幅,这里不具体赘述。
4 结语
经过20台(套)样机试制成功并付诸于实验时正常使用一个学期以来,证明采用基于上位机控制自动接线单片机实验系统进行实验教学后,由于由系统启动现场自动重接线,节省了以往老师指导学生进行手工重接线时间,克服了手工重接
- AT89S51单片机实验系统的开发与应用(06-21)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)