|  客服中心  |  合作联系
搜刊网
论文下载
您当前位置
首页 > 论文下载 > 信息科技 > 基于多线程的环境监控下位机系统
基于多线程的环境监控下位机系统
来源:互联网 sk001 | 陈立定 吕盛林
【分  类】 信息科技
【关 键 词】 ARM-Linux;多线程;同步机制;环境监控;SQLite;
【来  源】 互联网
【收  录】 中文学术期刊网
正文:

  图4 数据采集与存储线程流程

  Fig 4 The flow chart of data collecting and storing

  数据采集和存储线程作为系统的数据源头,它激活了其他两个子线程,与之相对应,被他激活的子线程随着它的结束而结束[7]。线程在未接受到信号量激活时是处于阻塞状态,是不占用系统资源的。前台处理用户界面的GUI线程与后台的工作线程之间是独立的。GUI线程提供友好的人机界面,它把被监控对象的信息实时的显示在图形界面上,供现场工作人员查询和设置。

  在此程序中,每个线程都需要对存放被监控对象实时状态的数据缓冲区进行访问。由于Linux操作系统允许多个线程同时对某一数据缓冲区进行读操作,但在同一时刻对此数据缓冲区只能有一个写操作。GUI线程需要定时刷屏,更新被监控对象的实时状态,因而需要定时对缓冲区进行读操作,而数据采集与存储线程定时的对此缓冲区进行写操作,它们之间没有触发关系,是相互独立运行的。因此,需要对缓冲区设置一个互斥量,确保任一时刻这两个线程只有一个能对其进行访问[5]。

  数据采集与存储线程对缓冲区进行写操作之前,先对互斥量进行加锁操作,把实时状态写入数据缓冲区后,再进行解锁。这样避免了因于GUI线程争夺资源而造成系统不稳定。上锁与解锁操作代码如下所示。

  void *thread_collection(void *arg)

  {

  …

  pthread_mutex_lock(&data_mutex); //上锁操作

  read(fd, &data, sizeof(data)); //写实时状态到data缓冲区

  pthread_mutex_unlock(&data_mutex); //解锁操作

  //激活网络通信线程,决策线程,并写数据到数据库

  …

  }

  同样,GUI线程中也需要对缓冲区进行相应的上锁、解锁操作。

  网络通信线程和决策线程由主线程(GUI线程)创建,由数据采集与存储线程激活,都是每5秒运行一次。由于GPRS模块通过串口与下位机相连,并采用透明传输模式,即有数据即传输,因此网络通信线程只需要定时对串口写操作就可以完成数据的传输。此线程先打开串口,设置串口的波特率、数据位、校验位等属性,然后等待数据采集与存储程的信号量将其激活,第一次被激活后,进入了一个while循环,执行一次串口写操作,再等待下一次被激活。线程被激活的条件是数据采集和存储线程对信号进行了一次加1操作,即sem_post(&sem_2)。

  其关键代码如下:

  fd = open(“/dev/ttySC4”, O_RDWR);

  set_speed(fd, 9600); //设置波特率

  set_parity(fd, 8, 1, ‘n’); //设置数据位、奇偶校验位

  sem_wait(&sem_2); //等待信号量激活

  while(1){

  write(fd, buf, sizeof(buf)); //对串口写操作,发送数据

  sem_wait(&sem_2); //等待下一次信号量激活

  }

  pthread_exit( “thread exit\n”); //线程退出

  决策线程的任务是对当前被监控对象的状态进行判断,如果有异常发生,则产生一个报警信号,并执行相关动作来应对这些异常。其代码结构与网络通信线程相似。

  5 结束语

  随着嵌入式处理器性能的不断增强和成本的降低,使用ARM为核心的嵌入式系统是来高端控制器的发展趋势。本文设计实现了一个基于ARM-Linux平台的环境监控下位机系统,并采用多线程控制技术来完成下位机的多个任务。相对于单任务应用程序,多线程应用程序能够减少定时器的使用,节约系统资源,从而使系统的效率提高。而且,多线程编程更能体现模块化设计思想,程序易于维护和修改。系统已经成功应用于项目之中,且性能稳定可靠。

  参考文献

  [1] 陈海明.基于ARM和GPRS远程无线监控系统的设计与实现[D].北京邮电大学,2009.

  [2] 刘坚,陶正苏,陈德富,等.基于GPRS的环境监测系统的设计[J].自动化仪表. 2009,30(2):30-32.

  [3] Xing Jianping,Zhang Jun. GPS real time vehicle alarm monitoring system based on GPRS/CSD using the embedded system[R]. ITS Telecommunications Proceedings, 2006.

  [4] 刘森,慕春棣,赵明国.基于ARM嵌入式的拟人机器人控制器的设计[J].清华大学学报(自然科学版).2008,44(4):482-486.

  [5] 景征骏,周军.基于多线程的集控式足球机器人上位机系统[J].计算机工程.2008,34(21):199-203.

  [6] Matthew N.Linux程序设计[M].2版.北京:机械工业出版社,2002:445-447.

  [7] 张静永,张蕾,曹其新,等.基于多线程的钢管智能探伤系统[J].计算机工程与应用.2004.31:210-212.

  基金项目:

  广东省科技计划项目(编号:2006B12301002);

  佛山市产学研专项资金项目(编号:2007CB009);

  佛山市南海环境保护局项目(编号:2007B08D8073570)。

