一个典型的嵌入式系统设计和实现
嵌入式系统的设计及实现方法

嵌入式系统的设计及实现方法嵌入式系统是指直接嵌入产品内部,在特定场合下,为产品提供必要的功能的电子系统。
嵌入式系统已成为现代科技的一个重要组成部分,在汽车、空调、电视、冰箱等众多产品中都得以广泛应用。
本文重点讨论嵌入式系统的设计及实现方法。
一、嵌入式系统的设计思路嵌入式系统的设计需要遵循以下几个基本思路:1、功能可靠性嵌入式系统是直接嵌入产品中,产品的稳定性和质量关系到用户的信任和使用寿命。
因此,嵌入式系统的设计应将产品的功能上限和下限掌握好,降低可能发生的异常事故。
2、底层硬件匹配嵌入式系统的设计需要选择正确的芯片和硬件,确保整个系统的稳定性。
硬件的选择应考虑使用场合、使用周期及系统运行速度等多方面因素,保证系统不易出现瓶颈。
3、软件功能丰富嵌入式系统的软件功能应与产品整体需求相匹配。
软件应可以定制,适合市场不断变化和用户需求增加的情况。
要保证软件的可扩展性和可调整性,确保系统在更新机制、用户交互和数据传输方面的灵活应变。
4、可靠性与安全性嵌入式系统应具有很高的可靠性和安全性。
系统的可靠性涉及多方面因素,要确保系统的重要信息不会丢失或泄露。
在硬件、软件开发时都应实现尽可能严格的测试,确保系统在最恶劣的情况下仍能运行稳定。
二、嵌入式系统设计的实现嵌入式系统设计实现包括硬件和软件两个方面。
1、硬件实现硬件设计通常包括原理图设计、PCB设计、焊接以及电路验证测试等环节。
硬件设计要考虑到元器件的可靠性、生产成本、产品的实际使用条件等问题。
硬件设计要根据不同的使用情况、使用场合等因素进行分区,将所有部分组合在一起运作。
2、软件实现软件实现有相对成熟的软件模板。
在实现时,可以使用一些现有的嵌入式系统相应的实现工具:例如,MCUBoot、u-boot 等,这些工具可以通过一些跟板子匹配的配置文件就可以实现相应的功能,并完成整个编译操作。
在软件设计阶段,同时考虑到实际产品的应用场景,充分考虑系统的性能、稳定性以及可扩展性等问题。
嵌入式系统中的芯片设计与实现

嵌入式系统中的芯片设计与实现嵌入式系统是一种专门设计的计算机系统,它能够完成特定的功能并以可控的方式与其他系统交互。
嵌入式系统通常具有小型化、低功耗、高可靠性和实时性等特点,因此被广泛应用于汽车电子、医疗设备、智能家居、工业控制等领域。
而芯片则是嵌入式系统的核心组成部分,其设计和实现的质量直接影响着整个系统的性能和稳定性。
本文将从芯片设计的基础知识、常用工具、设计流程和实现技巧等方面,为读者介绍嵌入式系统中的芯片设计与实现。
一、芯片设计的基础知识芯片设计需要掌握的基础知识包括模拟电路、数字电路、计算机体系结构和嵌入式系统原理。
其中,模拟电路主要涉及到电压、电流、电阻等物理量,需要掌握放大器、滤波器、运算放大器等基本电路的设计和分析方法。
数字电路则是以二进制逻辑运算为基础,涉及到逻辑门、寄存器、计数器、存储器等数字电路的设计和分析方法。
计算机体系结构是嵌入式系统的核心,需要掌握CPU、存储器、总线以及相关的编程语言和开发环境。
嵌入式系统原理则强调对应用场景的理解和特定解决方案的设计,需要掌握具体的硬件和软件实现方法。
二、常用芯片设计工具芯片设计通常需要使用电路仿真、绘图和物理设计等工具。
电路仿真工具能够帮助芯片设计师模拟电路的工作状态和性能,常用的仿真工具有SPICE、PSPICE、HSPICE等。
绘图工具主要用于绘制原理图、布局和连线图,常用的工具有Altium Designer、OrCAD、PCB Artist等。
物理设计工具则是将电路布局转换为物理结构,包括各层电路的布局和相对位置等,常用的工具有Virtuoso Layout Suite、Cadence 等。
三、芯片设计流程芯片设计流程一般包括芯片规格确认、电路设计、验证和测试等步骤。
首先,需要对芯片的规格进行详细的确认,包括输入输出接口、运算速度、功耗和封装方式等方面。
其次,进行电路设计,包括电路原理图绘制、电路布局和连线的确定等工作。
设计完成后,需要进行仿真验证,以确保电路的功能、性能和稳定性。
嵌入式系统设计实例(1)

2.2.1.2 FLASH接口电路设计
– 本设计中设定数据宽度为32位,而在ARM中希望字单元的地址是字对齐的, 这就要求地址的低两位为0,即地址为0B00,因此在连接SDRAM和FLASH时 要使其地址低两位A[0:1]为0。FLASH采用三星的KM29U128T,FLASH在实 际中主要用nFWE、nFOE、ALE、CLE、nFCE等的控制信号,电路图如图2-4 所示。
接
扩
展 板
CPU S3C2410X
接
口
64M SDRAM 16M FLASH 外部晶振
图 2-3 嵌入式水文信息采集智能终端核心板原理图
2.2.1 核心板硬件设计
• 2.2.1.1 CPU S3C2410X功能概述 S3C2410X是基于ARM920T内核的,最大工作频率能达到203MHz;可支持基 本的外设接口,如彩色TFT LCD、USB、IIC、IIS、SPI、UART等,并支持 MMC和SD等标准的外部插卡。S3C2410X能支持NAND FLASH启动,具有很高 的性价比,另外S3C2410X在市场上已有很多成熟的应用,因此作者选用了 S3C2410X作为基于GPRS的嵌入式水文信息采集智能终端的应用处理器,下 面是对S3C2410X功能的简要说明: S3C2410X芯片是韩国三星电子公司推出的一款基于ARM920T内核的16/32位 RISC嵌入式微处理器,作为S3C2410X芯片的CPU内核,16/32位ARM920T RISC微处理器采用0.18um CMOS标准单元结构。ARM920T内核由ARM9TDM1存 储管理单元(MMU)和高速缓存三部分组成。其中MMU可以管理虚拟内存,高 速缓存由独立的16KB地址和16KB数据高速Cache组成。 S3C2410X芯片集成了一个LCD控制器(支持STN和TFT液晶显示屏)、NAND FL-ASH控制器、SDRAM控制器、3个通道的UART、4个通道的DMA, 4个具有 PWM(脉冲宽度调制)功能的计时器和一个内部时钟、8通道的10位ADC。 S3C2410X还有很多丰富的外部接口,如触摸屏接口、I2C总线接口、I2S总 线接口、两个USB主机接口、一个USB设备接口、两个SPI接口、SD接口和 MMC卡接口。在时钟方面S3C2410X也有突出的特点,该芯片集成了一个具 有日历功能的RTC(实时控制)和具有PLL(M-PLL和UPLL)的芯片时钟发生器。 MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。这个工作频率 能够使处理器轻松运行WinCE, Linux等操作系统以及进行较为复杂的数据 处理。
(完整)一个典型的嵌入式系统设计和实现

关键字:嵌入式系统设计ARM FPGA多功能车辆总线Multifunction Vehicle Bus 在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式技术应用范围的急剧扩大.本文介绍了一种基于ARM和FPGA,从软件到硬件完全自主开发多功能车辆总线(Multifunction Vehicle Bus)MVB??B嵌入式系统的设计和实现。
系统设计和实现通常来说,一个嵌入式系统的开发过程如下:1.确定嵌入式系统的需求;2.设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;3.详细的软硬件设计和RTL代码、软件代码开发;4.软硬件的联调和集成;5.系统的测试。
一、步骤1:确定系统的需求:嵌入式系统的典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统开发的导向和前提。
一个嵌入式系统的设计取决于系统的需求。
1、MVB总线简介列车通信网(Train Communication Network,简称TCN)是一个集整列列车内部测控任务和信息处理任务于一体的列车数据通讯的IEC国际标准(IEC-61375-1), 它包括两种总线类型绞线式列车总线(WTB)和多功能车厢总线(MVB)。
TCN在列车控制系统中的地位相当与CAN总线在汽车电子中的地位。
多功能车辆总线MVB是用于在列车上设备之间传送和交换数据的标准通信介质。
附加在总线上的设备可能在功能、大小、性能上互不相同,但是它们都和 MVB总线相连,通过MVB总线来交换信息,形成一个完整的通信网络.在MVB系统中,根据IEC-61375-1列车通信网标准, MVB总线有如下的一些特点:拓扑结构:MVB总线的结构遵循OSI模式,吸取了ISO的标准。
支持最多4095个设备,由一个中心总线管理器控制。
简单的传感器和智能站共存于同一总线上。
数据类型:MVB总线支持三种数据类型:a.过程数据:过程变量表示列车的状态,如速度、电机电流、操作员的命令。
嵌入式系统中的片上系统设计与实现技术

