引言
任何一种自动控制系统都离不开数据采集装置,它的性能直接影响整体系统的工作性能。数据采集装置向着高速、实时方向发展,对数据的传输和控制速度也提出了较高要求。DSP(数字信号处理器)是一种适合于实现各种数字信号处理运算的微处理器,具有哈佛结构、支持流水线处理、快速的指令周期等优点,因而在嵌入式系统中得到广泛的应用。事实上,以DSP为核心来构建数据采集装置也已经成为一种常用的有效方法。
在多任务信号处理系统中,考虑到设计系统的复杂性,经常需要使用双DSP协同工作来构成系统。双DSP系统的优点在于,可以通过计算能力的均匀分布,使系统具有较好的冗余能力、更快的处理速度、模块化的体系结构。正因为双DSP系统的应用越来越广泛,如何解决好双DSP间的数据共享也变得越来越重要。如果需要进行大量数据的高速交换,依靠控制器自带的串口实现数据的串行传输已很难满足需求,必须寻求一种能进行高速数据通信的方法。而采用双端口RAM是解决双DSP之间高速数据通信的有效办法,该方法能够方便地构成各种工作方式下的高速数据传送介质,很好地解决因数据传输速度低所引起的瓶颈问题。
某型控制器要求采用双余度数据采集通道,每个通道都需要对多达16路模拟信号进行模数采样。为此,本文给出了用双DSP来构建的具体方法,每个DSP负责一个通道的数据采样,并在两个DSP之间用双端口RAM来构建一个高速的数据通道,以交换各自的采样数据和其它数据。
1双余度DSP数据采集装置的总体设计
某型控制器要求采用双余度数据采集通道。以DSP为核心构建数据采集装置,该装置既可以进行高速采样,还可以对数据进行后处理。采用两个DSP,各自负责一路数据采样,采样数据和其它数据可在两个DSP之间共享。数据采集装置由数据采集模块、DSP处理器和数据交换模块组成。图1给出了系统中双余度DSP数据采集装置的结构框图。
数据采集模块主要在DSP的控制下,各通道分时对16路模拟信号进行采样,并将采集的数据发给DSP;DSP负责输出数据采集所需要的时序,对采样进行控制,并根据需要,通过访问数据交换模块来对采集的数据和状态信息等其它数据进行交换;数据交换模块则在DSP的控制下,使两个DSP能够不冲突地对任一存储单元进行访问,从而达到数据交换的目的。
2数据采集模块的设计
本模块的主要功能是在DSP的控制下,由通道对16路指令和反馈信号进行采样,并将采集的数据发给DSP。因为采样的信号较多,故采用16选1电子开关。DSP输出电子开关控制信号,以将16路信号分时送入A/D采样芯片;同时,DSP还要输出A/D转换控制信号,以将选通的模拟信号转换为数字量后读入DSP。
单通道DSP数据采集模块的框图如图2所示。
本装置中两个通道的采样电路相同,通道1的采样电路如图3所示。
该电路首先将模拟信号通过集成电路AD7892转换为
DSP所需要的数字量,然后由16选1电子开关DG406(5N1)依次选通各路模拟信号,再经过运算放大器F353进行信号隔离后,分时送给12位模数转换器AD7892(5N3)进行转换处理。通道1中的电子开关DG406的数据采样通道见表1所列。
图3通道1数据采样电路
A/D采样芯片AD7892具有±5V或±10V可选输入范围,最快转换时间为1.47ys,片内含采样保持电路和高速串并接口,单电源供电(+5V),转换数据为12位,而且与DSP处理器的接口比较简单。
引脚STANDBY接高电平时,电路处于正常工作模式;引脚REFOUT/IN通过电容接AGND,代表参考电源使用芯片内部的参考电压源;弓I脚VIN2接AGND,表示模拟输入电压的范围为-10~+10V;弓|脚MODE接高电平表示系统处于并行接口模式;引脚VIN1接采样模拟信号;引脚CONVST接采样启动脉冲ADKSZH,RD引脚接脉冲ADRD,这两个脉冲来自DSP,使DSP能够对模数转换进行控制。转换结束后,AD7892引脚EOC输出低电平,DSP将12位转换结果DB0~DB11以并行数据模式读入。当输入范围为-10~+10V时,A/D采样的分辨率为20V/212=4.88mV。
DSP是本数据采集装置的核心器件,它的主要作用是对A/D采样进行控制,并能进行高速数据交换。要具有较强的控制能力,经过综合考虑,本设计选择TI公司的DSP器件SMJ320F240。这是一种16位的定点数字信号处理器,采用哈佛结构,具有独立的数据总线和地址总线,处理器指令和数据并行可大大提高处理效率,而且片内集成了16KB的闪速存储器Flash、16位通用定时器、异步串行通信接口SCI等,非常适合用于自动控制系统。
3数据交换模块的设计
3.1双DSP通信方式
实现双DSP通信的常用方式有以下几种:
(1)串行通信方式。利用处理器本身提供的串行口或用软件模拟一个串行口实现双机通信。这种方式硬件连接简单,软件开发比较容易,但数据传输速率往往不高,适合于双机通信数据量不大的应用场合。
(2)并行通信方式。利用处理器的I/O功能来实现双机通信。这种方式实现起来也比较简单,与串行方式相比,数据传输速率更高,但实现时要注意时序的配合。
(3)直接存储器方式(DMA)。这是一种完全由硬件执行数据交换的工作方式,DMA控制器从CPU完全接管对总线的控制权,数据交换不经过CPU,而直接在内存与设备之间进行。这种方式一般用于高速传送成组数据,但是两个处理器不能同时访问存储器。
(4)双端口RAM方式。利用双端口RAM作为两个DSP的共享存储器来实现处理器间的数据交换。两个DSP都把双端口RAM映射成自己存储器的一部分,它们可以同时访问双端口RAM(当然不能同时访问同一个地址单元),这样可以降低数据交换占用CPU的时间。这种方式数据吞吐量大,几乎能实现无等待的数据交换。
如果需要实时传输大量数据,采用双端口RAM是一种比较好的实现方式。
3.2双端口RAM芯片IDT7133
双端口RAM的最大特点是存储数据共享。设计时可选用IDT公司的IDT7133,这是一种高速2KX16位双端口静态RAM,具有高速存取、低功耗等特点。工业级芯片的最快访问时间只需25ns。通过片选CE的控制,IDT7133可以工作在省电模式下。通过使用IDT公司先进的CMOS技术,在典型的工作条件下,它的功耗仅为1150mW,而且还可以通过连接电池达到数据保护的目的,电池的电压仅为2V。
3.2.1IDT7133的逻辑结构
IDT7133是一种特殊的RAM芯片,具有左、右两个独立的端口,它们各自均有一套独立的数据总线、地址总线和控制总线,并且都有控制、寻址和I/O引脚,允许两个端口独立地对存储器中的任何单元进行存取操作。它既可以作为16位双端口RAM单独使用,也可以与IDT7143组成主从系统,以将数据线扩展到32位甚至更宽。这样组成的双端口RAM可以全速运行,而且无需任何额外的附加逻辑。IDT7133的功能框图如图4所示。
图4IDT7133的功能框图
IDT7133的引脚功能如表2所歹,。为了区分左、右端口,表中分别加有下标L(Left)和R(Right)。
表2IDT7133的引脚功能
3.2.2IDT7133的访问冲突控
使用双口RAM的关键是需要对其进行逻辑仲裁,否则可能会导致数据访问冲突。当控制器同时读写双端口RAMIDT7133时,可能存在以下两种情况:
(1)无冲突的访问控制
当两个端口的地址不相同时,在两个端口上进行读写操作一般不会发生冲突。此时任一端口被选中,就可对整个存储器进行存取,每一个端口都有自己的片选控制和输出控制。IDT7133无冲突的读写控制真值表如表3所列。其中,L表示逻辑低:H表示逻辑高;X表示无关。
(2)有冲突的访问控制
当从两个端口同时存取存储器同一存储单元时,便会发生读写冲突。为解决此问题,IDT7133采用了BUSY逻辑控制,也称硬件地址仲裁逻辑。芯片左、右端口都设计有忙信号引脚:BUSYl和BUSYr,由片上的仲裁逻辑决定对哪个端口优先进行操作,而另一个端口暂时被延迟访问。一般BUSY信号为高电平的端口可以正常访问RAM,BUSY为低的端口暂不能访问RAM。
图5所示是通过CE信号控制的BUSY仲裁时序图。
避免访问冲突的原理为:当左右端口不对同一地址单元访问时,BUSYl为高,BUSYr为高,此时两端口都可正常访问双端口RAM;而当左右端口对同一地址单元存取时,必有
一端口BUSY信号被置低。哪一个端口可以进行访问由片上仲裁决定,存取请求信号出现在前的端口的BUSY信号为高,存取请求信号出现在后的端口的BUSY信号被置低。需要注意的是,两端口的存取请求信号出现时间要相差5ns以上,否则仲裁逻辑无法判定存取请求信号的先后。而当无法判定时,控制引脚BUSYl和BUSYr也只有一个输出低电平,不会同时输出低电平,从而保证至少有一个端口能进行正常访问。其判断方式有以下两种:
第一种是CE判断:如果地址匹配并且在CE信号之前有效,片上的控制逻辑在CEl和CEr之间进行判断来选择端口;
第二种是地址有效判断:如果CE信号在地址匹配之前有效,片上的控制逻辑在左、右地址间进行判断来选择端口。
3.3数据交换模块的设计
本控制器DSP间的数据通信采用双端口RAM的通信方式的电路框图如图6所示。该电路通过两个译码电路分别产生左侧端口的控制信号R/Wlub、R/Wllb、CEl、OEl和右侧端口的控制信号R/Wrub、RWrlb、CEr>OEr,并采用BUSY信号来防止产生访问冲突。在这些信号的控制下,两个DSP就可以高速交换数据信息。
4软件设计
采样芯片AD7892在并行模式下的采样时序图如图7所示。由软件通过DSP的I/O口输出DAS0〜DAS3信号来控制电子开关DG406选通某一输入通道。
转换采用定时触发,由DSP的I/O口输出采样的启动信
号CONVST在启动信号的上升沿开始转换。转换结果采用查询方式读取,当查询到EOC引脚输出低电平时,DSP发出RD读信号将数据读入。此时该通道的A/D采样完成,下一个周期进行另一个通道的采样,直到所有通道的采样完成为止。图8所示是其模数采样程序流程图。
本文针对某型控制器的需求,分别设计了以DSP为核心的数据采集模块,并采用双端口RAM方式构建了数据交换模块,从而很好地解决了因数据传输速度低所引起的瓶颈问题,文中同时给出了模数采样程序流程图。经验证,本系统可以达到预定功能,具有一定参考价值。