基于嵌入式的现场总线和TCP/IP协议转换的技术研究

来源:公文范文 发布时间:2022-11-25 20:40:21 点击:

zoޛ)j馔?L# R}K9w=M设计了软硬件平台,实现了现场总线协议和TCP/IP 协议的转换,测试了协议转换的运行情况,实现了RS 232,RS 485,CAN总线协议和TCP/IP协议的数据双向传输,可以应用于工业生产、家庭网关、远程监控等领域。

关键词: 现场总线; TCP/IP协议; AT91RM9200; 协议转换

中图分类号: TN915.04⁃34; TP393.09 文献标识码: A 文章编号: 1004⁃373X(2016)01⁃0016⁃04

0 引 言

随着计算机网络和通信等技术的发展,互联网已经渗入世界的每一个角落,对企业的系统结构产生了极大的影响。在企业内部,由于多种联网技术不断涌现,多种网络架构共同存在,而企业信息沟通的领域正迅速地覆盖着从工厂现场设备的控制到决策管理的各个层次,打破了传统的工业控制网络体系。实现办公自动化与工业自动化的无缝结合,形成新型的管控一体化的全开放工业控制网络,也是现代企业向企业计算机综合自动化CIPA(Computer Integrated Plant Automation)和信息化发展的趋势[1]。

1 嵌入式网关平台的设计

嵌入式网关的设计包括硬件设计和软件设计。随着嵌入式技术的发展,有多种的嵌入式微处理器和嵌入式操作系统可供选择。选择合适的开发平台有利于缩短开发周期,降低开发难度。根据需要本文选择了32位的嵌入式微处理器AT91RM9200和嵌入式Linux操作系统。

1.1 嵌入式网关的硬件系统

嵌入式网关的微处理器采用AT91RM9200。让AT91RM9200工作起来,至少还需要存储电路、电源电路、复位电路和时钟电路,这些电路可以参考AT91RM9200的DataSheet。AT91RM9200内部带有丰富的通信资源,容易扩展出RS 232,RS 485,CAN总线接口、以太网。利用USART外接电平转换芯片可扩展串行接口RS 232,RS 485;利用串行外围接口(SPI)外接支持SPI的CAN控制器可扩展出CAN总线接口。利用集成的以太网10/100M自适应MAC控制器,外接物理层芯片DM9161可扩展出网络接口。嵌入式网关的硬件电路框图如图1所示。

电源电路如图2所示。由于AT91RM9200芯片需要3.3 V和1.8 V供电,这里采用电压转换芯片AMS1117⁃1.8 V和AMS1117⁃3.3 V,将5 V转换为3.3 V和1.8 V提供给处理器。

时钟电路AT91RM9200有2个时钟Slow Oscillator和Main Oscillator,需要的晶振为32.768 kHz和18.432 MHz分别接于相应的引脚。而AT91RM9200经过PLL倍频后的处理速度可以达到180 MHz。

AT91RM9200内置USART,利用SP3243或SP3485芯片扩展出RS 232或RS 485接口。SP3243或SP3485芯片只是起电平转换的作用,至于网络接口,芯片内置网卡控制器,并未提供物理层接口,需外接以太网物理层芯片DM9161以提供以太网的接入通道。由于AT91RM9200内部具有SPI接口(同步串行外围接口),MCP2510是利用SPI总线读写的独立CAN控制器,故采用MCP2510扩展CAN接口。

1.2 嵌入式网关的软件系统

1.2.1 嵌入式Linux操作系统

Linux操作系统是基于POSIX的多用户多任务,支持多线程和多CPU,免费和自由传播的类Unix操作系统。它采用模块化的设计结构,支持32位处理器,主要用于x86系列CPU 的计算机上。它还继承了Unix以网络为核心的设计思想,是一个性能稳定的网络操作系统。它具有以下特点[2]:

(1) 源代码免费开放。Linux遵循GPL协议,任何人都可以免费获得Linux操作系统和应用程序的全部源代码,根据需要进行修改。这样可以大大降低开发成本。

(2) 系统功能强大,性能稳定,升级速度快。Linux系统的内核强劲,性能稳定可靠,适合那些需要连续不间断运行的关键应用场合。

(3) 应用程序十分丰富。由于Linux符合POSIX标准,而能运行Unix程序的任何操作系统必须符合这一标准。另外,为了使System V和BSD上的程序能直接在Linux上运行,Linux还增加了部分System V和BSD的系统接口。

(4) 支持动态链接。一般的系统采用静态链接方式,当多个进程运行时,可能会出现库代码在内存中有多个副本而浪费存储空间的情况。Linux支持动态链接方式,当运行时才进行库链接,如果所需要的库已被其他进程装入内存则不必再装入,节省了运行空间。这对存储空间有严格要求的场合非常适合。

