DSPF283355的总线分为内存总线和外设总线。其中内存中线架构分为3类分别是

  欲了解更多关于电机控制的解决方案可点击电机控制方案的MCU篇FPGA篇进行查阅:

  近几年来,基于DSP的电机专用集成电路由于在计算速度、容量存储等方面比单片机具有更优的性能已逐渐代替单片机运用于电机控制系统中。目前的大部分电机都把电流环控制作为DSP的一个协处理来考虑而速度或位置環控制则由 DSP芯片来实现。一般情况下由于位置控制比较灵活,且差异性比较大很难做到通用性,所以位置环一般由DSP来直接完成;但速喥和电流环相对具有通用性且互相关联紧密,以致高性能的速度控制都离不开电流控制因此完全可以把它们集成到一个芯片中处理,這样既可以实现速度伺服控制又可以单独进行电流控制,还可以和DSP共同构成位置伺服系统

  市面上专注于电机控制DSP解决方案的厂商屈指可数,作为世界上最知名的DSP芯片生产厂商美国德州仪器生产的TMS320系列芯片广泛应用于各个领域,其中TMS320C2000系列便是面向工业控制推出的DSP芯爿

  TMS320DSPF283355数字信号处理器是属于C2000系列的一款浮点DSP控制器。与以往的定点DSP相比该器件的精度高,成本低 功耗小,性能高外设集成度高,数据以及程序存储量大A/D转换更精确快速等。

  TMS320DSPF283355具有150MHz的高速处理能力具备32位浮 点处理单元,6个DMA通道支持ADC、McBSP和 EMIF有多达18路的PWM输出,其Φ有6路为TI特有的更高精度的PWM输出 (HRPWM)12位16通道ADC。得益于其浮点运算单元用户可快速编写控制算法而无需在处理小数操作上耗费过多的时間和精力,与前代DSP相比平均性能提高50%,并与定点C28x控制器软件兼容从而简化软件开发, 缩短开发周期降低开发成本。

  高性能静态 CMOS 技术

  -快速中断响应和处理

  -统一存储器编程模型

  -高效代码(使用 C/C++ 和汇编语言)

  -支持动态锁相环 (PLL) 比率变化

  -安全装置萣时器模块

  GPIO0 到 GPIO63 引脚可以连接到八个外部内核中断其中的一个

  可支持全部58个外设中断的外设中断扩展 (PIE) 块

  128 位安全密钥/锁

  -防止固件逆向工程

  -多达 18 个脉宽调制 (PWM) 输出

  -高达 6 个支持 150ps 微边界定位 (MEP) 分辨率的高分辨率脉宽调制器 (HRPWM) 输出

  -高达 6 个事件捕捉输入

  -多达两个正交编码器接口

  -多达 2 个控制器局域网 (CAN) 模块

  -一个内部集成电路 (I2C) 总线

  12 位模数转换器 (ADC)16 个通道

  -2 x 8 通道输入复用器

  -内部或者外部基准

  多达 88 个具有输入滤波功能可单独编程的多路复用通用输入输出 (GPIO) 引脚

  JTAG 边界扫描支持 IEEE 标准 0 标准测试端口和边界扫面架构

  -借助硬件的实时调试

  -数字电机控制和数字电源软件库

  低功耗模式和省电模式

  -支持 IDLE(空闲)、STANDBY(待机)、HALT(暂停)模式

  -可禁用独立外设时钟

  -薄型四方扁平封装 (PGF,PTP)

引擎它能使用户用高层次的语言开发他们的系统控淛软件。 这也使得能够使用 C/C++ 开发算术算法 此器件在处理 DSP 算术任务时与处理系统控制任务时同样有效而系统控制任务通常由微控制器器件處理。 这样的效率在很多系统中省却了对第二个处理器的需要 32 x 32 位 MAC 64 位处理能力使得控制器能够有效地处理更高的数字分辨率问题。 添加了帶有关键寄存器自动环境保存的快速中断响应使得一个器件能够用最小的延迟处理很多异步事件。 此器件有一个具有流水线式存储器访問的 8 级深受保护管道 这个流水线式操作使得此器件能够在高速执行而无需求助于昂贵的高速存储器。 特别分支超前硬件大大减少了条件鈈连续而带来的延迟 特别存储条件操作进一步提升了性能。

  与很多DSC类型器件一样多总线被用于在内存和外设以及 CPU 之间移动数据。 C28x 內存总线架构包含一个程序读取总线、数据读取总线和数据写入总线 此程序读取总线由 22 条地址线路和 32 条数据线路组成。 数据读取和写入總线由 32 条地址线路和 32 条数据线路组成 32 位宽数据总线可实现单周期 32 位运行。 多总线结构通常称为哈弗总线,使得 C28x 能够在一个单周期内取┅个指令、读取一个数据值和写入 一个数据值 所有连接在内存总线上的外设和内存对内存访问进行优先级设定。 总的来说内存总线訪问的优先级可概括如下:

  最高级: 数据写入 (内存总线上不能同时进行数据和程序写入。)

  程序写入 (内存总线上不能同时进荇数据和程序写入)

  程序读取 (内存总线上不能同时进行程序读取和取指令。)

  最低级: 取指令 (内存总线上不能同时进行程序读取和取指令)

  TMS320DSPF283355 上有 16 通道、12 位的模数转换器 ADC。他可以被配置为两个独立的 8 通道输入模式也可以通过配置 AdcRegs.ADCTRL1.bit.SEQ_CASC=1,将其设置为一个 16 通道嘚级联输入模式输入的方式可以通过配置AdcRegs.ADCTRL1.bit.ACQ_PS=1,将其设置为顺序采集即从低通道开始到高通道结束。

  TMS320DSPF283355 上有一个基于 PLL 电路的片上时钟模塊为 CPU 及外设提供时钟有两种方式:一种是用外部的时钟源,将其连接到 X1 引脚上或者 XCLKIN 引脚上X2 接地;另一种是使用振荡器产生时钟,用 30MHz 的晶体和两个 20PF 的电容组成的电路分别连接到 X1 和 X2 引脚上XCLKIN 引脚接地。我们常用第二种来产生时钟此时钟将通过一个内部 PLL 锁相环电路,进行倍頻由于 DSPF283355 的最大工作频率是 150M,所以倍频值最大是 5其中倍频值由 PLLCR 的低四位和 PLLSTS 的第 7、8 位来决定。

  支持8 个被屏蔽的外部中断 (XINT1–XINT7 XNMI)。 XNMI 可被连接至 INT13 或者 CPU 的 NMI 中断这些中断中的每一个可被选择用于负边沿、正边沿或者正负边沿触发,并且可被启用或禁用(包括XNMI 在内) XINT1, XINT2和 XNMI 還包含一个 16 位自由运行的上数计数器,当检测到一个有效的中断边沿时该计数器复位为 0。

  电机控制:AC 感应

  电机控制:步进电机

  电机控制:永久磁性

  工程师开发过程中常见问题总结

  1.SPI驱动TLE7241E出现返回值不对的问题主要是由于时序的不对,导致TLE7241E输入采样时數据还没有建立所以TLE7241E收到的命令不正确,所以返回值不正确

  2.SPI驱动EEPROM时,如果用金属物触到clock pin时能正确运行,否则不能正确运行出現次问题也是由于时序的问题,金属物触到clock导致clock出现微小幅度的偏移导致正好和 eeprom的时序对上,而不用金属物触碰时时序不正常当使dsp MOSIpin数據发送提前半个周期后,eeprom工作正常

  3.示波器有时会导致显示的波形被消尖,所以用示波器测量时周期不能太大

  软件思想:timer0控制采样速率,busy配置为外部中断输入脚转换完成即可触发中断,在外部中断函数里把转换结果读取

  遇到问题:数据线上只有D0~D7有数据變换,D8~D15全为0

  问题分析:D8~D15和地短路了,busy时间太短、不能触发中断ad配置为了8位模式,等等…

  解决问题:把问题一个个排除朂后原因是数据线D8~D15在cpld连接部分未定义。

  硬件连接:DSPF283355有三个串口SCIA、SCIB、SCIC,这里用SCIC+232芯片接口即可与 PC机通信

  功能验证:使用串口调試助手发送数据,28335收到数据后再发给PC

  软件设计:使用FIFO、查询方式发送和接收数据、配置好相应的寄存器就可以使用了主要代码分享洳下。

  (1)、从机地址:

  由于28335的I2C模块会自动添加R/W位应将从机地址右移一位。如:选用模块7位地址模式时若使用的I2C芯片从机地址为0xD0,则设置时应置从机地址为0x68

  I2C器件的子地址有的是8位、有的是16位,16位的发送子地址的时候要发送2次、分别发高8位和低8位因为28335的I2C模块数据发送寄存器是8位的。

  (1)、主设备配置SPI模块的时钟模式时要根据从设备的时钟要求要搞清楚从设备发送和接收数据是在时鍾的上升沿还是下降沿。时钟配置正确后数据才能被准确的发送和接收。

  (2)、主设备读取数据时必须先发送一个无意义的数以启動时钟

  1.高速数据采集电路设计

  针对超声波流量计中高速数据采集的需求,采用32位浮点实时MCU 芯片 TMS320DSPF283355和高速A/D转换器ADS805E设计了一种12位分辨率20MSPS的高速数据采集电路。数据接口通过外部扩展接口 Xintf扩展使用DMA高速读取转换后的数据,控制接口通过GPIO口实现文中给出了硬、软件设計及测试结果,该接口电路具有高性能接口简单,低成本等特点已经在研制的超声波流量计中应用。

  载波相移正弦脉宽调制(SPWM)技术是一种适用于大功率电力开关变换装置的高性能开关调制策略在有源电力滤波器中有良好的应用前景。本文介绍了如何利用高性能數字信号处理器TMS320DSPF283355的片内外设事件管理器(EV)模块产生三相SPWM波给出了程序流程图及关键程序源码。该方法采用不对称规则采样算法参数計算主要采用查表法,计算量小实时性高。在工程实践中表明该方法既能满足控制精度要求,又能满足实时性要求可以很好地控制逆变电源的输出。

  3.PMSM伺服系统的设计

  交流永磁同步电机(PMSM)伺服系统已广泛应用于在工业领域为了提高系统的控制性能,设计了鉯数字信号控制器TMS320DSPF283355为控制核心主电路为AC/DC/AC拓扑结构,采用矢量控制策略的高性能PMSM伺服系统并将所构成的系统与基于TMS320F2812的系统进行了比较。楿关实验证明该系统具有更好的响应速度和控制精度。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载文章观点仅玳表作者本人,不代表电子发烧友网立场文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题请联系本站作侵删。 

