网站地图
范文同学网


自动化 模具 机械 电子 通信 动画 英语范文 工程管理 金融范文 旅游管理 工业工程 生物工程 给排水范文 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流范文 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言范文 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸范文 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控范文 变电站 文化产业

  • 网站首页|
  • 文档范文|
  • 人工降重|
  • 职称文章发表|
  • 合作期刊|
  • 范文下载|
  • 计算机范文|
  • 外文翻译|
  • 免费范文|
  • 原创范文|
  • 开题报告

联系方式

当前位置:范文同学网 -> 免费范文 -> 电子专业 -> 温度监控系统的设计(五)
自动化文档范文| 电子机电范文| 测控技术范文| 通信专业范文| 电气工程范文| 通信工程范文| 电子信息工程范文| 免费自动化范文| 免费电子范文| 免费电气范文| 通信范文
·电气自动化原创文章范文 ·学前教育专业原创文章范文 ·国际经济贸易原创文章范文 ·药学专业原创文章范文 ·英语专业原创文章范文 ·公共事业管理原创文章范文
·金融专业原创文章范文 ·广播电视编导原创文章范文 ·电子商务专业原创文章范文 ·法律专业原创文章范文 ·工商管理原创文章范文 ·汉语言文学原创文章范文
·人力资源管理原创文章范文 ·摄影专业原创文章范文 ·心理学专业原创文章范文 ·教育管理原创文章范文 ·市场营销原创文章范文 ·计算机专业原创文章范文
·物流管理专业原创文章范文 ·小学教育专业原创文章范文 ·行政管理专业原创文章范文 ·土木工程管理原创文章范文 ·财务会计专业原创文章范文 ·信息管理信息系统原创范文
·新闻学专业原创文章范文 ·眼视光技术原创文章范文 ·播音与主持原创文章范文 ·广告学专业原创文章范文 ·表演专业原创文章范文 ·动画专业原创文章范文
·视觉传达设计原创文章范文 ·数控技术专业原创文章范文 ·录音艺术原创文章范文 ·光机电应用技术原创范文 ·机电一体化原创文章范文 ·印刷技术专业原创文章范文
·动漫设计与制作原创范文 ·软件技术专业原创文章范文 ·书法学专业原创文章范文 ·应用电子技术原创文章范文 ·电子信息工程技术原创范文 ·机械专业原创文章范文
·酒店管理专业原创文章范文 ·旅游管理专业原创文章范文 ·文化产业管理专业原创范文 ·体育教育专业原创文章范文 ·通信工程专业原创文章范文 ·护理专业原创文章范文

本专业推荐:带proteus仿真程序的文档设计范文  原创文档范文点击进入 → 自动化单片机相关的原创文档范文

温度监控系统的设计(五)

本文ID:LW5813 ¥
;在开发PC上位机的通信程序中,人们常用的编程语言可分为3类:(1) 直接面向底层硬件的汇编语言。(2) DOS环境下的高级编程语言,如: C语言等。(3) Windows环境下的高级编程语言,如:VC++等。而在这3种方式中Windows环境下的串口编程以其设备无关性,可移植性以及界面友好等特征而得到广泛应用。同时在Windows操作系统已经占..
;在开发PC上位机的通信程序中,人们常用的编程语言可分为3类:(1) 直接面向底层硬件的汇编语言。(2) DOS环境下的高级编程语言,如: C语言等。(3) Windows环境下的高级编程语言,如:VC++等。而在这3种方式中Windows环境下的串口编程以其设备无关性,可移植性以及界面友好等特征而得到广泛应用。同时在Windows操作系统已经占据统治地位的情况下,欲开发良好的通信程序,利用Windows环境下的高级语言已渐成为必然的选择。
开发Windows环境下的串口通信程序主要有以下2种方法:
 (1) 利用Windows API(Application Program Interface)用户程序接口函数;
 (2) 利用ActiveX控件;
后者的主要特点是简单易学,但前者的功能更为强大控制手段更为灵活。

6.3.2 PC软件通信方式的选择
 在Win32环境下串行通信有两种:主要方式即同步方式,异步方式两种方式有各自的特点。在软件设计时应根据实际情况选择合适的方式。
(1)同步方式
 在同步方式中,读串口的函数试图在串口的接收缓冲区中读取规定数目的数据,直到规定数目的数据全部被读出或设定的超时时间已到时才返回。例如:(以C++ Builder编程语言为例下同)
……………………
……………………
COMMTIMEOUTS cto;
int timeConstant, timeMutiplier;
cto.ReadTotalTimeoutConstant = timeConstant; //设置总超时常数
cto.ReadTotalTimeoutMultiplier = timeMutiplier; //设置总超时系数
SetCommTimeouts(m_hFile,&cto); //超时设置
…………………………
…………………………
ReadFile (hComport,inBuffer,nWantRead,&nRealRead,NULL);//读串口
…………………………
…………………………
COMMTIMEOUTS结构用于设置超时,指定读写函数的等待时间
在ReadFile 函数中hComport 为待读串口句柄;inBuffer 为输入缓冲区大小;nWantRead 为每次调用ReadFile 时,函数试图读出的字节数;nRealRead 为实际读出的字节数;最后一个参数值NULL 代表ReadFile将采用同步文件读写方式。
(2)异步方式
 异步方式中,利用Win32 的多线程结构,可以让串口的读写操作在后台进行,而应用程序的其它部分在前台执行例如:
