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

发布者:温暖微笑最新更新时间:2023-09-13 来源: elecfans关键字:89C52  单片机 手机看文章 扫描二维码
随时随地手机看文章

引言

在交通路口的红绿灯控制系统中,需要将各器口车流量、车速等状态信息时传到主控室,另外,上位主机随时可能下发各种道路控制信息。这种远距离通信常通过 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以内的通信连接,不失为较好的选择。在实际应用中,为保证数据传输的实时性,系统在上电初始化后,即可以对线路进行链接。正常情况下线路应处于链接状态,这样才能保证上位机对下位机的及时控制,避免线路重新链接带的延迟。该系统已成功用于交通路口联网控制。


关键字:89C52  单片机 引用地址:基于89C52单片机和16C554收发器实现扩展通信接口的设计

上一篇:基于C89C58RD+单片机与VS1003实现MP3播放器设计
下一篇:基于AT89C55单片机和PCA82C250实现分布式通信网络的设计

推荐阅读最新更新时间:2024-11-12 10:44

如何快速零基础到入门51单片机(三)
单片机介绍 单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口、定时器、中断系统等电路,从而构成了单芯片微型计算机,也就是单片机(single chip Microcomputer)也叫微控制器(MCU)。 https://pic1.zhimg.com/80/v2-7110e1c15a3e3d73697d21841407db97_1440w.jpg 单片机的性能与计算机相比计算机要高出非常多。正是因为早期的电脑为了性能丰富导致体积大、造价昂贵,人们只需要它的部分功能,就把主要的一些器件拿出来组成了新的物品就是单片机。 所以单片机的优点就是体积小、结构简单、而且成本很低。 单片机的工作流程
[单片机]
学51单片机-UART口发送一串字符
昨天说的是如何通过UART口发送一个英文字母,其实对照那个ASCII码表,大小写字母、数字、标点,还有一些符号都可以发送,只要你找到它对应的编码就行。 今天说一下如何用UART口发送字符串和汉字。 如果按照昨天的思路,发送一串字母或者数字也很好实现,我只要把这串字母或者数字对应的ASCII码找出来,写进一个数组就行了。但是这样还要查表,有点麻烦,今天说一个更简单的方法。 假如我想发送5个字母 A,用昨天的方法,怎么实现?定义一个数组: Uchar table = {0x41,0x41,0x41,0x41,0x41}; //五个字母 A 显得很傻,这次的方法:
[单片机]
学51<font color='red'>单片机</font>-UART口发送一串字符
东芝面向超低功率MCU开发隧穿场效应晶体管
东京—东芝公司(TOKYO:6502)今天宣布面向超低功率微控制器(MCU)开发采用新工作原理的隧穿场效应晶体管(TFET)。该工作原理已经被应用到使用CMOS平台兼容工艺的两种不同的TFET开发中。通过将每种TFET应用到一些电路块中,可实现大幅降低MCU的功耗。 9月9日和10日,东芝在日本筑波举办的2014年固态元件与材料(SSDM)国际会议上的三场展览中展示了其TFET。其中的两次展览是建立在与日本产业技术综合研究所(AIST)合作研究团队绿色纳米电子中心(GNC)的联合研究的基础上。 无线设备和移动设备的需求快速增长,正拉动着大规模集成电路(LSI)超低功耗的需求增长。在这种形势下,我们急切需要创新设备,
[模拟电子]
单片机中断唤醒
生活上有很多东西都搭载着单片机而进行工作的,而且有相当一部分的设备、仪器、产品都是靠蓄电池来提供电源的,往往这些靠蓄电池供电的设备、仪器、产品都能够用上一大段时间。例如我们经常接触到的遥控器,假若MCU一直不停地运行,不出一段时间,电池的能量会很快耗光。当然在8051系列单片机搭载的系统中,不光有单片机需要耗电,同时还有其他外围部件耗电的,因此,我们在适当的时候关闭设备的运行同时将8051系列单片机的运行模式进入空闲模式或者掉电模式,以节省不必要的能源,达到低功耗的目的。 平时8051系列单片机正常工作的电流为4毫安~7毫安;当8051系列单片机进入掉电模式下,它的工作电流小于1微安。由此可见,低功耗设备的功耗控制很有必要在适当的
[单片机]
<font color='red'>单片机</font>中断唤醒
MSP430单片机__中断服务
430的中断优先级顺序定义,有三种中断:1.系统重置、2.不可屏蔽中断(NMI)、3.可屏蔽中断。 部分具体的中断优先级由高到低为: PORT2_VECTOR (1 * 2u) /* 0xFFE2 Port 2 */ PORT1_VECTOR (4 * 2u) /* 0xFFE8 Port 1 */ TIMERA1_VECTOR (5 * 2u) /* 0xFFEA Timer A CC1-2, TA */ TIMERA0_VECTOR (6 * 2u) /* 0xFFEC Timer A CC0 */ ADC_VECTOR (7 * 2u) /* 0xFFEE ADC */ USART0TX_VECTOR (8 * 2u
[单片机]
51单片机之大杂烩
/************************************************************ 程序实现的功能: 用矩阵按键控制 8*8 LED 点阵和数码管, 实现按下1到9的数字键数码管从100或200。。。或900的 倒计时,一秒钟减1,直到减到0为止。 同时LED点阵以呼吸灯的方式渐明渐暗,显示“王”字, 当按下数字键0时,LED点阵关闭,同时数码管停止计数 并显示结果。 作者:宁静致远 ************************************************************/ #i
[单片机]
基于单片机的旋转led(初级版)
旋转led,记得第一次接触的时候是在半年前的一个视频,当时什么都不知道,为何这样显示呢?就是想不通,后来买了一个套件,做出来了,也是想不通,其实那个套件不用编程序,有一个可以直接生成.HEX文件,所以对于 这种懒于编程序的人来说,是一个不错的选择,可是后来,在度娘不断的开导与帮助下,我终于能自己编一个小程序了,度娘给予了我极大的帮助,她教会了我许多,在此感谢一下我伟大的度娘,先说一下本次历时很久,颇具传奇的旋转led吧。 硬件部分: (1)底座供电,采用通用的无线供电技术,别小瞧这个东西,虽然电路很简单,可是不是很好调啊,这个破东西浪费了我数日不吃不喝的精力,平时看网上他们调的都很好,供电也很稳定,为啥我这个就问题重重呢?真是特娘的
[单片机]
基于<font color='red'>单片机</font>的旋转led(初级版)
51单片机(利用return)实现判断数据头来接收
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: return ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200808 ---- @ModifiedTime: 20200808 ----
[单片机]
51<font color='red'>单片机</font>(利用return)实现判断数据头来接收
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved