MAX485实现PC机与单片机之间的串行通讯

合集下载

MAX485在PC机与单片机间通信的应用

MAX485在PC机与单片机间通信的应用
因为 RS - 485 接口具有良好的抗干扰性、速率 高、传输距离远等优点,使其成为首选的串行接口, 实现 PC 机一端发送数据单片机接收,或单片机发 送 PC 机接收( 半双工) ,并且保证发送数据的可靠 性和发生错误时的处理功能。而且,RS - 232 接口
在总线上只允许连接 1 个收发器,即单站能力,而 RS - 485 接口在总线上是允许连接多达 32 个收发 器,即具有多站能力,这样用户可以利用单一的 RS - 485 接口方便地建立起设备网络,在测控应用领域, 应用很广泛。因而本次设计选用了 RS - 485 接口 芯片与上位机进行串行通信。
Abstract: The paper discussed how to use MAX485 to realize the serial communication between PC and ATmega48 single chip microprocessor. It gives the related hardware design electric circuit and the software design thought. Key words: MAX485; ATmega48; serial communication
中图分类号: TN915 文献标识码: A 文章编号: 1009 - 2552( 2011) 06 - 0180 - 03
MAX485 在 PC 机与单片机间通信的应用
王 颖,吕显强,张 菁
( 大连海洋大学信息工程学院,大连 116023)
摘 要: 介绍采用 MAX485 芯片实现 PC 机与 ATmega48 单片机的串行通信,给出相关的硬件设 计电路和软件设计思想。 关键词: MAX485; ATmega48; 串行通信

利用MAX485实现PC机与单片机之间的串行通讯

利用MAX485实现PC机与单片机之间的串行通讯

利用MAX485实现PC机与单片机之间的串行通讯摘要介绍一种RS-485接口芯片MAX485,利用此芯片可以很方便地实现PC机与单片机之间的串行通讯,同时给出PC机与单片机实现多点通讯的实例。

关键词RS-485串行通讯多点通讯随着数据采集系统的广泛应用,通常由单片机构成的应用系统,如仪器仪表、智能设备等,都需要与PC机之间交换数据,实现与PC机之间的通讯功能,以充分发挥PC和单片机之间的功能互补,资源共享的优势。

以往常用的RS-232协议在很大程度上已不能满足设计的要求,如传输速率慢,传输距离短,传输信号易受外界的干扰等缺点。

本文介绍一种性能优越的RS-485接口芯片,以及如何利用此芯片实现单片机与PC机之间的远程通讯,并讨论将其功能进行扩充,实现PC机管理单片机阵列的功能。

1 RS-485协议简介及MAX485芯片介绍由于RS-232的种种缺点,新的串行通讯接口标准RS-449被制定出来,与之相对应的是RS-485的电气标准。

RS-485是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。

它采用差分信号进行传输;最大传输距离可以达到1.2 km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200 mV;最大传输速率可达2.5 Mb/s。

由此可见,RS -485协议正是针对远距离、高灵敏度、多点通讯制定的标准。

MAX485接口芯片是Maxim公司的一种RS-485芯片。

采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。

它完成将TTL电平与RS-485电平转换的功能。

其引脚结构图如图1所示。

从图中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。

RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD 和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B 时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。

基于RS485总线的PC与多个单片机通信的C语言程序

基于RS485总线的PC与多个单片机通信的C语言程序
思路:
PC方面:可以用MSCOMM控件先发一个字符表示接收地址,后延迟1ms,(注意PC端在485通讯在字符发送过程中一定要加延迟,这是我多次测试的总结,如果是用调试助手的话,他内部代码已经加过延迟了,就不必考虑这个问题)再发控制指令,初学者建议直接用调试助手
单片机方面:首先对接收数据进行核对,如果不是本地地址,放弃,如果是本地地址,在检测命令是否正确,如果正确,做出处理后返回PC本地地址并发送命令
{
while(RI==0);
RI=0;
if(SBUF==0x01) //发送指令
{
MAX485_DIR=1; //开发送
SBUF=AddressID;
while(TI==0);
TI=0;
SBUF=0x6f; //发送o
while(TI==0);
TI=0;
SBUF=0x6b; //发送k
MAX485_DIR=0; //开接收
sbit MAX485_DIR=P3^7;
main()
{
//****************通讯设置
SCON = 0xF0; //REN=1允许串行接受状态,串口工作模式3,SM2=1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80; //波特率提高一倍
IP=0x10; //串口优先级高
}
if(SBUF==0x00) //收
{
//这里怎么处理就看你自己要怎么做了,你没要求,我也不好怎么写,就自己写吧
}
}
}
程序调试通过,可以直接套用
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无(11.0592)

基于MAX485的双机通信系统设计

基于MAX485的双机通信系统设计

河南机电高等专科学校毕业设计论文论文题目:基于MAX485的双机通信系统设计系部电子通信工程系专业应用电子技术专业班级2004级应电043班学生姓名崔国贤学号*******指导教师董蕴华2007年4月15 日摘要本论文使用A T89S51单片机作为核心控制器件,通过一按键控制自身主从机模式的选择,在一个主机和一个从机模式下完成双方的数据传送,这给现代工业测控领域带来了新的技术,为集中处理各种数据奠定了基础。

这个数字通信系统主要由MAX485,BS207,74LS164及MAX232组成。

系统基于汇编语言,依照一定的协议,具有高速数据传送、直接数字控制、人工智能等特点。

该通信系统以RS-485串行标准总线接口进行连接,具有结构简单、体积小、可靠性高、灵活性强、价格低等优点。

也有门限效应的缺点。

关键词:MAX485;AT89S51;数字通信系统ABSTRACTThis paper with the AT89S51 the single a machine as the core controller piece.One key-pad of the electrical circuit controlled itself model.When one is active model and the other is passive model,the systerm could achieve commmunication of data,this brought the once new technique paved the way for intergrated managerment.It brought new technical to the measure and control realm of the current modern industry,This DCS(Digital Communication System) primarily consisted of MAX485 ,BS207,74LS164 and MAX232.It based on Assembly Language, depended on some protocol, had high speed data communication ,directly digital control ,artificial intelligence too. Its interface is RS-485 ,it has lots of advantages, such as the structure simple, small volume, high reliability, good flexibility, the price is low .One disadvantage of this DCS is no graceful degradation.Key W ords MAX485;AT89S51;DCS目录毕业设计任务 (I)摘要 (Ⅱ)绪论 (1)第1章数据通信基础 (2)1.1通信的分类及原理 (2)1.2串行通信 (2)1.3波特率及通信协议的设定 (4)第2章异步串行通信接口 (7)2.1 异步串行接口的分类 (7)2.2 RS-232及RS-422A与RS-423A总线标准芯片及接口 (8)2.3 RS-485总线标准芯片及20mA电流环串行接口 (11)第3章系统硬件电路的组成 (15)3.1 AT89S51简介 (15)3.2标准+5V电源电路及显示电路的分析与设计 (19)3.3A T89S51芯片程序烧写电路的分析与设计 (21)3.4 R S-232接口与RS-485接口转换电路分析与设计 (22)3.5 双机通信系统电路图及电路板的分析与设计 (23)第4章系统软件分析及系统调试 (25)4.1“主--从”机通信系统 (25)4.2程序流程图 (27)4.3设计结论 (30)第5章结束语 (31)致谢/参考文献 (32)附录 (34)绪论现代智能通信系统是在计算机、电子、通讯和网络技术飞速发展的基础上,通过在已知初始条件及其约束条件下构造一个控制模型,实现对多项物理量实施精确和优化控制通信的系统。

