基于ARM的嵌入式系统开发的方案

2018-02-12 19:41:52编辑:什么鱼 关键字:ARM  嵌入式系统开发

    1 背景介绍

    在日益信息化的社会中,各种各样的嵌入式系统已经全面渗透到日常生活的每一个角落。嵌入式系统的功能越来越复杂,这就使得一个嵌入式系统产品从市场需求立项到方案选择、样机研制、定型量产所需要的开发费用越来越多,所需开发时间越来越长。因此,高效的嵌入式系统设计方法就显得尤为重要。

 

    1.1 传统的嵌入式系统设计方法

    嵌入式系统开发的关键就是对核心部分进行功能验证。传统的验证方法是建模模拟和制作目标板评估。

    通过建模来进行功能验证存在不足。首先就是耗时和准确性互相矛盾。建立高层次的模型需要的时间短,但是模拟不够准确。相反,低层次的模型可以达到满意的评估效果,但是建模耗时长。其次,建模模拟是静态的过程,不能很好地反映系统实际运行的情况。好的目标板,各部分连接已经固定。如果需要改动部分连接,只能重新设计制版。这样一来就会大大延长产品的上市时间,还会增加开发费用。新推出的嵌入式系统产品,开始设计时比较难把所有的技术细节考虑清楚,有时甚至是边设计边修改性能指标,因此直接制作专用的目标板原型已经不太适合复杂的嵌入式系统产品的设计。

    1.2 嵌入式系统模块化设计方法

    嵌入式系统设计要求做到可测性、高效性和灵活性。目前,嵌入式系统物理尺寸越来越小,功能越来越复杂。为了方便调试、维护系统,完全可测显得极为重要。另一方面,模块化的设计方法越来越引起人们的关注。模块化设计方法将复杂的系统合理地划分出不同的功能模块,然后充分利用已有的模块,设计新的模块,最后将这些模块连接起来组成目标系统。模块化的设计方法减少全新的设计、降低开发难度、节省开发成本、缩短开发时间,是一种高效的嵌入式系统设计方法。另外,各个模块连接的灵活性是非常重要的,它直接决定模块的组合能力。

    2 基于ARM核的快速原型化平台

    嵌入式系统硬件有如下特点:

    1、嵌入式硬件以嵌入式处理器为核心。嵌入式处理器的种类众多,功能各异。

    2、相对嵌入式处理器,嵌入式系统外设的种类较少,接口标准也比较统一。

    3、随着EDA的发展,SOC(system on Chip)的应用越来越广泛。

    2.1 ARM核处理器的特点

    ARM核处理器因为其低成本、低功耗、高性能的优点广泛应用于嵌入式系统。基于ARM核处理器是高度集成的SOC,包括ARM核和各种各样的外设。图1是基于ARM核处理器的常见结构。存储器控制接口为外接存储器提供了总线接口。该总线接口支持不同种类的存储器芯片以及不同的存储操作。此外,还可以用该总线来扩展外设。片内外设包括中断控制器.html" target="_blank">控制器、OS定时器、UART、I2C、PWM和AC97等等。在这些片内外设中,有些信号是复用的,这样做的好处是方便用户使用。用户如需要片内外设,只需要配置相关的寄存把片内外设连接到通用I/O即可,非常灵活,例如USB接口的服务器/客户端。有些片内外设有专用的信号。用户通过连接或者扩展这些通用I/O和专用I/O来使用片内外设。当片内外设不能完成目标系统的功能时,需要通过总线来扩展特殊的外设芯片。


图1(ARM核处理器框图)


