1、第 1 页 共 47 页基于 DSP 的采集记录系统摘要:设计了一种基于 TMS320F2812 DSP 数据采集记录系统。通过 TMS320F2812 DSP高速的运算能力、强大的实时处理能力及丰富的片上外设单元,系统可实现对信号的快速采集和实时处理,解决了基于单片机和 CPLD 的传统采集系统处理器速度慢、实时处理能力差的问题,并可将测的数据记录到存储单元,实现了数据记录功能。本系统利用 TMS320F2812 片上自带的 12 位 ADC 实现一路数据的采集,将数据采集后经行简单的处理后记录到 1M 的外部存储器中。并可通过 FT245R 芯片实现 USB 向上位机传输数据,实现了实时采
2、集的功能。本文详细的介绍了系统的各模块的设计思路和原理,以及软硬件的构成,并在制得的实验板上完成了实验验证,对结果经行了分析,表明调试板能够完成所有的基本功能。关键词:TMS320F2812,数据采集,ADC,FT245R第 2 页 共 47 页The acquisition system based on DSPAbstract:A new storage data acquisition system based on TMS320F2812 DSP, external expansion memory and USB is proposed. By using the capabilit
3、y of high-speed computing, powerful real-time processing and abundant on-chip peripheral modules of TMS320F2812 DSP ,the system can realize fast signal acquisition and real-time processing, resolving the problems of slow processor and poor real-time processing capability of the traditional storage a
4、cquisition system based on the MCU and CPLD.Measured data can be recorded to the storage module,then realize the achieved record-keeping.The system uses TMS320F2812 chip comes with 12-bit ADC data acquisition to achieve all the way,data were collected and simple lines of treatment records to 1M exte
5、rnal memory module.Can be uploaded data to the PC through the USB slave with FT245R chip.To achieve real-time acquisition.The article describes the various modules of system design concept and principles in detail,as well as hardware and software composition.Obtained in the experimental board comple
6、ted the experiment,the results were analyzed,the results show that the experiment all the basic functions.Key word: TMS320F2812,data acquisition,ADC,FT245R第 3 页 共 47 页1 绪论1.1 课题的研究背景在当前许多检测和控制系统中,数据采集是很重要的组成部分;随着数字信号处理理论和计算机技术的不断发展,在图像处理、瞬态信号检测、软件无线电等一些领域,更是要求高速度、高精度、高实时性的数据采集模块。数据采集完成对大量原始的现场数据和信息的
7、采集与预处理,并通过建立与上位机的实时通信,向系统提供数据。对于数据采集模块,通常要求其能对多通道进行并行处理,具备较高的实时性并有一定的数据处理能力。随着现代检测与控制系统复杂性的提高,对数据采集模块也提出了新的要求。在很多控制系统中,要求数据采集模块能够对多个信号通道进行实时,高速的数据采集与高精度的数据预处理。而在传统的存储测试系统中,常常利用单片机和 CPLD 来作为系统的主控芯片。基于这些部件设计的存储测试系统由于受到处理器速度的限制,对采集到的数据进行实时处理的能力不是很理想。这就需要引入一种新型处理器来解决这个问题。数字信号处理器(DSP)的出现和广泛使用,很好地满足了数据采集系
8、统对于核心处理器的要求。无论从实时处理外部事件(中断,I/O )的能力,还是对于数据运算的速度和精度来看,数字信号处理器都有非常大的优势。DSP 是数字信号高速实时处理的专用处理器,内部集成大量功能模块(如 A/D 等) ,处理速度比单片机还快 1050 倍,并在处理器结构、指令系统、指令流程上做了很大的改动。DSP 的这些特点使得 DSP非常适用于微型高速数据采集及处理系统上。DSP 自从上世纪 70 年代问世以来,在通信,控制,图像处理,语音处理等领域已得到了极其广泛的应用。本课题就是采用 DSP 作为主控芯片设计的实时数据高速采集记录的系统。1.2 DSP 的发展历史和应用领域20 世纪
9、 60 年代以前,数字信号处理技术是一门应用十分狭窄的技术,只能应用在导弹和语音识别等有限的几种系统中。60 年代中期快速傅立叶算法的出现和大规模集成电路的发展,奠定了硬件完成数字信号处理算法和数字信号处理理论实用化的重要技术基础。DSP 器件的发展分为三个阶段 5:第一阶段(1980 年前后),DSP 雏形阶段。开始出现脱离单片机结构的 DSP 芯片,第 4 页 共 47 页但在运算速度、数据处理能力、运算精度方面有很大的局限。这个时期的 DSP 器件运算速度大约为单指令周期 200nS-250ns。这个阶段具有代表性的器件有:Intel2920、 (NEC )uPD7720、(Tl)TMS
10、32010、(AMI)S2811、(AT电流的大小取决于集线器端口,最小为 100mA,最大不会超过 500mA,用户可以直接使用这个总线电源。另第 6 页 共 47 页外 USB 支持低功耗模式,如果其连续 3ms 没有总线活动的话, USB 就会自动进入挂起状态,以节省电能消耗。(10)兼容性。USB 规范有良好的向下兼容性,如 USB2.0 的主控制器就能很好地兼容 USB1.1 的产品,操作系统在检测到全速 USB 设备接入时,就自动按照 12Mb/s的速率进行传输;而其它高速 USB 设备并不会因为全速设备的连接而减慢它们的传输速率,它们仍可继续使用 480Mb/S 的速率进行传输。
11、1.4 本论文的工作本论文主要工作为:(1)学习掌握 TMS320F2812 芯片的特点、内核组成、外设功能、时钟及系统控制。熟悉 DSP 系统开发的流程和方法及 CCS 的使用;(2)详细阐述了 DSP 系统的设计思路,介绍了针对标准 TMS320 调试接口的集成开发环境-CCS 代码调试器。采用 TDS510 硬件仿真器,主机通过调试器和 JTAG仿真电缆与目标系统的 JTAG 接口相连接,控制系统板上的 DSP 器件。学习数据采集系统的常用设计方法,完成了基于 DSP2812 的数据采集系统的设计;(3)学习 Protel99SE 软件,并完成硬件电路的设计和测试;(4)基于设计好的系统
12、,在 CCS 环境下编写系统 C 语言程序。(5)采用 XDS510 硬件仿真器对系统经行仿真调试与验证。2 系统总体设计介绍2.1 TMS32F2812 介绍2.1.1 TMS320 系列芯片介绍TMS320 系列 DSP 芯片的基本结构包括:(l)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的 DSP 指令;(5)快速的指令周期。这些特点使得 TMS320 系列 DSP 芯片可以实现快速的 DSP 运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。由于 TMS320 系列 DSP 芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。根据特点不同,又分为
13、了几个系列,常用的如 TMS320C2000 系列,C5000 系列,C6000 系列。TMS320C2000 系列将各种高级数字控制功能集成在一个芯片上。强大的数据处理和控制能力可以大幅度提高应用效率和降低功耗。TMs320C28x TM 系列 DSP 是目前控第 7 页 共 47 页制领域最高性能的处理器,具有精度高、速度快、集成度高等特点,为不同控制领域提供了高性能解决方案。TMS320C24X 系列 DSP 则为不同应用平台提供了基本解决方案。所以 2000 系列主要用于控制领域。TMS320C500TM 系列由于其低功耗的特点专门针对消费类数字市场而设计的。最低耗电为 0.33mA/
14、MHz。TMS320C54x TM 与 TMS320C55xTMDSP 均可用于便携式产品,如数字随身听、GPS 接收器、便携式医疗设备、3G 移动电话、数码相机气。TMS320C5000TMDSP 平台对于注重运算速度和功耗的语音及资料应用产品也是最佳解决方案。TMS320C600 系列是处理能力最强、易于采用高级语言编程的 DSP。定点及浮点DSP 市场定位在网络交换、图像处理、雷达信号处理等高端应用领域。TMS320C64xTM DSP 的 CPU 运行速度超过 l0Hz,其性能远超过第一代TMS320C62xTMDSP 近 10 倍,为高端的应用提供了很好的解决方案 10。传统的 DS
15、P 芯片虽然数据处理的能力非常强大,但它控制能力却比较弱。设计时往往需要加很多的外围接口电路,TI 公司近年推出的 TMS320C2000 系列改变了这一局面。它的体系结构专为实时控制及实时信号处理而设计,所配置的片内外设(如 AD等)为控制系统应用提供了一个理想的核心芯片。同时代码和指令与 F24x 系列数字信号处理器完全兼容,从而保证了项目或产品设计的可延续性。F281x 系列数字信号处理器提高了运算的精度(32 位)和系统的处理能力(最高达到 150MIPS),还集成了 4KB的引导 ROM,数学运算表,大大改善了应用的灵活性。128 位的密码保护机制有效地保护了产品的知识产权。16 通
16、道高性能 12 位 ADC 单元提供了两个采样保持电路,可以实现双通道信号同步采样 10,大大的提高了芯片的利用价值。基于 DSP 的微型测试记录系统对芯片的集成度要求高,常用模块最好都集成到一块芯片中,这样有利于减小测试系统的体积,提高测试系统的可靠性。所以该系列的DSP 非常适合基于 DSP 的微型测试系统的要求。 2000 系列性能最好的 TMS320F2812芯片由于其丰富的片内资源,快速的处理速度非常适合本设计的要求。2.1.2 TMS320F2812 功能及其特点TMS320F2812 为 TI 公司首推的的芯片,具有很高的性价比,广泛应用于工业控制,特别是应用于处理速度、处理精度
17、方面要求较高的领域,在电子控制领域发挥着重要的作用,推动了电子信息化进程。第 8 页 共 47 页在控制领域,TMS320F2812 主要有以下显著优点:(1)处理速度快,主频最高可达 150MHZ(周期 6.67ns) ;(2)片内自带 SRAM,Flash,节省成本及外部电路的复杂性;(3)外部存储器接口,外部最多可扩张 1M16b 存储空间;(4)众多的外部设备,如 SCI,SPI ,CAN,EV,ADC 等;(5)大量的可控制 GPIO 口,方便控制外部设备;(6)支持 C/OS 操作系统,提高了系统的应用效能。C28x 系列芯片的功能框图如图 2.1 所示。第 9 页 共 47 页图
18、 2.1 TMS320F2812 结构图2.2 CCS 开发环境的介绍2.2.1 CCS 的介绍 CCS(CodeComposerStudio)是 Tl 推出的用于开发其 DSP 芯片的集成开发环境,它采用 Windows 风格界面,集编辑、编译、链接、软件仿真、硬件调试及实时跟等功能于一体,极大地方便了 DSP 程序的设计与开发 12。CCS 有两种工作模式,即软件仿真器和硬件在线编程。软件仿真器工作模式可以离 DSP 芯片,在 PC 上模拟 DSP 的指令集和工作机制,主要用于前期算法实现和调试硬件在线编程可以实时运行在 DSP 芯片上,与硬件开发板相结合进行在线编程和调试应用程序。CCS
19、 目前有 CCS1.1、CCS1.2 、CCS2.0 和 CCS2.2 等几个版本,其中还有CCS2000(针对 C2xx)、CCS5000(针对 C54xx、C55xx )和 CCS6000(针对 C6x)等几个不同的型号。各个不同的版本和型号之间的差别并不大。通常一种型号的 CCS 只适用于一种系列的 DSP 芯片。用户只需在 CCS 配置程序中设定 DSP 的类型和开发平台类型即可 12。利用 CCS 可以进行如图 2.2 所示的开发周期的所有阶段。图 2.2 CCS 开发流程所以我们使用 CCS 可以从系统的源文件的开发都最后的系统仿真调试,其中 CCS还可以通过观察寄存器中的值对程序
20、经行一定的软件仿真,是 DSP 系统开发的必不可少的工具。2.2.2 CCS 的配置开始使用 CCS 时需要配置系统,具体过程如下:设计概念性规划编程和编译创建工程文件、编写源程序和配置文件调试语法检查、探测点设置和日志保存分析实时调试、统计和跟踪第 10 页 共 47 页步骤 1:打开 SetupCCS 程序。步骤 2:选择相应的型号,仿真器选择 XDS510。步骤 3:将所选的配制加入系统配置中。步骤 4:插上仿真器,添加仿真器驱动程序。步骤 5:保存系统配置,退出并打开 CCS。详细配置见图 2.3:图 2.3 CCS 配置图2.2.3 仿真器驱动程序安装步骤如下 14(l)不连接目标板
21、,将仿真器通过 USB 电缆连接到主机上的 USB 接口。(2)系统将提示找到新 USB 设备,根据系统安装新设备向导,选择自动搜索设备驱动程序,并将搜索路径指定为 XDS510USB 仿真器驱动程序所在路径(CDROM 下 drive目录),按“下一步”按钮,根据提示完成驱动程序安装。(3)设备驱动程序安装完成后在系统设备列表里应该可以看到在 WintechDisital Emulator 里增加了 WinteehDigital XDS510-USB2.0 设备。(4)安装 WinteehDigital XDS510USB2.0 JTAG Emulator 支持软件,双击 CDROM 根目录
22、下的 Setup.exe 进行安装,安装过程中请指定正确的 CCS 的安装路径。第 11 页 共 47 页(5)wintech Digital Xds5l0USB2.0 JTAG Emulator 支持软件安装完成后将在你指定的CCS 目录中生成 xds510usb 的目录。2.2.4 CCS 常用文件常用文件名 15:*.cmd-链接命令文件;*.obj-由源文件编译或汇编后所生成的目标文件;*.out-完成编译、汇编、链接后所形成的可执行文件,可在 CCS 监控下调试和执行。2.2.5 利用 CCS 集成编译环境开发应用程序的步骤1编写 4 种类型的文件开发一个 DSP 的 C 语言应用程
23、序,主要需要 4 种类型的文件:C 语言文件、汇编语言文件、头文件和命令文件。C 语言文件为“.C”的格式,主控制程序部分以及不涉及复杂的算法运算的部分用 C 语言文件编写;汇编文件为“.ASM”的格式,主要是涉及到程序的复位和中断向量;头文件为“.H ”的格式,主要定义了 DSP 内部寄存器的地址分配,书写一次后可被其它程序反复使用,命令文件可以参考 TI 公司详细的头文件定义命令文件为 “.CMD”的格式,主要定义堆栈、程序空间分配和数据空间分配。这四种类型的文件必须存储在同一个文件夹下。另外,还需要把一个“rts2800n.lib”的库文件复制到该文件夹下。本文用 C 语言开发。2建立一
24、个工程 DSP 的 C 语言应用程序引入了工程管理的概念。因此需要新建一个工程,并把上述的文件除了头文件外都添加到工程当中,头文件不需要用户自己添加,只要头文件和工程在同一个目录下,连接时开发工具可以自己识别。3在.C 文件下编写所需各种程序。4编译源文件点击菜单栏“Project”中的选项“Build ”,则可以实现源文件的编译。如果没有语法错误,则可以直接生成可执行代码并直接下载到 DSP 芯片中如果有语法错误或其它类型的错误,则编译器会给出相应的提示,可以根据提示改掉错误,再进行同样的操作,直到没有任何错误为止。5执行程序等待程序编译成功下载到芯片后,点击菜单栏中的“Debug”选项,选
25、择其下拉菜单中“Run”选项就可以运行程序。为了确定某几步的问题也可以进行单第 12 页 共 47 页步调试,还有可以设置断点、并通过观察窗口察看变量的值等等。一个程序的成功调试可能需要在仿真器上反复编译并下载运行,以发现编程时没有注意到的 Debug 问题。2.3 系统总体设计思路本系统为数据采集记录系统,主要是采集传感器输出的模拟电压,因此需要对输入的信号进行前期的处理,由于 F2812 的 AD 输入为 03V,为了扩大输入范围,可以通过运放来扩大到 12V,基本满足大多数的信号幅值。因为本系统还需存储功能,所以虽然 TMS320F2812 内置了 18kb RAM,但还是远远不够我们的
26、存储要求,F2812 最大可以扩展 1M16 位的片外 RAM,本系统扩展了 1M 的片外 RAM 来存储数据。为了增加系统的实时性处理能力,本系统增加了与上位机通信模块,可以将采集的数据实时上传的 PC 机进行观察和处理,使本系统更加适用于实时监测。由于多平台标准的优势,兼容性好、可用外设多、传输速度快、接口电路简单,易于实现的优点我们在通信模块上选用了 USB 接口电路。能够快速,稳定的与上位机进行通信。整个系统的总流程为经过处理后的信号输入 TMS320F2812 片内的 AD 中,通过编程转换后得到相应的数字量,并将其送到到存储空间中保存。同时将片外的存储数据通过 USB 接口上传到上
27、位机上。基本系统流程如图 2.5。图 2.5 系统结构图由上述可总结该数据记录系统由模拟调理电路模块、数据采集模块,片外存储模块、USB 通信模块和电源转换模块等组成。3 系统设计步骤3.1 电源模块设计 为了降低芯片功耗,TMS320F2812 采用双电源供电的方式,其中一路电源电压为电信号的输入模拟处理电路F2812DSP ADC 控制模块USB 存储模块FT245R USB 传输模块第 13 页 共 47 页33V,为 GPIO,FLASH,ROM 和 ADC 提供工作电压,另一路电源为+18v(或+19v),CPU 内核提供能源。且两者有规定的上电顺序。先给 I/O 口上电,稳定后再给
28、内核上电。本模块上电有两种方案:方案一:采用双路输出电源芯片如 TPS73HD301、TPS73HD325 和TPS73HD318。该方案的优点是用一个芯片就以解决两个输出电源的问题,缺点是电源干扰大,容易出现耦合;因此输出电压的精度不佳。容易是系统不稳定。方案二:两路电源分开设计,即单独设计+3.3V 电源和 +1.9V,电源电路方案的优点是两路电源可以分开调试,互不干扰,并能提供较大功率。缺点是电路复。由于DSP 芯片对输入电压有极高的要求,因此本设计采用第二种方案。我们选用了 TI 提供的 DSP 专用电源芯片 TPS75733 和可调电压的 TPS76801 分别为系统提供 3.3V
29、电压和 1.9V 电压。TPS75733 封装如图 3.1图 3.1 TPS75733 封装图TPS75733 可以将 5V 的输入电压转换为 I/O 口所需要的 3.3V,能够满足 F2812 的需要,但它的 OUTPUT 趋于稳定的时候,其引脚 PG 输出低电平。如图 3.2。第 14 页 共 47 页图 3.2 TPS75733 时序图TPS76801 则为可调电压芯片,可以通过改变外部电阻值来改变输出电压,其公式如下:注:R1,R2 见图 3.3本模块用常用的电阻值。R1= 18.2K,R2=30.1K。VO=1.1834V(1+18.2/30.1)=1.898V1.9V图 3.3 T
30、PS76801 典型电路第 15 页 共 47 页F2812 规定上电顺序,必须先给 I/O 口上电,再给内核提供 1.9V 的电压。所以本系统先通过 TPS75733 为 I/O 口提供 3.3V 的电压,经过一短时间当电压输出达到稳定的 3.3V 后 TPS75733 的 PG 引脚输出低电平,并将其作为为系统内核提供 1.9V 的TPS76801 的使能信号。启动 TPS76801 为内核输出 1.9V 的电压,实现了上电的顺序差。具体电路图如图 3.4。图 3.4 电源模块3.2 模拟信号处理模块本模块就是将从传感器上输出的微弱信号经行调理放大输入范围,使其变成稳定的模拟信号驱动后路电
31、路。 采用了 TI 公司的双运放的 TLC2272 芯片,其具有高输入阻抗,低噪声,低功耗,且对输入失调电压温度及时间上有很高的稳定度,上述特点使得 TLC2272 在对声纳、压力传感器、温度控制、有源 VR 传感器等都是理想器件。处理模块电路如图 3.5第 16 页 共 47 页图 3.5 模拟信号处理模块根据虚短可知 ( Sigal1+3.3V) 36/1236+36/12=3645.09可得 所以扩大了模拟电压的输入范围,大概为=( Sigal1+3.3V)4原来的 3 倍,同时满足电阻平衡,有效抑制零点漂移,稳定静态工作点,是运放能够稳定的处理信号。3.3 系统时钟设计TMS32OF2
32、812 系统时钟介绍:TMS320F2812 的 CPU 时钟电路为图 3.5 所示 12。 F28l2 处理器片上有基于 PLL的时钟模块,为器件及各种外设提供时钟信号。锁环有 4 位倍频设置位,可以为处理器提供各种速度的时钟信号。时钟模块提供两种工作模式。内部振荡器:如果使用内部振荡器,则必须在 Xl/XCLKIN 和 X2 两个引脚之间接一个石英晶体。外部时钟源:如果采用外部时钟,脚上,而 X2 悬空。在这种情况下,可以将输入的时钟信号直接接到不使用内部振荡器 16。第 17 页 共 47 页图 3.6 TMS32OF2812 CPU 时钟本系统使用内部振荡器,外接 30M 的晶振。通过
33、通过锁相环控制寄存器来选择锁相环的工作模式和倍频的系数,最大可以倍频到 150M。 其倍频关系为公式 3.1系统时钟 SYSClk=(XCLKINn)/2 (3.1)其中 XCLKIN 为外部晶振值,n 则为 PLLCR 寄存器的低四位 PLLCR3:0。对于外设时钟,分为高速时钟和低速时钟。本系统所用的 AD,EVA 等外设为高速时钟,所以我们只讲 HSPCLK 的设置。高速时钟由系统时钟经过分频而得,其中分频系数则有 HISPCP 中的低四位决定,其关系式为 3.2:高速时钟=SYSClk /(2 HSPCLK) (3.2)其中 HSPCLK 为高速外设寄存器 HISPCP 的低三位,并当
34、其为 0 的时候,高速时钟为SYSCLK。系统默认 HSPCLK=1。所以当配置好系统时钟 SYSCLKOUT 后 通过赋值给 HISPCP 寄存器来改变HSPCLK 的值。系统配置时钟的程序如下:第 18 页 共 47 页void InitSysCtrl(void) Uint16 i;EALLOW;DevEmuRegs.M0RAMDFT=0x0300;DevEmuRegs.M1RAMDFT=0x0300;DevEmuRegs.L0RAMDFT=0x0300;DevEmuRegs.L1RAMDFT=0x0300;DevEmuRegs.H0RAMDFT=0x0300;SysCtrlRegs.WD
35、CR= 0x0068;SysCtrlRegs.PLLCR=0x2; /SYSCLKOUT=30*2/2=30Mfor(i= 0; i 5000; i+)SysCtrlRegs.HISPCP.all = 0x0001;/HSPCLK=30/2=15MHZSysCtrlRegs.LOSPCP.all=0x0000;SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; /使能 EVA 高速时钟。SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;/使能 ADC 外设内部的高速时钟。3.4 数据采集模块数据采集采集模块是本系统的核心,数据采集记录系统的好坏主要体现在采集
36、数据的精度和速度上。3.4.1 ADC 模块的介绍TMS320F2812 ADC 模块是一个 12 位带流水线的模数转换器(ADC),模数转换单元的模拟电路包括前向模拟多路复用开关(MUXS)、采样/保持(S/H)电路、变换内核、电压参考以及其他模拟辅助电路。模数转换单元的数字电路包括可编程转换序列器、第 19 页 共 47 页结果寄存器、与模拟电路的接口、与芯片外设总线的接口以及同其他片上模块的接口。模数转换模块 ADC 有 16 个通道,可配置为 2 个独立的 8 通道模块,分别服务于事件管理器 A 和 B,两个独立的 8 通道模块也可以级联构成一个 16 通道模块。尽管在模数转换模块中有
37、多个输入通道和两个排序器,但仅有一个转换器件。F2812 的 ADC模块的功能框图如图 3.9 所示 15。两个 8 通道模块能够自动排序,每个模块可以通过多路选择器(MUX)选择 8 通道中的任何一个通道:在级联模式下,排序器将变成 16通道。图 3.7 ADC 模块功能框图对于每个通道而言,一旦 ADC 转换完成,将会把转换结果存储到结果寄存器(ADCRESULT)中。自动排序器允许对同一个通道进行多次采样,用户可以完成过采样算法,这样可以获得更高的采样精度。ADC 模块主要包括以下特点 13:(1)12 位模数转换模块 ADC,其分辨率为 1/4096。(2)两个采样和保持器。(3)同时
38、或顺序采样模式。第 20 页 共 47 页(4)模拟输入电压范围:0V3V。(5)快速的转换时间,ADC 时钟可以配置为 25MHz,最高采样频率为 12.5MSPS(6)16 通道模拟输入。(7)自动排序功能支持 16 通道独立循环“自动转换” ,每次转换的通道可用软件编程选择。(8)排序器可以工作在两个独立的 8 通道排序器模式,也可以工作在 16 通道级联模式。(9)16 个结果寄存器存放 ADC 的转换结果,转换后的数字量表示为公式(3.1)(3.1)数字 值 =4095输 入模 拟值 03(10)有多个触发源启动 ADC 转换(SOC)。S/W:件立即启动;EVA:事件管理器 A(在
39、 EVA 中有多个事件源可启动 AD 转换);EVB:事件管理器 B(在 EVB 中有多个事件源可启动 AD 转换)。为获得更高精度的模数转换结果,正确的 PCB 板设计是非常重要的。连接到ADCINxx 引脚的模拟量输入信号线要尽可能地远离数字电路信号线。为减少因数字信号的转换产生的耦合干扰,需要将 ADC 模块的电源输入同数字电源隔离开。ADC 模块寄存器共有三个控制寄存器,一个状态寄存器,16 个结果寄存器,一个转化通道寄存器。3.4.2 自动转换排序器的操作原理模数转换模块 ADC 排序器由两个独立的 8 状态排序器(SEQI 和 SEQ2)构成,这两个排序器还可以级联构成一个 16
40、状态的排序器(SEQ) 。这里的状态是指排序器内能够完成的 ADC 自动转换通道的个数。对于这两种排序器模式,模数转换模块 ADC 都可以对一系列转换进行自动排序,每次模数转换模块收到一个开始转换请求,就能自动地完成多个转换。对于每个变换,可通过模拟复用器选择 16 个输入通道中的任何一个。转换结束后,所选通道转换的数字量保存到相应的结果寄存器(ADCRESULTn)中。用户也可以对同一通道进行多次采样,从而实现过采样算法,过采样模式有利于提高采样精度 14。第 21 页 共 47 页自动排序中,MAXCONVxx 代表了一次转换的通道数,CONVxx 则代表了当前转换的通道,同步时只看后三位
41、,顺序模式由最高位判别式那个排序器。3.4.3 ADC 时钟的预定标外设时钟 HSPCLK 是通过 ADCTRL3 寄存器的 ADCCLKPS3:0位来分频的,然后再通过寄存器 ADCTRLI 中的 CPS 位进行 2 分频。此外, ADC 模块还通过扩展采样获取周期进行调整信号源阻抗,这由 ADCTRLI 寄存器中的 ACQ_PS3:0。位控制 15。这些位并不影响采样/保持和转换过程,但通过扩展变换脉冲的长度可以增加采样时间的长度,如图 3.8 所示。图 3.8 ADC 采样宽度配置ADC 模块有几种时钟预定标方法。从而产生不同速度的操作时钟。图 3.9 给出了ADC 模块的时钟的选择方法
42、。图 3.9 ADC 时钟的配制第 22 页 共 47 页表 3.1 为本系统 ADC 时钟选择。表 3.1 本系统 ADC 时钟配置XCLKIN PLLCR3:0 HISPCLK ADCTRL34:1SysCtrlRegs.PLLCR=0x2 HISPCP=0x0001 430M 302/2=30M 30/2=15M 15/8=1.875MADCTRL1.7 ADCCLK ADCTRL111:8 SH 宽度0 01.875/1=1.875M 1.875M 1 13.4.4 EVA 设置事件管理器模块提供了强大的控制功能,特别适合运动控制和电机控制等领域。F2812 数字信号处理器有两个事件管
43、理器模块,每个事件管理器包括通用定时器(GP)、比较器、PWM 单元、捕获单元、以及正交编码脉冲电路 (QEP)16。本模块是用 EVA 中的定时器 1 来产生中断信号并触发 ADC 转换的。EVA 中的有两个 16 位的定时器,可以通过设置来选择其寄存器中数值增减方式,当其数值变化与提前设置的周期寄存器中的数值相同的时候,就会产生一个中断,并响应中断,执行中断程序,而计数器的值会重新装载 0,继续下一个周期,这样就可以安可调周期时间来产生中断,用这个信号来触发 ADC 转换,读数,则就变成了 ADC 的采样频率。我们只要改变周期寄存器中的值就可以改变采样频率了,非常方便。由于 HSPClk=
44、1.875M,EVA 的始终 X 经过分频本文采用一分频,即 X=1.875M,通过设置周期寄存器的数值来改变采样率,本文实验时采用了 26KHZ 的采样频率。所以周期数值=1.875M/26Khz=72,转换为十六进制数为 0x0048。EVA 的配制如下:Void init_eva_timner1(void)EvaRegs.GPTCONA.all=0; /初始化定时器 1 的寄存器EvaRegs.T1.PR=0x0048; ; /设置周期值,采样频率为 26KHZ。EvaRegs.T1.CMPR=0X0000; /比较值第 23 页 共 47 页EvaRegs.EVAIMRA.bit.T1
45、PINT=1;EvaRegs.EVAIFRA.bit.T1PINT=1;/使能周期 GP 定时器 1 的中断位EvaRegs.T1CNT=0x0000; /清除 GP 定时器 1 的值EvaRegs.T1CON.all=0x1042; /递增计数,内部时钟,分频系数为 1,使能比较。EvaRegs.GPTCONA.bit.T1TOADC=2;/由 EVA 定时器 1 周期中断产生的ADC 转换3.4.5 ADC 的转换触发 ADC 经行转换的方式可以有三种:(1)软件触发。(2)事件管理器中断触发。(3)外部引脚触发。本系统采用 EVA 触发,可以很方便的设置采用频率,利用中断信号来触发 AD
46、C的转换,省去了软件设置标志位等繁琐的配制,更加方便控制。3.4.6 ADC C 语言设置void InitAdc(void) /初始化unsigned int j;AdcRegs.ADCTRL1.bit.RESET=1; /复位NOP;AdcRegs.ADCTRL1.bit.RESET=0;AdcRegs.ADCTRL1.bit.SUSMOD=3;/仿真挂起时,排序器和其它逻辑立即停止AdcRegs.ADCTRL1.bit.ACQ_PS=0;/采样窗=(ACQ_PS +1)*(1/ADCCLK)AdcRegs.ADCTRL1.bit.CPS=0;/预定标系数=0AdcRegs.ADCTRL1
47、.bit.CONT_RUN=1;/连续转换模式第 24 页 共 47 页AdcRegs.ADCTRL3.bit.ADCBGRFDN=3;/带隙和参考电路上点for(j=0;j10000;j+) NOP;/延迟AdcRegs.ADCTRL3.bit.ADCPWDN=1;/其他模拟电路上电for(j=0;j5000;j+) NOP;AdcRegs.ADCTRL3.bit.ADCCLKPS=15;/FCLK=HSPCLK/(2*15)=75M/30=2.5M,/ADCCLK=FCLK/(CPS+1)=2.5/1=2.5MHZAdcRegs.ADCTRL3.bit.SMODE_SEL=0;/顺序采样/
48、AdcRegs.ADCTRL3.bit.SMODE_SEL=1;/同步采样模式AdcRegs.MAX_CONV.bit.MAX_CONV=7;/转换通道为 8 个AdcRegs.CHSELSEQ1.bit.CONV00=0;/选择转换通道 A0AdcRegs.CHSELSEQ1.bit.CONV01=1;AdcRegs.CHSELSEQ1.bit.CONV02=2;AdcRegs.CHSELSEQ1.bit.CONV03=3;AdcRegs.CHSELSEQ2.bit.CONV04=4;AdcRegs.CHSELSEQ2.bit.CONV05=5;AdcRegs.CHSELSEQ2.bit.C
49、ONV06=6;AdcRegs.CHSELSEQ2.bit.CONV07=7;AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;/清除 SEQ1 的中断标志位INT_SEQ1,写 0 无影响AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0;/EVB 信号不起作用AdcRegs.ADCTRL2.bit.RST_SEQ1=1;/立即将排序器复位到 CONV00AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;/使能 INT SEQ1 产生的中断第 25 页 共 47 页AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;/每个 SEQ 序列结束时,INT SEQ1置位,再次触发 SEQ1 转换AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;/EVA 的触发信号启动 SEQ1AdcRegs.ADCTRL2.bit.EXT_SOC_S