用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

串行通信控制器85C30及其应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:58:02
【本文由PB创新网为您整理】
摘要:85C30是美国AMD公司生产的高性能双通道串并转换通信控制器,它支持多种通信协议,可用于各种多串口通信应用领域,文中介绍了85C30的特性、结构和功能,给出了85C30在异步通信中的应用方法。

    关键词:串行通信控制器 85C30 异步通信

1 概述

85C30是AMD公司生产的双通道、全双工、支持多种通信协议的通信控制芯片,该芯片自身带有串并、并串转换功能,可广泛应用于微控制器组成的多串口串行通信应用系统中。其内部集成了波特率生成器、数字锁相环和晶体振荡器等可编程器件,因而可大大减少对外围电路的需要,提高了系统的可靠性,更适用于高速通信应用领域。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    85C30的主要特性如下:

● 具有两个可全双工工作的通信通道;

● 可异步、同步串行通讯;

● 符合面向字符的同步协议,如IBM BISYNC(二进制同步通信协议);

● 符合面向比特的同步协议,如同步数据链路控制协议HDLC和高级数据链路控制协议SDLC;javascript:window.open(this.src);" style="cursor:pointer;"/>

● 最高数据传输率为4M bit/s(同步模式);

● 内含波特率生成器、锁相环和晶体振荡器;

● 具有奇偶校验、字符插入或删除、CRC(循环冗余码)生成和校验等多种自动纠错功能。

2 内部结构和引脚功能

2.1 内部结构

图1所示为85C30的内部结构框图。85C30可用于各种微控制器系统中,并具有查询、中断和DMA工作方式。

2.2 引脚功能

85C30具有40-PDIP和44-PLCC两种封装形式图2为其44-PLCC封装的引脚排列图。85C30的主要引脚功能如下:

D0~D7:数据线引脚;

RD、WR:读、写控制端低电平有效;另外,若两个引脚同时为低,可使芯片复位;

A/ B:通道A/通道B选择;

D/C :数据/命令选择;

CE:片选信号;

+5V,GND:电源接入端;

PCLK:系统时钟输入端;

INT:中断请求;

INTACK:中断响应;

IEI,IEO:分别为中断使能输入、输出端口;

RxDA,TxDA:分别为通道A的串行输入、输出;

RxDB,TxDB:分别为通道B的串行输入、输出;

TRxCA,RtxCA:分别为通道A的时钟控制端;

TRxCB,RtxCB:通道B的时钟控制端;

SYNCA、W/REQA、DRT/REQA、RTSA、CTSA、DC-DA:通道A的同步通讯控制端;

SYNCB、W/REQB、DRT/REQB、RTSB、CTSB、DCDB:通道B的同步通讯控制端。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 85C30中的寄存器

在数据通信过程中,系统是否能准确地按照规定的协议完成通信任务,主要取决于初始化及系统运行期间程序对85C30的读写寄存器的合理运用。使用时,对片上每个通道的设置都应包括16个写寄存器和11个读寄存器。在这16个写寄存器中,有10个写寄存器用于通用控制,2个用于同步字符的生成控制,2个用于片上波特率设置。此外,还有两个双通道共享的写寄存器,一个用于中断向量控制,另一个用于芯片总中断开关控制。在11个读寄存器中,有9个读寄存器用于存储通信状态和数据。

4 应用电路

85C30的接口电路如图3所示,利用该电路可实现双通道的全双工异步通信,波特率为115.2kbps。电路中采用无响应中断模式,即在85C30有中断申请且没有进行中断服务时,将85C30 的INT引脚拉低有效,以向MCU申请中断,而MCU不用向85C30输出INTACK中断响应信号,从而简化了电路。判定接收发送不同中断源的中断优先级可由程序实现。该电路主要由电平转换电路、译码电路和MCU电路组成。

电平转换电路的主要作用是提高板间通信的可靠性,由于板间通信采用的是485电平标准,因此,可利用MAX490全双工通信转换芯片将TTL电平信号转换为485电平标准的差分信号。而对于译码电路,由于85C30中有两个通道,每个通道又有各自的命令口和数据口,而且每个口都需要有相应的硬件地址。因此,该译码电路由MCU的高8位地址线、低2位地址线及GAL和地址锁存器573组成。

MCU电路主要由80C196KC组成,与MCU的连线有数据线D0~D7、RD、WR控制线和INT线,其中INT连至MCU的外部中断EXINT引脚,这样,一旦85C30有中断申请,MCU可将其作为一个外部中断申请来自动生成相应的中断向量,从而执行相应的中断服务程序。中断服务程序入口地址为0X203E。另外,PCLK外接11.05926M的晶振可用于为系统提供时钟。

图4 接收、发送中断服务程序

5 应用程序

5.1 初始化

图4给出了85C30一个通道的初始化流程图,由于芯片的两个通道所采用的通信协议完全相同,因此初始化过程也相同。每个通道的初始化可分为三个步骤:第一是进行各协议设置(如异步、校验、波特率、字符长度等);第二是对各种功能的使能(包括波特率生成器,接收中断,发送中断);第三为开中断。

5.2 接收发送中断服务程序

MCU在收到85C30的INT有效信号后将进入外部中断服务程序。图4给出了该中断服务的流程图。用该程序的一定顺序查询芯片的RR2即可实现芯片间和芯片内的中断优先处理任务,对85C30各中断事件的优先级设定如表1所列。

表1 85C30各中断事件的优先级

通道A接收中断
通道A发送中断
RR2=6
RR2=4
HIGH

LOW
通道B接收中断
通道B发送中断
RR2=2
RR2=0

85C30中的读寄存器RR2能实时反映出芯片内申请中断的各个中断源优先级最高的中断源,当芯片没有中断申请时,RR2的默认值为3。程序执行时,系统将首先判断U4是否有中断申请,若有,则处理相应任务。另外,在MCU处理了一个85C30的中断源后,再次读取RR2,则可再次得知当前申请中断的优先级最高的中断源。这样,就可以通过一次硬件中断申请来完成多个中断源的任务,从而大大节省了频繁进出中断的现象,从而节约了中断处理时间,提高了系统的可靠性和灵活性。

6 结束语

85C30具有两个通道,可支持多种通信协议,并可方便地扩展系统串口,提高系统通信的灵活性和可靠性。当系统中各子通道通信速度不一样时,仅需修改各自通道中的波特率寄存器的设置即可。实验证明:在异步模式下,该系统可实现双通道115.2kbps的通信速度,且其错误率为0%。




Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:21,234.38000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号