新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于W77E58双串口通信的监控系统

基于W77E58双串口通信的监控系统

作者:时间:2012-04-05来源:网络收藏

3 协议

本系统中MR16与及上位机三方都既是发送方又是接收方,都工作在半双工模式。MR16和上位机的发送和接收均采用查询方式,0和1发送均采用查询方式,接收均采用中断方式。要想保证准确可靠,双方除规定好字符格式和波特率外,还要定义好通信协议。通过分析和实验,最后确定了MR16和之间通信以77E58为主。W77E58和上位机之间通信以上位机为主的“主从通信法”通信协议。下面以 W77E580和上位机为例,将这种通信协议介绍如下。

◆ W77E58串行口0通信协议(以W77E58为主机)
发送(查询方式):
fe+fe+fe+代码 ......请求回发相应代码的数据包
fe+fe+ef+代码+高字节+低字节+校验和 ......发送要修改的数据包
接收(中断方式):
fe+fe+aa+故障代码 ......接收故障代码
fe+fe+fe+代码+高字节+低字节+校验和
......接收要显示的数据包

◆ 上位机通信协议(以上位机为主机)
发送(查询方式):
fe+fe+站号 ......查询相应站点
fe+fe+fe ......请求回发要显示的数据包
接收(查询方式):
fe+fe+站号 ......接收回发校验站号
fe+fe+高字节+低字节+校验和
......接收要显示的数据包

协议里的斜体为包头码,黑体加下划线为命令码,站号即为多机通信时用于选择单相逆变器的令牌,每台单相逆变器的站号均不相同。数据包的包头均是 0xfe,0xfe。以W77E58串口0为例,当W77E58使用命令0xfe向MR16请求回发相应代码的数据包后,若接收到命令0xaa,则表明有故障,然后根据收到的故障代码进行相应的故障显示;若收到命令0xfe,则把收到的参数值送给液晶显示器进行显示。

从数据包格式可以看出,MR16和W77E58之间通信以W77E58为主,W77E58和上位机之间通信以上位机为主,MR16的发送和接收都是由W77E58串口0来控制的,而W77E58串口1的发送和接收又都是由上位机来控制的,这种主从方式是RS485标准中常采用的模式。这里通过发送包头的办法来实现数据同步,发送方每次都必须先发送包头,然后再发送数据;接收方只有在正确接收包头后才开始接收数据。当接收数据出错或发送的数据丢失时就放弃本次接收,在下个主循环重新通信。这样可以在一次通信出错后自动恢复,同时避免“死机”现象的发生。

4 软件实现

对该监控通信系统通用性的考虑,我们采用了模块化设计方法,将通信程序作为主程序的一个模块来处理。因为BCD码是以数字“0”到“9”开头的,而控制命令则以字母“A”到“F”开头,在发送端将数据转化成BCD码发送。这样可区分这两类信号,在接收端分别将它们解码处理。

MR16通信模块包括查询接收程序和查询发送程序,程序流程类似于图3;W77E58串口1通信模块包括中断接收程序和查询发送程序,程序流程与串口0相类似,这里都不再给出。

参考文献
1 WINBOND electronics corp. 8-Bit Microcontroller——W77E58. 2001.7
2 Fail-Safe, High-Speed (10Mbps), Slew-Rate-Limited RS-485/RS-422 Transceivers,MAXIM Document , 1997
3 Advance Information. MC68HC908MR16/MC68HC908MR32?Rev. 4.0. MOTOROLA Document, 2000
4 李朝青. PC机及单片机数据通信技术. 北京:北京航空航天大学出版社,2000


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