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

发布者:恬淡岁月最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章
摘要:85C30是美国AMD公司生产的高性能双通道串并转换通信控制器,它支持多种通信协议,可用于各种多串口通信应用领域,文中介绍了85C30的特性、结构和功能,给出了85C30在异步通信中的应用方法。 关键词:串行通信控制器 85C30 异步通信 1 概述 85C30是AMD公司生产的双通道、全双工、支持多种通信协议的通信控制芯片,该芯片自身带有串并、并串转换功能,可广泛应用于微控制器组成的多串口串行通信应用系统中。其内部集成了波特率生成器、数字锁相环和晶体振荡器等可编程器件,因而可大大减少对外围电路的需要,提高了系统的可靠性,更适用于高速通信应用领域。 85C30的主要特性如下: ● 具有两个可全双工工作的通信通道; ● 可异步、同步串行通讯; ● 符合面向字符的同步协议,如IBM BISYNC(二进制同步通信协议); ● 符合面向比特的同步协议,如同步数据链路控制协议HDLC和高级数据链路控制协议SDLC; ● 最高数据传输率为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的同步通讯控制端。 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%。
引用地址:串行通信控制器85C30及其应用

上一篇:NRZ-HDB3码转换器的高速长距离通信
下一篇:多费率电能表中基于单片机串行口红外通信的设计

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved