以ARM和DSP为核心的实时仿真平台的开发

发布者:知音学友最新更新时间:2008-11-26 来源: 电子设计应用关键字:ARM  DSP控制器  船舶推进  嵌入式  开关量  轮机模拟器  采样周期  中断方式  功率驱动  闭环控制系统 手机看文章 扫描二维码
随时随地手机看文章

  

  摘 要:针对复杂的船舶推进系统仿真实时性的提高和精确度的需要,设计了以ARM+DSP嵌入式系统为核心的实时仿真平台,并分别详细论述了嵌入式仿真平台的硬件结构和技术特点,介绍了ARM,C5000和C2000核心软件结构以及芯片之间的内部通信,提供了具体实现高速运算和实时精确控制的新颖技术方案以及通用的仿真平台。

  关键词:仿真;ARM+DSP;核心软件;内部通信

  引 言

  一个大型的船舶轮机模拟器蕴含着30多个全物理过程的数学模型,涉及千余个实时参变量,通常采用功能分散的DCS网络来实现。即便如此,个别仿真工作站由于模型复杂、任务繁重,难以满足实时仿真的要求。例如,动力推进系统的仿真是一个半实物在环的仿真系统,其中既有虚拟的动力装置即仿真计算机上运行的数学模型,又有真实的控制盘台、物理显示设备,是一种集实时控制和高速运算功能于一体的典型系统。

  早期开发成功的SMSC2000型轮机模拟器采用工控机作为仿真计算机,所有数据的处理和输入输出的控制都经过它的数据采集卡来完成。推进系统仿真的精确度与实时性无法两全。近期航运仿真中心在开展多模式机舱仿真实验的同时,针对I/O点最多(200多个)、半实物环境最复杂的船舶推进系统进行了剖析,研制了嵌入式微机的新颖仿真平台。

  船舶推进系统仿真平台的选取

  船舶推进系统仿真平台需要有很强的控制接口(输入输出)能力和高速的数字运算处理能力。TI公司的DSPC2000系列率先为电机的实时控制开拓了应用领域,但并不适合于具有众多I/O的复杂机电模型的仿真。由于市场上无现成的仿真装置可购,只能针对机舱模拟器的对象自行探索。实际上,当代嵌入式芯片既提供了高速的数字信号处理器(DSP),也提供了有强大控制功能的微控制器(MCU)。采用MCU+DSP架构,就可兼备两者的长处。

  基于ARM核的32位RISC微控制器在监视控制、人机接口方面的功能非常完善,数字信号处理器(DSP)对各种数字信号或数据处理的能力十分强大。因此,许多嵌入式实时应用系统采用ARM+DSP的结构组合来充分发挥两种处理器的优势,从每个处理器中获得最大益处,以获得更高性能。其中,ARM作为主处理器,负责任务管理、输入输出接口、对外部设备的控制,甚至运行嵌入式操作系统;而DSP作为从处理器,仅仅负责快速的数据运算处理。两个处理器核之间通过共用一部分存储器等方式进行通信。

  以ARM+DSP为核心的嵌入式系统具有很强的控制接口能力和高速数字处理能力,用来代替以工控机为核心的仿真系统,可以达到实时运行精确的船舶推进系统的数学模型、实时控制外围物理设备的目的,从而实现精确实时的半物理实物在环的船舶推进仿真系统。

  ARM+DSP嵌入式船舶推进系统仿真平台的硬件结构  

  ARM+DSP嵌入式仿真平台主要由以ARM,C5000DSP,C2000DSP3个处理器为中心的功能部分构成。其中ARM部分的ARM核微控制器是主处理器,是整个系统的控制中心。ARM部分带有自己的FLASH,RAM,A/D,D/A转换器等外围设备,主要负责上电后完成整个系统的自举加载和系统的任务分配、从物理设备输入和向物理设备输出信号、通过CAN总线与上位计算机通信等。C5000DSP部分主要运行船舶推进系统的数学模型,并将仿真所得的转速和转矩的数据传递给C2000DSP部分的电机控制单元,以在电动机上表达出推进系统的实时状态,即用电动机来模拟推进主机。

  C2000DSP部分的功能是接收C5000DSP部分数学模型的运算结果,按照该结果控制电动机达到仿真的转速和转矩,最终实现用电动机来模拟推进主机。这3个部分按一定的方式组合在一起,构成一个整体,共同完成推进系统仿真的任务。其基本组织结构如图1所示。

  

  图1 ARM+DSP嵌入式微机系统的基本组成

  [page]实际上,从可靠性角度考虑,对于ARM部分和C5000DSP部分,采用一块ARM7+C54x的双核芯片(TI的TMS320VC5470)把两部分的核心集成到一起。这两部分的主要外围设备有ARM侧的FLASH,SRAM,SDRAM,键盘,LCD,CAN总线接口,A/D,D/A转换器(用于模拟量的输入输出),光耦电路(用于数字量或开关量的输入输出),用于编程调试用的JTAG接口及DSP侧的程序空间外扩SRAM,数据空间外扩SRAM,及I/O空间的FIFO(用于向C2000DSP部分传递数据)。这两部分的硬件组织结构如图2所示。

    图2 ARM和C5000DSP的硬件结构

  C2000DSP部分为任选部分。若省略这部分,则仿真结果仅显示在LCD,LED状态指示灯上。加上这部分后,仿真推进系统的各种动静态转速及转矩特性可在C2000DSP部分控制的仿真电机上反映出来,达到用电机模拟推进系统主机的目的。图3所示的C2000DSP子系统实际上是一个电机的闭环控制系统,由DSP控制器、功率驱动放大电路、电机和转速检测环节(光电编码盘)4个子部分构成。可见,ARM+DSP嵌入式船舶推进系统仿真平台的硬件资源丰富,且有很大的可扩展空间。该系统平台在硬件方面有以下一些特点。

  (1)从处理器的速度上看,ARM最大为47.5MHz,C5000DSP最大为100MHz,C2000DSP最大为40MHz,属于较高速处理器。

    图3 C2000DSP部分的硬件结构

  [page](2)FLASH的容量很大。在ARM和C5000DSP(即TMS320VC5470)部分有8MB的外部FLASH;在C2000DSP(TMS320LF2407)部分有32KW的在片FLASH,而且还可以进行外扩。这样,该系统就可以固化大量的程序代码,适合开发大型的程序。

  (3)SRAM的容量也很大。在ARM部分有16KB的在片高速SRAM和2MB的外部SRAM;在C5000DSP部分有72KW高速在片SRAM和64KW外扩程序SRAM和64KW外扩数据SRAM;在C2000DSP(TMS320LF2407)部分有2.5KW的在片SRAM,而且还有64KW外扩程序SRAM和64KW外扩数据SRAM。这样,大量的SRAM可以保证处理器在SRAM中读取程序,以保证程序快速运行。

  (4)系统的I/O端口资源丰富。既有数字量的输入输出,也有模拟量的输入输出;既提供了串行方式,也提供了并行方式。为数据采集、控制指令输出、与上位机通信等奠定了硬件基础。

  (5)C2000DSP的处理器TMS320LF2407是专用来进行电机控制的芯片,用来产生PWM信号和捕获转速反馈信号很容易,而且运算速度快,可以实现对电机的各种高效复杂的控制。

  (6)各部分间需要实时交换数据,其硬件上都采用了共享存储器的方式(ARM与C5000DSP之间的ARMPortInterface,简称API,C5000DSP与C2000DSP之间的FIFO)。这样,通信速度很快,从硬件上满足了实时要求。

  (7)因为器件数量较多且速度相对较高,有些芯片采用的是先进的BGA(BallGridArray)封装技术,所以在设计印刷电路板时,采用了6层板,布线充分考虑了器件的高速性和封装技术。

  (8)该系统平台提供了很多可扩展的接口,用户可针对具体对象扩充硬件、添加新的功能。对于构成SMSC2000轮机模拟器的其他工作站,无须扩展任何I/O接口,可见该系统具有通用性。

  ARM+DSP嵌入式仿真平台的软件结构

  ARM部分中的软件

  ARM部分是整个系统的控制中心,其运行的主要是系统软件,包括自举加载程序、指令响应程序、键盘扫描程序、LCD显示驱动程序、A/D与D/A转换控制程序、直接数字量/开关量输入输出程序、CAN总线通信控制程序及与C5000DSP部分进行内部实时数据交换的控制程序。

  自举加载程序是上电或复位后首要实现的任务。它先对ARM的一些关键寄存器(如时钟、中断等)进行初始化(即部分初始化);之后将ARM部分中要运行的主程序和各个子程序(如指令响应程序、键盘扫描、LCD显示驱动等)从片外的非易失性存储器FLASH中加载到片内或片外的SRAM中,以增加程序的运行速度;接着,开始负责对C5000DSP部分进行复位初始化,再把数学模型程序通过API控制加载到C5000DSP中。这样,自举加载程序就完成了两个部分的自举加载工作。

  自举加载完成后,ARM部分开始执行系统的全部初始化,然后便进入系统的主程序(该主程序是一个无限循环等待程序),在主程序中再以中断方式反复运行键盘扫描、LCD显示驱动、指令解释响应、A/D与D/A转换控制、数字量/开关量的输入输出及与C5000DSP部分通讯的程序。其中,指令解释的响应程序是一个核心程序,类似于操作系统的内核程序,接受来自输入处理子程序(键盘扫描、数字量/开关量的输入等)的接口数据,并根据它们的值启动相应的任务,如果需要将任务执行的结果作为接口数据(指令)输出给显示或控制处理子程序,则经由各输出子程序再进行处理。该部分的软件组织结构如图4所示。[page]

  

  图4 ARM部分的软件组织结构

  C5000DSP部分的软件

  C5000DSP部分主要用来运行推进系统的数学模型,该推进系统可以是传统的柴油主机推动系统,也可以是新型的电力推动系统,关键在于不同的推动类型对应不同的数学模型。

  C5000DSP程序实质上是以实时循环迭代求解微分方程组为主的程序,该微分方程组即推进系统的数学模型,并且每循环求解一次,要确定有没有从ARM部分传递来的指令及参数更改的信息。如果有,就改变相应状态及参数再求解微分方程组;如果没有,则仍按上一次的状态和参数求解。在每个循环中,方程组完整求解一次,从而得到推动系统在该时刻的仿真数据。在每个循环的最后,把仿真数据结果传送给ARM部分及C2000DSP部分(通过FIFO),用于显示和控制。这部分的软件程序结构如图5所示。

  

  图5 C5000DSP部分的软件组织结构

  [page]C2000DSP部分的软件结构

  C2000DSP部分的主要任务就是读取FIFO接收来自C5000DSP部分的仿真结果中的转速和转矩信号,并将之表达为电动机的相应转速和转矩。该部分实际上是独立构成的一个专门控制交流电机的子系统。

  其中,C2000DSP处理器TMS320LF2407为该控制子系统的核心。它首先采用查询的工作方式,检测主控指令位是否指示打开该进程,检查系统与主电路是否正常。如果主控指令位指示“关闭”,则切断主电路,封锁输入输出,再关闭系统;如果不正常,则切断主电路,封锁输入输出,再关闭系统,并发出警报;如果一切正常且主控指令位指示“打开”,则读取此子系统的给定信号(由通信中断服务程序从FIFO中读出并存入相应地址的存储器中),即转速和转矩仿真结果数据的接收,再调用捕获子程序从相应接口输入实际转速和转矩的反馈值。给定值和反馈值准备完毕,系统才开始使用某种控制算法对给定数据和反馈数据进行处理。

  完成了一个电机闭环恒转速控制算法后,产生相应的PWM信号输出给电机功率驱动电路,再由驱动电路控制电机跟随仿真给定转速和转矩信号,完成对推动系统转速和转矩的物理模拟。这里使用的控制算法可以是交流电机控制的各种算法,有要求较低的恒压频比、恒电动势频比算法,也有要求高的矢量控制算法和直接转矩控制算法。完成此步控制算法输出PWM信号后,再返回到开头处。如此循环,直到出现不正常或ARM主控程序结束该任务进程。该部分程序的主要结构如图6所示。

  

  图6 C2000DSP部分的软件组织结构

  芯片间的通信控制

  该系统由3大部分构成,各部分之间的通信关系如图1所示。ARM与C5000DSP之间相互通信,C5000DSP与C2000DSP之间相互通信,ARM与C2000DSP之间也相互通信。其中,前两者是通过中断方式来完成的,而后者是通过直接传送的方式完成的。

  ARM与C5000DSP之间通过ARM向C5000发出中断信号,告知C5000要准备接收数据。然后ARM将数据放到两方共享的API中。DSP接收到中断信号后,开始中断服务程序,从API的相应位置取出数据,之后向ARM发出回复信号,以表示数据被取走,而后继续准备开始接收新的数据。ARM接收到来自C5000的回复信号,开始发送新的数据。如此反复,直到传递完所有数据。反过来,由C5000DSP向ARM发送数据,其过程与上面相同,只是收发方互换位置。[page]

  C5000DSP与C2000DSP之间的通信是单向的,即C5000只进行发送而C2000只进行接收。它们之间是通过FIFO进行缓冲的。C5000首先将仿真运算的转速和转矩数据通过总线放入接在其IO空间的FIFO中,再向C2000发送中断请求。C2000收到后,响应中断,进行中断服务,从FIFO的相应位置取出数据并存入特定地址的存储器中,再回复C5000告知数据已经被取出。如此周而复始,不断进行数据的收发。

  ARM与C2000DSP之间的通信主要是ARM主控打开或关闭C2000系统,采用单向直接传送方式。它们之间通过各自的一个GPIO(通用IO口)相连,ARM发送,C2000接收。ARM要打开C2000系统时,只需向其对应的GPIO写1,而ARM要关闭C2000系统时,只需向其对应的GPIO写0。在C2000部分,在主体循环程序中每次查询C2000的对应GPIO口,读为1则表示继续其进程,而读为0则表示关断其进程。

  ARM+DSP嵌入式仿真平台与以工控机为核心的仿真平台的比较  

  以ARM+DSP为核心的嵌入式仿真平台系统与以工控机为核心的仿真平台系统相比在仿真的实时性和精确度方面具有很多优势。

  (1)使用专用的DSP完成运算,相比通用PC处理器8086的精确度更高。

  (2)ARM和DSP分工明确,各司其职,比单一的PC处理器完成仿真任务要快很多。SMSC2000在进行主机仿真时,由于处理器、操作系统和VB开发工具的限制,每求解一次数学模型需要的时间在ms级,其采样周期也在ms级以上;而以ARM+DSP为核心的嵌入式仿真平台系统,由于采用功能强大的双核构架,每求解一次数学模型需要的时间在μs级,采样周期也相应减小很多,即仿真的步长更小,大幅度提高了仿真的精确度。

  (3)软件系统是在裸机的基础上建立的,实时性完全由开发人员决定,不受非实时操作系统限制。

  结束语

  针对船舶推进系统研制的新颖ARM+DSP嵌入式仿真平台扬长了ARM与DSP两种嵌入式处理器的特点,集丰富的控制接口和高速运算处理能力于一体。该仿真平台系统结构清晰,各部分专用功能强大,任务分配明确,相互之间都有通信交互。该系统存储器容量大,各器件速度快,集成度高。软件编程从系统和应用的角度出发,密切结合实际情况,软件结构适合嵌入式系统运行。系统的软硬件都有较大扩展空间。用该仿真平台代替传统的基于工控计算机的仿真模式真正达到了实时要求,其运行的数学模型更精确,控制物理设备的能力更强。

  该仿真平台同样可用于船舶电站、船舶辅机、机舱报警等系统的仿真,并通过CAN总线与主控站联络。它不光强化了单一工作站的功能,而且使整个DCS网络演化为FCS网络,大大提高了系统的实时性。

 