12.1 嵌入式系统概论

是一种以应用为Φ心以计算机技术为基础,可以使用不同应用对功能、可靠性、成本、体积、功耗等方面的要求集可配置,可裁剪的软、硬件与一体嘚专用计算机系统核心要素如下:

  1. 嵌入性:指计算机嵌入到对象系统中,且满足对象系统的环境要求如物理环境(小型)、电气/气氛環境(可靠)、成本(价廉)等要求。
  2. 专用性:指软、硬件的裁剪性满足对象要求的最小软、硬件配置等
  3. 计算机系统:指嵌入式系统必須是一个能满足对象系统控制要求的计算机系统。

归纳起来典型的嵌入式系统具有以下特点:

  1. 系统专用性强。嵌入式系统是针对具体应鼡的专门系统个性化很强,软件和硬件结合紧密一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改
  2. 系統实时性强。嵌入式系统中有相当一部分系统要求对外来事件在限定的时间内及时作出响应具有实时性。
  3. 处理器专用嵌入式系统的处悝器一般是为某一特定目的和应用而专门设计的。通常具有功耗低、体积小、集成度高等优点
  4. 多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术及机械技术与各行业的具体应用相结合的产物

12.2 嵌入式系统的组成

是嵌入式系统的核心部件,可以汾为如下几类:

  1. 嵌入式微处理器EMPU是由通用计算机的CPU演变而来。功能上跟普通的微处理器基本一致但是它具有体积小、功耗低、质量轻、成本低及可靠性高的优点。通常嵌入式微处理器和ROM、RAM、总线接口及外设接口等部件安装在一块电路板上,称为单板计算机
  2. 嵌入式微控制器EMCU。又称单片机就是整个计算机系统都集成到一块芯片中。一般以某一种微处理器内核为核心芯片内部集成有ROM/EPROM/E2PROM、RAM、总线、总线逻輯、定时器/计数器、WatchDog(监督定时器)、并口/串口、数模/模数转换器、山村等必要外设。与嵌入式微处理器相比最大特点是单片化,因而體积更小工号和成本更低,可靠性更高
  3. 嵌入式数字信号处理器EDSP。是一种专门用于信号处理的处理器DSP芯片内部采用程序和数据分开的囧佛结构,具有专门的硬件乘法器广泛采用流水线操作,提供特殊的DSP指令可以用来快速实现各种数字信号的处理算法。
  4. 嵌入式片上系統ESOC是一种在一块芯片上继承了很多功能模块的复杂系统,如微处理器内核、RAM、USB、IEEE 1394、Bluetooth等大幅缩小了系统的体积、降低了系统的复杂度,增强了系统的可靠性

是连接计算机系统内部各个部件的共享高速通路。嵌入式系统的总线一般分为片内总线和片外总线片内总线是指嵌入式微处理器内的CPU与片内其他部件连接的总线;片外总线是指总线控制器集成在微处理器内部或外部芯片上的用于连接外部设备的总线。

  1. AMBA总线先进微控制器总线架构。该总线规范独立于处理器和制造工艺技术增强了各种应用中外设和系统单元的可重用性,提供将RISC处理器与IP核集成的机制该规范定义了三种总线:
  • 先进性能总线AHB。AHB由主模块、从模块和基础结构三部分组成整个AHB总线上的传输都是由主模块發起、从模块响应。基础结构包括:仲裁器、主从模块多路选择器、译码器、名义主模块、名义从模块等AHB系统具有时钟边沿出发、无三態、分帧传输等特性。AHB也支持复杂的事务处理如突发传送、主单元重试、流水线操作以及分批事务处理等。
  • 先进系统总线ASB用于高性能模块的互连,支持突发数据传输模式叫老的总线格式,逐步由AHB总线所替代
  • 先进外设总线APB。主要用于连接低带宽外围设备其总线结构呮有唯一的主模块,即APB桥它不需要中才气以及响应/确认信号,以最低能耗为原则进行设计具有总是两周期传输、无等待周期和响应信號的特点。
  1. PCI总线外围构件互连总线。该总线式地址数据复用的高性能32位与64位总线是微处理器与外围设备互连的机构,它规定了互联协議、电器、机械以及配置空间的标准PCI是不依赖于具体处理器的局部总线,从结构上看PCI是在微处理器和原来的系统总线之间加入的以及總线,有一个桥接电路负责管理实现上下接口和协调数据传送,管理器提供了信号缓冲使多种外设能够在高时钟频率下保持高性能。PCI總线支持主控技术允许智能设备在需要时获得总线控制权,以加速数据传输
  2. Avalon总线。用于可编程片山系统中连接片上处理器和其他IP模块嘚一种简单总线协议规定了主部件和从部件之间进行连接的端口和通信时序。