嵌入式系统中的片上系统设计与实现技术嵌入式系统是指将计算机技术与各种应用领域相结合,嵌入到具体的产品或设备中,并且能够完成特定任务的一种计算机系统。
在嵌入式系统中,片上系统(SoC)被广泛应用。
片上系统是指将计算机核心、存储系统、通信接口、外设、调度器等功能集成到一个芯片上,形成一个完整的计算机系统。
片上系统设计与实现技术是嵌入式系统开发中的核心内容,具有重要意义。
下面将详细介绍一些嵌入式系统中的片上系统设计与实现技术。
1. 硬件设计技术:片上系统的硬件设计是整个系统的基础,包括处理器核心的选择与设计、存储系统的设计、通信接口的设计、外设的设计等。
在选择处理器核心时,需要考虑功耗、性能、可编程性等因素;在设计存储系统时,需要根据应用需求选择合适的存储器类型,如RAM、Flash等,并合理设计存储器的组织结构;在设计通信接口时,需要根据数据传输的要求选择合适的接口类型,如UART、SPI、I2C等;在外设的设计中,需要根据具体应用需求选择适当的传感器、执行器等外设。
2. 软件设计技术:片上系统的软件设计是指针对具体应用需求,为系统开发相应的软件。
软件设计包括编写驱动程序、编写嵌入式操作系统、编写应用软件等。
在编写驱动程序时,需要充分了解硬件的特性和功能,充分利用硬件资源,提高系统性能;在编写嵌入式操作系统时,需要选择合适的操作系统,如Linux、RTOS等,并为系统开发相应的设备驱动程序和应用服务;在编写应用软件时,需要根据具体应用需求,设计相应的算法和实现。
3. 片上系统的布局与布线技术:片上系统中,各个功能模块需要相互连接,完成数据传输与处理。
布局与布线技术是指将各个模块在芯片上合理排布,并设计合理的连线。
在布局时,需要考虑各个功能模块之间的连接关系,尽量减少信号传输的路径长度,降低传输时延和功耗;在布线时,需要根据信号传输的特性,选择合适的线宽和线距,保证信号传输的质量。
4. 功耗优化技术:在嵌入式系统中,功耗是一个重要的性能指标。
嵌入式系统中的驱动程序设计与实现

