基于ARM+uCLinux的网络控制系统设计与实现

发布者:码上奇迹最新更新时间:2011-07-14 关键字:ARM  uCLinux  网络控制系统 手机看文章 扫描二维码
随时随地手机看文章

引言

随着网络和通信技术的发展,嵌入式系统现已进入高速发展阶段。并在社会各个领域得到了广泛的应用。本文介绍了一种采用ARM+uCLinux作为开发平台。实现基于TCP/IP的远程系统监控.从而取代传统单片机

来实现数据采集、预处理和通信功能;并依靠互联网将数据向上位机传送,同时支持远端客户对设备进行远程控制,从而实现远程监控功能的具体方法。

1 系统平台的构建

本系统由嵌入式平台服务器

、前端控制器、前端传感器置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 uCLinux在ARM平台上的移植

若将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的电平,以使其外部连接的继电器设备驱动程序中对设备的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引导文件中。即可实现开机自动运行。

3 结束语

基于ARM和CLinux嵌入式系统代表了目前嵌入式系统的发展方向。嵌入式系统与网络技术和控制技术相结合.是嵌入式系统发展的必然趋势。本文讨论了基于ARM+uCLinux平台的网络控制系统设计与实现方法。并对该平台下应用TCP/IP协议进行网络通信进行了探讨。该方法对于自动化楼宇、工业控制、智能家居等方面都有一定的借鉴意义。

关键字:ARM  uCLinux  网络控制系统 引用地址:基于ARM+uCLinux的网络控制系统设计与实现

上一篇:基于ARM的车辆检测系统控制单元设计
下一篇:基于ARM+uCLinux的网络控制系统设计与实现

推荐阅读最新更新时间:2024-03-16 12:38

基于CC-Link网络技术实现民爆中包生产线自动控制系统的设计
一、引言 民用炸药生产是一个具有危险性的特殊行业。为了提高炸药生产效率,减少生产过程中造成的工人人身伤害,这个行业对自动化包装线的需求比较迫切。 武汉人天包装技术公司开发的DWG型民爆中包生产线正是满足这种需求的一款产品。生产线针对炸药的包装工艺特点,对炸药进行自动排列、中包包装、装箱。 其自动控制系统采用CC-Link现场总线、分散控制、变频定位控制等技术,保证了生产线稳定、可靠的运行。现场各PLC利用CC-Link总线进行通讯,使得整个生产线配置变的灵活,安装维护容易。友好的人机界面降低了操作难度与事故率,提高了经济效益。整个生产线运行后,减少了大量操作人员,体现了较好的使用效果与较高的安全性。 此线在全国各地炸药
[嵌入式]
基于CC-Link<font color='red'>网络</font>技术实现民爆中包生产线自动<font color='red'>控制系统</font>的设计
一种基于ARM的IEEE802.11MAC协议IP核设计
引言 无线局域网被认为是下一代IT产业发展的是大推动之一,被IT业赋予了极大的希望。无线局域网802.11系列标准的MAC协议是一样的,只是在物理层上有差异,因此对802.11MAC协议的开发,不论是在802.11b流行的今天,还是802.11g可能会成为主流的将来,都是很有意义的。当然,ARM以其先进的体系结构已经成为嵌入式市场的RISC标准,因此基于ARM的IEEE802.11MAC协议的开发是很有现实意义的。 我们的开发流程如图1所示。 PC软件开发是指脱离硬件的嵌入式软件开发阶段。此阶段可以在各种IDE环境下进行开发,并进行软仿真来验证软件的逻辑正确性。然后将开发出来的PC软件结合硬件所需要的硬件相关代码向硬件平台进行
[单片机]
一种基于<font color='red'>ARM</font>的IEEE802.11MAC协议IP核设计
集齐x86、ARM 展讯进阶高端市场添保障
   展讯 通讯市场部总监蔡宗宇19日表示,紫光展锐预计2018年推出第一颗5G商用芯片,紧接着到2019年之间,将会推出第二款芯片,并赶上5G第一波商用进程。下面就随嵌入式小编一起来了解一下相关内容吧。 集齐x86、ARM 展讯进阶高端市场添保障   同时 展讯 也已取得ARM授权将自主研发CPU,也是 展讯 与ARM在CPU领域再续前缘。   蔡宗宇19日出席上海市集成电路行业协会大会时做出以上表示。他透露了几个重要的讯息,首先,蔡宗宇说,通讯芯片是集成电路行业的前沿,手机高端基带芯片已经走到三星16纳米、英特尔14纳米为主,包括紫光展锐与英特尔在先进工艺的结合则是确保了资金与生产工艺的合作,强强联手确保竞争力。预计2