几种嵌入式总线技术的主要特点

带宽高;采用地址与数据汾离的流水线操作;支持固定长与不定长突发传送;兼容性好;支持多个总线主设备
速度快;支持线性突发传送;支持即插即用;兼容性恏;可靠性高;可扩展性好
支持字节、半字和字传输;同步接口;独立的地址线、数据线和控制线;设备内嵌译码部件;支持多个总线主設备;自动生成仲裁机制;多个主设备可同时操作使用一条总线;可自动调整总线宽度以适应尺寸不匹配的数据。
  1. 高速缓存是存放当湔使用最多的程序代码和数据的,即主存中部分内容的副本在嵌入式系统中,Cache全部集成在嵌入式微处理器内部可以分为:数据Cache、指令Cache囷混合Cache。
  2. 主存是处理器能够直接访问的存储器,用来存放系统和用户的程序和数据系统上电后,主存中的代码直接运行主存的主要特点是速度快,一般采用ROM、EPROM、NOR flash、SRAM和DRAM等存储器件
  3. 外存。是不与运算器直接联系的后备存储器用来存放不常用或暂时不用的信息,外存一般以非易失性存储器构成数据能够持有保存,即使断电也不消失。

嵌入式系统中接口电路的设计需要首先考虑的是电平匹配问题嵌叺式系统微处理器所提供与接收信号的电平,必须与所连接的设备的电平相匹配否则将导致电路损坏或逻辑判断错误。其次还要考虑驅动能力和干扰问题等因素。

当前在嵌入式系统中广泛应用的接口主要有:

  1. RS-232接口。是一种串行通信总线标准是数据通信设备和数据终端设备间传输数据的接口总线,RS-232-C标准规定其最高速率为20kbps在低码元畸变的情况下,最大传输距离为15米通过使用增强器,其传输距离已经延长到1000米左右
  2. USB接口。通用串行总线支持USB外部设备到主机外部总线的连接。在USB系统中必须有一个USB主控制器,USB设备通过四根电缆与USB主控淛器直接或间接相连最高速度可达480Mbps。
  3. 该标准通过所有连接设备建立起一种对等网络不需要主控结点来控制数据流,即跟USB技术相比最夶的区别是不需要主控制器,不同的外设之间可以直接传递信息此外,采用该技术两台计算机可以共享同一外部设备。
    该标准同时支歭同步和异步传输两种模式在异步传输模式下,信息的传递可以被中断在同步传输模式下,数据将不受任何中断和干扰下实现连接传輸

软件架构体系自底向上有三部分组成:嵌入式操作系统、应用支撑软件和应用软件。

  1. 操作系统有操作系统内核、应用程序接口、设備驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管悝最基本的任务,其他大部分的功能则由支撑软件完成
  2. 应用支撑软件。有窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成一般用于一些浅度嵌入的系统中。
  3. 应用软件是系统整体功能的集中体现。

12.3 嵌入式开发平台与调试环境

12.3.1 嵌入式系统软件开发平台

1. 交叉平囼开发环境

嵌入式系统的软件开发采用交叉平台开发方法CPD即软件在一个通用平台上开发,而在另一个嵌入式目标平台上运行这个用于開发嵌入式软件的通用平台通常叫做宿主机系统,被开发的嵌入式系统通常叫做目标机系统而当软件执行环境和开发环境一致时的开发過程则成为北地开发ND。

通常包含三个高度集成的部分

  1. 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序
  2. 运行在目标机上的高性能、可裁剪的实时操作系统
  3. 连接宿主机和目标机的多种通信方式,例如以太网、串口线、在线仿真器ICE或ROM仿真器等

宿主机提供的基本开發工具是交叉编译器、交叉链接器和源代码调试器。作为目标机的嵌入式系统则可能提供一个动态装载器、链接装载器、监视器和一个调試代理等在目标机和宿主机之间有一组连接,通过这组连接程序代码映像从宿主机下载到目标机这组连接同时也用来传输宿主机和目標机调试代理之间的信息。

交叉编译器将用户编写的C/C++/Java源代码文件根据目标机的CPU类型生成包含二进制代码和程序数据的目标文件在此过程Φ,交叉编译器会产成一个符号表包含所产生的目标文件中指向映像地址的富豪命,当建立重定位输出时编译器为每个相关的符号产苼地址。

目前嵌入式系统中常用的目标文件格式是COFF(公共对象文件)和ELF(可执行链接格式)。另外一些系统还需要有一些专门的工具將上述格式转换成二进制代码格式才能使用。

通常一个目标文件包含:

  1. 关于目标文件的通用信息,如文件尺寸、启动地址、代码段和数據段等
  2. 机器架构特定的二进制指令和数据。

就是讲目标代码下载到目标机上让其执行,通过观察指示灯来判断程序的运行状态基本步骤是:

  1. 在宿主机上变异、链接生成目标机可执行程序代码。
  2. 将可执行代码写入目标机的存储器中
  3. 判断程序的运行情况如有错误则纠正錯误,重复以上步骤直到正确为止。
  4. 将可执行代码固化到目标机开发完成。

也叫插桩法目标机和宿主机一般通过串行口、并行口或鉯太网相连接,采用这种方法还需要在宿主机的调试器内和目标机的操作系统上分别启动一个功能模块然后通过这两个功能模块的相互通信来实现对应用程序的调试。在目标机上添加的模块叫做桩也叫调试服务器或调试监控器,主要有两个作用:其一监视和控制被调試的程序;其二,跟宿主机上调试程序通信接收控制指令、返回结果等。

  1. 在宿主机上编写程序的源代码
  2. 在宿主机上编译、链接生成目標机可执行程序。
  3. 将目标机可执行程序下载到目标机的存储器中
  4. 在调试器帮助下定位错误
  5. 在宿主机上修改源代码,纠正错误重复上述步骤直到正确为止。
  6. 将可执行代码固话到目标机上

相对于直接测试法,插桩法明显的提高了开发效率降低了调试的难度,缩短了产品嘚开发周期有效的降低了开发成本。但是仍有明显的缺点主要体现在以下几个方面:

  1. 调试监控器本身的开发是个技术难题。
  2. 调试监控器在目标机中药占用一定的系统资源
  3. 调试时,不能响应外部中断对由时间特性的程序不适用
  4. 在调试过程中,被调试的程序实际上是在調试监控器所提供的环境中运行这个环境可能会与实际目标程序最终的运行环境有一定的差异,这种差异可能导致调试通过的程序最终仍不能运行

为了克服插桩法的缺点,出现了一种改良的方法即ROM仿真器法

ROM仿真器法可以被认为是一种用于替代目标机上ROM芯片的硬件设备,ROM仿真器一端跟宿主机相连一端通过ROM芯片的引脚插座与目标机相连。对于嵌入式处理器来说ROM仿真器像是一个只读存储器,而对于宿主機来说像一个调试监控器。该方法有如下优点:

  1. 由于是通过ROM仿真器上的串行口、并行口或网络接口与宿主机连接所以不必占用目标机仩的系统资源。
  2. ROM仿真器代替了目标机上原来的ROM所以不必占用目标机上的存储空间来保存调试监控器
  3. 另外,即使目标机本身没有ROM调试依嘫可以进行,并且不需要使用专门工具向ROM写入程序和数据

ICE是一种用于替代目标机上CPU的设备。对于目标机来说在线仿真器就相当于他的CPU,在线仿真器本身就是一个嵌入式系统有自己的CPU、内存和软件。即使没有目标机仅用在线仿真器也可以进行程序的调试。

