基于arm处理器的hdlc通信的dma实现

基于arm处理器的hdlc通信的dma实现

ID:24909495

大小:53.00 KB

页数:7页

时间:2018-11-17

基于arm处理器的hdlc通信的dma实现_第1页
基于arm处理器的hdlc通信的dma实现_第2页
基于arm处理器的hdlc通信的dma实现_第3页
基于arm处理器的hdlc通信的dma实现_第4页
基于arm处理器的hdlc通信的dma实现_第5页
资源描述:

《基于arm处理器的hdlc通信的dma实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于ARM处理器的HDLC通信的DMA实现

2、第1摘要:以ARM7TDMI为内核的Samsung公司S3C4510B网络微控制器(Net)厂商提供的BSP基础上进行开发工作;对于底层硬件的操作,程序设计人员很少关注或只是少量的修改。实际上很多产品,我们完全可以抛开操作系统的模式,避免不必要的系统开销,而对底层的硬件直接进行处理。这样,可以节省资源提高利用率。当然,这样也会人为地增加系统开发设计的难度。但是从长远的角度看,进行这样的设计思考还是非常必要的。现在一些产品的设计开发中,所缺少的实际上就是深入了解底层操作,这样往往使我们丢失了创新的机会。500)this.style.ouseg(thi

3、s)">本文主要分析如何在硬件基础上直接进行程序设计,介绍如何在底层进行HDLC通信控制操作,以及如何处理数据结构等方面的问题。对于进行驱动程序的设计以及进行系统设计,都提供了良好的借鉴。1S3C4510B以及HDLC模块S3C4510B是三星公司生产的以ARM(AdvancedRISCMachines)16/32bits的RISCARM7TDMI微处理器为内核的一种网络微控制器(MCU,NetePNA、SOHO)的开发设计。这款MCU在ARM7TDMI处理器的基础上,外加2个通道的HDLC控制器、I2C总线和2个通道串行接口、1个MAC控制模块以及统一的MII界面,提供10MHz/100M

4、Hz以太网的自适应连接。对于网络产品的设计提供了灵活的支持。在软件开发设计方面,NetMCU使用的是ARM7TDMI处理器内核,所以支持ARM的开发工具(如的ARMstd251等)都对其适用,方便用户开发设计,最大限度地获得支持资源。1.1S3C4510B中的HDLC模块S3C4510B的HDLC(High-levelDigitalLinkController)控制器拥有2个串行通道。HDLC模块支持符合SDLC标准和HDLC标准的CPU/数据通道接口,包含2个DMA引警;支持使用对应帧的缓冲区描述符结构,而且可以灵活地配置通道物理编码模式(NRZ,FM,MAN),选择本地或者外部时钟;支持

5、通过锁相环路从接收数据流提取时钟信号。使用的HDLC的帧结构如表1所列。表1开始标志地址域控制域信息域帧校验结束标志7EH2/4Bytes1Byte8bit/Byte16bitCRC7EH图1是S3C4510BHDLC控制器功能结构,主要包括总线仲裁单元、DMA控制器、8字的发送接收(Tx/Rx)FIFO、状态/控制寄存器和物理收发器。总线总裁单元负责向CPU申请系统总线;DMA控制器使用缓冲描述符在无CPU干预下控制数据帧的收发;8字(字=32bit)FIFO结构对CPU和串行接口的数据进行立即存储;物理收发器控制HDLC通道的运行模式、编解码等;状态/控制寄存器是运行的核心,程序设计人员

6、通过设置,检测这些寄存器控制数据的收发。1.2中断模式和HDMA(HDLCDMA)模式(1)中断模式HTxFIFO结构通过把帧数据分别写入“帧连续地址”和500)this.style.ouseg(this)">“帧结束地址”控制发送行为;接收时,作为中断响应,读取HDLC状态寄存器,如果RxFA=1,则可以由CPU从HRxFIFO结构读取数据,直到最后一个Byte标志设置。中断模式下CPU去处理每一次数据的收发。对于一个长帧的数据,通常需要多次CPU进行干扰去填写(或读取)FIFO,导致过多的系统处理开销(overhead),占用CPU资源。如果在有多个外部中断源的系统中,CPU利用效率十分

7、低下。(2)DMA模式使用缓冲描述符BD(BufferDescriptor)结构,可以实现以帧为单位对数据进行接收和发送控制。程序设计人员只需要填写相应BD结构的域信息,配置收发模式,具体的执行细节交给DMA单元控制完成。CPU只是对每一帧进行处理,这样在一帧收发的过程中,系统可以去处理其它的任务,有效地利用CPU资源。关键在于构建BD循环链表。同时应该注意,BD及其对应的缓冲数据区必须放在系统存储区的非缓存区(NonCache),这可以通过设置地址的第26位为1来实现。1.3缓冲描述符(BD)缓冲描述符是S3C5410B使用的一种数据结构,通常构成循环链表。HDMA引擎可以直接读取结构的信

8、息,用户通过填写这些结构中的域去控制HDMA的运行行为。如图2所示,每个BD包括4个域:①数据缓存指针(databufferpointer)。第31位标识主权(oouseg(this)">//下一个BD指针}sBufferDescriptor;HDLC帧(Frame)定义(如表1):typedefstructHDLCFRAME{U8address[4];//地址U8control;//控制信息通道为FFHU8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。