图2 (ARM核处理器的嵌入式系统的框图)

    2.2 基于ARM的快速原型化平台的实现

    图2是基于ARM核处理器的嵌入式系统的框图。该系统分成两个部分,一部分是最小系统,由嵌入式ARM核处理器和存储器组成;另外一部分包括从嵌入式处理器片内外设接口直接扩展的外设和通过总线扩展的外设。为了充分利用模块化设计方法,这些部分应该能够通过灵活的互连组成一个平台。灵活的互连功能由互连模块完成。

 

    可编程器件如CPLD和FPGA,可以在系统编程,修改连接只需要修改相应的控制程序即可,非常方便灵活。CPLD成本低,运行速度快,但是集成度比较低。FPGA集成度高,可以实现CPLD很难实现的复杂的逻辑功能,例如内嵌逻辑分析仪程序,获取必要的信号,完成系统在线测试。FPGA另外一个优势就是可以动态配置,例如系统上电时配置自检程序,自检通过后再配置实际工作的程序。最后,在FPGA里面嵌入CPU软核,进行SOC的开发。所以可编程互连模块选用FPGA来组成。

    为了确定可编程互连模块的插入位置,再来分析图2嵌入式系统的结构。

    最小系统决定了整个系统的处理能力,是整个系统的核心。常用的嵌入式处理器的时钟周期已经高达400MHz,并且会进一步发展。连接处理器的总线速度和存储器芯片的速度也超过了100MHz。FPGA引脚到引脚的延时是几个纳秒的数量级,所以FPGA模块的插入会降低整个系统的处理速度。故在处理器和存储器之间不能插入FPGA模块。外设可以使得嵌入式系统和实际应用环境进行通信和交互操作。通常外设已经高度模块化并且相互独立,在外设之间几乎不会有柔性连接的要求,而且处理器和外设之间的数据通信速度比最小系统的运行速度要慢很多。因此,用互连模块取代最小系统和外设之间的直接物理连接是切实可行的。

    按照这种思路,设计出了如图3所示的快速原型化平台。


