一种基于网络的远程电路实验教学系统设计
2020-06-05郭东亮
郭东亮
(中山大学电子与通信工程学院,广东广州510006)
电路实验课程在高校信息类专业本科生的专业课程体系中十分重要,由于目前高校的招生规模持续增加,电路实验课程的实验教学资源趋于紧张,受制于实验室场地、设备资源和时间的局限,学生的人均实验时间较短,对于验证性的实验,有部分学生在有限的实验课时内无法完成规定的实验内容,而对于难度较大的设计性实验,学生往往难以在规定学时内完成实验.因此,如何增加电路实验资源的利用率是亟待解决的问题.
传统的电路实验设备是电路实验箱、实验电路板,这类实验设备处于未联网的孤岛状态,难以实现资源共享.利用网络信息技术促进优质教学资源的整合与共享、建立网络化实验教学平台是克服实验室场地、设备和时间局限、促进实验室资源共享的重要途径,也是目前高校实验教学技术发展的大趋势[1-4],本文提出了一种基于网络的远程电路实验教学系统,用户可通过网络对实验电路板进行实验数据采集和远程控制.
1 系统总体设计和控制方案
1.1 实验系统总体结构
实验系统总体框图如图1所示.系统总体上分为控制模块(控制电路板)、实验电路板两个独立部分,实验板与控制板之间经柔性扁平电缆(FFC)连接.
1)实验电路板:是针对具体实验内容开发的电路板,控制板可以控制整套实验电路板,二者间的接口采用规范化设计,不同实验电路板采用统一规格的接插件.
2)控制电路板:可分为微处理器模块和被控模块两部分.①微处理器模块:实现与计算机、局域网的通信以及对被控模块输出控制信号的功能.②被控模块:包括衰减网络、数控模拟开关、数字电位器、数字可调电阻.为实现系统的成本效益最优,将其设置于控制电路板中,由信号及测试点连接器连接至实验电路板.
该系统的设计特点如下:
1)采用ARM微处理器为核心的控制模块对实验电路板进行数字控制.
2)由于数控的需要,实验电路板需要全新设计,不再使用机械式开关,代之以数控模拟开关或数字电位器、数字可调电阻.
3)可以实现输入信号选择或衰减、电路组态切换、测量点切换三个维度的控制.
图1 实验系统框图Fig.1 Diagram of experimental system
1.2 控制方案
微控制器接入网络有以下几种方式:
1)通过专用来做网关的PC机与Internet连接
该方案需为每套实验系统配置一台PC机,成本高、耗电多、体积大.
2)低端单片机控制网卡芯片交换数据
该方案的优势是成本低,已有51 单片机与RTL8019AS 等网卡芯片接入以太网的成熟方案[5-6].该方案的劣势是对系统资源消耗大,要占用大量内存,一般需扩展RAM;此外,考虑TCP/IP协议的复杂性和单片机资源的有限性,必须对TCP/IP协议进行裁剪,软件工作量大.
3)使用集成以太网卡的高端微控制器
采用集成以太网模块并固化TCP/IP 协议的高端微控制器可以简化系统硬件设计,并提高系统可靠性.本设计采用第3方案.
2 控制模块和实验电路板设计
2.1 微控制器模块设计
微控制器承担着联系实验电路板与系统服务器的职责,是远程平台实验系统中的重要模块.本设计选择的STM32F107VCT6芯片是意法半导体(ST)公司推出的一款STM32互联型产品,基于采用ARMv7-M 架构的32位Cortex-M3处理器内核[8].远程实验系统选用该芯片作为微控制器,在其上进行微控制器软件的开发.
STM32F107VCT6 芯片内置了通信功能与控制功能所需模块.其中USART 模块,可以满足RS232 接口的串口通信功能;以太网MAC(Media Access Control)模块,通过RMII(Reduced Media Independent Interface)接口连接到DP83848 物理层芯片即可满足网络通信的需要;SPI(Serial Peripheral Interface)模块,满足对数字电位器的控制功能.STM32F107VCT6 芯片具有100 个引脚,其中包括了80 个GPIO(General Purpose Input/Output)端口,有足够的端口数量保证与被控模块的连接.
STM32F107VCT6芯片需要选用的端口包括串口通信端口2个、以太网通信端口10个、模拟开关控制端口15个、数字电位器控制端口7个,实验电路板识别端口3个.具体选用端口如表1所示.
表1 STM32F107VCT6芯片端口的使用Tab.1 Usage of STM32F107VCT6 chip port
2.2 被控模块设计
被控模块是控制系统的执行部件,具体设计如下:
1)衰减网络:衰减网络可增加实验信号的灵活性,也可使用衰减网络分压得到所需小信号.本设计中输出信号通过4选1模拟开关选择一路信号输入至实验电路板.
2)模拟开关:综合考虑实验系统的阻抗匹配和导通电阻要求,信号衰减网络所需的四选一模拟开关选择4选1模拟开关CD4052;测量点切换所需的十六选一开关选择CD4067;二选一开关选CD4053;双向开关选CD4066.
3)数字可调电阻:采用100 kΩ 的MCP41100数字电阻与10 kΩ 的MCP41010数字电阻相串联的方案,可调范围:0~110 kΩ,可实现调节精度:39.062 5 Ω.
4)数字电位器:由于电位器主要起分压作用,重要的是分压分辨率,由于均为8 位(256 级),兼顾电阻范围,采用100 kΩ数字电位器MCP41100.
2.3 控制板识别实验板方案
控制板需要能识别不同的实验电路板,可选方案有:
1)使用n 根信号线,将信号线分别上拉或接地.通过判断信号线的高低电平可以识别出2n种不同的实验板.
2)使用1 根信号线,不同实验板通过不同的电阻分压得到不同的电压值,微控制器通过模数转换器(ADC)读取电压值,从而识别不同的实验板.为提高系统可靠性,此方案需要额外提供基准电压.
本设计采用可靠性更高的第1)方案,用3根信号线识别8块实验板,该方案便于扩容(如用4根信号线识别16块实验板).
2.4 实验电路板设计
实验电路板设计需要考虑的因素有:
1)增添电源指示灯;机械式可调电阻、开关更换为数控可调电阻、数控模拟开关.
2)由于需要切换电路组态,在原实验电路板中应增加各类切换开关.
3)考虑实验电路负载的变化情况,需要增加数控可调电阻、数控模拟开关等器件.
4)实验电路板采用的统一的接插件与控制电路板相连.
5)满足控制电路板对不同的实验电路板识别的需求.
以差动放大电路实验板为例,图2是重新设计的实验电路板原理图,新设计的主要改进如下:
1)使用了数控可调电阻.
2)考虑共模和差模信号的输入方式不同且需要切换,在信号输入端加入了2 个二选一开关和一个通断开关,可以实现差模、共模信号切换,具体为,①调零:SW1 闭合,SW3、SW4 接地;②差模输入:W1 开,SW3、SW4接信号端子;③共模输入:SW1闭合,SW3或SW4接信号端子.
图2 差动放大实验电路原理图Fig.2 Schematic diagram of differential amplification experiment circuit
加入连接器JSP和JSW,并进一步考虑LED 电源指示、数字可调电阻、数字电位器等布局进行改进设计,图3是差分放大电路PCB的3D效果图.
图3 差动放大电路的PCB的3D效果图Fig.3 3D rendering of PCB of differential amplification circuit
3 微控制器软件设计
3.1 微控制器软件整体设计
微控制器软件主要由三个线程与三个中断组成,包括串口通信线程、网络通信线程与协议栈线程,定时中断、串口接收中断与以太网接收中断.由μC/OS-II完成线程调度,定时中断为其提供轮转信号,接收中断为通信提供数据缓存功能.微控制器软件整体设计框图如图4所示.
图4 微控制器软件设计框图Fig.4 Software design diagram of microcontroller
3.2 通信功能设计
1)串口通信功能设计
串口选择了常用的RS232 接口,可以与个人计算机的RS232 接口连接,或者通过CH340 芯片连接至个人计算机的USB(Universal Serial Bus)接口.串口通信功能由USART(Universal Synchronous/Asynchronous Receiver/Transmitter)接收中断与USART线程配合实现.串口发送数据时,由USART线程直接发出;串口接收数据时,触发USART 接收中断,USART 接收中断将接收数据保存至缓存数组,通过信号量通知USART线程,USART线程从缓存数组获取数据进行处理,避免了处理接收数据过慢导致数据丢失.
2)网络通信功能设计
为实现网络通信功能,移植了轻量级的TCP/IP协议栈,由于只需要与系统服务器进行网络交互,交互数据量较小,选用了UDP(User Datagram Protocol)传输层协议.具体的通信功能由UDP 线程、LwIP 线程和以太网中断三者配合实现,三者之间的通信数据通过消息邮箱投递.发送网络数据时,UDP线程将待发送数据投递至LwIP 线程的消息邮箱,LwIP 线程添加相应的网络包头后,通过调用底层以太网驱动函数将数据包发出.接收网络数据时,以太网接收中断接收到完整消息后,投递至LwIP线程,由协议栈对数据包进行解析,发现为对应UDP端口数据包后再投递至UDP线程.
3.3 控制功能设计
1)指令解析函数
微控制器的控制功能通过调用指令解析函数执行,该函数为各种具体的功能执行提供了一个统一的调用接口.由UDP 线程与USART 线程调用传入指令,函数对传入指令进行解析,过滤掉非法指令,对于合法指令,再调用相应的指令执行函数,完成控制功能.函数的返回值为指令执行结果的反馈,再由UDP线程反馈回服务器或USART线程反馈回进行串口通信的上位机.
2)指令执行函数
指令执行函数为具体实现控制功能的函数集合,包括了4 类函数,模拟开关控制函数、数字电位器控制函数、网络参数设置函数和实验板识别函数.前两类函数完成了对被控模块的控制功能,网络参数设置函数提供了设置微控制器网络参数的方法,可以配置微控制器接入某一子网,实验板识别函数用于获取当前连接实验电路板的编码,表明当前可进行的实验项目.
3.4 微控制器软件测试
1)串口通信功能测试
在通信调试软件中设置串口通信参数,包括波特率、校验位、数据位和停止位的设置,确保与USART模块的配置参数相同.通过串口向微控制器发送了模拟开关控制指令0x0000、实验板识别指令0x1C00和错误指令0xFFFF,得到的返回值为0xF0、0x07、0xF1,分别表示指令成功执行、实验电路板识别码和指令错误,其中由于GPIO 端口PD13~PD15 悬空,识别为高电平状态,因此识别码为0x07.串口通信的测试情况记录如图5所示.
2)网络通信功能测试
在通信调试软件中设置目标主机的IP地址为192.168.2.2,这是微控制器软件的初始网络地址,以及固定的UDP 端口1080,选择使用UDP 协议进行通信. 通过网络向微控制器发送了模拟开关控制指令0x0FFF、实验板识别指令0x1CFF 和错误指令0xDCBA,得到的返回值为0xF0、0x07、0xF1,分别表示指令成功执行、实验电路板识别码和指令错误.网络通信的测试情况记录如图6所示.
图5 串口通信功能测试Fig.5 Serial communication function test
图6 网络通信功能测试Fig.6 Network communication function test
4 结语
本设计将计算机网络控制技术引入到电路实验教学平台,基于ARM 微控制器实现了远程电路实验系统.该系统允许用户进行远程电路实验操作,有效提高了实验资源的利用率,该平台便于学生利用课余时间进行实验,可作为电路实验室实验教学形式的重要补充.