……………………
……………………
……………………
CreateFile(lpszPort, //打开串口
GENERIC_READ|GENERIC_WRITE,
0,
0,
……………………
……………………
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, //允许异步操作
0);
OVERLAPPED lpOverlapped;
COMMTIMEOUTS cto;
int timeConstant, timeMutiplier;
cto.ReadTotalTimeoutConstant = timeConstant; //设置总超时常数
cto.ReadTotalTimeoutMultiplier = timeMutiplier; //设置总超时系数
SetCommTimeouts(m_hFile,&cto); //超时设置
lpOverlapped.hEvent=CreateEvent (NULL.TRUE,FALSE,NULL);
……………………
……………………
……………………
ReadFile (hComport,inBuffer,nWantRead,&nRealRead,&lp Overlapped); //读串口
……………………
lpOverlapped 是1个OVERLAPPED 结构变量,OVERLAPPED 结构用于指出读写操作与其它操作的重叠为了实现线程间同步与通信,上面的代码中用CreateEvent 函数产生1 个人工复位事件,并将其句柄赋予lpOverlapped的hEvent成员这样,在异步读写完成时,Windows95发送该事件信号。
(3)两种方式的比较
 异步方式利用多线程结构来监视通信设备,其最大优点是程序对接收数据具有自主觉察能力。一旦通信线程查询到数据已发送到串口上,线程自动向应用程序发送一个数据接收到的消息,应用程序可用该消息来读取通信设备传来的数据。并且使用通信线程还不占用CPU时间,这样系统实际上具有了同时控制多个通信设备(如MODEM)的能力。因此在对系统强壮性要求较高的场合下应采用异步方式。
 异步方式的优点也恰是同步方式的缺点。使用同步方式时容易发生线程阻塞,从而使系统性能下降。但在某些场合下,该缺点可以通过一些措施尽可能地减小,而其简单易用的优点却是很好地体现出来。如果不考虑Win95的进程和线程的问题,仅在串口有数据时,去读串口缓冲区就可以了。此时确定串口读取的时机,握手协议及软件纠错的实现是程序员应考虑的主要问题,也是减小线程阻塞所带来的负面影响的主要措施。
可以采用同步转输方式的场合有如下一些特点:
 ① 何时转输数据由PC机来决定,下位机只是被动接收并执行命令。
 ② 有限时间内,PC机命令可以执行完毕并返回结果。而不会使PC机处于长时间等待。
 ③ 每次所转输的数据的长度是已知的,所转输的数据量是有限且比较小。
我们在开发串行通信程序时,分别应用这两种方式开发都获得了成功。鉴于应用异步方式的安全性和普遍性

6.3.3具体实现方法
下面以C++ Builder为例,叙述PC机通信软件的实现过程:
(1)打开串口
 在Win32中,串口和其他通信设备是作为文件处理的。串口的打开并闭读取以及写入所用的函数与操作文件的函数相同。
通信会话由调用CreateFile 函数打开串口开始,CreateFile 以读访问权限,写访问权限或读写访问权限“打开串口”并设定了对其是异步操作方式。还是同步操作方式调用该函数打开串口进行读写操作的例子如下:
mHandle = CreateFile(lpszPort, //串口名
GENERIC_READ|GENERIC_WRITE, //允许读/写
0, //独占方式串口不能共享
NULL, //安全性属性一般设为0
OPEN_EXISTING, //串口是已存在的不能建新端口
lpOverlapped, //异步方式
0 //串口无模板文件应设为0
);
如果调用成功函数返回串口的句柄赋给Handle,如果调用失败则函数返回INVALID_HANDLE_VALUE。
(2)初始化串口
 对串口的初始化工作包括对波特率,数据位,停止位,奇偶校验位I/O 缓冲大小以及超时等参数的设置。在调用API 函数进行串口初始化时,波特率

首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/11/11

温度监控系统的设计(五)相关范文
上一篇:电子相关课题仿真及程序 下一篇:免费文档范文--同步电机模型的MAT..
点击查看关于 免费 文档范文 温度 监控系统 设计 的相关范文题目 【返回顶部】
精彩推荐
电气工程自动化原创范文  电子商务原创文章范文
人力资源专业原创文章范文 土木工程原创文章范文
工商管理专业原创范文    药学专业原创范文
汉语言文学专业原创范文  会计专业原创文章范文
计算机技术原创文章范文  金融学原创文章范文
法学专业原创文章范文   市场营销专业原创范文
信息管理专业原创文章范文 学前教育专业原创范文
公共事业管理专业原创范文 英语专业原创范文
教育管理专业原创范文   行政管理专业原创范文
热门范文

关于我们 | 联系方式 | 范文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士文章范文


范文同学网提供文档范文,原创文章范文,网站永久域名www.lunwentongxue.com ,lunwentongxue-范文同学网拼音首字母组合

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2024 范文同学网 版权所有