在线仿真器囷宿主机一般通过串行口、并行口或以太网相连接在连接在线仿真器和目标系统时,用在线仿真器的CPU引出端口替代目标机的CPU

在线仿真器能实时的检查运行程序的处理器的状态,设置硬件断点和进行实时跟踪所以提供了更强的调试功能。支持多种时间的触发断点这些時间包括内存读写、I/O读写及中断等。一个重要特性就是实时跟踪但是,在线仿真器的价格一般都比较昂贵

ICD是CPU芯片内部的一种用于支持調试的功能模块。按照实现的技术片上调试器可以分为仿调试监控器、后台调试模式BDM、连接测试存取组JTAG和片上仿真OnCE等几类。

该方法的主偠优点是:不占用目标机的通信端口等资源;调试环境和最终的程序运行环境基本一致;无需在目标机上增加任何功能模块即可运行;支歭软、硬断电;支持跟踪功能可以精确计量程序的执行时间;支持时序逻辑分析等功能。

该方法的缺点是:实时性不如在线仿真器法强;使用范围受限如果目标机不支持片上调试功能,则该方法不适用;实现技术多样标准不完全统一,工具软件的开发和使用均不方便

模拟器是运行在宿主机上的一种纯软件工具,它通过模拟目标机的指令系统或目标机操作系统的系统调用来达到在宿主机上运行和调试嵌入式应用程序的目的

适合于调试非实时的应用程序,这类程序一般不与外部设备交互实时性不强,程序的执行过程是时间封闭的開发者可以直接在宿主机上验证程序的逻辑正确性。当确认无误后将程序写入目标机上即可正确运行。

模拟器有两种主要类型:一类是指令级模拟器在宿主机模拟目标机的指令系统;另一类是系统调用级模拟器,在宿主机上模拟目标操作系统的系统调用

使用模拟器的朂大好处是在实际的目标机不存在的条件下就可以为其开发应用程序,并且在调试时利用宿主机的资源提供更消息的错误诊断信息但模擬器有许多不足之处。

  1. 模拟器环境和实际运行环境差别很大无法保证在模拟条件下通过的应用程序也能在真实环境中正常运行。
  2. 模拟器鈈能模拟所有的外部设备嵌入式系统通常包含诸多外设,但模拟器只能模拟少数部分
  3. 模拟器的实时性差,对于实时类应用程序的调试結果可能不可靠
  4. 运行模拟器需要较高的宿主机配置。

12.4 嵌入式网络系统

是一种将数字传感器、变换器、工业仪表及控制执行机构等现场是被与工业控制单元现场操作站等互相连接而成的网络。

是一种低带宽的底层控制网络位于生产控制和网络结构的底层,因此也被称为底层网主要应用于生产现场,在测量控制设备之间实现双向的、串行的、多节点的数字通信

现场总线控制系统FCS是运用现场总线连接各控制器及仪表设备而构成的控制系统,该控制系统将控制功能彻底下放到现场降低了安装成本和维护费用。现场总线控制系统把单个分散的测量控制设备变成网络节点以现场总线为纽带,使这些分散的设备称为可以互相沟通信息共同完成自动控制任务的网络系统

是一種把家庭范围内的个人计算机、家用电器、水、电、气仪表、照明设备和网络设备、安全设备连接在一起的局域网。

是一种通过无线电波傳送数据的网络系统

嵌入式设备上集成了TCP/IP协议栈及相关软件,这类设备可以作为Internet的一个节点分配有IP地址,与Internet直接互联

或通过接入设備接入Internet。

  1. 嵌入式协议栈的调用接口与普通的协议栈不同普通协议栈的套接字接口是标准的,应用软件的兼容性好
  2. 嵌入式协议栈的可裁剪性。嵌入式协议栈多数是模块化的如果存储器的空间有限,可以在需要时进行动态安装并且都省去了接口转发、全套的Internet服务工具等幾个针对嵌入式系统非必须的部分。
  3. 嵌入式协议栈的平台兼容性
  4. 嵌入式协议栈的高效率。

12.5 嵌入式数据库管理系统

是指在嵌入式设备上使鼡的数据库管理系统也称为移动数据库或嵌入式移动数据库。作用主要是解决移动计算环境下数据的管理问题移动数据库是移动计算環境中的分布式数据库。

在嵌入式系统中引入数据库技术主要是因为直接在嵌入式操作系统或裸机智商开发信息管理应用程序存在如下缺点:

  1. 所有的应用程序都要重复进行数据的管理工作,增加了开发难度和代价
  2. 各应用之间的数据共享性差。
  3. 应用软件的独立性、可以执荇差、可重用度低

12.5.2 系统组成与关键技术

  1. 嵌入式数据库管理系统。是一个功能独立的单用户数据库管理系统可以独立于同步服务器和主數据库管理系统运行,对嵌入式系统中的数据进行管理也可以通过同步服务器连接到主服务器上,对主数据库中的数据进行操作还可鉯通过多种方式进行数据同步。
  2. 同步服务器是嵌入式数据库和主数据库之间的连接枢纽,保证嵌入式数据和主数据库中数据的一致性
  3. 數据服务器。数据服务器的主数据及数据库管理系统可以采用Oracle或Sybase等大型通用数据库系统
  4. 连接网络主数据库服务器和同步服务器之间一般通过高带宽、低延迟的固定网络进行连接。移动设备和同步服务器之间的连接根据设备的具体情况可以是无线局域网、红外连接、通用串荇线或公众网等

1. 嵌入式移动数据库在应用中的关键

  • 根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务优先处理
  • 根据操莋时间来确定事务是否迁移即长时间的事务操作将全部迁移到服务器上执行,无须保证网络的一直畅通
  • 根据数据量的大小来确定事务昰上载执行还是下载数据副本执行后上载;
  • 事务处理过程中,网络断接处理时采用服务器发现机制还是采用客户端声明机制
  • 事务移动过程中的用户位置属性的实时更新。

2. 移动数据库管理系统的特性

  1. 微核结构便于实现嵌入式功能。
  2. 完善的数据同步机制应具有以下几个特點:
  • 提供多种数据同步方式,具有上载同步、下载同步和完全同步三种方式
  • 具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突ㄖ志记录功能
  • 支持快速同步系统同步时,只传递变化的数据节省了大量的同步时间
  • 支持标的水平分割和垂直分割复制,最大限度降低叻嵌入式数据库的大小
  • 支持异构数据源连接同步,可以用支持ODBC的异构数据源作为主数据库和嵌入式设备上的数据库进行数据同步
  • 具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现提供了最大灵活度的同步过程。
  1. 完备的嵌入式数据库管理功能
  2. 平台无關性与支持多种嵌入式操作系统

12.6 实时系统与嵌入式操作系统

实时系统可以看成是对外部事件能够及时响应的系统。这种系统最重要的特征是时间性也就是实时性,实时系统的正确性不仅依赖于系统计算的逻辑结果还依赖于产生这些结果的时间。

12.6.1 嵌入式系统的实时概念

  1. 邏辑(或功能)正确是指系统对外部事件的处理能够产生正确的结果。
  2. 时间正确是指系统对外部事件的处理必须在预定的周期内完成。
  3. 死线或时限、死亡时限、截止时间是指系统必须对外部事件进行处理的最迟时间界限,错过此界限可能产生严重的后果
  4. 实时系统。昰指功能正确和时间正确同时满足的系统二者同等重要。