RS485-2

RS485-2

串行通信是计算机与外部设备进行数据交换的重要渠道。

由于其成本低,性能稳,遵循统一的标准,因而在工程中被广泛应用。

单片机以其优越的性价比和灵活的功能配置,PC 则以其丰富的软硬件资源,为实现串行数据传输提供了良好的条件。

本文是在此基础上,设计了一个利用RS- 485 进行长距离串行数据传输系统的硬件电路部分。

该系统利用PC 原有的RS- 232 标准的接口,经过RS- 232 点评与TTL电平的转换,接到MAX485 芯片上,而另一端的单片机上,利用了MAX485 芯片转换电平并提供RS- 485 标准接口。

中间通过双绞线进行传输,从而实现计算机与单片机的长距离串行通信。

2.概述RS- 232 串行通信是早期为促进公共电话网络通信而制定的标准,是目前异步通信中应用最广的标准总线,适用于数据终端设备和数据通信设备之间的接口。

然而,由于发送器和接收器之间具有公共信号地,因此不能使用双端信号,这样可能会使共模噪声耦合到信号系统中。

因此,设计者不得不使用较高传输电压进行传输,另外,这种传输方式的信号传输速度最高为20kB/s,最长距离仅为15m。

显然这样的传输速度和距离已不能适应现代网络通信的要求,为了使许多自身带有通信接口的设备能够在尽量降低硬件成本和减轻软件工作量的情况下实现长距离串行通信,笔者开发了一种利用RS- 485 同RS-232 进行接口来实现长距离串行通信系统。

使用RS- 485 通信标准,线路连接简单,实现容易,而且它使用通信双方不共地,具有充分平衡传输特点,有较强的抗干扰能力,传输速率高,传输距离可达1200 米。

利用PC 机现有的RS- 232 接口经过RS- 232/485 标准转换电路,与RS-485 总线连接,而在另一端单片机通过RS- 485 接口芯片与RS- 485 总线连接,从而实现PC 机与单片机之间的长数据串行通信。

单片机与PC 机串行通信的总体原理图如图1 所示。

图1 总体原理图3.硬件设计3.1 单片机与RS- 485 的接口电路设计单片机芯片发出的串行数据为TTL 电平,同时也只能接收TTL电平,因此在采用RS- 232C、RS- 422、RS- 485 标准时,必须进行电平转换(即进行TTL 电平与各种通信物理协议电平的相互转换)。

基于RS485总线技术的PC机与单片机多机通讯设计

基于RS485总线技术的PC机与单片机多机通讯设计
PC机接收一组数据子程序流程图如图 4 ( b). PC机在发送地址成功后 ,发送的控制命令字为 01H
(单片机发送数据命令 ) ,然后打开 r. txt文件 ,接收 的 10帧数据存放在 r. txt中 ,同时计算累加和. 接收 数据完成后 ,再接收单片机发送的累加校验和 ,把接 收累加校验和与 PC 机计算的累加和相比较 ,如相 同则发回 59H (“Y”的 ASCⅡ码 ) ,结束本次接收 ;否 则发送 4EH (“N ”的 ASCⅡ码 ) ,重新接收数据.
始化顺序如下 :
PC机发送一组数据子程序流程图如图 4 ( a).
(1)向 通 信 线 路 控 制 寄 存 器 LCR ( 2FBH ) 送 首先发送从机单片机的地址码 ,然后接收从机单片
80H ,即寻址波特率除数寄存器.
机回送的地址码 ,如相符则发控制命令字给从机. 控
(2)向两个波特率除数锁存器 (LSB 和 M SB )送 制命令字为 00H (单片机接收数据命令 )以及 01H
器 , R6作累加和寄存器用.
2. 1 通讯协议约定
2. 2 单片机通讯程序设计
● 系统中允许接有 64台从机 ,它们的地址分
串行口选择工作方式 1,其波特率由定时器 T1
别为 00 - 3FH.
的溢出率与 SMOD 位同时控制. 定时器 T1 则选操
● 地址 FFH 是对所有从机都起作用的一条 作模式 2, SMOD = 0波特率不增倍 ,单片机的振荡频
其它为非法命令.
发送该下位机的地址 ,此时所有下位机均中断响应 ,
● 每次收发数据块的长度为 10个字节.
比较总线上的地址是否与本机地址相符 ,如不符则
● 波特率设计为 2400 b / s,数据格式用 8 位 退出中断程序 ,相符则发回地址. 当地址为 FFH 时 ,

采用MAX485实现单片机与PC机串行通信的一种方法

采用MAX485实现单片机与PC机串行通信的一种方法
[3] 5 李5 华, ;712!3 系列单片机实用接口技术 [ ;] ,北 京: 北京航空航天大学出版社, 399%, [.] 5 戴梅萼, 史嘉权, 微型计算机技术与应用 5 樊昌信, 詹道庸, 徐炳祥, 等, 通信原理 [ ;] , 北京: 国防工业出版社, 399!, [+] 5 索 5 梅, 郑甫京, ):4)% @ ):.)% 汇编语言程序设计 [ ;] , 北京: 清华大学出版社, 399+,
"# 引# 言
CD 机有一个功能强大的可编程异步串行控 制器 A)B" 和 ) 个采用 W/9)!)D 串行通信标准接 DH7) , 而单片机中有一个采用 33L 电 口 DH7: 、 平的可编程串口, 所以要使它们之间通信, 必须采 用一个电平转换电路。这里采用符合 W/9@AB 标 准的 7*?N7 公司生产的 7*?@AB 和波士公司生 W/9@AB 转接头, 将 W/9)!) 信号电 产的 W/9)!)D 、 平转换成 W/9@AB 标准电平信号, 利用 W/9@AB 标 准电平的优势, 在一些特殊通信领域内实现 CD 机和单片机之间的串行长距离可靠通信。具体任 务是在 CD 机一端发送数据单片机接收, 或单片 ( 半双工) , 并且保证发送数据 机发送 CD 机接收 的可靠性和发生错误时的处理功能。
:# W/9@AB 标准
在计算机网络以及分布式工业控制系统中, 经常采用串行通信来达到信息交换的目的, 无论 是完整的 > 层 H/N 模型还是简化的 ! 层 ( 或 @ 层) W/9)!)D 、 工业局部网络, 其第一层均为物理层, W/9@)) 、 W/9@AB 既是物理层的协议标准, 也是串 行通信接口的电器标准, 采用标准接口后, 能很方 便地把各种计算机、 外部设备、 测量仪器有机地连 接起来, 构成测量、 控制系统。:;>> 年 RN* 制定 了新的标准 W/9@@; , 它定义了在 W/9)!)D 中没有 的 :" 种电路功能, 可以支持较高的传输速率、 较 远的传输距离, 提供平衡电路改进接口的电器特 性, 规定用 !> 脚连接器 W/9@)! X @)) 是 W/9@@; 标 W/9@AB 则是 W/9@)) 的一个变型。 准的子集,

基于RS485总线的PC机与多单片机系统的串行通信

基于RS485总线的PC机与多单片机系统的串行通信

4 结束语运用形态学基本运算(膨胀、腐蚀)及其联合运算(开、闭)不需额外增加专门的去噪运算,在运用开、闭运算修整工件时只要选用比噪声大的结构元素即可去除噪声。

修整工件时,只要选择合适的结构元素,即可去除突刺、填补缺陷,从而达到平滑轮廓、快速识别工件的目的。

而进行边缘检测时,只需对工件进行膨胀(或腐蚀)处理后与原图片相减即可得到边缘轮廓线。

综上所述,运用形态学运算进行工件识别预处理,其算法简单、易于实现,提高了整体识别速度。

参考文献:[1] 吴敏金.图像形态学[M ].上海:上海科学技术文献出版社,1991.[2] 飞思科技产品研发中心.Matlab6.5辅助图像处理[M ].北京:电子工业出版社,2003.[3] 谢根全.工件表面质量缺陷的计算机自动识别[J ].机械与电子,2001,(4):51-52.[4] 姚 远,王广雄,张田文.基于模糊细胞神经网络的彩色图像形态学重构[J ].计算机学报,1999,22(7):727-732.[5] 李 林,高 政.一种新颖的灰度形态学算子[J ].计算机辅助设计与图形学学报,2001,13(9):820-823.[6] 王家文,曹 宇.Matlab6.5图形图像处理[M ].北京:国防工业出版社,2004.作者简介:张金萍 (1977-),女,河南尉氏人,东北大学机械工程与自动化学院博士研究生,研究方向为机电一体化;刘 杰 (1944-),男,辽宁昌图人,东北大学机械工程与自动化学院教授,博士研究生导师,研究方向为振动利用与控制、机电一体化。

基于RS485总线的PC 机与多单片机系统的串行通信林 颖,罗金炎,刘 骄,陈 忠,李伟光(华南理工大学,广东广州510640)Serial Communication Based on RS485Bus between PC and Multisinglechip SystemL IN Ying ,L U O Jinyan ,L IU Jiao ,CHEN Zhong ,L I Wei gu ang(South China University of Technology ,Guangzhou 510640,China ) 摘要:根据所开发的电子产品故障维修实验系统的要求,提出了一套基于RS485总线的PC 机与多单片机系统间的串行通信协议,已成功应用于故障维修实验系统中。

PC机与单片机RS485通信系统的设计

PC机与单片机RS485通信系统的设计

PC机与单片机RS485通信系统的设计【摘要】本文介绍了利用Visual Basic 6.0开发工具和Atmle89S52单片机进行通信,探讨在VB环境下来实现PC机与单片机之间的数据传输方式,着重介绍通过max485芯片实现PC机与单片机之间的通信以及单片机串口通信的实现方法。

【关键词】单片机;485通讯;MSComm控件1.引言随着计算机技术特别是单片机技术的发展,在各种单片机应用系统的设计中,常常遇到计算机与外界的信息交换问题。

目前,许多检测仪表、在线分析仪、工控机等均采用RS485方式通过串口与上位机进行通信,用户通过串行通信可以实现实时监控远程设备的工作情况,对设备运行参数进行优化,通过指令反馈控制仪器的运行情况,从而实现生产节能与质量控制。

鉴于PC机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下。

在本文中采用的是MAX485芯片实现RS485方式通信。

PC机与单片机一般采用应答方式,当PC机控制多个单片机终端时,PC机发送一个地址帧选中一个终端,再对选中的终端进行一对一的通信,实现这种通信方式需要对发送帧的格式和单片机端的相应寄存器进行设置。

2.系统组成介绍本系统由1台PC机作为上位机,多个89S52单片机为核心作为系统终端,通过RS485总线结构将PC机和各个终端机连接起来。

PC机通过RS232/485转换器连接到485总线,单片机通过MAX485芯片模块连接到485总线上,实现与PC机的通信,PC机通过查询方式与各个终端通信,完成监测、控制等功能。

各个终端接受主控机指令,完成就地调整、控制、测量以及信息回传等工作。

3.通信过程与通信协议由于MAX485通讯是一种半双工通讯,发送和接收共用同一物理信道。

在任意时刻只允许一台单机处于发送状态。

因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。

MAX485在PC机与单片机间通信的应用

MAX485在PC机与单片机间通信的应用

MAX485在PC机与单片机间通信的应用
王颖;吕显强;张菁
【期刊名称】《信息技术》
【年(卷),期】2011(000)006
【摘要】介绍采用MAX485芯片实现PC机与ATmega48单片机的串行通信,给出相关的硬件设计电路和软件设计思想.%The paper discussed how to use MAX485 to realize the serial communication between PC and ATmega48 single chip microprocessor. It gives the related hardware design electric circuit and the software design thought.
【总页数】3页(P180-182)
【作者】王颖;吕显强;张菁
【作者单位】大连海洋大学信息工程学院,大连,116023;大连海洋大学信息工程学院,大连,116023;大连海洋大学信息工程学院,大连,116023
【正文语种】中文
【中图分类】TN915
【相关文献】
1.采用MAX485实现单片机与PC机串行通信的一种方法 [J], 周凯;郭黎利
2.PC机与单片机间串行通信的实现 [J], 陈冬梅;梁红玉;陆冬妹
3.基于MAX485实现PC机与单片机通信的程序设计 [J], 周凯;郭黎利
4.PC机和MCS-51单片机间的串行通信 [J], 陈欣琳;王海峰;金亮
5.浅谈PC机与单片机间串行通信的实现 [J], 谷琛
因版权原因,仅展示原文概要,查看原文内容请购买。

基于RS_485总线的PC与多单片机间的串行通信

基于RS_485总线的PC与多单片机间的串行通信

