基于ARM9和ARM Linux的嵌入式网络接口控制器设计
- 格式:doc
- 大小:67.50 KB
- 文档页数:7
基于ARM9的嵌入式Linux应用开发平台的分析与实现陈斌【摘要】随着经济的迅速发展以及科学技术水平的不断提高,IT行业取得了较大程度上的进步,为我国国民经济的发展以及人民生活水平的提高做出重要贡献。
尤其是近几年来,信息技术、网络技术飞速发展,IT领域不断发展与升级,在这种环境之下,嵌入式系统成为IT领域的重要焦点之一。
目前状况下,行业内存在着诸多的嵌入式系统,而在这些嵌入式系统当中,Linux最为受到青睐,这主要是因为Linux具有自身的强大优势,主要表现在三个方面,分别是元代码开放、功能强大一级级易于移植等。
就目前市场状况而言,ARM9系列的嵌入式微处理器已经成为嵌入式系统首选的处理器产品,本文就在此基础之上针对基于ARM9的嵌入式Linux应用开发平台的分析与实现进行有益探讨。
【期刊名称】《佳木斯职业学院学报》【年(卷),期】2014(000)005【总页数】2页(P1-2)【关键词】嵌入式系统 ARM9 Linux应用开发平台文件系统【作者】陈斌【作者单位】铁岭师范高等专科学校【正文语种】中文【中图分类】TP316.811.嵌入式系统模型图1显示的主要是嵌入式系统的模型结构:如果从物理层面的角度对其进行一定程度上的分析,可以将嵌入式计算系统理解成一个专用的电子系统,一般情况下,这一专用的电子系统都处于一个非电子系统环境之下,且这一系统环境具有一定的复杂性。
至于这两种系统的关系,可以对其进行一定程度的抽象化处理,即具有复杂性的非电子系统是嵌入式系统的外部环境,我们将其称为被嵌入的系统。
就一般状况而言,整个系统之中所包含的嵌入式系统为多个,同时,嵌入式系统能够与外界进行直接的通信。
对于嵌入式系统而言,它能够提供一个专门的服务给被嵌入系统,这一服务主要表现为两个方面:一方面,这一服务可以表现为对外界输入的响应;另一方面,这一服务也可以是对被嵌入系统或者与之相邻的嵌入式系统数据的响应。
就如现代机电控制系统,对于这一系统而言,它是一种分布式的系统,在这种系统环境之下,各个处理单元都是通过网络进行一定程度上的连接的。
基于ARM9和ARM Linux的嵌入式网络接口控制器设计摘要:随着工业以太网技术的发展,以太网已经渗透到控制系统网络的控制层和设备层。
然而,大量的工业现场设备没有安装网络接口,只是通过串行端口进行通信,因此不能直接接入以太网。
随着技术的发展,32位微处理器已经成为嵌入式应用领域的主流。
本文选择32位微处理器S3C2410为嵌入式接口控制器,作为实现以太网数据和串行口数据之间相互转换的主要芯片。
此控制器不需要改变原有的设备,仅增加网络接口就可以使传统的串行接口设备通过标准的TCP/IP协议连接到因特网。
关键词:ARM9;ARMLinux;串口;以太网;嵌入式1 引言目前,随着局域网技术的广泛应用,以太网已经在工业自动化和进程控制领域越来越多的应用。
传统的控制系统主要采用的是以太网的信息层,或者在控制层和应用层采用不同位现场总线和专业网络。
目前,随着工业以太网技术的发展,以太网已经渗透到控制层和设备层,基于以太网的控制网络最典型的应用形式就是Ethernet+TCP/IP,并且它的最底层就是以太网。
网络层和传输层采用的是国际公认的标准TCP/IP协议。
然而,对于数量庞大的工业现场设备,例如NC机械,机器人,PLC,仪器和传感器等,由于他们没有网络接口,最常用的通信方式是RS232/485/422串行端口,所以不能直接连接到以太网。
因此,如何以最低的成本改变传统串行端口设备,而使其通过TCP/IP协议连接到因特网是很多企业面临的一个问题。
随着半导体工业和IC技术的发展,以微处理器或微控制器为核心的嵌入式系统正在迅速的发展,并且在无线通信,网络设备和工业控制等领域已经得到了广泛的应用。
本文设计的基于ARM9和ARMLinux操作系统的嵌入式网络接口控制器,在传统的串口设备上配备网络接口,实现了串行端口数据和以太网数据相互转换。
2 嵌入式网络接口控制器工作原理嵌入式网络接口控制器选择DM9000E芯片作为以太网控制器,在以太网的顶层完成数据的交换。
32位微处理器S3C2410和嵌入式Linux操作系统用于实现协议和数据处理,并将处理的数据传递到底层设备终端。
从设备终端接收的数据通过数据处理和协议实现,然后通过DM9000E传送到因特网。
功能实现框图如图1所示。
2.1 嵌入式网络接口控制器硬件平台如图2为嵌入式网络接口控制器硬件平台的全部连接框图。
系统选择ARM9内核ARM9TDMI 的32位微处理器S3C2410作为主控制芯片。
S3C2410处理器是由三星公司生产的基于ARM 公司ARM920T 的处理内核,最高运行速率达203MHz 。
系统的FLASH 闪存选择由英特尔公司生产的28F128芯片,SDRAM 选择由两片HY57V561620芯片组成的32位存储系统。
DM9000以太网控制器芯片高度集成、单片、高速、低成本,并且具有通用处理器接口。
它是10/100M 自适应网卡收发器,具有4K 双字节静态存取存储器。
它具有低功耗、高性能的特征,支持3.3V 到5V 供电。
DM9000提供一个可以连接到HPNA 设备和其他支持MII 接口的收发器的MII 接口。
通过不同的处理器同样支持8位、16位、32位接口接入内部存储器。
支持IEEE802.3u 规范和IEEE802.3x 全双工数据流控制。
来自HanRun Electronic 有限公司的网络隔离变压器HR601627用于DM9000和RJ45接口之间的连接。
HR601627具有信号传送、阻抗匹配、波形修复、杂波抑制、高压隔离和系统安全保护的功能。
TCP/IP RS-232 图 1 功能实现框图图2 嵌入式网络接口控制器的硬件结构框图2.2嵌入式操作系统的选择目前,在市场上有许多受欢迎的嵌入式操作系统产品,这里根据实际情况我们选择嵌入式Linux操作系统。
原因如下:1.Linux可以应用于多种类型的硬件平台。
由于其具有吸引R&D项目的开发时间和成本,已经成功移植于多种类型的硬件平台。
原型可以在标准硬件平台上进行开发,然后移植到专用硬件,可以加速软件和硬件的开发时间。
2.源码开源,是最吸引人的一点。
无疑,可以节省很多的开发费用。
3.Linux 具有强大的网络支持。
微内核提供直接的网络支持,并且Linux不需要像其它操作系统一样挂载TCP/IP协议包,因为它是在网络基础上发展起来的。
在系统设计的过程中,网卡驱动和TCP/IP协议是实现的关键。
通过选择,协议栈已经被嵌入,TCP/IP协议从而得以实现。
嵌入式Linux操作系统支持多种类型的网卡,例如10M、100M、1000M的以太网卡,令牌环和无线局域网等。
对于DM9000和它的NE2000兼容的以太网控制器,嵌入式Linux系统提供了很好的支持,在移植的过程中,只需要修改源代码和安装相应的模块来实现对网络的支持。
3 实现以太网数据和串行端口数据的转换本文开发的控制器接口主要实现两个功能,将串行端口接收数据通过网卡发送给以太网,将通过网卡接收的数据发送给其它串行端口终端。
工作模式可以选择为服务器或客户端,数据传送协议可以选择TCP模式或UDP模式,TCP和UDP 是以太网的两种传输协议。
TCP是基于连接的协议,在发送和接收数据之前必须与另一端建立可靠的连接。
而UDP是一种面向非连接的数据直接传输协议,因此它不需要另一端的回答或确认。
3.1应用程序的网络编程和开发环境嵌入式系统的开发和运行需要在PC和ARM两个不同的平台上完成,因此交叉编译和链接是必要的。
用串行端口和以太网连接宿主机和目标板,在RedHat9 Linux操作系统上进行程序的开发。
调试通过之后,自己添加程序的定制重新编译嵌入式Linux内核,然后将编译好的二进制文件烧写到开发板的ROM中,以便于在启动时自动的运行。
TCP/IP处理模块的实现是使用套接字编程,最初套接字是在UNIX系统为了TCP/IP网络通信上发展起来的接口程序。
后来,它被成功的移植到DOS和Windows操作系统上,并且在因特网的网络开发中成为了最通用的API函数。
套接字应用于网络开发主要有两种类型,流式套接字,数据报套接字和原始套接字,流式套接字和TCP协议相一致,数据报套接字和UDP协议相符合,原始套接字主要用于协议的开发和一些底层的操作。
3.2软件设计系统采用TCP服务器的工作模式,等待客户端请求连接实现数据传送的功能。
图3 显示了程序流程图。
首先打开串口,在Linux操作系统打开串口是通过标准文件打开函数实现的,程序代码如下:int fd;fd=open(“/dev/ttyso”,O_RDWR);if(fd=1) {perror(“error alert!”);}然后设置波特率,串行端口的校验位和停止位。
为了用网卡来发送和接收数据,必须首先建立套接字,程序代码如下:Int sock_fd;sock_fd=socket(AF_INET,SOCK_STREAM,0)If(sock_fd==-1){perror(“socket ”);exit(1);}然后设置相关属性,等待客户端的连接请求,一旦连接建立,就能够实现数据的接收和发送。
在整个程序中数据处理是关键性的。
连接实现了网络数据和串口数据的相互交换。
根据实际需要,网络数据可以转换成并行的或者其它接口类型的数据。
这里,网络数据和串口数据的交互式处理被分成两个部分,一部分是网络数据转化成串口数据,另一个方面是串口数据发送数据到网络,流程图见图4、图5所示。
嵌入式网络接口控制器通过串口接收来自底层设备的数据,并且将数据储存在缓冲区中。
然后控制器完成从上到下一层一层打包,将数据打包成TCP/IP 数据包,并且通过以太网控制器DM9000将数据发送到以太网。
调用数据处理程序Select ()函数。
函数不但解决阻塞情况,还充分利用了系统的资源。
Select ()函数允许使用者自行挂载,同时使系统能够监听任何文件描述符组的请求活动。
一旦发生在任何监听文件描述符的活动被确认,select ()函数将会直接返回文件描述符准图 4以太网数据通过串行口传输图 5 串行口数据通过网卡发送备好的信息。
在没有CPU消耗的情况下,进程可以选择随机变化进行输入测试。
Select()函数的原型描述如下:Int select(int numfds,fd_set *readfds,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);返回:文件描述符的值(应为0),-1表明出错Timeval结构的定义如下:Struct timeval{Long tv_sec;Long tv_usec;}4 嵌入式网络接口控制器应用实例目前,嵌入式网络接口控制器已经开始应用于只有RS-232串行接口的数控机器中心。
在网络生产执行过程中,希望NC机械中心能得到充分利用。
然而,问题存在于网络的连接过程中,特别是通过串口获得数据时,通过上层管理软件没有办法实现无缝集成。
本文研究的嵌入式接口控制器,很容易将NC机械中心连接到因特网,实现网络生产。
首先,利用Winsock在VC++开发环境下开发了NC传输软件。
然后将NC机械中心通过嵌入式网络接口控制器连接到局域网中心。
然后设置控制器的IP地址为192.1683.2.222和监听端口为6555。
在传输软件选择客户端终端设定服务器名和端口号。
按下连接按钮,与控制器建立连接,NC的程序将会被发送,如图6所示。
在这种模式下,在局域网中的任何电脑都可以通过嵌入式网络接口控制器将NC程序传送NC机械中心,或者所有的串口设备都可以连接到局域网实现远程控制。
这就给信息集成带来了方便,为实现网络生产和远程控制更好的实现打下基础。
5 总结本文研究了嵌入式网络接口控制器,基于ARM9和ARMLinux基础上,实现以太网数据和嵌入式之间数据的成功转换。
随着嵌入式网络接口技术的发展,在不改变原有结构的基础上,底层设备具有连接到工业以太网的接口。
它的控制软件是在新的网络控制系统平台上重新设计的,先进的编程语言VC++用于开发实现NC程序传送模块和网络监听模块。
测试和调试也是由机械中心管理的。
结果证实新系统的可行性。