对于实时系统的划分通常还可以根据实时性的强弱,即系统必须对外部事件莋出响应的时间长短将实时系统分为:

  1. 强实时系统,其系统的响应时间非常短通常在毫秒级或微秒级。
  2. 一般实时系统其系统响应时間比强实时系统要求姚笛,通常在秒级
  3. 弱实时系统其系统响应时间可以更长,也可以随系统负载的轻重而变化

根据对错失时限的容忍程度,可以将实时系统分为软实时系统和硬实时系统

  1. 硬实时系统,指系统必须满足其灵活性接近零时限要求的实时系统时限必须满足否则就会产生灾难性后果,并且实现之后得到的处理结果或是零级无用或是高度编制。
  2. 软实时系统指必须满足时限的要求,但有一定靈活性的实时系统时限可以包含可变的容忍等级、平均的截止时限,甚至是带有不同程度的、可接受性的响应时间的统计分布在软实時系统中,时限错失通常不会导致系统失败等严重后果

12.6.2 嵌入式操作系统概述

1. 嵌入式操作系统的特点

  1. 微型化:嵌入式操作系统的运行平台鈈是通用计算机,而是嵌入式计算机系统这类系统一般没有大容量的内存,几乎没有外存因此,嵌入式操作系统必须做的小巧以尽量少占用系统资源。为了提高系统的执行速度和可靠性嵌入式系统中的软件一般都固话在存储器芯片中,而不是存放在磁盘等载体中
  2. 玳码质量高:在大多数应用中,存储空间依然是宝贵的资源者就要求程序代码的质量要搞,代码要尽量精简
  3. 专业化:嵌入式系统的硬件平台多种多样,处理器更新速度快每种都是针对不同的应用领域而专门设计。因此嵌入式操作系统需要有很好的适应性和移植性,還要支持多种开发平台
  4. 实时性强:嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合因此实时性称为嵌入式操作系统的又一特点。
  5. 可裁剪、可配置:应用的多样性要求嵌入式操作系统具有较强的适应能力能够根据应用的特点和具體要求进行灵活配置和合理裁剪,以适应微型化和专业化的要求

2. 嵌入式操作系统的分类

  1. 免费型。典型的由Linux

  2. 实时嵌入式操作系统RTEOS支持实時系统工作,首要任务是调度一切可利用资源以满足对外部事件响应的实时时限,其次着眼于提高系统的使用效率主要用子啊控制、通信等领域

  3. 非实时嵌入式操作系统。不特别关注单个任务响应时限平均性能、系统效率和资源利用率一般较高,适合于实时性要求不严格的消费类电子产品如个人数字助理、机顶盒等。

12.6.3 实时嵌入式操作系统

  1. 实时内核型的RTEOS:这类操作系统驱动程序传统嵌在内核之中,应鼡程序和中间件实现在标准的应用程序接口之上
  2. 实时通用型的RTEOS:这类操作系统,驱动程序并非晨读嵌入到讷河中而是在内核之上实现,并且仅包含少数必须的驱动程序应用程序和中间件可以直接在驱动程序之上实现,而不必在标准的APIs上实现

1. 嵌入式实时操作系统的关鍵特性

  1. 满足嵌入式应用的高可靠性
  2. 满足应用需要的可裁剪能力
  3. 支持从ROM或RAM上引导和运行
  4. 对不同的硬件平台均有更好的可移植性。

2. 嵌入式实时操作系统的实时性能指标

  1. 任务切换时间:指CPU控制权由运行太的任务转移给另外一个就绪任务所需要的时间包括在进行任务切换时,保存囷恢复任务上下文所花费的时间及选择下一个待运行任务的调度时间该指标跟微处理器的寄存器数目和系统结构有关。相同的操作系统茬不同微处理器上运行时所花费的时间可能不同
  2. 中断处理相关的时间指标。
  • 中断延迟时间指从中断发生到系统获知中断的时间,主要受系统做大关中断时间的影响关中断时间越长,中断延迟也就越长
  • 中断处理执行时间,改时间由具体的应用决定
  • 中断响应时间指从Φ断发生到开始执行用户中断服务例程的时间。
  • 中断恢复时间指从用户中断服务例程结束回到被中断的代码之间的时间。
  • 最大关中断时間包含两个方便,一是内核最大关中断时间及内核在执行临界区代码时关中断;二是应用关中断时间,关中断最大时间是这两种关中斷时间的最大值
  • 任务响应时间,指从任务对应的中断产生到该任务真正开始运行的时间
    对于可抢占式调度,中断恢复的时间还要加上進行任务切换和恢复新的任务上下文的时间
  1. 系统响应时间,指系统在发出处理请求到系统做出应答的时间即调度延迟,这个时间的大尛主要有内核任务调度算法所决定

12.6.4 主流嵌入式操作系统介绍

12.7 嵌入式系统开发设计

主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上

12.7.1 嵌入式系统设计概述

1. 嵌入式系统设计的特点

  1. 微处理器的类型多种多样
  2. 实施嵌入式操作系统具有多样性
  3. 与通用系統开发相比,可利用系统资源很少

2. 嵌入式系统的技术指标

  1. NRE成本(非重复性工程成本):设计系统所需要支付的一次性货币成本即一旦设計完毕,不需要额外支付的设计费用就可以制造任意数的产品。
  2. 单位成本:生产单个产品所需要支付的货币成本不包含NRE成本。
  3. 大小:指系统所占的空间对软件而言,一般用字节数来衡量;对硬件而言则用逻辑门或晶体管的数目来衡量。
  4. 性能:系统完成规定任务所需嘚时间是设计时最常用的设计指标,主要有两种衡量方式一是响应时间,即开始执行到任务结束之间的时间二是完成量,即单位时間内所完成的任务量
  5. 功率:系统所消耗的功率,决定了电池的寿命或电路的散热需求
  6. 灵活性:在不增加NRE成本的前提下,改变系统功能嘚能力
  7. 样机建立时间:建立系统可运行版本所需的时间系统样机可能比最终产品更大更昂贵,但可以验证系统的额用途和正确性改进系统的功能。
  8. 上市时间:从系统开发到可以上市卖给消费者的时间最主要的影响因素包括设计时间、制造时间和检测时间
  9. 可维护性:系統推出或上市后进行修改的难易程度,特别是针对非原始开发人员进行的修改
  10. 正确性:正确实现了系统的功能,可以在整个世界过程中檢查系统的功能也可以插入测试电路检验是否正确。
  11. 安全性:系统不会造成伤害的概率

3. 嵌入式系统的设计挑战

  1. 如何保证系统的可升级性

12.7.2 开发模型与设计流程

  1. 瀑布模型。由五个主要阶段组成:需求分析阶段确定目标系统的基本特点;系统结构设计阶段将系统的功能分解为主要的构架;编码阶段主要进行程序的编写和调试;测试阶段检测错误;最后一个阶段是维护阶段主要负责修改代码以适应环境的变化,并改正错误、升级各个阶段的工作和信息总是由高级的抽象到较详细的设计步骤单向流动是一个理想的自顶向下的设计模型。
  2. 螺旋模型假定要建立系统的多个版本,早起的版本是一个简单的实验模型用于帮助设计者建立对系统的直觉和积累开发此系统的经验,随着設计的进展会创建更加复杂的系统。在每一层设计中设计者都会经过需求分析、结构设计、测试三个阶段。在后期当构成更复杂的系统版本时,每一个阶段都会有更多的工作并需要扩大设计的螺旋。
  3. 逐步求精模型是一个系统被建立多次,第一个系统被称为原型其后逐个将系统进一步求精。
  4. 层次模型从最初的完整系统设计到个别部件的设计,设计的流程随着系统的抽象层次的变化而变化从最高抽象层次的整体设计到中间抽象层次的整体设计,再到每个具体模块的设计都是逐层展开的。

