高速高性能单片机在网络监控中的应用
2017-11-02靳小巍
靳小巍
(山西农业大学 软件学院,山西 晋中 030801)
高速高性能单片机在网络监控中的应用
靳小巍
(山西农业大学 软件学院,山西 晋中 030801)
当前,网络通信设备成本居高不下。为降低网络实时监控系统中传输设备成本,设计采用高速、高性能单片机作为网络服务器,完成大数据量视频图像传输以及控制信号传递。搭建实验环境,编程实现前端视频采集、图像数据在网络服务器中的传输以及后端接收、处理和显示等代码。为改进和提高网络图像传输性能,使用单片机嵌入μC/OSII操作系统。实验结果表明,接收端视频图像显示清晰,控制信号传输时延满足使用要求。
单片机;视频采集;实时监控;网络传输
0 引言
随着单片机(MCU)处理速度的不断提高,单片机在网络中的应用逐渐趋于复杂化[1]。本文主要研究美国Cygnal公司生产的8位高速、高性能单片机C8051F020在网络中作为服务器的复杂应用,以降低网络通信费用,主要包括实时网络监控和动态图像传输两大部分。
1 Cygnal单片机C8051F020性能介绍
C8051F020具有与8051兼容的微控制器内核CIP-51[2],与MCS指令集完全兼容。除了具有标准8051的数字外设外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。与传统的MCS-51相比,C8051F020采用流水线结构,指令运行速度大幅提高。在25 MHz外频时,可达最高处理速度25 MIPS。另外,采用3 V低电压供电,使整个芯片的功耗大幅降低。
2 实验网络环境
图1为实验网络环境构成。
图1 网络环境构成
2.1 客户端
客户端由预装了Windows XP操作系统的PC构成。PC通过以太网连接线与单片机实验板相连,两者构成以太局域网络。利用VC++ 6.0编程,通过WINSOCK网络编程及图像处理编程,可以实现客户/服务器(C/S)模型下、建立在TCP/IP之上的客户端功能,包括网络监控、请求网络图像传输及图像数据接收和显示功能[3]。
2.2 服务器端
服务器端主要由单片机C8051F020、支持以太网络收发的芯片RTL8019AS、支持RS232串行通信及外围测控的芯片组成。RTL8019AS可以独立完成网络接发包工作,实现以太网载波监听、冲突检测、碰撞重传等功能,并可以与MCU进行数据交换。单片机C8051F020的程序存储器中固化有按照uIP、用C语言编程实现的TCP/IP及ARP,还有应用程序。它们分别完成建立在TCP/IP之上的网络图像数据传输和通过RS232接口的串行通信、外围测控信号的采集、监控等功能。
采用嵌入式C语言编程实现服务器功能。编译环境为Keil μVision 4.0,采用J-Link调试盒下载程序和在线调试。
2.3 外围电路
单片机外围电路主要分成两部分,分别完成图像采集和测控功能。图像采集部分由PC及摄像头构成,PC预装Windows XP操作系统。利用VC++ 6.0编程,通过Microsoft提供的VFW(Video For Windows)视频编程和串行通信编程,可以将采集到的图像数据利用PC的RS232串行通信接口传输给单片机。单片机以中断方式通过其RS232接口逐字节接收图像数据并存储在其内存xdata段。测控部分主要完成对外围监测信号的采集和上层控制命令的处理,如温度测量、控制步进电机转动和开关闭合等。
3 网络监控的实现
上层监控命令被封装在网络数据包中,按照以太网规范要求[4],从客户端经由局域网连接线送至服务器端的网络芯片RTL8019AS,网络芯片将数据接收并存储在其内部存储器中。MCU以查询(本实验采用)或中断方式实现与网络芯片的数据交换。这样网络数据包将被单片机接收并存放在后者内存xdata段。按照TCP/IP逐层传递要求,单片机将数据包从下向上逐层上交,直到应用层。应用层识别监控数据类型,并通过单片机外围电路,实现监控功能。当需要向客户端回传测控信号时,单片机将按照TCP/IP要求,对测控信号数据逐层向下打包传递。最后,按照以太网规范,通过网络芯片RTL8019AS,传送至客户端。
4 图像采集与传输
4.1 传输过程
与网络监控类似,客户端通过网络发送图像传输的请求。服务器端接收请求后,通知外围电路开始采集图像。单片机通过其RS232串行通信接口接收外围PC采集到的图像数据,并按照TCP/IP要求打包回传给客户端。
4.2 图像采集
单片机外围电路中的摄像头和PC配合完成图像采集工作。在PC正确安装摄像头驱动程序后,利用VFW视频编程,可以建立视频捕获窗口。摄像头驱动程序把每一帧图像以位图BMP格式写入视频捕获窗口提供的一个数据结构中。每当写完一帧图像数据时,视频捕获窗口自动调用回调函数。在回调函数中,通过串行通信,可以把一幅图像数据传输给单片机。由于单片机内存容量的限制,传输可能是分批和分期进行的。如果采用图像压缩,其压缩工作也可以放在回调函数中完成,当然,要先压缩后传输。本实验未采用图像压缩技术。实际应用中,图像采集电路中的PC及摄像头将被图像传感芯片和数字图像处理芯片(DSP)代替。
4.3 图像传输
每当单片机接收到一定数量的图像数据后,就开始按照TCP/IP要求打包传输。一幅图像可能要经过多次打包和传输才能全部发送到网络客户端。采用TCP传输控制协议,保证了一幅图像的每一个数据包均可以按序发送和接收。而且,当发生网络丢包时,服务器端还可以重传已丢失的数据包。
4.4 图像接收与回放
客户端通过网络向服务器端发送图像传输的请求,来启动图像传输的全过程。当图像数据以网络数据包的形式顺序逐帧(以太帧)由服务器端发送过来时,客户端仅需要把它们按照接收到的顺序放在一个缓冲区中,并为此幅图像配置BMP格式的图像数据头结构。然后,利用Microsoft提供的图像显示函数,就可以在客户端显示接收到的一幅图像了。
4.5 传输时间控制
由于图像传输的数据量较大,使单片机在时间安排不合理时,会无法承受重负而宕机。极端的表现是:连续长时间的图像数据接收和并传输,这时单片机无法及时响应和处理实时网络监控信号,使网络监控迟滞。因此,必须人为控制单片机图像数据传输时间,以留出足够时间响应实时网络监控信号。
以实验实际情况分析,在未嵌入实时操作系统前,这种图像数据传输可能要人为控制在50%机时以内,甚至更少。实验中,串行通信速率为115 200 b/s,单片机串行接收1 KB的图像数据用时近100 ms,打包并通过网络传输1 KB的图像数据用时近150 ms。当测定的图像数据传输率≤2 KB/s时,机时占用近50%,并可保证实时网络信号的正常处理。这时,传输一幅160×120×12位的I420格式的彩色图像,用时为15 s。
4.6 嵌入实时操作系统μC/OSII
嵌入μC/OSII时,要按照程序模块的不同功能,建立不同的任务(TASK),并根据模块功能的轻重缓急为每一任务设置不同的优先级[5]。在实时监控系统中,监控信号的接收和响应比图像信号的传输具有更高的优先级。在嵌入实时操作系统之前,必须人为控制单片机图像传输的机时,以保证单片机对实时监控信号的接收和响应。在嵌入实时操作系统后,由操作系统来控制和分配图像传输的机时,并可及时响应实时监控信号。经实测,在Tick设置为100 ms时,图像传输稳定,实时信号延时在300 ms之内,满足实际使用要求。
5 结论
用单片机作为服务器,通过网络实现远程实时监控和大数据量图像传输,可以极大地降低远程含图像类实时监控的成本,同时减小服务器端设备体积,提高服务器端设备可靠性。研究结果已应用于深圳某公司生产监控系统中,并显著降低了网络通信成本。
[1] 刘欢,方华.基于指纹识别的实验室门禁管理系统设计[J].微型机与应用,2016, 35(23):93-95, 99.
[2] 潘琢金,译.C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册[EB/OL].[2017-03-26]http:∥wenku.baidu.com/view/0cef7393dd88d0d233d46a0e.
[3] 李子昌,李智,管四海.自动装载与视频监控远程控制系统[J].微型机与应用,2017,36(1):1-3.
[4] BERKELEY L. TCP/IP详解[M]. 北京:机械工业出版社, 2000.
[5] LABROSSE J J. 嵌入式实时操作系统μC/OSII[M]. 邵贝贝,译.北京:北京航空航天大学出版社,2003.
Network application of high speed and high performance MCU
Jin Xiaowei
(School of Software, Shanxi Agriculture University, Jinzhong 030801, China)
In order to cut down the cost of equipments used in the network for real-time monitoring, high speed and high performance MCU is used as a Web server to transmit a large amount of data on image and control signal. Experimental environment is set up. Images are captured by program in the front end and relative data are transferred in the network under control. At the end, data are processed and original images are displayed. To improve transmission performance on images, an embedded operation system μC/OSII is used. Experimental results show that images are transmitted fluently and control signals are transmitted in real time.
MCU; image acquisition; real-time monitoring; network transmission
TP393.1
A
10.19358/j.issn.1674- 7720.2017.20.019
靳小巍.高速高性能单片机在网络监控中的应用[J].微型机与应用,2017,36(20):65-66,70.
2017-03-26)
靳小巍(1995-),女,本科在读,主要研究方向:计算机嵌入式系统、网络通信等。