基于arm的uCLinux网络控制系统的设计与实现1.docx
《基于arm的uCLinux网络控制系统的设计与实现1.docx》由会员分享,可在线阅读,更多相关《基于arm的uCLinux网络控制系统的设计与实现1.docx(8页珍藏版)》请在冰豆网上搜索。
![基于arm的uCLinux网络控制系统的设计与实现1.docx](https://file1.bdocx.com/fileroot1/2023-1/8/c89c57d5-3aa8-4caf-85aa-00f75b3b5d53/c89c57d5-3aa8-4caf-85aa-00f75b3b5d531.gif)
基于arm的uCLinux网络控制系统的设计与实现1
收稿日期:
2004206209;修返日期:
2004208215基金项目:
国家“863”计划资助项目(2003AA209040
基于ARM的uCLinux网络控制系统的设计与实现
3
杨皓
1,2
王 秀1,夏克俭2,叶 涛
1
(1.国家农业信息化工程技术研究中心,北京100089;2.北京科技大学,北京100083
摘 要:
介绍了ARM7TDMI为内核的微处理器S3C44B0X在嵌入式网络控制系统中的应用,并对基于ARM和
uCLinux的嵌入式系统开发进行了探讨。
关键词:
ARM;网络控制;嵌入式Linux;串口通信
中图法分类号:
TP393109 文献标识码:
A 文章编号:
100123695(20050620189203
DesignandImplementationofNetworkControl
EmbeddedSystemBasedonARM+uCLinux
YANGHao2shen
1,2
WANGXiu1,XIAKe2jian2,YETao
1
(1.NationalEngineeringResearchCenterforInformationTechnologyinAgricluture,Beijing100089,China;2.BeijingUniversityofScience&
Technology,Beijing100083,China
Abstract:
ThispaperdescribestheuseofARM7TDMIMCUS3C44B0Xinthedesignofnetworkcontrolsystem.Theembed2
dedsystemdesignpatternthatbaseonARMprocessoranduCLinuxisalsodiscussed.Keywords:
ARM;NetworkControl;EmbeddedLinux;SerialCommunication
1 引言
随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落,嵌入式系统也跨入了新的阶段,成为当前产业的焦点之一。
随之出现的IT信息家电如可视电话、移动电话、机顶盒和数码相机等嵌入式设备的市场需求也越来越大,8/16位单片机的速度和内存较难满足嵌入式设备的上网等需求。
随着集成电路的发展,处理器的价格不断下降,用户已可以大量使用,32位处理器更是受到青睐。
在工业控制、民用设备如防盗系统等领域,多数设备的对外通信接口仍然是低速串口。
串口由于其易用性和可靠性而受到用户的欢迎,但它有一个突出的弱点,就是传输距离有限,所以在工业远程控制中常采用TCP/IP方式实现。
本文就是针对上述问题进行嵌入式系统开发并提出了在农业控制上的典型应用。
智能温室已在国外取得了广泛成功,在我国也具有广泛的应用前景,本系统就是针对智能温室提出的技术方案。
它采用嵌入式系统(ARM+uCLinux作主控制器,通过TCP/IP网络与上层管理系统通信,与下层传感器和执行结构的通信通过
RS2232,主要开发工作集中在嵌入式系统软硬件。
其特点是抗
干扰能力强,适于恶劣变化的环境;而采用下层控制器(W78E58B作为下位机的智能温室控制系统则运行可靠、操作简单、价格远低于引进产品,能满足系统要求;多个下层控制器与主控制器形成分布式集散控制网络,其特点是结构简单、性能稳定、生产成本低、系统配置灵活。
2 系统开发环境介绍
2.1 ARM(AdvancedRISCMachines简介
ARM公司是专门从事基于RISC技术的芯片设计开发的
公司,是业界领先的ARM16/32位嵌入式RISC处理器技术提供商。
它设计了大量高性能、廉价、耗能低的处理器RISC相关技术及软件,它可为一个完整系统的开发提供全面的技术支持,具有性能高、成本低和能耗省的特点。
ARM的微处理器核心适用于多种领域,正迅速地成为便携式通信设备、手持计算、多媒体数字消费者和嵌入式解决方案。
ARM将其技术授权给世界上许多著名的半导体和软件厂
商,每个厂商得到的都是一套独一无二的OEM相关技术及服务。
利用这种合伙关系,ARM很快成为许多全球性标准的缔造者。
目前总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括IntelIBM半导体、菲利浦和国民半导体这样的大公司。
2.2 uCLinux操作系统
Linux是一种很受欢迎的类UNIX操作系统,它免费并开
放源代码,在个人计算机、服务器领域应用广泛。
更重要的是,
Linux采用模块化设计,实际应用中可以实现定制,因此Linux
也适用于嵌入式领域。
在嵌入式系统设计中,为了降低硬件成本及运行功耗,有一类CPU在设计中取消了MMU(内存管理单元功能模块。
最初,运行于这类CPU之上的都是一些很简单的单任务操作系统,或者更简单的控制程序,甚至根本就没有操作系统而直接运行应用程序。
在这种情况下系统无法运行复杂的应用程序或者效率很低,而且所有的应用程序需要重写,并要求程序
・
981・第6期 杨皓等:
基于ARM的uCLinux网络控制系统的设计与实现
员十分了解硬件特性。
这些都阻碍了应用于这类CPU之上的嵌入式产品开发的速度。
uCLinux是专门为无MMU的微处理器使用的嵌入式Linux操作系统,它是由Linux2.0内核发展来的。
由于大多数内核的二进制代码和源代码都被重写,进一步缩减了uCLinux内核的代码。
uCLinux内核要比Linux2.0原内核小得多(内核小于512KB,加上工具小于900KB,支持多任务,具备TCP/IP协议栈并支持多种网络协议,并保留了Linux操作系统的主要优点:
稳定性、优异的网络能力以及优秀的文件系统支持。
实际上,uCLinux已经成功地应用于路由器、网络摄像机、机顶盒、PDA等诸多领域中。
另外,uCLinux可移植性很强,用户通过重新配置、编译内核,可以方便地将其移植到ARM,DragonBall,ColdFire,PowerPC等多种处理器平台。
当前uCLinux主要提供2.0和2.4两个内核版本。
3 系统硬件设计
硬件设计采用SamsungS3C44B0X芯片作为CPU,再加上8MBSDRAM和2MBFlash(39VF160,Samsung以及外围接口芯片。
其中采用ARM核脚封装208QFP,最高时钟为66MHz。
S3C44B0X是三星公司推出的一款基于ARM7TDMI核的16/32位RISC的嵌入式微处理器,是为手持设备或者其他通用设备而开发的低成本、高性能的微处理器。
它的低功耗及简单而优雅的设计,极其适合于对成本和功耗要求比较高的应用场合。
本项目硬件可提供的接口包括:
●10Mbps以太网接口,可连接到网络;扩展芯片为RTL8039。
●2个RS2232串行口,与前端控制器及超级终端相连。
●IDE接口,可挂接硬盘的存储设备。
●USB1.1接口;扩展芯片为PHILIPSPDIUSBD12。
●IIC总线接口。
●LCD接口。
支持640×480以下单色或320×240以下STN/DSTN256色。
4 系统功能实现
4.1 系统构成
本系统由服务器、前端控制器和客户端组成,可对被控元件进行实时控制。
系统结构如图1所示。
服务器硬件平台为S3C44B0X,软件平台为uCLinux。
在
该平台上运行控制服务程序,与客户端采用TCP/IP协议进行连接,自定义端口。
控制服务程序与前端控制器采用RS2232连接。
客户端硬件平台为普通PC机,软件平台为RedHat810。
运行控制请求程序,可通过网络向控制服务程序提出请求,控制前端控制器。
前端控制器采用华邦W78E58B单片机,通过监听服务器的控制信息来驱动执行机构,如控制电磁阀等并返回检测信息。
服务器与客户机和前端控制器的连接过程为:
在服务器端,如果执行Socket,Bind和Listen系统调用,则能够进行连接;在客户机端,如果执行Socket,Connect系统调用,则可以发送用于建立连接的一个SYN段。
在建立连接之后,如果服务器端执行Accept系统调用,那么在建立连接的主机之间可以进行通信。
在前端控制器上的检测元件将检测数据通过串口传到主机,主机经分析后将相应的控制策略传下。
客户端操作过程如下:
客户机端的处理是一种根据Select的事件驱动(EventDriven型处理,如果没有键入或没有接收到报文,则不作任何处理;如果有键盘输入,则将所输入的报文原封不动地发送给服务器。
若服务器接收到该报文,则对其进行解释,并执行相应的函数或命令,而后服务程序将命令的执行结果返送到客户机。
4.2 系统功能实现
41211 TCP服务程序的编制
TCP服务程序可在RedHat8.0宿主机上编写,调试通过后进行交叉编译。
连接程序如下:
…
ints0;
…
if((s0=socket(AF_INET,SOCK_STREAM,0<0{
//生成TCP套接字
perror("sockft";
exit(EXIT_FAILURE;
}
memset((char3&server,0,sizeof(server;
server.sin_family=AF_INET;
server.sin_addr.s_addr=htonl(INADDR_ANY;
server.sin_port=htons(port;
if(bind(s0,(structsockaddr3&server,sizeof(server<0{perror("bind";
exit(EXIT_FAILURE;
}
listen(s0,5;
while(1{
len=sizeof(client;
if((s=accept(s0,(structsockaddr3&client,&len<0{
//接受连接
perror("accept";
exit(EXIT_FAILURE;
}
printf("connectedfrom′%s′\n",inet_ntoa(client.sin_addr;…
if(strcmp(cmd1,"OPEN_A_PORT"!
=0//命令查询
open_a_port(;
…
(1交叉编译
由于服务程序是在不同CPU上编译的,所以在移植前应对TCP服务程序针对ARM芯片进行交叉编译,生成可执行程序。
交叉编译器为arm2elf2gcc。
首先要在Linux机器上建立ARM的交叉编译环境,将从http:
//www.uCLinux.org/上下载的arm2elf2tools安装在Linux宿主机上的/usr/local/bin目录下。
现在的应用程序和将来的uCLinux都要在这个环境下编译。
(2移植及操作系统的编译
将TCP服务程序添加到操作系统,编写Makefile文件,修
・
9
1
・计算机应用研究2005年
改config.in等配置程序。
若TCP服务程序名为tcps.c,Makefile文件如下:
EXEC=tcps
OBJS=tcps.o
All:
$(EXEC
$(EXEC:
$(OBJS
$(CC$(LDFLAGS2O$@$(OBJS$(LDLIBS
romfs:
$(ROMFSINST/bin/$(EXEC
clean:
rm2f$(EXEC3.elf3.gdb3.o
随后对uCLinux进行编译,可应用Makemenuconfig或分步进行。
若需要网络应用,可将相应的网络服务如FTP等编译到操作系统中。
编译完成后,个人开发的应用程序和编译添加的应用可在/bin目录中找到。
(3TCP服务程序系统启动
在调试过程中,TCP服务程序可以有两种启动方式,这两种启动方式都需要Bootloader引导(也可直接将操作系统烧入。
一种是将交叉编译完成后的程序通过FTP等网络服务下载到ARM板上;另一种是将TCP服务程序直接编译到操作系统中。
系统开发成功后,可应用开发工具将程序直接烧入芯片。
从服务器上能够发送出使用的提示,并能显示客户机上的结果和请求,进行浏览。
41212 客户端程序
客户端程序可在RedHat8.0下进行开发运行,GCC编译。
连接请求过程如下:
...
if((s=socket(AP_INET,SOCK_STREAM,0<0{//生成套接字perror("socket";
exit(EXIT_FAILURE;
}
memset((char3&server,0,sizeof(server;
server.sin_family=AF_INET;
server.sin_addr.s_addr=dst_ip;
server.sin_port=htons(port;
if(connect(s,(structsocket3&server,sizeof(server<0{//连接主机
perror("connect";
exit(EXIT_FAILURE;
}
...
41213 前端固件程序
前端固件源程序应用C51编写,硬件采用W78E58B。
监听ARM板串口控制命令,执行相关的动作,如电磁阀的开闭、发送AT指令等。
为实现控制命令在串口传输的需要,编制了一个串口通信程序。
协议由引导帧、长度帧、数据帧和确认帧等组成。
其中引导帧用于同步每一包数据的引导头,长度帧是这一包的总长度,数据帧是其中的控制信息,确认帧是接收方对发送方的回应。
在发送方有数据发送时先检测线路是否空闲,如线路空闲则向接收方发送“请求发送数据”命令帧;接收机收到后,如准备就绪则回送“可以发送”的确认命令,发送方得到确认后开始发送数据。
接收方对收到的每一帧数据进行校验,校验正确发送“校验正确”命令,发送方发送下一帧;否则发送“重发”命令,发送方重发此帧。
5 结束语
该系统是一种低成本的温室控制系统,应用TCP/IP协议进行大棚的温度远程控制,并且嵌入式系统是控制系统的发展方向之一,具有一定的推广价值。
本文讨论了一个基于ARM微处理器S3C44B0X及uCLinux的网络控制系统的设计与实现,并对基于该芯片的开发模式进行了探讨。
uCLinux+ARM平台可移植性好,性价比高,在工业应用领域正得到广泛应用;另外,以开放软件为背景的模式已经成为热点。
因此,研究uCLinux在嵌入式系统领域有着很好的应用前景。
参考文献:
[1]李驹光.ARM应用系统开发详解[M].北京:
清华大学出版社,2003.
[2][日]村山公保.TCP/IP网络实验程序篇[M].北京:
科学出版社,2003.
[3]王学龙.嵌入式Linux系统设计与应用[M].北京:
清华大学出版社,2001.
[4]赵亮.单片机C语言编程与实例[M].北京:
人民邮电出版社,2003.
[5]刘安昱,温晓辉,刘志红.基于S3C44B0X的uCLinux移植[J]1单片机与嵌入式系统应用,2003,(12:
76279.
[6]http:
//www.uCLinux.org/pub/uCLinux/uCLinux2elf2tools/arm2elf2gcc.tar.gz,2003212[EB/OL]1
作者简介:
杨皓(19742,男,河北唐山人,硕士研究生,主要研究方向为嵌入式系统、网络应用;王秀(19652,男,河北人,副研究员,主要研究方向为温度控制、传感器耦合;夏克俭(19552,男,湖北人,教授,主要研究方向为计算机智能管理、软件工程、信息获取;叶涛(19762,男,湖北人,博士,主要研究方向为嵌入式系统、机器人。
(上接第188页
[3]Peng2JunWan,KhaledMAlzoubi,OphirFireder1DistributedCon2structionofConnectedDominatingSetinWirelessAdhocNetworks[J]1JournalofCommunicationsandNetworks,2002,l4(1:
14121491
[4]钟晓峰,王有政,梅顺良,等1基于时分系统的无线自组织网络同步算法[J]1清华大学学报(自然科学版,2005,45(1:
1241[5]KhaledAlzoubi,Xiang2YangLi,YuWang,etal.GeometricSpan2nersforWirelessAdhocNetworks[J].IEEETransactionsonParal2lelandDistributedSystem,2003,14(5:
40824211
[6]ZhongXiaofeng,WangYouzheng,MeiShunliang,etal.DistributedSpanningBackboneofAdhocNetworks[C].IEICELettersonCom2
munications1
[7]HLim,CKim.FloodinginWirelessAdhocNetworks[J]1ComputerComm.,2001,24(324:
35323631
作者简介:
钟晓峰(19772,男,博士研究生,主要从事无线Adhoc网络设计及无线网络规划等研究;王有政(19692,男,主要从事无线网络设计、MI2MO2OFDM技术等研究;梅顺良(19462,男,教授,主要从事无线信道编码研究;王京(19582,男,信息技术研究院副院长,教授,主要研究方向为第三代和第四代移动通信技术、无线ATM技术、虚拟无线移动通信系统与网络、移动通信系统信道编译码技术、扩频码分多址技术中的多用户检测、时空分集、数字无线接入系统(DECT,Bluetooth等、微小卫星的星上信号处理技术。
・191・
第6期 杨皓等:
基于ARM的uCLinux网络控制系统的设计与实现