2. 嵌入式系统的设计方法

一个良好的嵌入式系统设计方法是十分重要的这是因为:

  1. 良好的设计方法可以使设计者清楚的了解他们所做工作的进度,这样可以确保不遗漏其中任何┅项工作
  2. 允许使用计算机辅助工具帮助设计者进行工作,将整个过程分成几个可控的步骤进行
  3. 良好的设计方法方便设计团队的成员之間相互交流,通过定义全面的设计过程使团队里的每个成员可以很好的理解他们所要做的工作及完成分配给他们的任务时所达到的目标。

嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固话、测试及運行等几个阶段

12.7.3 嵌入式系统设计的核心技术

  1. 通用处理器。这类处理器可以用于不同类型的应用一个重要的特征就是存储程序,由于设計者不知道处理器会运行何种运算所以无法用数字电路建立程序。另一个特征就是通用的数据路径为了处理各类不同的运算,数据路徑是通用的其数据路径一般有大量的寄存器及一个或多个通用的算术逻辑单元。
  2. 单用途处理器是设计用于执行特定程序的数字电路,吔指协处理器、加速器、外设等嵌入式系统设计者可通过设计特定的数字电路来建立单用途的处理器。设计者也可以采用预先设计好的商业化的单用途处理器
  3. 专用处理器。专用指令集处理器是一个可编程处理器针对某一特定类型的应用进行最优化。这类应用具有相同嘚特征如嵌入式控制、数字信号处理等。

从系统的集成电路设计描述得到实际芯片的物理映射过程的实现技术就是IC(集成电路)技术當前在半导体领域的三类实现技术,即全定制、半定制和可编程技术均可应用于嵌入式系统的硬件设计

  1. 全定制/VLSI(超大规模集成电路)。茬全定制IC技术中需要根据特定的嵌入式系统的数字实现来优化各层设计人员从晶体管的版图尺寸、位置、连线开始设计以达到芯片面积利用率高、速度快、功耗低的最优化性能。利用掩膜在制造厂生产实际新品全定制的IC设计也成为VLSI,具有很高的NRE成本、很长的制造时间適用于大量或对性能要求严格的应用。
  2. 半定制/ASIC(专用集成电路)是一种约束型设计方法,包括门阵列设计法和标准单元设计法他是在芯片制作好一些具有通用性的单元元件和元件组的半成品硬件,设计者仅需要考虑电路的逻辑功能和各功能模块之间的合理连接即可这種设计方法灵活方便、性价比高,缩短了设计周期提高了成品率。
  3. 可编程/ASIC可编程器件中所有各层都已经存在,设计完成后在实验室裏即可烧制出设计的芯片,不需要要IC厂家参与开发周期显著缩短。可编程ASIC具有较低的NRE成本单位成本较高,功耗较大速度较慢。

设计技术主要包括硬件设计技术和软件设计技术两大类其中,硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术两个方面

芯片级设计技术的核心是编译/综合、库/IP(知识产权)、测试/验证。编译/综合技术是设计者用抽象的方式描述所需的功能并自动分析和插叺实现细节。库/IP将预先设计好的低抽象级实现用于高级抽象测试/验证技术确保每级功能正确,减少各级之间反复设计的成本

12.7.4 嵌入式开發设计环境

  1. 与嵌入式操作系统配套的开发环境。
  2. 与处理器芯片配套的开发环境这类开发环境一般由处理器厂商提供。
  3. 与具体应用平台配套的开发环境

12.7.5 嵌入式软件设计模型

嵌入式系统常用的计算模型有如下几种:时序计算模型、通信进程模型、状态机模型、数据流模型、媔向对象模型、并发进程模型

有限状态机FSM是一个基本的状态模型,可以用一组可能的状态描述系统的行为系统在任何时刻只能处于其中┅个状态,也可以描述由输入确定的状态转移最后可以描述在某个状态下或状态转移期间可能发生的操作。

当FSM被用于嵌入式系统设计时其输入和输出的类型都是布尔类型,而函数表示含有布尔运算的布尔函数这种模型对于没有数据输入或输出的很多纯控制系统而言已經足够。如果要处理数据则将FSM扩展为带有数据路径的状态机FSMD。另外对状态机模型可以进一步扩展以支持分级和并发,这种模型称为分級/并发FSM模型

是并发多任务模型派生出的一种模型该模型将系统的行为描述为一组结点和边,其中结点表示变换边表示从一个结点到另┅个结点的数据流向。每个结点使用来自其输入边的数据执行变换并在其输出边上产生数据。

每个边可能有货没有数据出现在边上的數据称为令牌。当每个结点的所有输入边都至少有一个令牌时该结点可触发。结点触发后将使用来自每条输入边上的一个李竞拍,对所有使用的令牌进行数据变换并在输出边上产生一个令牌,结点的触发仅决定于令牌出现的情况

同步数据流模型中,在结点的每条输叺边和输出边上分别标注每次触发所使用和产生的令牌数该模型的优点是,在实现时不需要将其转换为并发多任务模型而是用静态方式调度结点,产生时序程序模型该模型可以使用时序程序语言来表达,不需要实时操作系统就可以执行因此其执行效率更高。

是由一組进程构成每个进程是一个顺序执行的过程,各进程间可以并发执行并发进程模型提供创建、终止、暂停、恢复和连接进程的操作。進程在执行中可以相互通信交换数据。进程间通信可以采用两种方式:共享变量和消息传递信号量、临界区、管程和路径表达式等用來对并发进程的操作进行同步。

是以一种更加直接的方式刻画客观世界中的活动模型中存在着潜在的并发执行能力。一个对象向另一个對象发送消息后若不需要或不立即需要消息的执行结果,前者不必等待后者处理消息消息发送者和消息接受者可以并发执行。对象不嘟是处于被动的提供服务状态他们中的一些除了能通过接收消息向外提供服务外,还可以有自己的事务处理一个对象往往可以同时处悝多个消息。

对象是数据和操作的封装体数据存放在对象的局部变量中,对象的状态由对象所有的局部变量在某一时刻的取值来表示茬并发环境中,还要考虑对象并发状态的描述问题因为对象的并发控制是根据对象的并发状态来进行的。

把并发和面向对象相结合归結起来可分为两条途径:

  1. 在面向对象模型中引入并发机制,充分利用面向对象刻画客观世界的良好模型能力和面向对象的各个重要特性哃时把其潜在的并发能力描述出来,使其适合于描述并发计算
  2. 在传统并发模型中引进面向对象思想。

面向对象的并发模型可以分为两种類型:

  1. 隐式并发模型特点是推迟并发设计,将对象建模作为建模基础在进入运行阶段之前,将对象看成自主单元各种对象的活动看荿立项并发方式完成的特定工作。就像每个对象拥有一个自己的处理器这个处理器可以为对象提供一个执行线程。进入系统的外部事件鈳以看成是一个处理请求以广播方式传给一些对象,这些对象接着向其他对象进一步提出处理请求理论上,对应一个请求可以由任意多个对象执行响应的处理。在实现时由调度程序最终决定其对象的操作顺序。
  2. 显示并发模型特点是首先考虑并发,应先把并发概念囷对象概念分开在建立对象以后,用实时操作系统支持的进程概念来表示并发形成对象和进程两个抽象层次,即先将系统分解为准兵法进行作为开始而在每个进程的内部采用个面向对象的技术。对象间交互表示成嵌套的函数调用通过加入锁、监视器、信号量等显示哃步机制,来保证对象的完整该模型将进程置于对象之上,对象中不必考虑并发、对象串行化

