基于89C52单片机和16C554收发器实现扩展通信接口的设计

2023-09-13  

引言

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


1、系统硬件设计

系统由两大部分组成:插在计算机中的上位主机和各路口的下位机。根据通信链路的连接方式,89C52为核心组成的上位主机需要通过多台MODEM实现与各路口机的数据传输。系统选用了EXAR公司的UART(通用异步收发器)16C554来扩展单片机异步通信接口。1片16C554可以完成对4台MODEM的操作。下位路口机也是由89C52组成,对MODEM的操作通过其自身UART及部分P1口线实现。图1为系统结构框图。

基于89C52单片机和16C554收发器实现扩展通信接口的设计

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单片机和16C554收发器实现扩展通信接口的设计

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指向线控寄

基于89C52单片机和16C554收发器实现扩展通信接口的设计

;存器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

基于89C52单片机和16C554收发器实现扩展通信接口的设计

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


3、结束语

以背靠背方式连接的通信网络,由于无需任何电话资源,对10km以内的通信连接,不失为较好的选择。在实际应用中,为保证数据传输的实时性,系统在上电初始化后,即可以对线路进行链接。正常情况下线路应处于链接状态,这样才能保证上位机对下位机的及时控制,避免线路重新链接带的延迟。该系统已成功用于交通路口联网控制。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。