积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> 网络协议
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | Palm OS | XP Embedded | Nucleus | DeltaOS/SMARTOS/Hope | 新产品 | 相关文章 |
用RS-485构成总线型多点数据采集系统
 
作者:未知   来源:嵌入式世界    点击数:157   更新时间:2008-3-14
您可以添加到网摘 让更多人关注此文章:

    摘 要:工业自动化中远程控制很适合用RS-485组网。文章以总线型多点数据采集系统为例,介绍了用RS-485构成主从机方式通信网络的一般组网方法。 

关键词:RS-485;网络协议;总线拓扑;主从方式;数据采集系统

一、概述 

       在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。目前,有多种接口标准可用于串行通信,包括RS-232、RS-422、RS-423和RS-485[2]。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用。其后发展起来的RS-422、RS-485是平衡传送的电气标准,比起RS-232非平衡的传送方式在电气指标上有了大幅度的提高。 

       RS-485串行接口的电气标准实际上是RS-422的变型,它属于七层OSI(Open System Interconnection,开放系统互连)模型物理层的协议标准。由于性能优异、结构简单、组网容易,RS-485总线标准得到了越来越广泛的应用。其互连方式如图1所示。

图1 RS-485互连示意图


       RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达32台驱动器和32接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。下面以RS-485总线型网络为原型,介绍它的软硬件构成。

二、RS-485总线型多点互连设计

1、硬件电路设计

图2 RS-485总线型网络原理图


       分布式多点数据采集系统或集中控制系统的网络拓扑一般采用总线方式,传送数据采用主从站的方法。图2所示是用RS-485构成的总线型网络系统,采用主从方式进行多机通信。主机可以是PC机、工控机或单片机,从机一般是单片机。每个从机拥有自己固定的地址,由主机控制完成网上的每一次通信。R为平衡电阻,通常取为120欧。 

       开始时所有从机复位,即处于监听状态,等待主机的呼叫。当主机向网上发出某一从机的地址时,所有从机接收到该地址并与自己的地址相比较。如果相符,说明主机在呼叫自己,应发回应答信号,表示准备好开始接收后面的命令和数据;否则不予理睬,继续监听呼叫地址。主机收到从机的应答后,则开始一次通信。通信完毕,从机继续处于监听状态,等待呼叫。

图3 单片机的RS-485接口

       采用单片机和RS-485接口的原理图如图3所示。由于使用半双工方式,RS-485接口芯片采用的是SN75LBC184集成电路。这是具有瞬变高压抑制功能的芯片,能抗雷击、静电放电,避免因交流电故障引起的非正常高压脉冲冲击。A、B为RS-485总线接口,DI是发送端,RO为接收端,分别与单片机串行口的TXD、RXD连接,RE、DE为收发使能端,由单片机的 P1.4口作为收发控制。数据采集或控制信号的输出通过P0口进行,P2的口线可用来控制A/D或D/A转换。

2、网络协议 

       SN75LBC184仅能保证在物理层上二进制信号流的畅通。为了能使具体的命令、数据在网络上正确地传输,在数据链路层必须提供一定的网络协议,保证在物理层的比特流出现错误时进行检测和校正,同时实现生成数据帧和命令帧的功能。 

       主机发出的信息分为地址和数据,它们必须区分开。单片机[1]串行口模式3是波特率可变的9位通信方式,可编程位(TB8)由主机单片机自动打包区别地址和数据,TB8为1表示地址字节,否则是数据字节。从机接收时则根据这一位来区别地址和数据。 

       通信开始前,所有的从机处于复位状态,监听主机的地址呼叫。FFH的呼叫地址将使所有的从机复位。这时的从机只对TB8为1的地址字节敏感,对数据字节不予理睬。如果有地址呼叫,则中断所有的从机。每个从机都把接收到的呼叫地址和本机地址相比较,如果相符,则该从机开始接收数据帧。其他从机则保持不变,后面的数据字节由于TB8为0,它们不接收,继续监听地址呼叫。通信的从机完成通信后自动转入复位状态。 

       通信的数据长度必定大于一个字节,必须将他们合成一帧。网络数据协议帧的格式如表1所示。

表1 网络数据协议


       第一部分只有一个字节,代表该帧的长度为N+2。第二部分是N个数据的数据包。具体地说,当主机发给从机的时候,数据包包括命令字及参数;当从机回送给主机的时候,包括状态字以及必要的数据。最后一部分是采用CCITT(Consultative Committee International for Telephony and Telegraph,国际电报电话咨询委员会)的CRC(Cyclic Redundancy Cheek,循环冗余校验)码,长度是两个字节。

