当前位置:首页 > 单片机 > 单片机
[导读]引 言:Winbond公司的新型单片机W77E58,内含2个增强型串口和 32KB大容量Flash存储器。指令集与51系列单片机完全兼容,非常适合在智能化监控系统中使用。本系统将3台单相逆变器联接成令牌网,采用标准 RS485接口与逆

引 言:

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的电平转换器与上位机进行通信。通信电路都采用了光耦隔离。

图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的电平转换器统一由上位机进行管理控制。

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上位机串口通信是指在上位机(通常是计算机或微控制器)与外部设备之间通过串行通信协议进行数据传输和通信的过程。在串口通信中,数据以位为单位按顺序传送,通常使用一个或两个物理线路(通常是两条线)来实现数据的发送和接收。

关键字: 上位机 串口通信

串口通信(Serial Communication)是一种常用的数据传输方式,它通过串行数据线逐位传输数据,具有成本低、简单易用、可靠性高等优点。在工业控制、通信设备、嵌入式系统等领域得到广泛应用。

关键字: 串口通信 嵌入式系统

串口通信是一种常见的通信方式,用于在不同设备之间传输数据。它通过串行数据线(通常是一对TXD和RXD线)在设备之间进行通信。串口通信具有简单、可靠、成本低等优点,因此在工业控制、嵌入式系统、数据采集等领域得到广泛应用。

关键字: 串口通信 串口编程

串口通信是一种常见的通信方式,主要应用于计算机和其他设备之间的数据传输。它的主要原理是利用串行数据传输的方式,将数据一位一位地按顺序传输,而不是同时传输所有的数据。下面我们来看看串口通信的主要原理以及如何提高其传输速度。

关键字: 串口通信 串口速度

串口通信是一种常见的通信方式,它通过串行方式传输数据。串口通信的原理相对简单,主要涉及到数据位的传输和接收。在串口通信中,数据按照一定的波特率(baud rate)逐位传输。通常,一个字节的数据由8位组成,所以传输一个字...

关键字: 串口通信 波特率

RS 232串口通信是一种常见的串行通信协议,广泛应用于计算机和其他设备之间的数据传输。它是由美国电子工业协会(EIA)制定的一种标准,规定了数据传输的物理层和部分数据链路层的规范。

关键字: RS 232 串口通信

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

STM32是一款由STMicroelectronics生产的微控制器系列,具有高性能、低功耗和丰富的外设资源。其中,串口通信是一种常用的通信方式,可以实现与其他设备之间的数据传输。

关键字: STM32 串口通信 微控制器

伴随物联网、车联网、人工智能等新兴应用领域的拓展和深化,智能家居、智慧楼宇、智慧城市和智能工业等行业快速发展,带动物联网无线模组需求释放,进而带动串口WiFi模块,BLE蓝牙模块以及ZigBee模块的需求增长

关键字: uart 串口通信 物联网

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯
关闭
关闭