图3(快速原型化平台)

    图3中,可编程互连模块是快速原型化平台的核心部分。常用的外设部分包括:网卡,USB接口,LVDS接口,RS-232接口,RS-485接口,音频AC`97接口,PCMCIA/CF卡接口。这些常用外设就是前文提到的可重复利用的模块。由于嵌入式处理器的总线、通用I/O、专用I/O和各种外设都连接在可编程互连模块上,因此不同的嵌入式处理器只需要设计最小系统即可,然后将该最小系统接入快速原型化平台,利用这个平台提供的外设进行系统调试。

    以上设计的快速原型化平台,不仅考虑了当前嵌入式硬件系统的发展特点即嵌入式处理器种类多,外设种类相对较少,接口标准趋于统一,同时又充分体现了可测性、灵活性、模块化的设计思想。

    3 随机方向信号的可配置互连

    常见的信号传输方向不管是单向的还是双向的,都可以预先确定。例如,数据总线是双向的,读或者写是完全确定的,可以通过读写信号来控制数据的传输的方向。但是有一类特殊的总线,例如I2C,它是多主/从的通信总线。如图4所示,如果设备1发起通信,则SCL上的信号传输方向是从设备1到设备2,如果是设备2作主设备发起通信,则SCL的上的信号传输方向刚好相反。系统设计中要求总线上可以双向传输信号。FPGA内部由一系列的逻辑门组成,如果I2C 信号通过FPGA来连接的话,就不能正常工作。这是因为,双向传输可以等效视为由两个反并联的门来实现(如图5,用方向控制信号来确定实际的传输方向)。但是,I2C信号,没有明确的方向控制信号,也就无法正确地通过图5 所示结构的电路。


图4(I2C总线)


图5(双向信号传输)

    如果直接布线或者跳线来连接I2C信号,就可以保证I2C正常工作,但是,这就和快速原型化平台可配置互连的灵活性相违背,所以提出以下方案。 I2C信号不经过FPGA来配置连接,而是通过基于MOSFET的数据开关。目前,市场上常用的点到点任意方向的MOSFET开关并不能直接使用。因为常见的结构是一路到多路或者多路到一路。利用CPLD来控制选通,多路并联就可以组成8X8的点到点的随机方向的可配置连接。是一路到八路的数据开关的内部结构。


关键字:ARM  嵌入式系统开发

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018021237743.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:嵌入式系统设计中ARM仿真器的作用
下一篇:基于单片机的嵌入式网络接入设计方案

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM学习之中断体系结构

CPU的“青睐”。还有一个皇后级别的中断源,叫做快速中断源。她比较牛X,只要请求,CPU就会“临幸”。(好似宫斗剧啊)。3.当发生中断后,具体我们该如何编程呢? 答:当一个异常发生时,这时ARM 的CPU将自动完成如下事情(要记住,是自动): (1)、lr寄存器保存目前指令的下一条指令地址。一般是(PC+4或PC+8) (2)、将CPSR的值复制到SPSR。 (3)、将CPSR的工作模式位设置为异常对应的工作模式。 (4)、转去执行此异常对应的向量表中的相应指令(并不只是中断处理函数)。对于我们来说,我们需要在异常向量表对应的地址处完成以下事情: (1)、保存运行的环境
发表于 2018-07-21 12:21:44

ARM学习之内存管理单元(MMU)

与映射表的一种机制(专业上叫页表)。虚拟地址到物理地址的映射。简单来说,CPU发出的虚拟地址,MMU通过查询这种映射表把这种虚拟地址转化为物理地址。在ARM体系中,用的有段(一级页表)、大页、小页、极小页(二级页表)等页表类型。4.运行地址和加载地址分别是什么意思,有什么区别? 答:在ARM中,当程序被烧写到FLASH中,用的就是加载地址。是烧写到FLASH中的某地址上。当程序运行时,程序所处的地址就是运行地址,也叫做链接地址。在烧写ARM裸板程序时,如果在链接时,不指定链接地址的话,程序的加载地址就是链接地址。当指定了某段的链接地址时,运行到此段时,此段必须处在所指定的链接地址上,否则可能会出现程序崩溃(其实,如果指定段中
发表于 2018-07-21 12:21:03

ARM学习之Nand FLash控制器

今天学习了Nand Flash的一些内容。在此做下回忆和总结:1.什么是Nand Flash? 答:Nand FLash是一种非易失性的存储性介质,一般用于保存嵌入式系统运行所必需的操作系统、应用程序、用户数据等,地位和PC上的硬盘类似。一般来说,它的接口引脚不像SDRAM那样多(SDRAM有20多根),一般也就是十几根。以三星公司的K9F1208U0M为例,如下所示。 正因为它的数据引脚较少,所以它的命令、地址、数据都是公用这一组IO引脚再配上ALE、CLE等其他使能信号进行传输的。操作Nand Flash(读、写、擦除)也和简单,基本上是按照传输命令、传输地址、最后读写数据这样一个流程实现的。这些命令在具体的
发表于 2018-07-21 12:19:08

ARM学习之时钟体系结构

今天在宿舍学习的是S3C2440的系统时钟体系,这部分的难点不是很多,所以相对来说轻松点,但还是把感悟记录下来吧。1.S3C2440的的时钟体系有哪些?它们分别有什么作用? 答:以前一直有个小疑问,你说,这CPU运行那么快,外部的设备运行的就比较慢,那它们的时钟源怎么匹配呢?哦,今天算是差不多弄清楚了。因为它们有不同的时钟源。就S3C2440来说, 它有三种时钟源: (1)FCLK:用于CPU核。 (2)HCLK:用于AHB总线上的设备,比如CPU核存储器控制器、中断控制器、LCD控制器、DMA和USB主机模块等高性能的设备。 (3)PCLK:用于APB总线上的设备,比如WATCHD
发表于 2018-07-21 12:00:45

ARM裸机程序开发——按键控制LED灯

这几天将TQ2440上的IO控制引脚学习了一下,了解了一下关于引脚的一些寄存器的配置,熟悉了一下写ARM裸机程序的流程,写一下自己学到的东西。★程序启动初始化◇关闭看门狗有一个专门的寄存器来控制看门狗,看门狗的作用就是在一定的时间内会重新启动系统,这里我们只是写一个简单的逻辑程序用不到看门狗 ,将其关掉。设置WTCON寄存器,将其第5位置0,就可以禁用看门狗◇设置栈指针C语言中设置的变量,以及调用的函数等信息都会被存放在栈中,因此栈指针必须要设置◇调用main函数main函数中设置了关于IO寄存器的一些设置操作★TQ2440硬件相关硬件主要涉及到LED灯与GPIO,按键与GPIO之间的连接◇LED灯硬件   
发表于 2018-07-21 11:48:01

浅谈:如何基于国产CPU的云平台构建容器管理平台

,哇!阿里的!据工作人员介绍目前已有业务系统运行在基于华芯通CPU的云平台上,云平台就是ZStack。热心的工作人员带我去华芯通的专柜进行详细参观。看到实物那一刻,颠覆了我的想法,这个跟x86架构的服务器没什么区别啊!一直以为他是一个类似路由器这样的小盒子。没想到ARM服务器工艺已和x86服务器自造工艺无太大区别。国产云平台 ZStack作为国内为数不多的自研云平台,根据官网信息已发布基于国产CPU架构的版本,那么完全可以实现基于国产CPU架构来构建国产云平台。这架构图摘自他们的产品白皮书,从架构上看整个逻辑还是比较清晰,各组件依赖度并不高,不会因为管理控制节点故障而影响业务系统。经过仔细研究ZStack架构发现以下特点:全异
发表于 2018-07-16 10:43:01
浅谈:如何基于国产CPU的云平台构建容器管理平台

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved