ADSP-21062与工控机数据交换电路设计
发布时间:2008/5/27 0:00:00 访问次数:575
关键词:pc104;双口sram;数据交换;cpld
adsp-21062是adi公司的通用dsp芯片,它具有强大的浮点/定点数据运算能力和很高的处理速度。多片adsp-21062可以以多种形式方便地联结成并行处理器系统,适合进行实时数据采集和处理。本文利用多片adsp-21062设计了连续波雷达信号处理机,完成数据的处理和检测,相应的数据送到工控机,在显示器上显示数据处理结果。如果在adsp-21062和工控机之间没有高速传输数据的接口,就会在数据传送时造成瓶颈堵塞,从而影响信号处理机的处理能力。所以adsp-21062系统与工控机数据交换能力在该信号处理系统中很重要。
数据交换量及选定的方案
信号处理系统要求在每两个采样周期内,adsp-21062向工控机传输一次数据。每次传送的数据约为1500个16bit字,信号处理系统的a/d采样频率为1khz。因此信号处理系统的数据传输率约为1.5mb/s。
工控机读取数据的速率也非常重要,必须高于信号处理系统的传输率,否则也会影响整个系统的数据处理能力。工控机采用的是研祥的ec3-1541,带有串口和并口,以及pc104总线供扩展。串口和并口的数据传输率太低难以满足系统的要求。工控机通过pc104总线访问sram时,数据吞吐率约为2.5mb/s,满足系统要求。所以系统设计时采用了基于pc104总线的数据传输方式。
信号处理机和工控机通过pc104总线的数据传输方法有多种。例如,可以采用dma方法,但是同时只能有一个系统访问存储器;还可利用并口锁存方法传输数据。但是这两种方法都不能获得高数据吞吐率。为了解决这个问题,可采用双口sram实现adsp-21062向工控机进行高速数据传输。
系统设计时采用的双口sram可以是16bit或8bit。在本系统采用了8k×16bit的双口sram—idt7025。系统以16bit的数据进行传输,相比8bit的方式而言,有更高的数据吞吐率。
双口sram的工作原理
双口sram的存储器阵列,有左右两套地址和数据总线。这样,位于两个端口的左右系统可以共享一个存储单元。当两个端口对双口sram进行读写时,存在下列可能情况:
a:不同时对相同地址单元读/写操作;
b:同时对相同地址单元读数据;
c:同时对相同地址单元写入数据。
idt7025内部有8个独立于双端口存储单元的锁存逻辑单元,作为令牌使用,可将空间划分成1~8个区段。使用这些单元产生一个使用标志,向另一个端口表明正在使用共享的资源。左右端口在使用存取的存储单元前必须先申请令牌,获得后才可以访问相应的段。相同的逻辑锁存单元只能被一个端口使用,直到它使用完释放为止。这些锁存单元可以作为工控机的i/o口或存储单元,来实现令牌传送。
adsp-21062系统与工控机数据交换电路
用双口sram的“/busy”信号,可以保证两个左右端口可靠的完成数据的交换。但是两个端口对相同的地址单元操作时,一个端口要插入等待周期,对于本系统而言,要求很高的数据吞吐率,插入等待周期降低了系统的吞吐率。根据令牌传送原理,可在adsp-21062系统和工控机之间实现较快数据传送。数据的吞吐率速率一定程度上和使用双口sram的semphore数目有关,数目多就能使左右两个端口同时申请相同段的概率降低,就避免了一方长时间等待令牌。但是左右双方同时想使用相同段的机会还是会出现,一方处于等待,这也会导致系统吞吐率下降。
若使左右两个端口永远不对相同的存储单元进行访问,就能提高系统的吞吐率。不能同时对相同的地址单元进行访问,只要左右两套地址的总线上的地址永不相同就可以了。基于这个思想,让左右两个端口的最高位地址al12和ar12由dsp控制,并且互为相反。adsp-21062处理器提供了4个可编程的flag3-0引脚,flag引脚是双向引脚,它的方向是输出还是输入,可以在adsp-21062中的寄存器中配置。图1为adsp-21062系统与工控机数据交换接口电路。flag0接双口sram的右边端口最高位地址ar12,把flag0反向后接al11。就把双口sram分为上下4k×16bit的两个区,工控机和adsp-21062对双口sram进行的地址空间为4k。当flag0=1时,adsp-21062向双口sram的高半区写数据,而工控机可以从双口sram的低半区读数据;反之,当flag0=0时,adsp-21062向双口sram的低半区写数据,而工控机可以从双口sram的高半区读数据。可见,工控机和adsp-21062对双口sram的访问永远不会发生冲突。
使用一片cpld可编程逻辑器件epm7128s-15实现双口sram译码片选信号以及i/o地址选择,地址和数据选通信号。adsp-21062的引脚flag2为输入脚,工控机把flag2作为一个i/o口对待。flag2占用工控机的一个i/o地址,把工控机a0~a9、/iow和d0引入cpld,在cpld内部进行地址译码和i/o写信号,锁存数据实现向flag2脚写数据。
电路设计中应注意的问题及程序流程
图1中,工控机和双口sram的地址总线连接要特别注意。工控机和pc机
关键词:pc104;双口sram;数据交换;cpld
adsp-21062是adi公司的通用dsp芯片,它具有强大的浮点/定点数据运算能力和很高的处理速度。多片adsp-21062可以以多种形式方便地联结成并行处理器系统,适合进行实时数据采集和处理。本文利用多片adsp-21062设计了连续波雷达信号处理机,完成数据的处理和检测,相应的数据送到工控机,在显示器上显示数据处理结果。如果在adsp-21062和工控机之间没有高速传输数据的接口,就会在数据传送时造成瓶颈堵塞,从而影响信号处理机的处理能力。所以adsp-21062系统与工控机数据交换能力在该信号处理系统中很重要。
数据交换量及选定的方案
信号处理系统要求在每两个采样周期内,adsp-21062向工控机传输一次数据。每次传送的数据约为1500个16bit字,信号处理系统的a/d采样频率为1khz。因此信号处理系统的数据传输率约为1.5mb/s。
工控机读取数据的速率也非常重要,必须高于信号处理系统的传输率,否则也会影响整个系统的数据处理能力。工控机采用的是研祥的ec3-1541,带有串口和并口,以及pc104总线供扩展。串口和并口的数据传输率太低难以满足系统的要求。工控机通过pc104总线访问sram时,数据吞吐率约为2.5mb/s,满足系统要求。所以系统设计时采用了基于pc104总线的数据传输方式。
信号处理机和工控机通过pc104总线的数据传输方法有多种。例如,可以采用dma方法,但是同时只能有一个系统访问存储器;还可利用并口锁存方法传输数据。但是这两种方法都不能获得高数据吞吐率。为了解决这个问题,可采用双口sram实现adsp-21062向工控机进行高速数据传输。
系统设计时采用的双口sram可以是16bit或8bit。在本系统采用了8k×16bit的双口sram—idt7025。系统以16bit的数据进行传输,相比8bit的方式而言,有更高的数据吞吐率。
双口sram的工作原理
双口sram的存储器阵列,有左右两套地址和数据总线。这样,位于两个端口的左右系统可以共享一个存储单元。当两个端口对双口sram进行读写时,存在下列可能情况:
a:不同时对相同地址单元读/写操作;
b:同时对相同地址单元读数据;
c:同时对相同地址单元写入数据。
idt7025内部有8个独立于双端口存储单元的锁存逻辑单元,作为令牌使用,可将空间划分成1~8个区段。使用这些单元产生一个使用标志,向另一个端口表明正在使用共享的资源。左右端口在使用存取的存储单元前必须先申请令牌,获得后才可以访问相应的段。相同的逻辑锁存单元只能被一个端口使用,直到它使用完释放为止。这些锁存单元可以作为工控机的i/o口或存储单元,来实现令牌传送。
adsp-21062系统与工控机数据交换电路
用双口sram的“/busy”信号,可以保证两个左右端口可靠的完成数据的交换。但是两个端口对相同的地址单元操作时,一个端口要插入等待周期,对于本系统而言,要求很高的数据吞吐率,插入等待周期降低了系统的吞吐率。根据令牌传送原理,可在adsp-21062系统和工控机之间实现较快数据传送。数据的吞吐率速率一定程度上和使用双口sram的semphore数目有关,数目多就能使左右两个端口同时申请相同段的概率降低,就避免了一方长时间等待令牌。但是左右双方同时想使用相同段的机会还是会出现,一方处于等待,这也会导致系统吞吐率下降。
若使左右两个端口永远不对相同的存储单元进行访问,就能提高系统的吞吐率。不能同时对相同的地址单元进行访问,只要左右两套地址的总线上的地址永不相同就可以了。基于这个思想,让左右两个端口的最高位地址al12和ar12由dsp控制,并且互为相反。adsp-21062处理器提供了4个可编程的flag3-0引脚,flag引脚是双向引脚,它的方向是输出还是输入,可以在adsp-21062中的寄存器中配置。图1为adsp-21062系统与工控机数据交换接口电路。flag0接双口sram的右边端口最高位地址ar12,把flag0反向后接al11。就把双口sram分为上下4k×16bit的两个区,工控机和adsp-21062对双口sram进行的地址空间为4k。当flag0=1时,adsp-21062向双口sram的高半区写数据,而工控机可以从双口sram的低半区读数据;反之,当flag0=0时,adsp-21062向双口sram的低半区写数据,而工控机可以从双口sram的高半区读数据。可见,工控机和adsp-21062对双口sram的访问永远不会发生冲突。
使用一片cpld可编程逻辑器件epm7128s-15实现双口sram译码片选信号以及i/o地址选择,地址和数据选通信号。adsp-21062的引脚flag2为输入脚,工控机把flag2作为一个i/o口对待。flag2占用工控机的一个i/o地址,把工控机a0~a9、/iow和d0引入cpld,在cpld内部进行地址译码和i/o写信号,锁存数据实现向flag2脚写数据。
电路设计中应注意的问题及程序流程
图1中,工控机和双口sram的地址总线连接要特别注意。工控机和pc机