一种基于RS485总线的远程数据通信系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于!"#$%总线的远程数据通信系统&
潘浩’李洪彪(张朝晖)
’*石油大学信控学院东营(+,-.’/(*胜利油田胜大集团东营(+,---/
)*北京科技大学信息学院北京’---0)/
摘要介绍了单片机和微机通过1230+总线进行远程通信的软硬件设计方法4并结合实例给出了系统的几种特殊应用5
关键词串行通讯1230+总线单片机动态数据交换
6789:;<=>!8?=@8A=??B<:C D@:=<"E9@8?9F:D!"#$%G B9
H I J K I L’M N K L J O P N I L Q R I J OQ R I L R S N
T*U V W X X Y X Z[\Z X]^_‘a X\_\bc X\‘]X Y d\e a\f f]a\e4g\a h f]i a‘jX Zk f‘]X Y f l^4m X\e j a\e n o p q r T4c W a\_/
6s9@t D C@u R v w I w v x N y z L{S y L JI|v y N O JL z{L}}S J N{I~N L J y P v~!v v J"L{I"}v~v x I J|x v}L~v{L}w S~v x P I y v|L J 1230+P S y#2L}v y{R v}v y4y S{RI v J v x O$y I%N J O4"L J O v x|N y~I J{v I J|&&’I x v w x v y v J~v|#
(8E)=t*92v x N I"{L}}S J N{I~N L J1230+P S y2N J O"v+{R N ww x L{v y y L x&&’*&$J I}N{|I~I v,{R I J O v/
-引言
自动化仪表的数字化.分散化.网络化4即现场总线4是其重要的发展方向之一5它克服了&/2系统的控制和采集相对集中.系统封闭的缺点5它将现场的智能模块赋予强大的采集和控制功能4把各模块和远程监控微机通过双绞线作总线4按照开放的.规模的通信协议连成网络4从而使控制更灵活4危险更分散5其通讯协议主要有00.M L J1L x2y.H x L z N P S y./34等几种4但它们都较为复杂4需要专门的硬件支持5针对目前仪表过渡阶段而言41230+总线通讯方式更为简洁灵活5由于其传输速率高4误码率低4距离远*不加中继器时有效传输距离可达’(--}/4硬件接口简单4软件易实现4性价比较高等优点使得基于1230+协议的系统更适合于现场4特别是中小型数据采集和控制系统的应用5本文将给出一种基于该总线的数据采集和控制系统的软硬件设计方法及诸如节电.中长距离通信.和&&’接口等的应用5
5单片机与微机远程通信的实现
5#-实现!"#$%总线通信的一般应用
如图’4由于全双工方式需要(对双绞线4为节约成本和简化控制4这里采用半双工两线制方式5系统首先将单片机的信号和串行电平接口芯片如*63730)4
,+’,.等/相连4进行u u M81230+电平互转4作为一个节点连接到由双绞线组成的1230+总线网络上4再在
远程微机端用电平转换模块*如3|I}3+(-等/进行
1230+812()(电平互转后和计算机串口相连5每个节点都有自己的独立的地址5通过远程微机端发送带有地址码的命令码4由各个节点对命令进行监听4和命令码中的地址相匹配的节点将在规定的时间内完成规定的读写操作4并返回相关信息
5
图’1230+网络通信的一般模式
(#’#’单片机编程
第(3卷第3期增刊仪器仪表学报(--)年0月&本文得到石油大学博士基金资助5
万方数据
目前!单片机一般都自带串口通讯"#$方式!只要初始化设置好传输波特率和数据传输格式!即可实现简单的%"&’&格式的标准数据输入输出(在对节点进行编址时!有硬件和软件设定两种(硬件是通过拨码开关设置!
其接口简单!但浪费硬件资源(因此在硬件资源有限有情况下!则需要通过软件设定(在本设计中!
由于需要!使用美国)*+,-+.*/公司的自带0&1%2)和"#$模式的1$#345674芯片(该芯片体积小!$82口
较少(为节约资源!由软件设定节点地址9范围为:3;
<<=!并以>"#$$码的形式存于单片机的0&
1%2)中(其通讯部分程序框图如图&
(
图&单片机程序框图图’上位机程序框图
&?3?&上位机编程
上位机中使用多串口连接多台设备!每个串口分别对应于各自的%"@6A 8%"&’&转换模块(如图’所示!本设计中使用>++B C C 建立地址数据表!每个记录的内容包括节点的地址!节点所连接的串口号等内容(通过查表!向某端口某地址的节点发送指令(如读取当前记录的端口号为&!地址号为3’!
若发读指令则将向端口&发送>>:3:’D :(若成功!则串口&上地址为3’的节点将返回规定格式的数据到微机!经组合分析正确后!
发送到显示数据表相应记录中E 若未得到响应9返回#&或无返回值=!
可要求该节点重发或忽略通讯错误(若在最大允许未连接时间9该节点连续未响应次数F 采样时间间隔F 轮询一次的节点数=
内未响应!则表示通讯故障!应对数据进行相应处理(值得注意的
是!
必须考虑节点的响应时间!否则会因采样时间太短而导致节点间的冲突(G ?G 系统的特殊应用
&?&?3节电应用
如图3!
对于电源不稳的情况!若由于某种原因节点外部电源突然关闭!由内部备用电池供电的系统!通过将节点的外部电源电压引入单片机引脚作为数字输入!若为3正常操作!若为:!
则关闭仪表的异步通讯方式!并使仪表进入低功耗模式!同时使%"@6A 接口芯片所有数据端电平为低!
防止电压通过数据端的耦合至芯片消耗电能!从而使仪表的功耗降到最低!实践证明该方法十分有效(
&?&?&用电台发送和接收信号
对于部分距离较远如&;3:H I 的场合!可以将距离较近的几个节点通过@6A 总线连接到位于某频点上
双向电台(
在微机端接上同频点的双向电台!接入计算机串口(其他操作不变(该应用可有效节省%"
@6A 总线远传信号所需中继器的费用!
特别适合于局部应用(&?&?’通过J J 0与工控软件组态王的连接
J J 09动态数据交换=是进程间的通讯方法(进程间的通讯包括进程间及同步时间之间的数据传递(
J J 0使用共享内存来实现进程间的数据交换及使用
协议达到传递数据的同步(许多软件都支持J J 0连接!如组态王软件K 0L #0M 表K N D 程序等(在本设计中!
通过把数据发送至显示表的同时!发送至后台运行的0O +B P 表(设置组态王的J J 0连接设备项目名
0O +B P B O B !话题名0O +B P 表相应C .B B Q 名进行J J 0连
接!再用变量和0O +B P 表相应的O 行R 列数据%O #R
对应(
S 结
论
作为一种廉价便利的通讯方式!基于%"
@6A 总线的系统具有接口简单!性价比高等优点!其应用前景广阔(
参考文献
3王有绪!许杰!李拉成?1$#系列单片机接口技术及其应用
系统设计北京T 北京航空航天大学出版社!&:::?
&组态王4?:使用手册?北京亚控科技发展有限公司?&::3?
6
4@仪器仪表学报
第&@
卷万方数据