|  首页  |  资讯  |  评测  |  活动  |  学院  |  访谈  |  专题  |  杂志  |  产服  |  
您现在的位置:硅谷网> 学院> 论文>

无线传输应用背景下CC2530芯片DMA控制器故障研究

2016-06-11 16:46 作者:黄德颖 娄可卿 皇甫 来源:硅谷网 HV: 编辑: 【搜索试试
  硅谷网7月12日消息 (原文载于《硅谷》杂志6月刊)以RF模块采用DMA的方式将数据从内存搬运到TXbuffer从而实现实时数据的无线传输为应用背景,结合实践,给出DMA在此应用中的配置方案和采用在修改SRCADDR的值后,重新将&DMAConfig[0]赋值给DMA0CFG的方案,避免DMA控制器使用的故障。
  以美国Ti公司CC2430/CC2530芯片为代表的ZigbeeSOC解决方案在国内高校企业掀起了一股Zigbee技术应用的热潮。ZigBee是基于IEEE802.15.4无线标准研制开发的有关组网、安全和应用软件方面的技术标准。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。ZigBee的技术特性决定它将是无线传感器网络的最好选择,广泛用于物联网,自动控制和监视等诸多领域。【1】但有些无线通信的开发并不需要依赖Zigbee协议,开发者完全可以在此上开发自己的协议。一般情况下,用CC2530的RF模块发送数据,通过向寄存器RFD[0:7]重复的赋值可以将能将内存中的数据写入到RF模块的Buffer里面,再通过选通命令启动RF发送数据。而在实时性要求较高的应用中,使用向寄存器赋值的方法远大于通过DMA将内存中的数据“搬运”到Buffer里所耗时间。CC2530里的DMA控制器可以极大的释放8051CPU内核对数据的操作,可以使CPU在最小的干预下,实现内存到ADC或RF模块之间的数据传送。使用DMA“搬运”数据的功能,要对按照CC2530的datasheet【2】对DMA控制器的进行一系列的配置。本文主要研究两个方面,一是在应用背景下基于实践对DMA控制器进行配置,另一个测试DMA控制器中主要故障的解决方案。
  1DMA控制器
  CC2530的DMA控制器的特点:5个独立通道,3个优先级,32个触发事件,独立的源地址和目的地址控制,3个传送模式,支持设置变化的发送长度,单字和双字发送模式。对DMA控制器的设置基本上是基于以上7个特点。具体的配置项有:Sourceaddress、DestinationAddress、TransferCount、VLENSetting、TriggerEvent、SourceandDestinationIncrement、DMATransferMode、DMAPriority、ByteorWordTransfers、InterruptMask、Mode8Setting。
  DMA的配置基于应用,以RF模块传送数据为例(RF模块需要发送和接收数据,在其buffer和内存之间的数据传输通过DMA来完成)DMA控制器的使用包括对DMA中断配置,DMA控制器的参数设置,DMA控制器启动。
  2DMA控制器中断的配置
  IEN1|=0x01;//开DMA中断
  DMAIRQ=0;//清除标志位
  (中断标志位的清除不仅仅在中断使用前要进行配置,在中断触发后的中断服务程序里面也清除)。
  3DMA控制器的参数设置
  DMA控制的参数设置是通过“填写”一张数据结构表(ConfigurationDataStructure)。数据结构表里的参数有:SRCADDR[15:8]、SRCADDR[7:0]、DESTADDR[15:8]、DESTADDR[7:0]、VLEN[2:0]、LEN[12:8]、LEN[7:0]、WORDSIZE、TMODE[1:0]、TRIG[4:0]、SRCINC[1:0]、DESTINC[1:0]、IRQMASK、M8、PRIORITY[1:0]与上述配置项是相对应的。CC2530DMA控制器配置的实现是通过先将数据表封装成结构体,配置好该结构体后将其的地址传给DMA0CFGH寄存器,这样才能被arm启动。CC2530共有两个这样的寄存器,另外一个是DMA1CFGH。前者对应通道0的配置信息,后者对应余下通道(1~4通道)。由于RF模块收发数据均要依靠DMA,因此使用DMA控制器两个通道。0通道负责将数据从内存搬运到Buffer,1通道负责将数据从Buffer搬运到内存。在DMA配置表的填写中,(以通道0的配置为例,1通道方法相同)源地址填待发数据的首地址,目的地址填Buffer的地址。RF的Buffer分为TXbuffer和RXbuffer,通道0是发送数据用,所以应该填写TXbuffer的地址,该地址在CC2530的ioCC2530.h已经宏定义成了宏(#defineX_RFDXREG(0x70D9)),取其地址赋值给DESTADDR。
  DMA传送的第一个字节应是长度字节lengthbyte,DMA搬运数据前会检查该值,从而确定执行一次搬运所搬运的字节。而这个字节在设定后,可由VLEN改变,VLEN决定最后搬运的值,有4个选项,分别是lengthbyte+1,lengthbyte,lengthbyte+2,lengthbyte+3。这部分在设计程序时尤其注意,特别是在RF应用中。
  LEN决定了DMA搬运的最大长度。即使VLEN长度大于LEN,搬运的长度仍然是LEN。
  WORDSIZE的选择单字节。
  TMODE在四个选择single、block、singlerepeated、blockrepeated中,通道0可以任选,通道1则只能选择single或者repeatedsingle。这个选择决定了每次DMA被触发后,DMA采取的搬运机制,触发一次是搬运一个字节还是搬运整块数据。由于将数据从RF模块的RXbuffer搬运到内存,DMA搬运数据的时间小于RF模块接收数据的时间,所以在RADIO触发方式下,选择single或者repeatedsingle可以保证RF模块收到一个字节立即通过DMA将器搬运至内存,这样才能保证接收到的数据被完整无错的存到内存中。
  TRIG选择NONE,采用手动触发。通道1的配置要选择RADIO,即在RXbuffer收到一个字节,DMA立刻搬运一个字节到内存。DMA控制器一共提供了31个触发选项,包括定时器、I/0控制器、UART、Flash控制器、ADC、AES、Debuginterface的触发源,应用面非常广。
  SRCINC和DESTINC决定源地址和目的地址在每次DMA完成一次搬运后地址变化的方式,在不变、增一、增二、减一四个选项中选增一的方式,SRCINC选择增一的方式,DESTINC选择不变。这是由于目的地址对应RFD寄存器,需将数据依次“搬运”到该寄存器,便能将相应的字节依次写入到TXbuffer中。
  IRQMASK屏蔽通道中断的配置,所以IRQMASK|=0x03开通道0和1的中断,同时屏蔽其他的通道的中断。
  M8选择搬运每个字节的位数。选择8位还是7位,其中7位是LSB小端。
  PRIORITY优先级的选择。该优先级是与CPU相比,此应用中应该将DMA的优先级设置的比CPU高。
  4DMA控制器启动
  在填好DMA控制器的参数表后,将该表的地址(&DMAConfig[0])赋值给DMA0CFG,在使用前先arm上DMA,再手动触发,触发完后在DMA的中断服务程序启动RF发送。
  DMAARM|=0x01;//对通道0arm
  如果触发模式选择手动触发则
  DMAREQ |=0x01;//手动触发DMA控制器
  后才能触发DMA;若是RADIO触发则是收到一个数据会自动触发DMA。
  5DMA控制器测试中主要故障的解决方案
  按照CC2530的datasheet对DMA控制器进行按需配置,测试过程中发现一个问题:如果在使用了DMA后,修改DMA参数中源地址SRCADDR的值,在没有将该结构体参数表的地址&DMAConfig[0]重新赋值给DMA0CFG情况下arm后触发DMA,DMA控制器的执行会出现故障,可以进入中断,但是搬运的数据并非我们期望的数据。而修改其他参数则斐然。解决方案是在修改了SRCADDR的值后,重新将&DMAConfig[0]赋值给DMA0CFG。
  6总结
  DMA的配置需要细致的阅读CC2530的说明文档,按照开发的需要不断的测试。本文以RF模块的应用为背景,以采用DMA的方式将数据从内存搬运到TXbuffer近而实现无线实时数据传输为例,在实践和反复测试后中,给出了DMA在此应用的配置方案和测试中主要故障的解决方案。
  
【对“无线传输应用背景下CC2530芯片DMA控制器故障研究”发布评论】

版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
广告
相关
·硅谷网解密:4G网络中的微波传输解决方案
·硅谷网学院:如何提高中技生单片机应用能力
·硅谷网学院:无线网络通信技术的设计及实现
·北方地区太阳能热水工程控制系统设计与应用
·电脑知识与技术:概念图的网站导航应用探讨
·刘兵:IcePak软件在电子设备热设计中的应用
·浅析云计算在语音实验室建设管理中的应用
·新型自动气象站监控及短信报警系统设计与应用
头条
硅谷网解密:4G网络中的微波传输解决方案 硅谷网解密:4G网络中的微波传输解决方案
在2013年12月4日,工信部向中国移动、中国联通、中国电信颁发TD-LTE(4G)经营许可之后……
·硅谷网解密:4G网络中的微波传输解决方案
·创意产业的批量化规律 工业造型方法论之加减
·《硅谷》杂志:浅谈电信运营商开展IPTV业务
·《硅谷》杂志:新型桌面搜索关键技术的研究与
·硅谷杂志:基于时间技术的搜索引擎排名算法
图文
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
最新
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·利用重力势能做功发电介绍和势能输出系统介绍
·李磊:新时代下电网调度自动化技术的发展分析
·提升企业竞争力以及企业人力资源管理优化思考
·《硅谷》杂志:采油分层测静压工艺技术浅究
热点
·判断连续时间系统的线性非时变性和因果性
·3DMAX+Vary室内漫游动画制作的技法浅析
·长期使人困惑的问题:TCP连接中断的实时检测
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·关于汽轮机油系统失火原因分析及防范措施的一
旧闻
·颜海宙:谈谈工业锅炉节能运行的优化措施
·《科技与生活》杂志:钢铁厂厂址的选择
·硅谷杂志:视频会议系统建设应用分析
·硅谷杂志:无线通信技术在调度通信中的应用
·硅谷杂志:化工生产过程中的DCS监控系统的应
广告
硅谷影像
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介绍
公关负责人离职背后:危机公关案例分析
公关负责人离职背后:危机公关案例分析
硅谷网解密:4G网络中的微波传输解决方案
硅谷网解密:4G网络中的微波传输解决方案
使用Autoit脚本在虚拟内存盘设置考试模拟系统
使用Autoit脚本在虚拟内存盘设置考试模拟系统
探秘开滦集团设备租赁管理系统的设计和实现
探秘开滦集团设备租赁管理系统的设计和实现
关于我们·About | 联系我们·contact | 加入我们·Join | 关注我们·Invest | Site Map | Tags | RSS Map
电脑版·PC版 移动版·MD版 网站热线:(+86)010-57255600
Copyright © 2007-2020 硅谷网. 版权所有. All Rights Reserved. <京ICP备12003855号-2>