首页 CCSDSP开发环境经典教程(doc 34页)

CCSDSP开发环境经典教程(doc 34页)

举报
开通vip

CCSDSP开发环境经典教程(doc 34页)第一章 CCS概述PAGE1PAGEXIII第一章CCS概述本章概述CCS(CodeComposerStudio)软件开发过程、CCS组件及CCS使用的文件和变量。CCS供应了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。1.1CCS概述CCS供应了基本的代码生成工具,它们具有一系列的调试、分析力量。CCS支持如下所示的开发周期的全部阶段。在使用本教程之前,必需完成下述工作:安装目标板和驱动软件。依据随目标板所供应的说明书安装。假如...

CCSDSP开发环境经典教程(doc 34页)
第一章 CCS概述PAGE1PAGEXIII第一章CCS概述本章概述CCS(CodeComposerStudio)软件开发过程、CCS组件及CCS使用的文件和变量。CCS供应了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。1.1CCS概述CCS供应了基本的代码生成工具,它们具有一系列的调试、分析力量。CCS支持如下所示的开发周期的全部阶段。在使用本教程之前,必需完成下述工作:安装目标板和驱动软件。依据随目标板所供应的说明书安装。假如你正在用仿真器或目标板,其驱动软件已随目标板供应,你可以按产品的安装指南逐步安装。安装CCS.遵循安装说明书安装。运行CCS安装程序SETUP.SETUP程序允许CCS使用为目标板所安装的驱动程序。CCS构成及接口见图1-1。图1-1CCS构成及接口1.2代码生成工具代码生成工具奠定了CCS所供应的开发环境的基础。图1-2是一个典型的软件开发流程图,图中阴影部分表示通常的C语言开发途径,其它部分是为了强化开发过程而设置的附加功能。图1-2软件开发流程图1-2描述的工具如下:C编译器(Ccompiler)产生汇编语言源代码,其细节参见TMS320C54x最优化C编译器用户指南。汇编器(assembler) 把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公用目标格式(COFF),其细节参见TMS320C54x汇编语言工具用户指南。连接器(linker) 把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及打算外部参考。连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见TMS320C54x最优化C编译器用户指南和汇编语言工具用户指南。归档器(archiver)允许你把一组文件收集到一个归档文件中。归档器也允许你通过删除、替换、提取或添加文件来调整库,其细节参见TMS320C54x汇编语言工具用户指南。助记符到代数汇编语言转换公用程序(mnimonic_to_algebricassemblytranslatorutility)把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件,其细节参见TMS320C54x汇编语言工具用户指南。你可以利用建库程序(library_buildutility)建立满足你自己要求的“运行支持库”,其细节参见TMS320C54x最优化C编译器用户指南。运行支持库(run_time_supportlibraries)它包括C编译器所支持的ANSI 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持的I/O函数,其细节参见TMS320C54x最优化C编译器用户指南。十六进制转换公用程序(hexconversionutility)它把COFF目标文件转换成TI-Tagged、ASCII-hex、Intel、Motorola-S、或Tektronix等目标格式,可以把转换好的文件下载到EPROM编程器中,其细节参见TMS320C54x汇编语言工具用户指南。交叉引用列表器(cross_referencelister)它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件,其细节参见TMS320C54x汇编语言工具用户指南。确定列表器(absolutelister)它输入目标文件,输出.abs文件,通过汇编.abs文件可产生含有确定地址的列表文件。假如没有确定列表器,这些操作将需要冗长乏味的手工操作才能完成。1.3CCS集成开发环境CCS集成开发环境允许编辑、编译和调试DSP目标程序。1.3.1编辑源程序CCS允许编辑C源程序和汇编语言源程序,你还可以在C语句后面显示汇编指令的方式来查看C源程序。集成编辑环境支持下述功能:用彩色加亮关键字、注释和字符串。以圆括弧或大括弧标记C程序块,查找匹配块或下一个圆括弧或大括弧。在一个或多个文件中查找和替代字符串,能够实现快速搜寻。取消和重复多个动作。获得“上下文相关”的挂念。用户定制的键盘命令安排。1.3.2创建应用程序应用程序通过工程文件来创建。工程文件中包括C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。编译、汇编和连接文件时,可以分别指定它们的选项。在CCS中,可以选择完全编译或增量编译,可以编译单个文件,也可以扫描出工程文件的全部包含文件从属树,也可以利用传统的makefiles文件编译。1.3.3调试应用程序CCS供应下列调试功能:设置可选择步数的断点在断点处自动更新窗口查看变量观看和编辑存储器和寄存器观看调用堆栈对流向目标系统或从目标系统流出的数据接受探针工具观看,并收集存储器映象绘制选定对象的信号曲线估算执行统计数据观看反汇编指令和C指令CCS供应GEL语言,它允许开发者向CCS菜单中添加功能。1.4硬件仿真和实时数据交换TIDSPDSP供在片仿真支持,它使得CCS能够把握程序的执行,实时监视程序运行。增加型JTAG连接供应了对在片仿真的支持,它是一种可与任意DSP系统相连的低侵扰式的连接。仿真接口供应主机一侧的JTAG连接,如TIXDS510XDS510仿真器。为便利起见,评估板供应在板JTAG仿真接口。在片仿真硬件供应多种功能:DSP的启动、停止或复位功能向DSP下载代码或数据检查DSP的寄存器或存储器硬件指令或依靠于数据的断点包括周期的精确计算在内的多种记数力量主机和DSP之间的实时数据交换(RTDX)CCS供应在片力量的嵌入式支持;另外,RTDX通过主机和DSP APIAPI:ApplicationProgrammingInterface,应用程序编程接口供应主机和DSP之间的双向实时数据交换,它能够使开发者实时连续地观看到DSP应用的实际工作方式。在目标系统应用程序运行时,RTDX也允许开发者在主机和DSP设备之间传送数据,而且这些数据可以在使用自动OLE的客户机上实时显示和分析,从而缩短研发时间。RTDX由目标系统和主机两部分组成。小的RTDX库函数在目标系统DSP上运行。开发者通过调用RTDX软件库的API函数将数据输入或输出目标系统的DSP,库函数通过在片仿真硬件和增加型JTAG接口将数据输入或输出主机平台,数据在DSP应用程序运行时实时传送给主机。图1-4 RTDX系统组成在主机平台上,RTDX库函数与CCS一道协同工作。显示和分析工具可以通过COMAPI与RTDX通信,从而猎取目标系统数据,或将数据发送给DSP应用例程。开发者可以使用标准的显示软件包,诸如NationalInstruments’LabVIEW,Quinn-Curtis’Real-TimeGraphicsTools,或MicrosoftExcel。同时,开发者也可研制他们自己的VisualBasic或VisualC++应用程序。图1-5 RTDX实例RTDX能够 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 实时数据,并可将其回放用于非实时分析。下述样本由NationalInstruments’LabVIEW软件产生。在目标系统上,一个原始信号通过FIR滤波器,然后与原始信号一起通过RTDX发送给主机。在主机上,LabVIEW显示屏通过RTDXCOMAPI猎取数据,并将它们显示在显示屏的左边。利用信号的功率谱可以检验目标系统中FIR滤波器是否正常工作。处理后的信号通过LabVIEW,将其功率谱显示在右上部分;目标系统的原始信号通过LabVIEW的FIR滤波器,再将其功率谱显示在右下部分。比较这两个功率谱便可确认目标系统的滤波器是否正常工作。RTDX适合于各种把握、伺服和音频应用。例如,无线电通信产品可以通过RTDX捕获语音合成算法的输出以检验语音应用程序的执行状况;嵌入式系统也可从RTDX获益;硬磁盘驱动 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 者可以利用RTDX测试他们的应用软件,不会因不正确的信号加到伺服马达上而与驱动发生冲突;引擎把握器设计者可以利用RTDX在把握程序运行的同时分析随环境条件而变化的系数。对于这些应用,用户都可以使用可视化工具,而且可以依据需要选择信息显示方式。1.5CCS文件和变量本节简述CCS文件夹、CCS的文件类型及CCS环境变量。1.5.1安装文件夹安装进程将在安装CCS的文件夹(典型状况为:c:\ti)中建立子文件夹。此外,子文件夹又建立在Windows名目下(c:\windowsorc:\winnt)。C:\ti包含以下名目:bin.各种应用程序C2800\bios。DSP/BIOSAPI的程序编译时使用的文件C2800\cgtools.Texasinstruments源代码生成工具C2800\examples.源程序实例C2800\rtdx. RTDX文件C2800\tutorial.本手册中使用的实例文件cc\bin.关于CCS环境的文件cc\gel.与CCS一起使用的GEL文件docs.PDS格式的文件和指南myprojects.用户文件夹1.5.2文件扩展名以下名目结构被添加到Windows名目:ti\drivers.各种DSP板驱动文件ti\plugins.和CCS一起使用的插件程序ti\uninstall.支持卸载CCS软件的文件当使用CCS时,你将经常遇见下述扩展名文件:project.mak.CCS使用的工程文件program.c.C程序源文件program.asm.汇编程序源文件filename.h.C程序的头文件,包含DSP/BIOSAPI模块的头文件filename.lib.库文件project.cmd.连接命令文件program.obj.由源文件编译或汇编而得的目标文件program.out.(经完整的编译、汇编以及连接的)可执行文件project.wks.存储环境设置信息的工作区文件,program.cdb.配置数据库文件。接受DSP/BIOSAPI的应用程序需要这类文件,对于其它应用程序则是可选的。保存配置文件时将产生下列文件:programcfg.cmd.连接器命令文件programcfg.h28.头文件programcfg.s28.汇编源文件第四章 算法和数据测试其次章开发一个简洁的应用程序本章使用helloworld实例介绍在CCS中创建、调试和测试应用程序的基本步骤;介绍CCS的主要特点,为在CCS中深化开发DSP软件奠定基础。在使用本实例之前,你应当已经依据安装说明书完成了CCS安装。建议在使用CCS时利用目标板而不是仿真器。假如没有CCS而只有代码生成工具和CodeComposer或者是利用仿真器在进行开发,你只要按其次章和第四章中的步骤执行即可。2.1创建工程文件在本章中,将建立一个新的应用程序,它接受标准库函数来显示一条helloworld消息。假如CCS安装在c:\ti中,则可在c:\ti\myprojects建立文件夹adcshujucaijihello1。(若将CCS安装在其它位置,则在相应位置创建文件夹hello1。)将c:\ti\c2800\tutorial\hello1中的全部文件拷贝到上述新文件夹。从WindowsStart菜单中选择Programs→CodeComposerStudio‘C5400→CCStudio。(或者在桌面上双击CodeComposerStudio图标。)注:CCS设置假如第一次启动CCS时消灭错误信息,首先确认是否已经安装了CCS。假如利用目标板进行开发,而不是带有CD-ROM的仿真器,则可参看与目标板一起供应的文档以设置正确的I/O端口地址。选择菜单项Project→New。在SaveNewProjectAs窗口中选择你所建立的工作文件夹并点击Open。键入adcshujucaiji作为文件名并点击Save,CCS就创建了adcshujucaiji.mak的工程文件,它存储你的工程设置,并且供应对工程所使用的各种文件的引用。2.2向工程添加文件选择Project→AddFilestoProject,选择hello.c并点击Open。选择Project→AddFilestoProject,在文件类型框中选择*.asm。选择vector.asm并点击Open。该文件包含了设置跳转到该程序的C入口点的RESET中断(c_int00)所需的汇编指令。(对于更简单的程序,可在vector.asm定义附加的中断矢量,或者,可用3.1节上所说明的DSP/BIOS来自动定义全部的中断矢量)选择Project→AddFilestoProject,在文件类型框中选择*.cmd。选择hello.cmd并点击Open,hello.cmd包含程序段到存储器的映射。选择Project→AddFilestoProject,进入编译库文件夹(C:\ti\c2800\cgtools\lib)。在文件类型框中选择*.o*,*.lib。选择rts.lib并点击Open,该库文件对目标系统DSP供应运行支持。点击紧挨着Project、Myhello.mak、Library和Source旁边的符号+开放Project表,它称之为ProjectView。注:打开ProjectView假如看不到ProjectView,则选择View→Project。假如这时选择过Bookmarks图标,仍看不到ProjectView,则只须再点击ProjectView底部的文件图标即可。留意包含文件还没有在ProjectView中消灭。在工程的创建过程中,CCS扫描文件间的依靠关系时将自动找出包含文件,因此不必人工地向工程中添加包含文件。在工程建立之后,包含文件自动消灭在ProjectView中。假如需要从工程中删除文件,则只需在ProjectView中的相应文件上点击鼠标右键,并从弹出菜单中选择Removefromproject即可。在编译工程文件时,CCS按下述路径挨次搜寻文件:包含源文件的名目编译器和汇编器选项的IncludeSearchPath中列出的名目(从左到右)2.3查看源代码双击ProjectView中的文件hello.c,可在窗口的右半部看到源代码。如想使窗口更大一些,以便能够即时地看到更多的源代码,你可以选择Option→Font使窗口具有更小的字型。/*========hello.c========*/#include#include"hello.h"#defineBUFSIZE30structPARMSstr={2934,9432,213,9432,&str};/**========main========**/voidmain(){#ifdefFILEIOinti;charscanStr[BUFSIZE];charfileStr[BUFSIZE];size_treadSize;FILE*fptr;#endif/*writeastringtostdout*/puts("helloworld!\n");#ifdefFILEIO/*clearchararrays*/for(i=0;i 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。点击工具栏按钮或选择Debug→Run。注:屏幕尺寸和设置工具栏有些部分可能被Build窗口隐蔽起来,这取决于屏幕尺寸和设置。为了看到整个工具栏,请在Build窗口中点击右键并取消AllowDocking选择。当运行程序时,可在Stdout窗口中看到helloworld消息。2.5修改程序选项和订正语法错误在前一节中,由于没有定义FILEIO,预处理器命令(#ifdef和#endif)之间的程序没有运行。在本节中,使用CCS设置一个预处理器选项,并找出和订正语法错误。选择Project→Options。从BuildOption窗口的Compiler栏的Category列表中选择Symbles。在DefineSymbles框中键入FILEIO并按Tab键。留意,现在窗口顶部的编译命令包含-d选项,当你重新编译该程序时,程序中#ifdefFILEIO语句后的源代码就包含在内了。(其它选项可以是变化的,这取决于正在使用的DSP板。)点击OK保存新的选项设置。点击(RebuildAll)工具栏按钮或选择Project→RebuildAll。无论何时,只要工程选项转变,就必需重新编译全部文件。消灭一条说明程序含有编译错误的消息,点击Cancel。在Buildtab区域移动滚动条,就可看到一条语法出错信息。双击描述语法错误位置的红色文字。留意到hello.c源文件是打开的,光标会落在该行上:fileStr[i]=0修改语法错误(缺少分号)。留意,紧挨着编辑窗口题目栏的文件名旁消灭一个星号(*),表明源代码已被修改过。当文件被保存时,星号随之消逝。选择File→Save或按Ctrl+S可将所作的转变存入hello.c。点击(IncrementalBuild)工具栏按钮或选择Project→Build,CCS重新编译已被更新的文件。2.6使用断点和观看窗口当开发和测试程序时,经常需要在程序执行过程中检查变量的值。在本节中,可用断点和观看窗口来观看这些值。程序执行到断点后,还可以使用单步执行命令。选择File→ReloadProgram.双击ProjectView中的文件hello.c。可以加大窗口,以便能看到更多的源代码。把光标放到以下行上:fprintf(fptr,“%S”,scacStr);点击工具栏按钮或按F9,该行显示为高亮紫红色。(假如情愿的话,可通过Option→Color转变颜色。)选择View→WatchWindow。CCS窗口的右下角会消灭一个独立区域,在程序运行时,该区域将显示被观看变量的值。在WatchWindow区域中点击鼠标右键,从弹出的表中选择InsertNewExpression。键入表达式*scanStr并点击OK。留意局部变量*scanStr被列在Watchwindow中,但由于程序当前并未执行到该变量的main()函数,因此没有定义。选择Debug→Run或按F5。在相应提示下,键入goodbye并点击OK。留意,Stdout框以蓝色显示输入的文字。还应留意,WatchWindow中显示出*scanStr的值。在键入一个输入字符串之后,程序运行并在断点处停止。程序中将要执行的下一行以黄色加亮。点击(StepOver)工具栏按钮或按F10以便执行到所调用的函数fprintf()之后。用CCS供应的step命令试验:■StepInto(F2)Stepover(F10)StepOut(ShiftF7)RuntoCursor(CtrlF10)点击工具栏按钮或按F5运行程序到结束。CodeComposerStudio教程3基于DSP的数据采集设计实例3.1安装驱动程序(1)安装仿真器驱动程序连接接仿真器、DSP开发板,将仿真器经USB接口脸上电脑之后系统提示“使用找到新硬件向导”,选择驱动文件“XDS510USBDriver”,完成之后系统提示新硬件可用。如下图所示。(2)安装仿真器的CCS驱动找到驱动文件“XDS510CCSDriver”,运行,安装到CCS3.3软件所在的文件夹里面,具体如下图所示。3.2启动CCS前的设置(1).打开“SetupCCStudioV3.3”,在“AvailableFactoryBoards”下选择“F2812XDS510Emulator”(2).在“systemconfiguration”下的“F2812XDS510Emulator”右键选择“properties”,对其进项设置,具体设置如下图。(3).点击“SaveandQuit”完成芯片设置,系统自动启动CCS3.3操作界面。3.3创建AD数据采集工程(1)选择“Project→New(工程→新建)”,弹出工程建立对话框。(2)在Project栏输入文件名adshujucaiji。工作名目是D:\ccstudio_v3.3\myprojects\,其他两项也选默认即可。(3)单击完成按钮,将在工程窗口的Project下面创建adshujucaiji工程。3.4项工程中添加源文件(1)将从ti官方网站上下载的源文件复制到D:\ccstudio_v3.3\myprojects\adshujucaiji文件夹内。(2)在“projects”下右键点击工程名“adshujucaiji”选择“addFiletoproject…”,将复制到文件夹“adshujucaiji”中的源文件全部加载进来。如下图所示。3.5程序的编写3.5.1程序编写思路(1).一个DSP程序的构成。一个完整的DSP程序主要由库文件,.c源文件,.h头文件以及.cmd连接命令文件组成。(2).DSP程序的编写思路一个DSP程序要完成设想的功能,需要完成系统初始化,所使用的外设的初始化,中断初始化,已经终端服务程序的编写。其中系统,外设初始化只需要对相应的寄存器进行设置即可以完成。中断服务程序依据我们所需要的处理算法进行编写。(3).现在总结起来DSP2812其实可以分为以下几个部分:时钟(DSP工作的动力)、外设(DSP实现相应的功能都是有对应的外设来实现的)、中断和中断服务程序。只要把这四个部分弄懂了,DSP的使用应当就没多大问题。DSP的不同功能主要有对应的外设实现,实际上只要把握了一种外设的使用方(寄存器、中断、时钟的设置)其他的都可以用同样的步骤使用。首先将程序分成:系统初始化、所使用的外设的初始化、三级中断设置、中断服务程序、链接命令文件(.cmd文件)和头文件几个部分。在系统初始化程序中了解系统时钟、外设端口、看门狗的设置方法以及相关寄存器的使用,在外设初始化程序中,对应当外设的使用原理,了解“这个寄存器起什么作用,这样设置起什么作用”,把握该外设设备(联想到全部的外设)初始化时必需设置的内容有哪些,需要特殊设施的寄存器有哪些。之后了解外设级、PIE级和CPU级中断初始化、开中断、关中断的设置方法、挨次和缘由。中断服务程序完成特殊的数据处理,依据自己的算法编写就可以,但要留意在全部的中断服务程序中都要对三级中断进行相应的设置,以保证中断服务程序能够连续不断地运行下去。在.CMD文件中完成对内部存储器外扩存储器的安排,了解相关指令的作用和使用方法。3.5.2程序 工作流程 财务工作流程表财务工作流程怎么写财务工作流程图财务工作流程及制度公司财务工作流程 在进行软件设计之前,首先明确系统的工作流程,简洁介绍如下:(1)DSP上电,等待采集开头命令。(2)使用大事管理器EVA的通用定时器周期中断来触发ADC的采集动作。(3)进行数据的校正和融合处理。(4)将融合后的数据经eCAN总线传送到上位机。本系统使用EVA的通用定时器1的周期中断来触发AD的转换,当ADC完成SEQ1中定义的端口的数据采集转换时,触发中断,进入中断服务程序。DSPF2812的AD为12位精度,由于各种因素的影响,测量值存在误差,需进行校正。校正完成之后对该次测量获得的两个数值进行联合kalman滤波器数据融合,完成融合操作后将得到的数据存入eCAN总线的发送邮箱,将数据发送到上位机,一次操作完成。之后退出中断程序,等待下一次中断触发信号的到来。本系统就依据怎样的挨次完成真空度的数据采集、校正、融合和传输操作。整个软件系统可以分为如下几个部分:系统初始化,用来完成DSP寄存器的设置,各级中断的清零,系统时钟、外设时钟的设置,踢除看门狗、初始化AD、EVA等操作;终端服务程序的设置,用来完成采样结果的移位操作、校正,联合kalman滤波器数据融合以及eCAN总线的数据传输;链接命令文件的编写,由于使用了外扩存储器,为保证程序执行的速度,将程序空间安排到片内存储器,程序执行过程中产生的数据存储到片外存储器中。3.5.3系统初始化sysctrl()(1)系统时钟设置,通过高速时钟预订标寄存器标志寄存器简称标寄存器或标器(HISPCP)、低速时钟预订标寄存器(LOSPCP)和锁相环寄存器设置,获得高、第速时钟,使能相关外设时钟。如下图所示(2)中断初始化首先关闭全局中断,关闭外设中断,并清除所左右的中断标志位。DINT;//关闭总中断IER=0x0000;//关闭外设中断IFR=0x0000;//清中断标志其次初始化PIE把握寄存器,由函数InitPiectrl()实现。将全部的PIE级中断标志位和中断使能位清零。并将AD中断所在组对应的中断应答寄存器中的相应位置零。最终使能PIE向量表,由函数InitPieVectable()实现。3.5.4端口设置数据采集使用同步转换模式,对通道ADCINA0和ADCINB0同时采样8次。所以将这两个端口设置成一般输入输出端口且为输入模式。voidInitGpio(void){EALLOW;GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2=0;GpioMuxRegs.GPADIR.bit.GPIOA0=0;GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0=0;GpioMuxRegs.GPBDIR.bit.GPIOB0=0;GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;EDIS;}3.5.5数据采集外设AD的设置F2812的ADC模块有16个通道,排序器SEQ1和SEQ2可以作为两个独立的8通道模块,也可以级联成一个16通道的模块。AD模块的内部结构如图3.5所示。虽然有两组输入通道和两个排序器,但是ADC模块中只有一个转换器,同一时刻只能对1路输入信号进行转换,当有多路信号需要进行转换时,ADC模块通过前端模拟多路复用器的把握,在同一时刻,只允许1路信号输入到ADC的转换器中。在这两种工作方式下,AD能够通过对相关寄存器的设置对需要转换的通道进行排序,通过模拟多路转换器每次转换的通道。每个排序器转换完成,将所转换通道的值存储在其各自的转换结果寄存器中。我们可以通过设置排序寄存器,达到对一个通道进行多次转换的目的,这就是所说的过采样算法,对比单次采样转换,能够有效提高结果的精度2812的ADC可以工作在挨次采样和同步采样两种工作模式。挨次采样也就是依据挨次对每个通道依次进行采样。而同步采样,是同时采样一对通道,即ADCINA0和ADCINB0同时采样,ADCINA1和ADCINB1同时采样。我们使用级联排序器的同时采样模式。此时排序器SEQ1和SEQ2级联成最多16个通道的排序器。ADC模块只有接收到转换触发信号才可开头转换,如下表所示,我们接受大事管理器A的周期中断触发AD。SEQ1SEQ2级联SEQ软件触发(软件SOC)软件触发(软件SOC)软件触发(软件SOC)大事管理器A(EVASOC)大事管理器B(EVBSOC)大事管理器A(EVASOC)大事管理器B(EVBSOC)外部SOC引脚外部SOC引脚2812AD的16个通道是可以通过编程来进行选择在某一时刻到底是哪一个通道被选通进行采样的。这个功能就需要通过ADC输入通道选择序列把握寄存器ADCCHSELSEQx(x=1,2,3,4)来实现。每一个输入通道选择序列把握寄存器都是16位的,被分成了4个功能位CONVxx,每一个功能位占据寄存器的4位,在AD转换的过程中,当前CONVxx位定义了要进行采样和转换的引脚。为了能够对端口进行连续不断的采样,通用定时器1产生的AD采集触发信号频率应高于AD采集频率。我们接受的ADCLK为1.875M,每次触发共采集16次,加上采样窗口时间为6个ADCLK,转换频率约为13K。EVA使用低速时钟HISPCP,它的的通用定时器1的时钟为60M,周期为300,为连续增计数模式,它的周期匹配频率为0.2M,能够使ADC连续不断地采集数据。输入到AD的时钟如下图所示3.5.6EVA的初始化使用EVA通用定时器1的周期中断触发信号,EVA使用低速时钟HISPCP,它的的通用定时器1的时钟为60M,周期为300,为连续增计数模式,它的周期匹配频率为0.2M,能够使ADC连续不断地采集数据。EVA的初始化程序如下voidInitEVA(void){EALLOW;EvaRegs.T1CMPR=0x0080;EvaRegs.T1PR=0x012C;EvaRegs.GPTCONA.bit.T1TOADC=1;EvaRegs.T1CON.all=0x1042;EvaRegs.T1CNT=0x0000;EDIS;}3.5.7中断设置(1)DSP的中断分为外设级、PIE级和CPU级,为了是CPU能够响应有中断动身时间引发的中断,需要将三级中断全部打开。(2)我们使用的是ADC采集完成中断,当AD模块完成8次同步采集之后触发外设计中断,对应的中断标志位ADCIFR自动置位,假如此时ADC中断使能位ADCIER为1.并且ADC中断所在的中断组对应的中断应答寄存器PIEACK的相应位为0,则将外设级中断传送到PIE级。之后将PIE级虽在组对应的中断标志位置一,检查该组对应的中断使能位是否为1,假如是一,则将该终端传送到CPU级,直后执行对应的中断服务程序。(3)为使得中断大事发生后CPU能够找到相应的中断服务程序,需要将中断服务程序的地址赋值给触发中断的外设大事在中断矢量列表(pievect)中对应的指针。中断矢量列表中adc中断对应的指针如下图在本实例中我们通过一下语句实现,其中“ad”使我们自己编写的中断服务程序的名字。EALLOW;PieVectTable.ADCINT=&ad;EDIS;(3)为是外设级中断传输到PIE级将ad中断对应的中断使能位置1(4)DSP全部的96个中断分成了12组,为使得中断程序能有外设级顺当的传输到CPU,需将AD中断所在的第一组的PIE级中断使能位置1。(5)使能全局中断和全局实时中断。具体程序如下:IER|=M_INT1;//使能CPU的INT1中断PieCtrlRegs.PIEIER1.bit.INTx6=1;//使能PIE中INIT中的ADCINT中断的中断使能位EINT;//使能全局中断屏蔽位ERTM;3.5.8循环等待程序由于ad数据采集需要肯定的时间,只有当采集完成之后才能触发中断,执行相应的中断服务程序。需要一个循环等待程序,等待中断时间的发生,当发生中断时间是,跳出循环。for(;;);3.5.9编写相应的中断服务程序(1)具体的数据处理算法都在中断服务程序中实现。具体算法具体编写,不再叙述。(2)中断服务程序中需要对AD中断在中断应答寄存器中的相应位进行指令处理。由于在外设级中断向CPU传输的过程中中断应答寄存器自动复位。(3)为是中断程序能够连续进行下去需要将AD的排序器进行复位,并清除ADcst中的中断标志位。具体程序如下:AdcRegs.ADCTRL2.bit.RST_SEQ1=1;AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;PieCtrlRegs.PIEACK.all=0x0001;//响应中断后用软件将PIEACK.X清零,已屏蔽该组中其他中断3.5.10程序编写编译连接生成输出文件(1)点击对程序进行编译连接、修改,直到无错误。3.5.11将输出文件通过仿真器输入到DSP中进行试验验证连接好开发板、仿真器。选择“File”—“Loadprogram”,消灭如下图的对话框。在“Debug”中选择“.out”文件。将输出文件写入开发板3.5.12进行试验3.6总结建立一个DSP工程的步骤(1).设置“SetupCCStudio”选择合适的工作模式,设置相应参数。(2).启动CCS,建立新的工程,把TI官方供应的各种头文件、源文件添加到工程中。(3).编写程序首先将程序分成:系统初始化、所使用的外设的初始化、三级中断设置、中断服务程序、链接命令文件(.cmd文件)和头文件几个部分。在系统初始化程序中了解系统时钟、外设端口、看门狗的设置方法以及相关寄存器的使用,外设级、PIE级和CPU级中断初始化、开中断、关中断的设置方法、挨次和缘由。中断服务程序完成特殊的数据处理,依据自己的算法编写就可以,但要留意在全部的中断服务程序中都要对三级中断进行相应的设置,以保证中断服务程序能够连续不断地运行下去。在.CMD文件中完成对内部存储器外扩存储器的安排,了解相关指令的作用和使用方法。(4).编译程序,修改错误,将生成的输出文件烧到DSP里面,进行相应试验。
本文档为【CCSDSP开发环境经典教程(doc 34页)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
千与千寻
十年从业经验,高级工程师
格式:doc
大小:1MB
软件:Word
页数:42
分类:农业
上传时间:2023-02-16
浏览量:9