大专毕业论文基于ARM920T的嵌入式网络通信系统设计.docx
- 文档编号:8204400
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:17
- 大小:744.03KB
大专毕业论文基于ARM920T的嵌入式网络通信系统设计.docx
《大专毕业论文基于ARM920T的嵌入式网络通信系统设计.docx》由会员分享,可在线阅读,更多相关《大专毕业论文基于ARM920T的嵌入式网络通信系统设计.docx(17页珍藏版)》请在冰豆网上搜索。
大专毕业论文基于ARM920T的嵌入式网络通信系统设计
【摘要】
随着Internet的发展和后PC时代的到来,嵌入式系统以其可靠性强、体积小、专用性、成本低等特性得到日益广泛的应用。
目前嵌入式系统技术已经成为了最热门的技术之一。
与此同时,一个独立的嵌入式系统的功能缺陷也逐渐暴露出来。
新一代嵌入计算系统的功能集成和应用模式使之迅速向网络化嵌入计算的方向发展,标准和统一的TCP/IP通信协议是独立于任何厂家的硬件的,因此嵌入环境下的实时网络通信成为嵌入计算技术研究的重点和热点。
为了利用Internet实现对远程目标的实时控制,本文以嵌入式技术与Internet网络技术为基础,开发出一种以ARM920T为硬件平台、Linux为操作系统的网络通信系统,并给出了该系统的硬件结构、软件设计方法,编写程序实现Ping的功能。
【关键词】:
ARM920T,嵌入式系统,TCP/IP网络协议,网络通信
ABSTRACT
WiththedevelopmentofInternetandthearrivalofPost-PCtimes,theapplicationofembeddedsystembecomespopular.Nowembeddedtechnologyhasbeenthefocalpointofresearch.Embeddedsystemhasbeenintroducedintomoreandmoreapplicationareasforitsinherentcharacteristicssuchashighreliability,smallcubageandlowcosts.However,defectsofasingleembeddedsystemhavealsoexposedgraduallywithinappliance.Newgenerationofembeddedcomputingsystemmostlyfeaturesatfunctionalityintegrationandembeddednetworkcomputing,whichCommunicationprotocolsisreadyandopen,theequipmentcanbethepartoftheInternetbyTCP/IPprotocolsandpromotesmoreattentionandinterestingintoreal-timenetworkcommunicationbetweenembeddedsystems.
TheuseofInternetinordertorealizelong-termobjectiveofreal-timecontrol,thispaper,embeddedtechnologyandInternet-basednetworktechnologytodevelopahardwareplatformARM920Tfor,Linuxfortheoperatingsystem'snetworkcommunicationssystems,andgivethesystem'shardwarestructure,softwaredesignmethods.ProgrammingimplementationPingfunction.
【KEYWORD】:
ARM920T,EmbeddedSystems,TCP/IPprotocols,NetworkCommunication
目录
1、引言1页
2、嵌入式体系结构.......................................3页
(一)ARM微处理器的硬件结构............................3页
(二)ARM微处理器的指令结构4页
三、设计理念及过程6页
(一)以太网基础知识....................................6页
(二)实现过程..........................................7页
(三)C语言源程序......................................12页
(四)课题总结..........................................14页
四、参考文献15页
五、致谢15页
1、引言
后PC时代是一个真实的阶段,而且是一个可以预测的时代。
嵌入式系统就是与这一时代紧密相关的产物,它将拉近人与计算机的距离,形成一个人机和谐的工作与生活环境。
从某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。
嵌入式系统在应用数量上远远超过了各种通用计算机系统,一台通用计算机的外部设备中就包含了5-10个微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡、打印机、扫描仪、数字相机、USB集线器等均是由嵌入式系统控制的。
在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
纵观嵌入式系统的发展过程,可以看出嵌入式系统由简单的无操作系统的循环控制程序向具有强大功能的基于操作系统的方向发展,从独立的系统向基于网络的系统发展。
进入90年代后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。
多媒体技术与Internet的应用迅速普及,消费电子、计算机、通信(3C)一体化趋势日趋明显,嵌入式技术已再次成为一个研究热点。
未来几年,个人计算机将会延伸到各种大小型智能设备中,各种信息借助于网络形成连接为一个整体。
要达到这样的目标非嵌入式系统不可,同时这也是我们对嵌入式系统的展望。
如图1-1所示为嵌入式系统在日常生活中的一些应用。
嵌入式系统的出现至今已经有30多年的历史了,嵌入式技术也历经了几个发展阶段。
进入90年代后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。
多媒体技术与Internet的应用迅速普及,消费电子(Consumptiveelectron),计算机,通信(Communication),3C一体化趋势日趋明显,嵌入式技术再度成为一个研究热点。
综观嵌入式技术的发展,大致经历了4个阶段:
第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。
这种系统一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。
这一阶段系统的主要特点是:
系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。
图1-1嵌入式系统应用
第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
这一阶段系统的主要特点是:
CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。
第三阶段是以嵌入式操作系统为标志的嵌入式系统。
这一阶段系统的主要特点是:
嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。
第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。
目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。
早期的嵌入式系统只是为了实现某些特定功能,使用一个循环控制对外界的请求进行处理。
不可否认,这对于简单的系统而言是足够的,但是当我们的系统变得日渐复杂庞大的时候,如果我要增添一项功能的时候,很可能不得不重新进行系统的设计,这无疑会增加开发的成本和系统复杂度。
使用这种方式开发规模较大、功能复杂的嵌入式系统是不可想象的。
20世纪80年代初期嵌入式操作系统的出现使得快速便捷地开发规模较大的嵌入式系统成为现实,自这一时期开始就出现了各种各样的商用嵌入式操作系统,从而形成了目前多种形式的商用嵌入式操作系统百家争鸣的局面。
基于嵌入式操作系统之上的系统才能够真正符合嵌入式系统定义中的软件可裁剪、功能的可扩展、高可靠性等特征。
区别于嵌入式系统,我们将不使用嵌入式操作系统的基于MCU(微控制器)、MPU(微处理器)和DSP的循环控制系统称之为前后台系统。
2、嵌入式体系结构
(1)ARM微处理器的硬件结构
ARM9内核采用了与StrongARM相同的五级流水线、提供1.1MIPS/MHz的哈佛结构、全性能的MMU单元、可配置的数据Cache和可分立和指令和数据高速AHB接口。
1.五级流水线
ARM920T处理器使用流水线来增加处理器指令流的速度。
这样可以使几个操作同时进行,并使处理和存储器系统连续操作,能提供1.1MIPS/MHz的指令执行速度。
流水线使用5个阶段,因此指令分5个阶段执行:
取址→译码→执行→存储→写。
2.ARM920T处理器结构
ARM920T处理器功能方框图如图1-2。
图1-2ARM920T处理器功能方框图
(二)ARM微处理器的指令结构
ARM微处理器的在较新的体系结构中支持两种指令集:
ARM指令集和Thumb指令集。
其中,ARM指令为32位的长度,Thumb指令为16位长度。
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
1.ARM状态下的寄存器组织
通用寄存器:
通用寄存器包括R0~R15,可以分为三类:
未分组寄存器R0~R7;
分组寄存器R8~R14;
程序计数器PC(R15)。
未分组寄存器R0~R7:
在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,因此,在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时应引起注意。
分组寄存器R8~R14:
对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运行模式有关。
对于R8~R12来说,每个寄存器对应两个不同的物理寄存器,当使用fiq模式时,访问寄存器R8_fiq~R12_fiq;当使用除fiq模式以外的其他模式时,访问寄存器R8_usr~R12_usr。
对于R13、R14来说,每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。
采用以下的记号来区分不同的物理寄存器:
R13_
R14_
其中,mode为以下几种模式之一:
usr、fiq、irq、svc、abt、und。
表1-1ARM状态下的寄存器组织
表2-1ARM状态下的寄存器组织
表2~3ARM状态下的寄存器组织
2.Thumb状态下的寄存器组织
Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。
同时,在每一种特权模式下都有一组SP、LR和SPSR。
表2~4表明Thumb状态下的寄存器组织。
表1-2Thumb状态下的寄存器组织
Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系:
Thumb状态下和ARM状态下的R0~R7是相同的。
Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。
Thumb状态下的SP对应于ARM状态下的R13。
Thumb状态下的LR对应于ARM状态下的R14。
Thumb状态下的程序计数器对应于ARM状态下R15。
3、设计理念及过程
(一)以太网基础知识
1.以太网的分类通常所说的以太网主要是指以下3种不同的局域网技术。
1)以太网/IEEE802.3采用同轴电缆作为网络介质,传输速率达到10Mbps2)100Mbps以太网又称为快速以太网,采用双绞线作为网络介质,传输速率达到100Mbps。
3)1000Mbps以太网又称为千兆以太网,采用光缆和双绞线作为网络介质,传输速率达到1000Mbps(1Gbps)。
2.传输控制协议(TCP)TCP是一种面向连接的协议,其通信是以全双工方式实施的,在双方之间有可靠的流。
因为因特网的节点有时会丢失包,所以TCP协议考虑了这种问题,保证接受方能够按照发送方发送数据的次序接收所有数据。
从这方面看,可以认为可靠了;但是在TCP中可能出现中断连接的情况。
TCP只能保证是按照发送次序接收数据的。
此外TCP连接的两个端点可以同时收发数据;因为是以全双工模式运行的。
TCP还负责将从主机应用程序接收到的数据分割为可以在特定链路上传输的独立包。
这个包大小叫做最大段长度(MSS),这是在TCP同步时由两个协议栈协商确定的。
图25-1所示为TCP头结构图。
3.因特网协议(IP)因特网协议(IP)与网络层有关联。
这个协议负责创建将发送到目的主机上的包。
目的和源是通过IP地址标识的。
一个IP地址是一个4个8位组(字节)结构,惟一地标识连接在因特网上的节点。
IP地址历史上被分为5个类,具体决定了网络上的节点分布。
IP协议目前广泛使用IPv4版本,其数据包结构如图25-2所示:
4.因特网控制报文协议(ICMP)
ICMP主要用于差错信息和控制信息的构造及某些网络信息的获取。
ICMP与IP同属IP层,但ICMP报文是经IP封装后,作为IP数据报发送出去的。
不把ICMP作为一个独立的协议层次,是因为ICMP不是上层协议的基础,在概念上构不成一个独立的层次。
ICMP消息包括以下类型:
目的不可达、超时、参数问题、源端抑制、重定向、回声请求、回声应答、时间标记请求、时间标记应答。
5.PING工具的工作步骤在使用Ping工具时,例如在计算机上输入命令行:
PING192.168.0.1之后,PING做了哪些事情呢?
这些事情包括①发送ARP请求,并等待ARP应答从而解析IP地址。
②如果接收到ARP应答,就将192.168.0.1转换成对应计算机的MAC地址。
③向该计算机发送带有一些数据(例如32字节数据)的ICMP回送请求,等待对方的回送应答。
④如果在一定的时间内等到了对方的ICMP回送应答,则认为PING通了,两台计算机之间的网络连接没有问题。
这里所说的“一定时间”是指两个ICMP回送请求之间的延迟时间,一般取值为1s,如果时间太短,容易对网络传输造成很大的压力,甚至造成网络堵塞,不建议采用。
(二)实现过程
1.新建工程ETH.mcp。
2.在ETH工程下,“右键”—>“CreateGroup”创建S3c2410x组及其子组inc和src。
可以先分别创建S3c2410x、inc、src三个组,然后再把后两个组通过拖拽的方式拖到组S3c2410x,形成父子组关系,依此方法,完成组inc、src的添加。
通过拖拽把inc组和src组拖到S3c2410x中成为子组。
3.在相应地方,编辑并添加文件:
(1)工程根目录添加文件,具体如图1-3所示:
图1-3
(2)S3c2410x根目录下添加def.h文件,如图1-4所示:
图1-4
(3)在子组scr下添加文件,如图1-5所示:
图1-5
(4)在子组inc下添加文件,如图1-6所示:
图1-6
5.修改工程设置,如图1-7所示:
图1-7
6.运行超级终端,选择正确的串口号,并将串口设置为:
波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数
(1),无流控,打开串口;
7.下载程序并运行,在命令行输入窗口中,输入ping192.168.0.118,可以看到打印信息,如图1-8所示:
图1-8
(三)C语言源程序
PRIVATEUSHORT
ReadReg(USHORToffset)
{
IOWRITE(IO_PACKET_PAGE_POINTER,offset);
returnIOREAD(IO_PACKET_PAGE_DATA);
}
PRIVATEvoid
WriteReg(USHORToffset,USHORTdata)
{
IOWRITE(IO_PACKET_PAGE_POINTER,offset);
IOWRITE(IO_PACKET_PAGE_DATA,data);
}
BOOLdm9000Probe(void)
{
USHORTid_vendor,id_product;
CONSOL_Printf("\n[DM9000Test]\n");
id_vendor=READ_REG1(PKTPG_VNDR_ID_L);
id_vendor|=READ_REG1(PKTPG_VNDR_ID_H)<<8;
if(id_vendor!
=DM9000_VNDR_ID)
{
CONSOL_Printf("VENDORIDError(0x%04x!
=0x%04x)\n",DM9000_VNDR_ID,id_vendor);
returnFALSE;
}
else
CONSOL_Printf("VENDORID=0x%04x\n",id_vendor);
id_product=READ_REG1(PKTPG_PRDCT_ID_L);
id_product|=READ_REG1(PKTPG_PRDCT_ID_H)<<8;
if((id_product&DM9000_PRDCT_ID)!
=DM9000_PRDCT_ID)
{
CONSOL_Printf("ProductIDError(0x%04x!
=0x%04x)\n",DM9000_PRDCT_ID,id_product);
returnFALSE;
}
else
CONSOL_Printf("ProductID=0x%04x\n",id_product);
returnTRUE;
}
PRIVATEBOOLdm9000Reset(void)
{
WRITE_REG1(0,1);
uDelay(100);
returnTRUE;
}
PRIVATEBOOLdm9000Init(void)
{
//GetIOMode
UCHARuchTemp;
USHORTushTemp;
structeth_addrethaddr;
if((uchTemp=(READ_REG1(PKTPG_ISR_FE)>>6)&0xff)!
=DM9000_IO_MODE)
{
CONSOL_Printf("\nDM9000'siomodeerror.io_mode=%c.\n",uchTemp);
returnFALSE;
}
//PoweronPHY
WRITE_REG1(PKTPG_GPCR_1E,GPCR_PHY_ON);
WRITE_REG1(PKTPG_GPR_1F,GPR_PHY_ON);
WRITE_REG1(0x0000,0);
WRITE_REG1(0x0002,0);
WRITE_REG1(0x0008,0x003f);
WRITE_REG1(0x0009,0x0038);
WRITE_REG1(0x000a,0x0008);
WRITE_REG1(0x002f,0);
WRITE_REG1(0x00fe,0x000f);
//
ethaddr=getethaddr();
for(ushTemp=0;ushTemp<6;ushTemp++)
{
WRITE_REG1(ushTemp+0x0010,(USHORT)(ethaddr.addr[ushTemp]));
}
for(ushTemp=0x0016;ushTemp<0x001e;ushTemp+=2)
{
WRITE_REG1(ushTemp,0xff);
WRITE_REG1(ushTemp+1,0xff);
}
//inserthashtable
WRITE_REG1(0x0005,0x0031);
WRITE_REG1(0x00ff,0x0080);
CONSOL_Printf("\nDM9000_InitOK.\n");
returnTRUE;
}
(4)课题总结
本次论文使我了解了ARM9体系结构基本的ARM指令、thumb指令和C语言编程,掌握ARM的网络通信的工作原理,编写网口操作函数实现ping功能。
学会加载所需的源程序,利用ADS1.2进行编译仿真调试,实现利用交叉网线连接宿主机网口及开发板上100M网口,并在PC机上打开超级终端和命令行输入窗口,测试运行程序,实现通讯,使我的嵌入式系统开发应用能力得到提高,为自己的可持续性发展奠定基础。
四、参考文献
[1]周立功编著.ARM嵌入式系统基础教程.北京航天航空大学出版社,2004
[2]张红润,张亚凡编著.微机原理及应用.清华大学出版社,2004
[3]杨永生,王立红编著.汇编语言程序设计.清华大学出版社,2004
[4]杜春雷等编著.ARM体系结构与编程.清华大学出版社,2004
[5]吴明辉,徐睿等编著.基于ARM的嵌入式系统开发与应用.人民邮电出版社,2003
[6]冯博琴编著.微型计算机原理与接口技术.清华大学出版社,2004
[7]马忠梅,马广云等编著.ARM嵌入式处理器结构与应用基础.北京航天航空大学出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大专 毕业论文 基于 ARM920T 嵌入式 网络 通信 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)