发新话题
打印

介绍下fpga在robot中的应用,大家多交流!

介绍下fpga在robot中的应用,大家多交流!

传统的机器人主控板大都是cpu加数字电路做接口,这样硬件改动非常不便,集成度也不高。本人是ic engineer,首先想到的是采用soc的方式设计主控,fpga是个很好的选择,它通过加载不同的bit文件,直接改变其数字逻辑,实时好,改动灵活,抗干扰强,有软件和硬件无法比拟的优势。随着技术的发展和竞争的加剧,fpga的价格也随之下降,如一片SPIII250E的fpga在100元人民币,作为业余机器人爱好者,完全可以接受。其TQFP144的封装,pcb两层板即可布下,这样算下来硬件成本并不高。
    fpga除了可以做常规的逻辑设计外,还可以嵌入cpu做数据运算,传统的8051ipcore已经非常成熟,还可通过精简或扩展满足不同的接口需要。xilinx也有一款8bit的cpu,即picblaze,占用资源为192个slic(SPIII250E约2500个slic),指令周期为2个时钟,通常采用50m时钟,即可获得25MIPS的处理速度,本人在robot_007中采用picblaze做28路减速电机的控制,仍显绰绰有余。xilinx的另一款32bitcpu软核microblaze也值得推荐,可以跑linux操作系统,适合做步态控制决策,如果软件较大(如要跑os),必须加片外flash和sdram,需要具备一定的硬件背景方可设计完成。microblaze占用资源为960slic,相当与一片SPIII100E的容量。

PicBlaze Key Feature
• 16 byte-wide general-purpose data registers
• 1K instructions of programmable on-chip program store, automatically
loaded during FPGA configuration
• Byte-wide Arithmetic Logic Unit (ALU) with CARRY and ZERO
indicator flags
• 64-byte internal scratchpad RAM
• 256 input and 256 output ports for easy expansion and enhancement
• Automatic 31-location CALL/RETURN stack
• Predictable performance, always two clock cycles per instruction,
up to 200 MHz or 100 MIPS in a Virtex-4™ FPGA and 88 MHz
or 44 MIPS in a Spartan-3 FPGA
• Fast interrupt response; worst-case 5 clock cycles
• Assembler, instruction-set simulator support

午休涂鸦之做,大家交流指点!

[ 本帖最后由 hs157 于 2007-1-22 01:04 PM 编辑 ]
I can do it!

TOP

虽然简短,但是也介绍了其中的些许重点
不错

TOP

能力有限,只能提供一些基本信息(其实信息也是最重要的,它会影响你的整个设计方案),具体的可参考相应的userguide or datasheet。本人qq:67973876,欢迎大家一起探讨!(加好友请注明robotsky)
I can do it!

TOP

嗯,是呀,FPGA确实在很多地方有很高的应用价值。

可惜我到目前为止都接触的比较少,因为我本人更熟悉软件方面的技术。不过我一有合适的项目机会就会学习相关内容的。还请楼主多来这里给我们讲点入门的东西。这个帖子就很不错!

TOP

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 --2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠的最佳选择之一。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
千万不要在一棵树上吊死,在附近几棵树上多试几次~

TOP

楼上的讲解很详细,我也再来点,呵呵~

关于fpga的配置,有两种简单实用的方法
1、通过cpu配置。
可以省掉独立的erpom,上电后cpu读取来自网络或其它存储器的fpga配置文件,采用cpld时序转化实现fpga配置。这种方式优点是fpga文件可以存在电脑里,像软件一样进行管理,可以存储多个版本,目标板起动后通过串口、Ethernet口进行配置,不用任何烧录。
2、采用通用flash存储fpga加载文件
一般设计soc都需要一个片外flash,而fpga的加载文件也可以存在这个flash中,不用任何时序转换,目前spiii支持这种方式加载(v4好像也支持),还可以同时存储多个fpga文件,根据需要加载特定版本。
另外在soc设计中,软件和硬件的编译是独立的,即软件的改动只需对软件进行编译,而无需对fpga硬件进行编译,节省了时间。
I can do it!

TOP

不错不错,顶~

TOP

长见识了

TOP

发新话题