1系统概述
目前FPGA开发板的板载资源检测都是采用将示例下载到开发板上检测的方法,检测不同的资源需要一般使用不同的示例。这样的检测方法缺少对检测结果信息的收集。对于实验室批量管理FPGA开发板的情况,难以应对。
本系统基于Nexys™3 Spartan-6 FPGA开发板,不仅可对该开发板的板载资源进行检测,并且可以对检测结果数据进行收集,将收集的数据进行保存以方便诊断开发板的状态。
其原理是由上位机通过串口发送测试数据到开发板上的串口模块,FPGA从串口模块得到相应的测试命令,然后根据命令,对开发板上对应的资源进行检测,并将检测结果反馈到上位机进行保存。
本系统的结构示意图如下所示。
![](http://www.ck365.cn/data/upload/201502/02/103831-83-153855.jpg)
图1系统结构示意图
本系统还可作为FPGA设备远程诊断系统的原型,通过提交上位机生成的检测结果文件,可以在管理信息系统中直接显示开发板的状态。。
本系统可以以下载流文件的形式或以存入EEPROM的形式应用到Nexys™3 Spartan-6 FPGA开发板。本系统还可通过修改部分代码应用于其他型号的FPGA开发板。
2系统需求
本系统由三部分组成,上位机软件,核心控制软件,SOC子系统。
2.1上位机软件
在本系统中以上位机作为检测程序的发起者。
模块需求描述
串口通讯:上位机数据的接受和发送。
VGA检测启动VGA模块的检测,输入实际显示结果。
自由按键检测启动自由按键模块的检测,显示检测结果。
拨码开关检测启动拨码开关模块的检测,显示检测结果。
7段数码管检测启动7段数码管的检测,输入实际显示结果。
LED灯检测启动LED灯的检测,输入实际显示结果。
PMod检测发送启动检测命令,显示检测结果。
USB Host检测发送启动检测命令,显示检测结果。
LAN检测发送启动检测命令,显示检测结果
VHDC检测发送启动检测命令,显示检测结果。
2.2核心控制软件
在本系统中核心控制软件负责FPGA开发板上串口的输入/输出,以及负责将检测数据应用到各模块并收集检测结果。
模块需求描述
串口通讯:开发板上数据的传入和输出。
VGA检测从串口读取检测用数据传输到VGA控制模块。
自由按键检测接收命令,读取自由按键模块的数据。
拨码开关检测接收命令,读取拨码开关模块的数据。
7段数码管检测从串口读取检测用数据传输到7段数码管控制模块。
LED灯检测从串口读取检测用数据传输到LED灯控制模块。
PMod检测实现PMod的自检测。
USB Host检测实现USB Host的自检测。
LAN检测实现LAN的自检测。
VHDC检测实现VHDC的自检测。
2.3 FPGA上SOC子系统
在本系统中SOC子系统包括控制核心以及各资源的控制模块。
模块需求描述
控制核心控制其他模块,执行部分逻辑功能。
串口控制模块控制开发板上的串口硬件。
VGA控制模块控制开发板上的VGA硬件。
自由按键控制模块控制开发板上的自由按键。
拨码开关控制模块控制开发板上的拨码开关。
7段数码管控制模块控制开发板上的7段数码管
LED灯控制模块控制开发板上的LED灯。
PMod控制模块控制开发板上的PMod硬件。
USB Host控制模块控制开发板上的USB Host硬件。
LAN控制模块控制开发板上的LAN硬件。
VHDC控制模块控制开发板上的VHDC硬件。
3 系统结构
![](http://www.ck365.cn/data/upload/201502/02/103613-92-153855.jpg)
图2系统结构图
3.1 上位机软件
上位机软件包括以下结构。
模块描述
启动检测用户界面,检测活动的发起者
输入实际显示结果用户界面,用来输入从显示设备、数码管以及LED灯看到的实际显示结果
串口通讯协议:发送检测用数据到开发板串口,从开发板串口接收反馈数据。
VGA模块检测随机生成用于显示的检测数据以及显示位置和显示颜色,将其与实际显示信息进行比较,判断检测结果并记录。
自由按键检测发送启动检测命令,将按键编号依次与从串口读取检测结果进行对比,判断检测结果并记录。
拨码开关检测发送启动检测命令,将拨码开关编号依次与从串口读取检测结果进行对比,判断检测结果并记录。
7段数码管检测可设置全亮或全灭,或生成一个随机数字,将其与实际显示信息进行比较,判断检测结果并记录。
LED灯检测可设置依次点亮、全亮或全灭,或随机生成一组LED灯编号,将其与实际显示信息进行比较,判断检测结果并记录。
PMod检测发送启动检测命令,从串口读取检测结果并显示。
USB Host检测发送启动检测命令,从串口读取检测结果并显示。
LAN检测发送启动检测命令,从串口读取检测结果并显示。
VHDC检测发送启动检测命令,从串口读取检测结果并显示。
3.2 FPGA开发板
3.2.1 控制软件
控制软件包括以下结构。
模块描述
串口通讯:将串口传入的数据读入FPGA,或将FPGA上的数据发送到串口。
VGA检测从串口读取用于显示的检测数据以及显示位置和显示颜色等信息传输到VGA控制模块。
自由按键检测从串口得到检测启动命令,从自由按键控制模块得到实际按下按键编号,从串口传出。
拨码开关检测从串口得到检测启动命令,从拨码开关控制模块得到实际打开的开关编号,从串口传出。
7段数码管检测从串口读取检测用数据传输到7段数码管控制模块。
LED灯检测从串口读取检测用数据传输到LED灯控制模块。
PMod检测从串口得到检测启动命令,将一组检测数据传输到PMod控制模块,再取出,进行对比,将对比结果从串口发出。
USB Host检测从串口得到检测启动命令,将一组检测数据传输到USB Host控制模块,再执行读取操作从USB Host控制模块取出数据,进行对比,将对比结果从串口发出。
LAN检测从串口得到检测启动命令,将一组检测数据传输到LAN控制模块,再取出,进行对比,将对比结果从串口发出。
VHDC检测从串口得到检测启动命令,将一组检测数据传输到VHDC控制模块,再取出,进行对比,将对比结果从串口发出。
3.2.2 SOC子系统
SOC子系统包括以下结构。
模块描述
控制核心实例化一个RISC_CPU作为核心控制软件的载体。
串口控制模块控制板载串口资源,从串口传入/传出数据。
VGA控制模块控制板载VGA资源,将显示内容、位置、颜色等数据传输到VGA口
自由按键控制模块监测自由按键按下或抬起的状态。
拨码开关控制模块监测拨码开关打开或关闭的状态。
7段数码管控制模块将要显示的检测用数据更新到数码管。
LED灯控制模块将要检测的LED灯点亮。
PMod控制模块将检测用数据传输到PMod口的输出针,从PMod口的输入针接受数据。
USB Host控制模块将检测用数据传输到USB Host硬件模块的传出端口,从USB Host硬件模块的传入端口接收数据。
LAN控制模块使用127.0.0.1做回环测试。
VHDC控制模块将检测数据传输到VHDC口的一对I/O针脚中的一根,从令一根接收数据。
4检测方案
4.1 VGA检测
检测VGA硬件,由上位机发送随机生成的数据,一般为英文字符或数字,以及随机生成的要显示在显示设备屏幕上的位置信息和颜色信息发送到FPGA,FPGA根据这些信息将检测用数据显示在显示设备屏幕上,检测者将显示的信息如实填入上位机的用户界面中,上位机进行比较,如果所显示的内容与上位机发送的信息相符合,则认为VGA接口正常工作。
4.2独立按键检测
为4个独立按键编号为1,2,3,4。上位机发送信息启动检测,FPGA收到信息后以一定间隔依次检测相应编号按钮的状态,当该按钮被按下,FPGA反馈信息到上位机,上位机显示该独立按键工作正常的信息。
4.3拨码开关检测
为8个拨码开关编号为1,2,3,4,5,6,7,8。上位机发送信息启动检测,FPGA收到信息后以一定间隔依次检测相应编号拨码开关的状态,当该拨码开关被打开,FPGA反馈信息到上位机,上位机显示该拨码开关工作正常的信息。
4.4 7段数码管检测
4个7段数码管可以显示0~8888范围内的任意整数。由上位机随机生成在此范围内的任意一个数发送到FPGA,FPGA将此数字显示到7段数码管,检测者将显示的信息如实填入上位机的用户界面中,上位机进行比较,如果所显示的数字与上位机发送的数字相同,则认为7段数码管工作正常。此外,还可以由上位机发送命令进行全灭或全亮的检测。
4.5 LED灯检测
为8个LED灯编号为1,2,3,4,5,6,7,8。由上位机随机生成要点亮的数个LED灯编号发送到FPGA,FPGA收到信息后将相应编号的LED灯点亮,检测者将点亮灯的编号如实填入上位机的用户界面中,上位机进行比较,如果点亮的LED灯与上位机发送信息所设置的LED灯相同,则认为LED灯工作正常。此外,还可以由上位机发送命令进行全灭或全亮的检测。
4.6PMod检测
在PMod接口外接一个测试板,接收PMod接口的传出数据,再发送到PMod接口的输入针。上位机发送检测启动命令到FPGA,由FPGA上的控制核心RISC控制完成自检测。发送一组测试数据到PMod,数据经过外接测试板再由FPGA读回。比较发送和读回的数据,如果相同则认为Pmod模块工作正常。FPGA向上位机返回检测结果。
4.7 USB Host检测
在USB Host口外接一个作为Slave设备的U盘,接收USB Host口传送出的经过加密的检测数据,在读取操作时从U盘中将数据读出到USB Host口。
上位机发送检测启动命令到FPGA,由FPGA上的控制核心RISC控制完成自检测。先执行写入操作,发送一组加密数据到USB Host模块,由USB Host模块写入U盘。再执行读取操作,由USB Host模块从U盘将检测数据读出,由FPGA上的控制核心通过软件比较发送和读回的数据,如果相同则认为USB Host模块工作正常。FPGA向上位机返回检测结果。
4.8 LAN检测
使用127.0.0.1做回环测试。上位机发送检测启动命令到FPGA,由FPGA上的控制核心RISC控制完成自检测。发送一组测试数据到LAN的硬件模块,通过回环测试再由FPGA读回。比较发送和读回的数据如果相同则认为LAN的硬件模块工作正常。FPGA向上位机返回检测结果。
4.9 VHDC检测
在VHDC接口外接一个测试板,让VHDC接口每一对I/O针脚短接形成回环,其中一根为数据输出,另一根为数据输入。
上位机发送检测启动命令到FPGA,由FPGA上的控制核心RISC控制完成自检测。发送一组测试数据到VHDC,数据经过外接测试板再由FPGA读回。比较发送和读回的数据,如果相同则认为VHDC模块工作正常。FPGA向上位机返回检测结果。