嵌入式系统中的驱动程序设计与实现第一章:嵌入式系统概述嵌入式系统是一种专用型计算机系统,通常包含微处理器、存储器、输入/输出接口和其他外围设备。
这些系统被设计用于执行特定的任务或实现特定的功能。
相对于一般的计算机系统,嵌入式系统通常更加小巧、节能、稳定和高效。
嵌入式系统的应用领域非常广泛,涉及到自动控制、计算机网络、医疗、工业自动化、汽车电子、智能家居等众多领域。
从智能手机和平板电脑,到高铁和飞机上的控制系统,嵌入式系统已经成为现代社会中不可或缺的一部分。
在开发嵌入式系统时,驱动程序是一个非常重要的部分。
驱动程序是一种软件模块,用于控制硬件设备的操作和管理。
它将应用程序与底层硬件之间进行了有效的沟通。
在接下来的章节中,我们将详细介绍嵌入式系统中的驱动程序设计与实现。
第二章:驱动程序的架构嵌入式系统中的驱动程序通常包含两个部分:设备驱动和主程序。
设备驱动负责控制硬件设备的操作和管理。
它向主程序提供硬件抽象层,屏蔽了硬件底层的细节。
主程序则利用设备驱动提供的接口,完成相应的应用功能。
驱动程序的架构通常遵循一般软件工程的设计原则,实现结构分层、模块化、可复用的代码。
设备驱动可以按照不同的硬件设备进行分类,比如网络设备驱动、磁盘设备驱动、串口设备驱动等。
在实现时,可以采用面向对象编程思想,使得代码的设计更加清晰明了。
第三章:驱动程序的实现实现驱动程序的过程通常可以分为以下四个步骤:1. 设备地址映射在计算机系统中,设备通常被映射到一定的地址空间中。
驱动程序需要获取设备的物理地址,并将其映射到操作系统的虚拟地址空间中。
这样,驱动程序才能正确地与硬件设备进行交互。
2. 硬件的初始化和配置在设备地址映射成功后,驱动程序需要对硬件进行初始化和配置,以确保硬件设备能够正常运行。
比如,对于一个串口设备,驱动程序需要配置波特率、数据位、校验位等参数。
3. 设备操作的实现驱动程序的核心是硬件设备的操作函数实现。
驱动程序需要对不同的设备类型实现不同的操作函数,例如对于网络设备,包括接收和发送数据的实现;对于磁盘设备,包括读写数据的实现。
嵌入式系统的设计和实现

嵌入式系统的设计和实现嵌入式系统是指集成了计算机芯片、控制器、传感器等硬件设备的特殊电子设备系统。
它通常运行在一些资源受限的嵌入式处理器上,具有实时性、可靠性、成本低廉等特点。
如今,随着信息技术的迅速发展,嵌入式系统已经广泛应用在各种领域,例如智能家居、智能交通、智能医疗等。
嵌入式系统设计开发的核心,在于硬件电路的设计和程序代码的编写。
本文将从嵌入式系统的设计和实现两个方面,探讨如何开发一款成功的嵌入式系统。
一、嵌入式系统的设计1.硬件电路设计嵌入式系统的硬件设计是系统整体性能的基础,是开发过程中必不可少的一步。
在设计硬件电路时,需要首先了解嵌入式系统所需的硬件组件,比如处理器、存储器、输入输出设备、传感器等。
其次,需要根据设计目标和系统要求,选择合适的硬件设备,并将其组合成合理的电路结构。
最后,需要完成电路设计的的绘制及原理图、PCB的布线等工作。
在这个过程中,设计者需要考虑功耗、散热、成本等多个因素。
2.软件设计嵌入式系统的软件设计是嵌入式系统开发的重中之重。
在软件设计方面,需要仔细考虑嵌入式系统的程序架构及程序设计模式,比如事件驱动模型或多任务模型。
同时,需要考虑系统的实时性和稳定性,确保系统代码的质量和可靠性。
在软件设计过程中,需要使用一些工具和开发环境,如Keil、IAR、Eclipse等集成开发环境。
3.测试与调试测试和调试是嵌入式系统开发的重要环节,只有将系统进行充分测试与调试,才能保证系统的正确性和稳定性。
在测试过程中,需要首先进行各个模块的单元测试,以验证系统的功能是否正常。
然后进行集成测试,交叉验证各个模块的协同工作是否正常。
最后进行耐久性测试和压力测试,确保系统能够在各种恶劣环境环境下正常运行。
二、嵌入式系统的实现1. 系统内核系统内核是嵌入式操作系统的核心,也是嵌入式系统的核心。
系统内核需要提供一个可靠的执行环境和一些重要的操作系统服务,如任务管理、内存管理、中断管理、设备驱动程序和通讯协议等。
嵌入式系统设计与实现

