2485|7

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求硬件达人 帮忙解决一个FPGA输入的问题 [复制链接]

//声程处理
void rangeprocess(long int nMyRange,long int nMyPDelay)
{
//float screenvalue;
long int nTotal;
long int nDiv;
long int  nAverage,nResidual,temp;
int i,j; //nResidualAverage,i,j;
void far *pN;

// if(nMyPDelay <=1)
// nMyPDelay=1;
// if (nMyPDelay>128*1024-1)
// nMyPDelay=128*1024;


//screenvalue=myrangevalue-mypdelayvalue;
nTotal=nMyRange-nMyPDelay;//2*(int)( screenvalue/myvolecityvalue*40*1000*1000);
//nAverage=nTotal/512;
temp=nTotal/512;
if(temp <=0)
nAverage=0;
else
nAverage=temp-1;

nResidual=nTotal%512;
nTotal=nResidual;
//nResidualAverage=512/nResidual;
for(i=0;i <512;i++)
{
distancedata=(unsigned short)(nAverage & 0xff);
}
for(i=8;i>=0;i--)
{
nAverage=nTotal/mypow(i);
nResidual=nTotal%mypow(i);
//nResidualAverage=pow(2,i-1)/nResidual;
//nTotalNumb=pow(2,8-i)%nResidualAverage;
for(j=0;j <512;)
{
distancedata[j+8-i]=distancedata[j+8-i]+nAverage;
j=j+mypow(9-i);  //average
}                        
nTotal=nResidual;
}

outportb(0x330,2);
for(i=0;i <512;i++)
{
pN=MK_FP(0x0d400,i);
*(unsigned char *)pN=distancedata;  // pre_data
}
outportb(0x330,0);  //end pre

}
上面是超声波探伤仪中一段对声程进行处理的程序,大概的意思就是对声程进行了一个分段处理,因为我们要的最后的波形只能显示512个点(跟像素有关),那么就要对整个的声程进行平均分段抽样取最大值,上面的程序就是对声程的两种情况(是512的倍数,或不是512的倍数进行平均分段)
我想问的问题是上面分完段之后的输出outportb(0x330,2);跟我的超声采集卡上FPGA的关系在哪里(FPGA的作用是暂存AD转化后的点,并对其抽样得到512个点送到上位机显示),要是跟FPGA没有关系的话,那他怎么跟FPGA联系的,或者说FPGA要处理这段声程的话,那么他的输入应该怎么确定!
谢谢各位好心的大侠,看了好久了!!谢谢

最新回复

lz我在fpga这一行干了有一段时间了,我看了你的问题真不知道你在说什么,怎么给我们一串c代码。fpga是什么,fpga是可编程芯片,最通常的应用是做cpu的数字接口io扩展,还可以在fpga中进行算法控制、产生脉冲等,总之就是与上位机配合。简单一点就是fpga是自己设计的芯片。 你说输出的数据与fpga是什么关系,我想你的pcb板上应该有线直接或间接与fpga相连,输出的数据给fpga,必定还有一个使能信号或者握手信号,告诉fpga数据已准备好,可以进行运算。fpga运算好后,再通过一根线高速上位机我已远算好,此时将数据放到总线上,上位机再读数据。这是并口输出。如果是串口输出还要符合一定的协议,像spi之类的。 要在fpga内部做数据算法也很简单,如果运算量不是很大,fpga绝对可以满足。  详情 回复 发表于 2009-9-4 21:40
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
那该怎么看,求指教,我现在是一筹莫展!
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
据我所了解FPGA在超声采集卡上主要的实现的是功能是:读取数据,并对其进行平均分段、峰值抽样并送到上位机来显示的功能
具体的功能如图所示
E:\FPGA内部功能图.JPG
主要分为两个部分:1)数据采集 最值识别
数据采集,最值识别模块负责将由AD转换器传来的数字信号进行采集和最大值提取。每次AD转换结束以后的当前数字量都会送人到比较器的A[7:0]端与B[7:0]端的数据进行大小比较。B[7:0]端数据由最值暂存器的输出端提供,最值暂存器中保留采集的最值。在设计中,最值暂存器的加载过程受LOAD1和LOAD2两个信号的联合控制。LOAD1信号为比较器大于输出信号,表示当前输入的AD数字信号量大于最值暂存器内的最值,该信号将使最值暂存器把当前的新值载人最值暂存器中,实现最值暂存器中数值的更新。LOAD2信号为最值暂存器更
新信号,该信号控制最值暂存器定时进行刷新,以避免上一组压缩数据中的最值对下一组数据的影响。刷新的方式为直接把当前的AD转换值载人最值暂存器中。所以,LOAD1和LOAD2信号中任意一个信号的有效,都会使最值暂存器产生一次数据的载入过程。
2)数据压缩模块
该模块的具体设计原理可参看图中的数据压缩模块。数据压缩单元从压缩比寄存器中取
得压缩比率参数。压缩比寄存器中的数值和暂存器中的初值,通过与MCU/MPU接口,由程序控
制写入。每一次当计数器中的计数值与暂存器中的暂存值相等时,相等比较器的输出,即
LOAD2信号将有效,该信号控制暂存器由加法器的输出端读人一次新值。尽管每一段压缩不是
精确均匀的,但是实际压缩的效果至多只与理论值相差一个采样点。同时,输出信号LOAD2还
用以控制FPGA每隔一定的采样点数就向外部的双端口RAM送出一次最值。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
我想问的问题是:在数据压缩模块中,我们要ad转换后的点进行分段然后取峰值,那么FPGA的输入肯定就应该是声程或者时间=声程/声速,通过与MCU/MPU接口,由程序控 制写入。
也就是B(15:0),我在上面的c语言中该怎么往FPGA中写输入。
也就是这段上面的c程序是怎么跟FPGA联系到一块的
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
lz没有硬件基础吧,请看PCI总线相关资料,你的程序对寄存器的读写,通过PCI总线下发到FPGA的,FPGA内部实现了PCI总线Slave的功能,就可以把数据顺利地写入写出了(或者其他接口)


不过,恕我直言,做软件没必要把这些东西弄明白,这么说你肯定不高兴,不过的确,等到你解决过系统级的问题,自然就明白了,现在你面临的软件和硬件之间的鸿沟还比较大,一知半解以为自己明白了,反而是最不好的结果,以你的问题为例,涉及到操作系统,体系结构,总线协议和芯片设计,一直到FPGA工作原理,没有经历过,很难说清楚
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
怎么可能从一个C代码看出FPGA?
没有什么系统连接图,或是框架性的程序?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
伤脑筋.
看硬件连接图,或者内存映射。
如果我没错的话,你这么看C代码实在是缘木求鱼.
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
lz我在fpga这一行干了有一段时间了,我看了你的问题真不知道你在说什么,怎么给我们一串c代码。fpga是什么,fpga是可编程芯片,最通常的应用是做cpu的数字接口io扩展,还可以在fpga中进行算法控制、产生脉冲等,总之就是与上位机配合。简单一点就是fpga是自己设计的芯片。
你说输出的数据与fpga是什么关系,我想你的pcb板上应该有线直接或间接与fpga相连,输出的数据给fpga,必定还有一个使能信号或者握手信号,告诉fpga数据已准备好,可以进行运算。fpga运算好后,再通过一根线高速上位机我已远算好,此时将数据放到总线上,上位机再读数据。这是并口输出。如果是串口输出还要符合一定的协议,像spi之类的。
要在fpga内部做数据算法也很简单,如果运算量不是很大,fpga绝对可以满足。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表