微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 80C152单片机上HDLC通信规程中的应用

80C152单片机上HDLC通信规程中的应用

时间:05-02 来源:互联网 点击:

80C152是一种基于MCS-51的高集成度8位微控制器,也是一种通用通信控制器。它既适用于外围系统或器件的智能管理,也适用于低成本,高速串行通信场合。80C152是80C51的派生产品,保留了80C51的所有功能;增加了新的功能和外围电路,包括:一种叫做全局串行通道(GSC)的高速多协议串行通讯接口,两个直接存储器存取(DMA)通道,HOLD/HLDA总线控制,第5、6、7个I/O口。较大的片内RAM容量。因而特别适用于综合业务数字网(ISDN)、局域网和用户定义的串行多机系统。

1 80C152的主要特性与结构

80C152的主要特性如下:

(1)MCS-51兼容的UART;

(2)多种省电工作方式;

(3)可寻址64K字节数据存储器;

(4)可寻址64K字节程序存储器;

(5)两个通用定时/计数器;

(6)多协议串行通信I/O口(最大2.048Mbps/2.4Mbps),支持CSMA/CD和SDLC/HDLC,用户定义协议;

(7)全双工/半双工通信;

(8)256字节片内RAM;

(9)两个片内DMA通道;

(10)保持/响应(HOLD/HLDA)总线控制;

(11)7个I/O口;

(12)58个SFR;

(13)11个中断源,除包含80C51的5个中断源外,新增的6个中断源用于全局串行通道。

上述(1)~(5)是与80C51相同的特性,(6)~(13)是80C152所特有或比80C51提高的特性。

其结构简图如图1所示。

2 全局串行通道

全局串行通道(GSC)是一个多协议、高性能的串行接口,用作通信控制器。GSC接口支持同步数据链路控制(SDLC)、具有冲突检测的载波监听多址访问(CSMA/CD)、用户客义协议和高速数据链路控制(HDLC)协议的子集。GSC功能包括:地址识别、冲突解决、CRC产生、标志产生、自动重发送和硬件应答特性。在使用片内时钟时可实现高至2Mbps数据速率,在使用外部时钟可实现高至2.4Mbps数据速率。在使用串行通道的应用中,GSC可实现国际标准化组织(ISO)参考模型中所描述的开放系统互连(OSI)的数据链数层和物理链路层。

2.1 GSC通道的DMA服务

有两种方法来控制GSC:一是CPU控制;二是DMA控制。在用户软件处理一些任务时(如装入TFIFO、读RFIFO、检查状态标志、发送过程一般跟踪),采用CPU控制。当任务数据增加及使用较高的数据速率。CPU所需开销成为主要时间消耗,最后,会达到CPU花费100%的时间去响应GSC请求。DMA通道可由用户软件设置为由DMA控制器来处理GSC数据传送。80C152有两个DMA通道,一个通道用于接收,一个通道用于发送。使用DMA通道时,CPU可省去为GSC缓冲器基本服务所需的时间。DMA通道可提供的服务类型为:装入TFIFO、从RFIFO中移出数据、在收发结束时通千CPU和响应一定的出错条件。在使用DMA通道时,准备串行发送的数据源或目的可以是内部存储器、外部数据存储器或任何SFR。对DMA和GSC寄存器进行初始化手的唯一任务是允许适当地中断并通知DMA控制器什么时候启动DMA。在DMA启动后,CPU所需做的事就是响应出错条件或等待传送结束。80C152专门为GSC数据传送提供了6个中断源,它们是:GSCRV(GSC接收正确)、GSCRE(GSC接收出错)、GSCTV(GSC发送正确)、GSCTE(GSC发送出错)、DMA0(DMA通道0完成)、DMA1(DMA通道1完成)。

2.2 80152中的DMA

80C152包含两个相同的可16位寻址的通用8位DMA通道;DMA0和DMA1。与每个通道相关的有7个SFR。SARLn和SARHn分别保存源地址的低位和高位字节,合在一起构成16位源地址寄存器。DARLn和DARHn分别存储目的地址的低位和高位字节,合在一起构成16位目的地址寄存器。BCRLn和BCRHn分别保存将被传送字节数据地址的低位和高位字节,合在一起成字节计数寄存器。DCONn包含控制和标志位。

对DMA通道的初始化需设置控制寄存器、源地址和目的地址寄存器。

控制寄存器DCON的装入值及意义如图2所示。

DCONn中的DASn(目的地址空间位)和IDAn(目的地址自动加1位)用于指出数据传送的物理目的空间。DCONn中的SASn(源地址空间位)和ISAn(源地址自动加1位)用于指出数据传送的物理源空间。采用DMA控制器来处理GSC数据传送时,当DMA通道用于接收服务时,首先将接收机传送来的数据自动送入到接收缓冲器RFIFO中,其源地址寄存器应置成RFIFO地址(SARHN=x x H,SARLN=0F4H);然后,将接收缓冲器中的数据传送到目的地址指定的物理空间,其可以是外部RAM、内部RAM或SFR;最后,对收到的数据进行CRC校验,并通知CPU是否正确接收到该帧数据。当DMA通道用于发送服务时,首先将要发送的数据传送到先入先出发送缓冲器TFIFO中,其目的地址寄存器应置成TFIFO地址(DARHN=xxH,DARLN=85H);然后,将先入先出发送缓冲器TFIFO中的数据传送给发射机;最

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top