汤莉莉 王红心 张卓 王泉涛 刘进
摘 要:随着物联网技术的快速发展,它逐渐被应用于各行各业,甚至人们的生活中。本设计是把物联网技术应用于实验仪器智能化管理上,以移植了嵌入式Linux系统的主板为管理平台;向下通过RS232、485、USB、WLAN等接口,连接到各种电子实验仪器,根据仪器厂家提供的通信协议与仪器通信,操作和控制仪器;向上由局域网或无线传输模块,根据定义的通信协议,与PC客户端交互,实施授权管理和状态检测。该设计提出了一种新的思路,或为今后实验室仪器智能化管理提供一定的参考价值。
关键词:嵌入式 ARM Linux操作系统 数据结构 Linux网络编程 串口通信
中图分类号:TP399;TN91 文献标识码:A 文章编号:1674-098X(2015)12(c)-0018-02
“物联网概念”是在“互联网概念”的基础上,将其用户端延伸和扩展到任何物品与物品之间,进行信息交换和通信的一种网络概念。物联网技术现已广泛应用于医疗、交通、工业、农业、环保等各行各业,并广泛惠及民生。
目前本科阶段学生实践能力的培养主要是在院校实验室内进行,各院校为紧跟社会需求,在学生实践能力的培养上花费了大量人力和物力,采购了大量的实验器材,但往往器材采购后,由于人力有限,加上不能对设备直接进行实时管理,资源利用率并不高,只有为数不多的实验室对部分学生开放,而且需要配备相当的人力。通过引入最新的物联网技术,构建一个实验仪器智能管理平台系统,通过这个平台,可以实时的监控到仪器的使用状况,可以根据这些数据,合理的调配实验室资源、及时报告存在故障的仪器、认定仪器损坏的责任,最终达到减少人力投入和提高使用效率的目的。
1 硬件设计要求与方案选择
该设计主要的硬件选择就取决于采用何种芯片的开发板平台,选择的要求如下:
(1)能够移植Linux系统。
(2)NANDflash不小于2 G。
(3)外设接口,如USB、RS232、485、CAN、WLAN等接口要尽可能的多。其他不必要的接口,如LCD、LVDS、TFT、HDMI等显示接口要尽可靠裁剪,避免浪费资源。
(4)易于开发,选用的开发板要有可靠的可以开发手段,如程序开发工具、仿真调试手段等。另外,还需要有完备的技术资料。
(5)选用的开发板平台,要实用,但价格不能太昂贵。
鉴于以上的要求,首先考虑ARM系列开发板平台,虽然最新的Cortex系列应用广泛,但考虑到开发难易度,价格因素,该设计选择了一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板Tiny6410。
2 嵌入式Linux系统移植
2.1 移植重难点分析
移植的重难点在于需要耐心地去配置新的系统。选取需要的源代码,编译成可执行文件,使其能启动所用的主板。u-boot主要配置包括工程配置和代码移植。工程配置目的是使u-boot能够支持主板,需要添加所用主板的配置信息到u-boot工程,关键要添加主板配置文件、主板目录文件;代码移植的目的是为了添加和修改我们所需要的源代码,使这个通用的u-boot能够更好地支持我们主板的芯片,能够启动它[1-2]。
2.2 移植步骤
首先搭建交叉编译环境,交叉工具链为arm-linux-gcc-4.5.1。然后再根据需要配置编译u-boot、kernel、rootfs文件系统,经编译和执行生成得到u-boot.bin、zImage、ramdisk.img文件,再通过u-boot下载到FLASH上完成整个烧写,启动系统。
3 软件系统设计
此管理平台核心为各软件模块的设计,以RS232作为数据传输,网关服务器作为桥梁、PC作为客户端,实施监控与管理。
3.1 USB-RS232驱动加载
内核模块有动态与静态加载,由于驱动模块加载到内核会一直用到,不存在卸载,且方便使用、节省内存空间,所以选择静态加载方式[3]。
3.2 网关服务器程序
ARM11开发板作为主要控制平台,它的主要功能有两个,(1)通过不同的接口,与各种仪器进行通讯,获取我们需要的数据,并存储起来;(2)通过TCP/IP协议与客户端进行交互,交流信息。
根据网关服务器要实现的功能,把编写代码分为3个模块[4],各模块之间的关系如下图所示,3个模块文件中串口配置文件和数据存数文件是被主程序调用的,主程序模块是现实服务器功能的核心。
如下图所示,服务器端程序启动后,在主程序中,先创建链表[5-6],为后面存储数据做准备;再初始化串口,创建两个线程,最后一直向串口中写数据;在主程序中创建的线程,一个实现TCP服务,一个监测,读串口数据。在TCP服务中,实际是一个用select轮询实现的并发的服务器,可以同时接受多个客户端的请求。
3.3 客户端(PC端)程序开发
客户端程序,相对于网关服务器的程序来说,简单很多,整个程序的执行流程都是单线程,客户端端程序和TCP服务端的程序很相似,执行流程也大致一直。先创建socket套接字;填充socket,主要填写服务端的IP地址,和连接端口号。绑定bind操作,在客户端上,可有可无,但在服务端,必须要做,否则客户端无法连接。接下来就是客户端connect操作,请求连接服务器,连接成功,进行通信。
4 系统调试
4.1 Linux系统启动调试
(1)方法与步骤:内核调试→文件系统调试→修改启动参数,上电自启动。
(2)结果:经调试,移植到板子上的Linux系统可以正常启动,能正常挂载根文件系统。启动中没有出现kernel panic 和kernel dump的系统错误。
4.2 串口模块调试
用USB-RS232串口线将示波器和PC相连,装好驱动后,打开putty,进行相关设置。经调试,Linux启动后,用USB-RS232串口线连接示波器,系统能识别。在管理平台上运行server程序,并打开示波器的电源,终端上就可以打印出来。
4.3 TCP服务模块调试
经调试,在Ubuntu上server端可以与client端连接成功。将server程序移植到平台上,再次运行server端程序,Ubuntu上客户端依然能连接成功。
4.4 联合调试
管理平台上Linux系统启动后,用USB-RS232串口线,将两个示波器和管理平台连接,用网线将管理平台和Ubuntu PC相连接。在Ubuntu上交叉编译服务端工程文件,得到可执行文件server,拷贝到管理平台上,用命令:./server运行。打开示波器的电源。在Ubuntu上用Gcc编译客户端程序,得到可执行的文件client;运行程序:./client 192.168.1.127 8888。在终端上打印出和服务端连接成功的信息,按任意键,可得到关于示波器的信息,调试成功。用组合键Ctrl+Alt+T另开多个终端,切换到工程目录下,再运行客户端,结果和上面一样,表明多客户端调试成功。
5 结语
该实验仪器管理平台能够获取示波器启动时的信息和运行状态,并且存储起来;位于PC上的客户端,可以通过TCP服务访问管理平台,得到想要的数据。另外,其PC客户端可跨平台,解决了单平台Linux的局限性。在局域网的所有PC都能访问管理平台,获取实验仪器的使用情况,能多个客户端通信,还可以实时显示实验室监控画面。
实现了管理平台的基本功能,完成了物联网嵌入式技术在实验仪器智能化管理上的应用的实物模型验证,或为高校实验仪器智能化管理提出一种新的思路,同时为未来的管理智能化提供一定的参考价值。
参考文献
[1] 程姚根,苗德行.嵌入式操作系统(Linux篇)[M].北京:人民邮电出版社,2014.
[2] 刘刚,赵剑川.Linux系统移植[M].北京:清华大学出版社,2010.
[3] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2010
[4] 谭浩强.C语言程序设计(第四版)[M].北京:清华大学出版社,2012.
[5] 程杰.大话数据结构[M].北京:清华大学出版社,2011.
[6] Robert Mecklenburg.GNU Make项目管理(第三版)[M].北京:人民邮电出版社,2006.