实习报告.docx
- 文档编号:8921681
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:366.93KB
实习报告.docx
《实习报告.docx》由会员分享,可在线阅读,更多相关《实习报告.docx(16页珍藏版)》请在冰豆网上搜索。
实习报告
西安工业大学
生产实习报告
生产实习单位至芯科技尚观科技
生产实习时间2015年5月4日至
2015年5月15日止
指导教师(单位)赵良成
指导教师(学校)张宁超
学生姓名王振东
学生学号120410113
一﹑生产实习目的
生产实习是电子信息工程专业以及其他任何专业十分重要的实践性教学环节,是培养学生实际动手能力和分析问题解决问题能力、理论与实践相结合的基本训练,同时也是学生毕业设计选题及设计工作原始资料的来源,为学生进行毕业设计打下扎实基础。
认真抓好生产实习的教学工作,提高生产实习教学质量,是提高学生业务素质和思想素质的重要环节。
二、实习单位简介
本次生产实习分别有幸参加了北京至芯科技西安分部和北京尚观科技西安分部提供的生产实习机会与内容,以下为公司和业务简介。
北京至芯科技是一家专注于中国高新技术培训和传播的高科技服务机构,致力于FPGA,DSP,低功耗等电子类前沿技术的设计研究,应用和推广。
公司拥有数十名在相关领域有着丰富开发经验和管理经验的专家,以及包括在xilinx,Altera,清华,北大,中科院等知名机构任职的专家顾问团队,服务于包括世界500强在内的知名公司及国内各大军工集团所属研究所、高等院校。
至芯FPGA创新中心作为公司旗下的培训专有品牌旨在成为国内最受欢迎的FPGA培训中心,为企业和个人提供全方位的技术服务,助力中国电子产业快速发展。
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
尚观科技有限公司是高新技术企业,是多名技术高手发起的以高技术培训课程作为研发对象的公司,从公司创立至今,尚观体内一直流动着纯技术的血液,尚观的理念是“技术为王”。
尚观科技长期开发高端UNIX/Linux、嵌入式开发、Linux集群、Linux内核、POSIX开发、Oracle集群等课程及相关企业解决方案,并且将其当作企业命脉。
尚观认为衡量培训价值的唯一标准就是学员的就业薪水,而保证就业薪水的唯一方式就是通过高质量的课程。
尚观科技在国内IT行业排名前三的城市-北京、上海、深圳建立了全资直属培训及就业中心,而这三个城市的IT就业薪水也是最高的,我们率先为学员将出路找好,才开始培训学员,学员的就业薪水就是衡量我们工作价值的标准,学员就业好,我们的口碑才好。
经过长期的努力,凭借高品质的职业IT训练和毕业学员的良好口碑,公司已经成为51Job人力资源合作伙伴,CSDN人力资源合作伙伴。
Linux[2]操作系统是UNIX操作系统的一种克隆系统,它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。
以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
它主要用于基于Intelx86系列CPU的计算机上。
这个系统是由全世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。
Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。
它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用WindowsNT一样,允许我们使用窗口、图标和菜单对系统进行操作。
三﹑实习安排
第一周参加至芯科技FPGA简单编程及开发板下载实现所需要的器件逻辑功能,第二周参加尚观科技用嵌入式linux操作系统结合ARM11开发板,实现远程视频监控和报警功能。
四﹑实习内容
(一﹑至芯科技)
第一天上午,主要了解了至芯科技的简介及其公司业务,其次带领我们了解FPGA的发展历程及其未来发展前景,以及就业行情及要求。
下午则由老师带领下,安装Quartus软件以及如何使用该软件,掌握FPGA设计从RTL设计、功能仿真、综合等,直到在FPGA开发板上进行下载验证的设计流程;然后让我们了解了让我们了解了FPGA工艺结构、特点及FPGA芯片选型策略、原则;使学员掌握FPGA设计流程,对FPGA设计有一个宏观认识。
接着老师就用了一个简单的点亮LED灯的例子让我们学习了VerilogHDL的基本语法Modelsim、Debussy仿真调试工具、Synplifypro综合工具及FPGA开发系统Quartus的使用方法及技巧,且在Quartus中集成调用Modelsim、Synplify等工具的方法;完成RTL设计的基础上,完整进行FPGA设计所有流程,掌握FPGA开发板下载、调试的方法和技巧。
具体操作如下:
建立新的工程项目,打开QuartusII软件,进入集成开发环境,点击FileNewprojectwizard建立一个工程项目,输入工作目录和项目名称如下图一所示。
建立文本编辑文件:
在软件主窗口单击file菜单后,单击new选项,选择VHDL选项,单击OK进行文本编辑输入源程序,完成文本编辑后,点击保存,注意保存时的文件名要与实体名一致,否则编译时会出错。
编译工程项目:
在QuartusII主页面下,选择ProcessingStartCompilation或点击工具栏上的按钮启动编译,直到出现“FullCompilationReport”对话框,点击OK即可。
对编辑的文本文件进行波形仿真:
在软件主窗口右击fi工程名后,单击seting选项,选择simulation。
选好语言和文件后,单机tools,runsimulationeda即可。
当然不同的芯片管脚定义也不相同,要根据要求定义。
定义管脚与如下:
第二天,老师则主要带领通过一些简单的例子让我们多次练习达到熟练掌握Quartus的使用方法及技巧,学会编写程序语句和调试语句,并且还能通过编译检查出其中的错误,并修改,最终集成调用Modelsim仿真,并通过波形能够观察其逻辑是否正确,以达到二次检错的目的,这样才能下载到板子完成工作要求。
第三天,在前面两天的基础之上,当我们熟悉掌握了该软件及其附属功能后,老师开始带领我们由易到难地编写一些逻辑要求,比如点亮LED流水灯,先仅仅让我们编写简单点亮流水灯,老师给我们讲解了LED灯的点亮原理。
我们思考该如何编写其中的逻辑原理,才能正确的点亮流水灯。
我们通过思考明白了其中电平高低导通原理,深刻地体会到其中及其严明的逻辑性,体会到了趣味性。
最终在老师的讲解和带领下完成流水灯点亮,当程序顺利下载到板子上我们都很兴奋。
第四天,老师让我们在前一个例子的前提下实现花样流水灯,比如左或右循环点亮流水灯,其中用到了计数器,以达到延迟作用。
老师首先示范性的带领我们编写了左循环延迟0.5S点亮流水灯程序,并细心的讲解了所需语句的功能以及之间如何钳接,讲述了寄存器语句与线性语句的区别,理解了计数器的计数原理,明白了virilogvhdl语言编写该程序其中的循环语句以及逻辑语句,这很大程度上提升了我的逻辑思维能力。
最终经过编写调试,程序正确后,下载到板子果然实现延时左循环流水灯。
然后老师让我们自己练习编程争取自己动手完成该实验,经过与组员的协调合作,多次修改调试仿真后顺利完成了实验。
第五天,老师又在前面实验的基础上增加了更大的难度,用计数器计数,动静态数码管显示数字,一如既往,老师耐心细心的讲解了数码管的显示原理。
了解原理后老师引导我们编写了原理程序和测试程序,老师提点了很多小技巧和知识点,让我们更好的理解了其中的逻辑性,经过很长的编程,测试仿真后通过波形分析得出达到了预期效果,下载到板子后实现了动态数码管显示实验。
下午要做实习成果检测试验,老师布置了键控流水灯计数点亮题目,让我们独立思考后,独立编程仿真完成实验,再和组员探讨后,在前面实验的基础之上,组合编程,编译检测无误后仿真,通过波形基本无误后,下载到板子观察,顺利完成实验要求,并且很完美,老师检验并提问了其中语句知识和原理,我们也回答的完美。
最终得到了很好的成绩。
很感谢老师!
(二﹑尚观科技)
第一天,尚观科技就直接展示了我们要完成的实习成果,活生生地演示了,远程视频监控,让我们很震撼。
其次他们就介绍了公司成长和理念,以及公司业务。
其次让我们了解了他们嵌入式开发的主要内容,还了解了Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991年的[Linux桌面]10月5日(这是第一次正式向外公布的时间)。
以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长,明白了世界上三大主流操作系统Unix﹑Linux﹑Windows,之间的渊源和区别。
宏观上拓宽了我们的知识层面。
下午老师教我们如何安装Linux操作系统及其虚拟机Ubuntu,以及介绍了Arm11板子的功能及用途。
然后教我们如何运行虚拟机ubuntu,以及在ubuntu中编写一些简单指令,比如:
嵌入式ARMLinux编程1.创建一个C语言源文件vihello.c
2.点击i或者a键进入到插入模式
3.编写C语言程序
4.按退出键退出插入模式输入
:
wq保存退出
:
q不保存退出
:
q!
不保存强制退出
5.在终端下使用ls查看C语言文件
6.gcchello.c
7.执行编译好的程序.
嵌入式ARMUbuntu基本操作命令
1.创建文件
touch1.txt
2.删除普通文件
rm1.txt
3.创建文件夹
mkdirwork
4.进入某个文件夹
cdwork
5.退回到上级文件夹
cd..
6.删除一个文件夹
rm-rfwork
7.拷贝cp源文件目的路径下面
8.拷贝目录cp源文件夹目的路径下面-r
9.移动mv源文件制定路径下面
10.更改文件的名字
mv源文件名目的文件名
经过对以上指令和操作的练习和记忆我们基本掌握了在虚拟机ubuntu中的语句操作。
第二天,老师带领我们学习了嵌入式ARMUbuntu网络静态IP配置以及嵌入式ARMUbuntu网络动态IP配置,这样就让虚拟机和板子之间形成一致的网络协议,好为之后的操作做准备,及虚拟机和arm板之间传输数据和指令。
嵌入式ARMTftp服务器的环境搭建,嵌入式ARMTftp服务器的检测,都是为之后,程序移植到ARM板子做准备。
具体操作如下:
嵌入式ARMUbuntu网络静态IP配置命令
1.编辑网络服务配置文件:
sudovi/etc/network/interfaces
2.在网络配置文件中添加内容:
autoeth0
ifaceeth0inetstatic
address192.168.1.200
netmask255.255.255.0
gateway192.168.1.1
3.重启网络服务:
sudo/etc/init.d/networkingrestart
嵌入式ARMUbuntu网络动态IP配置命令
1.在网络配置文件中添加内容:
autoeth0
ifaceeth0inetdhcp
2.重启网络服务:
sudo/etc/init.d/networkingrestart
嵌入式ARMTftp服务器的环境搭建
*tftp服务器是基于IP协议的服务器,必须先配置网络
1.安装tftpd服务器
sudodpkg-itftpd*.deb
2.修改配置文件
vi/etc/default/tftpd-hpa
3.将tftp服务器的配置文件修改为:
#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:
69"
TFTP_OPTIONS="--secure-l-c"
4.创建管理tftp服务器的文件夹
sudomkdir/tftpboot
5.修改文件夹的权限
sudochmod777/tftpboot
6.重启tftp服务器
sudo/etc/init.d/tftpd-hparestart
嵌入式ARMTftp服务器的检测
1.建立tftp服务器的链接
tftp192.168.1.200
2.上传文件到目的IP的/tftpboot下
>put1.txt
3.从目的IP的/tftpboot下下载文件
>get2.txt
4.退出tftp服务器
>q
嵌入式ARMFtp服务器的环境搭建
1.下载并安装服务器:
sudodpkg-infs*.deb
2.打开配置文件:
sudovi/etc/exports
3.末尾添加如下内容:
/source/rootfs*(rw,sync,no_subtree_check)
4.建立制定的服务目录:
sudomkdir/source
sudomkdir/source/rootfs
sudochmod777/source
sudochmod777/source/rootfs
5.重启网络服务:
sudo/etc/init.d/nfs-kernel-serverrestart
嵌入式ARMFtp服务器的测试
1.在家目录下创建nfsdir
Cd
mkdirnfsdir
2.使用NFS服务(客户端挂载网盘):
sudomount-tnfs192.168.1.200:
/source/rootfs./nfsdir
3.观察发现家目录下的nfsdir里面的内容就是192.168.1.200IP地址下的/source/rootfs里面的内容
4.卸载网盘:
sudoumount/source/rootfs
第三天则是在前一天建立在tftp服务器、nfs服务器、IP配置完好的前提下,进行ARMLinux操作系统的移植准备和移植操作,然后再终端设备SD卡的协助下,将SD卡插入电脑中等待读卡器灯长亮,将u-boot烧写到SD卡中,将开发板设置为SD卡启动方式,插入SD卡启动开发板,并设置环境变量参数,烧写u-boot到板子内部存储器nandflash中,设置u-boot的环境变量参数,下载内核并挂载文件系统,重启开发板进入文件系统,重启后进入u-boot,敲入相关指令即完成了SD启动ARM板以及无需sd卡也能启动开发板。
这一天任务相当繁重。
操作如下:
嵌入式ARMLinux操作系统的移植准备
1.拷贝zImage、u-boot-nand.bin到/tftpboot下
2.拷贝rootfs-uplooking-qt.tar.gz到/source下
3.解压rootfs-uplooking-qt.tar.gz
tarzxvfrootfs-uplooking-qt.tar.gz
嵌入式ARMLinux操作系统QT的移植
1.将SD卡插入电脑中等待读卡器灯长亮
2.将u-boot烧写到SD卡中
./write_sd/dev/sdbu-boot-movi.bin
3.将开发板设置为SD卡启动方式
4.插入SD卡启动开发板,并设置环境变量参数
setenvipaddr192.168.1.100
setenvserverip192.168.1.200
setenvgatewayip192.168.1.1
setenvbootargs"root=nfsnfsroot=192.168.1.200:
/source/rootfsinit=/linuxrcconsole=ttySAC0,115200"
saveenv
5.烧写u-boot到nandflash中
tftp50008000u-boot-nand.bin
nandscrub
nanderase
nandwrite50008000040000
6.将开发板设置为nandflash启动
7.设置u-boot的环境变量参数
setenvserverip192.168.1.200
tftp50008000u-boot-nand.bin
nanderase040000
nandwrite50008000040000
8.下载内核并挂载文件系统
setenvipaddr192.168.1.100
setenvserverip192.168.1.200
setenvgatewayip192.168.1.1
setenvbootargs"root=nfsnfsroot=192.168.1.200:
/source/rootfsinit=/linuxrcconsole=ttySAC0,115200"
tftp50008000zImage
bootm50008000
9.下载内核并启动内核
tftp50008000zImage
nanderase400003c0000
nandwrite50008000400003c0000
10.重启开发板进入文件系统后
./bin/Writerootfs
11.重启后进入u-boot
setenvbootargs"root=/dev/mtdblock2rootfstype=yaffs2console=ttySAC0,115200"
第四天接着之前的工作,开始着手,摄像头与Arm板之间的铅接工作,即就是嵌入式ARMLinux交叉工具编译链的移植,将虚拟机和板子摄像头通过网络协,连接起来,这样摄像头采集的图像以帧的方式,传输给虚拟机,然后动态地显示出来,达到远程监控的目的。
剩余两天实训的目的就是完善这个工程。
操作如下:
1.拷贝arm-none-linux-gnueabi.tar.bz2拷贝到家目录下
2.解压arm-none-linux-gnueabi.tar.bz2
tarjxvfarm-none-linux-gnueabi.tar.bz2
3.打开环境变量配置文件
sudovi/etc/bash.bashrc
4.在末尾添加如下内容
exportPATH=$PATH:
/home/linux/arm-none-linux-gnueabi/bin
5.重启配置文件
source/etc/bash.bashrc
6.工具链的测试
arm-none-linux-gnueabi-gcc-v
7.如果现象如下则表示安装成功
Usingbuilt-inspecs.
Target:
arm-none-linux-gnueabi
Configuredwith:
/scratch/julian/lite-respin/linux/src/gcc-4.3/configure--build=i686-pc-linux-gnu--host=i686-pc-linux-gnu--target=arm-none-linux-gnueabi--enable-threads--disable-libmudflap--disable-libssp--disable-libstdcxx-pch--with-gnu-as--with-gnu-ld--enable-languages=c,c++--enable-shared--enable-symvers=gnu--enable-__cxa_atexit--with-pkgversion='SourceryG++Lite2008q3-72'--with-bugurl=--disable-nls--prefix=/opt/codesourcery--with-sysroot=/opt/codesourcery/arm-none-linux-gnuea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告