- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广州周立功单片机发展有限公司 Tel 020 Fax http://
PC MCU串行通信的应用设计方法
摘要 本文详细地介绍了在 Win32环境下通过调用通信 API 函数以异步方式来实现 PC机和 MCS 51
单片机之间的通信过程 给出了软硬件设计机理以及详细的通信协议说明 发表此文目的希望能够起到抛
砖引玉的作用 欢迎各位热心的网友帮助我们提出更好的改进意见 以期达到资源共享 请与
tech@联系!
一 前言
RS232C串行通信在控制领域里应用得很广泛 但在实际应用中又会因所控制的对象 所解决的问题不
同而各具特点 本文所涉及的是 传输距离不超过 15米 所传输数据量较小的 PC机和单片机的通信 如
PC机对 IC卡的读写 PC机对单片机烧写器的数据转输以及其它一些具有类似特点的智能化仪器和仪表中
的数据通信
下面就硬件连接和软件设计两大问题分别展开详细论述
二 硬件连接
正如前言所述 本文论述的对象是近程小批量的数据通信 所以我们在设计时 硬件上采用 3线制
RXD TXD GND 软握手的零 MODEM方式 即 将 PC机和单片机的 发送数据线 TXD 与 接
收数据 RXD 交叉连接 二者的地线 GND 直接相连 而其它信号线如握手信号线均不用 而采用
软件握手 这样即可以实现预定的任务 又可以简化电路设计 节约了成本
但由于 RS232C是早期为促进公用电话网络进行数据通信而制定的标准 其逻辑电对地是对称的 与
TTL MOS逻辑电平完全不同 逻辑 0电平规定为+5 +15V之间 逻辑 1是电平为 -5 -15V之间 因
此 在将 PC机和单片机的 RXD和 TXD交叉连接时 必须进行电平转换
图 1即为通信时的硬件连接图 其中器件 HIN232完成逻辑电平转换的任务
图1PC MCU串行通信硬件连接图
注注注注 在 PC机中 9针 RS232接口中 2线 RXD 3线 TXD 5线 GND 而在 25针的 RS232接口中 3线 RXD 2线 TXD 7线 GND
- 1 - 广州周立功单片机发展有限公司 Tel 020 Fax http://
三 软件设计在进行数据通信的软件设计时 必须解决好两个方面的问题 一是可靠性 二是速度 而这两方面的
问题 可靠性是第一位的 速度只能是在可靠的基础上的速度 可靠快速转输的实现 需要上 下位机软
件以及通信协议等各个环节的可靠和其间的相互配合
下文将从通信协议的设计 PC上位机软件设计以及单片机软件设计 3部分叙述通信程序的实现过程
1. 通信协议的设计
1. 1 通信协议概述在设计 PC MCU通信协议时 需说明一点 在本系统的实际通信中 PC机永远是主控者 单片机
只是被动接收者 因此 通信协议较双方互为主控者时简单本通信协议的设计思想是基于帧传输方式 即在向 RS232串口发送命令信号 应答信号及数据信号时
是一帧一帧地发送的 为了使数据快速可靠地传输 将每一帧数据唯一对应一命令帧 此时转输数据即执
行命令 具体如下
1 在 PC读数据时 遵循 读命令 等数据 报告 即 PC下达一命令 等待接收数据 再据所接
收数据的正误向应用程序报告此命令的执行情况
2 在 PC写数据时 遵循 写命令 等回应 报告 即 PC下达一写命令 此时所要写的数据含于
此命令中 等待单片机发来的 已正确接收 的回应信号 并向应用程序报告此命令执行完毕
3 如果在转输过程中 其间 PC或 MCU所接收任何一帧信号出现错误时 均会向对方发送重发此
帧信号的请求 如果连续三次转输失败 则退出通信 并向应用程序报告
1.2 通信协议详细说明
1 .2 .1 信号帧分类在数据通信时 所使用的信号帧可分以下几类1 读命令帧 当 PC读数据时 PC向 MCU发送的命令信号2 写命令帧 当 PC写数据时 PC向 MCU发送的命令信号 内含所要写的数据3 数据帧 当 PC读数据时 MCU向 PC发送的内含数据信息的信号4 正回应帧 当 PC写数据时 MCU向 PC报告数据已正确接收的信号5 重发命令帧 当 PC读/写数据时 MCU所接收的信号帧 读/写命令帧 有误时 向 PC发出的
请求重发信号
6 放弃命令帧 当 PC读/写数据时 出现了使程序无法正常执行时 PC或 MCU向对方发出的退出
通信的通知信号
1. 2. 2 信号帧格式
1 读命令帧格式
帧头标志 帧类型 器件地址 起始地址
长度 校验和 帧尾标志帧头标志1 Byte 表示此数据包属于本串口通信协议 并为是否接收此包数据的标志帧类型 1Byte 所用信号帧的识别标
文档评论(0)