[嵌入式]
Telechips选择Arm CPU/GPU/NPU 开发其下一代汽车SoC
Telechips Dolphin5汽车SoC基于Arm异构计算解决方案,该解决方案包括CPU,GPU和NPU IP。Telechips已经加入了Arm的Flexible Access计划,该计划包括多个Arm IP安全软件包 Arm日前宣布,专注于汽车应用的全球领先的无晶圆厂半导体公司Telechips已为其下一代汽车片上系统(SoC)Dolphin5选择了领先的Arm IP套件,该产品专为高级驾驶员辅助系统(ADAS)和包括IVI Systems的数字驾驶舱等应用而设计。为了满足Telechips的关键高性能,安全性,效率和可扩展性要求,Dolphin5设计将包括具有功能安全功能的Arm Mali-G78AE图形处理器以及
[汽车电子]
Ampere下一代处理器将放弃Arm转而采用定制化内核
上周,微软宣布在全球 10 个 Azure 地区全面推出采用 Ampere Altra 处理器的 Azure 虚拟机。这标志着 Ampere 的又一次重大胜利,它在云领域正在赢得众多供应商的青睐,包括谷歌、Cloudflare、腾讯和甲骨文等等。 这些新的虚拟机经过设计和配置,可有效运行新兴的横向扩展、云原生工作负载,例如应用服务器、海量数据库、云游戏和媒体服务器等。 “Ampere 的云原生处理器经过独特设计,可同时满足云的高性能和能效需求。通过我们与 微软的紧密合作,Ampere Altra 处理器现在可作为 Azure 虚拟机普遍使用,从而帮助以云为中心的新处理器用户,以便他们可以大规模部署下一代创新云应用,并以可持
[网络通信]
Atmel面向汽车、物联网和工业推出ARM Cortex-M7系列MCU
拓展了Atmel | SMART MCU产品系列,超越行业最高性能的ARM Cortex -M处理器系列MCU,CoreMark评分高达1500分; 具备性能卓越的连接能力和独特内存架构,针对实时决定性代码执行和低延迟外设数据访问实现了优化; 业内首款符合汽车使用要求的Cortex-M7系列MCU,为实现汽车联网和音频应用程序提供了以太网AVB和媒体LB外设功能; 中国北京,2015年1月14日 全球微控制器(MCU)和触控解决方案领域的领导者Atmel 公司(NASDAQ:ATML)近日发布了4个新系列产品,均属于其Atmel | SMART ARM Cortex -M7系列MCU产品。新系列为市场带来了最高性能的
[单片机]
ARM的22个常用概念总结
1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器; 2.MAM 使用注意事项: 答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 对于低于 20MHz
[单片机]
基于嵌入式系统arm2210开发板的移动机器人人机界面设计
  摘要: 移动机器人人机界面为移动机器人的运动控制提供直观的路径图形、运动速度和角度、障碍物信息等。通过arm2210的串口uart0接收中心处理器pc104的运动信息,利用东芝公司的液晶控制器t6963c驱动stn液晶屏yl240128a,以及zlg/gui软件包提供的基本绘图和菜单操作函数设计了基于嵌入式系统arm2210开发板的移动机器人人机界面,并利用arm2210的i2c器件zlg7290提供的i2c接口功能和键盘中断信号实现菜单选择,具有很强的实用性。   引言   嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,mp3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved