- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于RS_485协议实现单片机与单片机之间的通讯
基于RS-485协议实现单片机与单片机之间的通讯
摘 要:介绍以RS-485为通讯方式的两个单片机之间的通讯,同时给出单片机与单片机之间的通讯程序设计。
关键词:RS-485通讯 单片机 串行通讯
0 引言
随着工业化的发展,人们对现场仪表的要求越来越高,为了满足控制室对现场的实时监控,确保现场数据的实时获取,需要用一种方式将现场情况实时反映给控制室,我们研究了一种方便简单功、能优越的通讯方式:用RS-485实现现场单片机和控制室单片机的实时通讯。通过操作控制室单片机就能实现对现场单片机的操作,节省了大量的时间以及相应的人力。
RS-485通讯协议
RS-485采用平衡传输方式,连接时需要在传输线上接终接电阻。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,采用四线连接时,即只能有一个主(Master)设备,其余为从设备, 无论是四线还是二线连接方式总线上最多可接32个设备。RS-485最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s。
RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗,终接电阻接在传输总线的两端。在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。本设计中采用的485通讯元件是75LBC184,该器件带有内置高能量瞬变噪声保护装置,可提供可靠的低成本的直连(不带绝缘变压器)数据线接口,不需要任何外部元件。
单片机与单片机的通讯系统
本设计中单片机选用C8051F020,该单片机有100个功能引脚,其中有64个通用I/O端口。C8051F020内有2个增强型串行口:UARTO和UART1,这两个串行口都可以工作在全双工异步方式或半双工同步方式,并且支持多处理器通信。
75LBC184与单片机连接时只需将R和D端分别与单片机的RXD 和TXD 相连即可。R\ E\ 和DE端分别为接收和发送的使能端, 当R\ E\ 为逻辑0 时,器件处于接收状态,当DE 为逻辑1 时, 器件处于发送状态。
单片机与单片机的通讯连接图如图1所示。
图1 单片机与单片机通讯连接图
通过单片机A发送命令给单片机B,单片机B接收到命令后执行相应的操作并将检测的数据送回给单片机A处理、显示,单片机A发送完命令后一直处于接收状态,这样就完成了A到B,B到A的发送接收。
程序设计
本设计采用C语言的编程方式,2个单片机均选择UART0来实现485的串行通信。对UART0的控制首先要考虑交叉开关,然后对控制寄存器SCON0设置,UART0采用中断的工作方式,使用外部晶振作为系统时钟。
UART0初始化参数设置:
PCON = 0x80; //禁止UART0波特率1/2功能
SCON0 = 0x50; //方式一:8位UART 可变波特率
TMOD = 0x21; //定时器1 模式2 8位自动重装
TR1 = 1; //启T1计数
对UART0的访问是通过串行数据缓冲器SBUF0来实现,一个SBUF0地址可以访问发送寄存器和接收寄存器,读操作将自动访问接收寄存器,而写操作自动访问发送寄存器。下面给出单片机发送与接收的子程序。
单片机发送子程序:
void send(uchar num1)
{
SBUF=num1;
while(!TI);
TI=0;
}
单片机中断接收子程序:
void UARTT(void) interrupt 4
{
if(RI0)
{
RI0=0; //清除接收中断标志位
ch=SBUF0;
}
}
单片机之间的通讯只是用到了单片机的部分功能,可以在此基础上添加其他功能模块。
结束语
利用RS-485作为单片机之间的通讯保障了通讯的快速、稳定,尤其是在远距离传输时更体现了RS-485的优点。现在工业现场对控制部分和检测部分分离的要求越来越多,RS-485通讯的使用满足了工业现场的要求。
参考文献
张俊谟.SOC单片机原理与应用——基于C8051F系列.北京: 北京航空航天大学出版社,2007
王振力.工业控制网络.北京:人民邮电出版社,2012
徐爱钧,彭秀华.单片机高级语言C51 Windows
文档评论(0)