基于S3C44B0X和μCOS-II的嵌入式系统平台设计分析与研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:zs297481492
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着计算机技术和电子技术的日益发展,衍生出了有别与以往的单纯的计算机软硬件和电子技术的嵌入式系统。嵌入式系统已经应用到人们生活,工作,学习的方方面面。本文主要讨论的是目前主流的嵌入式微处理器ARM,并以S3C44B0X和μCOS-II搭建平台,阐述嵌入式系统开发平台的架构、系统工作原理及应用程序开发流程。
  关键词:嵌入式系统;ARM;S3C44B0X;μCOS-II
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21601-02
  
  Based on S3C44B0X and μCOS-II Embedded System Platform Design Analysis and Research
  
  KONG Wei-qing,FAN Xiao-nan,CHEN Dai-mei
  (Anhui University of Science and Technology,Huainan 232001,China)
  Abstract:While the computer and electronic technology flourishing today, the embedded system comes to industrial field that is quite different from the conventional computer software and hardware and the electronic technology which functions widely in our daily life. In this paper, a prevalent embedded micro-processor ARM is introduced with the platform of S3C44B0X and μCOS-II, and elaborats how to build a develop platform of embedded system,the system principle of work and the application programming flow.
  Key words:Embedded system;ARM;S3C44B0X;μCOS-II
  
  1 引言
  
  经过几十年的发展,嵌入式系统已经改变了人们的生活,深入到人们生活的方方面面,而且这种改变还在加速,现实中的嵌入式系统无处不在。当然,要给嵌入式系统下个定义,远非那么简单,所以这里引用IEEE对嵌入式系统的定义:嵌入式系统是:“用于控制、监视或者辅助操作机器和设备的装置”。本文讨论的主要是基于ARM的32位嵌入式系统开发平台的架构。一般情况下,从头开始设计一个系统通常是很花费时间和精力的,因此很多公司都提供了所谓的“开发平台”。开发平台为使用者提供了成熟的、开放式的软硬件资源,并且提供界面友好、功能强大的开发工具环境。利用这些资源,就能够方便地进行各种嵌入式系统产品的二次开发。
  
  2 系统平台框架设计及开发流程
  
  2.1 系统架构及流程:
  由于嵌入式系统是一个受资源限制的系统,因此直接在嵌入式系统硬件(如ARM开发板)上进行编程显然是不合理的。我们通常采用的方法是:先在通用PC上进行编程,然后通过交叉编译和链接,将程序编译和链接成二进制的代码,最后下载到目标平台上的特定位置(如FLASH中),由开发板启动运行这段二进制代码,从而运行起一个嵌入式系统。
  上述流程可见下面的流程图:
  
  图1 系统开发流程图
  2.2 软硬件平台:
  PC机,S3C44B0X开发板, JTAG小板,安装在通用PC机上的一种IDE(如ADS1.2),JTAG调试代理,超级终端以及FLASHRMG等软硬件配置。S3C44B0X上的JTAG口接PC机上的并口,但需要在PC机上运行JTAG.exe这个调试代理,而板上的UART口则连接PC机上的串口。
  2.3 S3C44B0X启动过程及地址空间的分配:
  系统上电复位时,处理器就从0x0地址处开始取得指令运行。由于C程序的运行需要具备一定的条件,例如分配好的外部数据空间、堆栈空间和中断入口等。因此在编写应用程序之前要在程序入口处(0x0)加入必要的初始化代码,即Bootloader。S344B0X可以对8个bank进行寻址,每个bank的最大空间为32MB。由于整个平台都是以处理器为核心的,为了使处理器对各个设备的访问互不干扰,就将不同类型的设备映射到不同的bank内。在本文所用的S3C44B0X平台上,bank的空间分配如下:
  
  图2 外设在S3C44B0X中寻址空间的安排
  2.4 设置系统的程序空间和数据空间:
  通过对链接器的参数设置来完成。将只读基地址(程序空间的开始地址)-r0-base 设置为0x0,读写基地址(数据空间的开始地址)-rw-base 设置为0x0c000000。在仿真调试程序时,即用JTAG进行在线调试时,将-r0-base 设置为0x0c000000,而将-rw-base设置为更高地址的位置上,比如0x0c400000,只要保证不和程序空间发生冲突。
  3 嵌入式微处理器S3C44B0X
  3.1 S3C44B0X简介:
  S3C44B0X是三星公司生产的基于ARM7TDMI核的微处理器,采用了0.25μm CMOS工艺制造,并在ARM7TDMI核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统,是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案。嵌入式系统的硬件是以嵌入式处理器为核心,配置必要的外围接口部件。见下图:
  
  图3 S3C44B0X的扩展硬件结构图
  3.2S3C44B0X中的存储器:
  在基于ARM核的嵌入式应用系统中可能包含多种类型的片外存储器,如FLASH、ROM、SRAM、SDRAM等。
  3.2.1 FLASH:
  由于S3C44B0X本身不具有ROM,所以必须外接ROM器件来储存断电后仍需保存的代码和数据。FLASH具有非易失性,并且可以轻易擦写,因此,得到广泛的运用。这里以SST39VF160为例。如图4 所示,电路采用一片1MB×16位的FLASH(SST39VF160), FLASH ROM采用标准总线接口与处理器交互,处理器通过片选NGCS0与片外FLASH芯片相连。由于是16位的FLASH,空间为0x00000000-0x00200000。FLASH ROM的数据接口为DQ15~0,因此數据宽度是16位。
  
  图4 接口电路
  CPU对FLASH的接口不需要任何软件上的设置,但是要想使CPU正常的对FLASH进行操作,需要2个硬件上的设置:大/小端和Bank0总线宽度。一般情况下:系统都默认使用小端模式。由于FLASH映射在Bank0区,它可能有多种数据总线宽度,这个宽度可以通过硬件来进行设置,即通过OM1~0引脚上的逻辑电平进行设置。如图5所示:   
  图5 Bank0的数据总线宽度设置
  由于这里采用SST39VF160的存储单元组织方式为1M×16b,因此应将Bank0的数据总线宽度设置为01,这样就设置好了总线宽度。
  
  3.2.2 SDRAM:
  通常RAM分为SRAM和DRAM两种。这里主要介绍SDRAM(同步动态RAM)。与FLASH相比,SDRAM不具有断电保持数据的特性,但其存取速度大大高于FLASH,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间,数据以及堆栈区。SDRAM的基本原理和DRAM基本一样,但是这些存储单元的组织和控制就和DRAM大不一样了。SDRAM是多Bank结构,例如在一个具有2个Bank的SDRAM器件中,其中一个Bank在进行预充电期间,另一个Bank却马上就可以被读取,这样进行一次读取以后,又马上可以去读取另一个以及预充电的Bank的数据,无需等待而是可以直接读取。
  
  4 操作系统μCOS-II
  
  4.1 操作系统引入:
  由于32位嵌入式系统性能较之8位的MCU已经有很大的提高,而且现在嵌入式开发过程中,完成的功能越来越强,所以代码量也急速增加,为了减少人们在嵌入式系统开发过程中的工作量以及降低人们在开发中的出错率,现在的嵌入式系统中一般都引入操作系统。
  4.2 μCOS-II介绍:
  μCOS-II是一个简洁、可裁减、可移植固化抢先式的多任务实时的嵌入式操作系统,可用于各种微处理器。由于它高效、简洁和源代码公开,所以现在越来越多的嵌入式系统开发者选用μCOS-II作为开发产品的操作系统。
  4.2.1 μCOS-II的移植及判断是否移植成功:
  所谓移植,就是使一个实时内核能在其他的微处理器或微控制器上运行。由于μCOS-II大部分的代码都是用ANSI C编写的,所以较之其他的OS,移植μCOS-II还是比较容易实现的,但是在编写与处理器硬件相关的代码时还是不得不使用汇编语言。移植的主要工作就是编写这些与处理器硬件相关的代码。
  4.2.2 μCOS-II的扩展和使用:
  μCOS-II操作系统只提供任务运行的内核程序,要实际使用它还要进行μCOS-II的扩展编程,这样才能使其成为一个实用的OS。扩展包括:为外设建立驱动程序及相应的API、创建GUI(如μCGUI、MiniGUI等)、文件系统等。
  使用μCOS-II范例:以下函数实现在μCOS-II中创建2个任务Task1和 Task2,任务堆栈为Stack1和Stack2,任务的优先级为3和4。
  Void main(void )
  { OSInit(); /* 初始化μCOS-II */
  OSTaskCreate(task1,(void )0,&stack1[STACKSIZE-1],3);/*创建了任务Task1*/
  OSTaskCreate(task2,(void )0,&stack1[STACKSIZE-1],4);/*创建了任务Task2*/
  OSStart(); /* 开始任务调度 */ }
  任务Task1和Task2是2个无限循环的函数,可以将要实现的功能放到2个任务里。
  
  5 未来展望
  
  8位MCU由于其性能方面的局限性,已经无法满足嵌入式技术的不断发展的要求。而且现在ARM核价格也在不断的下降,取代8位微控制器是大势所趋。嵌入式Internet是近几年发展起来的一项新的概念和技术。随着Internet技术
  的不断成熟,宽带传送速度的不断提高,网上提供的信息内容日趋丰富,应用项目多种多样。
  6 結束语
  
  本文的着眼点:不仅对S3C44B0X和μCOS-II的一些重要功能、特点、工作原理、开发流程、硬件电路的搭建方面做
  介绍,而且将二者融合在一起,从整体的角度,从设计开发的角度透彻的分析了如何搭建嵌入式平台。现已在本开发平台上已经顺利的进行了μCOS-II的移植,UART等基础实验,系统稳定性得到了实践的验证。由性能卓越的S3C44B0X和简洁高效的μCOS-II能够快捷地构建出性能稳定的系统平台。在此开发平台上只需搭载适当的应用程序,即可开发出实用的产品。
  
  参考文献:
  [1]Labrosse JJ.嵌入式实时操作系统μCOS-II(第2版).邵贝贝.等译.北京:北京航空航天大学出版社,2003.
  [2]马文华.嵌入式系统设计与开发[M].北京:科学出版社,2006.
  [3]三星公司.S3C44B0X Data Sheet 数据手册[M].http://www.samsung.com.
  [4]ARM7TDMI(Rev 4) Technical Reference Manual.ARM DDI 0210B.2001 ARM Ltd.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:随着医疗体制改革,随着医院办公工作人员对计算机使用的日益普及,以及医院现代化管理的要求,需要提高我们医院办公的整体工作效率。利用网络通讯基础及先进的计算机技术,建设一套安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统,可以为医院的行政管理部门提供现代化的日常办公条件及丰富的综合信息服务,实现日常的办公事务处理自动化,以提高办公效率和管理水平,实现医院行政各部门日常业务工作的规
