USB 画笔实验
1.选题目的
USB 接口在多媒体设备里面广泛应用,如果用带USB接口的有线或无线设备
来画画或写字,那样将给人们的生活带来极大的便利。可以将自己的作品或手
写体的文章底稿真实地保存在电脑中。本设计以USB 鼠标作为输入设备为例,
来设计USB‘画笔’功能。
2.实现方案
本设计使用飞利浦ISP1362 芯片的主设备端口结合Nios II 处理器实现了
USB 鼠标的移动检测。系统还实现了一个视频帧缓冲器,结合VGA 控制器完
成实时图像存储和显示。下图1给出了系统电路框图。VGA 控制器作为一个
Avalon 从设备,可以使用Nios II 处理器直接控制。
程序运行后,Nios II 处理器开始检测DE2-115开发板上的USB 鼠标是否存
在。当鼠标有移动时,Nios II 处理器可以跟踪这些移动并将其记录在帧缓冲存
储器。VGA 控制器会在VGA 缓冲器中存储的默认图像基础上叠加移动坐标数
据点,并将其显示在VGA 显示器上。
图 1
USB 画笔设计范例系统框图
3.设计过程
1)首先建立一个工程,命名为 DE2_115_NIOS_HOST_MOUSE_VGA,创
建一个包括 SOPC 功能硬件系统。生成后的系统如图 2 所示。
图2 SOPC Builder生成硬件系统
2)编写VGA控制、图片相关的RAM等的Verilog程序,所在工程如图3.
图3 DE2_115_NIOS_HOST_MOUSE_VGA工程
3)编写NIOSii中的控制程序。这些程序使用C语言编写,包括的文件如
图4所示。
4)对程序进行配置、仿真,端口配置列表如图5所示。
图4 NIOSii中包括程序
5)将DE2_115_NIOS_HOST_MOUSE_VGA.sof文件下载到DE2_115开发板
图5 端口配置列表
中进行调试,操作步骤如下:
()连接一个USB 鼠标到DE2-115 开发板的USB 主机端口(A 型接口)
()连接DE2-115 的VGA 输出到VGA 显示器(LCD 或者CRT)
()下载FPGA 配置数据DE2_115_NIOS_HOST_MOUSE_VGA.sof
()运行Nios II IDE 并切换工作目录到
DE2_115_NIOS_HOST_MOUSE_VGA\Software
运行环境搭建好后的架构如图6所示:
图 6 USB 画笔设计范例运行环境构架
4.主要模块仿真
在 DE2_115_NIOS_HOST_MOUSE_VGA 工程中,下图中的蓝框部分
VGA_Controller.v 是最主要的模块,它负责控制背景图片的显示,鼠标移动的
坐标显示等。
图7 工程中的文件
对 VGA_Controller.v 模块使用 ModelSim 仿真,得到的结果如图 8 所示。
图8 ModelSim仿真结果
5.问题与解决
1)仿真时出错。
问题:在用ModleSim仿真上述模块时,只有输入的波形,没有输出波形,
仿真结果如图9所示。
图9 ModleSim仿真出错的结果
解决:经过细心检查发现,在例化VGA_Controller DUT时忘记了输出端口
的例化,即缺了图9中的30 ~40行的内容,最后加上了就得到了正确输出,如图
11所示。
图10 VGA_Controller 例化程序
2)NIOSii 连接时出现
图11 ModleSim仿真正确的结果
问题:NIOSii 连接时出现下图 12 所示的问题,导致连接不上
解决:点击Target Connection页面中的Refresh Connections按钮,然后
图12 NIOSii连接出错
就消除了错误。
6.设计结果
(1)打开开发板电源,程序下载后,可以观察到 VGA 显示器给出的一幅
带 Altera 标识蓝色背景图片如图 13 所示,开发板上 LCD 上显示内容,数码管上
显示鼠标坐标,LED 灯点亮一部分,如图 14 所示。
图13 显示器上的初始画面
图14 开发板上的显示画面
()移动鼠标会观察到屏幕上相应的光标动作,点击鼠标左键会在屏幕上
光标位置绘制白色的点,右键绘制蓝色的点(这个功能暂时没有实现),即可
以通过滑动鼠标写字或画图,结果如图15所示,鼠标移动时数码管上的坐标在
一直发生变化,LED灯也跟着闪烁,如图16所示。该USB画笔使用简单方遍方便,
达到了预期的效果。