(5) 支持多种文件系统。Linux能支持如EXT2,EXT3,MSDOS,PROC,NFS,MINIX等多种文件系统。最常用的文件系统是EXT2,它的文件名长度可达255字符,比常规的Unix文件系统更加安全。Linux可以同时支持不同的文件系统,非常方便实现数据的储存和共享。

(6) 网络功能强大。Linux具有完善的网络通信功能,支持所有流行的网络协议,如TCP/IP,SMTP,FTP,Telnet等;可以使用所有的网络服务,如网络文件系统、远程登录等。这使Linux非常适用于网络应用场合。

(7) 易于灵活定制。Linux内核采用了模块化设计,易于裁剪。随时都可根据需要对内核裁剪,去掉不需要的功能或添加新的功能,以求与硬件资源形成最佳的配合。

(8) 支持多种硬件体系结构,移植方便。Linux能够支持x86,ARM,MIPS等多种CPU体系结构,几乎所有流行的CPU都可以找到Linux的移植版本。

由于商业的嵌入式操作系统如VxWorks等体积过于庞大、价格昂贵、源代码不公开。结合AT91RM9200 的特点和具体的功能需求,这里选择免费、源码开放的嵌入式Linux 操作系统。

由于嵌入式系统的CPU速度、内存、外围设备等资源非常有限,因此,在满足功能要求的前提下,需要对嵌入式系统的体积大小进行严格控制,以求降低系统开发成本,赢得竞争上的优势。由于嵌入式Linux的内核采用模块化设计,并且其全部源代码都是开放的等特点,因此可以根据实际应用的需要对系统内核进行配置,去掉一些不必要的功能,重新编译内核,最后得到适合于具体应用的内核。

嵌入式Linux是Linux针对嵌入式微处理器而修改过的操作系统[3]。嵌入式Linux的组成和Linux类似,主要也是由存储管理、进程管理、文件系统、进程间通信等几部分组成。由于嵌入式Linux具有Linux的特点,所以选用嵌入式Linux操作系统。在AT91RM9200上运行的嵌入式Linux是针对ARM处理器进行修改的Linux。

基于嵌入式Linux的软件结构分成四个层次:设备驱动、操作系统、应用编程接口和应用系统,如图3所示。设备驱动接口负责嵌入式系统与外部设备的信息交互。嵌入式Linux操作系统的功能分为基本和扩展两个部分。前者是操作系统的核心,负责整个系统的任务调度、存储分配、时钟管理和中断管理,并提供文件系统、GUI等基本服务;后者为用户提供操作系统的扩展功能,包括网络和数据库等。应用编程接口API为中间件,为编制应用程序提供各种编程接口库,针对不同应用领域要求分别构建。应用系统则是嵌入式系统中完成特定任务的应用软件。

一般地,用单片机开发出来的程序是在没有操作系统的基础上完成的,而一旦使用操作系统,就需要为相应的硬件设备编写驱动程序。设备驱动程序是操作系统内核和硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节。这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分。它完成对设备的初始化和释放;把数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备文件的数据和回送应用程序请求的数据;检测和处理设备出现的错误。在嵌入式Linux下RS 232,RS 485,CAN总线和以太网的通信,其中各个接口的驱动程序是关键。在实现了RS 232,RS 485,以太网和CAN总线驱动程序的基础上,可以进行应用程序的开发,即实现各总线和以太网之间的转换。如CAN总线和以太网的数据交换;当网关从CAN总线接收到数据时,按CAN总线协议解析数据并按照以太网的协议格式组帧,然后从网络接口发出;而当网关从以太网上接收到数据后,按以太网协议格式解析数据包并按CAN协议格式组帧,然后向CAN总线上发出。

1.2.2 嵌入式软件的开发环境

嵌入式系统的开发不同于单机PC开发,需要建立交叉编译环境,即目标机/宿主机的模式[4⁃6]。软件开发的PC 机称为宿主机,用户自己的开发板称为目标机。宿主机上要有一个集成开发环境来辅助软件开发。这个集成开发环境运行在Windows 98/NT或Linux上,包括交叉编译器(Cross Compiler)和交叉调试器(CrossDebugger)。所谓交叉编译就是在宿主机上编译生成可以在目标机上运行的映像文件。

开发平台如图4所示。宿主机上RedHat9.0,目标机上ARM⁃Linux。宿主机和目标机的通信方式有串口通信和网络通信。串口通信是通过交叉串口线连接的;网络通信通过交叉网线或者以太网进行。

由于目标机上的资源有限,无法在目标机上安装相应的编译工具和调试工具,所以要在宿主机上安装开发工具arm⁃linux⁃gcc⁃2.95.3.bz2。它用来生成目标机支持的映像文件。在宿主机上运行tar⁃jxvf arm⁃linux⁃gcc⁃2.95.3.bz2即可。建立起开发环境后就可以进行嵌入式软件开发了。嵌入式软件的开发流程如图5所示。

1.3 嵌入式网关的体系结构

嵌入式网关连接的现场总线和以太网是通信协议和结构完全不同的网络。它完成的工作实际上是对数据的封装使得数据能被现场总线和以太网所接收,起到协议转换的作用。协议转换则采用分层转换的方法,自底向上逐层进行。嵌入式网关包含CAN总线等接口的虚拟设备,在企业信息管理系统与现场监控系统中都表现为普通设备,从而既和上层应用进行数据交互,又和总线上的其他设备进行通信,获得所需要的数据信息。这些数据信息在嵌入式网关中的虚拟设备之间进行交互。交互方式可以通过消息队列或共享内存等机制实现。

2 协议转换的测试

2.1 测试对象

通过对嵌入式网关的硬件设计,绘制原理图和PCB,元器件焊接,硬件调试,最终的嵌入式网关实物如图6所示。该嵌入式网关向上提供10/100M自适应以太网接口,向下提供3个RS 232串行口(1个作为调试串口),1个标准的RS 485接口,1个CAN总线接口。

2.2 测试环境

嵌入式网关的测试环境是:PC机作为测试终端。嵌入式网关和测试终端处于局域网内部,其IP 地址为10.1.34.100,测试终端的IP为10.1.34.200。RS 232接口,和独立PC的COM1口用交叉串口线相连。至于RS 485接口,则通过RS 232↔RS 485转换器将独立PC的COM2口转换为RS 485接口。CAN总线则可以利用MCP2510的回环模式实现自发自收。测试终端使用操作系统Windows 2000。打开超级终端,选择COM1,然后设置波特率115 200,数据位为7,奇偶校验无,停止位为1,数据流控制无,如图7所示。开发板上电,出现嵌入式Linux启动信息。到此,开发板上的嵌入式Linux操作已经运行。

2.3 测试结果

在超级终端中输入cd /mnt/yaffs/system_show,进入/mnt/yaffs/system_show目录,依次运行程序se,mod,s,can。以PC机为客户端,进行RS 232,RS 485,CAN的数据请求,并接收返回的数据。客户端运行./cl 10.1.34.100 8888,然后输入发送的数据,其中第一个数据位上的数据为2表示RS 232设备,为3表示RS 485设备,为4表示CAN设备。

(1) 和RS 232设备数据交互。从客户端发送:2 abcefg;在RS 232端接收到abcefg,然后从该端返回数据1234567890;在客户端接收到1234567890。

(2) 和RS 485设备数据交互。从客户端发送:3 abcefg;在RS 485端接收到abcefg,然后从该端返回数据1234567890;在客户端接收到1234567890。

(3) 和CAN设备数据交互。从客户端发送:4 abcefg;在CAN端接收到abcefg,然后从该端返回数据abcefg;在客户端接收到abcefg。

3 结 论

测试实验的结果说明:嵌入式网关实现了RS 232 接口,RS 485接口,CAN总线接口和网络接口的双向数据传输。它在接收到来自于以太网的请求信息后,对其解包提取原始信息,并以RS 232,RS 485,CAN总线可以接收的格式发出;在接收到来自于RS 232,RS 485,CAN总线发回的信息后,提取信息并以以太网帧格式组帧发送到以太网返回给客户端。

参考文献

[1] 肖闽进,张建生,过军,等.数字电网变电所站内智能设备协议转换设计与实现[J].计算机测量与控制,2013,21(12):3429⁃3432.

[2] 赵海,邵士亮,朱剑,等.一种连接WSN与Internet的多核嵌入式网关设计与实现[J].东北大学学报(自然科学版),2012,33(1):65⁃68.

[3] 尤涛,杜承烈,刘世卿,等.复杂虚拟试验实体聚簇分配策略适应性研究[J].系统仿真学报,2009(20):6577⁃6580.

[4] 李云杰,王勇,王占领,等.AFDX与ARINC429总线协议转换器设计[J].计算机测量与控制,2013,21(9):2522⁃2524.

[5] 张丁丁,孙志毅.TCP/IP协议栈的实现方法[J].工业控制计算机,2013,26(9):35⁃36.

[6] 方绍强.基于嵌入式Linux的以太网与CAN和MBUS两种现场总线的通信网关设计[D].昆明:云南大学,2013.

推荐访问:技术研究 嵌入式 转换 现场总线 协议
上一篇:现场总线技术在华能太原东山燃机热电有限责任公司分析仪表中的应用
下一篇:CLUSTER技术在天生桥水力发电总厂信息管理系统中的应用

Copyright @ 2009 - 2024 优泰范文网 All Rights Reserved

优泰范文网 版权所有 备案号:粤ICP备09201876号-1