摘要:虽然国内一些先进的船舶已实现了全船的计算机联网,但船舶从现有的自动化装置采集的实时数据,目前都处于比较分散和不完善的状态,利用程度不高。为了充分利用这些信息,本文介绍了基于船舶局域网和嵌入式设备的信息网络。主要从网络设计和嵌入式设备两个方面进行论述。将嵌入式设备视为网络节点,使用嵌入式传感器收集数据并将数据存储到服务器上,以便局域网内部用户访问或者是网络中的授权用户访问。
关键词:嵌入式技术;船舶;信息化;网络设计
一、船舶信息化局域网设计
在现代社会,科学技术发展速度非常快。嵌入式设备的发展,为互联网注入了新鲜血液。依靠这种设备,可以进行数据的搜集。同时,将这些数据进行共享,或者储存到网络服务器,而在现代船舶信息建设过程中,网络信息技术也得到了推广应用。于是就有船舶局域网,DNV(挪威船级社)规范和 LR(英国劳氏船级社)规范等都对船舶局域网进行要求。本文重点介绍了将嵌入式设备作为网络节点的船舶监控网络。
船舶局域网的规模往往不会太大,路由器的跳数一般没有超过 15 跳,所以可以在路由器上运行 RIP 路由协议。在防火墙或路由器方面,可以部署一些策略。使得只有管理员才能访问传感器节点,一般用户只能在服务器上查询,这种方式能够对传感器节点形成良好的保护作用。在该网络中嵌入式设备以及用户终端设备使用超五类双绞线接入网络,接入层交换机到汇聚层交换机,以及汇聚层以上的网络中可以使用光纤作为传输介质,光纤网络可以使用光线路终端(OLT: optical line terminal)与光网络单元
二、基于 ARM 的嵌入式信息节点
基于 ARM 的嵌入式设备已经广泛应用工业、航空航天、生活中的方方面面。ARM 芯片具有快速运算能力,能处理大量的数据。基于 ARM 的嵌入式设备能支持网卡连接,它作为网络中的一个节点不仅能无缝的连接到船舶现有局域网中,而且传输距离也可以达到 100~200m。当节点融入了局域网后还可以借助以太网的安全技术保证数据的安全。在网络中部署嵌入式设备作为传感器的数据处理终端极大的增加了扩展性,因为一个嵌入式设备可以同时处理多个传感器的数据,可以随意增减传感器数目。
1、内核移植
对于应用相关程序的环境而言,应当有与之匹配的嵌入式设备内核才行。这杨怡来,内核的版本就应该明确,在内核源代码文件的顶层目录下的 Makefile 文件中可以查询到。在移植内核之前需要编译内核,编译内核分为三步:
(1)生成.config 文件
在架构相关的目录下找到配置文件,内核源代码文件中arch/arm/configs 下找到与开发板相关的配置文件,再使用 make 命令编译这个配置文件,编译这个文件后生成了.config 文件。该文件为内核源码提供了宏定义,以及为编译内核时提供编译选项。
(2)修改配置选项
.config 提供了内核配置的默认选项,但是内核同时也通过修改这些默认选项的可视化 界面。执行make menucongfig 即可进入可视化界面,修改内核的配置选项。
(3)生成内核
make u Image 后会在 arch/arm/boot 目录下生成内核镜像u Image。因为u Image内核镜像依赖于vmlinux。所以系统会自动生成vmlinux 再生成内核镜像。生成内核后可以借助 Jlink或者open Jtage 工具烧写内核到嵌入式设备。Opentag 的使用方法。
期刊文章分类查询,尽在期刊图书馆
2、网卡驱动移植
(1)硬件介绍
为了满足联网,嵌入式设备必须具备通讯接口和相应的TCP/IP 协议软件的支持。嵌入式设备需要借助以太网络通信,那么它就需要网卡来支持整个网络数据的通信,本文采用了 DM9000 网卡,该型号网卡是一款完全集成的符合成本效益的单芯片快速以太网 MAC 控制器。它支持 8 位、16 位、32 位接口访问内部的存储器,以支持不同的处理器。DM9000 物理协议层接口完全支持使用 10Mbits/s 下 3 类、4 类、5 类非屏蔽双绞线和 100Mbits/s 下 5 类非屏蔽双绞线。它的自动协调功能将自动完成配置以最大限度地适合其线路带宽。
(2)DM9000 网卡驱动移植
网络设备驱动程序需要完成网络设备的注册、初始化与注销,以及进行发送和接收数据处理,并能针对传送超时、中断等情况进行及时处理。在内核中网卡设备是借助/include/linux/netdevice.h 中定义的net_device数据结构描述。在这个数据结构中包含了操作网卡设备的函数。打开设备的open函数,关闭设备的stop函数。
(3)Linux 网络子系统
Linux 网络子系统的顶部是系统调用接口层。它为用户空间提供的应用程序提供了一种访问内核网络子系统的方法(socket)。位于其下面是一个协议无关层,它提供一种通用的方法来使用传输层协议。然后是具体协议的实现,在 Linux中包括内核的协议 TCP,UDP,当然还有IP。然后是设备无关层,它提供了协议与设备驱动通信的通用接口,最下面是设备的驱动程序。
设备无关接口将协议与各种网络驱动连接在一起,这一层提供一组通用函数供底层网络设备驱动使用,让它们可以对高层的协议栈进行操作。需要从协议层向物理设备发出数据,需要调用dev_queue_xmit 函数,这个函数对数据进行列队,然后交由底层驱动程序的 hard_start_xmit 方法最终完成传输。接收通常是使用 netif_rx 执行的。当底层设备程序接收到一个报文(发生中断)时,就会调用 netif_rx 将数据上传至设备无关层。
三、嵌入式节点网络通信技术
1、网络编程技术
嵌入式设备作为数据处理的终端,当数据处理完成之后需要通过局域网上传到服务器和显示在用户终端程序上。基于socket 的网络编程可以实现跨平台的通信,而且无论是在Linux 平台还是 Windows 平台上都提供关于完整的Socket编程API,这些 API 给开发者提供了操作socket 的接口。针对不同的数据提供了不同的编程模型。数据完整性要求较高的传感器数据采用TCP模型。
2.基于 linux 的多线程编程技术
在嵌入式设备里面,传输数据是依靠套接字来实现的。如果需要上传多个传感器数据,就要多线程技术的辅助才能够完成这项任务。C/S 复杂服务器模型是一对多关系,一个服务器端某一时间段内对应处理多个客户端的请求,并发服务器模型属于此模型。将嵌入式设备看成是服务器将传感器设备看成是客户端时就需要使用并发服务器模型来提交数据给网络中的服务器,每次传感器提交数据时都会拥有一个线程来处理数据。
结束语:
科技的不断进步,使得船舶的信息智能化水平也提高了。各部门间交流的加强,对其信息网络也提出了更高要求。建设出稳定高效的网络,已经成为了迫切的需求。这使得嵌入式设备愈发重要。由于他的种种优势和长处,使它成为收集信息的终端设备,发挥着自身作用。
参考文献:
[1]赵德远. 基于嵌入式技术的船舶信息化网络设计[J]. 中国水运(下半月),2017,02:48-50+92.
[2]先柯桦. 煤矿信息化网络安全平台设计[J]. 煤炭技术,2013,02:167-169.
[3]李玉平. 高校信息化网络体系设计与安全思考[J]. 电子技术与软件工程,2016,02:30.
论文作者:刘英坤
论文发表刊物:《基层建设》2017年第10期
论文发表时间:2017/7/24
标签:嵌入式论文; 设备论文; 内核论文; 网络论文; 数据论文; 船舶论文; 传感器论文; 《基层建设》2017年第10期论文;