陈春蓉
(西南大学计算机与信息科学院,重庆 400715)
单片机技术已走过了近40年的发展路程,其应用领域非常广泛:汽车领域,医疗领域,商业办公领域,手机等各种智能仪器领域[1],渗入人类生活的方方面面。单片机技术已经逐渐成熟,学习单片机的人越来越多,掌握单片机已经成为科技领域中的一项必备技能。
目前在高校里面学生学习单片机编程的模式主要有2种:
①使用者单独买一台单片机,并配备好外围设备及接口包括键盘、LCD显示屏、外部中断、I2C、SPI、PWM波等,花费上百元;如有需要再加上检测仪器包括数字逻辑仪、万用表、示波器等,花费上千元。它的缺点主要是价格昂贵;报废系数较高,损坏后不容易维修,一般学员不会维修;使用时需携带整套单片机,外围设备较大不易携带,使用不便。
②使用者不买单片机,编程好之后直接用仿真软件仿真,例如keil c51、proteus等软件,它的缺点主要是仿真软件与实物电路有差别,仿真结果不准确。
针对这一现象,本文提出基于虚实结合的远程单片机学习平台,让单片机学员可以更节约成本,更方便,同时结果真实可靠。其优势如下:
对比传统单片机
低成本:基于虚实结合的远程单片机学习平台采用嵌入式可扩展的方式建成,高度集成模块化,可扩展,节约占地面积,方便维修,管理员无须投入过多资金和人力对其进行管理。对于使用者,只需在上位机编程,省去了硬件设施,极大地降低了学习成本。
方便快捷:基于虚实结合的远程单片机学习平台可随时随地进行编程仿真,极大幅度地提高了使用的便捷性。
对比仿真软件
基于虚实结合的远程单片机学习平台和仿真软件相比,前者解决了后者仿真结果不准确、仿真的外围设施不全面的问题。且与仿真软件相比较,远程单片机只需在客户端安装app或是占用内存较小的计算机软件[2],可使仿真运行体积更小,更流畅。
如图1所示,远程单片机学习平台由客户端包括手机端、电脑端;云平台服务器端;网络路由器连接的单片机平台系统端组成,远程单片机学习平台采用C/S结构,即客户机和服务器(Client/Server)结构[3]。由中心处理器连接所有端口,实现用户与单片机终端的信息传输功能。当用户通过手机端或电脑端请求仿真程序时,客户端对用户的请求进行有效响应,并通过网络传送至服务器端即云平台。服务器端根据接收到的请求,经网络传送至实验室网络路由器端,再分配至空闲的单片机平台系统端,运行及仿真后将结果返回给客户端并将结果呈现给用户。
图1 系统外部结构图
远程单片机学习平台的客户端为智能手机或电脑,它为学习单片机编程的学员提供编程学习的环境,学员只需在局域网中登录计算机客户端软件或是手机app端,选择编程或仿真功能,即可通过云平台连接单片机平台并呈现返回的实验结果,客户端虚拟出LCD、键盘等外部设备方便与学员进行交互。这样的客户端可实现随时随地编程仿真。
服务器是连接上位机和单片机平台系统终端的桥梁,是整个远程系统的核心[4],将用户与实验设备实现远程连接。采用阿里云平台,实现验证用户登录、保存用户信息、读取上位机上传数据,经处理发送至单片机平台系统、读取单片机平台系统上传数据,经处理后发送至上位机端、为用户请求分配调度单片平台等功能。
单片机平台系统终端实现控制单片机程序下载运行和实验数据采集返回。采用一对多的模式,表现为任何时候,每个使用者只有在下载程序到单片机上才会占用单片机,编程期间不占用单片机系统。每一台单片机终端一天可以24小时提供使用;因嵌入式系统可扩展,还可以根据使用人数或者下载次数扩展单片机终端数目,实现系统的高效率。
如图2所示,单片机平台系统终端由FPGA采集模块,下载程序模块,单片机运行模块,电压电流(U/I)模块,嵌入式主机等组成。
单片机采用FPGA将外围参数真实地传送至网络服务器端。数据采集主要由FPGA进行,自动从LCD采集器、SPI采集器、I2C采集器、串口采集器、键盘采集器、指示灯采集器等采集器中获取信号,传给控制器进行进一步的信息传输处理。其过程可包括四个步骤:采样、保持、量化和编码,首先对输入的不同模拟信号取样,取样结束后进入保持时间,在这段时间内将取样的电参量化为数字量,然后编码。按照一定的编码格式给出转换结果。然后再开始下一次取样[5]。
图2 单个单片机平台系统结构图
采集器采集到的电参数需要经过控制器处理成直观的电参量。所有数据结果包括图形等经过控制器处理以文本字符的形式通过云平台传送给使用者终端,实现低成本、高效率、短时间的链接信息传输。
采集单片机各引脚的电流、电压。从分压电阻取来的充电电压信号经滤波后,被单片机周期采样,将采样信号转化为数字电压量[6];从分流器输出的信号采集出电流,经放大器放大电流及滤波后,将采样信号转化为数字电流量。用于提示学员单片机各引脚的端口电压、端口电流。
图3 下载器电路连接图
图4 软件流程图
如图3,采用USB及UART协议,网络路由器可通过串口和MCU通讯,MCU再将接收到的程序放在固定的程序存储器(片上ROM或EPROM),实现程序的外部下载及再执行。
单片机模块为远程实验室硬件设备平台,是单片机平台系统终端中执行程序的主体部分。包括单片机,单片机的各种外围设备及接口,其中,单片机的型号和数量可根据客户需求确定,包括常用的ARM系列、TI系列、51系列等。单片机外围设备通过单片机引脚直接与单片机实现通信。
实现网络连接,判断当前输入输出信息的分配地址,自动实现下载程序、上传仿真文本、上传引脚电参数的三通道传输信号,保证传送数据至网络服务器端不产生数据冲突。
本系统中涉及的上位机与单片机的连接方式、交流协议;内部资源与外部资源的信息上传功能;远程下载功能都已成熟。整个软件控制流程图如图4所示:
使用者通过上位机即电脑或者手机上编程,链接网络路由器,网络路由器将程序下载到单片机终端并进行闲时仿真,自动选择无人占用的单片机执行程序,单片机的每个引脚用数字逻辑仪得到信号,自动启动必要的外围设备及接口,检测仪器等能对需要的数据进行测量。得到的结果送到上位机,上位机根据信号呈现出结果,虚拟出LCD、键盘、触摸屏真实情形,同时得到过程波形,反映出单片机真实的运行结果。
单片机平台的仿真结果传输至客户端时,需要对传输的数据进行一定的文本处理,基本外围设备传输的具体文本内容如表1;同时使用者也可编写程序时在终端提出特别要求,对图像的处理等保持原样传输,此时控制器不对采集信号进行文本处理直接传输至客户端,使数据结果更加直观。
表1 传输内容表
进入信息时代以后,社会对于掌握单片机的人才的需求越来越大,为单片机学习者提供一个便捷、低成本、活动性高的单片机学习平台十分重要,本文首先阐述了单片机学习的背景,而后进一步地提出基于虚实结合的远程单片机学习平台的物理架构,软件平台。使得用户可以随时随地通过客户端软件实现远程单片机编程和仿真。
[1]施正寅,朱善安.基于Modelica的虚拟电工电子网络实验室设计[J].计算机工程,2012(11):112-113.
[2]张欢.虚实结合框架下的数字电路远程网络实验[D].浙江:浙江大学,2014.
[3]李云云.浅析B/S和C/S体系结构[J].科学之友,2011(1):72-75.
[4]张守恒.虚实结合网络实验室服务端设计与实现[D].浙江:浙江大学,2013.
[5]诸一栋.基于FPGA的数据采集系统研究[D].长春:长春理工大学,2009.
[6]崔张坤.电动汽车锂电池组高精度电压电流检测系统研究与设计[D].沈阳:沈阳理工大学,2012.