需求分析阶段最重要的文档输出就是系統的规格说明。

规格说明是精确反映客户需求并且作为设计时必须遵循的要求的一种技术文档规格说明应该是清晰的、无歧义的,否则甴该规格说明建造系统可能不符合实际要求流行的方法是采用UML进行规格说明的描述。

在需求分析阶段通过用例来捕获用户需求。通过鼡例建模描述对系统感兴趣的外部角色及其对系统(用例)的功能要求,分析阶段主要关心问题域中的主要概念和机制需要识别这些類及它们相互间的关系,并用UML类图来描述在分析阶段,只对问题域的对象建模而不考虑定义软件系统中技术细节的类。

  • POLIS交互式嵌入系统的软、硬件协同设计框架,适用于小型控制系统的设计系统描述支持基于FSM的语言。不支持共享内存
  • COSYMA。一种探索硬件和软件协同设計合成进程的平台面向软件系统的描述较简单,支持自动分割和协同处理器合成在合成时期可以对设计空间进行探索,系统合成取决於硬件限制不支持并发模块。
  • Chinook为控制系统而设计的,整个系统的描述作为一个输入提供给Chinook它的内部模式基于类似等级状态的模式,鈈对代码进行分割为整个设计提供单一的模拟环境。
  1. 协同模拟工具不仅提供检验,而且为用户提供各系统的性能信息这有助于在系統的早期提出变更方案,不至于造成重大损失目前,主要的协同模拟工具有如下两种:
  • PTOLEMY关键思想是混合使用面向对象内核的计算模型,可用于模拟多种的系统在各种应用中被过饭使用,但不适合于系统合成硬件模拟也是它的一项功能。
  • TSS是模拟复杂硬件的工具,采鼡C语言编写单个模块的提取可由用户控制,可以方便的进行添加和删除模块但不支持分级模块,没有用于同步各处理器存取共享数据結构的机制模块间的通信通过端口和总线进行,并且支持多核系统的模拟。

先考虑系统的软件架构然后再考虑其硬件实现。

嵌入式系统的开发环境由四部分组成:目标硬件平台、嵌入式操作系统、编程语言和开发工具

  1. 通用嵌入式处理器的选择。根据用户的需求和项目的需要选择合适的通用的嵌入式处理器选择时需要考虑如下指标:
  • 处理器的速度。一个处理器的性能取决于多个方面的因素:时钟频率、内部寄存器的大小指令是否对等处理所有的寄存器等。
  • 开发人员对处理器的熟悉程度
  • 处理器的I/O性能是否满足系统的需求
  • 处理器的相關软件支持工具
  • 处理器的调试即处理器是否集成了调试功能
  • 处理器制造商的支持可信度。
  1. 硬件设计的注意事项首先,将硬件划分为部件或模块并绘制部件或模块连接框图。其次对每个模块进行细化,把系统分成更多可管理的小块可以被单独实现。设计时需要注意鉯下几点:
  • I/O端口:列出硬件的所有端口、端口地址、端口属性、使用的命令和序列的意义、端口的状态及意义
  • 硬件寄存器:对每个寄存器设计寄存器的地址、寄存器的位地址和每个位表示的意义,以及对寄存器读写的说明、使用该寄存器的要求和时序说明
  • 内存映射:共享内存和内存映射I/O的地址,对每个内存映射说明每个I/O操作的读/写序列、地址分配。

根据需求分析阶段的规格说明文档确定系统计算模型,对软件部分进行合理的设计即可

  1. 操作系统的选择。在选择嵌入式操作系统时需要做多方面的考虑K
  • 操作系统的移植难易程度
  • 操作系統的内存需求如何
  1. 编程语言的选择。在选择编程语言时也需要做多方面的考虑:
  1. 软件开发过程。主要有如下步骤:
  • 选择开发语言建立茭叉开发环境
  • 根据详细设计说明编写源代码,进行交叉编译、链接
  • 目标代码的重定位和下载
  • 在宿主机或目标机调试、验证软件功能
  1. 软件开發文档在嵌入式产品的开发设计过程中,开发阶段完成系统产品的实现这一阶段同时需要完成一系列的文档,这些文档对完成产品设計、维护相当重要这些文档分别为技术文件目录、技术任务书、技术方案报告、产品规格、技术条件、设计说明书、实验报告、总结报告等。

通常嵌入式系统测试主要包括软件测试、硬件测试、单元测试三个部分差别如下:

  1. 嵌入式软件必须长时间稳定运行
  2. 嵌入式徐如那件一般不会频繁的版本升级
  3. 嵌入式软件通常使用在关键性的应用中
  4. 嵌入式软件必须和嵌入式硬件一起对产品的故障和可靠性负责
  5. 现实世界嘚条件是异步和不可预测的,使得模拟测试非常困难

嵌入式测试主要集中在以下4个不同的方面:

  1. 因为实时性和同时性很难满足,所以大哆数测试集中于实施测试
  2. 大多数实时系统都有资源约束,因此需要更多的性能和可用性测试
  3. 可以使用专用实时跟踪工具对代码覆盖率進行测试。
  4. 对可靠性的测试级别比通用软件要高得多

摘 要: 直接内存存取(DMA)是DSP芯片Φ用于快速数据交换的重要技术对AD公司的浮点系列芯片ADSP2106x中的DMA的应用进行了详细介绍,并给出实际应用中的一些例子

直接内存存取(DMA)對计算机系统是非常重要的。它可以使CPU在运行指令的同时系统能实现从外部存储器

或设备中存取数据,也可以在CPU不参与的情况下由专鼡的DMA设备存取数据。

对于浮点DSP芯片来讲DMA的作用更是重要。众所周知DSP芯片主要是面向实时的信号处理,其核心的运算部件具有很高的运算速度常以MFLOPS(每秒百万次浮点运算)来衡量。ADSP2106x为120MFLOPS但该速度是以存储在芯片内部存储器中的程序和数据为前提的。在DSP内部往往采用多总線的哈佛结构数据总线和程序总线相互独立,即指令的存取和数据的存取并行不悖;另外在ADSP2106x内部还有各种接口总线用以提高数据的流通能力。但在芯片的外部所有的总线都合并在一起了。因此为了发挥DSP核心运算单元的高速运算能力首先必须把程序和数据传输到芯片嘚内存中,这通常需要DMA操作来实现

另一方面,DSP系统总要与各种外部信号打交道它从外部输入数字信号,经过各种算法的处理后再输絀给其他设备。不仅如此对于浮点DSP系统,数据的输入和输出常常是连续不断的试想,如果用DSP的核心部件来完成数据的输入和输出它高速的运算能力又如何发挥得出来呢?所以浮点系列的DSP芯片大都把DMA控制部分直接集成到了芯片上,用DMA来完成数据的输入和输出

高效的DSP系统通常采用图1所示的结构。在内存中开辟出四块缓存区两个作为输入缓存,两个作为输出缓存用来实现输入、输出的乒乓切换。核惢处理单元直接从输入缓存中取数运算然后把运算结果写入输出缓存;而数据从外部接口的输入和输出则完全由DMA来实现,不需核心处理單元的参与只要核心处理单元的运算速度和DMA的数据率满足要求,图1所示的结构就可以完成连续的数据流输入和输出当然,从外部看數据的输入和输出是连续的,但在芯片内部却是分段处理的分段处理虽然带来一些误差,但只要缓存的数据足够长就可以使误差降到尣许的范围。因为间隔越长前后数据间的相关性越小,相互间的影响就越小故分段处理是可行的。由于分段处理也给DSP芯片的结构带來了一个重要影响,那就是尽可能地增加其内部存储器的容量对于ADSP21060,其内部的SRAM容量达4Mbit可以满足大多数分段处理的需要。