相关推荐
热门期刊
建材发展导向《建材发展导向》
《建材发展导向》杂志,于1979年经国家新闻出版总署批准正式创刊,CN:53-1185/TU,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:生产技...
福建商学院学报《福建商学院学报》
《福建商学院学报》杂志,于1998年经国家新闻出版总署批准正式创刊,CN:35-1333/G4,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:管理...
中国广电技术文萃《中国广电技术文萃》
《广播电视技术文萃》创刊于2013年,由北京时代中广传媒文化有限公司主办,涵盖整个广电行业,广电局、有线网络、微波传输、电视台、电台、发射台等尽含在内,文章种类...
宜春学院学报《宜春学院学报》
《宜春学院学报》杂志,于2001年经国家新闻出版总署批准正式创刊,CN:36-1250/Z,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:历史与...
内蒙古师范大学学报(哲学社会科学版)《内蒙古师范大学学报(哲学社会科学版)》
《内蒙古师范大学学报(哲学社会科学版)》(双月刊)创刊于1958年,是由内蒙古师范大学主办的哲学社科类学术刊物。哲学社会科学(汉文)版创刊至今,在学校领导的大力支持下,...
新时代的脚步声《新时代的脚步声》
《 新时代的脚步声》省级期刊,被知网收录,出版地:北京,由江苏省陶行知研究会主办。 《 新时代的脚步声》以马列主义、毛泽东思想、邓小平理论和“三个代表”重要思想...
友情链接
中教杯 国家新闻出版总署 中国知网 万方数据 维普网 中国科学院 中国国家图书馆 央视英文版 中国留学网 中青网 中国国家人才网 中国经济网 中国日报网 中国新闻网 中国学术期刊网
关于我们
平台简介
诚聘英才
企业文化
竞争优势
版权信息
服务条款
客服承诺
常见问题
版权声明
合作加盟
期刊加盟
广告服务
联系我们
网站导航
期刊大全
论文下载
课题申报
学术会议
编辑QQ
编辑联络
2007-2023
中文学术期刊检索机构
bianjibu777@qq.com
联系我们

版权所有©2007- 2023 中国学术期刊网(qikanw.com) All Rights Reserved 京ICP备2021008252号
本站是学术论文网络平台,若期刊网有侵犯您的版权,请及时与期刊网客服取得联系,联系信箱: bianjibu777@qq.com    
中国学术期刊网