串行通信控制器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所列。
表185C30各中断事件的优先级
通道A接收中断
通道A发送中断RR2=6
RR2=4HIGH
↓
LOW通道B接收中断
通道B发送中断RR2=2
RR2=0
85C30中的读寄存器RR2能实时反映出芯片内申请中断的各个中断源优先级最高的中断源,当芯片没有中断申请时,RR2的默认值为3。程序执行时,系统将首先判断U4是否有中断申请,若有,则处理相应任务。另外,在MCU处理了一个85C30的中断源后,再次读取RR2,则可再次得知当前申请中断的优先级最高的中断源。这样,就可以通过一次硬件中断申请来完成多个中断源的任务,从而大大节省了频繁进出中断的现象,从而节约了中断处理时间,提高了系统的可靠性和灵活性。
6结束语
85C30具有两个通道,可支持多种通信协议,并可方便地扩展系统串口,提高系统通信的灵活性和可靠性。当系统中各子通道通信速度不一样时,仅需修改各自通道中的波特率寄存器的设置即可。实验证明:在异步模式下,该系统可实现双通道115.2kbps的通信速度,且其错误率为0%。
《串行通信控制器85C30及其应用(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/143859.html
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所列。
表185C30各中断事件的优先级
通道A接收中断
通道A发送中断RR2=6
RR2=4HIGH
↓
LOW通道B接收中断
通道B发送中断RR2=2
RR2=0
85C30中的读寄存器RR2能实时反映出芯片内申请中断的各个中断源优先级最高的中断源,当芯片没有中断申请时,RR2的默认值为3。程序执行时,系统将首先判断U4是否有中断申请,若有,则处理相应任务。另外,在MCU处理了一个85C30的中断源后,再次读取RR2,则可再次得知当前申请中断的优先级最高的中断源。这样,就可以通过一次硬件中断申请来完成多个中断源的任务,从而大大节省了频繁进出中断的现象,从而节约了中断处理时间,提高了系统的可靠性和灵活性。
6结束语
85C30具有两个通道,可支持多种通信协议,并可方便地扩展系统串口,提高系统通信的灵活性和可靠性。当系统中各子通道通信速度不一样时,仅需修改各自通道中的波特率寄存器的设置即可。实验证明:在异步模式下,该系统可实现双通道115.2kbps的通信速度,且其错误率为0%。
《串行通信控制器85C30及其应用(第2页)》