0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于W77E58单片机和68HC908MR16芯片实现串行通信监控系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:刘慧文,苏建徽 2021-05-05 10:05 次阅读

引言

Winbond公司的新型单片机W77E58,内含2个增强型串口和32KB大容量 Flash存储器。指令集与51系列单片机完全兼容,非常适合在智能化监控系统中使用。本系统将3台单相逆变器联接成令牌网,采用标准RS485接口与逆变系统及上位机同时进行串行通信,能够实时地在液晶屏或上位机上显示逆变系统的运行状态,并可以方便地对系统参数进行修改。

1 系统硬件设计

图1所示为W77E58监控系统单机双串口通信的硬件框图。该电路符合最简单的RS485总线接口标准。其中逆变系统采用Motorola公司的电机控制专用芯片68HC908MR16(以下简称MR16)作为主控芯片。该芯片内含一个标准的可编程串行通信接口SCI模块,通过RS485接口芯片MAX3082与W77E58的串行口0进行通信。同时,W77E58串行口1通过MAX3082传输的数据,经过一个RS485到RS232的电平转换器与上位机进行通信。通信电路都采用了光耦隔离。

pIYBAGCKFbmABxE_AAA2H8MBplc488.png

图1 W77E58监控系统单机双串口通信硬件框图

图1中使用Maxim公司的MAX3082作为RS485接口芯片,适用于半双工通信。它采用平衡驱动和差分接收,具有抑制共模干扰的能力,可用于恶劣环境中,最大通信距离达1200m。它具有发送使能和接收使能控制。当使能无效时,发送和接收的输出端呈高阻状态。使用MAX3082构成通信系统时,最大通信速率为0.125Mb/s,传输线上最多可挂128个收发器

本系统采用非编码键盘,拟用四个键:OK键、CANCEL键、UP键、DOWN键。采用一键复用技术使这四个键完成系统设定、参数修改、运行状态显示等功能。

这里使用的液晶显示器LCD为CAG1264-4点阵式液晶。该液晶内带亮度可调的背光源,轻盈超薄、编程灵活,整屏可以显示8×4个国标汉字或16×4个ASCII码。硬件接口采用8位并行数据格式,握手协议简单可靠。

由于工业上常用到三相交流电,所以本系统还具有将三台单相逆变器经过组网,自同步实现三相交流输出的功能。如图2所示,三台单相逆变器串行口输出经过连接,组成一个简单的令牌网,然后通过RS485到RS232的电平转换器统一由上位机进行管理控制。

pIYBAGCKFbOAVZWMAAAOP6F74sM792.png

图2 多机联网硬件结构框图

2 串行口介绍及初始化设置

本通信系统中,我们规定,每1帧数据为10位:1位起始位,8位数据位,1位停止位。波特率均设置为9600bps。

2.1 W77E58串口

W77E58单片机其串口增强型特征在于特有的地址自动识别和帧出错诊断功能。需要注意的是,串口0可以使用定时器T1或定时器T2作为波特率发生器;而串口1只能使用定时器T1作为其波特率发生器。下面以串口0为例,对W77E58串口的工作过程进行简单介绍。

串口0通过引脚RXD(串行数据接收端)和TXD(串行数据发送端)进行串行通信,可同时发送和接收数据,具有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址。串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的,发送数据完毕或接收到数据都会由硬件置位发送中断标志TI或接收中断标志RI。值得注意的是,中断标志TI、RI均需由软件来清零。串口1的工作过程和串口0相类似,只需对其相应的寄存器及标志位进行类似操作即可。W77E58串行口是可编程接口,对它初始化编程只需对特殊功能寄存器SCON或SCON1和电源控制寄存器PCON写入相应的控制字即可。这里使用定时器T2作为串口0的波特率发送器,使用定时器T1作为串口1的波特率发生器。波特率均设为9600bps。

2.2 MR16串口

MR16带有的1个可编程串行通信接口SCI模块,支持MCU与外设之间采用全双工、异步、NRZ(非归零)格式进行串行通信。它具有2个I/O引脚RXD和TXD;有2个物理上独立的,但占用同一地址的SCI数据寄存器SCDR。SCI模块为接收器和发送器提供独立的中断请求和中断向量。如果SCRIE位被置位,当SCI接收到一个完整的数据帧,并将数据传送到SCDR,就会置位SCRF标志并启动一个接收中断;如果 SCTIE位被置位,并将数据由SCDR传送至发送移位寄存器时,就会置位标志SCTE产生一个发送中断。在读取SCDR中的数据或写入SCDR新的数据后,SCRF和SCTE会被自动清零,无需软件操作。SCI模块具有一个可编程的波特率发生器,可产生32种不同的波特率,只需对波特率寄存器SCBR进行设置即可。

2.3 上位机串口

由于上位机串口采用的是RS232标准接口,所以需要1个RS485与 RS232的电平转换器才能实现与下位机的通信。这里,采用的电平转换器件是牛顿-7520,输入电压范围为10 ~ 30V,允许的频率范围为300Hz ~ 115kHz。

3 通信协议

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

◆ 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码发送。这样可区分这两类信号,在接收端分别将它们解码处理。

这里给出了W77E58串口0查询发送程序、中断接收程序及上位机的查询接收程序,程序流程如图3、4、5所示。MR16通信模块包括查询接收程序和查询发送程序,程序流程类似于图3;W77E58串口1通信模块包括中断接收程序和查询发送程序,程序流程与串口0相类似,这里都不再给出。

