0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:单片机与嵌入式系统应用 作者:杨凌云;樊桂花; 2020-06-09 07:50 次阅读

引言

在交通路口的红绿灯控制系统中,需要将各器口车流量、车速等状态信息时传到主控室,另外,上位主机随时可能下发各种道路控制信息。这种远距离通信常通过 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所示。[page]

根据系统要求,上位主机应能随时发送命令或接收数据,这样与上位机连接的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以内的通信连接,不失为较好的选择。在实际应用中,为保证数据传输的实时性,系统在上电初始化后,即可以对线路进行链接。正常情况下线路应处于链接状态,这样才能保证上位机对下位机的及时控制,避免线路重新链接带的延迟。该系统已成功用于交通路口联网控制。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44514

    浏览量

    632927
  • 收发器
    +关注

    关注

    10

    文章

    3393

    浏览量

    105859
  • 计算机
    +关注

    关注

    19

    文章

    7418

    浏览量

    87711
收藏 人收藏

    评论

    相关推荐

    89C52 单片机

    单片机89C52用六个数码管实现简单的加减乘除
    发表于 12-29 13:49

    如何去实现一种基于89C52单片机的按键计数仿真设计?

    怎样去设计基于89C52单片机的按键计数仿真硬件电路?怎样去实现基于89C52单片机的按键计数仿真软件代码?
    发表于 07-19 07:32

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

    通过 16C554完成上位主机对多台 MODEM的控制,采用背靠背连接实现主机与下位的远距离通信。该系统已成功地用于城市交通路口的信息传输。
    发表于 04-08 09:49 42次下载

    基于89C52的GPS板电路设计与实现

    摘要:介绍了基于89C52的GPS板电路设计与实现,基于GPS技术,利用89C52单片机实现卫星导航电文的接收与处理,将纬度、经度、高度、速
    发表于 05-04 10:34 87次下载

    89C52单片机模块

    模块结构框图和功能描述 模块结构框图如图:采用8位单片机89C52,时钟电路使用片内时钟振荡,具有上电复位和手动按键复位功能,外接WDG复位电路。通过并行总线外扩
    发表于 12-17 21:55 245次下载

    at89c52单片机引脚说明,AT89C52高性能8位单片机

    at89c52单片机引脚说明,AT89C52高性能8位单片机
    发表于 04-29 22:05 2.6w次阅读
    at<b class='flag-5'>89c52</b><b class='flag-5'>单片机</b>引脚说明,AT<b class='flag-5'>89C52</b>高性能8位<b class='flag-5'>单片机</b>

    基于89C52单片机和DS1302的万年历设计

    基于89C52单片机和DS1302的万年历设计.
    发表于 03-09 14:10 935次下载
    基于<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b>和DS1302的万年历设计

    74LS164的管脚定义与89C52单片机秒表的设计

    本文介绍了89C52单片机秒表的设计要求与方法。 (1)理解数码管动态显示的原理 (2)掌握数码管动态显示程序的设计方法 (3)掌握74LS164 扩展端口的方法 (4)掌握单片机定时
    发表于 11-27 10:30 25次下载
    74LS164的管脚定义与<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b>秒表的设计

    89c52单片机代码

    89c52单片机代码
    发表于 01-29 15:54 2次下载

    89C52单片机和nRF24L01无线收发器芯片应用的收发程序免费下载

    本文档的主要内容详细介绍的是89C52单片机和nRF24L01无线收发器芯片应用的收发程序免费下载。
    发表于 05-06 16:40 60次下载
    <b class='flag-5'>89C52</b><b class='flag-5'>单片机</b>和nRF24L01无线<b class='flag-5'>收发器</b>芯片应用的<b class='flag-5'>收发</b>程序免费下载

    使用89C52单片机实现DHT11的应用和LCD1602显示的程序免费下载

    本文档的主要内容详细介绍的是使用89C52单片机实现DHT11的应用和LCD1602显示的程序免费下载。
    发表于 03-20 08:00 17次下载
    使用<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>DHT11的应用和LCD1602显示的程序免费下载

    AT89C52单片机实现喇叭驱动的设计

    AT89C52单片机实现喇叭驱动的设计
    发表于 11-23 17:06 53次下载
    AT<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>喇叭驱动的设计

    单片机基础】89C52单片机串口通信

    )RI1、89C52串口通信简介STC89C52系列单片机内部集成有一个功能很强的全双工串口通信,与传统8051
    发表于 11-23 17:21 10次下载
    【<b class='flag-5'>单片机</b>基础】<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b>串口<b class='flag-5'>通信</b>

    基于89C52单片机的洗衣控制程序及proteus模拟

    基于89C52单片机的洗衣控制程序及proteus模拟
    发表于 11-25 15:36 44次下载
    基于<b class='flag-5'>89C52</b><b class='flag-5'>单片机</b>的洗衣<b class='flag-5'>机</b>控制程序及proteus模拟

    单片机发送数据给上位程序89c52资料

    单片机发送数据给上位程序89c52资料
    发表于 12-28 10:00 24次下载