DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 283|回复: 0
打印 上一主题 下一主题

利用16C554实现主从式单片机远距离通信扩展

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:46:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:通过16C554完成上位主机对多台MODEM的控制,利用背靠背连接实现主机与下位机的远距离通信。该系统已成功地用于城市交通路口的信息传输。
    关键词:MODEM 单片机系统 16C554 通信
引言
在交通路口的红绿灯控制系统中,需要将各器口车流量、车速等状态信息时传到主控室,另外,上位主机随时可能下发各种道路控制信息。这种远距离通信常通过MODEM以点对点的方式进行。常用MODEM通信链路的连接方式有两种。第一种是通过电话以拨号方式完成通信链接。采用这种方式,上位主机与各路口机的距离可无限远,但缺点是每个路口占用1个电话号。由于主机与路口机的通信是频繁的,若不采用专线电话,则难以保证信息收发的实时性;而采用专线连接,势必增加系统成本和设备开销。另一种连接是直接通过调制电缆连接两台MODEM,即背靠背连接。背靠背的连接在数据传输波特率为9600 baud时,通信距离可以达到10 km,完全能够满足中小城市道路控制系统中的通信要求。本系统采用了后一种连接方式。
1 系统硬件设计
系统由两大部分组成:插

在计算机中的上位主机和各路口的下位机。根据通信链路的连接方式,89C52为核心组成的上位主机需要通过多台MODEM实现与各路口机的数据传输。系统选用了EXAR公司的UART(通用异步收发器)16C554来扩展单片机异步通信妆口。1片16C554可以完成对4台MODEM的操作。下位路口机也是由89C52组成,对MODEM的操作通过其自身UART及部分P1口线实现。图1为系统结构框图。
1.1 MODEM链路的连接
系统采用背靠背连接方式,只要用调制电缆直接连接对应MODEM的Line口就实现了链路的连接。
1.2 上位主机电路组成
上位机主要完成两部分工作。一是与计算机交换数据,将车辆检测数据及当前各路口红绿灯状态等信息送计算机显示,同时接收计算机下发的控制数据。这部分任务通过ISA总线完成,在这里不作叙述。二是控制MODEM与路口机链接,完成数据的收发。对MODEM的操作由单片机对16C554编程实现。图2是上位主机的原理图。其中62256用于暂存所有路口的收发数据;16C554用于扩展单片机的异步通信接口,实现对4路MODEM的控制;MAX238完成TTL电平至RS-232的电平转换;GAL20V8实现扩展外设的译码。
16C554是内部带有16字节收发FIFO的通用异步收发器,具有独立的收发控制电路。4路标准的MODEM接口,通过软件可分别设置允许每一路中断。波特率、数据帧格式等也都可由软件编程设置。该芯片可工作在24MHz或14.7464MHz,当时钟频率为24MHz时,数据传输率可达1.5Mbps;时钟频率为14.746 4MHz时,数据传输率达912.6Kbps,完全可以用于高速MODEM的控制中。
1.3 路口机电路组成
以89C52为核心的单片机系统实现了路口机的全部功能:与上位机的通信及车辆信息的处理。系统扩展了1片6264,现MODEM的通信接口由89C52内部的UART及P1口实现。图3给出了通信接口的电路原理图。
RS-232标准定义的接口有两种形式:25针和9针。这里采用了9针连接器。当MODEM工作于全双工方式时,不需要使用RTS/CTS握手信号。另外,背靠背的连接MODEM没有接电话机,故无需检测振铃信号RI。这样,9根线中只有连接6根线。



    89C52单片机内部有1个全双工的UART,但没有对MODEM的控制接口。对MDOEM的控制由P1口实现,它们分别为载波检测DCD、数据设备就绪DSR、数据终端就绪Dtr,这样共同实现MODEM的链接和数据的收发。
2 系统软件设计
2.1 通信线路的链接与掉线的处理
采用背靠背连接方式,首先要解决通信的链接问题。由于无振铃信号触发自动应答,因此被动一方的MODEM应在开机工作过程中定时地云检测裁波信号。如果链路未通,则采用应答方式摘机,直至链接成功。主动方、被动方MDOEM的通信链接过程如图4所示。
根据系统要求,上位主机应能随时发送命令或接收数据,这样与上位机连接的MODEM定为主动方。由于上位机与下位机的摘机是异步的,因此,上位机MDOEM等待载波建立时间要大于下位机MODEM等待载波的建立时间。这里上、下位机等待载波建立时间分别设为2.5min和50s。若上位机定时器的定时时间到而未建立链接,则被视为通信有问题,通过计算机反映出链接失败,同时下位机定时摘机时间可设为1min,这样才能保证线路由于挂机或非正常掉线后能再次接通链路。
2.2 16C554的初始化
16C554集成有全部的MODEM控制逻辑,通过对其内部的13个寄存器的读写,就可以完成对标准MODEM的操作。
系统上电后需先对16C554进行初始化,包括设置波特率及传输数据的帧格式、设置中断允许位、对FIFO的控制设置等。
INIMODEM:
MOV DPtr,#0F803H ;DPtr指向线控寄


;存器LCR
MOV A,#80H ;设置波特率
MOVX @DPtr,A
ANL DPL,#0F8H
MOV A,#0CH
MOVX @DPtr,A ;送波特率常数:9600baud
INC DPL
CLR A
MOVX @DPtr,A
INC DPL
INC DPL ;DPtr指向线控寄存器LCR
MOV A,#03H
MOVX @DPtr,A ;设置数据帧格式
INC DPL ;指向MODEM控制寄存器
MOV A,#01H


MOVX @DPtr,A ;置设备终端准备就绪
ANL DPL,#0F8H
ORL DPL,#02H ;指向MODEM控制寄存器
;MCR
MOV A,#03H ;置FIFO有效,清接收FIFO
ANL DPL,#0F08H
ORL DPL,#01H ;DPtr指向中断允许寄存器
;IER
MOV A,#01H
MOVX @DPtr,A;设置接收寄存器中有数则
;中断
RET
结束语
以背靠背方式连接的通信网络,由于无需任何电话资源,对10km以内的通信连接,不失为较好的选择。在实际应用中,为保证数据传输的实时性,系统在上电初始化后,即可以对线路进行链接。正常情况下线路应处于链接状态,这样才能保证上位机对下位机的及时控制,避免线路重新链接带的延迟。该系统已成功用于交通路口联网控制。
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-22 14:40 , 耗时 0.097103 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表