- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM健康监测系统网关服务器研究与设计
基于ARM健康监测系统网关服务器研究与设计
摘要:文章介绍了多种基于嵌入式linux操作系统的服务器模型。结合健康监测系统中使用的zigbee网络,详细讨论了各种服务器模型的优缺点。研究的主机对象是装有嵌入式linux系统的S3C2440,客户机采用的是自带zigbee模块的CC2450单片机。
关键词:服务器模型;嵌入式;zigbee
zigbee网络具有低功耗、抗干扰性强、成本低、网络容量大等优点,在现代健康监控系统中应用广泛。为尽可能降低成本,在实际中一般充分发挥它网络容量大的优点,这要求网关服务器要拥有很好的稳定性和实时处理基本数据的能力。针对这一要求我们对嵌入式linux下的各种服务器模型进行了详细的研究,在数据处理问题上我们使用嵌入式数据库sqlite进行实时的处理。
一、嵌入式系统开发
S3C2440处理器是基于ARM920T内核的32位RISC嵌入式芯片。该ARM内核的CPU主频最高可达533MHz,此处使用499MHz,它除了集成3个串口、SD卡控制器、USB Host控制器、LCD控制器、Nand Flash控制器以及实时时钟外,还增添了工业控制总线(CAN)、Camera控制器(数码摄像机接口)、PCMCIA接口(可接无线网卡或调制解调器及其他外设)。另外,用1个96针总线插槽引出CPU的局部总线,可外接其他总线设备并与多方通信。
在众多嵌入式操作系统中,我们选则发展最快应用最广的嵌入式linux操作系统。它的内核因为实现了的TCP/IP协议,所以可以很方便的进行各种服务器模型的编程与实现。同时它具有内核开放、方便裁剪等优点,非常适合应用于嵌入式网关服务器。
二、服务器模型的分析与设计
由于对进行的传输的数据的准确率要求很高,所以选择TCP服务器。Linux服务器主要分为两大类:循环服务器和并发服务器。服务器程序在bind()、listen()之后直接进入循环,在循环内完成accept()、recv()、send()等操作。而并发服务器可以同时和多个客户端进行通信。由于健康监测系统的zigbee节点很多,并且节点发送数据时实时的。所以只能采用并发服务器模式与各个节点进行通信。并发服务器又分为多进程并发服务器、多线程并发服务器、IO复用服务器等3中类型。下面对这3中服务器进行分析。
多进程并发服务器在linten()之后的核心代码如下:
for(i=0;iPIDNUM;i++)
{
pid[i]=fork();
if(pid[i]==0)
{
handle(s);
}
}
close(s);
它的思想是创建子进程处理同时到来的客户端请求,即同时有多少个节点请求就创建多少个进程。
多线程并发服务器在listen()之后的核心代码如下:
for(;;)
{
sc=accept(s,(struct sockaddr*)client_addr,len);
if(sc0)
{
continue;
}
else
{
pthread_create(thread1,NULL,handle,(void*)sc);
}
}
close(s);
它的思想是创建线程处理同时到来的客户端请求,即同时有多少个节点请求就创建多少个线程。相比创建进程,创建线程拥有很多优点。系统创建进程需要完全的复制一份代码,分配另一份空间,而线程只有很少的私有资源,比如线程ID等。实践证明创建线程比创建进程快10到100倍。
IO复用模型的核心思想是使用select函数进行描述符表的匹配,在linsten()之后的核心代码如下:
if (!(select(MAX_SOCK_FD, tmp_inset, NULL, NULL, NULL) 0))
{
perror(select);
close(sockfd);
exit(1);
}
printf(after select\n);
for (fd = 0; fd MAX_SOCK_FD; fd++)
{
if (FD_ISSET(fd, tmp_inset) 0)
{
if (fd == sockfd)
{ /* 服务端接收客户端的连接请求 : 监听套接字*/
if ((client_fd = accept(sockfd, (struct sockaddr *)client_sockaddr, sin_size))== -1)
{
perror(accept);
exit(1);
}
您可能关注的文档
- 基于Android高级程序设计语言移动学习平台设计与实现.doc
- 基于Android高校课程学习系统设计与实现.doc
- 基于ANFIS新闻工作者媒体素养评估预测.doc
- 基于ANFIS实验教学质量评价研究.doc
- 基于AngularJS健康大数据用户接口设计与实现.doc
- 基于AngⅡApoE表达探讨补肾中药复方首参颗粒对颈动脉粥样硬化患者影响.doc
- 基于ANP―Fuzzy―TOPSIS企业精益化水平评价研究.doc
- 基于ANN电力工程造价预测模型建立与实现.doc
- 基于ANP供应链合作伙伴选择综合评价.doc
- 基于ANP公路工程造价风险控制与管理.doc
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
最近下载
- 04国家级精品课程 乒乓球教学课件 第四章 乒乓球战术.ppt VIP
- 某某太阳能发电有限公司电力线路穿越项目安全评价.doc VIP
- 冷却塔维护保养方案.docx VIP
- 中医病历书写基本规范.pptx VIP
- 约克离心式冷水机组_说明书.pdf VIP
- 外国人体格检查记录-StudyinChina,experienceinChina.doc VIP
- 小天使 乐器配件 电子节拍器 WSM-288 使用说明.pdf
- 2025年政务服务办事员(三级)每日一练标准题库200题(含答案).docx
- 03国家级课程 乒乓球教学课件 乒乓球技术.ppt VIP
- 中期论文化工设计-年产3万吨甲基丙烯酸甲酯分厂设计.doc VIP
原创力文档


文档评论(0)