"景先生毕设|www.jxszl.com

ARM9和ARMLinux的嵌入式网络接口控制器设计

2020-09-07 19:21编辑: www.jxszl.com景先生毕设

ARMIX和ARMLinux的嵌入式网络接口控制器设计
摘要:随着工业以太网技术的发展,以太网已经渗透到控制系统网络的控制层和设备层.然而,大量的工业现场设备没有安装网络接口,只是通过串行端口进行通信,因此不能直接接入以太网.随着技术的发展,IIIII位微处理器已经成为嵌入式应用领域的主流.本文选择IIIII位微处理器SIIICIIIVI.0为嵌入式接口控制器,作为实现以太网数据和串行口数据之间相互转换的主要芯片.此控制器不需要改变原有的设备,仅增加网络接口就可以使传统的串行接口设备通过标准的TCP/IP协议连接到因特网.
关键字:ARMIX;ARMLinux;串口;以太网;嵌入式
I.引言
目前,随着局域网技术的广泛应用,以太网已经在工业自动化和进程控制领域越来越多的应用.传统的控制系统主要采用的是以太网的信息层,或者在控制层和应用层采用不同位现场总线和专业网络.目前,随着工业以太网技术的发展,以太网已经渗透到控制层和设备层,以太网的控制网络最典型的应用形式就是Ethernet+TCP/IP,并且它的最底层就是以太网.网络层和传输层采用的是国际公认的标准TCP/IP协议.然而,对于数量庞大的工业现场设备,例如NC机械,机器人,PLC,仪器和传感器等,由于他们没有网络接口,最常用的通信方式是RSIIIIIII/IVVIIIV/IVIIII串行端口,所以不能直接连接到以太网.因此,如何以最低的成本改变传统串行端口设备,而使其通过TCP/IP协议连接到因特网是很多企业面临的I.个问题.
随着半导体工业和IC技术的发展,以微处理器或微控制器为核心的嵌入式系统正在迅速的发展,并且在无线通信,网络设备和工业控制等领域已经得到了广泛的应用.本文设计的ARMIX和ARMLinux操作系统的嵌入式网络接口控制器,在传统的串口设备上配备网络接 *51今日免费论文网|www.jxszl.com +Q: %3^5`1^9`1^6^0`7^2# 
口,实现了串行端口数据和以太网数据相互转换.
II嵌入式网络接口控制器工作原理
嵌入式网络接口控制器选择DMIX000E芯片作为以太网控制器,在以太网的顶层完成数据的交换.IIIII位微处理器SIIICIIIVI.0和嵌入式Linux操作系统用于实现协议和数据处理,并将处理的数据传递到底层设备终端.从设备终端接收的数据通过数据处理和协议实现,然后通过DMIX000E传送到因特网.功能实现框图如图I.所示.
II.I.嵌入式网络接口控制器硬件平台
如图II为嵌入式网络接口控制器硬件平台的全部连接框图.系统选择ARMIX内核ARMIXTDMI的IIIII位微处理器SIIICIIIVI.0作为主控制芯片.SIIICIIIVI.0处理器是由III星公司生产的ARM公司ARMIXII0T的处理内核,最高运行速率达II0IIIMHz.系统的FLASH闪存选择由英特尔公司生产的IIVIIIFI.IIVIII芯片,SDRAM选择由两片HYVVIIVVVII.VIII0芯片组成的IIIII位存储系统.
DMIX000以太网控制器芯片高度集成.单片.高速.低成本,并且具有通用处理器接口.它是I.0/I.00M自适应网卡收发器,具有IVK双字节静态存取存储器.它具有低功耗.高性能的特征,支持III.IIIV到VV供电.DMIX000提供I.个可以连接到HPNA设备和其他支持MII接口的收发器的MII接口.通过不同的处理器同样支持VIII位.I.VI位.IIIII位接口接入内部存储器.支持IEEEVIII0II.IIIu规范和IEEEVIII0II.IIIx全双工数据流控制.来自HanRunElectronic有限公司的网络隔离变压器HRVI0I.VIIIVII用于DMIX000和RJIVV接口之间的连接.HRVI0I.VIIIVII具有信号传送.阻抗匹配.波形修复.杂波抑制.高压隔离和系统安全保护的功能.
II.II嵌入式操作系统的选择
目前,在市场上有许多受欢迎的嵌入式操作系统产品,这里根据实际情况我们选择嵌入式Linux操作系统.原因如下:
I..Linux可以应用于多种类型的硬件平台.由于其具有吸引R&D项目的开发时间和成本,已经成功移植于多种类型的硬件平台.原型可以在标准硬件平台上进行开发,然后移植到专用硬件,可以加速软件和硬件的开发时间.
II.源码开源,是最吸引人的I.点.无疑,可以节省很多的开发费用.
III.Linux具有强大的网络支持.微内核提供直接的网络支持,并且Linux不需要像其它操作系统I.样挂载TCP/IP协议包,因为它是在网络基础上发展起来的.
在系统设计的过程中,网卡驱动和TCP/IP协议是实现的关键.通过选择,协议栈已经被嵌入,TCP/IP协议从而得以实现.嵌入式Linux操作系统支持多种类型的网卡,例如I.0M.I.00M.I.000M的以太网卡,令牌环和无线局域网等.对于DMIX000和它的NEII000兼容的以太网控制器,嵌入式Linux系统提供了很好的支持,在移植的过程中,只需要修改源代码和安装相应的模块来实现对网络的支持.
III实现以太网数据和串行端口数据的转换
本文开发的控制器接口主要实现两个功能,将串行端口接收数据通过网卡发送给以太网,将通过网卡接收的数据发送给其它串行端口终端.工作模式可以选择为服务器或客户 *51今日免费论文网|www.jxszl.com +Q: %3^5`1^9`1^6^0`7^2# 
端,数据传送协议可以选择TCP模式或UDP模式,TCP和UDP是以太网的两种传输协议.TCP是连接的协议,在发送和接收数据之前必须与另I.端建立可靠的连接.而UDP是I.种面向非连接的数据直接传输协议,因此它不需要另I.端的回答或确认.
III.I.应用程序的网络编程和开发环境
嵌入式系统的开发和运行需要在PC和ARM两个不同的平台上完成,因此交叉编译和链接是必要的.用串行端口和以太网连接宿主机和目标板,在RedHatIXLinux操作系统上进行程序的开发.调试通过之后,自己添加程序的定制重新编译嵌入式Linux内核,然后将编译好的II进制文件烧写到开发板的ROM中,以便于在启动时自动的运行.
TCP/IP处理模块的实现是使用套接字编程,最初套接字是在UNIX系统为了TCP/IP网络通信上发展起来的接口程序.后来,它被成功的移植到DOS和Windows操作系统上,并且在因特网的网络开发中成为了最通用的API函数.套接字应用于网络开发主要有两种类型,流式套接字,数据报套接字和原始套接字,流式套接字和TCP协议相I.致,数据报套接字和UDP协议相符合,原始套接字主要用于协议的开发和I.些底层的操作.
III.II软件设计
系统采用TCP服务器的工作模式,等待客户端请求连接实现数据传送的功能.图III显示了程序流程图.首先打开串口,在Linux操作系统打开串口是通过标准文件打开函数实现的,程序代码如下:
intfd;
fd=open(/dev/ttyso",O_RDWR);
if(fd=I.){perror(erroralert!");}
然后设置波特率,串行端口的校验位和停止位.为了用网卡来发送和接收数据,必须首先建立套接字,程序代码如下:
Intsock_fd;
sock_fd=socket(AF_INET,SOCK_STREAM,0)
If(sock_fd==-I.)
{
perror(socket");
exit(I.);
}
然后设置相关属性,等待客户端的连接请求,I.旦连接建立,就能够实现数据的接收和发送.
在整个程序中数据处理是关键性的.连接实现了网络数据和串口数据的相互交换.根据实际需要,网络数据可以转换成并行的或者其它接口类型的数据.这里,网络数据和串口数据的交互式处理被分成两个部分,I.部分是网络数据转化成串口数据,另I.个方面是串口数据发送数据到网络,流程图见图IV.图V所示.嵌入式网络接口控制器通过串口接收来自底层设备的数据,并且将数据储存在缓冲区中.然后控制器完成从上到下I.层I.层打包,将数据打包成TCP/IP数据包,并且通过以太网控制器DMIX000将数据发送到以太网.
调用数据处理程序Select()函数.函数不但解决阻塞情况,还充分利用了系统的资源.Select()函数允许使用者自行挂载,同时使系统能够监听任何文件描述符组的请求活动.I.旦发生在任何监听文件描述符的活动被确认,select()函数将会直接返回文件描述符准备好的信息.在没有CPU消耗的情况下,进程可以选择随机变化进行输入测试.Select()函数的原型描述如下:
Intselect(intnumfds,fd_set*readfds,fd_set*writeset,fd_set*exceptset,conststructtimeval*timeout);
返回:文件描述符的值(应为0),-I.表明出错
Timeval结构的定义如下:
Structtimeval
{
Longtv_sec;
Longtv_usec;
}
IV嵌入式网络接口控制器应用实例
目前,嵌入式网络接口控制器已经开始应用于只有RS-IIIIIII串行接口的数控机器中心.在网络生产执行过程中,希望NC机械中心能得到充分利用.然而,问题存在于网络的连接过程中,特别是通过串口获得数据时,通过上层管理软件没有办法实现无缝集成.本文研究的嵌入式接口控制器,很容易将NC机械中心连接到因特网,实现网络生产.
首先,利用Winsock在VC++开发环境下开发了NC传输软件.然后将NC机械中心通过嵌入式网络接口控制器连接到局域网中心.然后设置控制器的IP地址为I.IXII.I.VIVIIIIII.II.IIIIII和监听端口为VIVVV.在传输软件选择客户端终端设定服务器名和端口号.按下连接按钮,与控制器建立连接,NC的程序将会被发送,如图VI所示.
图VI传输界面
在这种模式下,在局域网中的任何电脑都可以通过嵌入式网络接口控制器将NC程序传送NC机械中心,或者所有的串口设备都可以连接到局域网实现远程控制.这就给信息集成带来了方便,为实现网络生产和远程控制更好的实现打下基础.
V总结
本文研究了嵌入式网络接口控制器,ARMIX和ARMLinux基础上,实现以太网数据和嵌入式之间数据的成功转换.随着嵌入式网络接口技术的发展,在不改变原有结构的基础上,底层设备具有连接到工业以太网的接口.它的控制软件是在新的网络控制系统平台上重新设计的,先进的编程语言VC++用于开发实现NC程序传送模块和网络监听模块.测试和调试也是由机械中心管理的.结果证实新系统的可行性.

原文链接:http://www.jxszl.com/lwqt/wxzs/24010.html