- 相关推荐
三星ARM处理器S3C4510B的HDLC通道使用及编程
三星16/32位ARM处理器S3C4510B是目前在国内应用非常广泛的一种性价比很高的ARM处理器,本文在介绍S3C4510B中HDLC通道结构特点的基础上,详细说明了4510中HDLC通道在DMA收发方式下的工作过程,使用方法和编程中的一些注意事项。
S3C4510B(以下简称4510)是韩国三星公司开发的一款基于ARM7TDMI架构的16/32位高性能微处理器。具用丰富的外围接口,如以太网,HDLC等,可灵活配置,适用于多种应用。4510具有以下性能特点:
◆ 8K字节的内部CACHE,也可用作内部SRAM
◆ 两线IIC接口,作为IIC主器件使用
◆ 以太网控制器
◆ 双通道HDLC控制器
◆ 双UART
◆ 双GDMA通道
◆ 两个32位定时器
◆ 18个可编程IO端口
◆ 中断控制功能
◆ 外部SDRAM/DRAM/FLASH/ROM控制
本文主要介绍4510中HDLC通道的使用和编程方法。
HDLC协议帧结构和特性请参阅相关书籍和4510数据手册,这里不详细介绍。
4510的HDLC通道结构如附图1所示。具有以下特点:
1. FIFO:发送和接收模块都有32字节(8字)FIFO,提供CPU内部总线到HDLC串行接口之间的数据缓存功能。
2. DMA:HDLC通道的发送和接收支持DMA方式。
3. 波特率产生:4510的HDLC通道包含一个可编程的波特率产生计数器,能够产生各种波特率的传输速率。
4. DPLL:4510的HDLC通道包含一个数字锁相环(DPLL),提供了时钟恢复功能,可从编码后的数据流中迅速提取出时钟信息。
5. 编码方式:4510的HDLC通道支持五种编码方式,分别为NRZ,NRZI,FM0,FM1和差分曼彻斯特编码,编码波形请参看附图2。
详细的内容请参阅4510数据手册。
4510的HDLC通道收发可工作在CPU模式和DMA模式下,在我们的应用和编程中使用了DMA方式,因此这里主要介绍DMA方式下的工作过程。4510的HDLC通道工作过程大致可以分为通道初始化,数据发送,数据接收三个部分。
HDLC通道初始化过程可分为七个步骤;一:通道复位,恢复其默认配置;二:通过设置工作模式寄存器(HMODE)来配置HDLC工作模式;三:通过设置控制寄存器(HCON)来控制HDLC通道的工作;四:通过设置中断控制寄存器(HINT)来控制HDLC通道的中断产生;五:设置站址寄存器(HSAR0-HSAR3)和站址屏蔽寄存器(HMASK),以完成接收操作的地址比较功能;六:建立DMA方式的发送和接收BUFFER描述符链表结构,并初始化DMA发送BUFFER描述符指针寄存器(HDMATxPTR)和DMA接收BUFFER描述符指针寄存器(HDMARxPTR);七:使能HDLC通道的收发功能。
HDLC通道复位可通过设置控制寄存器(HCON)前4比特来完成,请参阅4510数据手册。
工作模式寄存器(HMODE)中的不同位定义了不同的工作模式,这里介绍较常用的几种模式设置,详细内容和配置方法请参阅4510数据手册。
1. 数据编码方式选择:从所支持的五种编码方式中选择。
2. 波特率时钟源选择:如果使用4510的内部波特率产生器,则需要为其选择时钟源,同时根据不同的时钟源配置波特率产生计数器(HBRGTC)产生需要的时钟信号。
3. DPLL时钟源选择:如果使用DPLL,则需要为其选择要跟踪的时钟源。
4. 发送时钟选择:4510的HDLC通道支持多种发送时钟源,可通过设置HDLC通道的模式寄存器中的相应位来选择。
5. 接收时钟选择:4510的HDLC通道支持多种接收时钟源,可通过设置HDLC通道的模式寄存器中的相应位来选择。
控制寄存器(HCON)控制HDLC通道工作情况,这里介绍常用的控制选项,详细的内容和配置方法请参阅4510数据手册。
1. 波特率产生/DPLL使能:如果使用了内部的波特率产生器或者DPLL,为使它们工作,需要设置HDLC通道的控制寄存器中相应位来启动工作。
2. 收发FIFO深度设置:当使用CPU方式进行HDLC收发时,可设置收发FIFO深度。FIFO深度可设置为8字节/32字节。当使用DMA方式时,此设置无效。
3. DMA发送停止/跳过方式设置:使用DMA方式发送时,如果当前使用的发送BUFFER描述符不属于DMA所有,可根据此设置来停止DMA发送,或是跳到发送BUFFER描述符链表中的下一个描述符。
4. DMA接收停止/跳过方式设置:使用DMA方式接收时,如果当前使用的接收BUFFER描述符不属于DMA所有,可根据此设置来停止DMA接收,或是跳到接收BUFFER描述符
【三星ARM处理器S3C4510B的HDLC通道使用及编程】相关文章:
ARM处理器的Boot与Remap03-07
32位ARM嵌入式处理器的调试技术03-20
ARM922T核ZCP320A处理器PCI总线操作12-07
基于ARM9微处理器与Linux操作系统的SD驱动开发03-07
基于FPGA的HDLC通信模块的实现05-14
VB编程中网格控件的选用及使用方法03-18
基于ARM的车载GPS系统的研究03-07