用pcomm开发pc机与单片机的通信程序

用pcomm开发pc机与单片机的通信程序

ID:24672353

大小:50.50 KB

页数:6页

时间:2018-11-15

用pcomm开发pc机与单片机的通信程序_第1页
用pcomm开发pc机与单片机的通信程序_第2页
用pcomm开发pc机与单片机的通信程序_第3页
用pcomm开发pc机与单片机的通信程序_第4页
用pcomm开发pc机与单片机的通信程序_第5页
用pcomm开发pc机与单片机的通信程序_第6页
资源描述:

《用pcomm开发pc机与单片机的通信程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用PComm开发PC机与单片机的通信程序

2、第1...lun编写的PC机通信程序来实现上位机和下位机异步串行通信的方法,给出了Pm编程实例和下位机程序模块流程图。关键词:分布式控制系统;异步;串行通信;Pm在由一台PC机(上位机)和多台单片机(下位机)构成的分布式控制系统中,单片机主要负责实时数据采集,并将初步处理后的数据通过串行口传送给PC机以便由PC机串行口的命令对单片机进行控制,同时通过打印机或显示器向用户随时提供各种统计报表和整个控制过程的具体数据。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键

3、,本文将介绍在提高通信的准确性、可靠性和效率的前提下,用PComm开发PC机与单片机的通信程序的解决方案。1 通信协议为了保证可靠的通信,必须有一套完善的通信协议。分布式控制系统中的每台单片机均有唯一的番号。通信开始时,先由PC机呼叫被叫单片机的番号,单片机在接收到微机的呼叫后,首先判断是不是自己的番号,如果是,则发送呼叫应答信号,否则不予理睬。微机在接收到呼叫应答信号之后,将向单片机发出通信命令字符串。以下是上位PC机协议的格式:单片机号单片机号命令码命令码停止标志 其中,单片机号代表现场第几台单片机,占用1个字节,发送两

4、次的目的是为了防止干扰;命令码则代表上位机向下位机发布的工作命令,它也占用1个字节,发送两次的目的也是为了防止干扰。而停止标志则表明一次命令发送完毕。使用时可依据该标志判断上位机的命令是否发送完毕。下位机协议格式如下:数据块校验位该格式中,数据块为下位机上传到上位PC机的数据。校验位则用于PC机对收到的数据进行奇偶校验(占1个字节)。校验正确后,可将数据写入内存,否则发出数据传输错误信息,以要求单片机重新传输数据。另外,作为一个完整的通信协议,只有上述约定还不够,还必须在发送和接收数据的时间间隔上加以限制。否则,很可能由于某

5、些原因而造成无限制的等待对方应答,使整个系统处于工作不正常状态,或者延误其它动作的处理。具体时间限制可根据通信内容、CPU处理速度,再加上适当的余量来确定。2 单片机通信程序设计设计单片机通信程序时,必须充分发挥单片机的效率。由于单片机多应用于实时性较强的控制场合,因此,应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑,笔者在设计单片机通信程序时,将通信程序分为接收中断处理程序、发送中断处理程序和通信处理程序3部分,并将这3部分程序巧妙地进行组合,从而构成整个单片机的

6、通信程序。2.1接收中断处理程序接收中断处理程序主要负责接收微机发送到单片机接收缓冲区(不对数据进行处理,以减少中断占用的时间)的数据,当接收到规定的字符数或在一定等待时间内无后续数据之后,置接收完毕标志,以表明接收缓冲区中有待处理的数据并请求通信处理程序对其进行处理。其流程图如图1所示。2.2发送中断处理程序发送中断处理程序主要负责向微机发送数据,发送中断一般处于禁止状态,只有在通信处理程序将需要发送的数据写入单片机的发送缓冲区,并将发送中断置为允许方式后,发送中断才开始工作,并将缓冲区数据逐一发送给微机。当发送完指定长度

7、的数据后(发送缓冲区为空),发送中断处理程序将发送中断置为禁止(关闭)状态,直到通信处理程序将其再一次开放。其流程如图2所示。2.3通信处理程序考虑到尽量减少通信中断程序所占用的CPU时间,通信处理程序被放在普通主循环中调用。只有在接收到上位机送来的一串数据,且接收完毕标志为“ON”时,才能真正进行处理,否则不进行处理。这样就可利用送信后等待微机回答的时间进行别的处理,从而消除了空等待时间,提高了CPU的利用率。通信处理程序可根据通信处理状态的不同来分别执行不同的路径。在进入相应路径后,首先对接收缓冲区的内容进行正确性检查,

8、检查正确后再根据通信要求或协议规定对缓冲区的内容进行处理(包括内存的写入和读出),同时重新组织数据到发送缓冲区以向微机发送数据,最后退出通信处理程序以执行其它的程序。待接收中断程序重新接收到数据并将接收完标志置为“ON”后,可重新进入通信处理程序进行处理。3 PC机通信程序设计在VC++6.0环境下,利用PC机串口进行通信的常用方法有两种第一是调用WindowsAPIAppli-cationProgramInterface函数;第二是使用ActiveX的MSComm控件。第一种方法需声明及调用许多API函数,十分烦琐。

9、而第二种方法是将API函数封装起来,这种方法虽较为简便,但不能满足复杂情况下的通信要求。本文将介绍另外一种用PComm处理PC机的串口通信方法。PComm是一种用于处理多进程/多线程的串口通信软件开发工具,它提供了许多基于API函数的命令集来处理串口通信,可以在VisualC++、Visu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。