三、服务软件 

       按照网络?议的帧格式编写的通信软件通过物理层最终完成主机与从机之间的数据交换。在总线型拓扑结构构成的分布式数据采集系统中,主机和各从机间传送的命令和数据是二进制的直接传送,并且从机还要完成采集数据和控制的任务,主机要完成集中处理的任务,所以服务软件要使主机和各从机协调一致地工作,尽量减小通信对其他工作的影响。 

       下面以单片机构成的总线型多点数据采集系统为例,给出用C51编写的RS-485通信部分服务软件。

1、主机程序

#define uchar unsigned char

...

sbit tr=p1.4:

void main()

{

//初始化

PCON=0; //SMODE=0

TMOD=0x20; //定时器1设为模式2,作为串行口的波特率发生器

EA=0; //禁止定时器中断

TH1=0xf3;

TL1=0xf3; //定时起始值,6MHz晶振时波特率为1200bps

SCON=0xd8; //串行口模式3,TB8=1发送地址呼叫

TR1=1; //启动定时器1

while(TI=0); //等待发送结束

TI=0;

...

}

//发送子程序

uchar SendMsg(uchar msg,uchar len,uchar IDnum)

//msg:发送缓冲区指针;len:要发送的数据长度;IDnum:从机号

{

...

TB8=1;

tr=1;

SBUF=0xff; //复位从机

while(TI=0);

TI=0;

SBUF=IDnum; //呼叫从机

while(TI=0);

TI=0;

tr=0;

while(RI=0); //等待从机回应 RI=0; //清除串行口中断标志

//下面是数据帧

TB8=0;

tr=1;

SBUF=len+2;

while(TI=0)

TI=0

for(i=0;i

{

SBUF=*(msg+i);

while(TI=0);

TI=0;

}

//下面计算 @#@冗余校验码并发送

...

//等待从机回应,看是否接收正确

...

return 0; //正确返回

}

2、从机程序

#define ADDRESS 0x01

...

sbit tr=P1.4;

//中断接收程序

void sevice-serial(void)interrupt 4 using 1

{

uchar rs;

RI=0;

ES=0; //关串行口中断

tr=0;

rs=SBUF;

if(rs=0xff) //是复位命令

{

SM2=1;

ES=1;

return;

}

if(rs!=ADDRESS) //不是呼叫本机

{

ES=1;

return;

}

SM2=0;

tr=1;

SBUF=ADDRESS; //用本机地址作为应答

while(TI=0);

TI=0;

tr=0;

//下面开始接收

...

}

四、结束语 

       本文着重讨论了用RS-485构成网络系统的基本组网方法,当然在具体的应用中还会有一些变化。由于RS-485具有性能优异、组网简单的优点,它在集中控制系统、分布式控制系统中的应用相当广泛,特别是在要求远距离传输的应用中。由于其硬件电路已比较成熟,设计中的问题主要集中在网络协议和服务软件的设计上。 网络协议是保证通信畅通的关键,在一定程度上也影响着网络通信的可靠性,即它必须能够抵抗实际运作环境的干扰。另外通信只是整个系统中的一个部分,系统还必须完成诸如数据采集和控制的功能。这就要求通信占用尽量少的时间,以求达到整个系统的高效率。在通信数据量一定的情况下,采用较高的波特率当然比较好,但高的波特率必定要降低传输距离,在实际应用中必须仔细衡量。更好的办法就是采用数据压缩算法,在传输前对数据进行压缩,可使通信数据量大大减少,网络效率成倍提高。



相关文章
· 基于FPGA和EPP的图像传感器高速数据采集系统的设计[49]
· 基于USB的嵌入式CCD图像数据采集系统的实现[86]
· 基于VB6.0的燃料电池单片电压巡检系统的设计[56]
· 基于C8051F206的心电信号数据采集系统[65]
· 基于MSP430单片机的数据采集系统[104]
热门评论排行
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·VHDL设计中电路简化问题的
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
“科技奥运与计算机技术的应用”研讨会
性能差异化功率器件制造面临多重挑战
探索中国特色IC业发展新模式
研祥专家做客嵌入式技术网,谈科技奥运
搭建多方交流平台 中国嵌入
Compuware Cha
中华嵌入式人才库正式运营新闻发布会
“科技奥运与计算机技术的应用”研讨会
意法半导体(ST)2007年企业责任
Diodes Incorp
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
[原创]NRF2401 NRF...
需要LM324中文资料...
[求助]大家用过lm331的可...
单片机培训班于7月12日在华北...
重磅资料-------65K色...
价格不到3元!国产“双核”51...
[转帖]关于DSP该怎么学的讨...
[转帖]在2407上实现SPW...
以常用集成块制作的声控灯光控制...
触摸式电子开关电路...

 
赞助商 [更多]
 


 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网