您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

基于ARM+uCLinux的网络控制体系计划与实现

发布日期:2011-05-17

  随着网络和通讯技能的生长,嵌入式体系现已进入高速生长阶段。并在社会各个范畴得到了遍及的应用。本文先容了一种采取ARM+uCLinux作为开辟平台。实现基于TCP/IP的长途体系监控.从而代替传统单片机来实现数据征求、预处理惩罚和通讯成果;并寄托互联网将数据向上位机发送,同时支持远端客户对配置举行长途控制,从而实现长途监控成果的详细要领。
  
  1 体系平台的构建
  
  本体系由嵌入式平台办事器、前端控制器、前端传感器、客户端和配置PC构成。开辟时可通过配置PC来下载体系和应用软件。嵌入式体系平台可以或许网络现场数据。并发送到远端客户机,之后由远端客户机对数据举行处理惩罚,接着发送控制信号给体系办事器,以便通过前端控制器对配置举行长途控制。其体系布局如图1所示。
 

  1.1 硬件开辟平台
  
  该体系的硬件开辟平台可选择SmartARM2200。该嵌入式配置的内核是ARM7TDMI的LPC2210.开辟板自身具有A/D转换器和多个GPIO(通用I/O)口,可对产业现场的种种配置、仪表举行数据征求和监控。利用时,只要将相应的传感器信号接入控制器的端口即可。其开辟板体系的硬件配置如图2所示。

  1.2 uCLinux操纵体系
  
  操纵体系是嵌入式配置软件的内核部分。本体系采取uCLinux体系平台来完成对硬件体系的办理和维护。uCLinux是遍及应用于微控制范畴的一种嵌入式Linux操纵体系。它通过对标准Linux内核的淘汰,可去除假造内存办理部分代码,以对内存分派举行优化。从而到达进步体系运行服从的目标。uCLinux则可颠末各方面的小型化改革形成一个高度优化、代码紧凑的嵌入式Linux,它保存了Linux的大多数好处,包括稳固、精良的移植性、良好的网络成果、完备的文件体系支持、丰富的API等。
  
  1.3 uCLinuxARM平台上的移植
  
  若将uCLinux移植到SmartARM2200上,必要举行以下四个步调:
  (1)下载源码,创建交错编译环境
  
  uCLinux是自由软件(完全开放代码)。用户可以直接从http://www.uclinux.org/pub/uclinux处下载源代码并安置到Red Hat9.0体系下,以便正常在Red Hat9.0创建起交错编译环境。
  
  (2)配置和编译内核
  
  进入到安置好的uCLinux目次,依次实行下面的下令:
  
  make menuconfig;进入配置菜单后,选择Vendor/Product(厂商/产品)下的PHILIPS/lpc2200;用Kernel Version(内核版本)选择Linux-2.4.x,Libc Version(函数库版本)选择uClibc:别的内核和应用步伐选项可根据环境选择。
  make dep
  make clean
  make lib_only
  make user_only
  make romfs
  make image
  make
  
  编译结束后会在uCLinux安置目次下天生romfs.img文件,利用它可以制作RAM Disk,然后在linux-2.4.X目次下天生elf格局的Linux内核文件,并以下列方法将其转换成bin格局:
#arm-elf-objcopy-O binary linux linux.bin从而天生下载用的uCLinux内核镜像文件linux.bin。
  
  (3)制作Ram Disk挂栽根文件体系
  
  起首创建一个512 kB的假造磁盘,并将假造磁盘文件格局转化成ext2格局:
dd if/dev/zero of=initrd.img bs=1024 count=512
mkfs.ext2-c init.img
  
  然后将init.img和romfs.img加载到主机文件体系上,并在RAM中创建必要的目次:/bin,/dev,/etc,/var,进而拷贝ROM中的文件到ram目次中。
  
  下来在RAM盘dev目次下创配置置装备摆设节点:
 
  #mknod ram/dev/ttyS0 c 4 64
  #mknod ram/dev/console c 5 1
  
  后卸载init.img和romfs.img,并应确保init.img修改已生存,至此,RAM DISK便创建完成。
  
  (4)下载内核和文件体系
  
  精确设置主板启动选择跳线。主板加电后,在超等终端上便可以看到BootLoader引导信息,可选择默认的FTP连接,并利用BootLoader默认的IP举行下载,然后启动gftp,输入主板默认的IP和端标语。如许,linux主机就可以和主机连接,末了选择必要下载的Linux内核文件和RAM盘及相干的配置文件即可。
  
  2 监控体系成果的实现
  
  监控体系重要由3个部分构成:数据征求部分,配置控制部分,数据传输部分。数据征求部分可对传感器信号举行A/D转换,并对征求到的数据举行大略的处理惩罚,同时提供调解运行参数的接口。数据传输部分可将征求的数据发送到远真个主机,并吸取远端主机的控制信息。远端主机则对传输过来的长途数据举行处理惩罚、存储和表现,并可以修改数据征求部分的参数以控制数据征求,同时依据征求到的数据对配置发出操纵指令,或对远真个配置举行控制,从而实现长途监控成果。
  
  2.1 数据征求
  
  利用A/D转换配置前,起重要创配置置装备摆设节点,并加载ADC驱动,然后通过open()和close()将其打开和封闭.重要的数据征求步伐如下:
  ……
  ioctl(fd,ADC_SET_CLKDIV,(Fpclk+fadc1)/fadc-1);//设置A/D转换速率;
  ioctl(fd,ADC_SET_BITS,10);//设置A/D转换精度;
  while(1) {
  ad_data=0;
  read(fd,&ad_data,sizeof(ad_data));//读取A/D转换的值;
  ……
  
  2.2 GPIO配置控制
  
  同A/D转换配置雷同,利用GPIO也需先创配置置装备摆设节点并加载驱动。对GPIO操纵前,应通过open()打开,利用后应通过close()封闭。
  
  起首。选定开辟板上没有利用过的GPIO端口,设置其输入/输入状态,然后根据客户端返回的信息对端口举行操纵,输出0/1的电平,以使其外部连接的继电器举措。从而控制配置的运转。步伐重要通过函数ioctl来实现。ioctl是配置驱动步伐中对配置的I/O通道举行办理的函数,通过它可对配置的一些特性举行控制.其函数本相为:
int ioctl(int fd,ind cmd,…);
  
  此中,fd是用步伐打开配置时,利用open函数返回的文件标示符;cmd是用户步伐对配置的控制下令;至于背面的省略号,则是一些补充参数(一样平常最多一个,有或没有是和cmd的意义相干的)。在这里,可通过如下一组函数来实现:
 
  ioctl(fd1,GPIO_SET_PIN_IN,devicel);
  //设置管角为输出状态;
  ioctl( fd2, GPIO_SET_PIN_OUT, devicel_state);
  //设置管角为输入状态;
  ioctl(fd2,GPIO_READ_PIN,&devicel_state);
  //读取配置状态管角;
  ioctl(fd1,GPIO_CLR_PIN,device);
  //打扫配置管角控制信号;
  
  2.3 网络通讯步伐
  
  网络通讯步伐可利用TCP/IP协议下标准的socket套接字编写。套接字(socket)是网络通讯的根本操纵单位。它提供了差别主机间进程双向通讯的端点。这些进程在通讯前应各自创建一个socket,并通过对socket的读/写操纵实现网络通讯成果。常用的套接字有两种:流式套接字(Stream Socket)和数据报套接字(Datagram Socket)。此中,流式套接字是可靠的面向连接的通讯数据流,是无错误的传输;而数据报套接字则利用UDP来发送数据包,数据包的次序是没有保障的。本体系采取流式套接字举行步伐计划。
  
  流式套接字的办事进程和客户进程创建连接及通讯的步伐流程如图3所示。现详细阐明如下:

 
  (1)办事进程起首调用socket()创建一个流式套接字,并调用bind()将办事器地点系缚在该套接字上,接着调用listen()监听连接恳求,随后调用accept()做好与客户进程创建连接的准备。无连接恳求时,办事进程被壅闭;
  
  (2)客户进程先调用socket()创建流式套接字,然后调用connect()向办事进程发出连接恳求;
  
  (3)当连接恳求到来后,办事进程被唤醒,并天生一个新的流式套接字。同时用新套接字同客户进程的套接字创建连接,而办事进程最早天生的套接字则连续用于监听网络上的办事恳求;
  
  (4)办事进程和客户进程通过调用send()和recv()来互换数据,办事器可向客户端发送所网络的数据。客户端则向办事器反馈控制信息和参数调解信息;
  
  (5)办事进程或客户进程可通过调用close()来撤除套接字并停止连接。
  
  办事器真个步伐通过交错编译环境编译后。可通过NFS(网络文件体系)下载到开辟板中,然背工动参加到rc引导文件中。即可实现开机主动运行。
  
   结束语
  
  基于ARM和CLinux嵌入式体系代表了如今嵌入式体系的生长方向。嵌入式体系与网络技能和控制技能相连合.是嵌入式体系生长的肯定趋势。本文讨论了基于ARM+uCLinux平台的网络控制体系计划与实现要领。并对该平台下应用TCP/IP协议举行网络通讯举行了探究。该要领对付主动化楼宇、产业控制、智能家居等方面都有肯定的鉴戒意义。