没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
8.用C语言或汇编语言实现串口通信(PC和单片机间)
上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC
机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC
机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据
和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由
PC机对这些数据进行处理或显示
1 硬件电路的设计
MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内
部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和
PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)
和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有
两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发
送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51
机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片
MAX232进行转换。电路如图1所示。
硬件连接时,可从MAX232中的2路发送器和接收器
中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。
1 / 14
总体设计按照整体设计思路方案绘制原理图如下所示:
2 系统软件设计
软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,
但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定
通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发
送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数
据。采用RS-232串口异步通信,
1 上位 PC 机与下位单片机异步串行通信的通信协议
为了保证可靠的通信,必须有一套完善的通信协议。分布式控制系统中的每台单片机
均有唯一的番号。通信开始时,先由PC机呼叫被叫单片机的番号,单片机在接收到微机的
呼叫后,首先判断是不是自己的番号,如果是,则发送呼叫应答信号,否则不予理睬。微机
在接收到呼叫应答信号之后,将向单片机发出通信命令字符串。以下是上位PC机协议的格
式:
单片机号
单片机号
命令码
命令码
停止标志
其中,单片机号代表现场第几台单片机,占用1个字节,发送两次的目的是为了防止
干扰;命令码则代表上位机向下位机发布的工作命令,它也占用1个字节,发送两次的目的
也是为了防止干扰。而停止标志则表明一次命令发送完毕。使用时可依据该标志判断上位机
的命令是否发送完毕。
下位机协议格式如下:
数据块
校验位
该格式中,数据块为下位机上传到上位PC机的数据。校验位则用于PC机对收到的
数据进行奇偶校验(占1个字节)。校验正确后,可将数据写入内存,否则发出数据传输错
误信息,以要求单片机重新传输数据。
另外,作为一个完整的通信协议,只有上述约定还不够,还必须在发送和接收数据的
时间间隔上加以限制。否则,很可能由于某些原因而造成无限制的等待对方应答,使整个系
统处于工作不正常状态,或者延误其它动作的处理。具体时间限制可根据通信内容、CPU
处理速度,再加上适当的余量来确定。
2 单片机通信程序设计
单片机的数据通信由串行口完成,定时器T1 作为波特率发生器,其波特率要与PC 机一
致。数据的传送格式为1 位起始位、8 位数据位和1 位停止位。采用中断方式发送和接收数
据,定时器T1 设置为工作工作模式2,串行口设置为工作方式3,由第9位判断停止。具体的
程序流程图见下。
剩余13页未读,继续阅读
资源评论
apple_51426592
- 粉丝: 9551
- 资源: 9658
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功