嵌入式系统设计与实现嵌入式系统是一种基于微处理器或微控制器的系统,它具有高度集成、占用资源少、功耗低、响应速度快等特点。
嵌入式系统的应用范围非常广泛,如智能家居、汽车电子、医疗设备、航空航天等领域都有嵌入式系统的应用。
嵌入式系统的设计和实现是嵌入式技术的核心问题,下面我们来探讨一下嵌入式系统的设计和实现。
一、嵌入式系统的设计嵌入式系统的设计包括硬件设计和软件设计两个方面,其中硬件设计是通过硬件电路来实现嵌入式系统的功能,软件设计是通过软件程序来控制硬件电路来实现嵌入式系统的功能。
1.硬件设计嵌入式系统的硬件设计是嵌入式系统设计中非常重要的一部分,它是指通过硬件电路来实现嵌入式系统的功能。
硬件设计包括电路原理设计、电路板设计、试制调试等环节。
电路原理设计是整个硬件设计中最基础的一步,它通过电路原理图的设计描述硬件系统的功能和性能要求。
根据电路原理设计,进行电路板布线设计,把电路原理图中的模块进行合理地布局,最终实现整个电路板的设计。
在电路板设计完成后,需要进行试制调试。
试制调试是把硬件设计的结果用实体样机进行测试和验证的过程。
通过试制调试,对硬件电路的性能进行测试和验证,对华丽版进行调整和修改,最终在硬件上实现嵌入式系统的功能。
2.软件设计嵌入式系统的软件设计是通过软件程序来控制硬件电路来实现系统的功能。
软件设计包括嵌入式系统开发的整个过程,包括系统调研、需求分析、架构设计、程序编写和调试等环节。
在软件设计中,需求分析是一个非常关键的环节,它通过与用户和应用场景的沟通了解用户需求和应用场景的特点以及限制因素,确定系统的需求规格和性能要求,为软件架构设计提供了基础。
在软件架构设计中,选择合适的操作系统和软件架构对于嵌入式系统的功能实现和性能优化有着至关重要的作用。
在程序编写和调试环节中,需要对软件程序进行不断地优化和调试,以提高系统的运行效率,实现嵌入式系统的功能。
二、嵌入式系统的实现嵌入式系统的实现是指将硬件设计和软件设计有机地结合在一起实现嵌入式系统的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键字:嵌入式系统设计 ARM FPGA多功能车辆总线Multifunction Vehicle Bus在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式技术应用范围的急剧扩大。
本文介绍了一种基于ARM和FPGA,从软件到硬件完全自主开发多功能车辆总线(Multifunction Vehicle Bus)MVB??B嵌入式系统的设计和实现。
系统设计和实现通常来说,一个嵌入式系统的开发过程如下:1.确定嵌入式系统的需求;2.设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;3.详细的软硬件设计和RTL代码、软件代码开发;4.软硬件的联调和集成;5.系统的测试。
一、步骤1:确定系统的需求:嵌入式系统的典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统开发的导向和前提。
一个嵌入式系统的设计取决于系统的需求。
1、MVB总线简介列车通信网(Train Communication Network,简称TCN)是一个集整列列车内部测控任务和信息处理任务于一体的列车数据通讯的IEC国际标准(IEC-61375-1), 它包括两种总线类型绞线式列车总线(WTB)和多功能车厢总线(MVB)。
TCN在列车控制系统中的地位相当与CAN总线在汽车电子中的地位。
多功能车辆总线MVB是用于在列车上设备之间传送和交换数据的标准通信介质。
附加在总线上的设备可能在功能、大小、性能上互不相同,但是它们都和 MVB总线相连,通过MVB总线来交换信息,形成一个完整的通信网络。
在MVB系统中,根据IEC-61375-1列车通信网标准, MVB总线有如下的一些特点:拓扑结构:MVB总线的结构遵循OSI模式,吸取了ISO的标准。
支持最多4095个设备,由一个中心总线管理器控制。
简单的传感器和智能站共存于同一总线上。
数据类型:MVB总线支持三种数据类型:a.过程数据:过程变量表示列车的状态,如速度、电机电流、操作员的命令。
过程变量的值叫过程数据。
它们的传输时间是确定的和有界的。
为保证这一延迟时间,这些数据被周期性地传送。
b.消息数据:消息被分成小的包,这些包分别被编号并由目的站确认。
消息包及与之相关的控制数据形成消息数据。
消息数据以命令方式传输。
功能消息被应用层所使用;服务消息用于列车通信系统自身的管理等。
c.监视数据:是短的帧,主设备用它作同一总线内设备的状态校验、联机设备的检测、主权传输、列车初运行和其它管理功能。
介质访问形式:MVB总线支持RS485铜介质和光纤。
其物理层的数据格式为1.5Mbps串行曼彻斯特编码数据。
MVB的介质访问是由总线管理器BA进行管理的,总线管理器BA是唯一的总线主设备,所有其它设备都是从设备。
主设备按照某种预定的顺序对端口进行周期性轮询,在周期的间隔中,主设备转而处理偶发性请求。
可靠性措施:MVB容错措施包括发送的完整性:链路层有扩充的检错机制,该机制提供的汉明码距为8,可检测位、帧和同步错误。
故障的独立性:通常对铜介质进行完全双份配置,以确保设备故障的独立性。
发送的可用性:可用性可以通过介质冗余、电源冗余、管理器冗余等措施得以提高。
2、MVB系统的基本需求如下:a.完全与IEC-61375-1(TCN)国际标准兼容,支持MVB总线定义的三种数据类型过程数据,消息数据,监视数据。
b.系统可配置成为:i.总线管理器(BA)功能ii.总线管理器(BA)功能和通信功能iii.独立的通信功能c.采用ARM7TDMI的处理器d.采用实时操作系统e.供TCN的实时协议栈协议(RTP)f.支持 4096逻辑端口的过程数据g.支持与上位PC104主机的双口RAM接口h.输入电压5Vi.工作环境温度:-40℃~75℃3、其他需求多功能车辆总线MVB系统与用户的列车控制系统同步设计,有着严格的时间限制。
二、步骤2:设计系统的体系结构,协同分配硬件/软件方面的要求嵌入式系统包含硬件和软件两部分:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持包BSP。
嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能。
根据OSI的七层模型可以确定链路层和物理层由硬件实现,其他各层由软件实现,如图1。
图1:MVB的OSI模型和MVB系统软硬件划分。
1、嵌入式操作系统选择:通常而言,为一个嵌入式系统选择操作系统要考虑如下几个因素:操作系统支持的微处理器操作系统的性能操作系统的软件组件和设备驱动程序操作系统的调试工具,开发环境、在线仿真器(ICE)、编译器、汇编器、连接器、调试器以及模拟器等等操作系统的标准兼容性操作系统的技术支持程度操作系统是提供源代码还是目标代码操作系统的许可使用情况操作系统的开发者声誉状况根据系统的需求和以上的原则,在MVB系统中采用了Vxworks实时操作系统,VxWorks是风河公司(Windriver)开发的实时操作系统之一,以其优秀的可靠性、实时性及内核的可裁减性,被广泛应用于通信、军事、航天、航空、工业控制等关键行业领域,其开发环境为Tornado。
2、处理器的选择:在为嵌入式系统选择处理器时需要考虑以下几个方面:性能:处理器必须有足够的性能执行任务和支持产品生命周期。
工具支持:支持软件创建、调试、系统集成、代码调整和优化工具对整体项目成功与否非常关键。
操作系统支持:嵌入式系统应用需要使用有帮助的抽象来减少其复杂性。
开发人员过去的处理器经验:拥有处理器或处理器系列产品的开发经验可以减少可观的学习新处理器、工具和技术的时间。
成本,功耗,产品上市时间,技术支持等等在本系统的设计中,综合以上各方面的因素,考虑到处理器性能,操作系统支持以及列车上严酷的工业环境等等,在MVB系统中选用了ATMEL用于工业控制领域的工业级的AT91系列ARM处理器AT91M40800,它是基于ARM7TDMI内核,内含高性能的32位 RISC处理器、16位高集成度指令集、8KB片上SRAM、可编程外部总线接口(EBI)、3通道16位计数器/定时器、32个可编程I/O口、中断控制器、2个USART、可编程看门狗定时器、主时钟电路和DRAM时序控制电路,并配有高级节能电路;同时,可支持JTAG调试,主频可达到40MHz。
3、相关外部设备的选择:在确定操作系统和处理器之后,就可以确定相关的外部设备,如FLASH,RAM,串口等等。
在MVB系统中,MVB控制器 MVBC(Multifunction Vehicle Bus Controller)是一个MVB电路和实际的物理设备之间的接口控制器,它的主要功能是实现MVB总线信号与数据帧的编解码,纠错等功能,是本系统中要实现的关键的硬件模块。
由于系统规模,上市时间等方面的要求,系统暂时不考虑ASIC实现,因此在MVB系统中用FPGA来实现这个关键模块,FPGA是ASIC最灵活和最合算的替代方案。
考虑到系统需求与FPGA资源,成本,供货情况等因素,最终选择了Altera公司的Cyclone系列FPGA, 其开发工具是Quartus II。
4、MVB系统架构由以上的需求分析和选型,完整的系统硬件架构和软件架构如图2图3所示图2:MVB系统的硬件架构。
图3:MVB系统的软件架构。
其中,处理器和MVBC通过Traffic Memory(TM)进行通讯数据交换,所有软件和MVBC要交换的控制信息和数据都可以在TM地址空间中找到,这个地址空间对处理器和MVBC都是可访问的。
其示意图4如下图 4:Traffic Memory 。
三、步骤 3:详细的软硬件设计和 RTL 代码、软件代码开发在系统架构确定的基础上,详细的软硬件设计就可以开始了。
1、硬件设计硬件设计设计包括了 MVB 控制器的 FPGA 设计和 MVB 总线系统的板级设计,其中 关键的 MVB 控制器的设计如图 5如图所示,MVB 控制器包含以下功能模块:编码器:产生曼彻斯特编码, 传送数据帧 发送缓冲区: 作为要发送的 数据和 CRC 检 图 5:MVB 控制器的框图。
(点击放大该图) 译码器:接收、 曼彻斯特译码,数据提取、数据错误检测 接收缓冲区:作为接收端数据和 CRC 结果的缓冲区 报文分析单元:检测主帧和从帧超时,帧误检测、错误状态报告 状态控制寄存器:MVBC 配置 主控单元:支持 MVBC 作为主设备或者从设备工作,支持队列消息传送 设备地址读取和储存单元:硬件定义的设备地址可以被不同的值覆盖测值的缓冲区地址逻辑:把CPU对MVBC内部寄存器进行访问的输入地址进行解析;产生MVBC访问TM的输出地址总线复用、转换单元:处理MVBC内部的数据传送中断逻辑:支持16种中断源;通用定时器:两个定时输出信号,可提供给系统同步使用时钟产生电路:产生所有MVBC工作的时钟和计数器2、软件设计由于在MVB系统中,过程数据,消息数据,监视数据是三种不同的通讯机制,因此,MVB系统软件的模块设计如图6。
四、软硬件的联调和集成下面,以一个简单的例子来说明MVB系统的软硬件的集成和验证。
过程数据在MVB系统中是周期性发送的数据,其在本系统中的图6:MVB系统软件模块。
通讯机制如下:对于发送方,用户应用模块将一个端口的过程变量发送给过程数据处理模块,过程数据处理模块按照逻辑端口的设置定时通过链路层接口模块更新Traffic Memory当中的相应逻辑端口的数据,此时发送方软件的任务完成。
发送方的MVBC硬件接收总线管理器BA定时发出的主帧,通过译码器解码得到相应的逻辑端口的值,通过查询Traffic Memory相关的逻辑端口发送设置后将MVBC自动设置为发送状态,将逻辑端口的数据作为过程数据从帧通过编码器发出,如图7所示:对于接收方,其接收过程与发送方相逆,接收方的MVBC硬件接收总线管理器BA定时发出的主帧,通过译码器解码得到相应的逻辑端口的值,图7:过程数据通讯示例。
通过查询Traffic Memory相关的逻辑端口接收设置后将MVBC自动设置为接收状态将,在收到发送方发出的从帧后更新相应逻辑端口在Traffic Memory的数据并发出中断信号从而完成硬件的接收过程。
接收方的软件可以用中断或定时查询的方式通过过程数据处理模块得到更新后的逻辑端口的过程数据五、系统的测试在本系统中,系统的测试即包括了软件的测试,也包括了硬件,FGPA的测试,在本文中不再赘述。
结束语上述的MVB系统现已运行在列车控制系统中,成功实现对列车的运行控制、机车控制、车辆控制、状态监测、故障诊断。
当然,如有需要,本文中的MVB系统可以转化成为ASIC设计,从而成为一个SOC的嵌入式系统。