第一篇:ARM实习报告感想
通过这次模具设计,本人在多方面都有所提高。通过这次设计,综合运用本专业所学课程的理论和实际知识进行设计,提高学生独立工作能力,巩固与扩充了ARM等课程所学的内容,掌握ARM设计的方法和步骤,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在短短的一个星期中,让我们初步让理性回到感性的重新认识,也让我们初步的认识了这个社会,对于以后做人所应把握的方向也有所启发,体现出团队课程设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
本次实习使我亲身感受了所学知识与实际的应用,理论与实际的相结合,让我们大开眼界,也算是对以前所学知识的一个初审吧!这次生产实习对于我们以后学习、工作也真是受益菲浅。通过这次为期一周的课程设计,在不断的失败和努力中,锻炼了我们的动手能力,培养了团队协作及永不放弃、不屈不挠的精神。并且使我们对ARM的知识得到了进一步的提高,同时也补充了我们对电机控制的相关知识。
这次课程实际仅仅是基于ARM微处理器应用的一个开端,在这期间我们还有很多的不足,比如不能完成引脚的最优连接,不能完成硬件系统和软件程序的自主设置和编写,但我相信通过以后对ARM嵌入式系统的继续学习,自己会得到进一步的提高。我会把这此实习作为我人生的起点,在以后的工作学习中不断要求自己,完善自己,让自己做的更好。
第二篇:arm对讲机报告
《嵌入式实训课》 课程设计报告
设计题目: 基于ARM的网络对讲机
专 业 电子信息科学与技术 班 级 091 学 号 200916022118 学生姓名 大石头
2012年 6 月 10 日
摘要
语音对讲系统是现代智能化服务的一个重要组成部分,它对于提高社会高效率和方便还有安全监控力度提高,在现代社会语音对讲机在小区等一些工程中高效率的提高的人们方便和减轻了很多事情的工作量。本设计首先是用网线使用UDP协议将两个ARM机连接起来,通过麦克风传递给dev/dsp声卡的数据然后通过网线传送到另外一台ARM机的接收端通过dev/dsp声卡播放来实现对讲的功能。由这样的思路来实现对讲机的功能。
目录
一、前言...................................................................................................................4
二、系统的总体设计.................................................................................................4(一)功能描述.....................................................................................................4(二)系统基本功能图..........................................................................................5
三、相关技术综述.....................................................................................................5(一)Linux操作系统...........................................................................................5 1.Linux的历史...........................................................................................5 2.Linux具有以下一些特点:......................................................................6(二)声卡驱动.....................................................................................................7(三)(四)
四、(一)(二)(三)(四)UDP协议.....................................................................................................8 Socket套接字.............................................................................................9 SamSung公司s3c6410微处理器简介...........................................................9 SamSung公司s3c6410微处理器功能特性...................................................11 系统设计器件.............................................................................................11 电源及复位电路........................................................................................12 系统的硬件设计.................................................................................................9 3.电源电路...............................................................................................12 4.复位电路...............................................................................................12(五)系统时钟电路............................................................................................13(六)(七)系统存储器电路........................................................................................14 IIS数字音频电路.....................................................................................15 5.下面是WM9714芯片和音频线路输入的原理图:.....................................16 6.下图是mic座原理图:..........................................................................17 7.下图为MIC输入座的俯视图:................................................................17(八)网卡电路...................................................................................................17
五、系统的软件设计...............................................................................................19(一)总体设计流程图........................................................................................19(二)(三)(四)声卡部分...................................................................................................19 网络连接部分............................................................................................22 总体部分...................................................................................................23
六、系统测试..........................................................................................................24(一)Linux系统移植安装..................................................................................24(二)(三)七、八、九、交叉编译环境搭建.....................................................................................24 声卡的初始化参数.....................................................................................24 参考文献..........................................................................................................24 总结与心得体会...............................................................................................25 致谢.................................................................................................................26
一、前言
对讲机对大家来说一点也不陌生。现在小区和写字楼很多场所的保安人员都佩戴有对讲机。它给我们的日常生活带来了便利。对讲机的英文名称是 two way radio,它是一种双向移动通信工具,在不需要任何网络支持的情况下,就可以通话,没有话费产生,适用于相对固定且频繁通过话的场合。对讲机已经有很长的一段历史了,大部分的对讲机是基于模拟电路的集成芯片技术。功能比较单一,价格也不菲。今天我们设计的对讲机是应用了现在主流处理器arm的技术。
首先,我们在arm开发板烧入了linux系统,在开发的时候无论是系统还是代码,都增加了可移植性。另外便于扩展我们目前没考虑后期需要的模块。比如,pc对各个对讲机的数据监控,lcd显示等等。Arm的开发灵活的特点让这些都变成了可能。另外,从经济方面来看,现在arm芯片的价格相对来说也不高,在市场方面带来价格上的优势。
二、系统的总体设计
(一)功能描述
在6410开发板上写入linux系统后,对dev/dsp声卡进行编写程序。程序分为录音,放音,网络数据传输等几部分。首先,第一块arm(以后称为arm1)在按键按下的情况下,麦克风工作,此时对声卡进行读写,并将数据经网路传给另一块arm(以后成为arm2,设计过程中用pc代替)。此时如果arm2的按键没有按下的情况下将网络传过来的数据写入声卡,此时喇叭发出声音。相对的过程同上依次重复下去
4(二)系统基本功能图
三、相关技术综述
(一)Linux操作系统
1.Linux的历史
Linux它起源于Unix。是一种可自由发布的、多用户、多任务的优秀操作系统。
UNIX稳定性高、可扩展性强,在金融、电信、能源等一些关键性部门得到广泛的应用。
1991年,芬兰赫尔辛基大学的学生Linus Torvalds,受Minix系统的启发,推出一个新的UNIX的变种。他给Internet上的新闻组comp.os.minix发了一封信,声称其开发了一个免费的操作系统,并欢迎其他的开发者研究他的工作、提出修改意见。
在芬兰最大的FTP站点上,Linus建立了一个名为Linux的目录存放他的源文件,意思是“Linus的Minix”,于是,Linux就这样被命名了。
许多程序员获得了Linux的源代码。随着他们不断将原商用UNIX的特性和产品加入到Linux中来,Linux不断发展壮大,到现在为止,已成为具有全部UNIX特征的操作系统。
2.Linux具有以下一些特点:
(1)兼容UNIX:Linux是UNIX的完整的实现,它混合了BSD UNIX和System V这两个UNIX版本的最优良的特性。UNIX中的绝大多数命令都可以在Linux中找到、并有所加强;其可靠性、稳定性、以及强大的网络功能也得到体现。
(2)价格低廉:是一种免费的、公开源码的自由软件。它是根据GNU通用公共许可证(GNU General Public License,GPL)发布的。
根据GPL,用户可以改变任何源代码,甚至可以销售Linux。但有一个前提,如果以盈利为目的,则必须提供系统的源代码,以便其他人也能进一步的修改并销售。
Linux是由志愿者免费开发和维护的,甚至Linux下的许多应用软件都是根据GPL发布的、免费的自由软件。用户只需花费下载费用,完全可以搭建一套全免费的、与商用系统性能相当的系统。
(3)强大的网络功能: Linux的开发是通过Internet进行的,支持网络的功能在开发的早期就已经加入了。
6(4)可靠性好:比Windows更可靠。
Linux对应用程序使用的内存进行了保护,应用程序无法访问系统分配的区域以外的其他内存,因此,一个软件的错误操作不会造成整个系统的瘫痪(在Windows系统中经常出现的)。
在安全方面,由于源码被公开,可消除系统中是否有“后门”的疑惑。而且,由于一旦发现漏洞就可以马上修改源代码,所以安全性要远高于Windows系统。
(5)可移植性好:Linux几乎可以运行在任何的计算机系统之上。
(二)声卡驱动
声卡驱动程序提供的/dev/dsp 是用于数字采样(sampling)和数字录音(recording)的设备文件,它对于Linux下的音频编程来讲非常重要:向该设备写数据即意味着激活声卡上的D/A转换器进行放音,而向该设备读数据则意味 着激活声卡上的A/D 转换器进行录音。目前许多声卡都提供有多个数字采样设备,它们在Linux下可以通过/dev/dsp1 等设备文件进行访问。
DSP是数字信号处理器(Digital Signal Processor)的简称,它是用来进行数字信号处理的特殊芯片,声卡使用它来实现模拟信号和数字信号的转换。声卡中的DSP设备实际上包含两个组成部分:在以只读方式打开时,能够使用A/D 转换器进行声音的输入;而在以只写方式打开时,则能够使用D/A转换器进行声音的输出。严格说来,Linux下的应用程序要么以只读方式打开/dev/dsp 输入声音,要么以只写方式打开/dev/dsp 输出声音,但事实上某些声卡驱动程序仍允许以读写的方式打开/dev/dsp,以便同时进行声音的输入和输出,这对于某些应用场合(如IP 电话)来讲是非常关键的。
在从DSP设备读取数据时,从声卡输入的模拟信号经过A/D 转换器变成数字采样后的样本(sample),保存在声卡驱动程序的内核缓冲区中,当应用程序通过read 系统调用从声卡读取数据时,保存在内核缓冲区中的数字采样结果将 被复制到应用程序所指定的用户缓冲区中。需要指出的是,声卡采样频率是由内核中的驱动程序所决定的,而不取决于应用程序从声卡读取数据的速度。如果应用程序读取数据的速度过慢,以致低于声卡的采样频率,那么多余的数据将会被丢弃;如果读取数据的速度过快,以致高于声卡的采样频率,那么声卡驱动程序将会阻塞那些请求数据的应用程序,直到新的数据到来为止。
在向DSP设备写入数据时,数字信号会经过D/A转换器变成模拟信号,然后产生出声音。应用程序写入数据的速度
同样应该与声卡的采样频率相匹配,否则过慢的话会产生声音暂停或者停顿的现象,过快的话又会被内核中的声
卡驱动程序阻塞,直到硬件有能力处理新的数据为止。与其它设备有所不同,声卡通常不会支持非阻塞(non-blocking)的I/O 操作。
无论是从声卡读取数据,或是向声卡写入数据,事实上都具有特定的格式(format),默认为8 位无符号数据、单声道、8KHz采样率,如果默认值无法达到要求,可以通过ioctl 系统调用来改变它们。通常说来,在应用程序中打 开设备文件/dev/dsp 之后,接下去就应该为其设置恰当的格式,然后才能从声卡读取或者写入数据。
(三)UDP协议
UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协 8 议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。
UDP协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
(四)Socket套接字
套接字(socket)是套接口描述字的简称。和文件句柄相似,SOCKET提供了一种通讯机制,是linux的一种通讯方式。应用程序创建了一个套接字后,就能够获得这种机制提供的网络服务功能。对于服务器来说,它提供了监听网络的连接请求;对于客户机来说,它可以连接到一个给定的主计算机和特定的端口上。客户端和服务器端可以通过套接字对象来发送和接收数据。套接字提供了分别基于连接的协议(TCP)等和无连接的协议(UDP)等,以满足网络连接的可靠性、稳定性以及高速性的要求。
四、系统的硬件设计
(一)SamSung公司s3c6410微处理器简介
随着微电子技术的快速发展,ARM处理器经历了包括ARM7、ARM9在内的多个发展历程,而ARM11的成熟应用必将为嵌入式的发展带来新的活力,使更高端的产品应用成为可能。
与ARM9的5级流水线相比,ARM11拥有一条具有独立的load-store和算术 流水的8级流水线,在同样工艺下,ARM11处理器的性能与ARM9相比大约提高 了40%。ARM11执行ARMv6架构的指令,ARMv6指令包含了针对媒体处理的单指令流多数据流(SIMD)扩展,采用特殊的设计,以改善视频处理性能。为了能够进行快速浮点运算,ARM11增加了向量浮点单元。所有这些结构上的提高,都是ARM9处理器不可比拟的。
ARM11为便携式和无线应用,提供了从未有过的高超性能,并且使我们主要关心的成本和功耗减到最小。ARM11的微架构保证了系统性能可以从基本的350-500MHz范围扩展到最终的1GHz以上。其微架构的高效率表现,允许开发者根据不同的应用来调节时钟频率和电源电压,从而在性能和功耗之间达到最佳的折衷。例如,一个基于ARM11的微架构的处理器在1.2V工作电压下,使用0.13um工艺实现,其功率将不会超过0.4mW/MHz。
ARM11微处理器是一种高性能、低功耗的‘准64位’微处理器!对于目前大多数嵌入式应用,一个真正的64位处理器仍然被认为是不必要的,其巨大的功耗和面积让人难以接受。对此,ARM11选择了一个折中的方案,以较小的代价,部分实现了一个64位微架构。ARM11只在处理器整数单位和高速缓存之间,以及在整数单位和协处理器之间实现了64位数据总线。这些64位数据道路允许处理器在一个时钟周期中同时获取两条指令,还允许在一个时钟周期执行多个数据读写指令。这使得ARM11在执行很多特定序列的代码时能够达到非常高的性能,特别是那些允许数据搬移与数据处理并行处理的代码序列。
S3C6410是由三星公司推出的一款低功耗、高性价比的RSIC处理器,它基于ARM11内核(ARM1176JZF-S),可广泛应用于移动电话和通用处理等领域;S3C6410为2.5G和3G通信服务提供了优化的硬件性能,内置强大的硬件加速器:包括运动视频处理、音频处理、2D加速、显示处理和缩放等;集成了一个MFC(Multi-Format video Codec)支持MPEG4 /H.263/H.264编解码和VC1的解码,能够提供实时的视频会议以及NRSC和PAL制式的TV输出;除此之外,该处理器内置一个采用最先进技术的3D加速器,支持OpenGL ES 1.1/ 2.0和D3DMAPI,能实现4M triangles/s的3D加速;同时,S3C6410包含了优化的外部存储器接口,该接口能满足在高端通信服务中的数据带宽要求。由于以上突出的性能表现,10 著名的苹果公司手机IPHONE就是基于S3C6410处理器。
(二)SamSung公司s3c6410微处理器功能特性
S3C6410 是一个 16/32 位 RISC 微处理器,旨在提供一个具有成本效益、功耗低,性能高的应用处理器解决方案,像移动电话和一般的应用。它为 2.5G 和 3G 通信服务提供优化的 H /W 性能,S3C6410 采用了64/32 位内部总线架构。该 64/32 位内部总线结构由 AXI、AHB 和 APB 总线组成。它还包括许多强大的硬件加速器,像视频处理,音频处理,二维图形,显示操作和缩放。一个集成的多格式编解码器(MFC)支持 MPEG4/H.263/H.264 编码、译码以及 VC1 的解码。这个 H/W 编码器/解码器支持实时视频会议和 NTSC、PAL 模式的 TV 输出。
S3C6410 有一个优化的接口连线到外部存储器。存储器系统具有双重外部存储器端口、DRAM 和 FLASH /ROM/ DRAM 端口。DRAM 的端口可以配置为支持移动 DDR,DDR,移动 SDRAM 和 SDRAM。FLASH/ROM/DRAM端口支持 NOR-FLASH,NAND-FLASH,ONENAND,CF,ROM 类型外部存储器和移动 DDR,DDR,移动 SDRAM 和SDRAM。
为减少系统总成本和提高整体功能,S3C6410 包括许多硬件外设,如一个相机接口,TFT 24 位真彩色液晶显示控制器,系统管理器(电源管理等),4 通道 UART,32 通道 DMA,4 通道定时器,通用的 I/O 端口,IIS 总线接口,IIC 总线接口,USB 主设备,在高速(480 MB/S)时 USB OTG 操作,SD 主设备和高速多媒体卡接口、用于产生时钟的 PLL。
S3C6410 提供了丰富的内部设备,下面我们从它的整体特性、多媒体加速特性、视频接口、USB 特征、存储器设备、系统外设以及它的系统管理等方面来详细的介绍 S3C6410 处理器的特性
(三)系统设计器件
Samsung S3C6410处理器
256M字节NAND Flash(SLC)
12MHz、48MHz、27MHz、32.768KHz时钟源;
1个100M网口,采用DM9000AE,带连接和传输指示灯
2个3.5MM标准立体声音频插座。其中包括1个音频输出插座,可与耳机连接;1个话筒输入插座。另有插针形式提供了Line In(四)电源及复位电路
3.电源电路
4.复位电路
系统复位按键使用轻触开关,复位芯片选择MAX811t,专业复位芯片可保证系统的稳定可靠。
复位芯片MAX811设计原理图如下:
(五)系统时钟电路 主晶振(12MHZ)原理图:
网卡晶振原理图:
(六)系统存储器电路
使用了256M Bytes NAND FLASH,型号为K9F2G08U0B(另有MLC结构2G Bytes NAND FLASH的K9GAG08U0D供用户选择),片选信号使用CSn2。NAND FLASH 存储器主要用于存放内核代码、应用程序、文件系统和数据资料。
NAND FLASH设计原理图:
(七)IIS数字音频电路
音频功能使用S3C6410处理器的AC97总线。外接WM9714音频芯片,实现集成音频输出、Line in输入和Mic输入功能。音频输出和MIC输入以及LINE IN均采用标准音频插座。
5.下面是WM9714芯片和音频线路输入的原理图:
6.下图是mic座原理图:
7.下图为MIC输入座的俯视图:
(八)网卡电路
我们在系统集成一个100M以太网接口,通过DM9000AE芯片来扩展。在开发过程中,以太网接口可以用来连接PC机下载文件;在Linux的系统开发时,可以用来挂载NFS网络文件系统。使用时,需通过交叉网线直接连接PC机,也可以使用直连网线连接交换机或路由器。
DM9000AE设计原理图如下:
五、系统的软件设计
(一)总体设计流程图
(二)声卡部分
对声卡进行编程时首先要做的是打开与之对应的硬件设备,这是借助于open系统调用来完成的,并且一般情况下使用的是/dev/dsp 文件。采用何种模 19 式对声卡进行操作也必须在打开设备时指定,对于不支持全双工的声卡来说,应该使用只读或者只写的方式打开,只有那些支持全双工的声卡,才能以读写的方式打开,并且还要依赖于驱动程序的具体实现。Linux允许应用程序多次打开或者关闭与声卡对应的设备文件,从而能够很方便地在放音状态和录音状态之间进行切换,建议在进行音频编程时只要有可能就尽量使用只读或者只写的方式打开设备文件,因为这样不仅能够充分利用声卡的硬件资源,而且还有利于驱动程序的优化。下面的代码示范了如何以可写可读方式打开声卡进行放音(playback)操作:
fd = open(“/dev/dsp”, O_RDWR);
if(fd < 0)
{
perror(“open of /dev/dsp failed”);
exit(1);
}
运行在Linux内核中的声卡驱动程序专门维护了一个缓冲区,其大小会影响到放音和录音时的效果,使用ioctl 系统调用可以对它的尺寸进行恰当的设置。调节驱动程序中缓冲区大小的操作不是必须的,如果没有特殊的要求,一般采用默认的缓冲区大小也就可以了。但需要注意的是,缓冲区大小的设置通常应紧跟在设备文件打开之后,这是因为对声卡的其它操作有可能会导致驱动程序无法再修改其缓冲区的大小。下面的代码示范了怎样设置声卡驱动程序中的内核缓冲区的大小:
#define LENGTH 3 /* 存储秒数 */ #define RATE 8000 /* 采样频率 */ #define SIZE 8 /* 量化位数 */ #define CHANNELS 1 /* 声道数目 */ /* 用于保存数字音频数据的内存缓冲区 */ unsigned char msg[LENGTH*RATE*SIZE*CHANNELS/8];
接下来要做的是设置声卡工作时的声道(channel)数目,根据硬件设备和驱动程序的具体情况,可以将其设置为0(单声道,mono)或者1(立体声,stereo)。下面的代码示范了应该怎样设置声道数目:
arg = CHANNELS;
status = ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &arg);
if(status ==-1)
perror(“SOUND_PCM_WRITE_CHANNELS ioctl failed”);
if(arg!= CHANNELS)
perror(“unable to set number of channels”);
采样格式和采样频率是在进行音频编程时需要考虑的另一个问题,声卡支持的所有采样格式可以在头文件soundcard.h 中找到,而通过ioctl 系统调用则可以很方便地更改当前所使用的采样格式。下面的代码示范了如何设置声卡的量化位数:
/* 设置采样时的量化位数 */ arg = SIZE;
status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);
if(status ==-1)
perror(“SOUND_PCM_WRITE_BITS ioctl failed”);
if(arg!= SIZE)
perror(“unable to set sample size”);
声卡采样频率的设置也非常容易,只需在调用ioctl 时将第二个参数的值设置为SNDCTL_DSP_SPEED,同时在第三个参数中指定采样频率的数值就行了。对于大多数声卡来说,其支持的采样频率范围一般为5kHz到44.1kHz 或者48kHz,但并不意味着该范围内的所有频率都会被硬件支持,在Linux下进行音频编程时最常用到的几种采样频率是11025Hz、16000Hz、22050Hz、32000Hz和44100Hz。下面的代码示范了如何设置声卡的采样频率:
/* 设置采样时的采样频率 */ arg = RATE;
status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);
if(status ==-1)
perror(“SOUND_PCM_WRITE_WRITE ioctl failed”);
(三)网络连接部分 Socket套接字初始化:
addr_len=sizeof(struct sockaddr_in);bzero(&addr,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(REMOTEPORT);addr.sin_addr.s_addr=inet_addr(REMOTEIP);
(四)总体部分 客户端:
从声卡读取声音信号放到缓存中
status = read(fd, msg, sizeof(msg));
if(status!= sizeof(msg))
perror(“read wrong number of bytes”);将缓存中的数组发到服务端:
sendto(s,msg,sizeof(msg),0,&addr,addr_len);
服务端:
从客户端接收数据:
len= recvfrom(mysock,msg,sizeof(msg),0,&addr,&addr_len);将接收的数据写入声卡,声音回放
status = write(fd, msg, sizeof(msg));/* 回放 */
if(status!= sizeof(msg))
perror(“wrote wrong number of bytes”);
六、系统测试
(一)Linux系统移植安装
我们在成功试验时使用了ubuntu10.4版本。之前曾经尝试过很多版本的linux,由于无法安装dsp驱动不得一次又一次的装系统,在这个阶段花费了很长一段时间。
(二)交叉编译环境搭建
由于在开发主机上安装的交叉编译器与arm里面烧写的linux版本不对应,造成开发调试的程序无法正常运行。经过访问论坛找到合适版本的交叉编译器。问题得到了解决。
(三)声卡的初始化参数
读写声卡,要有特定的格式(format),默认为8 位无符号数据、单声道、8KHz采样率。虽然默认值可以达到我们pc机的要求,但是默认值无法达到我们开发板的要求。在开发过程中,开发板部分噪声特别大。严重影响产品效果。
我们翻阅了资料,得知可以通过ioctl 系统调用来改变它们。在不断的调试中,不断地得到老师的帮助。我们最终得到了我们的理想音质效果。
七、参考文献
[1]孙琼.嵌入式Li舢x应用程序开发详解.北京:人民邮电出版社,2007.9 [2]马忠梅.ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004 [3]于明.范书瑞.曾祥烨.ARM9嵌入式系统设计与开发教程.北京:电子工业 出版社.2006 24 [4]张景璐.ARM9嵌入式系统设计与应用案例.北京:中国电力出版社.2008 [5]李亚锋.ARM嵌入式Linux设备驱动实例开发.北京:中国电力出版 社.2008 [6]张琦文.谢建雄.谢劲心.ARM嵌入式常用模块与综合系统设计实例精讲. 北京:电子工业出版社.2006 [7]孙秋野.孙凯.冯健.ARM嵌入式系统开发典型模块.北京:人民邮电出版 社.2007 [8]封景刚.吴宝江.ARM嵌入式系统开发完全入门与主流实践.北京:电子 工业出版社.2008 [9]田泽.ARM9嵌入式Linux开发实验与实践.北京:北京航空航天大学出 版社.2006 [10]华清远见嵌入式培训中心.嵌入式Linux C语言应用程序设计.北京: 人民邮电出版社出版社.2007 [11]冯国进.嵌入式Linux驱动程序设计从入门到精通.北京:清华大学出 版社.2008 [12]罗苑棠.杨宗德.嵌入式Linux应用系统开发实例精讲.北京:电子工业 出版社.2007 [13]杨树青,王欢.Linux环境下C编程指南.北京:清华大学出版社,2007 [14]李俊.嵌入式Linux设备驱动开发详解.北京:人民邮电出版社,2008 [15] 龙跃.基于嵌入式系统的网络音响设计与实现.华中科技大学硕士论 文,2007 [16]陈莉君.Linux操作系统内核分析.北京:人民邮电出版社,2000 [17J卢军.Linux 0.Ol内核分析与操作系统设计:创造你自己的操作系统. 北京:清华大学出版社,2004
八、总结与心得体会
这次设计有很重要的意义,而且任务很重,但在这次设计中也学到了很多以前课堂没有的知识。虽然之前有学过有关于ARM方面的知识,不过到实际用的时 25 候发现了很多问题存在,不免有很大的压力。
这是我们大学重要的设计之一;我们仔细阅读老师给的资料,并按照实验步骤进行,尽管如此但在实践过程中还是遇到了很多的问题,不过经过指导老师的细心讲解,让我学到了很多东西。有些之前我们学过的知识要点,不过有一段时间间隔了,很多的知识要点有不同程度的遗忘,我们通过网络所搜,和同学一起讨论问题。时间过得很快,短短两周工程训练;在这两周时间里,我学到了很多东西,对于linux操作系统,以前了解过一些这方面的知识,但并没有实践过;安装ubuntu软件的时候,出现了系统卡机;在这次工程训练中安装交叉编译环境让我有很大的压力,遇到了很多的问题,在网上也查了很多的资料,最后是在同学的帮助下完成的。安装完成编译环境后,设置共享文件时出现了问题,而且连U盘都不能在linux系统中读出来,开始的时候并不知道怎么样设置共享,我试图使用网络传输。不过后来,在同学的指导下完成了设置共享文件,真的很感谢那位同学。使用ARM开发板的时候,挂接U盘,一开始不知道怎们样把U盘中的文件拷贝到开发板上,后来在知道里面搜索到了,相关的指令;在这次工程训练中让我受益非浅。功放电路的制作并不是很难,但放出来的音效并不是很理想,我试图通过改变电路的参数改善音频效果,但效果并不是很理想,可能是初始化设置参数的缘故。
在这次工程训练中学到了很多,更多的了解到了有关于ARM11方面的知识;学会了独立思考,独立解决问题;通过和同学交流,共同学习,共同进步;同时也了解到了怎样更好的通过网络查找自己需要的资料,在这次设计中由于时间原因,没有实现同步发送。还有初始化不太准确造成有噪声
九、致谢
首先感谢的是我的老师殷群老师,殷老师的学术感染力使我受益匪浅,在这学年当中,我得到了殷老师始终如一的指导、关心和照顾。殷老师学识渊博,治学严谨,在这学年的学习中,事无巨细,殷老师都能给我最细致和耐心的指导,生活中,殷老师的和善豁达,平易近人的作风也为我如何待人接物,为人处事做 了最好的诠释,其人格魅力也无形而有力的指引着我做人做事的方式,为我在以后的工作学习中树立了榜样。
第三篇:实习总结-嵌入式ARM
实训总结
班级 卓越1301姓名***
通过这段时间的学习使我学到了很多知识,并且了解到ARM的应用以及对开发板的应用,为以后的学习奠定了一定的基础。
嵌入式系统一般定义为以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。是将应用程序、操作系统和计算机硬件集成在一起的系统这是从技术角度。从系统角度上是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。如各类单片机和DSP系统。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但由于他们没有操作系统,管理系统硬件核软件的能力有限,在实现复杂多任务功能时,往往困难重重,甚至无法实现。从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的嵌入式系统。
嵌入式的应用也比较广泛涉及军事国防、工业控制、消费电子和网络。在家用方面更是数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。
在ARM指令集中了解到ARM的寻址方式以及它的的特性,具有高效、快速的特点,还有Thumb指令集具有灵活、小巧的特点。
在这次实训中做了两个项目,一个是LED灯,实现LED灯的点亮是比较简单的,通过查找手册可以很快的了解到要使用的寄存器和方法,另一个项目是DS18B20这个比较复杂,除了要掌握对寄存器的使用,还要对了解对串口的初始化,读写字节等等。
感谢这次实训,通过这次的实训项目,使我大体了解制作项目的步骤,了解了嵌入式技术的掌握是需要一个过程的。实事求是的说,嵌入式技术的全面掌握是有相当难度的,通过积累和动手总会有收获的,从实验中也明白了一个大的项目并不是一个人可以完成的,团队协作很重要。
姓名:***
年级:卓越1301
2014-7-5
第四篇:ARM课程感想-王一安
ARM嵌入式系统课程感想
姓名:王一安 班级:14级10班 学号:14032277转眼将就到了大三这个大学的第三个学年了,我们也快要毕业了,这学期我们也学习了我们的专业课之一ARM嵌入式系统这门课程,而这门课程我也是选择了余震老师做为我的讲师,因为有过一起学习的经验,所以我觉得余震老师的授课方式方法更加的适合我也更加的符合我对于这门课程的理解,事实上在余震老师的教导下这学期在这门课程的学习上我取得了长足的进步。在此也感谢老师对我的教育与引导。而我们所选择的教材也是最适合学习研究的一版教材。
以下则是经过近一个学期的学习后我对于这门课程的一些基本的认识 我认为事实上尽管一般情况下嵌入式系统对CPU处理能力的要求比个人电脑(对CPU处理能力的要求)低,但随着人们生活的提高和技术的进步,嵌入式系统对CPU处理能力的要求也稳步的提高,大量高速的与MCS-51体系结构兼容的微控制器的出现就证明了这一点。但8位微控制器受限于体系结构,处理能力的提高始终有限。而16位系统在性能上与8位机相比始终没有太大优势,成本上与32位系统相比也没有什么优势,未来一段时间嵌入式微控制器的发展方向必然是32位系统。
因为ARM体系结构的32位系统占领了32位嵌入式系统的大部分分额,但长期以来,基于ARM体系结构的32位系统仅在嵌入式式系统的高端(通讯领域、PDA)等场合使用,要么以专用芯片的面貌出现,要么以位处理器的庙貌出现,并没有出现性价比高的通用的微控制器。PHILIPS发现了这个空当,推出了性价比很高LPC2000系列微控制器,让更多的嵌入式系统具有32位的处理能力。这也预示着32位系统即将成为嵌入式系统的主流。32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端 应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU的高端应用则多集中在网络、通信和多媒体技术领域,32位MCU将会集中在少数厂家发展的少数型号系列上。
也正因为网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的发展阶段,即从普遍的低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。
在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施
了8位、16位和32位机的发展计划。后来,8位和32位机的技术扩展侵占了16位机的发展空间。传 统电子系统智能化对8位机的需求使这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟 不前的局面。当网络、通信和多媒体信息家电业兴起后,出现了嵌入式系统高端应用的市场;而在嵌入式 系统的高端应用中,进行多年技术准备的 ARM公司适时地推出了32位ARM系列嵌入式微处理器,以其 明显的性能优势和知识产权平台扇出的运行方式,迅速形成32位机高端应用的主流地位,以至于使不少 传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。甚至 在嵌入式系统发展史上做出卓越贡献的Intel公司以及将单片微型计算机发展到微控制器的PHILIPS公 司,在发展32位嵌入式系统时都不另起炉灶,而是转而使用ARM公司的嵌入式系统内核来发展自己的32位MCU。
网络、通信、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间;同时,也为力不从心的8位机向高端发展起到了接力作用。一般来说,嵌入式系统的高、低端应 用模糊地界定为:高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化的发展趋势要求在这些8位机的应用中提升海量数据处理能力。当
8位机无法满足这些提升要求时,便会转而求助32位机的解决办法。因此,32位机的市场需求发展由两 方面所致:一方面是高端新兴领域(网络、通信、多媒体和信息家电)的拓展;另一方面是低端控制领域 应用在数据处理能力的提升要求。
后PC时代的到来以及32位嵌入式系统的高端应用吸引了大量计算机专业人士的介入,加之嵌入式系 统软/硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌入式系统应用进入到一个基于软/ 硬件平台、集成开发环境的应用系统开发时代,并带动了SoC技术的发展。
在众多嵌入式系统厂家参与下,基于ARM系列处理器的应用技术会在众多领域取得突破性进展。Intel 公司将ARM系列向更高端的嵌入式系统发展;而PHILIPS公司则在向高端嵌入式系统发展的同时,向低端的8位和16位机的高端应用延伸。Intel公司和PHILIPS公司的发展都体现了各自的特点,并充分发 挥了各自的优势。因此,在32位嵌入式系统的应用中,ARM系列会形成ARM公司领军,众多厂家参与,计算机专业、电子技术专业以及对象专业人士共同推动的局面,形成未来32位嵌入式系统应用的主流趋 势。这种集中分工的技术发展模式有利于嵌入式系统的快速发展。
而在我们这学期的课程学习中也是应用到嵌入式系统对一些典型的课题进行了设计与仿真例如对于生活中的最常见到的十字路口的交通控制灯控制等课题的设计仿真
一、设计目的:
1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;
2.掌握ARM7应用系统编程开发方法,能用C语言编写应用程序; 3.熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;
二、具体任务:
1.采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;
2.用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;
3.采用PROTEUS将应用程序装载在LPC2106中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。
三、硬件电路设计。(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)
硬件电路说明:
1.两路数码管分别独立静态显示,因为PROTEUS处理模拟信号能力差,加上动态扫描不能实时运行。
2.六对LED充当信号灯,分横竖两组。3.处理器为LPC2106和左边的最小系统线路。
四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)源程序:
#include “config.h” unsigned
//包含头文件
int num[12]={0x00,0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//7段数码管,前两位为空,方便2秒延时
void delay1s(void){ unsigned int n=0x1FFFF;while(n--);
//1s延时 } void disply(int t){ int i;
//半个周期10s
//数码管和LED显示
for(i=9;i>=0;i--){
if(t==1){
} Else {
} IOCLR=0x7F;IOCLR=0x3F80;IOSET=num[i];
IOCLR=0x7F;
//前半周期
//数码管1清0 IOCLR=0x3F80;//数码管2清0
//数码管1显示 //数码管2显示 //LED清0
//小于2s为红黄灯 //大于2s为红绿灯 IOSET=num[i+2];IOSET=num[i]<<0x7;IOCLR=0xFC000;
if(i<=2)IOSET=0x44000;else
IOSET=0x84000;
delay1s();//延时
//后半周期
IOSET=num[i+2]<<0x7;IOCLR=0xFC000;if(i<=2)IOSET=0x28000;else
IOSET=0x30000;delay1s();
} } int main(void){ PINSEL0=0x00000000;
//设置为通用IO PINSEL1=0x00000000;IODIR=0xFFFFF;while(1)
{
} return(0);}
五、仿真效果。(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)disply(1);disply(0);
//前半周期 //后半周期
//0~19为输出 //死循环
在嵌入式的学习过程中,让我了解了什么是嵌入式系统。它就是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。他一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序四个部分组成,用于实现对其他设备的控制、监视或管理功能。嵌入式系统已经应用于科学研究、工业控制、军事技术、交通通信、医疗卫生、消费娱乐等领域,人们日常使用的手机、PDA、汽车、智能家电、GPS等均是嵌入式系统的典型代表。最后的最后呢,经过一学期的学习我对这门课程的认识在余震老师的悉心教导下取得了长足的进步,并对这门课程产生了新的兴趣并会一直努力的学习专研下去,俗话说嘛坚持就是胜利,我会在这条艰难的道路上一直保持本心一直努力坚持的走下去。再次感谢余震考试一学期的教导,希望以后还能有机会再次一起学习一门学科。
第五篇:实习报告和感想
实习报告和感想
我来到我们新街口营投部已经有两个多月了,这是我步入社会的第一份工作,我踌躇满志的来到这里,想把我在学校里学到的东西发挥出来,想在这里开心充实的顺利工作,目前我的目标就是想把我该学的都学会,认真努力的把我的工作做好,还有就是来到北京这个大城市,想赚好多钱,孝敬我的家人。
实习期间学到的:
1.在投递方面:李哥把我分到了李京超师傅的网格,超超师傅特意选了一天专门教我投递,我学到了输机,签点,订单子,下路,熟悉道段
2.在总台方面:邮件的查询,183、185的派揽,回号反馈,查验平台的验单处理和E邮宝的派揽,法院回执寄递,邮件的开拆,封发,合拢上数
3.在收寄方面:分拣全夜航,华快,非全夜航,收寄信息录入我只是看着学习,纪录了下来,没有上机操作过
4.在揽收方面:真正的谈客户,与新客户面对面的谈业务,我没有涉及到,只是去师傅的老客户那里去取件,然后回来贴戳,作件,计费
感想:我之前一直认定是投递岗,我把资费方面背的很熟,我觉得这在投递上肯定是用得到的,我把有关投递的相关要做的也都学会了,同时我想多学点东西,就和建威师傅学习
总台,有空的时候就帮忙处理总台的事,我一直把自己定位在投递上,学习总台和收寄只是想多学点东西,可是我现在迷茫了,吃饭的那天我才知道我不是投递岗,而我现在没有固定的岗位,只是每天的在干杂活,哪里有需要,我就去做哪里,我觉得我南辕北辙了,当然我每天忙忙碌碌的,我很充实,我很感谢顺总你们对我们新人的照顾和关心,也感谢师傅们的悉心教导,发自内心的感谢,我现在需要做的就是摆正我的心态,好好的工作和学习。