供热换热站预付费系统通信技术的应用的研究.docVIP

供热换热站预付费系统通信技术的应用的研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
供热换热站预付费系统通信技术的应用的研究

供热换热站预付费系统通信技术的应用的研究   [摘要]Windows CE人机界面是面向移动计算机和嵌入式应用的操作系统,具有友好的用户界面和强大的通信能力,RS-232串行通信是WinCE支持的最基本通信方式。本文将RS-232串行通信技术应用于供热领域换热站的预付费智能控制系统,设计了在WinCE操作系统下,实现RS-232人机界面与读卡器之间以及$50非接触射频卡与读卡器之间的通信程序,较好地解决了串口之间的通信问题,最终利用S8读卡器软件平台对编写程序做以验证,为从事串口程序开发者提供了参考。   [关键词]Windows CE 串行通信 读卡器 S50非接触射频卡   目前,国内供热领域对公建单位管理模式有所改进,形成一种换热站预付费智能控制系统解决方案,而预付费智能控制系统离不开人机界面与读卡器、读卡器与IC卡之间的通信。串行通信是计算机通信的重要方式,以其设备价格低廉、连接简单、技术成熟等优点得到广泛应用。Windows CE是微软推出的一个多任务、有友好界面、强大通信能力的32位开放实时操作系统,WinCE系统以其良好的性能得到越来越广泛的应用。   二、WinCE环境下的串行通信   串行端口和应用程序的沟通是通过串行装置驱动程序完成的,即通过操作系统中文件系统的应用程序开发接口存取串行装置驱动程序,以传送/接收信息和控制串行装置。一般通信串口软件结构如图1所示:   串行设备被视为用于打开、关闭、读写串行端口的常规、可安装的流设备。WinCE的通信函数和其他大多数Windows的通信函数相同,但WinCE不支持直接对串行端口的寄存器进行编程。所使用串行端口部分函数有:   2.1打开和关闭串口通信端口   打开串行端口使用函数CreateFile,若打开端口不存在,则CreateFile回传“ERROR_FILE_NOT_FOUND”信息,且用户被通知这个端口不存在。   打开串行通信端口的步骤如下:   (1)使用参数IpzPortName传入指定的串行端口名称。   (2)将参数dwShareMode设为0,表示不允许此COM口被其他应用程序同时打开。   (3)将参数dwCreationDisposition设为OPEN_EXISTING。   (4)将参数dwFlagsAndAttributes设为0,Windows CE只支持非交错式输入/输出。   //打开串行端口   hPort=CreateFile(Serealcom,//指定串口名称   0,//共享模式   OPEN_XISTING//打开方式   0);//串口属性   当应用程序使用串行通信端口通信完毕后,使用函数CloseHandle关闭串行通信端口。CloseHandle被呼叫之后,在串行端口通信被关闭和资源释放之前,会有2秒的延迟。   2.2设定串行通信端口   以DCB(device-control block)结构设定好串行通信端口,呼叫CreateFile函数打开一个有默认串行端口设定值的串行端口,使用GetCommState函数取得默认值,再使用SetCommState函数完成新值的设定,使用COMMTIMEOUTS结构设定读写操作的逾时值。   DCB PortDCB;//创建DCB   PortDCB.DCBlength=sizeof(DCB);//初始化   GetCommState(hPort,PortDCB);//取得默认port设置   PortDCB.BaudRate=1 15200;//传输波特率   PortDCB.Parity=NOPARITY;//校验位   PortDCB.StopBits=ONESTOPBIT;//停止位   对于串口通信端口,应用程序必须使用COMMTIMEOUTS结构来设定串口端口的逾时值。通常,配置超时值和配置串口类似。首先用Get CommTimeots函数获得当前串口的超时值,然后可以修改COMMTIMEOUT成员,最后用SetCommTimeouts函数设定超时值。   COMMTIMEOUTS CommTimeouts;//声明结构   GetCommTimeouts(hPort,CommTimeouts);//获得当前的超时值   //变更COMMTIMEOUT结构的设定值   SetCommTimeouts(hPort,CommTimeouts);//设定读写动作的逾时值   2.3读取/写入通信串口   读取通信端口使用ReadFile函数接收从其他末端的串联连接装置来的信息,需要注意的是WinCE不支持重叠I/O,所以如果在主线程进行大量读写串口操作时,有可能使整个程序陷入缓慢的串口等

您可能关注的文档

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档