MSComml.Settings=Settings
设置
; 串口的波特率 ; 数据发送数组
4 结束语
本文设计并实现了一种应用于油田钻井滚动轴 承的振动信号测控系统。该系统采用 PC 与多单片机 之间的串行通信实现测控 , 采用 RS- 485 总线标准 , 半 双工传输方式。上位机采用 Windows 环境 下 VB6.0 开发 , 编程简单 , 界面良好 , 维护方便 ; 下位机利用单 片机内自带的 USART 通信接口 , 很好的实现异步串 行通信。实验表明 , 该方法对于工作环境比较恶劣的 钻井油田滚动轴承的振动信号的采集与传输 , 达到了 实际要求 , 为滚动轴承故障检测提供了方便而有效的 1 通信系统的硬件设计
尽管 RS- 232 有些缺点 , 但在两台短距离设备间的 短距离信息传输时 , 最通用的还是 RS- 232 。但对于多 台设备的长距离传输 , 它就很难实现。 而 RS- 485 是一 个多引出线接口 , 这个接口可以有多个驱动器和接 收 器 , 可以实现一台 PC 和多台单片机之间的串行通信 ; 而且 RS- 485 的最长的传输距离为 1200m, 适合中距离 的传输。本文针对油田钻井的滚动轴承信号采集及传 输 , 根据工地实际工作环境 , 采用 RS- 485 通信接口。 1.1 PC 和 RS- 485 总线的接口 吴秋明 : 硕士研究生 基金项目 : 江苏省高校自然科学基金资助项 目 ( 03KJ B510025 )
定时向下位机发送呼叫指令。此时 , 每台下位 机都中 断接受并判断, 地址不相符的下位机中断返回, 执行 其他下位机任务 ; 反之则把本机地址及其状态作为应 答信号发送给上位机。上位机接收到应答信号后 , 可 以作进一步的处理。
2.2 通信协议

MAX485两单片机半双工通信

MAX485两单片机半双工通信

#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit P0_0=P0^0; //定义P0^0为MAX485使能控制端口ucharidatatable[17]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xaa,0xbd,0xee,0xdd,0x99,0xfd,0xff, 0xff}; //定义灯的16种状态uchar idata table2[10]; //定义接收数据存放数组uchar num,temp; //设置temp变量,num为对应按键设定的编号uchar num1=0,flag; //设置flag为标志位,num1为发送和接收方选择变量/************延时子函数*********/void delay(uint z) //延时自函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}uchar keyscan();/************外部中断INT0实现接收子函数*********/void int0(void) interrupt 0{ int m;P1=0xff; //接收前先使接收方灯全部熄灭for(m=0;m<5;m++) //输出按键发送的5次灯的状态{ P1=table2[m];delay(500); //调用延时子函数}}/***********T1,INT0中断初始化函数**************/void init(){ TMOD=0x20; //设置定时器1为工作方式2TH1=0xe8; //赋计数初值,对应定时26usTL1=0xe8;TR1=1; //T1中断开启EA=1; //总中断开启EX0=1; //外部中断INT0开启IT0=1; //INT0方式下降沿有效REN=1; //串行接收允许SM0=0; //串行通信方式选择方式1SM1=1;}/************接收子函数receive()***************/void receive() //接收子函数{ RI=0; //接收中断开启P0_0=0; //MAX485接收中断有效do //握手过程{SBUF=0x01; //接收方向发送方发送0x01while(TI==0); //发送,如果没发完则继续等待TI=0; //发送成功,那么0->TIwhile(RI==0); //发送方接收接受方的握手信号,若没收到继续等待RI=0; //接收后,0-RI}while(SBUF!=0x02) ; //接收到信号如果等于0x02那么握手成功,否则继续重新收发while(!RI); //如果没收到,继续等待delay(500); //调用延时函数P1=SBUF; //将收到的数据送到P1口显示m=SBUF; //将收到的数据送到接收数组table2[n]中存放table2[n]=m;n++;RI=0; //再次开启接收中断}/*************发送子函数send()************/void send(){ flag=1; //flag标志位赋值,控制按键有效do //握手信号{ SBUF=0x02; //发送方给接收方发送握手信号0x02while(TI==0); //如果没发送完,那么继续等待TI=0; //发送成功,那么0->TIwhile(RI==0); //发送方接收接受方发送的握手信号,若没收到,继续等待RI=0; //若收到,0->RI}while(SBUF!=0x01);//接收到信号如果等于0x01那么握手成功,否则继续重新收发while(flag) i=keyscan(); //将扫描的键盘编码对应的num号码赋值给iflag=1;P0_0=1; //设置MAX485发送使能端有效TI=0; //开启发送中断SBUF=table[i-1]; //将设置数组中的数赋值给发送缓冲区while (!TI); //如果没发送完,那么继续等待P1=table[i-1]; //将设置数组中的数赋值给发送P1TI=0; //若收到,0->TI}/*************主函数main()*************/void main(){ uchar n=0; //设定初始变量n,m,iuchar m;uchar i=0;flag=1; //flag标志位赋值,控制按键有效void init(); //调用T1,INT0中断初始化函数while(flag) i=keyscan(); //将扫描的键盘编码对应的num号码赋值给iflag=1; //flag标志位赋值,控制按键有效while(1){ if(num1==0) //如果num1=0,那么对应为接收方{void receive(); //调用接收子函数}else if(num1==1) //如果num1=1,那么对应为发送方{void send(); //调用发送子函数}}}/**************矩阵键盘4*4函数*************/uchar keyscan(){ P2=0xfe; //选中第四列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{case 0xee:{num=1;flag=0;} break; //第四列第一行按键编号为1case 0xde:{num=2; flag=0;} break; //第四列第二行按键编号为2case 0xbe:{num=3; flag=0;} break; //第四列第三行按键编号为3case 0x7e:{num=4; flag=0;} break; //第四列第四行按键编号为4}while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xfd; //选中第三列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xed:{num=5;flag=0;} break; //第三列第一行按键编号为5 case 0xdd:{num=6;flag=0;} break; //第三列第二行按键编号为6case 0xbd:{num=7;flag=0;} break; //第三列第三行按键编号为7case 0x7d:{num=8;flag=0;} break; //第三列第四行按键编号为8 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xfb; //选中第二列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xeb:{num=9; flag=0;} break; //第二列第一行按键编号为9 case 0xdb:{num=10; flag=0;} break; //第二列第二行按键编号为10case 0xbb:{num=11;flag=0;} break; //第二列第三行按键编号为11case 0x7b:{num=12; flag=0;} break; //第二列第四行按键编号为12 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xf7; //选中第一列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xe7:{num=13; flag=0;} break; //第一列第一行按键编号为13 case 0xd7:{num=14; flag=0;} break; //第一列第二行按键编号为14case 0xb7:{num=15;num1=1;flag=0;} break; //第一列第三行按键编号为15case 0x77:{num=16; flag=0;num1=0;} break; //第一列第四行按键编号为16 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}return num; //返回对应按键的标号return flag; //返回对应按键子函数的控制标志位}图:硬件仿真总原理图如图所示,系统总的硬件仿真原理图中包含了单片机系统的时钟电路,复位电路,矩阵键盘4*4电路,即灯显示电路,MAX485串行半双工连接电路的相应电路模块,其中通过选择第三行第一列的按键为发送方,选择第四行第一列的按键为接收方,而且在同一个矩阵键盘中不可以同时按这两个键,通过这种选择可是实现分时的发送和接收,满足半双工的通信方式,其中选择完后,在发送方的矩阵键盘中选择按键,每按一个按键,对应的灯状态在发送和接收两方的P1口显示其的灯状态,连续按5次后,对应灯状态也显示5次,再在接收方的INT0按键按下,可以再次显示刚才5次按键对应灯状态的连续显示。

