《基于ARM的WEB远程监控系统研究与应用.pdf》由会员分享,可在线阅读,更多相关《基于ARM的WEB远程监控系统研究与应用.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 2 9卷 第 5期 2 0 0 8年 l 0月 闽江学院学报 J O URNAL OF MI N J I AN G UN I V ER S I T Y V o I 2 9 No 5 0c t 2o o8 基于 A R M的 We b远程监控系统研究与应用 翁 民玲(福建工程学院现代教育技术中心,福建 福州 3 5 0 0 1 4)摘要:综合分析 了投入成本、开发周期和 应用领域 等 因素 的基 础上,设计 一种基 于 A R M 的嵌入 式 动态 WE B服务 器 在 实时操作 系统 C O SI I 和轻量级协议栈 L WI P 移植后 的基础 上编 写 WE B服 务 器程序,实现和
2、一个种质 苗 库控制系统进行串口通信,完成将种质苗库控制系统中的数据采集后显示给用户和把用户设置的参数发送给苗库 系统等功能 构建嵌入 式 系统平台,详细阐述硬件接 口、应用软件设计 和各任务 的关联性 关键词:远程监控;嵌入式 we b 服务 器;A R M;T C P I P 中图分类号:T P 3 9 3 0 6 文献标识码:A 文章编号:1 0 0 9 7 8 2 1(2 0 0 8)0 50 0 8 7一 O 6 Re s e a r c h a n d a p pl i c a t i o n o f W e b r e mo t e mo ni t o r i n g s y s
3、 t e m ba s e d o n ARM W ENG Mi n l i n g (Mo d e r n E d u c a t i o n a l T e c h n o l o g y C e n t e r,F u j i a n U n i v e r s i t y o f T e c h n o l o g y,F u z h o u,F u fi a n 3 5 0 0 1 4,C h i n a)Ab s t r a c t:On c o mp r e h e n s i v e a n a l y s i s o f t h e c o s t,t h e a p p l
4、 i c a t i o n d e v e l o p me n t c y c l e a n d S O o n Th e ARM e mb e d d e d d y n a mi c We b s e r v e r i s d e s i g n e d B a s e d o n t h e r e a l t i me o p e r a t i n g s y s t e m C OS I I a n d l i g h t we i g h t p r o t o c o l s t a c k LW I P t r a n s p l a n t a t i o n a
5、p r o g r a m f o r t h e pr e p a r a t i o n o f W e b s e rve r a n d a g e r mp l a s m b a n k Mi a o s e r i a l c o mmu n i c a t i o n c o n t r o l s y s t e m a r e c o mp l e t e d by Mi l l e r g e r mp l a s m l i b r a r y c o n t r o l s y s t e m a fte r c o l l e c t i n g t h e d a
6、 t a t o t h e us e r a n d t h e u s e r t o s e t t h e p a r a me t e r s s e nt t o t h e l i b r a ry s y s t e m f e a t u r e s s u c h a s Mi l l e r An e mb e d d e d s y s t e m p l a tfo r m i s c o n s t r u c t e d A de t a i l e d h a r d wa r e i nt e r f a c e a n d a p p l i c a t i
7、 o n s o f t wa r e a r e d e s i g n e d Ke y wo r d s:r e mo t e mo n i t o r i n g;e mb e d de d W e b s e r v e r;ARM;TCP I P 0 引言 嵌入式 We b服务器的实现方法主要有两种:目标设备上先移植操作系统;目标设备上无操作系统 前者 适用于高端的嵌入式设 备,有足够的资源可供移植嵌人式操作系统 但是这种方法有其不足之处:首先,因 为系统移植 了操作系统,即已实现了网络相关的协议栈,所 以网络相关的编程界 面也就基本确定下来,如果 We b服务器也是从现有的实例中
8、移植过来,整个 We b服务器的基本性能特点已确定,系统设计人员可以创 新和发挥的余地就不是很大,这样 We b服务器基本上只是一个报文处理模块,只能简单地接收请求,返回正 确的响应 其次,采用这种方法的系统对于 C P U的处理能力和内存资源 的要求 比较大 J 再次,如果需要在 We b服务器外挂一些处理模块时,完成一次服务要经过多次程序调用,降低了系统的效率 后者与前者最大 的不同之处在于它对嵌人式设备的硬件要求比较低,在一般的低端设备上都可以实现:首先,低端设备的硬件条件不支持大容量的程序,或者,由于可靠性、空间和成本的限制,系统不能提供很 收稿 日期:2 0 0 8 0 5 0 8
9、作者简介:翁民玲(1 9 7 5一),女,福建福清人,福建工程学院现代教育技术中心实验师 8 8 闽江学院学报 第 2 9 卷 大的内存空间来支持操作系统的实现 再者,低端设备上要实现的 We b服务器一般功能比较简单,不需要操作 系统提供复杂的功能支持,相 反,操作系统的参与反而会使系统更加复杂,但是能够保证这些服务满足实时性要求的操作系统种类却不 多,设计者如果要重新设计一些增强型的功能,还必须考虑是否和系统原有的机制冲突 J 在这种情况下,将 操作系统与 We b服务器作为一个整体来考虑,按照系统的功能要求和制约条件,全部重新设计和实现将是 满足要求的更好的方式 1 系统设计思想及实现的
10、功能 本系统的设计思想是介于两者之间,在 A R M平 台上移植 C O S I I 操作系统和 L WI P协议栈之后实现 We b服务器 整个系统的总体构架如下图 1 所示 系统需要实现是一个基于 A R M 7的嵌入式动态 We b服务器,在实时操作系统 C O S 一 和轻量级协议栈 L WI P移植后的基础上编写 We b服务器程序,并实现和一个种质苗库控制系统进行串口通信,该嵌入式 We b 服务器主要完成将种质苗库控制系统中的数据采集后 显示给用户和把用户设置的参数发送给种苗库系统,其中动态 网页的显示采用 C G I 技术 2 硬件 设计 为保证能够终端能够实现远程通讯、管理、
11、数据 存储、数据采 集和数据处理等 功能 终端采 用高性 线 m 冀 鬻 詈 嚣 菜 输 人、输 出 的 接 口 和 外 围 电 路 比 较 多,所 以 选 择 一 个 线 I 资源丰富的微控制器非常重要 本终端采用的是三 刚线 星公司基于A R M 7 T D M I 内核的 S 3 C 4 4 B O X处理器 1 P C f L 基于三星$3 C 4 4 B O X芯片的单 板嵌 入系统(其 圭 挚 !,该 嵌 设 备 配 t了 2 曼 图 1 系 统 总 体 框 架 图 闪 存 作 为 程 序 存 储 器,4 MB 的 D R A M 用 于存放 数 F ig 1 t。m。f。l 据$
12、3 C 4 4 B 0 X 芯 片 内部 集 成 了 以太 网络 接 口的 MA C功能,外接了一片 C S 8 9 0 0 A作为 P H Y控制芯片 该单板系统上首先移植了 C O S-I I 操作系统,并实现 了一个 L WI P(轻型 T C P I P协议)为原型的 T C P I P协议栈,能够正确接收发送 A R P、I P、I C MP、U D P和 T C P 报文 由于$3 C 4 4 B 0 X本身并没有 网络接 口和串 口,但是可以通过扩展来实现 在这里通过扩展 了网络 接 口的模式 图3所示,提供一个 C S 8 9 0 0 A I O M 的网 络接 口 3软件设计
13、 本次系统 软 件设 计采 用 的集 成 开 发环 境 为 K E I L公司的 i V i s i o n D E,系统的软件平台构架如图 4所示编译器采用 A R M公司的 R e a l V i e w 3 1 T CP I P的 实现 1 一:翮 簇 蕊 1 圃 L 盟 嵌 式岫3 服务器 图2 系统的硬件平台构架 F i g 2 T h e h a r d w a r e p l a tf o r m a r c h i t e c t u r e 实现嵌入式 We b服务器的关键技术是 T C P和 H T I、P协议 的实现 本文在 C O SI I 上移植 了 L wI P 协
14、议,这是一个适合于小型嵌入式设备的T C P I P 协议族 T C P I P可以用在各种各样的信道和底层协议(例 如 T l和 x 2 5、以太网以及 R S一 2 3 2串行接 口)之上 根据嵌入系统的特点裁减 了通用 的 T C P T P,能够正确 接收与发送 A R P、I P、I C M P、U D P和 T C P报文,为应用层协议提供底层支持 H 1 T r P协议规定了 We b服务器与 F i e l d i n g R H y p e r t e x t T r a n s f e r P mt 0 c o l H 1 T r P 1 1 R F C 2 6 1 6,1
15、 9 9 9一o 6 第 5期 翁民玲:基于 AR M 的 We b远程监控系统研究与应用 8 9 图 3以太网接 口电路图 F i g 3 E t h e r n e t i n t e r f a c e c i r c u i t 浏览器之间的信息传递规范,协议的机制比较复杂,对处理器的运算能力和存储能力要求较高 针对低端嵌 入式设备资源有限的特点,在设计中需要对 H 1 W 的一些机制进行了简化,即设计一个功能最小化 的 We b服 务器 在已经建立 T C P连接 的基础上,一个 H T T P会话包括两个过程 j:客户 端发送请求数据报文,We b服务器端 完成相应动作并 发送应答
16、数 据报文 服务器在每次接收到请 求 H T I P报文 时需做大量工作:对接 收到的请求数 据报文复杂的头部进行解析;准备符 合协议 的应答 数据报文头部;从 串 口 中读出数据填人应答数据报文 的实体 部分 3 2 C GI 技 术 动态 网页的显示采用 C G I 技术 其程序需运行 在网络服务器上,提供 同客户段 Ht ml 页面的接 口 绝大多数 的 C G I 程序被用来解释处理来 自表单 的输入信息,并在服务器产生相应 的 处理,或将相应的信息反馈给浏览器 C G I 程序使网页具有交互功能 3 3 C O SI I 操作系统的移植 图4 系统的软件平台构架 F i g 4 S
17、y s t e m s o f t w a r e p l a t f o r m a r c h i t e c t u r e 设计时采用 的嵌入式操作 系统是 C O SI I 实时操作系统 C O SI I 属于源码开放的嵌入式实时系统内核,并且 内核大部分由 C语言实 现,有很好的移植性 图 5说明了 I x C O SI I 系统的文件组织结构和平台依赖性 C O SI I 操作系统的文件分为 3部分,核心部分是通用的,即与 目标处理器无关 的文件 O S C F G H 闽江学院学报 第 2 9卷 文件是要在移植 时根据具体情况进行配置的文件 剩 下的 3个文 件则是要根据 目标
18、处理 器的具体境况来 编写 OSC O R E C提供实时系统数据结构初始化,任务 调度,中断处理等内核功能;O S D B G C提供进行调试 时调用的一些函数;O S F L A G C是事件标志处理函数 的模块文件;O S MB O X C提供利用邮箱通讯的功能 函数;O S ME M C提供内存管理的功能 函数;O S MU T E X C提供信号量互斥的操作 函数;O S Q C提供 利 用消息队列通讯的功能函数;O S S E M C提供利用 信 号量通讯的功能函数;O S T A S K C提供任务创建、任 务删除、优先级转换、任务挂起等任务管理相关的功能 函数;O S T I
19、ME C提供 时 间管 理类 功 能 函数;O S C O R E C提供计数器操作函数 应用程 序软 f u c o s 一 1 1 与 同标处理器无哭的文t】O S C O R E C O S D B G C O S F L A G C O S M B O X C 0 5 M E M C 0 S M【T E X C 0 S 0 C O S S E M C 0 S T A S K C OS T M E C OS T M R C U C O S l I H 图5 IJ,C O S一1 1 移植文件分析 F i g 5 I C OS I I p o r t a b l e d o c u me
20、n t a n a l y s i s 移植工作包括以下几个 内容:修改启动文件;定义 O S C P U H中的常量、数据类 型和宏;用 c语言编写 OSCP UC C中的函数;用汇编语言编写 O S C P U A S中的函数 3 3 1 启动文件的分析和修改 启动文件为 S 3 C 4 4 B O X S文件 它要完成的功能是对堆栈的初始化、初始化 中断向量表、设置时钟管理 参数、关闭看门狗计数器和对内存控制器的设置 处理器的启动文件可由K E I L自 动生成,但需要根据处理器 的具体类型和情况进行相应的硬件初始化设置 3 3_ 2 OSC P U H文件的实现 本文件需要定义 t C
21、 O S 中使用的与编译器相关的数据类型和与 目标处理器相关的宏以及一些函数 的声明 特别是下列全局函数均是 O S C P U _ A S中需要编写的函数:e x t e r n v o i d O S C t x S w(v o i d);声 明任务级任务切换 函数 e x t e r n v o i d O S I n t C t x S w(v o i d);声明中断级任务切换函数 e x t e m v o i d A R M D is a b l e I n t(v o i d);声明中断禁止函数 e x t e r n v o i d A R ME n a b l e I n t
22、(v o i d);声明中断恢复函数 e x t e m v o i d O S T i c k l S R(v o i d);声明时钟中断服务 函数 3 3 3 OSCPUC C文件的实现 移植 O S C P U C C文件时,需要编写的是任务堆栈初始化函数 O S T a s k S t k I n i t 和时钟节拍 中断服务钩子 函数 O S T i me T i c k H o o k 在 C O SI I 中,每一个任务都有 自己的任务堆栈,当发生任务切换或者 中断时,其 C P U使用权被剥 脱,为了任务能被再次运行,那么这个被打断的任务所用到的处理器的寄存器内容均应得到保存,
23、需要按照 A R M7处理器的压栈和人栈指令的特点,设计任务堆栈 根据任务堆栈结构,对 O S S T K函数进行编写 用户创建任务时,O S T a s k C r e a t()会调用 O S T a s k S t k f n i t 函数初始化该任务的堆栈,并把返回的堆栈指针 保存到该任务的T C B结构中的最前面的参数 O S T C B S t k P t r 中,当该任务要被恢复时,任务切换函数从其 T C B 块中取得其任务堆栈指针,依次将堆栈内容弹到处理器对应的 C P S R、r 0,r l,r 1 2,l r,p c 的寄存器中,完成 现场的恢复和程序指针 P C的返回
24、另一个需要编写的函数是 O S T i me T i c k H o o k,该 函数被时钟节拍 中断服务函数 O S T i c k I S R中的 O S T i me T i c k函数调用,用来清除时钟节拍中断发生设备的请求 移植方案使用 S 3 C 4 4 B O X处理器的 R T C模块的 t i c k 第 5期 翁民玲:基于 A R M的 We b远程监控系统研究与应用 9 l 中断作为时钟节拍中断,该函数编写如下:v o i d O S T i m e T i c k H o o k(v o i d)r II S P C=(I N T 3 2 U)0 x O 1)2 0;清
25、 R T C模块 的 t i c k中断 注意:用户也可不修改此函数,但是必须在 O S T ic k I S R中执行清除发生节拍中断的设备的中断请求标 志,为便于说明,本文将利用 内核提供给用户的 O S T i m e T i c k H o o k函数来完成清中断的任务 3 3一OSCPUA S文件 的实现 该文件是移植过程中唯一需要用汇编语言来实现 的文件,也是移植的重点和难点所在 在这个文件里,需要编写的函数有 O S S t a r t H i g h R d y,O S C t x S W,O S I n t C t x S W,O S T i c k I S R,A R MD
26、 i s a b l e I n t,A R ME n a b l e I n t 几个 O S S t a r t Hi g h R d y()函数 O S S t a r t 函数将调用 O S S t a r t H i g h R d y函数从最高优先级任务 O S C S w()函数 该函数是任务级的上下文切换函数 O S I n t C t x S w()函数 该函数用 于中断级的上下文切换 O S T i c k I S R()函数 在 C P U响应时钟节拍中断后,程序指针 P C发生跳转后进入该函数 A R MD i s a b l e I n t()和 A R ME n a
27、 b l e I n t()函数 A R MD i s a b l e I n t()是用来暂时禁止 F I Q及 I R Q中断的函数,A R ME n a b l e I n t 则是恢复 A R MD i s a b l e I n t()执 行前 的中断使能状态,二者成对使用,用来保护临界段代码不被中断破坏 3 4 L WI P协 议栈 的移植 L WI P是一套用于嵌入式系统的开放源码的轻型 T C WI P协议栈,但 L WI P实现 了较为完备的 I P,I C M P,U D P,T C P协议,具有超时时间估计、快速恢复和重发、窗 口调整等功能 L WI P移植的关键部分在于
28、实现 S Y S A R C H C文件,它是操作 系统的模拟层,提供给 L WI P调用操作系 统的底层操作 函数 L WI P的数据报 的接收如 图所示 数据报 的接收是通过一个任务来进行的,该任务优先级较高 R e c P a c k e t()函数是地层驱动函数,它在接收时调用了 R e c E t h e r n e t P a c k e t()函数进行以太网层处理,而 R e c Et h e r n e t_P a c k e t()又调用了 I P P R O C E S S()函数,I P层 的处理 由 I P P R O C E S S()函数执行,而 T C P报就通
29、过消息队列交给 T C P处理任务执行 3 5 C S 8 9 0 0 A网卡驱动的实现 网卡驱动需要完成的任务是网卡芯片的初始化和建立与操作系统的操作接口(函数)其核心的函数有以下 4个:i nt CSI n i t(v o i d);初始 化硬 件 i m CSR e s e t(v o i d);网卡复位函数 i m CSR e c e i v e P a c k e t(u n s i g n e d i n t t ms);接收读取网卡接收到的数据包的函数 i n t C S _ T r a n s m i t P a c k e t(u n s i g n e d c h a r
30、d a t a,i n t l e n g t h);通过网卡发送数据包的函数 同时该驱动文件也从新打包 了以下几个函数,用来提供给系统或上层调用 v o i d N i c I n i t(v o i d);网卡初始化 v o i d N i c C l o s e(v o i d);网卡关闭 i n t N i c R e s e t(v o i d);网卡复位 i n t E t h e r O u t p u t(u n s i gne d c h a r d m a c,c h a r d a t a,u n s i g n e d s h o r t l e n);发送数据 i n
31、 t E t h e r I n p u t(u n s i g n e d c h a r d a t a,u n s i g n e d s h o r t t ins);接收数据 闽江学院学报 第 2 9卷 其中网卡的接收函数采用中断的方式,在系统中建立一个优先级比较低的任务,来循环读取网卡的 I S Q,判断是否有数据包收到,然后中断 C P U,复制数据帧到缓 冲区 3 6 E T H E R N E T I F C文件 的 实现 该文件是介于网卡驱动和 L wI P之间层次的一个文件,它完成对底层 函数的调用和对上层 函数的实现,是对 L WI P的一个封装 所 以主要对底层接口函
32、数和上层接 口函数进行定义 3 7 We b服务 器 根据 T C P I P的分层结构,首先完成底层协议 I P、A R P、T C P、U D P的初始化,然后建立 T C P任务,绑定 I P 地址和8 0 端口,并建立线程等待用户请求 H T r P服务器初始化函数如下:v o i d h t t pi n i t(v o i d a r g)s t r uc t t c p _p c b pc b;O S T i m e S e t(u 3 2-t)O X 0 0 0 0 0 O l0 0);c o u n t e r=(u 3 2 一 t)O x O 0 0 0 0 0 0 0;p
33、c b=t c p_n e w();t c p _ b i n d(p c b,I P A D D R A N Y,8 0);pc b:t c pl i s t e n(p c b);t c p _ a c c e p t(p c b,h t t p a c c e p t);4总结 随着后 P c时代的到来,嵌人式设备 已经深入到人们的 日常生活和工作中,在这些设备上实现 We b服务 器,通过浏览器(如 I E)获取它们工作时的一些参数,实现对设备的远程监控,具有深远的意义 在低端嵌入式设备上实现 We b服务器,要根据该系统对 We b服务器的功能需求简化 H1 _ I IP协议的一些
34、机制,在资源有限的情况下设计满足需求的嵌入式 We b服务器 本文设计并实现的这个基 于 g C O S操 作系统的嵌入式 We b服务器既可以应用到家庭 网络中,实现各种信息家电的网络化管理,也可 以应用到其 它一些实时性的远程控制系统中,应用领域非常广泛 而且 由于服务器 自身成本较低,客户端又无须开发专 用软件,只需利用现成的I n t e r n e t 进行信息传输,大大降低应用系统的构建成本,因此在低端嵌入式设备上实 现 We b服务器,必将为嵌入式系统的应用提供更广阔的前景 本次设计基本上达到了预期的目标,服务器运行稳定,客户可以在局域 网通过浏览器登录服务器能够浏 览网页,同时
35、服务器也可以采集数据显示给用户 基于 We b的嵌入式应用系统的开发与应用模型,将成熟的网络技术与嵌入式技术相结合,解决传统的 嵌入式系统开发中存在的不足 参考文献:1 杜春留 A R M 体系结构与编程 M 北京:清华大学出版社,2 0 0 3:1 7 2 5 2 谷博 基于 t z C O S一嵌入式 We b S e r v e r 的研究与实现 D 大连:大连理工大学,2 0 0 5:2 4 3(美)L a b r o s s e J e a n J 嵌入式实时操作系统 C O SI I M 邵贝贝,译 北京:北京航空航天大学出版社,2 0 0 3:1 0 0 1 5 0 4 谢希仁 计算机网络 M 北京:电子工业出版社,2 0 0 3:3 0 4 3 0 9 5 周立功A R M嵌入式系统软件开发实例 M 北京:北京航空航天大学出版社,2 0 0 4:1 5 2 O (责任编辑:金娃)