基于DSP的数据采集系统的方案设计书Word格式.docx
《基于DSP的数据采集系统的方案设计书Word格式.docx》由会员分享,可在线阅读,更多相关《基于DSP的数据采集系统的方案设计书Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
而现代工业生产和科学研究的发展要求数据采集卡具有更好的数据采集、处理能力,传统的CPU已经不能满足这一要求。
针对以上要求。
1.2国内外研究及开发现状
数据采集与处理一直是生产实践研究与应用领域的一个热点和难点。
随着微电子制造工艺水平的飞速提高及数据分析理论的进一步完善与成熟,目前国内外对数据采集系统的高性能方面的研究上取得了很大的成就。
就A/D转换的精度、速度和通道数来说,采样通道从单通道发展到双通道、多通道,采样频率、分辨率、精度逐步提高,为分析功能的加强提供了前提条件[2]。
而在数据分析的微处理器上,最初的数据采集系统以8位单片机为核心,随着微电子技术的不断发展,新兴单片机的不断问世,十六位、三十二位单片机也为数据采集系统研制厂家所采用,近来采用具有DSP功能的数据采集系统也己投入市场。
同时,通用PC机的CPU用于数据处理也较为常见。
总之,伴随着高性能微处理器的采用和用户技术要求的不断提高,数据采集系统的功能也越来越完善。
数据采集系统的发展主要体现在以下几个趋势:
首先,在专业测控方面,基于PC计算机的数据采集系统越来越成熟和智能化。
在过去的二十年中,开放式架构PC机的处理能力平均每十八个月就增强一倍为了充分利用处理器速度的发展,现代开放式测量平台结合了高速总线接口,如PCI和PXI/CompactPCI,以便获得性能的进一步提升。
计算机的性能提升和由此引起的基于计算机的测量技术的创新,正在持续不断地模糊着传统仪器和基于计算机的测量仪器之间的界线。
其次,在通用测控方面,采用嵌入式微处理器的方案也由早期的采用A/D器件和标准单片机组成应用系统发展到在单芯片上实现完整的数据采集与分析,即目前极为热门的SOC(SystemOnChip)[3]。
通常在一块芯片上会集成一个,可以采样多路模拟信号的A/D转换子系统和一个硬CPU核(比如增强型80_52内核),而且其CPU的运算处理速度和性能也较早期的标准CPU内核提高了数倍,而且有着极低的功耗。
这种单芯片解决方案降低了系统的成本和设计的复杂性。
此外,为了解决SOC方案中数据处理性能的不足,采用DSP作为数据采集系统的CPU的研究与应用目前也逐渐引起业内重视。
但是这类产品目前仅仅处于发展的初级阶段,在精度、速度或其它性能指标上并不能很好的满足要求。
因此,国内外以DSP作为数据采集系统的采样控制和分析运算的研究与应用正在展开。
1.3本文主要内容和章节安排
本文完成了一种基于数字信号处理器、通用串行总线接口的数据采集系统的方案的设计,实现了数据的采样与分析,重点针对DSP硬件设计和DSP软件设计展开研究。
全文的结构安排如下:
第1章绪论,说明了课题的来源、研究的目的、意义以及国内外研究现状。
第2章主要DSP数据采集系统总体设计方案,给出了适合本系统的方案。
第3章给出了系统的硬件设计过程,重点研究DSP硬件电路的设计。
第4章给出了系统的软件设计过程,重点研究DSP的C语言编程思想以及用组态王开发上位机的方法,以及DSP与PC机之间的通信接口。
第5章给出了系统测试过程和测试结果。
第6章为本课题所做的工作进行总结,并提出今后研究工作的展望。
第二章DSP数据采集系统总体设计方案
随着科学技术的飞速发展,数据处理这个环节在整个科研工作中是个重要的必
不可少的过程,数据处理系统工作的质量和速度如何,对整个科研工作的影响也是很大的。
因此,有必要了解数据采集系统的特点、主要性能指标以及一般的结构,在此基础上进行总体方案设计。
2.1现场处理器的选择
随着信息社会的不断发展,对数据采集的实时性和精度提出了更高的要求,传统的单片机显然不能满足要求。
TI公司推出的系列DSP一改传统的冯。
诺依曼结构,采用先进的哈弗总线结构。
将程序和数据放在不同的存储空间内,每个存储空间都可以独立访问,而且程序总线和数据总线分开,从而使数据的吞吐率提高了一倍。
作为TI公司的TM320F2812具有很高的性价比,广泛应用于工业控制,特别是应用于处理速度,处理精度方面要求较高的领域。
TMS320F2812的主要性能[6]如下:
(1)TMS320F2812芯片采用了高性能的CMOS技术,其主频最高可以达到150MHz,时钟周期为6.67ns。
当内核电压为1.8V时,主频为135MHz;
当内核电压为1.9V时,主频为150MHz。
(2)支持JTGA在线仿真接口。
(3)高性能的32位中央处理器。
采用哈佛总线结构模式,具有快速的中断响应和中断处理能力,具有同一的寄存器编程模式,并且编程可兼容C/C++语言以及汇编语言。
(4)TMS320F2812片内含有128K×
16位的Flash,分为4个8K×
16位和6个16K×
16位的存储段;
而TMS320F2812片内含有128K×
16位的ROM。
(5)时钟和系统控制:
内含看门狗定时器模块;
具有片内振荡器;
支持动态锁相环倍频。
(6)3个外部中断模块,外部中断模块PIE可以支持96个外部中断,当前仅用了45个外部中断。
(7)128位安全密匙:
可以保护Flash/ROM、OTPROM和L0、L1SARAM;
防止系统中的软件程序被修改或读取。
(8)先进的仿真模式:
具有实时分析以及设置断点的功能;
支持硬件仿真。
(9)低功耗模式和节能模式:
支持IDEL、STANDBY、HALT模式,即支持空闲模式、等待模式以及挂起模式;
可以独立禁止/使能各个外设的时钟。
(10)双向的10位串行数模转换器,采样速率可以达到166KHz,精度达到210即1024;
(11)带有功能强大的事件管理器:
3个通用定时器、3个全比较单元、3个单比较单元、PWM脉宽调制电路、事件管理器模块中断控制电路、4个捕获单元以及QEP正交编码脉冲电路;
(12)带有串行通讯接口模块(SCI)、串行外设接口模块(SPI)、数字I/O端口模块、CAN控制器模块,便于与外部设备通讯;
2.2处理器间的通信
在现场总线的设计过程中,我们考虑过用RS一485的基于R线构建分布式控制系统。
但是较之目前许多RS一485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性。
首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。
而利用RS一485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。
其次,CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。
这就保证不会出现象在RS一485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。
而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS一485所无法比拟的。
另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。
这些也是目前CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。
由于本系统只是整个现场主控制系统中的一个子系统,需要与主系统其他子系统进行通信,并且相互能够进行实时的数据传输和处理。
而CAN具有独特的设计思想,良好功能特性和极高的可靠性,现场抗干扰能力强,结构简单,只有两根线与外部相连,通信方式灵活,可以点对点、点对多点及全局广播方式发送和接收数据等等优点[ll],我们选择使用DsP本身就具有的cAN总线控制器模块来完成于其它子系统的通信。
2.3上位机软件的开发
近年来兴起的组态软件是一种标准化,模块化,商品化的通用工业控制开发软件,只需要进行标准功能模块的软件组态和简单的编程,就可以设计出标准化,专业化,通用性强,可靠性高的上位机人机界面控制程序,且工作量较小,开发调试周期短,对程序设计员要求也较低,并且由于组态软件都是由专门软件开发人员按照软件工程的规范来开发的,使用前又经过了比较长时间的工程运行考验,其质量是有充分保证的。
因此,控制组态软件是性能优良的软件产品,已成为开发上位机控制程序的主流开发工具。
2.4PC机与DSP的通信接口
串行接口是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:
数据位传送,传按位顺序进行,最少只需一根传输线即可完成;
成本低但传送速度慢。
串行通讯的距离可以从几米到几千米;
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
现已确定下位机选用TI公司的TMS320F2812DSP芯片,数据经DSP采集后,要实时将现场信息传输到PC机进行实时监控。
DSP的与数据传输相关的外设有SCI、SPI、CAN。
现已将CAN总线用于各个DSP间的通信,SPI为一种同步串行外设接口,使用较少。
SCI接口可以工作在全双工工作模式,并且经接口芯片转换后可变成RS-232或RS-485电平标准,进而与PC机的串口相连。
是一种较为实用的方案。
第三章数据采集系统硬件设计
3.1电源电路设计
TMS320F2812工作时所要求的电压分为两部分:
3.3V的Flash电压和1.8V的内核电压。
TMS320F2812对电源很敏感,所以在选用电源芯片时要求电压精度比较高的芯片。
传统的线性稳压器已经不能满足要求,TI公司推出了一些双路低压差电源调整器,其中TPS67D301非常适合于DSP系统中的电源设计。
该芯片带有可单独供电的双路输出,一路固定输出电压为3.3V另一路输出电压可以调节,范围为1.5-5.5V;
电压差大小与输出电流成正比,且在最大输出电流为1A时,最大电压差仅为350mV;
具有超低的典型静态电流,期间无效状态时,静态电流仅为1uA;
每路调整器各有一个开漏复位输出,复位延时时间200ms;
工作温度范围-40
-125
。
电源电路[7]如图3.1所示。
图3.1电源产生电路
3.2复位电路及JTAG下载口电路的设计
考虑到TPS767D301芯片自身能够产生复位信号,此复位信号可以直接供DSP芯片使用,所以不用为DSP设置专门的复位电路。
复位信号与DSP芯片的连接在图3.1中已经用网络标号标出。
在实际设计过程中,考虑到JATG下载口[7-8]的抗干扰性,在与DSP相连的端口均需要采用上拉设计。
JTAG主要有两大类:
一类用于测试芯片的电气特性,检测芯片是否有问题;
另一类用于Debug,对各类芯片以及其外围设备进行调试。
JTAG下载电路如图3.2所示。
图3.2JTAG电路
3.3通讯接口电路设计
3.3.1CAN总线接口电路设计
控制器局部网(CAN-ControllerAreaNetwork)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,随着现代风力发电机组需要监测与控制的节点增多,CAN总线以其实时性好、可靠性高、抗干扰能力强的特点凸现了出来。
TMS320F2812具有一个eCAN模块,支持CAN2.0B协议。
为了使F2812eCAN模块的电平符合高速CAN总线的电平特性,在eCAN模块与CAN总线之间需要增加电平转换器件,如3.3V的CAN发送接收器SN65HVD232。
该芯片是TI公司生产的3.3VCAN总线收发器,具有差分收发能力,最高速率可达1Mb/s。
在本设计中,SN65HVD230是用来驱动TMS320F2812和物理总线间的接口,提供对总线的差动发送和接收功能。
将收发器的数据输入端D与DSP的CANTX相连,用于本CAN节点发送的数据传送到CAN网络中;
将收发器的数据输出端R与DSP的CANRX与相连,用于本节点接收数据。
RS引脚为该收发器的方式选择引脚,只需将RS接逻辑低电平就可以使其工作在高速模式,此时的通信速率达到最高,没有内部输出上升斜率和下降斜率的限制,但最大速率的限制与电缆的长度有关,本设计中将RS接地。
由于SN65HVD230提供3.3V电源供电,与LF2407A的供电电压相同,因此不需要做电平转换的处理。
CAN总线电路[8]如图3.4所示。
图3.4CAN电路
3.3.2RS232接口电路设计
串口通信口(SCI)是一种采用两根信号线的异步串行通信接口,又称UART。
TMS320F2812中有两组SCI通信,SCIA和SCIB。
每组包括两个I/O引脚,分别是串行接收数据输入引脚(SCIRXD)和串行数据输出引脚(SCITXD)。
SCI支持CPU与其他使用标准NRZ(非归零)格式的异步外设之间的数据通信,SCI收发器是双缓冲的,每个都有自己独立的使能和中断标志位,两者既可以独立工作,也可以在全双工模式下同时工作。
通过对一个16位波特率选择寄存器的编程,可得到64K种不同的波特率。
对于40MHz的时钟输出,波特率最高可达到2500Kb/s的速度。
本设计中采用MAX232芯片作为控制器的异步串行通信转换接口。
MAX232是符合RS232标准的串行通信驱动芯片,其低功耗关断模式可以将功耗减小到5μW以内。
在设计中需要注意的是,由于RS232是单5V供电器件,所以它同DSP间的信号线必须有电平转换,此板采用的是74LS245。
RS232的接口电路如图3.5所示。
图3.5RS232串口电路
3.4DlD/0接口模块
TM3s20F2812有多达41个通用、双向的数字刀O(GPIO)引脚,其中大
多数都是基本功能和一般刀O引脚,TMS320LF2407的大多数刀O引脚都可用
来实现其他功能。
数字刀0端口采用了一种灵活的方法,以控制专用FO引脚
和复用刀O引脚的功能,所有UO和复用引脚的功能可通过9个16位控制寄存
器来设置。
DSP的数字量输出主要用于控制继电器,继电器又可以用来控制各
种设备的开关。
DSP通过光隔进行隔离,然后经过一个非门进行驱动,再和继
电器的线包相连。
这样只需改变DSP输出电平的高低就可以控制按键的开断。
数字量输入包括各种的开关信号、传感器的脉冲信号等等,其连接方法也
是通过一个光隔后,输入到DSP的刀O口。
在这里需要注意的是数字量开关的
速度,如果速率要求不高(比如微秒级),就可以使用TLP521系列的光隔,速
度在纳秒级则就需要选择快速光隔125],比如6N137。
具体连接方式如图3一8。
第四章数据采集系统的软件设计
4.1时钟和系统控制
为了让F2812DSP按部就班的执行相应的代码来实现功能,就得让DSP芯片“活”起来,除了给DSP提供电源外,还需向CPU不断地提供规律的时钟脉冲,这一功能由F2812内部振荡器OSC和基于锁相环PLL的时钟模块来实现。
目前DSP集成的片上锁相环PLL模块,主要作用是通过软件实时的配置片上外设时钟,提高系统的灵活性和可靠性。
此外,由于采用软件可编程锁相环,所设计的处理器外部允许较低的工作频率,而片内经过锁相环模块提供较高的系统时钟,这种设计可以有效地降低系统对外部时钟的依赖和电磁干扰,提高系统启动和运行时的可靠性,降低系统对硬件的设计要求。
voidInitSysCtrl(void)
{
Uint16i;
EALLOW;
DevEmuRegs.M0RAMDFT=0x0300;
DevEmuRegs.M1RAMDFT=0x0300;
DevEmuRegs.L0RAMDFT=0x0300;
DevEmuRegs.L1RAMDFT=0x0300;
DevEmuRegs.H0RAMDFT=0x0300;
//禁止看门狗模块
SysCtrlRegs.WDCR=0x0068;
//初始化PLL模块
SysCtrlRegs.PLLCR=0xA;
//如果外部晶振为30M,则SYSCLKOUT=30*10/2=150MHz
//延时,使得PLL模块能够完成初始化操作
for(i=0;
i<
5000;
i++){}
//高速时钟预定标器和低速时钟预定标器,产生高速外设时钟HSPCLK和低速外设时钟LSPCLK
SysCtrlRegs.HISPCP.all=0x0001;
//HSPCLK=150/2=75MHz
SysCtrlRegs.LOSPCP.all=0x0002;
//LSPCLK=150/4=37.5MHz
//对工程中使用到的外设进行时钟使能
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;
SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;
EDIS;
}
4.2看门狗软件设计
在由MCU构成的微型计算机系统中,由于单片机的工作常常受到外界电磁场的干扰,造成程序跑飞而陷入死循环,程序正常的运行被打断,由单片机控制的系统就无法继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果。
出于对单片机运行状态进行实时监测的考虑,便产生了一种专门监测单片机程序运行状态的电路,俗称“看门狗”。
看门狗电路的应用,使单片机可以在无人监控的状态下连续工作。
其工作原理是:
看门狗电路和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时的往看门狗这个引脚上送人高电平(或者低电平),这一程序语句分散地放在单片机其他控制语句中间:
一旦单片机由于程序跑飞陷入某一段程序,进入死循环状态时,写看门狗引脚的程序便不能被执行。
这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它与单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
F2812中的看门狗原理和上述的MCU看门狗原理类似,作用是为DSP的运行情况进行“把脉”,一旦发现程序跑飞或者状态不正常,便立即使DSP复位,提高系统的可靠性。
F2812的看门狗电路有一个8位看门狗加法器WDCNTR,无论什么时候,如果WDCNTR计数器达到最大值,看门狗模块就会产生一个输出脉冲,脉冲宽度为512个振荡器时钟宽度。
为了防止WDCNTR溢出,通常采用两种方法:
一种是禁止看门狗,时计数器WDCNTR无效;
另一种是定期“喂狗”,通过软件向负责看门狗计数器的看门狗密钥寄存器(8位的WDKEY)周期性的写入0x55+0xAA,紧跟着0x55写入0xAA能够清除WDCNTR。
当向WDKEY写入0x55的时候,WDCNTR复位到时能的位置;
只有再向WDKEY写入0xAA后才能使WDCNTR真正的被清除。
写任何其他的值都会使系统立即复位。
只要向WDKEY写0x55和0xAA,无论写的顺序如何都不会导致系统复位;
而只有先写0x55,再写0xAA才会清除WDCNTR。
voidKickDog(void)
SysCtrlRegs.WDKEY=0x0055;
SysCtrlRegs.WDKEY=0x00AA;
4.3通用输入输出口的软件设计
F2812DSP为用户提供了56个通用的数字I/O引脚,这些引脚都是多功能复用引脚,复用的意思就是这些引脚既可以作为DSP片内外设,例如EV,SCI,SPI,CAN等的功能引脚,也可以作为通用的数字I/O口。
引脚是作为数字I/O口还是外设功能引脚,可以通过寄存器来设置。
F2812的通用输入输出复用器GPIO就是I/O引脚的管理机构,它将56个引脚分为6组来管理,其中GPIOA和GPIOB各管理16个引脚,GPIOD管理4个引脚,GPIOE管理3个引脚,GPIOF管理15个引脚,GPIOG管理2个引脚。
GPIO的寄存器也分成了两大类:
一类是控制寄存器,主要由功能选择寄存器GPxMUX,方向控制寄存器GPxDIR,输入限定控制寄存器GPxQUAL组成,其中x代表A、B、C、D、E、F或者是G;
另一类是数据寄存器,主要由数据寄存器GPxDAT,置位寄存器GPxSET,清除寄存器GPxCLEAR和取反寄存器GPxTOGGLE组成。
voidScia(void)
GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5=1;
GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;
GpioMuxRegs.GPFDIR.bit.GPIOF4=0;
GpioMuxRegs.GPFDIR.b