嵌入式课程设计大作业.docx
- 文档编号:24507716
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:15
- 大小:25.22KB
嵌入式课程设计大作业.docx
《嵌入式课程设计大作业.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计大作业.docx(15页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计大作业
嵌入式课程设计大作业
南京工程学院
《ARM-Linux嵌入式系统开发基础》论文
题目:
系别:
专业:
班级:
姓名:
学号:
论文成绩:
2015年6月30日
基于Linux的ARM嵌入式系统设计
摘要
随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需求已无法满足当前和未来高性能的应用与发展需求。
同时,激烈的市场竞争和技术竞争,要求产品的开发周期越来越短,显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。
嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
当今信息时代,嵌入式系统的应用无处不在,而ARM嵌入式系统应用市场份额约占75%。
从嵌入式系统的基本概念入手,分别从ARM的定义、ARM微处理器、ARM开发工具及调试方法来介绍ARM嵌入式系统基础知识。
接着,讨论了ARM嵌入式系统的实时性要求,介绍了目前市场上的实时多任务操作系统(RTOS)。
最后,概括了ARM技术的应用领域及其产业化发展,并预测ARM技术发展的前景。
关键词:
嵌入式系统;ARM;微处理器;RTOS
1.引言
随着IT技术、网络技术和微电子技术的深入发展,嵌入式系统的应用日益广泛。
ARM是目前世界公认的业界领先的32位嵌入式RISC(精简指令计算机)微处理器。
ARM技术日益成熟和不断发展,正在逐步渗入到我们生活的各个方面。
2.嵌入式系统
2.1嵌入式系统的概念
嵌入式系统的英文叫做EmbeddedSystem,是一种包括硬件和软件的完整的计算机系统,但又跟通用计算机系统不同。
嵌入式系统的定义是:
“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。
2.2嵌入式系统的架构
嵌入式系统作为一类特殊的计算机系统,自底向上包含有3个部分。
(1)硬件环境:
是整个嵌入式操作系统和应用程序运行的硬件平台,硬件平台包括嵌入式处理器和外围设备。
嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。
(2)嵌入式操作系统:
完成嵌入式应用的任务调度和控制等核心功能。
具有内核较精简、可配置、与高层应用紧密关联等特点。
嵌入式操作系统具有相对不变性。
(3)嵌入式应用程序:
运行于操作系统之上,利用操作系统提供的机制完成特定功能的嵌入式应用。
不同的系统需要设计不同的嵌入式应用程序。
3.ARM嵌入式系统
3.1什么是ARM
ARM是AdvancedRISCMachines的缩写,是微处理器行业的一家知名企业,该企业设计了大量廉价、高性能、低功耗的RISC处理器、相关技术及软件。
ARM技术有很好的性能和功效,其合作伙伴包括世界许多顶级的半导体公司。
目前,共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、PHILIPS和国家半导体这样的大公司。
可以说,ARM不仅仅代表一个公司,代表了一类微处理器,代表了一种技术,还代表了一种新型的产业发展模式。
3.2ARM处理器核系列及应用
ARM公司开发了一系列ARM处理器核。
目前最新的系列已经是ARM11了。
ARM6及更早的系列已经罕见了,ARM7以后的核也不是都获得广泛应用。
目前应用最多的是ARM7系列、ARM9系列、ARM9E系列、ARM10系列、SecurCore系列、Intel的StrongARM、XScale系列。
ARM7系列:
包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Iazelle的ARM7EJ-S。
该系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备以及移动电话、PDA等无线设备。
ARM9系列:
包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。
该系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高端打印机、PDA、网络电脑以及带有MP3音频和MPEG4视频多媒体格式的智能电话中。
ARM9E系列:
为综合处理器,包括ARM926EJ-S、带有高速缓存处理宏单元的ARM966E-S/ARM946E-S。
该系列强化了数字信号处理功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddedICE-RT逻辑,更好的适应了实时系统的开发需求。
ARM10系列:
包括ARM1020E和ARM1020E微处理器核。
其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大地提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等。
SecurCore系列:
包括SC100、SC110、SC200和SC210处理器核。
该系列主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其他安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件与软件的盗版。
StrongARM系列:
StrongARM处理器将Intel处理器技术和ARM体系结构融为一体。
致力于为手提式通信和消费电子类设备提供理想的解决方案。
Xscale系列:
提供全性能、高性价比和低功耗的解决方案,支持16位Thumb指令和DSP指令。
3.3ARM微处理器的特点
采用RISC体系架构的ARM微处理器一般有如下特点:
(1)体积小、低功耗、低成本、高性能;
(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
(3)大量使用寄存器,指令执行速度更快;
(4)大多数数据操作都在寄存器中完成;
(5)寻址方式灵活简单,执行效率高;
(6)指令长度固定。
3.4ARM微处理器的指令结构
ARM微处理器在较新的体系结构中支持两种指令集:
ARM指令集和Thumb指令集。
其中,ARM指令为32位的长度,Thumb指令为16位长度。
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%-40%以上的存储空间,同时具备32位代码的所有优点。
3.5ARM嵌入式系统开发工具及调试方法
ARM处理器产品作为一种高性能、低功耗的处理器产品,现在已经得到广泛的应用。
ARM开发工具也因此得到发展,除ARM公司自己推出ARM集成开发工具外,还有一些公司也研发ARM开发工具。
目前市场上有ARMSDT、ARMADS、MULTI2000、HitoolsforARM、EmbestIDEforARM五种集成开发环境。
这些产品在国内有相对较畅通的销售渠道,用户容易购买。
前三种由国外厂商出品,历史比较悠久,在全球范围内应用较为广泛,后两种由国内厂商推出,具有很高的性价比。
ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。
用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。
因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境(IDE)一般来说是必不可少的,至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。
目前常见的调试方法有以下几种。
(1)指令集模拟器。
部分集成开发环境提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作,但是由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发
(2)驻留监控软件。
驻留监控软件(ResidentMonitors)是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。
驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。
ARM公司的Angel就是该类软件,大部分嵌入式实时操作系统也是采用该类软件进行调试,不同的是在嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。
驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用软件的开发,同时它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以对一些要求严格的情况不是很适合。
(3)JTAG仿真器。
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。
JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。
另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。
使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。
目前国际市场上较流行的两种JTAG仿真器:
EPI公司的JEENI和ARM公司的Multi-ICE。
(4)在线仿真器。
在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能。
但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。
在线仿真器通常用在ARM的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。
另外国际市场上较流行的有两种JTAG仿真器:
EPI公司的JEENI和ARM公司的Multi-ICE。
4.ARM嵌入式系统的实时性要求
4.1嵌入式系统软件需要RTOS开发平台
通用计算机具有完善的操作系统和应用程序接口(API),是计算机基本组成不可分离的一部分,应用程序的开发以及完成后的软件都在OS平台上面运行,但一般不是实时的。
嵌入式系统则不同,应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
4.2RTOS
RTOS是英文RealTimemulti-taskingOperationSystem的缩写,即实时多任务操作系统。
它是嵌入式应用软件的基础和开发平台。
目前在中国大多数嵌入式软件开发还是基于处理器直接编写,没有采用商品化的RTOS,不能将系统软件和应用软件分开处理。
RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的API。
RTOS的引入,对嵌入式软件的标准化和加速知识创新是一个里程碑。
5ARM的应用
5.1ARM技术的应用领域
现在,嵌入式技术无处不在,ARM几乎成为嵌入式技术的代名词。
作为一种16/32位高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为应用广泛的嵌入式微处理器。
ARM微处理器及技术的应用几乎已经深入到各个领域。
(1)工业控制领域:
作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
(2)无线通讯领域:
目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固
(3)网络应用:
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
(4)消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛应用。
(5)成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
手机中的32位SIM智能卡也采用了ARM技术。
6.具体实例:
路灯监控通信终端
本系统设计是一种基于ARM7处理器以及利用GPRS技术的路灯监控通信系统的终端,实现远程无线的各路现场数据的传输。
结合上位机软件,将各路数据实时传递到集中监控中心,以实现对路灯运行情况的统一监控和分布式管理。
6.1主要芯片简介
6.1.1LPC2106芯片[2]
LPC2106处理器是菲利普公司的ARM7TDMI-S处理器,该芯片带有一个支持实时仿真和跟踪的ARM7TDMI-SCPU,并嵌入了128KB的高速Flash存储器。
具有ISP和IAP功能,128位的储存器接口和特别的允许在最高时钟周期执行32位代码的加速体系,在代码长度起关键作用的
程序中,可选的16位的Thumb模式在最少的代价下能够减少了超过30%的代码,CPU操作频率可达60MHz;LPC2106体积很小,它有两个低功耗模式:
空闲和掉电,使系统保证在低功耗使用,非常省电,在路灯监控系统中,它是非常理想的选择。
它内部RAM达到64K大小,提供I2C串行和SPI串行接口等接口,使得LPC2106在GPRS系统中能够进行各种扩充;它的两个定时器,分别具有4 路捕获/比较通道,适合路灯控制多路数据处理,看门狗定时器确保了系统的安全,双电源技术保证了系统的可靠性。
6.1.2P87LPC760芯片[3]
P87LPC760是14 脚封装的单片机,适合于许多要求高集成度低成本的场合,可以满足多方面的性能要求。
它是菲利普公司小型封装系列中的一员,P87LPC760提供高速和低速的晶振和RC 振荡方式,可编程选择具有较宽的操作电压范围,可编程I/O口线输出模式选择,可选择施密特触发输入LED 驱动,输出有内部看门狗定时器,P87LPC760采用加速80C51处理器结构,指令执行速度是标准80C51 MCU的两倍特性。
在路灯监控通信终端中作为从处理器。
6.2路灯监控通信终端的硬件方案
6.2.1GPRS通信终端硬件结构
GPRS路灯监控系统终端安装在路灯的各个数据采集点,通过RS232口和RS485口与GPRS透明数据传输终端连接,数据经过协议封装后发送到中国移动的GPRS数据网络,通过GPRS数据网络将数据传送至路灯监控中心,实现路灯终端和路灯监控中心系统的实时在线连接。
GPRS通信终端硬件结构采用主从CPU的设计方法,这样提高系统的可靠性和运行速度,主处理器采用菲利普公司的ARM7TDMI-S处理器LPC2106,主要负责协议的封装,与GPRS通信的实现;从处理器采用菲利普公司的P87LPC760,主要负责对ARM7芯片和GPRS模块的控制。
6.2.2监控通信硬件的实现
在路灯监控通信终端中,主处理器是基于AMR7核心的LPC2106处理器,它是整个系统的硬件核心,连接结构图如图3所示,主要功能是实现GPRS下的通信协议封装及数据传输,同时采用适用于GPRS的AT指令,使用TCP/IP协议将数据打成IP包,经GPRS接口接入无线GPRS网络,并应用Winsock控件来实现接收数据及数据交换。
2.3监控通信控制的实现从处理器使用P87LPC760,主要功能是对LPC2106处理器与GPRS模块的数据传输通信控制;2.4监控通信接口的实现由于监控通信终端是3.3V的系统,而且核心处理器LPC2106的UART1带有完全的调制解调器接口,使用TTL电平,所以使用8路的RS232转换芯片SP3238进行RS232电平转换及串口通信,SP3238芯片是+3.0V和+5.5V的RS232转换器。
具有低功耗、高数据速率、增强型ESD保护等特性。
MAX3485是RS485电平转换,这些口线可保留给用户作为其它功能使用。
6.2.5GPRS模块的实现
中兴ZTE815主要是用来实现GPRS模块,使用SIM卡进行实现。
SIM卡的1和4脚接电源,2脚接地,3脚是复位,与ZTE815的41脚相连;5脚是时钟,与ZTE815的45脚相连;6脚是通信读写I/O引脚,与ZTE815的43脚相连。
6.3GPRS通信的软件方案
软件的设计是本监控通信终端的核心,其中通信模块设计是整个终端软件设计主要部分,软件设计采用ARM公司的ADS集成开发环境,使用C语言进行编程,主要是对LPC2106处理器进行控制,实现协议的封装及与GPRS系统的通信,从初始化串行通讯模块设计到与带SIM卡的GPRS终端的通信流程设计,需要兼顾软件的各个功能模块,包括参数设置、自动接收数据、请求数据以及信号判断等。
6.3.1通信命令处理
通信数据处理主要是针对需要发送的数据和接收到的信息进行相关处理。
通过在ARM7模块建立AT指令实现数据的收发,并实现对AT指令的分析和控制。
本系统用到的AT指令是:
建立TCP/socket连接命令"AT+ISTCP:
";发送数据命令"AT+ISSND%:
";查询数据命令"AT+ISRCV:
";查询数据链路命令"AT+ISST:
";模块退出传输模式命令"AT+IMCM";查询模块信号值命令"AT+CSQ";模块返回数据传输模式命令"ATO";DTU返回控制命令模式命令"AT+I";关闭SOCKET命令"AT+ISCLS:
"。
6.3.2系统主要函数介绍
通信控制是比较复杂的过程,本系统主要的函数有:
(1)接收的字符串与目标pSrc字符串对比函数unsignedcharRecive_GpCmp(constunsignedchar*pSrc,unsignedcharunNum),用于对接收指令的检测;
(2)提取信号强度函数unsignedcharAchieve_IMFSrong(void),信号强度为0~30;
(3)对比连接返回值函数unsignedcharAchieve_Socket(void);
(4)建立SOCKET连接函数voidConnect_Socket(unsignedchar*pIp),该函数负责发送IP地址及端口号,等待时间是一分钟,在数据返回值中,I/000表明连接成功,字柄号为000,I/ERROR表明连接超时或不成功;
(5)查询信号强度函数voidCheck_IMFSrong(void),等于1为查询信号强度状态,等于0为空闲状态,在查信号强度,最长时间3.2秒,时间间隔为6分钟,并在主循环调用该函数;
(6)查询在线状态,秒间隔调用函数voidCheck_Gprs(void),设置在线查询时间间隔为3分钟,两次判断掉线就确认掉线了。
6.3.3数据收发函数的实现
由于篇幅的限制,不能对各函数进行详细的描述,下面主要对数据收发函数进行实现。
6.3.4接收数据函数的实现
voidRecive_Data_Socket(void)
{
unsignedcharbuf[20],i;
Check_IMFSrong();
if(ucGPRSMode&&ucGprsLink)
{
for(i=0;i
ucGPRSMode="1"; //接收数据
UART1_SendStr(buf,i); }
}
6.3.5发送数据函数的实现
Void Send_Data_Socket( )
{
unsigned char i,j,tmp,buf[20];
unsigned short usYn,usTmp,usLen;
if(Len==0)
return
for (i=0;i<>
{
buf[i] = pGPRSCMD[1][i];
}
i--;
buf[i++] = ':
';
for (j=0;j<3;j++)
buf[i++]=szGprsHandle[j]; //数据句柄号
buf[i++] = ',';
usTmp =10000;
usYn="0";
usLen="Len";
for(j=0;j<5;j++) //发送长度
{
tmp="usLen/usTmp";
usLen="usLen"%usTmp;
if(usYn)
{
buf[i++]=tmp+'0';
} else
{
if(tmp)
{
usYn="1";
buf[i++]=tmp+'0';
}
}
usTmp/=10;
}
buf[i++] = ':
';
UART1_SendStr(buf,i);//发送数据头
UART1_SendStr(Data,Len); //发送数据
}
七.小结
回顾这学期的学习,至今我仍感慨颇多,从理论到实践,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。
通过这次学习使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。
在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程的学习,把以前所学过的知识重新温故,巩固了所学的知识。
通过本课程的学习,对AR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 作业