期刊
摘要:网络仿真是一种利用数学建模和统计分析的方法模拟网络行为,从而获取特定的网络特性参数的技术。网络仿真作以其独有的方法为网络规划设计提供客观、可靠的定量依据, 从而缩短网络建设周期,提高网络建设中决策的科学性,降低网络建设的投资风险。本文介绍了一种强有力的网络仿真工具-OPNET,分析了其主要特点、三层建模机制以及仿真方法和步骤,最后通过一个实例来讨论了OPNET技术在具体网络规划和设计中的应用
期刊
摘要:本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案。   关键词:ORACLE数据库;环境调整;优化设计;方案   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21518-02      Large Oracle Database Design
期刊
摘要:以VRML为代表的WWW下的虚拟现实建模技术正在日益受到广泛的重视,基于VRML进行三维仿真建模具有交互、三维全景、多感知等特点。本文以“汽车”为研究对象,讨论、阐述了VRML构造三维模型的实现方法,并给出了建模效果验证。  关键词:VRML;车模;三维造型;节点  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)12-21594-02    Approach o
期刊
摘要:计算机网络中传输的信息涉及政府、军事、经济、文教等诸多领域,其中很多是敏感信息甚至是国家机密,所以难免会吸引夹自世界各地的“黑客”及各种病毒的攻击。这除了计算机网络固有的设计缺陷外,很多是因为计算机语言本身的安全漏洞或用户的不正当使用造成的。为此,本文首先讨论了登录口令的设置和处理,接着阐述了网络数据加密解密,最后分析了代理(Agent) 的实现。因此本文具有深刻的理论意义和广泛的实际应用。
期刊
摘要:基于VHDL的电路系统设计具有设计技术齐全、方法灵活、支持广泛等优点。通过数据选择器的设计实例详细介绍了用VHDL设计电路系统的流程和方法,仿真结果表明满足设计要求,降低了设计难度,提高了工作效率。  关键词:VHDL;电路系统;数据选择器  中图分类号:TN79文献标识码:A文章编号:1009-3044(2007)12-21658-01    The Design of Circuit S
期刊
摘要:IPv6提供了对于移动性的支持,移动通信中的实时应用如IP电话、视频会议等对于服务质量提出了要求。介绍了移动IPv6 的基本原理与RSVP的工作特点,讨论了RSVP在移动环境中应用出现的问题,分析了几种解决方案的优点和不足。  关键词:移动IP;服务质量;资源预留协议  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21554-02    The Qos
期刊
摘要:阐述了层次分析法的基本思想、方法和步骤,给出AHP的特征根计算方法,编写了C语言算法,并且算法通过了数据测试。  关键词:层次分析法;判断矩阵;一致性校验;C算法  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21654-02    The C Algorithm on Consistent Rule Of Judgment Matrix in AHP 
期刊
摘要:本文分析了BitTorrent协议规范,根据torrent文件格式和Bencoding编码规则,在C#.Net2005环境下实现了对torrent文件的解析。根据分析结果,给出了一种下载程序的实现。  关键词:下载程序;BitTorrent协议;torrent;B-encoding  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21661-02    D
期刊
摘要:数据查询是数据库的常规操作之一,数据查询中最有灵活性的是动态查询。本文详细介绍了在Delphi中实现数据查询的各种方法,特别强调动态查询的实现方法,对于每一种方法均给出了实现代码。   关键词:数据库;Delphi;ADO;查询   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21481-02      The Methods of Data Query
期刊