关键字:ARM  DSP控制器  船舶推进  嵌入式  开关量  轮机模拟器  采样周期  中断方式  功率驱动  闭环控制系统 引用地址:以ARM和DSP为核心的实时仿真平台的开发

上一篇:基于ARM内核SoC的FPGA 验证环境设计方法
下一篇:IAR发布IEmbedded Workbench新版本

推荐阅读最新更新时间:2024-03-16 12:24

Arm linux kernel 启动之start_kernel
了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了。start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解。很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了。 说实话启动的代码看到现在唯一的感觉就是kernel的全局变量实在太多了,要了解一个过程跟踪一个变量的值的变化相当痛苦啊,不过耐心看下来,收获还是比较丰富的,对很多概念都有了一个比较直观的理解。闲话就不多说了,直接来上代码~~ smp_setup_process
[单片机]
ARM嵌入式汽车节能控制系统
  由于各种原因,公交车总是不断重复加速-减速或停车-再加速的过程。通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效果。同时由于汽车在起动或加速时能耗最大,如果汽车是用燃油驱动,则此时油料燃烧不充分,燃烧效果最差,而且产生的噪音最大。   系统工作原理   本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感器、储气罐压力传感器
[单片机]
<font color='red'>ARM</font><font color='red'>嵌入式</font>汽车节能<font color='red'>控制系统</font>
ARM9学习1-Keil uVision 4.14的安装与使用
一、汇编语言的准备-----编辑器RealView MDK Keil uVision 4.14的安装 1、首先是双击Keil u Vision 4.14后的欢迎界面 2.next后是接受安装的界面 3、接着next后是自定义的安装目录界面 4、接着next后是填写用户的信息界面 5、接着next后是成功安装的界面 6、接着finish后就可以成功安装了MDK ARM V4,14 7、finish后就会显示短暂的安装界面 8、创建一个新工程project-------new --------u Vision project 在hello world 文件夹里创建h
[单片机]
<font color='red'>ARM</font>9学习1-Keil uVision 4.14的安装与使用
ARM7 LPC2210的Bootloader源码分析
对周立功公司开发板EasyARM LPC2210开发板Chenmingji写的Bootlaoder进行分析和解读。 一、变(常)量声明 首先声明堆栈大小 ;define the stack size ;定义堆栈的大小 SVC_STACK_LEGTH EQU 0 FIQ_STACK_LEGTH EQU 0 IRQ_STACK_LEGTH EQU 256 ;IRQ中断堆栈 ABT_STACK_LEGTH EQU 0 UND_STACK_LEGTH EQU 0 处理器模式声明 NoInt EQU 0x80
[单片机]
基于ARM的热敏电阻温度计的设计
1 引言 随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。 传统的热敏电阻温度计硬件上大多采用普通单片机(MCS-51系列)+A/D转换器以及LED显示模块构成,分立元件多、功耗大、设计复杂且难以调试;软件上也多采用冗长繁琐的汇编语言来实现,设计效率低、可移植性差、性能难以保证。 目前,嵌入式系统的应用已经进入到一个高、低端并行发展的阶段,其标志就是32位微控制器的发展。ARM(Advanced RISC Machines)是嵌入式系统应用比较广泛的一种32位微处理器核,具有体积小、功耗低、集成度高、硬件调试方便和可移植操作系统等优点。为
[单片机]
基于<font color='red'>ARM</font>的热敏电阻温度计的设计
嵌入式计算与视觉技术的完美碰撞
德国康佳特科技在2018德国慕尼黑电子展(Electronica)中亮相嵌入式计算机和嵌入式视觉技术的完美融合,包括人工智能(AI)和深度学习,以展示全面性的嵌入式视觉平台。康佳特致力于提供OEM厂商全面的生态系统,使集成就像使用标准U盘一样简单与快速。客户得利于随即可用的零部件和统一的APIs, GPGPU与AI通用性,能大大减少设计工作并确保新产品能快速量产。 德国康佳特市场营销总监Christian Eder 说到, “我们看到市场对嵌入式计算与嵌入式视觉技术(包括人工智能与深度学习)的结合有巨大的需求,嵌入式视觉市场将会以惊人的速度增长,例如,无人驾驶汽车预估会有140个百分点的增长。为了在市场上创建并保持关键性
[嵌入式]
<font color='red'>嵌入式</font>计算与视觉技术的完美碰撞
泰克推出面向嵌入式设计的802.11 WLAN测试解决方案
中国北京,2013年11月20日 –测试、测量及监测仪器的全球领导厂商---泰克公司日前宣布,对其混合域示波器、高性能示波器和频谱分析仪产品系列进行升级,同时增加大量新的功能,为电子工程师在其产品设计中集成802.11 a/b/g/j/n/p/a连接支持提供强大且经济适用的各种工具。这些新WLAN解决方案旨在满足将Wi-Fi支持集成从家用电器到工业设备等各种应用的不断增长的市场需求。 这些新WLAN工具涵盖众多产品,它们共同提供了市场上价值最高、最方便的802.11 a/b/g/j/n/p/ac测试和调试解决方案。此外,泰克公司还推出了对其用于无线和RF(射频)测试应用的仪器与软件解决方案系列的许多重要增强,包括:
[测试测量]
ARM-linux上实现4G模块PPP拨号上网
在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多。最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下。当然,除此之外要做的工作还有很多。 4G模块使用的SIMTECH 的SIM7100C,SIM7100C带有UART和USB接口,在考虑速度上我们使用USB接口和ARM进行通信。所以向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。 1. 编译内核 ◇ 大容量存储驱动 Device Drivers USB support make ARCH=arm menuconfig配置USB驱动: *
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved