[组图]FPGA器件的在线配置方法
3 软件设计 4 结 论
在该配置方案中,软件包括在PC机端的控制软件和在AT89C2051端的控制软件两部分。PC机端的软件采用Visual Basic语言编程,而AT89C2051采用汇编语言进行编程。
3.1 PC机端的软件
PC机端的软件采用Visual Basic语言编程。VB支持面向对象的程序设计,具有结构化的事件驱动编程模式,而且可以十分简便地作出良好的人机界面。PC机端的控制程序主要实现读取.rbf文件并将其通过串口送出的功能。读取文件时,主要使用读取二进制文件命令。在串口通信方面,使用VB提供的具有强大功能的串口通信控件MSCOMM。该控件可设置串口状态及串口通信的信息格式和协议。
在实际工作中,要实现AT89C2051和PC机之间的有效通信,必须使其具有相同的波特率和相同的通信协议。作者采用了9600bps的波特率和N.8.1帧结构。N.8.1帧结构表示1帧串行数据有10位:起始位占用1位(低电平),用来表示字符开始;后8位为数据编码,无奇偶校验位;最后为停止位(高电平),用来表示字符传送结束。单片机的串行口工作在方式1。方式1是标准的10位异步通信方式,10位数据和PC机的标准串口相对应,传送的波特率由单片机工作时钟和T1的溢出率共同决定。
3.2 ICR控制电路软件
在图3介绍的ICR控制电路中,其存储FPGA配置数据的存储器 AT24C256采用I2C串行总线进行数据交换。其数据交换速度较慢,而FPGA配置数据又比较大,因此如何提高图3介绍的ICR控制电路的配置速度将是软件设计上的一个重点。限制速度的瓶颈主要是从AT24C256读取数据和将数据写入FPGA器件中。从AT24C256读取数据,有读当前地址、随机读和顺序读三种方式。这三种方式中,顺序读最简单、速度最快。因为在同一片AT24C256中,仅需要写入一次读命令就可以按顺序从0地址开始直至读完整片AT24C256中的全部数据。向FPGA器件写数据时,可以使用串行口的移位寄存器工作方式,即方式0。方式0数据的传送以8位为1帧,无论是发送或是接收都是最低有效位居先。这和FPGA对数据的要求一致,传送的波特率固定为振荡频率的1/12。本系统只需用到输出方式,串行数据通过RXD端输出,而用TXD端输出移位脉冲。当1字节数据写入串行数据缓冲器SBUF时,就开始发送。在此期间,发送控制器送出移位信号,使发送移位寄存器的内容右移1位,直至最高位(D7位)移出后,停止发送数据和移位时钟脉冲。发送完1字节数据后,硬件置发送标志位TI为1,通过判断TI的状态决定是否向SBUF写入数据。采用这种方式比采用普通(I/O)口要快很多。
我们设计的基于微控制器的FPGA器件的 ICR控制系统,具有线路结构简单、开发容易、体积小、成本低的优点;可以支持3.3V和5V系统的配置;适用于需要ICR功能的电子装置中。该ICR控制电路是为配置Altera公司FLEX系列的FPGA器件而设计的,稍加修改也适用于其它系列的FPGA器件。这个配置电路的主要弱点在于配置速率较慢,只能适用于配置速率要求不高的应用。
- 基于FPGA的异构可重配置DSP平台(01-14)
- 6核DSP加快LTE配置级别及下一代无线标准(01-09)
- 浅谈Linux优化及安全配置(06-03)
- Linux 2.6内核Makefile分析(03-01)
- Linux内核配置系统详解(05-07)
- busybox 详解(05-08)