科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件RS-232-C端口实时监控软件的设计实现

RS-232-C端口实时监控软件的设计实现

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了在Microsoft Visual C++ 6.0环境下对RS-232-C串行端口进行编程,以及后台监控

作者:郎锐 来源:yesky 2007年11月16日

关键字: RS-232-C 端口 监控软件 设计

  • 评论
  • 分享微博
  • 分享邮件
摘要:

  本文介绍了在Microsoft Visual C++ 6.0环境下对RS-232-C串行端口进行编程,以及对后台监控程序所普遍涉及到的无阻塞后台运行、数据的实时接收和处理等问题的解决方法。

  一、 引言

  在实验室和工业应用中,受信道成本限制,串口常常作为计算机与外部串行设备之间的首选数据传输通道,而且由于串行通信方便易行,许多设备和计算机都可以通过串口对外设进行控制、检测,串口通讯日益成为计算机和外设进行通讯、获取由外设采集到的监测数据的一个非常重要的手段。本文所描述的程序实例运行于Windows 9x操作系统下,可后台运行、实时接收、处理从端口传来的数据,并能通过向串口发送命令来控制外设的动作。为了避免在实时监控数据时引发程序阻塞,在本程序中引入了线程和端口中断响应等技术。

  二、 程序设计思路

  由于本程序要对串行端口进行实时监控,这就要求它是一个后台程序,在监控的同时可以在前台进行其他一些于之无关的操作。因而在实现时即要避免无时无刻都在反复读端口的效率低下的轮询方式,又不能因为来不及处理而将突然到达的监测数据丢失。只有采取端口中断的异步方式才能实现高效、安全的监控过程,只要一有数据到达端口,马上抛出中断请求,中断处理函数便会及时启动以处理到来的数据,从而避免了轮询间隙丢时数据的可能。而在大部分无数据到达的时间内不会有中断抛出,中断处理函数也不会执行,即仅仅在有数据到达的一瞬间进行工作,此效率不可谓不高。

  综上所述,要实现上述要求,就要用到下列技术来解决所遇到的关键性问题:一是采用多线程来避免在进行文件操作等耗时操作时会引发阻塞现象的发生。同时为了防止多个线程同时对同一个变量进行操作引起时序上的差错,为了保持线程的同步,还采取了临界区加解锁的技术;二是对端口的数据读取方式采取中断响应模式,具体原因前面以讲的很清楚,在此不再赘述;三是使用了定时器,以满足实时监控类程序的实时显示功能,以便及时的将所接收到的动态数据及时的反映到屏
幕上。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章