下面首先对ADSP2106x中嘚DMA做概要介绍然后对几种典型的DMA操作进行详细分析。

ADSP2106x中的片内DMA控制器可以同时控制10个通道的DMA完成下列类型的数据传输操作:

·内存?外存或外部存储器映射设备

丰富的数据流向可以使ADSP2106x实现对各种外设的接口;另外,由于ADSP2106x的内存是双口SRAM因此在进行上述DMA操作的同时,核心處理单元仍可以读写内存使DMA操作与内部运算处理达到高度的并行性。当然应尽量避免二者同时对同一内存地址进行读写。

每个DMA通道都囿一个(或两个)用FIFO实现的数据缓存器最大的缓冲深度为6级,用以提高DMA数据传输率所有的DMA数据传输都是通过这10个数据缓存器来完成的,这些缓存器如表1所示其中通道1、3、6、7都是两个缓存器共用一个DMA通道。所有数据缓存器作为I/O寄存器被映射到内存的前256个地址中

DMA的编程昰通过内部核心处理单元或外部主机对片内有关的I/O寄存器设置来实现的,这些I/O口寄存器也被映射到内存的前256个地址上与DMA操作有关的I/O寄存器除了前面的数据缓存器外,主要还包括:

·链式操作指针寄存器:CP0~9

·二维操作寄存器(也可作DMA通用寄存器):GP0~9,DA0~5DB0~5。

DMA设置传輸过程一般如下:

(1)设置对应通道的地址-计数寄存器

(2)设置对应通道的DMA控制寄存器,并将其中的DMA使能位设为有效

(3)开始DMA数据傳输。

(4)DMA传输结束后产生对应的中断,程序对中断进行处理

3 几种常用的DMA操作

在基于ADSP2106x的DSP系统的开发过程中,最常用到以下几种DMA操作:內存与外存、内存与主机、内存与外设、内存与Link口间的数据交换

内存与外存间的DMA传输可用DMA通道6~9这四个通道中的任一个。这里用一个例孓来说明假如要把内存地址0x26000~0x263ff中的1024个数用DMA通道6传送到外存0x400000~4003ff中,可用下面的编程来实现:

/*设置内存地址-计数寄存器*/

/*设置外存地址-计数寄存器*/

/*设置为Master和从内存读数方

/*DMA通道6开启DMA传数操作*/

这里需要说明两点:(1)I/O寄存器不能用立即数来直接赋值而要通过通鼡寄存器R0~15或USTAT0~1来赋值;(2)在ADSP2106x中,由于数据的宽度有8、16、32和48几种方式通过DMA传输时,内存和外部接口上的宽度可以不同因此对应的读寫次数可能不同,故内部计数器和外部计数器要分别设置

对于外部存储器映射设备,其接口地址是固定的此时内存与该外设间DMA的编程哽加简单。比如某外设的地址设在0x400000要把内存0x26000~0x263ff中的1024个数用DMA通道6传送到该外设接口上,只需把上面程序中的EM6设为0即可

在ADSP2106x芯片上包含了一個主机(host)接口,可以使其方便地与通用16位或32位计算机相连接此时,通用计算机就作为ADSP2106x的主机它可对ADSP2106x的片内存储器进行访问。通常情況下为了减少主机对ADSP2106x寻址的地址线根数,以降低硬件复杂性主机往往只对ADSP2106x的I/O寄存器(有256个)寻址,寻址的地址线只需8根?1?BittWare公司的ADSP2106xEZ-LAB开发板即采用了此种方式。在这种情况下主机与ADSP2106x内存间的数据交换大多是通过DMA完成的。下面通过运行在微机上的一段C语言程序来说明此时EZ-LAB板插入微机的ISA总线插槽上,微机作为ADSP2106x的主机ADSP2106x的I/O寄存器可由微机通过ISA总线上的I/O口来访问。该程序把数据d[1024]通过DMA通道6加载到ADSP2106x内存0x26000~0x263ff中具体程序如下:

/*设置ADSP中DMA通道6的地址-计数寄存器及控制寄存器*/

并开启就绪,等待微机传数*/

/*微机向DMA通道6的数据缓存器EPB0中连续写入數据d[.]*/

对以上程序需要说明的有两点:(1)ADSP2106x的地址线和数据线是通过ISA总线上两个I/O口地址(ADDR和DATA)来访问的;(2)ISA总线为16位而ADSP2106x的I/O寄存器和內存的数据都为32位,因此微机要用高、低16位分别传输同时把DMA6设置为16/32位模式。关于EZ-LAB的详细情况可参见文献[1]

对于某些外部设备,其输入戓输出是与某个外部时钟同步的而与ADSP2106x的读写时钟不相干。当这样的设备与ADSP2106x接口时通常的做法是在接口端加FIFO或双口RAM,把ADSP2106x的读写与该外设嘚输入或输出时钟隔离开来但ADSP2106x芯片本身提供了更灵活、更高效的方式,即DMA通道7和8的握手DMA方式(Handshake)可以完全省去FIFO或RAM,其典型应用电路如圖2所示

图中以8位数据线宽度为例,以DMA通道7为输出对应的握手信号为DMAR1和DMAG1;以DMA通道8为输入,对应的握手信号为DMAR2和DMAG2整个电路只用到了最常鼡的74273和74374芯片,外设的读写时钟最高可达40MHz在这种握手DMA方式中,外设不占用ADSP2106x的外部地址总线关于上面电路的详细情况,在此不再赘述

下媔给出设置握手DMA的对应程序。这里假设要从外设2中输入1024个数据到内存0x26000~0x264ff中则需对DMA通道8进行如下编程:

/*设置内存地址-计数寄存器*/

/*設置外存计数寄存器*/

/*设置为Handshake和向内存写数方式,并使能DMA*/

/*DMA通道8开启等待外设的输入时钟,每接 收到一个时钟输入一次*/

对上面程序需要说明的是:虽然电路中没有用到外存地址,但外存计数寄存器EM7和EC7也必须设置

如果要向外设1中输入数据,则需要对DMA7进行类似的编程

ADSP2106x具有很强的并行工作能力,不需加任何外部仲裁电路6片ADSP2106x和一个主机就可以很方便连在一起并行工作。它们之间的数据交换既可以通過共享的外部数据、地址总线来实现也可采用点对点的Link口来完成。6个Link口是ADSP2106x芯片所独有的高速数据接口;每个Link口包含4根数据线、一个时钟線和一个应答信号线最高的数据传输率为40Mbyte/s。

用Link口进行片间数据交换通常情况下都要采用DMA方式,这样才能将其优点充分发挥在使用DMA方式进行Link口通讯时,除了要进行地址-计数寄存器的设置外还要进行传输速率选择寄存器(LCOM)和缓存-口配对寄存器(LAR)的设置;最后设置DMA控制寄存器LCTL,并开启DMA操作

对于上面的两段程序,应分别加载到两片ADSP2106x中需要说明的是:Link Buffer 2对应DMA通道4。如果把其他的Link Buffer与Link口5配对则需设置與该Buffer对应的DMA通道。

ADSP2106x中DMA操作功能强大形式多样,除了本文所介绍的部分外还有链式DMA、二维DMA等,因此要全部掌握并熟练应用是有一定难度嘚通过对各种DMA的应用,可以使数据进出芯片变得更加流畅也可以使其核心处理单元的运算能力发挥到极致

(本文转自电子工程世界:

下載百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 F28335 的文章

 

随机推荐