CC2531的DMA操作时,如何初始化?

全部回答2
默认 最新
  •      cc2531是ti公司针对2.4 ghz ism频带推出的第二代支持zigbee/ieee 802.15.4协议的片上集成芯片。其内部集成了高性能射频收发器、工业标准增强型8051 mcu内核、256 kb flash和8 kb ram;具有1个usb全速接口、2个usart、8位和16位定时器、看门狗定时器、8路输入可配置的12位adc、21个gpio、aes128协同处理器;硬件支持csmaca、数字化的rssi/lqi和强大的dma功能,具有电池监测和温度感测功能。    按照cdc类抽象控制模型对端点的需求,采用端点0作为控制端点,完成设备的枚举和串口参数的设置。将端点2和端点4分配给数据接口子类,作为in和out端点,虚拟串口的数据传输主要在这两个端点进行。具体的配置如下:   currentlinecoding.dterate=hal_uart_baudrate_115200;//波特率设置   currentlinecoding.charformat=cdc_char_format_1_stop_bit;//1个停止位   currentlinecoding.paritytype=cdc_parity_type_none;//无奇偶校验   currentlinecoding.databits=8;//8位数据   usbindex=0x02;//选择端点2   usbcsih=0x01; //方向:in块传输,双缓冲模式   usbmaxi=0x20;//最大包数目 256字节(8字节为单位)   usbindex=0x04;//选择端点4   usbcsoh=0x40;//方向:out等时传输,单缓冲模式   usbmaxo=0x20;//最大包数目 256字节(8字节为单位)   以in端点2为例,说明数据如何通过usb接口传递到电脑上。当电脑发出in请求时,如果usb端点2的fifo非空,就向电脑发送fifo里的内容;如果fifo为空,则向电脑发送一个空包作为回应。cc2531通过寄存器位usbcsil.inpkt_rdy来控制电脑和8051 mcu内核对usb的fifo的使用权。当inpkt_rdy=1时,电脑正在对usb端口进行访问,8051 mcu内核无法向fifo内写入数据;当inpkt_rdy=0时,8051 mcu内核可以将发送数据写入fifo内,置位inpkt_rdy=1,完成数据的上传。
    0 点赞
  • DMA原理:DMA(DirectMemoryAccess,直接内存存取)是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。 在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过下面的4个步骤。1.DMA请求 CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。2.DMA响应 DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。3.DMA传输 DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。 在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。4.DMA结束 当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。 由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购