基于MAX485 实现PC 机与单片机通信的程序设计

基于MAX485 实现PC 机与单片机通信的程序设计

信息技术 In formation T echnology 2005年第4期基于M AX485实现PC机与单片机通信的程序设计周 凯,郭黎利(哈尔滨工程大学信息与通信工程学院,哈尔滨150001)摘 要:介绍M AX485芯片在PC机与单片机串行数据通信中的应用,并详细说明串行通信接口的程序设计及软件设计中需注意的问题。

关键词:M AX485芯片;单片机;串行通信;程序设计中图分类号:T N915 文献标识码:A 文章编号:1009-2552(2005)04-0010-03 Program for serial communication betw een PC and singlechip microprocessor based on MAX485ZHOU K ai,G UO Li2li(College of I nform ation and Communication E ngineering,H arbin E ngineering U niversity,H arbin150001,China) Abstract:This paper presents a method how to use M AX485applied in serial communication between mcs51 single chip microprocess or and PC.It als o discusses the program design of the communication interface and must be note s ome questions during s oftware design in detail.K ey w ords:M AX485;single chip microprocess or;serial communication;program design0 引言数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来达到信息交换的目的,无论是完整的七层OSI模型,还是简化的三层(或四层)工业局部网络,其第一层均为物理层。

基于RS485实现的PC机与单片机多机通信_刘志群

基于RS485实现的PC机与单片机多机通信_刘志群

第28卷第2期2007年4月闽江学院学报J OURNAL OF M I N JI ANG UN I VER SI TYV o.l28N o.2A pr.2007基于RS485实现的PC机与单片机多机通信刘志群(闽江学院物理学与电子信息工程系,福建福州 350108)摘要:介绍了基于R S485实现的PC机与单片机串行通信控制系统.通过R S485/R S232信号转换电路,PC机根据下位机的地址不间断采集下位机的数据,经过处理后,将控制信号传给下位机,从而实现PC机与单片机之间的多路远程数据采集和远程控制.关键词:RS485;单片机;串行通信;数据采集中图分类号:TP274文献标识码:A 文章编号:1009-7821(2007)02-0044-03 Co munication bet ween PC andM CS-51based on RS485LI U Zh-i qun(P hys ics and E lectronic Informati on Eng i neering D e p ar t m ent of M ingJ iang Universit y,Fuzhou,Fujian350108,Chi na)Abst ract:The contro l syste m based on RS485bet w een PC and si n g le-ch i p m icr oco mpu ter i s i n troduced.Through converti n g si g na l c ircu it o fRS485/RS232,PC gathers data fr o m M CS according to the address of si n g le-chip m i c roco m puter,and sends contro l si g na l to si n g le-chip m i c roco m puter a fter appropriate trea-t m en,t so as to ach i e ve m ultiple-access re m ote data acquisiti o n and re m ote contro.lK ey w ords:RS485;sing le-ch i p m icroco m puter;ser i a l co mm un ication;data acquisiti o n0 引言目前PC机与多台单片机构成的分布式工业控制系统、数据传输系统等在工业现场的应用越来越广泛.它既利用了单片机功耗低、价格便宜、功能强大、抗干扰能力好等优点构建适宜分布于工业现场、使用方便灵活的监控站或下位机,又结合PC机丰富的软硬件资源,提供管理功能强大、人机界面友好的操控平台.而随着近几年来变频技术的不断发展,多单片机应用系统又以由单片机实现的变频控制为突出代表.在这类控制系统中,稳定可靠、方便快捷的数据通信是实现系统功能的基础和保障.因此,根据系统的实际工作环境条件,选择恰当的接口形式和通信协议,设计合理通信软件和硬件控制电路就显得十分重要. RS485是工业界使用最为广泛的双向、平衡传输线标准接口,它以半双工方式通信,支持多点连接,允许创建多达32个节点的网络(某些驱动器模块可增加至128个),具有传输距离远(最大传输距离为1200m),传输速率快(1200m时为100kb it/s)等优点,用于多站互连时,便于组建成本低廉、可靠性高及分布范围较广的总线网络.文章结合聊城自来水公司利用PC机集中监控多台变频器实现供水的工程项目简要介绍RS485串行通信部分的设计与调试.1 硬件设计在工程项目中,系统由一台主控PC机和多台位置分布不同的下位机(其单片机应用控制系统是基于80C196MH z的变频器).本系统的下位机可以接入其他处理器的多单片机应用系统,例如性能优异,操作简收稿日期:2006-11-21作者简介:刘志群(1980-),男,山东潍坊人,闽江学院物理学与电子信息工程系助教.第2期刘志群:基于RS485实现的PC 机与单片机多机通信图1 通信系统结构框图F i g .1 T he confi gurati on of communicati on syste m 单的51系列单片机等.通信系统结构框图如图1所示.1.1 信号转换电路PC 机不提供RS485接口,只有USB 接口、并口和RS232串口,这里我们使用串口通信,但是由于RS232和RS485的电平也不匹配,所以必须借助一信号(或者电平)转换电路,实现上位机RS232到RS485的信号转换.这里采用光电耦合器件实现信号转换,芯片选择MAX485,其硬件实现可以采用如图2电路[1](289).1.2 单片机与RS485的连接电路各变频器由单片机89S51实现控制,单片机与MAX485总线的连接则比较简单,为了提高抗干扰能力,各监控站的单片机系统与MAX485之间通过光电隔离器件连接,通过单片机的P1.0引脚控制MAX485的工作状态.其硬件实现电路如图3所示[2](285).2 软件设计由于485总线是一种异步半双工的通信总线,在某一时刻,总线只可能呈现出一种状态,在PC 机与多单片机系统构成的多机通信系统中,一般采用主从式通信,主机处于主导和支配地位,定时发出监控命令后等待从机的应答.各从机处于侦听状态,不能主动往总线发送数据,必须等待主机的命令,在接收到地址帧后,立即判断是否在呼叫自己,如果不是则不予理睬.如果是则继续接收下面的数据.接收完一个主机监控命令后先进行校验,如果校验正确则解析接收的监控命令,并根据命令回送相应的应答帧.而且任何时刻只能有一个单片机处于发送状态,但主机发送时所有单片机必须都处于接收状态.2.1 通信协议主机发送命令帧格式按如下标准:地址命令命令索引数据校验和从机根据不同的命令和命令索引作相应的处理,并回送应答帧,从机应答帧按如下标准:帧头地址命令命令索引数据校验和帧尾主机接收到帧头表示该帧的开始,连续接收从机回送的数据,直到收到帧尾表示该帧的结束,准备接收下一帧.一次通信完成[3](235).波特率设置:9600bit/s ;传送帧格式:1位起始位、8位数据位、1位数据/地址标志位、1位停止位.主机发送并为从机接收的信息有两类:数据/地址标志位为1表示发送的是地址(即需45闽江学院学报第28卷要和主机通信的从机地址),数据/地址标志位为0表示发送的是数据.校验方式:和校验;传送方式:主机查询,从机中断.2.2 上位机软件设计在标准串口通信方面,VB 提供了具有强大功能的通信控件M SCo mm ,该控件可实现串行通信数据的发送和接收,对串口状态及串口通信的信息格式和协议进行设置.该控件屏蔽了通信过程中的底层操作,程序员只需设置好M SCo mm 控件的属性和事件就可以实现异步串行通信[4](54).程序设计中对M SCo mm 控件的常用属性设置如下:图4 上位机通信流程图F i g .4 T he flo w cha rt of PCM SCo mm 1.Settings ="9600,M,8,1"M SCo mm 1.EOFEnab le =T r ueM SCo mm 1.RThresho l d =1M SCo mm 1.OutBu ffer Count =0M SCo mm 1.InBuffer Count =0M SCo mm 1.Port O pen =T r ueM SCo mm 1.RTSEnable =Fa lsePC 发送完地址帧之后,数据帧之前重新设置串口如下:M SCo mm 1.Port O pen =Fa lseM SCo mm 1.Settings ="9600,S ,8,1"M SCo mm 1.Port O pen =T r ue发送:M SCo mm 1.Output ="xxx";命令,索引,数据,校验和.通过ti m er 定时器适当延时之后转为接收状态等待接收从机响应帧,利用Input 属性从接收缓冲区读取直至从机应答字符图5 下位机串行中断流程图F ig .5 The flo w cha rt of i n terruption串的结束标志帧尾:MS Co mm 1.RTSEnable =T r ue .上位机对多个从机的通信是通过ti m er 定时器的间隔属性I nterva l 实现的,ti m er .I nterva l=2000,在ti m er 事件中写入主机与各个从机通信的子程序,这样每间隔2s 激活一次ti m er 事件,主机和各个从机完成一次通信.流程图如图4所示.2.3 MCS-51系列单片机多机通信的实现M SC -51单片机串行口控制器SC ON 中的S M 2为多机通信控制位,主要应用于串行口工作方式2和方式3;若S M 2=0,接收到的第九位数据无论为0还是1,数据都装入SB UF ,并置R I=1,向CPU 发出中断请求;若SM 2=1,则只有接收数据的第九位为1接收到的字符才有效,并置R I=1,并向CPU 发出中断请求.多机通信过程可如下归结:1)所有从机初始化为S M 2=1,接收状态,以便接收主机发来的地址(地址帧第9位数据为1,则从机进入相应的中断服务程序,而数据帧第九位为0,从机不予理睬,从而保证接收到的第一个数据是从机地址).2)所有从机在S M 2=1,RB8=1,R I=0时接收主机发来的从机地址进入中断和本机地址比较以确认是否为被寻址从机.3)被寻址从机通过指令清除S M 2,以正常接收主机继续发来的数据,未被寻址的从机仍保持SM 2=1,并退出各自中断,等待下次通信主机发来的地址.这样就保证了多机通信中的一对一通信[5](185).4)被寻址从机在本次通信完成后重新使S M 2=1,并退出中断服务程序,等待下次通信.流程图如图5.(下转第121页)46121第2期钟惊雷:研究生心理健康状况调查因而,其心理健康状况在四个学科的研究生中是最好的.3.2.4 入学前有工作经历的研究生心理健康水平显著低于入学前无工作经历的研究生,这或许是由于他们在工作以后重新回到校园,生活环境改变较大,很难再把全部的精力集中到学业上来,对学习和科研任务有时会有难以胜任的之感;同时,有些有工作经历的研究生已组成了自己的家庭,面对的生活压力要比没有工作经历的研究生大的多.4 结论本次调查结果表明,性别、年级、学科和工作经历都是影响研究生心理健康状况的重要因素.研究生的心理健康状况不容乐观,需要学校和社会给予高度的重视,可通过开设有关心理知识讲座、创立心理健康教育机构、建立研究生心理档案、开展多种形式的咨询与活动等途径对研究生心理健康进行发展性培养和干预.其中,男研究生、二三年级的研究生、人文学科的研究生和入学前有工作经历的研究生是关注和干预的重点.参考文献:[1]牛雄鹰,张萌.山东省驻济高校硕士生心理卫生状况调查[J].中国心理卫生杂志,1997(5):296.[2]武晓峰,梁永明.研究生心理健康状况的调查与思考[J].学位与研究生教育,1995(3):47-49.[3]史清敏,王增起.研究生心理健康状况调查与分析[J].现代教育科学,2002(3):27-29.[4]毛富强,李振涛.研究生心理健康状况与个性特征及生活事件分析[J].中国心理卫生杂志,2002(10):663-665.[5]毛富强,毛光民,李洁.研究生心理健康状况初步评价[J].健康心理学杂志,2000(1):36-38.[6]孟馥,樊文有.研究生心理卫生状况及相关因素研究[J].同济大学学报:医学版,2002(4):141-143.[7]夏文郁.医学研究生心理素质亟待提高[J].学位与研究生教育,2000(1):39-42.(责任编辑:唐诚焜)(上接第46页)初始化程序如下:MOV T MOD,#20HMOV TH1,#0FD HMOV TL1,#0FDH;波特率9600SETB TR1MOV PCON,#00HMOV SCON,#0F0H;方式3,S M2=1,允许接收CLR P1.7;控制端低电平,接收状态SETB ESSETB EASJ M P$3 结语本文所述方案已经成功应用于聊城自来水公司一台PC机监控多台变频器的多机分布式供水系统中,其硬件接口简单,性价比高,软件和通信协议有很好的通用性,可以应用于其他工程的多机通信控制系统中.参考文献:[1]刘光斌,刘东,姚志成.单片机系统实用抗干扰技术[M].北京:人民邮电出版社,2003.[2]求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.[3]何立民.单片机与嵌入式系统应用[M].北京:北京航空航天大学出版社,2003.[4]范逸之,陈立元.V isual B asi c与RS-232串行通信控制[M].北京:清华大学出版社,2004.[5]李朝青.单片机原理及其接口技术[M].北京:北京航空航天大学出版社,2006.(责任编辑:唐诚焜)。

单片机与PC机串行通信的实现方法

单片机与PC机串行通信的实现方法

单片机与PC机串行通信的实现方法随着单片机和微机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。

它结合了单片机在实时数据采集和微机对图形处理、显示的优点。

同时,windows环境下后台微机在数据库管理上具有明显的优势。

二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。

本文主要介绍PC机与51系列单片机实现通信的一般方法和步骤。

硬件结构和单片机的通1S程序设计单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL 电流环的。

为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式。

本文主要介绍采用RS-232接口与单片机通信的方法。

1、 RS-232电平转换和PC机的接口电路RS-232是早期为公用电话网络数据通信而制定的标准,其逻辑电平与ITL\CMOS电乎完全不同。

逻辑"0"规定为+5- +15V之间,逻辑"1,,规定为-5~-15V之间。

由于RS-232发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中,其标准建议的最大通信距离为15米.但实际应用中我们在300bi:/s的速率下可以达到300米。

RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换,实现逻辑电平转换可以采用以下三种方式。

采用MCl488和MCl489芯片的转换接口 MCl488和MCl489芯片为早期的RS-232至TTL逻辑电平的转换芯片,图1为实际电路。

该电路的不便之处是需要±12V电压,并且功耗较大,不适合用于低功耗的系统。

图中TXD、RXD分别接单片机的发送和接收端。

采用MAX232芯片的转换接口 MAX232是MAXIM公司生产的,包含两路驱动器和接收器的RS-232转换芯片。

(完整word版)单片机与PC机RS-485串行通信设计

(完整word版)单片机与PC机RS-485串行通信设计

沈阳航空航天大学课程设计(论文)题目单片机与PC机RS-485的串行通信设计班级学号学生姓名指导教师目录0 前言 (1)1 总体方案设计 (1)2 硬件电路设计 (2)2.1 AT89C51单片机 (2)2.2 时钟电路 (3)2.3 按键复位电路 (4)2。

4 MAX485转换芯片 (4)2.5 PC机RS—485 通信的接口电路 (5)3 软件设计 (6)4 调试分析 (8)5 结论及进一步设想 (8)参考文献 (8)课设体会 (9)附录1 电路原理图 (10)附录2 程序清单 (11)单片机与PC机RS-485串行通讯设计摘要:本文提出了一种PC机与单片机进行串行通信的方案,该方案通过PC机的RS232串口、485总线实现与51单片机的串口通信,PC机送出的信号进行电平转换后送到485总线,单片机则接受MAX485芯片转换得到的信号,从而进行串行通信。

该系统的特点是电路设计简单可行、通信稳定、实用性强。

关键词:PC机;单片机;串口通信;MAX485芯片;0前言在计算机测控领域经常会采用一台PC 机与一个或多个单片机组成小型的测控网络,这种测控系统充分发挥了单片机功能强, 抗干扰性能好, 温度适应范围宽,面向控制的优点,同时又可以利用计算机弥补单片机在数据处理和交互性等方面的不足。

在测控系统中一般是以PC 机作为主控机,采用串行通讯定时扫描以单片机为核心的智能控制器(从机)以便采集数据或发送信号。

PC机的串口一般采用RS-232的总线标准,但由于RS—232接口标准发布较早,难免有不足之处,主要体现在以下四点:1、接口信号的电平值较高,已损坏接口电路芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL电路连接;2、传送速率较低,在异步传送时,波特率为20Kbps;3、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱;4、传输距离有限,最大传输距离标准为50英尺,实际上也只能用在50m左右。

面向RS485协议配置应用的单片机与PC机之间的通信

面向RS485协议配置应用的单片机与PC机之间的通信

文章编号:16732095X (2009)022*******面向RS 485协议配置应用的单片机与PC 机之间的通信陈在平,杜金利(天津理工大学自动化学院,天津300384)摘 要:本文主要完成了对RS485协议的配置问题.现今工业现场设备广泛应用RS485通信协议,而RS485串行通信协议具有一定的开放性,即并不统一,不同的RS485设备具有不同的串行通信协议,若将完成RS485总线桥的转换必然需要转换单元能够适应不同的RS485设备的协议,本文总线桥转换单元采用AT89S52单片机作为配置的主控制器,上位机利用图形化编程软件Lab V I E W 完成上位机通信软件的编写,将所需要配置的串行通信协议信息在上位机界面中输入,通过上位机软件与转换单元的MCU 通信,将配置信息通过RS232接口发送给转换单元,供单元在初始化RS485设备时调用.经过系统调试,转换单元与PC 机能够实现良好的通信,并能够成功配置RS485通信协议.关键词:RS485;Lab V I E W;RS232通信;单片机中图分类号:TP368.1 文献标识码:AComm un i ca ti on between si n gle 2ch i p m i crocon troller andPC for conf i gura ti on the RS485protocolCHEN Zai 2p ing,DU J in 2li(School of Eleetrical Engineering,Tianjin University of Technol ogy,Tianjin 300384,China )Abstract:The paper has mainly accomp lished configuring the RS485p r ot ocol .The RS485p r ot ocol nowadays is app lied t o the industry l ocale mostly,but RS485p r ot ocol is open,not accordant,that is a different RS485device has a different p r ot ocol .So it requests the conversi on cell t o adap t t o different RS4585deviceswith non 2accordant p r ot ocol .The paper uses single 2chi p m i 2cr ocontr oller AT89S52as main contr oller,and graphics p r ogra mmer s oft w are Lab V I E W as internet app licati ons design t ool .The serial communicati on p r ot ocolmessages are inputted via Lab V I E W by RS232,and are sent t o the conversi on cell f or trans 2ferred by cell during in initializing the RS485devices .After the debugging system,conversi on cell can communicate with PC greatly,and can configuratie RS485p r ot ocol successfully .Key words:RS232communicati on;single 2chi p m icr ocontr oller;serial communicati on;p r ot ocol configurati on 在现代工业自动化生产中,工业现场智能设备广泛应用RS485通信协议进行通信,随着先进的现场总线及工业以太网的出现及逐渐广泛的应用,各种基于RS485的总线桥不断出现,但是RS485串行通信的协议并不是统一的,不同的设备根据其数据信息及性能,其通信协议并不统一,例如:数据位、通信波特率、停止位、校验位等都有可能不一样,所以实现对RS485设备的协议自由匹配显得尤为重要,并具有重要的意义.1 串行通信协议简介串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制位移动的.它的优点是只需一对传输线进行传送信息,因此其成本低,适用于远距离通信;它的缺点是传送速度低.串行通信有异步通信和同步通信两种基本通信方式.同步通信适用于传送速度高的情况,其硬件复收稿日期:2008210230.第一作者:陈在平(1950— ),男,教授,硕士生导师.第25卷 第2期2009年4月天 津 理 工 大 学 学 报J O URNAL O F T I ANJ I N UN I VERS I T Y O F TECHNOLO GY Vol .25No .2Ap r .2009杂.而异步通信应用于传送速度在50到19200波特率之间.是比较常用的传送方式.在异步通信中,数据是一帧一帧传送的,每一串行帧的数据格式由一位起始位,5~8位的数据位,一位奇偶校验位(可省略)和一位停止位四部分组成.在串行通信中,发送方和接收方要约定具体的数据格式和波特率(通信协议).RS485通信协议即为串行通信协议,其数据帧的格式并不统一.2 硬件设计系统总体功能框图如图1所示:图1 系统总体功能框图F i g .1 The collecti v ity functi on由图1可知,本文所做的主要工作是单片机通过RS232接口与PC 机进行通信,PC 机将RS485设备所需要的协议通过RS232接口发送给单片机,由单片机初始化其串口以适应RS485设备的通信协议.本系统采用AT89S52单片机作为主控制器,利用MAX232芯片作为RS232协议转换芯片[1],与PC 机进行通信.如图2所示:图2 RS232接口电路F i g .2 RS232i n terface c i rcu it3 软件设计3.1 需要配置的RS 485协议信息在串行通信中,数据位,停止位,奇偶校验位,波特率是不尽相同的,数据位为5~8位,停止位为1、1.5、2位;奇偶校验位为无、奇校验、偶校验;波特率常用的为1200~62500kbp s .3.2 单片机软件设计在系统启动开始的时候,由于加电的冲击等原因,单片机并未处于稳定状态,所以先延时一段时间,待单片机稳定以后再进行初始化等后续工作.下位机程序总体流程图如图3所示.当PC 机向下位机转换单元发送开始信号时,下位机转换单元便进入中断子程序进行数据的接收处理.中断处理子程序如图4所示.进入中断子程序之后,先关闭串口中断,采用查询方式接收PC 机发送给本地的RS485的配置信息.配置信息主要有四个数据,在本地创建一数组来接收配置信息并存储到存储器中.3.3 上位机软件设计在PC 机端采用图形化编程软件LabV I E W 编写上位机软件.LabV I E W 采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序.・97・2009年4月 陈在平,等:面向RS485协议配置应用的单片机与PC 机之间的通信Lab V I E W 提供很多外观与传统仪器类似的控件,可用来方便的创建用户界面每个控件对应程序框图中的一个对象,当数据"流向"该控件时,控件就会根据自己的特性以一定的方式显示数据[224].上位机应用程序流程图如图5所示.图5 上位机应用程序流程图F i g .5 The appli ca ti on program flow chart of PC5 系统实验调试本系统经过调试,系统能够稳定可靠的运行,通过上位机可以有效的给下位机发送配置信息,成功配置RS485协议信息.在编写上位机软件时,要添加串行通信协议变量的局部变量将其加载到上位机配置成功显示子程序中才能够正确显示配置成功信息及协议内容.图6给出了基于图形化编程软件Lab 2V I E W 编写的PC 机端应用程序的配置界面.图6 应用程序界面F i g .6 The appli ca ti on program i n terface6 结 论RS485的通信协议尽管有一些差异,但是通过在PC 机端编写协议配置应用软件,通过串口与下位机本地控制端进行通信,可以比较方便的完成对本地控制端的串行通信口的协议的配置以适应RS485设备的通信协议,使本地控制端与不同的RS485设备能够实现有效的通信,只要每次在应用RS485设备之前进行协议信息配置便可与该RS485设备进行配置,即可以使转换模块灵活的与不同的RS485设备进行通信,具有一定的通用性.参 考 文 献:[1] 郭宏亮,PC 机与AT89C51单片机的串行通信接口设计[J ].平原大学学报,2007(6):326.[2] 马 伟,麦云飞.基于MCS -51与Lab V I E W 的数据采集系统[J ].工业控制计算机,2007(9):325.[3] 肖金壮,张 伟,基于Lab V I E W 的单片机温度测控系统设计[J ].微计算机信息,2007(29):527.[4] 黄章华,陆华忠.基于Lab V I E W 和单片机的步进电机控制系统设计[J ].现代电子技术,2007(17):426.・08・ 天 津 理 工 大 学 学 报 第25卷 第2期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用MAX485实现PC机与单片机之间的串行通讯
摘要介绍一种RS-485接口芯片MAX485,利用此芯片可以很方便地实现PC机与单片机之间的串行通讯,同时给出PC机与单片机实现多点通讯的实例。

关键词RS-485串行通讯多点通讯
随着数据采集系统的广泛应用,通常由单片机构成的应用系统,如仪器仪表、智能设备等,都需要与PC机之间交换数据,实现与PC机之间的通讯功能,以充分发挥PC和单片机之间的功能互补,资源共享的优势。

以往常用的RS-232协议在很大程度上已不能满足设计的要求,如传输速率慢,传输距离短,传输信号易受外界的干扰等缺点。

本文介绍一种性能优越的RS-485接口芯片,以及如何利用此芯片实现单片机与PC机之间的远程通讯,并讨论将其功能进行扩充,实现PC机管理单片机阵列的功能。

1 RS-485协议简介及MAX485芯片介绍
由于RS-232的种种缺点,新的串行通讯接口标准RS-449被制定出来,与之相对应的是RS-485的电气标准。

RS-485是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。

它采用差分信号进行传输;最大传输距离可以达到1.2 km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200 mV;最大传输速率可达2.5 Mb/s。

由此可见,RS-485协议正是针对远距离、高灵敏度、多点通讯制定的标准。

MAX485接口芯片是Maxim公司的一种RS-485芯片。

采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。

它完成将TTL电平转换为RS -485电平的功能。

其引脚结构图如图1所示。

从图中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。

RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只
需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。

在与单片机连接时接线非常简单。

只需要一个信号控制MAX485的接收和发送即可。

同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。

2用PC机实现与8031单片机的多点通讯
用8031单片机实现与PC机之间的通讯时,必须使用电平转换接口芯片,因为单片机输出的是TTL 电平,必须经过电平转换才能和PC机的一致。

本文中采用的是RS-485协议,所以单片机需要采用RS -485接口;而在PC机侧使用的是RS-232与RS-485的电平转换接口。

在本文中采用的是武汉新特电子公司的电平转换接口,该接口使用简便、无需外加电源、数据传输速率最高可达10 Mb/s,而且不用任何软件初始化和修改。

另外实现多点通讯还需要了解器件的驱动能力,当器件的驱动能力足够大时,我们就可以根据需要加入所需要的节点。

本文中所举的例子就是利用一台PC控制64块单片机的工作,采用多点通讯形式。

通过发送控制字和工作方式字给相应的单片机,使其进行相应的操作。

单片机在接收到数据后,进行数据的采集工作,等到PC机再发指令,将采集到的数据反馈给PC机,PC机对数据进行分析和计算。

PC机的程序可以采用Windows下任何一种面向对象的高级语言来编写,它比在DOS下的利用串口中断的方式进行更加简便,应用程序将控制权交向串口的驱动程序,接收和发送的中断完全由串口驱动程序来控制,减轻了编写过程中的很多麻烦。

本程序中选用的是Delphi的串口通讯控件Spcomm来实现。

参数的设置可以自动完成。

单片机采用中断工作方式,用汇编语言编写,通讯波特率为1 2 kb/s,由于要和PC机进行通讯,选用11 0592 MHz的晶振,保证和PC机的波特率完全一致,避免由于波特率不同引起的收发错误。

为了配合多机工作方式,选用工作方式3。

单片机的通讯流程图如图3所示。

下面给出用Delphi编制的通讯程序和单片机的接收和发送程序。

单片机初始化子程序:
单片机接收子程序:
REPT:CLRRI
MOVA,SBUF
MOV@R0,A
RET
在程序编写过程中,为了保证接收和发送数据的正确性,我们加入了CRC校验程序,另外PC机发送给单片机的是ASCII码形式的数据,同样需要经过简单的变换,在此均作了省略。

利用RS-485协议进行串行通讯,可以保证快速、稳定远距离地传输数据。

在目前以及以后的工业控制和其他方面必将得到越来越多的应用。

相关文档
最新文档