pIYBAGCKFayAGQZ8AAAo8p9xFEg866.png

图3 W77E58串口0查询发送程序

o4YBAGCKFaaAT5acAABIiORV068984.png

图4 W77E58串口0中断接收程序

o4YBAGCKFaCAQ9jnAAAhho6F1Xw355.png

图5 上位机的查询接收程序

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620845
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161992
  • 监控系统
    +关注

    关注

    21

    文章

    3612

    浏览量

    169283
收藏 人收藏

    评论

    相关推荐

    HC908系列单片机开发编程工具用户使用手册

    本帖最后由 luna 于 2011-3-3 12:12 编辑 本编程器利用Motorola 68HC908系列单片机MON模式,通过PC串口实现在线编程、调试。用户在设计电路时,增加一个在线
    发表于 03-02 13:13

    基于W77E58单片机的光伏并网电站智能群控器设计

    本帖最后由 luna 于 2011-3-3 12:04 编辑 研制了一种基于Winbond公司W77E58单片机的光伏并网电站智能群控器,该群控器由显示模块、通讯模块、时钟模块、报警模块以及
    发表于 03-02 15:25

    怎么在元器件库里增加单片机w77e58

    怎么在元器件库里增加单片机w77e58
    发表于 03-14 21:29

    W77E58芯片能否用STC89C52来代替

    最近要做一个USB通信的,但是发现程序与硬件的搭配是用W77E58芯片来做的,能否用C52来代替吗?
    发表于 08-24 13:51

    W77E58在RTU遥信单元中的应用

    重点介绍采用MCS-51系列兼容高速单片机W77E58,充分利用其丰富的外部功能和结构特点,使用硬件电路锁存保留后以原始状态身份与实时状态信号经数字比较器处理来判别开关量信号
    发表于 04-16 14:15 28次下载

    MC68HC908QT2,MC68HC908QY1,MC68

    MC68HC908QT2,MC68HC908QY1,MC68HC908QT1中文资料,数据手册 MC68HC908QT2、MC68HC908
    发表于 04-24 22:08 6次下载

    增强型51系列单片机W77E58的存储器访问

    W77E58是Winbond公司推出的新一代增强型51系列单片机,文中介绍了W77E58对存储器访问的特点,并举例给出多种有关的应用程序实例.
    发表于 04-28 13:50 26次下载

    基于68HC908MR16单片机的光伏正弦波逆变电源

    摘要:介绍了一种基于MOTOROLA公司生产的68HC908MR16单片机的光伏正弦波逆变电源。该系统应用SPWM技术将经太阳电池阵压,逆变为标准的正弦单相220V、50Hz交流电压,同时采用新型的数
    发表于 07-14 14:29 37次下载

    基于68HC908MR16单片机的光伏正弦波逆变电源

    基于68HC908MR16单片机的光伏正弦波逆变电源   摘要:介绍了一种基于MOTOROLA公司生产的68HC908MR16单片机的光伏正弦波逆
    发表于 07-08 10:34 856次阅读
    基于<b class='flag-5'>68HC908MR16</b><b class='flag-5'>单片机</b>的光伏正弦波逆变电源

    基于68HC908MR16单片机的空间矢量控制变频电源

    基于68HC908MR16单片机的空间矢量控制变频电源 摘要:介绍了一种基于空间矢量PWM算法的变频电源的实现方式。系统采用
    发表于 07-11 10:40 556次阅读
    基于<b class='flag-5'>68HC908MR16</b><b class='flag-5'>单片机</b>的空间矢量控制变频电源

    W77E58单片机控制电路原理图

    W77E58单片机控制电路原理图 原理图详细说明详见以下链接: 基于MCU的智能定位报警拐杖研究
    发表于 05-18 15:26 3714次阅读
    <b class='flag-5'>W77E58</b><b class='flag-5'>单片机</b>控制电路原理图

    基于MotorolaMC68HC11单片机与微机的串行通信设计

    基于MotorolaMC68HC11单片机与微机的串行通信设计
    发表于 10-16 08:50 16次下载
    基于MotorolaMC<b class='flag-5'>68HC</b>11<b class='flag-5'>单片机</b>与微机的<b class='flag-5'>串行</b><b class='flag-5'>通信</b>设计

    基于W77E58单片机和EPM7128芯片实现雷达网络测控系统的设计

    系统单片机模块采用Winbond公司的高性能51兼容内核单片机W77E58实现系统控制。该
    的头像 发表于 05-11 07:35 1526次阅读
    基于<b class='flag-5'>W77E58</b><b class='flag-5'>单片机</b>和EPM7128<b class='flag-5'>芯片</b><b class='flag-5'>实现</b>雷达网络测控<b class='flag-5'>系统</b>的设计

    基于W77E58单片机和Neuron 3150实现图像采集系统的设计

    作者采用神经元芯片Neuron 3150并配合W77E58单片机系列开发了低成本的图像采集节点,并能通过上位机向用户发送手机短信,有效地弥补了现在的智能住宅的不足。
    的头像 发表于 03-19 10:37 2515次阅读
    基于<b class='flag-5'>W77E58</b><b class='flag-5'>单片机</b>和Neuron 3150<b class='flag-5'>实现</b>图像采集<b class='flag-5'>系统</b>的设计

    W77E58中文数据手册

    W77E58中文数据手册分享。
    发表于 04-13 11:21 40次下载