标签 : 黑金 FPGA 开发 2010-09-24 21:15
黑金 FPGA 开发板,公司总部位于上海,我是黑龙江省总理,想接触 FPGA 的入门的,这是款不错
代理优惠价:
套装:淘宝价 660+20元(邮费)代理优惠
费套装:淘宝价 580+20元(邮费)代理优惠
QQ:812158980
有意者联系我,黑金 FPGA 得是入
标签:FPGA
【 FPGA 黑金开发板】发布第二代黑金核
一、核心板采用更高级的 FPGA EP3C16Q240,资源
二、核心板采用 四层 PCB 设计,更稳定,更!可以用到
三、 宽电源输入(7.5V~16V)设计 ,含防插反功能,内置 三路关电源模块 , 更环保,节能。不但可作为发板,更
四、内建 2M Flash,可存 NiosII 代码、 FPGA 逻辑、
五、内建 8M SDRAM,跑 NiosII 更给力;
六、内建 512k Byte高速 SRAM,高速数据
七、完美的引脚扩展,可用于项目前期验证,可作为产品核心板控制,更可方 便地应
八、内建 10M晶振,配合 CYCLONEIII 强大 PLL ,可用
九、内建 JTAG / AS 下载口,一键配置、一键复位电
黑金开发板移植uclinux详细教程
黑金开发板 uClinux 移植教程
我们都知道 Altera FPGA 的 NOIS II 大大方便了嵌入式开发,但是,唯独不便就 是难以嵌入一个操系统,这是所有 FPGA 的病,以前网看到过有 DE0移植的教程, 很想在自己的黑金 FPGA 试试, 经过很次尝试, 终于给黑金板功移植了 uClinux 。 本文是移植过程详细总结。 整个过程分成三部分, 分别是硬件开发, 配
一、硬件设计:
这一部分我们先用 sopc builder建立一个 nois ii系统,此部分只需要在 windows 下用 Quartus II即可完成,开 Quartus II,笔者这里用的版本是 11.0,其 他版本类似。当然, Linux 移植成功与否的关在,是否成功,硬件系统的搭建成 什么样有着决性的作用,在始之前,我有要先把 NIOS II 上
(1)CPU 必须是 Nios II/f型,并且带有 Hardware multipler;
(2)带有 SDRAM(
(3)一个具有全功能 (Full-Featured)的定时器 Timer ,并且
(4)一个 JTAG 或者 Serial
(5)带有 On-Chip Memory 。 (注:这一点很重要,虽看上去没什么用,是如果没有 这一项,最后编的内核下载到内存中
1. 先建立
这里没什么好说的, next 。
给工程起个名字,我这里就叫 nios2linux , next
没什么好说,
next
这里根据板子上实际板载的器件选择,我用的是 Cyclone II的 EP2C5Q208C8, 选择完以后 next
我们不需要仿真,没什么好
到此,看到 summary 了,工程建立完了,点 Finish 完成建立。
点击 File->new,新建一个 Block Diagram/Schematic File,如下图所示:
建立好了之后就会打开一个 Block file:
2. 建立 NIOS II核心:
单击 Tools->SOPC Builder打开 SOPC
给我们的内核起个名字,我就写 kernel 好了。单 OK ,就
右上角的 Clock Settings显示了我们当前内核的时钟度,默认 50MHz ,大家根据自己的 需要来,当然频率高有助于提性能,个
添加 SDRAM 控制器:
按上图配置, 我的板子上 SDRAM 是 16位的, 所以 Presents 选 Costom, 宽选 16,
添加定时器:
按上图配置,了 Presents 必须是 Full-Featured 以外,其他着办,点 Finish 。 添加 Avalon-MM Tristate Bridge,这是为 FLASH
能连接到 CPU 上:
没什么好改的,直接 Finsish 。
添加 FLASH :
注意 ,FLASH 包括串行 FLASH(配置芯片 ) 也就是上图中的 EPCS Serial FLASH Controller,
根据自己板子上的实际情况选择, 我的黑金开发板上面板载的是 AM29LV160DB 芯片, 工作在 8位下,具体情况请大自行查开
21条地址线, 8跟数据线,其中我这块 FLASH 可以选 8位模式和 16位模式,其中 8位模 下 BYTE 引脚要拉, 并且地址线最低位要接数据线最高位, 16位模式 BYTE 则要拉, 体查芯片册,这里不多说,
时序设置,这根据芯片手册可以查到数据,我的是 40,160,40,大家根据手数据,这 里填错可能导 FLASH 工作不正常,最后的 linux 无法运行等。配
当然,这样还没完成,还要将 tristate_mast与 flash 的 s1相连接,将 flash 三态桥 上,以完
接下来添加串行 FLASH :EPCS FLASH:
没什么好改的,直接点 Finish 。
接下来添加 On-Chip Memory:
点开以后如下
数据宽度和大小随意,也可以默认,直
最关键的一步到了,我们要添加我们的处
如图:添加 NIOS II Processor:
注意, 前面说过了, 这里 NIOS II Core 必须选 NOIS II/f,, 下面的 Reset Vector 选 cfi_flash, Exception Vector选 sdram ,点 next 。
注意:这里 Data Master必须选 None ,否我们的软核在行时会出现问题,这里不 释,接下来一
下面添加 System ID:
打开如下窗口:
没什么好改的,直接 Finish 。注意:这个是一定加的,在后面载程序的时候都会校 SYSTEM ID,如果
接下来把 JTAG UART加上:
不用改什么,直接 finish 。
接下来我们运行 linux 的一个最小系统所有设备都齐全了,至他的什么己随
看看我们现在都
下面出现了很错误,不用怕,接下来我们还需要把这些设备置好,先点一下 cfi flash在 base 那一栏下面, 0x0000000前面有一个开着的,一下将其合上,锁定 flash 的基地址 为 0x0,这样
然后,把这些设备名字后面没用的 0都去掉,看着麻
改完以后如下
我们再看看下面那些错误都说的什么,是说有些设备的基地址重了,这个好,们点 System->Assign Base Addresses,配一下基地,这下就好
我们也看到, Base 一栏除了 flash ,所有地址都有变化,明我们刚锁定基
接下来检查一下中断号的
我们要保证 Timer 中断号是 0,里已是 0了,其他的中断号没有冲突的,所以就 这样保持现状就好,如 Timer 的 IRQ 不是 0,那么要时候要手动分中断号,一要 保证 Timer 的 IRQ 是 0, 并且其他的中断号没有冲突, 否则就会造成 linux 运行不正常。 到这 一切绪了, 单击 Generate 完成 SOPC 的建, 这时候会示你保存, 建议存的名字 和内核的名字一样,我就写 kernel ,保存以后就开始
到这里就表明建立成功了,看到最后一行 System generation was successful 了吧,如果有错 误的己再检查一下,这时候
在空白处双击,会弹出
右边的 Project 下面就会出现我们刚才配置的 kernel , OK 核心拖
在内核上右击,单击 Generate Pins for Symbol Ports生成一
3. 构建
在空白处双击,单击下面的 MegaWizard Plug-In Manager。
打开如下窗口:
选第一项,
Next.
左边选择 I/O->ALTPLL右边 output file下面一栏写
在上图光标所在处填上板子上所用晶振的频率,
Next
按上图配置,所有勾都去掉,一直 Next ,直到
我们需要得到核心运行所需要的时钟,按上图配置,可以直接选第一项 Enter output clock frequency ,然后填 100也可以
把 use this clock勾上,启用 c1,频率和 c0一样,但是 Clock phase shift要写 -75,单 deg ,这里很重要,如相移不正确,系统无法运行,相移是根据芯片手册提供据 算出来的, 这里不多解释, 一 next, 直到 finish 。 这时候
单击 OK ,把 PLL 下并与
其中, PLL 的 c1时钟是提
4. 分配管脚
这里不多说了,我这里用 TCL 文件的方式来分配,事先查好我们需要的
把 Block 图里的管脚分别改成 TCL 里的名字或者直接
如果管脚分配正确, 那么在每一个输入输出的管脚处都会出现管脚编号, 果些没出来的 话家自己检查一下。 其中我的 FLASH 管脚比较纠结, 最低位在址线最高位上
5. 配置器件
右键单击我们
点 Device,
点 Device and Pin Options..打开器件设置,下的 Configuation device选自己 对应的,如果选 Auto ,统会自动选择
Unused Pins按下图配置:
Dual-purpose pins按
完成之后点 ok
6. 编译
没什么好说的,不过可能要等的时间比较长。成之后我
占用资源还可以, 我的器件还能够承受, 接下来我们用 Programmer 把编译的软
接下来我到工目录我的是 D:\nios2linux找 2个文件
要编译 Linux 内核必须在 Linux 下配置交叉编译环境才完成, 所以我事先须实机 或者用虚拟安装 Linux 系统, Ubuntu 或者 Fedora 或
1. 虚拟机安装 Ubuntu 11.04,我用 VMWare
装的,这个教程网上有很
里不浪费口舌了,装完
开一个终端:
由于 ubuntu 不支持直接以 root 身份登录, 所以果要以超级用户限操作在图形界面是 可能的,所以输入 sudo – s ,输入超级用户密码,开一个超终,如下图所示,计算 机名前出现 root@样表示此时已经是
2. 下载 nios2专用的编译器 gcc for nios2,交叉编译环的 linux 安装文
3. 下 uclinux 源码包,可以去 www.uclinux.org 官网下,但是最好不要下载新 版 本 的 , 不 一 定
4. 下载补丁包 uClinux-dist-20070130-nios2-02.diff.gz , 只有
5. 接下就可以始我们的编译作了,把 nios2gcc.tar.bz2放在 /usr/local/src目录下,至于文件怎拷到虚机,这个可以在虚拟机里直接上网载,也可以 利用 Vmware tools直接拖文件到机,不过 /usr/local/src个目录是需 root 权限才可以往里写文件的,
6. 开始编译前还需一些软件, 用如令取 (软件源怎么加应该不
注:以上软件包如果获取不完全,最后能会导致
7. 安装交
[root@wjh-virtual-machine:/usr/local/src#]
tar -jxvf nios2gcc.tar.bz2 -C /
8. 设置环
由于 ubuntu 没有 bash_profile件,所以自己
[root@wjh-virtual-machine:/usr/local/src#] gedit ~/.bash_profile
里面只写这一句:PATH=$PATH:/opt/nios2/bin:$HOME/bin
保存退出即可。
9. 使设置的环
[root@wjh-virtual-machine:/usr/local/src#] source ~/.bash_profile
接下来检验一下环境
[root@wjh-virtual-machine:/usr/local/src#] nios2-linux-uclibc-gcc – v 如果出现是一下内容
Reading specs from /opt/nios2/lib/gcc/nios2-linux-uclibc/3.4.6/specs Configured with: /root/buildroot/toolchain_build_nios2/gcc-3.4.6/configure
--prefix=/opt/nios2 --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=nios2-linux-uclibc --enable-languages=c --enable-shared --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --enable-threads --disable-multilib --enable-cxx-flags=-static
Thread model: posix
gcc version 3.4.6
10. 接下来我们就可以为 nios2
把 uclinux-dist20070130.tar.gz 放在 /usr/local/src里,并执行:
[root@wjh-virtual-machine:/usr/local/src#] tar -zxvf uClinux-dist-20070130.tar.gz
解压缩需要等待一定时间, 解压缩之后大小接近 1.9G , 以事先务必保证
11. 接 下 来 把 补 丁 包 uClinux-dist-20070130-nios2-02.diff.gz 复 制
[root@wjh-virtual-machine:/usr/local/src#] cd uClinux-dist
[root@wjh-virtual-machine:/usr/local/src/uClinux-dist #] gunzip -c uClinux-dist-20070130-nios2-02.diff.gz | patch -p0
如果执行结果如下则表示补已经
patching file vendors/Altera/nios2nommu/config.arch
patching file vendors/Altera/nios2nommu/config.linux-2.6.x
patching file lib/libpng/Makefile
patching file linux-2.6.x/include/asm-nios2nommu/ide.h
patching file linux-2.6.x/include/linux/elf-em.h
patching file linux-2.6.x/usr/Makefile
patching file linux-2.6.x/arch/nios2nommu/kernel/vmlinux.lds.S patching file linux-2.6.x/arch/nios2nommu/drivers/Kconfig
patching file linux-2.6.x/arch/nios2nommu/drivers/altcf.c
patching file linux-2.6.x/arch/nios2nommu/drivers/pci/Kconfig
patching file linux-2.6.x/arch/nios2nommu/drivers/pci/pci-auto.c patching file linux-2.6.x/arch/nios2nommu/drivers/pci/pci.c
patching file linux-2.6.x/arch/nios2nommu/drivers/pci/Makefile patching file linux-2.6.x/arch/nios2nommu/drivers/spi.c
patching file linux-2.6.x/arch/nios2nommu/drivers/Makefile
patching file linux-2.6.x/drivers/mtd/maps/altera.c
patching file linux-2.6.x/drivers/mtd/maps/Kconfig
patching file linux-2.6.x/drivers/net/Kconfig
patching file linux-2.6.x/drivers/net/Makefile
patching file linux-2.6.x/drivers/net/dm9ks.c
patching file linux-2.6.x/drivers/net/open_eth.c
patching file linux-2.6.x/drivers/net/dm9000.c
patching file linux-2.6.x/drivers/net/Space.c
patching file linux-2.6.x/drivers/net/smc91x.c
patching file linux-2.6.x/drivers/net/smc911x.c
patching file linux-2.6.x/drivers/net/mtip1000.c
patching file linux-2.6.x/drivers/usb/Kconfig
patching file linux-2.6.x/drivers/usb/host/Kconfig patching file linux-2.6.x/drivers/usb/host/isp1362-hcd.c patching file linux-2.6.x/drivers/usb/host/Makefile patching file linux-2.6.x/drivers/usb/host/isp1362.h patching file linux-2.6.x/drivers/usb/Makefile
patching file linux-2.6.x/drivers/ide/ide.c
patching file user/microwin/src/fonts/X6x13.c
patching file user/microwin/src/demos/nxroach/Makefile patching file user/microwin/src/demos/nanox/nxterm.c patching file user/microwin/src/demos/nanox/nterm.c patching file user/microwin/src/demos/nxkbd/keynum.c patching file user/microwin/src/demos/nxkbd/keyctrl.c patching file user/microwin/src/demos/nxkbd/keyshft.c patching file user/microwin/src/Makefile.rules
patching file user/microwin/src/drivers/kbd_ttyscan.c patching file user/microwin/src/drivers/scr_fb.c
patching file user/microwin/src/drivers/mou_ser.c
patching file user/ftpd/ftpcmd.c
patching file user/ftpd/Makefile
12. 对内核
在开始之前,先改一个
[root@wjh-virtual-machine:/usr/local/src/uClinux-dist#]gedit
linux-2.6.x/scripts/mod/sumversion.c
如上图所示,加一句 #include 接下来就可以正式 [root@wjh-virtual-machine:/usr/local/src/uClinux-dist#] make menuconfig 将会打开如下窗口: 其中 Vendor/Product Selection按 Enter 进 Exit, 然后第二个选项去后 : 注意:Libc Version一定要选 None, 否 配置完了之后退出,出现下 这样内核就配 13. 接下来 先把前面配置硬件生成的 kernel.ptf 复制到 /usr/local/src/下,然后执行: [root@wjh-virtual-machine:/usr/local/src/uClinux-dist#] make vendor_hwselect SYSPTF=/usr/local/src/kernel.ptf 执行之后会让你选择 CPU ,程序下载的地方和程执行的地方, 注: 别无选择 )-1(注:别无选择 )-3(sdram),像下面这样: --- Please select which CPU you wish to build the kernel against: (1) cpu - Class: altera_nios2 Type: f Version: 7.08110 Selection: 1 --- Please select a device to upload the kernel to: (1) cfi_flash Class: altera_avalon_cfi_flash Size: 2097152 bytes Selection: 1 --- Please select a device to execute kernel from: (1) onchip_memory2 Class: altera_avalon_onchip_memory2 Size: 4096 bytes (2) epcs_flash_controller Class: altera_avalon_epcs_flash_controller Size: 2048 bytes (3) sdram Class: altera_avalon_new_sdram_controller Size: 8388608 bytes Selection: 3 --- Summary using PTF: /usr/local/src/kernel.ptf CPU: cpu Device to upload to: cfi_flash Program memory to execute from: sdram --- Settings written to /usr/local/src/uClinux-dist/linux-2.6.x/arch/nios2nommu/hardware.mk 最后对一下上面的 Summary using是不是和 14. 建立 romfs 资料 执行: [root@wjh-virtual-machine:/usr/local/src/uClinux-dist#] make romfs 过程中会出现一些错误 15. 终于到了真正编译内文件 输入 make [root@wjh-virtual-machine:/usr/local/src/uClinux-dist#] make 接 下 来 就 漫 长 的 等 待 , 编 译 完 成 后 会 在 /usr/local/src/uClinux-dist/linux-2.6.x/arch/nios2nommu/boot/文 件 夹 成 一 个 zImage 文件,这个就是内映象文件,到这里是不是离成功已 16. 加入 bootloader : [root@wjh-virtual-machine:/usr/local/src/uClinux-dist#] make linux image 这时候,会重生成 zImage 文件,这时候就是一个完整的映象件,我们终于成了! 然, 现在高兴是还是太早了, 我们还不知道我们编译核能否正常在我们建立的件 系统里跑起,下面,我们就 三、下载内核 1. 把第二步中建立的 zImage 从虚拟机里复制出来(这个就你己了,不要问我 么复制) ,和刚才的 nios2linux.sof 一起 2. 开始 ->所有程序 ->altera->Nios II EDS 11.0sp1->Legacy Nios II Tools 3. 如果刚才 Quartus II 里没烧过硬件程的话, 这里也可以烧, 先连接好 USB Blaster [NiosII EDS]$ nios2-configure-sof nios2linux.sof 若出现以下内容就表 Searching for SOF file: in . nios2linux.sof Info: ******************************************************************* Info: Running Quartus II Programmer Info: Command: quartus_pgm --no_banner --mode=jtag -o p;nios2linux.sof Info: Using programming cable Info: Using programming file nios2linux.sof with checksum 0x0035AB69 for device EP2C5Q208@1 Info: Started Programmer operation at Sun May 13 19:31:20 2012 Info: Configuring device index 1 Info: Device 1 contains JTAG ID code 0x020B10DD Info: Configuration succeeded -- 1 device(s) configured Info: Successfully performed operation(s) Info: Ended Programmer operation at Sun May 13 19:31:22 2012 Info: Quartus II Programmer was successful. 0 errors, 0 warnings Info: Peak virtual memory: 161 megabytes Info: Processing ended: Sun May 13 19:31:22 2012 Info: Elapsed time: 00:00:03 Info: Total CPU time (on all processors): 00:00:00 4. 下载内核: [NiosII EDS]$ nios2-download -g zImage 其中上面 -g 表示下载之后立即执行。成功了会 Using cable Pausing target processor: OK Initializing CPU cache (if present) OK Downloaded 1196KB in 58.7s (20.3KB/s) Verified OK Starting processor at address 0x01500000 5. 现在,激动人心的 [NiosII EDS]$ nios2-terminal 启动内核,内核执行的数据会通过 JTAG 接口发回计算机,我们就能看结果了:如成功 nios2-terminal: connected to hardware target using JTAG UART on cable nios2-terminal: nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate) Uncompressing Linux... Ok, booting the kernel. Linux version 2.6.19-uc1 (root@wjh-virtual-machine) (gcc version 3.4.6) #24 PREE MPT Sun May 13 19:24:35 CST 2012 uClinux/Nios II Altera Nios II support (C) 2004 Microtronix Datacom Ltd. Built 1 zonelists. Total pages: 2032 Kernel command line: PID hash table entries: 32 (order: 5, 128 bytes) Dentry cache hash table entries: 1024 (order: 0, 4096 bytes) Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) Memory available: 5956k/8192k RAM, 0k/0k ROM (1465k kernel code, 681k data) Mount-cache hash table entries: 512 NET: Registered protocol family 16 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 0, 4096 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered io scheduler noop registered io scheduler deadline registered (default) Serial: JTAG UART driver $Revision: 1.3 $ ttyJ0 at MMIO 0x80204028 (irq = 2) is a jtag_uart TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Freeing unused kernel memory: 572k freed (0x117a000 - 0x1208000) Shell invoked to run file: /etc/rc Command: hostname uClinux Command: mount -t proc proc /proc Command: mount -t sysfs sysfs /sys Command: mount -t usbfs none /proc/bus/usb mount: Mounting none on /proc/bus/usb failed: No such file or directory Command: mkdir /var/tmp Command: mkdir /var/log Command: mkdir /var/run Command: mkdir /var/lock Command: mkdir /var/empty Command: ifconfig lo 127.0.0.1 Command: route add -net 127.0.0.0 netmask 255.0.0.0 lo Command: cat /etc/motd Welcome to ____ _ _ / __| ||_| _ _| | | | _ ____ _ _ _ _ | | | | | | || | _ \| | | |\ \/ / | |_| | |__| || | | | | |_| |/ \ | ___\____|_||_|_| |_|\____|\_/\_/ | | |_| For further information check: http://www.uclinux.org/ Execution Finished, Exiting Sash command shell (version 1.1.1) /> 下图也展示了最后 至此,成功给 FPGA 移植 uclinux 。虽然到在反应在硬件的效果不明显,但是我以 给其添加程,这样 Enjoy it! 黑金动力社区 Http://www.heijin.org 1 技术支持 我们技术持是过论坛进行的, 如果您有任何与小黑有关的技术问题, 请 发帖到黑金动社区的 FPGA 金开板专栏,我们有工程师负责为解决相关 问题。 同时, 教程、 视频、 等新, 全部通过黑金动力社区网站进行发, 敬请 常见问题解答 在论坛中,我建立了一个归纳贴,将常见的问题都收集在了这个贴下面, 如遇到问题, 大家去里面查看, 如果没 官方博客 黑金动力社区官方博客负责发布相关技术博文, 产品信 官方淘宝店 黑金官方淘宝店负责销售有黑金动力社区设计研发的各种产品, 如有需 登录黑动力社 黑金动力社区 Http://www.heijin.org 2 一、 产品图片 二、 致谢 感谢您选购了由黑金动力社区研发设计的 FPGA 黑金开发板。此以后, FPGA 金开发板(以后简小黑)将陪伴您一起走进 FPGA 世界,希望小黑 能够成您在 FPGA 学习路途中的 三、 内容简介 小黑是由黑金动力社区的黑金研发团队精心设计出来的。 为了让小黑在 的学习过程中您一臂之力, 我们的工程师黑配备了很多的资料。 下面我 我们为小黑配套了两张 DVD 光盘(光盘 A 、光盘 B ) ,光 A 中主要包 配套的原理图、教程、源、脚本文件以及开发 黑金动力社区 Http://www.heijin.org 3 光盘 B 的根目录 两张 DVD 光盘的内容通过上述表格大家可以大概了解了。接下,我结 合两张光的内容来带领大家一步一步的 四、 收货与检测 当您收到小黑以后,第一件事当然是好好观摩一下小黑“容颜”了。如果 发现小黑由于过程中被“容”了, 接下来就是上电检测了。 小黑在出厂之前, 已经经过了多轮严格测试, 且 DEMO 程序载到 FPGA 中 (下载的光盘 A 中的 DEMO_N文件 在黑金套件中,附带了 5V 电源, 黑金动力社区 Http://www.heijin.org 4 将 5V 电源一端插到 220V 的电源插座,另一端插到小黑电插口,然后 按开关。上电之后,开发板就动运行,您可以观 数码管从 000000开始 LED 进行流 串口指示灯 TXD 不停闪烁; 网口两个指示灯 液晶屏有如下 您按下的按键 欢迎使用黑金 O(∩ _∩ )O~ 10-03-17 14:19:00 星期日 第一行是按键测试程序显示,默认显示为上↑,当您拿下其他按时候, 液晶屏 第四行为实时时钟显 10-03-17 14:19:00 星期日 。 重新上电以后, 时间会默认显示, 这因为此开发板没有安装时时钟用电池 (由于我们 发的快递为顺丰航空件,因此快递公司禁止包裹中携带) 。如果您想安装 电池,请将保护打开,然将核心板底板分离,即可看到电 出现上述现象以后, 小黑的主要部件检测完成。 其余未用到的部, 将会在 后续 五、 软件安装 接下来的工作就是要开始安装软件了。 ALTERA 公司的 FPGA 开发环境是 黑金动力社区 Http://www.heijin.org 5 Quartus II,我们所使用的版本是 9.0, 如果想要开 NIOS II, 还要安装 NIOS II IDE,他的版本要跟 Quartus II版本一致, 这个是必须, 不然在编译 使用的操作系统,推荐是兼容性最好的 Windows XP 系。虽然 WIN7也 以使用, 不过鉴 WIN7系统与 NIOS II IDE的兼容性存在问题, 还是建议使 XP 系统, 软件的安装过程,我们工程师已经录制成了视频供大家参考,在光盘 B 中 大家跟随视频一起就会完成整个装过程。 六、 安装 USB 下载线驱动 安装软件以后, 我们还需要安装 USB BLASTER(下载线) 的动。 USB BLASTER的驱动是有 Quartus II软件提供的,他安装过程,我也提供了视频 在安装过程中,大家要注意点,是驱动 千万不要进入 X32或 x64文 如果您是 WIN7系统用户,如果出现不能安装的情况,请将防火,杀毒软 件都 在这里, 我简单说明一 USB 下的使用方法。 小黑支持种载方式, 一种是 JTAG 方式,一种是 AS 方式。对应的在小黑的核板上有两个 10针的 口, 面有标 AS 口和 JTAG 口。 USB 下载线一端与电脑的 USB 口连接, 另一 端与小的 JTAG 或 AS 口相连。在同一时刻,我们只能使用其中一个口。 其中 JTAG 方式负责 FPGA 在线仿真, 程通过 USB 下线下载 FPGA 部 SRAM 中。由于 FPGA 是基 SRAM 术的,所以掉电以后,程序会丢失 ;AS 方式是将 程序下载到 FPGA 外部的配芯片 EPCSX 中, EPCSX 实质是一种行 FLASH , 因此, 掉线以后, 序不会丢失。 每次上 USB BLASTER本身就有仿真和下载两种功能, 因此, FPGA 开发过程中只需 USB BLASTER实现在线仿真和程固化两个功 黑金动力社区 Http://www.heijin.org 在线仿真,而 AS 方式用于最终的程序固化到外部的配 七、 Verilog 程序下载测试 上述过程都完成以后, 接下来, 我们就要试试小黑是否可以进行下载程序了, 也一定期待 在光盘 A 中,我们为大家准备了已经编译好的 Verilog 测试程序,在文件夹 DEMO_V下。下我将为 在这里要首先要说一下, 拿到光盘以后, 建议大家先将光盘内拷贝到硬盘 , 有一点要注意的,是不要放到含有中文和空格的路径 。因为 Quartus 和 NIOS 对中文都支 拷贝好以后,我们进入光盘 A 下的 DEMO_V文夹,找到 top_module.qpf文件,双击 进入 Quartus II软件以后,我们点击下图所示红圈处,进序下载界 此 在下载之前,我们需要将 USB 下载线与小黑的 JTAG 口相连接,次我们要 做的是在线。插好 USB 下载线以 在这里,我要特别提醒大家, USB 下载线不要带电的 黑金动力社区 Http://www.heijin.org 定要先关掉电源,然后再插拔。如带电插 下载线,很有 FPGA 的 JTAG 口,这样就不能再恢复了,没有 JTAG ,这块 FPGA 上就不能再用,后果很 对于这个疑问,大家请看下 http://www.cnblogs.com/kingst/archive/2010/03/26/1696650.html 硬件链接完毕以后, 接下来我们要设 USB 下载线, 我们在载界面, 点击下 点击以后,会出 然后,我们双击上图的红圈处,这时在下图 USB-Blaster[USB-0]。如果有其他选项,将其他选选,点击 Remove Hardware ,他选项都移除。最后 黑金动力社区 Http://www.heijin.org 在这里面, 我需要注意一个选项 Mode , 如下图红圈, 在这里有四选 项, 我们使的 FPGA 芯片支持其中的 JTAG 和 Active Serial Programming(即 AS) 。个也就是 在这里,我们择 JTAG ,进行 JTAG 仿真功能。如果我们要将终程序固 化到部的 EPCSX 中,那我们在此选择 Active Serial Programming,同时 我们也要 USB 下载线 JTAG 模式和 AS 模式所对应的文件是不同的。程序编译后,会生成两 可下载在的文件,其,后缀为 .sof 的文件供 JTAG 模式下载使用,后缀 为 .pof 的文件 进入下载界面以后, 默认的 .sof 文件已经加载了, 如下图 接下来我们开始下载,点击下图的 start ,程序 黑金动力社区 Http://www.heijin.org 9 下载完成以后,进度条将会显示为 100%,如下图所示 这样,我们的程序就下载完成了。请大家观察小黑核心板上的四个 LED ,如 果功, 在此需要说明一, 由于我们出厂的时候, 已经程序固化到 EPCSX 里面 了。我们进行上述测试实验使的是 JTAG 模式,如果重上电,大家会发现 序还是之前的厂默认 DEMO 程序, 这一点初学者可能会有疑惑。 问题就在 FPGA 是基于 SRAM 技术的, 通 JTAG 模式下载, 是将序下载到 FPGA 内部的 SRAM 中, 因此掉以后, 我们过 JTAG 模下载的程序会丢失的。 而重新上电后, EPCSX 会自动加载程 到此为止,我们的下载测试 八、 NIOS 在光盘 A 中,我们为大家还准备了 NIOS 的 DEMO 程序,这个程序也是出厂 写到配置芯片测试程 包含 main 、 driver 、 inc 由于 NIOS 程跟工程路径有绝对关系, 因此, 如果要是测试 NIOS 程, 需 要大家新建立 NIOS 软件程, 后上述三个文件夹添加到 NIOS 工程中。 具 体相关操作,请大家参看光盘 B 相的 NIOSII 视频教程及光盘 A 中 NIOS 目录 下的《 NIOSII 黑金动力社区 Http://www.heijin.org 九、 教程简介 随小黑的配套教程分成 NIOS 和 Verilog 两部分。 NIOS 教程 NIOS 技术有一部教程, 下,还有配套的源代码。同时配套的视频教程在光盘 B 下的 ,里面 包含 16集视频教程, 同 学习 NIOS 技术要 C 语言的基础, 这是最基本的。 对于电子程师来说, C 语言就是基本功,不你习 51也好, ARM 也罢,甚至是 DSP ,都离不开 C 语言。管用那种开发环境, KEIL 、 GCC 、 CCS ,以至于我们将要学习的 NIOS II IDE , 都是使用 C 语来操作的。 由此可见, C 语言的重要性可以说不言喻的。 在这,给大家介绍一好书,也是经得起时间考验的 C 言书。 《 C 程序设计语言( 此书的作者就是 C 语言的两位设计者 Brian W.Kernighan 和 Dennis M.Ritchie (简称 K&R) ,此书已翻译成种语言,成 C 语言方 此教程电子版收录在 http://www.amazon.cn/mn/detailApp/ref=sr_1_2?_encoding=UTF8 &s=books&qid=1280029864&asin=B0011425T8&sr=1-2 黑金动力社区 Http://www.heijin.org 11 Verilog 教程 Verilog 技术有四部教程,在光盘 A 下的 \VERILOG\下,进入以后,大以 看到有四文件夹, 四个文件夹中别有对应的教程,他们分别是《 VerilogHDL 盲文》 、 《 VerilogHDL 那 四部教程的阅顺序也很明显,从《 VerilogHDL 盲文》开始,后分别是 《 VerilogHDL 那些事儿 _建模篇 v4》 、 《 VerilogHDL 那些事儿 _时序篇》 、 《 VerilogHDL 整 对于我们原创这四部教程,并不是从零开始讲起的,需要有 Verilog 的语 法础。在此推荐一本比较经的 Verilog 基础教程,夏宇老的《 Verilog 字系统设计 http://product.dangdang.com/product.aspx?product_id=20241326 如果有些朋友想看电子版的,我特意光 A 下的 VERILOG 目录下的推荐 基础教程文件夹内 除此之外,们还收了很多的 Verilog 相关的电子书,在光盘 B 的 \FPGA料 \VERILOG文件夹下。不过我不推荐家看很多书,找对一本书,深入的 去研究,这样才能体现出效果。书看多了只能越来越,只有亲自去实践,能 真正懂得其中的道理, 这也是我为什么让黑陪伴您的因。 在此送 十、 TCL 脚本文件 TCL 脚本件是用分配引脚使用, 我们可以通过此文件来查看外设的引脚, 免于通过原理图来看脚的麻烦。 TCL 本文件在光盘 A 中 TCL 文件夹下。对 下面的脚本文件简单解释一下,我以第一条举例, PIN_23就是 FPGA 的第 23引脚, RESET 就是对应的复位引脚, RESET 这个名字我们自己起,没有特别 的定, 只要脚本文件的名字跟要配的引脚名字一直即可, 黑金动力社区 Http://www.heijin.org 12 #复位引脚 set_location_assignment PIN_23 -to RESET #时钟引脚 set_location_assignment PIN_28 -to CLOCK #SDRAM引脚 set_location_assignment PIN_150 -to S_DB[0] set_location_assignment PIN_151 -to S_DB[1] set_location_assignment PIN_152 -to S_DB[2] set_location_assignment PIN_163 -to S_DB[3] set_location_assignment PIN_165 -to S_DB[4] set_location_assignment PIN_169 -to S_DB[5] set_location_assignment PIN_171 -to S_DB[6] set_location_assignment PIN_173 -to S_DB[7] set_location_assignment PIN_179 -to S_DB[8] set_location_assignment PIN_175 -to S_DB[9] set_location_assignment PIN_170 -to S_DB[10] set_location_assignment PIN_168 -to S_DB[11] set_location_assignment PIN_164 -to S_DB[12] set_location_assignment PIN_162 -to S_DB[13] set_location_assignment PIN_161 -to S_DB[14] set_location_assignment PIN_160 -to S_DB[15] set_location_assignment PIN_200 -to S_A[0] set_location_assignment PIN_203 -to S_A[1] set_location_assignment PIN_205 -to S_A[2] set_location_assignment PIN_207 -to S_A[3] set_location_assignment PIN_208 -to S_A[4] set_location_assignment PIN_206 -to S_A[5] set_location_assignment PIN_201 -to S_A[6] set_location_assignment PIN_199 -to S_A[7] set_location_assignment PIN_197 -to S_A[8] set_location_assignment PIN_193 -to S_A[9] set_location_assignment PIN_198 -to S_A[10] set_location_assignment PIN_191 -to S_A[11] 13 set_location_assignment PIN_187 -to S_CLK set_location_assignment PIN_192 -to S_BA[0] set_location_assignment PIN_195 -to S_BA[1] set_location_assignment PIN_182 -to S_NCAS set_location_assignment PIN_189 -to S_CKE set_location_assignment PIN_185 -to S_NRAS set_location_assignment PIN_180 -to S_NWE set_location_assignment PIN_188 -to S_NCS set_location_assignment PIN_181 -to S_DQM[1] set_location_assignment PIN_176 -to S_DQM[0] #并行 FLASH 引脚 set_location_assignment PIN_97 -to F_DB[0] set_location_assignment PIN_96 -to F_DB[1] set_location_assignment PIN_95 -to F_DB[2] set_location_assignment PIN_94 -to F_DB[3] set_location_assignment PIN_92 -to F_DB[4] set_location_assignment PIN_90 -to F_DB[5] set_location_assignment PIN_89 -to F_DB[6] set_location_assignment PIN_88 -to F_DB[7] set_location_assignment PIN_84 -to F_A[1] set_location_assignment PIN_82 -to F_A[2] set_location_assignment PIN_81 -to F_A[3] set_location_assignment PIN_80 -to F_A[4] set_location_assignment PIN_77 -to F_A[5] set_location_assignment PIN_76 -to F_A[6] set_location_assignment PIN_75 -to F_A[7] set_location_assignment PIN_68 -to F_A[8] set_location_assignment PIN_67 -to F_A[9] set_location_assignment PIN_64 -to F_A[10] set_location_assignment PIN_63 -to F_A[11] set_location_assignment PIN_61 -to F_A[12] set_location_assignment PIN_60 -to F_A[13] set_location_assignment PIN_59 -to F_A[14] 14 set_location_assignment PIN_58 -to F_A[15] set_location_assignment PIN_86 -to F_A[16] set_location_assignment PIN_74 -to F_A[17] set_location_assignment PIN_72 -to F_A[18] set_location_assignment PIN_69 -to F_A[19] set_location_assignment PIN_87 -to F_ALSB set_location_assignment PIN_102 -to F_A[0] set_location_assignment PIN_70 -to F_NWE set_location_assignment PIN_101 -to F_NCE set_location_assignment PIN_99 -to F_NOE #USB对应的引脚 set_location_assignment PIN_127 -to USB_DB[0] set_location_assignment PIN_118 -to USB_DB[1] set_location_assignment PIN_133 -to USB_DB[2] set_location_assignment PIN_128 -to USB_DB[3] set_location_assignment PIN_135 -to USB_DB[4] set_location_assignment PIN_134 -to USB_DB[5] set_location_assignment PIN_138 -to USB_DB[6] set_location_assignment PIN_137 -to USB_DB[7] set_location_assignment PIN_115 -to USB_A0 set_location_assignment PIN_117 -to USB_WR set_location_assignment PIN_132 -to USB_NINT set_location_assignment PIN_116 -to USB_RD #网口对应的引脚 set_location_assignment PIN_129 -to LAN_NINT set_location_assignment PIN_130 -to LAN_NWOL set_location_assignment PIN_104 -to LAN_MOSI set_location_assignment PIN_103 -to LAN_MISO set_location_assignment PIN_105 -to LAN_SCK set_location_assignment PIN_106 -to LAN_CS #VGA对应的引脚 set_location_assignment PIN_145 -to VGA_G set_location_assignment PIN_144 -to VGA_B 15 set_location_assignment PIN_142 -to VGA_R set_location_assignment PIN_146 -to VGA_HS set_location_assignment PIN_147 -to VGA_VS #液晶屏对应的引脚 set_location_assignment PIN_8 -to LCD_CS set_location_assignment PIN_12 -to LCD_A0 set_location_assignment PIN_11 -to LCD_SCL set_location_assignment PIN_14 -to LCD_SI #LED对应的引脚 set_location_assignment PIN_47 -to LED[0] set_location_assignment PIN_48 -to LED[1] set_location_assignment PIN_56 -to LED[2] set_location_assignment PIN_57 -to LED[3] #按键对应的引脚 set_location_assignment PIN_6 -to KEY_OK set_location_assignment PIN_3 -to KEY_UP set_location_assignment PIN_5 -to KEY_DOWN set_location_assignment PIN_4 -to KEY_LEFT set_location_assignment PIN_10 -to KEY_RIGHT #串口对应的引脚 set_location_assignment PIN_131 -to RXD set_location_assignment PIN_149 -to TXD #24LC04(EEPROM )对应的引脚 set_location_assignment PIN_114 -to I2C_SDA set_location_assignment PIN_113 -to I2C_SCL #PS2对应的引脚 set_location_assignment PIN_139 -to PS2_DAT set_location_assignment PIN_141 -to PS2_CLK #DS1302(实时时钟 ) 对应的引脚 set_location_assignment PIN_108 -to RTC_SCLK set_location_assignment PIN_112 -to RTC_nRST set_location_assignment PIN_110 -to RTC_DATA #蜂鸣器对应的引脚 黑金动力社区 Http://www.heijin.org 16 set_location_assignment PIN_143 -to BUZZER #数码管对应的引脚 set_location_assignment PIN_37 -to DIG[0] set_location_assignment PIN_39 -to DIG[1] set_location_assignment PIN_40 -to DIG[2] set_location_assignment PIN_41 -to DIG[3] set_location_assignment PIN_43 -to DIG[4] set_location_assignment PIN_44 -to DIG[5] set_location_assignment PIN_45 -to DIG[6] set_location_assignment PIN_46 -to DIG[7] set_location_assignment PIN_15 -to SEL[5] set_location_assignment PIN_30 -to SEL[4] set_location_assignment PIN_31 -to SEL[3] set_location_assignment PIN_33 -to SEL[2] set_location_assignment PIN_34 -to SEL[1] set_location_assignment PIN_35 -to SEL[0] Black Gold 黑金动力 II 用户手 修订历史 目录 内容介绍 :本手册包括以下部分 第一 , 主 第二部分 , 开关 , 按键及数码管 第三部分 , VGA 接口 Chapter 1 本手册中描述了 ” 黑金动力 ” 系列开发板的设计原理和使用方 , 作为发板 这套开发板要是向 FPGA 的初级 , 中级开发人员 , 或者对 FPGA 感兴趣的爱好 , 偏向个人用户 . 这套发采用核心板与扩展板分离的式 , 简单实用 , 扩展性好 , 特别适 合爱快速入门和开发人员的产品开发验证 , 也适合更深入的 IC 前端设计 . 在 同时 , 这套开发板也提供了一个 SOPC 平台 , 可以实嵌入的软核 , NIOSII,Open RISC 等 , 为入式电子产 主要元器件介绍 ●Altera Cyclone Ⅱ系列 FPGA 核心板配置的 FPGA 芯片是 Cyclone Ⅱ系列的 EP2C8Q208C 更详细可到 :http://www.altera.com.cn/literature/lit-cyc2.jsp下载官方手册 ●64Mbit 的 SDRAM 核心板同时配备了高达 64Mbit 的 SDRAM, 对于运行 NIOS 的软提了有力的保障 , 款芯片的时 钟频率有 143MHz, 实验证明 ,NIOS Ⅱ可以稳定地运 ●16Mbit 核心板还配备了 16Mbit 的配置芯片 , 不仅可以储存配置信息 , ●20MHz 20M 的有源晶振为整个系统供了时 ●ENC28J60网口芯片 实现开发板与以太网之间 ●USB 2.0 采用应用广泛 , 性能稳定的 CH376芯片 , 实现了开发板 USB 接口展 , 便与计算 ●板载 128*64 采用 ST7565P 控制芯片 , 内置 DC/DC电路 , 可以通过串行 , 并行进行通信 . ●实时时钟芯片 (RTC) 配置 DS1302芯片 , 增加了主电源 /后背电源双电源引脚,同时提了对后背电进行涓 ●EEPROM 配置 24LC04芯片 ,24LC04是 512*8bit的 EEPROM, 支 ●PS/2鼠标 , 键盘接口 标准的鼠标 , 键盘接口 , 支持 3.3V 和 5V 设备 , 可以 用来 ●9针 RS-232串口 实现与计算机的数据通信 , 辅 ●VGA 接口 标准 VGA 接口 , 可直接与显示器连接 , 用于验证 VGA 时序 . ●5个独立按键 可以与液晶配合 , 实现完的人 开发板示意图 核心板 扩展板 - Chapter 2 开关 , 按 按键在绝大数电电气设备中都存在身影 , 可以说 , 如果说显示屏人与机器之 间沟通窗户的话 , 按键就沟通的 , 通过按键 , 可方便快捷地对机器进行操作 控制 . 在黑金开发 , 我们设置了 5个按键 , 分别 电源开关 电源接口及开关位于核心板 其中 F1为限流 1.1A 的 F110保险管 , 电源的保护上 按键 核心板上的复位电路 该复位电路可以实现对开发板的初始化作用 , 防止程序 扩展板上的按键 扩展板上搭配有 5个按键 , 可以满足大多数场合的设要 , 采用 按键开关管脚映射表 LEDs 在核心板上设置了 4个 LED, 可以 LED 管脚映射表 数码管 在扩展板上并设有 6位独立共阳数码管 , 实验证明数码管在诸多设计开发中了 不可代 该电路图为第一位数码管的电路 , 其他的电路与之类似 . 其中 , 每个数码管都通过 9012三管放大电 数码管管脚映射表 Chapter 3 点阵型液晶 在扩展板的右方括了一块 128*64像素的显示 , 带有少见的白色背光 . 常见的 LCD 模块有 LCM(玻 ), 背光 ,PCB 板 , 三种之中 LCM(玻 ) 模块必可少 , 有背 , 有无 PCB 用户可以根据需要自行择 . 点阵的 LCD 模按驱动控制器的集成方式分成 种 :COB和 COG,COG 将驱动控制芯片集成到了玻璃里面 , 用户只需在电路板上上无 法集成的电容即可实现对 LCD 的控制 ; 而 COB 则需要驱动芯片焊接在 LCD 模块后 黑金开发上提的 LCD 使用的是 COG 液晶 , 它将驱控制 IC 集成了 LCM 上 , 这 就省去了 PCB 底板 , 节省了很大的空间 . 该 LCD 的驱动片 ST7565P , 支持三接口方 式 , LCD 的原理图 LCD 的管 LCD 参数 注意 :该 LCD 的显存存在 8(page)*8+1行 , 即 65行 ,s0-s131列 , 即 132 , 与标准的 128*64液晶有差 , 该 LCD 的最一行 (page8的 D0) 时 ,s129,s130,s131;ADC 为反向时 ,s0,s1,s2) 不能显示的 , 而显存数据与 LCD 上的 点一 显示屏上的每个点都对应控制器片内显示缓存 RAM 中的一位 , 显示上的 64*128个点别对应显示 RAM 的 8个 Page, 每个 Page 有 128 Byte的 用户如果要点亮 LCD 屏幕上的某一个 , 实际上就是对该点所对应显示 RAM 区 中的某一个位进置 1操作 ; 所以就要确定点所在的行地址 , 列地址 . 由上图可以出 , 液晶的行地址实际上就是 Page 的信息 , 每个 Page 应有 8行 ; 而列址表示该点的横坐标 , 屏上从左到右排列 ,Page 中的一个 Byte 对的是一列 (8 , 即 8个 ), 一共 128列 . 可以 在 LCD 上显字符 , 不管是中文还是英文 , 都需要字库的支持 , 在有些 LCD 模块中 , 已 经将库烧写片当中 , 这样的字库优点也有缺点 . 优点是操作简单 , 而缺点是 , 显示效果不好 , 扩展性差 , 而性价比不高 . 黑金开发板所选用 Chapter 4 VGA接口 VGA(Video Graphics Array) 接口 , 也叫 D-Sub 接口 , 显示卡上输出模拟信号接口 , 显卡所处理的息最终都要输出到显示屏上显示 , 显卡的输出接口就是电脑显示屏之 桥梁 , 它负责向显示器输出相应的图像信号 .CRT 示因为设计制造上的原因 , 能 受模拟信号 , 这就需要卡能够输入模拟信 , 于是就了 VGA 接口 . 虽然液晶显示器 可以直接接接收字信号 , 但是为兼容性 , 大多数液晶显示器也配备了 VGA 口模块 . VGA 是 IBM 在 1987年随 PS /2机一起推出的一种视频传输标准 , 具分率高 , 显 示速率快 , 颜色丰富等优点 , 在彩色显示器领域得到了广泛的应用 . 目前 VGA 技术的应 还主要基亍 VGA 显示计算机 , 笔记本等设 . 虽然说 VGA 的标准对于现在的个人计算机市场十分过时 , 但是 VGA 仍是所有制造 商所持的最低标准 , 例如不管所有商显卡 , 在不安装己驱动的情况 VGA 接口是一种 D 型接口 (D-SUB), 面共有 15个针孔 , 分成三排 , 每排五个 , 如图 引脚 1,2,3分别为红绿蓝三基色模拟电压 , 为 0~0.714V peak-peak(峰 -峰值) ,0V 代表 无色 ,0.714V 代表满色 . 一些非标准显示器使用的是 1Vpp 的满色电平 .HSYNC 与 VSYNC 分为行数据同步与帧数 黑金开发板的扩展板上配备了一个 VGA 接口 , 其电路为 VGA 管脚映射表 VGA 的时序介绍 VGA 的时序如图所示 , 它分为数据时序 行数据时序为显示一行数据的时序 , 由上图可看出 , 显示一行据要处理两件 事 为 :e=a+b+c+d,低电平时为 a. 其中 a,b,c,d 均为时间信号 , 些号根据需要显示的 辨率的不同而不同 . 第 , 产显的数据 (DATA)信号 , 此信号为模拟信号 , 当在显示 有效数据 (Active Video)内 ,DATA 信号为 0~0.714Vpp的模 帧数据时序与行数据时序类似 , 是显示一个屏数据的序 . 只是这里的基本单位 为数据 , 而数据里 下表列出常用分辨 Chapter 5 PS/2 鼠 PS/2 原是 “Personal System 2” 的意思, “ 个人系 2” ,是 IBM 公司在上个世纪 80代推出的一种个人电脑。 前完全开放的 PC 准让 IBM 觉得利益受损失。 所以 IBM 设计了 PS/2这种电,目的是重新定义 PC 标,不再采用开放标准的方式。这种 电脑上 IBM 使新型 MCA 总线,新的 OS/2操作系统。 PS/2电脑上用的键盘鼠标 PS/2是在较早电脑上常见的接口之一, 用于鼠标、 键盘等设备。 一般情, PS/2口的鼠 PS/2接口输入装置接口,而不是传输接口。所以 PS2口本没有传输速的概 念,只有扫速率。 Windows 环下, PS/2鼠标的采样率默认为 60 /秒, USB 鼠 标的采样为 120次 /秒。较高的采样率理 PS/2接口设备不支持热插拔,强行带插拔有可 PS/2可以与 USB 接口互转,即 PS/2接口设备可以转成 USB , USB 口设备 早期,在 PS/2键盘中,包含了一个嵌入式的微控制器 (如 InDl , 8048系列 ) ,以用 来执行项的工作并减少整个系统工作中的负担。控制器所要作的工作就是监所 有的按键,以及当按键被按 在黑金开发板的扩展板上设置了一个 PS/2接口 , 采用标准 6针 mini-DIN 接口 , 其电 路如图所示 PS/2管脚映射表 PS/2接口示意图 PS/2接口通过两根信号线与计算机进行通信 ,PS/2总包时钟和数据线 . 数据信 号使用 11 bit的串行信号 . 鼠标与 读取基本的键盘数据 , 不需要 FPGA 发送任何数据 , 只需读取键发回来的数 每次键盘发送 11个 clock 信号,我们需要做的事情就是在时钟的下 Chapter 6 RS-232 串行接口 RS-232-C 是美国电子工业协会 EIA (Electronic Industry Association )定一种串 行物理接口标准。 RS 是英文 “ 推荐标准 ” 的缩写, 232标识号, C 表示修改次数。 RS-232-C 总标准设有 25条信号 在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实, 如一条发线、 RS-232-C 标准规定的数据传输速率为每秒 50、 75、 100、 150、 300、 600、 1200、 2400、 4800、 9600、 19200波特。 黑金开发板为用户设置的是采用 DB9口标准的 其电路如图 UART 管 PS:电路使用了 MAX232芯片来对串口进行控制 , MAX232芯片是美公司专门为电脑的 RS-232标准串口设计 MAX232的详 http://focus.ti.com.cn/cn/docs/prod/folders/print/max232.html?DCMP=CN_HPA_ BSE&HQS=Interf-484&247SEM查看 Chapter 7 USB接口及芯片 USB ,是英 Universal Serial BUS(通用串行总)的缩写,而其中文简称为 “ 通串 线,是一个外部总线标准,用规范电脑与外部备的连接和通讯。应用在 PC 域 的接口技术。 USB 接口支持设的即插即用和热插拔功能,连接灵活,独立供电等优 点,可以连接鼠标、键盘、机、扫描仪、摄像头、闪存盘、 MP3机、手机、数码 相、移动硬盘、置光软驱、 USB 网卡、 ADSL Modem、 Cable Modem等,几 USB 接口可用于连接多达 127个外设,如鼠标、调制解调器和键等。 USB 自从 1996年推出后,已成功口和并口,并成为今个人电脑 黑金开发板为用户提供了两个 USB 接口 , 分别为扁头和方头 , 便用户的 USB 管脚映射表 该 USB 由南京沁恒的 CH376芯片控制 . CH376 是文件管理控制芯片, 单片机系统读 U 盘 CH376 支 USB 设备方式和 USB 主方式,并且内置了 USB 通讯协议的基本固件,内 置了处 Mass-Storage 量存储设备的专用讯协议的固件,置了 SD 卡通讯接口 固件,内置了 FAT16和 FAT32 以及 FAT12 文件系统的管理固件,持常用的 USB 存储 备(括 U 盘 /USB 硬盘 /USB 闪存盘 /USB 读卡器) SD 卡(包括 CH376 持三种通讯接口:8 位并口、 SPI 接口或者异步口, 单片机 /DSP/MCU/MPU 等 控制器可以通过上述任何一种通控制 CH376 芯片,存取 U 盘者 SD 卡中 CH376 的 USB 设备方式与 CH372 片完全兼容, CH376 的 USB 主机方 下图为 CH376的应用框图 CH376芯片的 考 :http://www.winchiphead.com/download/CH376/CH376DS1.PDF Chapter 8 网络在日常生中是必不可少的一样工具 , 通过网络我们可更轻易地触摸外 的世界 , 因在黑开发板上我们为用户提供一个 LAN 接口 , 并采用 ENC28J60芯片控 制 , 使用在学习 TCP/IP协议及其他网络 ENC28J60是 Microchip Technology(美国微芯科技公司 ) 的 28脚独以太网 ? IEEE 802.3 容的以 ? 集成 MAC 和 10 BASE-T PHY ? 接收器和冲 ? 支持一个带自动极性检测和校正的 10BASE-T 端口 ? 支持全工和半双工模式 ? 可编程在发生冲突时自动重发 ? 可编程充和 CRC 生成 ? 可编程自动拒绝错误数据包 ? ENC28J60在黑金开 : LAN 引脚分配表 Chapter 9 RTC时钟芯片 DS1302 是国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟路,它 可以对年、月、日、周、、分、秒迕行计时,具有年补偿功能 .DS1302是 DS1202的升品,与 DS1202兼容,但增加了主源 /背电源双电引脚,同时提供了对 黑金开发板上 RTC RTC 引脚分配表 附录 A 引脚分配脚本文件 1. 复位按键 2. 扩展按钮 3.LED 4. 数码管 5.LCD 6.SDRAM SDRAM.tcl ####################################################### set_location_assignment PIN_175 -to S_DB[0] set_location_assignment PIN_173 -to S_DB[1] set_location_assignment PIN_171 -to S_DB[2] set_location_assignment PIN_170 -to S_DB[3] set_location_assignment PIN_169 -to S_DB[4] set_location_assignment PIN_168 -to S_DB[5] set_location_assignment PIN_165 -to S_DB[6] set_location_assignment PIN_164 -to S_DB[7] set_location_assignment PIN_205 -to S_DB[8] set_location_assignment PIN_203 -to S_DB[9] set_location_assignment PIN_201 -to S_DB[10] set_location_assignment PIN_200 -to S_DB[11] set_location_assignment PIN_199 -to S_DB[12] set_location_assignment PIN_198 -to S_DB[13] set_location_assignment PIN_197 -to S_DB[14] set_location_assignment PIN_195 -to S_DB[15] set_location_assignment PIN_179 -to S_A[0] set_location_assignment PIN_180 -to S_A[1] set_location_assignment PIN_181 -to S_A[2] set_location_assignment PIN_182 -to S_A[3] set_location_assignment PIN_185 -to S_A[4] set_location_assignment PIN_187 -to S_A[5] set_location_assignment PIN_188 -to S_A[6] set_location_assignment PIN_189 -to S_A[7] set_location_assignment PIN_191 -to S_A[8] set_location_assignment PIN_192 -to S_A[9] set_location_assignment PIN_176 -to S_A[10] set_location_assignment PIN_193 -to S_A[11] set_location_assignment PIN_207 -to S_CLK set_location_assignment PIN_151 -to S_BA[0] set_location_assignment PIN_150 -to S_BA[1] 7.USB 8.LAN 9.VGA 10.UART 11.24LC04 12.PS/2 13.DS1302 联 北联 Abstract 摘 要:联华众科 FPGA 开板 FA161核器件为 Altera Cyclone系列 FPGA EP1C6, FA161板载有 SDRAM , SRAM , FLASH 便制作各种应用,开所带资料中包括了 位机与开发 USB 通信,上位与开发板太网通信,上位机与开发板串口通信例 程。 FA161板载有 USB 1.1, USB 2.0(CY7C68013A)接口,以太网接口 (RTL8019AS)。 FA161上以进行 HDL 程序开发,可以进行 nios ii程开发,可以结合 MATLAB 制作 DSP Builder应用。 FA161上可以行 uClinux 和 Micro C/OS-II实时操作统。 FA161资料中包括了视频教程以方便 1 概述 4 如开用 PC 不带 25针并口,请一定要选 USB 下载线, 25 如开用 PC 不带 9针串口,建议选购 USB 转串口线, 9针 1.1 硬件组成 联众科 FPGA 开发板 FA161核心器件 Altera CYCLONE系列的 EP1C6, FA161外观如 下图 FA161的 PCB 为 4层板,支持以太网接口,以太芯片为 RTL8019AS ,开发板光盘中包 含基于 RTL8019AS , FPGA HDL语言和 Nios II的 ARP , ICMP , UDP 等协议的源程 序。联众科 FPGA 发板 FA161具有丰富的板 ?心器件 FPGA 芯片为 Altera EP1C6Q240, EP1C6的 IO 3组 DATA 总线, ADDR 总 线和 GPIO 总线以插座的形式引出,以供外部扩展时 ?板 载 存 储 器 包 括 SDRAM MT48LC4M32存 储 空 间 为 16M Bytes, SRAM IS61LV25616空间为 512k Bytes, FLASH AM29LV320存储空间为 4M Bytes。 ?USB 接口包括 USB1.1和 USB2.0, USB1.1的 USB 信号经位后直接连接到 FPGA 的 IO 。 USB2.0的 USB 信号经 USB 接口芯片 CY7C68013A 后连到 FPGA ,开发板资料 里包括了 CY7C68013A 例程,如 driver , firmware , fpga 程序,运行 ?太网接口芯为 RTL8019AS ,由 FPGA 完成 RTL8019AS 的寄存器配置,发 光板包括了自行制作的 RTL8019AS 元件,在 SOPC Builder中可以加到 Nios II处 器里,这样方便 Nios II上开发网 ?他口包括扩展总线 DATA , ADDR , GPIO 接口, PS2鼠标 口, RS232串, JTAG/CONFIG下载接口。其中 JTAG 和 CONFIG 下载接口为 5*2插座方式,需 ByteBlaster II下载线转接到 PC 并口,经 USB Blaster连接到 PC USB 口。开发板随板有 ByteBlaster II载线,用以连接开发下载接口到 PC 并 口,完成编程 ?示设包括 LCD1602显示屏, 6位 7段红色数码管, 8位绿色 LED 发光二极管。 ?音输出设备包括一个蜂 ?入设备包括 4*4键 ?复 位 电 路 由 个 复 位 按 键 和 一 片 复 位 芯 片 成 , 复 芯 片 为 MAX811R , MAX811R 输出电平效的位脉冲,脉冲宽度为 140ms 。 MAX811R 的复位门限 (Reset Threshold)为 2.63V ,输出的复信号提供给 FPGA 芯片, FA161上 EP1C6核心工作 ?源部分包括 LM1085-5.0, AS2830-3.3和 AS2830-1.5各 1片, LM1085-5.0提 5.0V 直流电源, AS2830-3.3提供 3.3V 流电源作为 FPGA IO电源, AS2830-1.5提供 1.5V 直电源作为 FPGA 芯片 EP1C6的核心电 1.2 配件清单 FA161包含的标配配件如下图所示。 FA161及标配配件清单如下表。 编 联众科 FPGA II 3 USB 线 1 USB Device连接线,用于 USB 与 PC 通信 4 串口 1 9针串口线,用于与 PC 通 5 直流电源 1 9V 直流电源,作为开发板电源 包括资料,软件和视 FA161选购配件清单如下表。 配件 名称 说明 USB 下载线 PC 上没有 25针并时,可以用 USB USB 转 串 口 线 PC 上没有串口,可以用 USB 转串口线 有源晶振 在发板上晶振频率不能满足要求时,可以外接 合适 PCI 并 口 扩 展卡 用台 PC ,安装在 PCI 插槽内,扩出 1个 25针并口,可 PCI 串 口 扩 展卡 用于台式 PC ,安装在 PCI 插槽内,扩展 PCMCIA 并 口扩展卡 用于便携式 PC , 插槽内,扩展出 1 个 25 针 PCMCIA 串 口扩展卡 用 25芯并口延 长线 在口下载线长度不够长 1.3 功能展示 开环境软包括 Quartus II, ModeSim 和 Visual Studio.NET, Visual Studio.NET用于程 序录入和编辑以及制作上位机 使命令 nios2-flash-programmer , uClinux 下到开发板的 FLASH 中,再次上电时 显示下 uClinux 启动 上 在 Nios II IDE中可以使用 C/C++开 FPGA 应用程序,下图为水灯的 C 程 DSP Builder结合 MATLAB 可以开发数字信号处理 CY7C68013A USB 2.0与上 网接口 RTL8019AS ,下图为从 PC 上 ping 数 上机通演示:PC 上位机通过串口控制 LCD 屏的显示内容, PC 上位机发送的内容实 时显示在 LCD 上,如下图 1.4 开发例程 FA161开发板包括非常丰富的例程,分为基础例程,中例程,高级例程, ModelSim 程和 Visual Studio.NET上位机 基例是指 HDL 例程,包括 Verilog 和 VHDL 两个 中 高例程括 Nios II例程, RTOS (uClinux , uC/OS-II)例程, DSP Builder ModelSim 例程如下图所示。 Visual Studio.NET例程如下图所示。 2 上位机软件 上机软件用于和开发板通信,通信方式括串口, USB 3 光盘目录 开板附4DVDROM,名称为[联华众科FA161],Altera Quartus II,联华众FPGA视 频教程1和华众科FPGA视频教程2。[联众科FA161]目录结构如下图 DVDROM[联华众科FA161]目录说明如下表。 名称 描述 01-用户手册 开发板 FA161用户使用手册 02-工具软件 包括 03-源码文件 配套程序源码 04-电原理图 电原理图 05-数据手册 开发板上芯片的数据手册 06-参考资料 一些对学 07-视频教程 指导 4 购买及售后技术支持 购及售后技术支持方 Keywords 关 键 词 :开 发 板 , FPGA 开 发 板 , 联 华 众 科 FA161, Quartus II, Visual Studio.NET , C#, VHDL , Verilog , EP1C6,华众科,北京联华众科科技FPGA黑金开发板使用指南
FPGA黑金开发板用户手册
FPGA开发板