首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 开发频道>利用Win32API开发串行通信程序

利用Win32API开发串行通信程序

2003-11-07 09:59作者:zzl出处:论坛责任编辑:方舟

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费)


  摘要:本文分析了Windows环境下串行通信的编程技术,介绍了在Windows环境下用VC++语言编写串行通信程序,实现了PC机与MOTOROLA单片机MC68HC908GP32之间的串行通信,并提出了在实际应用中提高串行通信性能的方法。

  关键词:VC++;Win32API函数;串行通信;MOTOROLA单片机

  1、概述

  在工业控制中,串口是常用的计算机与外部串行设备之间的数据传输通道。由于串行通信结构简单、可靠性强、实现及使用成本低、通讯标准统一,因此在测控系统和工程中应用十分广泛。目前Windows在工业生产监控管理系统中已成为主流平台 ,Windows环境下的上、下位机之间的串行通信是设计与开发监控管理系统和集散控制系统的重要组成部分。

  Microsoft公司的VC++6.0是一种高级编程语言,其基础类库 (MFC)封装了Win32API中的标准通信函数,可方便地支持串口通信。下面就结合实例介绍在Windows环境下,用VC++6.0编写串行通信程序的技术及方法。

  2、串行通信工作方式

  Windows系统为每个通信设备开辟了用户定义的输入/输出缓冲区,数据进出通信口均由系统后台来完成,应用程序只需完成对输入/输出缓冲区操作就可以了。实际过程是每接收一个字符就产生一个低级硬件中断,Windows系统中的串行驱动程序就取得了控制权,并将接收到的字符放入缓冲区,然后将控制权返还给正在运行的应用程序。如果输入缓冲区数据已满,串行驱动程序用当前定义的流控制机制通知发送方停止发送数据,而队列中的数据按先进先出 (FIFO)的次序处理。

  在Windows中,串行通信有两种工作方式:查询方式和事件驱动方式。查询方式占用大量的CPU时间,效率较低,但是数据不易丢失;而Win32操作系统基于事件驱动 (也称为消息驱动)机制的内核,支持基于进程的协同式多任务和基于多线程的抢先式多任务。基于事件驱动的多线程应用程序实际上在其内部实现了多任务扩展,为代码赋予了并行执行的特性,可以使应用程序对CPU的利用率大大提高,从而提高系统的响应能力,加快信息处理速度,提高通信程序的实时性和增大数据吞吐量。

  基于以上分析,以事件驱动方式实现Windows下的串行通信更具优势,它能完成较大数据量的实时通信,大大提高了通信的效率,故本程序采用此种方式进行串行通信,至于通信的可靠性可以通过软件设计来保证。

共4页。 1 2 3 4 :

关注此文的读者还看过:

返回开发频道首页

共4页。 1234下一页

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络