嵌入式系统及模型化开发技术研究

摘 要: 随着电子技术的发展,嵌入式产品的丰富,消费者对嵌入式产品的功耗、性能、稳定性和安全性等方面提出了更高的要求,为了进一步缩短新产品的开发周期,减轻开发难度,提出基于VxWorks系统与Matlab/Simulink仿真工具的嵌入式系统软件平台,利用PCI总线与TMS320F2812控制的嵌入式接口箱相连,扩展了开发平台的接口,并可自动生成嵌入式C代码以及自定义模块封装。最后,利用搭建的嵌入式开发平台设计了避雷器监测系统校验平台,进一步证明了嵌入式开发平台的稳定性和可靠性,并利用模型化开发技术加快了嵌入式系统的开发速度。

关键词: 嵌入式系统; 模型化开发; Matlab/Simulink; DSP; 泄漏电流

中图分类号: TN919⁃34 文献标识码: A 文章编号: 1004⁃373X(2016)03⁃0146⁃05

Research on embedded system and model⁃based development technology

SA Rina

(School of Computer and Information, Hohhot Vocational College, Hohhot 010051, China)

Abstract: With the rapid development of electronic technology and increase of the embedded products, the high requirements for power consumption, performance, stability and security of the embedded products are proposed by the customer. To shorten the development cycle of new products and reduce the development difficulty, the embedded system software platform based on VxWorks system and Matlab/Simulink simulation tool is put forward. The connection of PCI bus and embedded interface controlled by TMS320F2812 is used to expand the interface of the development platform. The embedded C code and custom module packaging are generated automatically. The check platform of lightning arrester monitoring system was designed by the established embedded development platform, and the stability and reliability of the embedded development platform were verified further. The development rate of the embedded system can be speeded up by means of the model⁃based development technology.

Keywords: embedded system; model⁃based development; Matlab/Simulink; DSP; leakage current

0 引 言

随着电子技术的飞速发展,特别是近些年通信、计算机、消费电子一体化的趋势日益明显,嵌入式技术已成为一个热点研究对象, 而随着“3G”、“物联网”和“云计算”等概念的提出,更为嵌入式系统的应用及发展带来了巨大的机遇与挑战。

为了保证市场,一个新的嵌入式产品从研发到投放市场,要求的时间将越来越短,这对传统的嵌入式开发方式和设计模式提出了挑战。为了更好地利用现有积累的技术,避开嵌入式系统复杂烦琐的底层设计,尽量减少在系统设计与开发上的时间和精力的浪费,缩短开发周期,人们开始把基于模型的开发方式引入到嵌入式开发与设计中[1]。

基于模型的设计方法是一种设计复杂系统的可视化数学方法,集成了良好的规范要求、仿真设计、代码生成和软件测试等工具,可以方便地修改模型设计,能够在产品设计的早期阶段就可以评估产品的工作性能,发现设计缺陷并能够及时予以纠正,避免在开发后期发现问题而造成更大损失,该方法可以带来更低的研发成本、更短的研发周期和更高的产品质量[2]。

通过介绍Matlab/Simulink的模型化开发技术、VxWorks实时操作系统,嵌入式开发平台的操作系统和硬件构成,以及硬件板卡的软件程序开发等,为提高嵌入式软件开发的效率提供了经验和方法,利用搭建的嵌入式开发平台进行了避雷器泄漏电流监测设备校验平台的开发。通过此平台的开发,进一步说明了基于模型的设计可以加快系统开发进程,缩短开发周期。

1 Matlab/Simulink模型化开发技术

Simulink提供了交互式的可视化图形开发环境,用户只需在Simulink模块库中用鼠标拖拽模块并进行简单的连接操作和参数设置即可实现建模、仿真和调试。

1.1 Real⁃time Workshop

Real⁃time Workshop(RTW)是Matlab图形化建模仿真环境Simulink的一个重要功能模块,是基于Simulink模块的自动代码生成工具。RTW提供了从系统设计到硬件实现的直接途径,使用RTW进行实时硬件的设计测试,用户可以缩短开发周期,降低成本。利用RTW进行自动代码生成之前,需要根据不同的目标平台指定不同的目标语言编译器(Target Language Compiler,TLC)文件。在TLC文件中,包含了模型在目标平台源代码生成时特定的规则。RTW在自动代码生成的过程中,还需指定Makefile模板文件(*.tmf),在Makefile模板文件中定义了目标代码的编译环境,如编译器的路径、Matlab库的路径等。RTW会根据Makefile模板文件生成具体的Makefile文件,以提供给make工具编译时使用。

1.2 TMS320F2812开发环境CCS IDE

为了缩短TI DSP的软件开发周期,TI公司提供了一套集成开发环境CCS IDE,CCS提供了非常良好的用户界面、面向窗口,具有菜单、对话框式接口,具有丰富的图形图标,辅之以完整的可即时访问的帮助,使开发人员不必记忆复杂命令就能够轻松地掌握和使用CCS开发系统。

1.3 Simulink进行DSP的模型化开发

Mathworks公司和TI公司共同开发了Matlab Link for CCS Development Tools工具包用于将Matlab和TI的DSP集成开发环境CCS以及硬件平台直接连接起来[3],以向TMS320F2812的外部存储器的一个固定地址循环更新数据的模型为例,介绍Matlab/Simulink下的DSP模型化开发步骤及相应配置。

(1) 根据硬件DSP目标板和所使用的仿真器,在Setup CCS中对CCS开发环境进行配置。

(2) 双击Matlab图标运行Matlab,在命令窗口输入“ccsboardinfo”。

(3) 在命令窗口输入“Simulink”,打开Simulink模块库浏览器,利用Simulink模块搭建模型。由于生成代码的目标硬件是TMS320F2812,因此需要将Target Support Package TC2下的F2812eZDSP模块添加到模型中,如图1所示。

(4) 在Target Support Package TC2中提供了将数据向任意地址写的模块,如图2所示。需在此模块中设置目的地址和数据格式,并将需要写的数据接至此模块的输入端即可。在此模型中,设置目的地址为0x00100000,数据类型为unit8。

(5) 模型搭建完成后,为了生成与目标板卡相匹配的C代码,还需设置RTW的目标语言编译文件(TLC),与DSP相对应的TLC文件为ccslink_ert.tlc。

(6) 设置Real⁃Time Workshop在build时所执行的操作。选择“Build_and_execute”即编译连接,生成可执行代码并加载到目标板然后开始运行。

(7) 在CCS开发环境中打开“watch”窗口,输入地址0x100000,如图3所示,不断刷新窗口,看到地址0x00100000处的值在0~15之间变化,说明自动代码生成正确。

2 嵌入式开发平台

嵌入式开发平台包括上位机操作系统和下位机接口机箱两部分,上位机操作系统运行嵌入式操作系统——VxWorks;下位机接口机箱部分可以配置控制板卡和功能板卡两种类型的板卡,其中控制板卡是以TMS320F2812为核心的DSP板,功能卡为模拟量输入卡,模拟量输出卡,数字量输入卡,数字量输出卡四种板卡,实现信号量的输入输出。上位机操作系统与下位机接口箱之间通过PCI总线和系统自定义总线进行通信。

2.1 嵌入式开发平台的操作系统

VxWorks系统是由美国风河系统(Wind River System)于20世纪80年代推出的一款嵌入式实时操作系统,系统由一个体积很小的内核以及一些可以根据需要进行定制的系统模块组成,可以根据用户需求进行组合的实时操作系统,其开放式结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的实时操作系统。

2.2 基于PCI的FPGA开发板

Red Cyclone开发平台基于Altera Cyclone系列FPGA和PLX PCI9054桥接芯片,技术成熟、性能稳定并且具有良好的兼容性。

本嵌入式开发平台所使用的PCI开发板中,PCI9054的PCI总线信号直接与工控机机箱内的PCI插槽相连接,包括系统定义信号,地址数据信号,接口控制信号,仲裁信号,错误报告信号和中断信号等。

PCI9054的配置接口信号直接与E2PROM芯片的93LC56相连,在系统刚上电或者复位时通过E2PROM直接对PCI9054的寄存器进行初始化配置,主要包括设备标识、状态寄存器、控制寄存器、中断寄存器、局部总线上设备的地址、空间大小等。PCI9054端的本地总线信号与开发板上的FPGA相连,包括地址总线、数据总线字节使能信号,读写控制信号及其他的控制信号。PCI9054设有两个专门的引脚(MODE0,MODE1)用于配置工作模式,在本开发板中,工作模式设置为C模式,见表1。

基于PCI的FPGA开发板中使用Altera公司出产的Cyclone系列EP1C6Q240 FPGA芯片。该FPGA芯片具有5 980个逻辑单元(约15万门)和92 160位片内存储器[4]。基于PCI的FPGA开发板结构如图4所示。

2.3 以TMS320F2812为核心的DSP开发平台

TMS320C28x系列是TI公司最新推出的DSP芯片, 它是目前国际市场上最先进、功能最强大的32位定点DSP芯片,最高处理能力可达到40 MIPS。

本嵌入式开发平台共有模拟量输入卡,模拟量输出卡,数字量输入卡,数字量输出卡四种板卡。模拟量输入卡和模拟量输出卡全部采用多芯片架构实现,每个板卡上由一个FPGA芯片实现多个转换芯片的功能控制。 模拟量输入卡利用8个ADS8361作为模/数转换芯片。ADS8361为 16位双通道差分同步采样模/数转换器,最高采样率为500 Kb/s,每个模拟量输入卡具有16个相互独立的通道输入,可以实现16路模拟量的同步采样[4]。模拟量输入卡的架构如图5所示。

模拟量输出卡利用8个AD5545作为数/模转换芯片。AD5545为16位双通道数/模转换器,最高更新率为500 Kb/s,每个模拟量输出卡具有16个相互独立的通道输出,可以实现16路模拟量的输出。

3 嵌入式开发平台软件设计

3.1 FPGA内部逻辑设计流程

FPGA主要实现PLX9054与TMS320F2812之间的数据交互,FPGA采用 “Top⁃down”方式进行开发,其内部的设计电路功能区分如图6所示,包含以下三个部分:PCI控制模块,双口RAM模块,DSP控制模块。其中DSP控制模块又利用“Top⁃down”分为FIFO模块、读写控制模块和中断控制模块三部分。

3.2 DSP+FPGA接口程序设计

MS320F2812的XINTF接口用于实现TMS320F2812对扩展的存储器、外设及其他接口的连接。该接口不仅具有独立的数据总线和程序总线,而且还具有各种访问扩展存储器或外设所需要的控制信号,利用这些控制信号,可以方便地实现TMS320F2812对外部数据的传输。TMS320F2812除了可以进行16位或32位格式的数据访问,还支持利用特殊的字节访问指令进行一个字的高字节访问或低字节访问。

TMS320F2812芯片不提供外部总线对其内部空间的直接读/写操作,因此,要实现外部总线对TMS320F2812的寄存器或者内部数据空间的读/写只能通过中断或者查询的方式让TMS320F2812将相应的数据写入到外部存储器中或者将数据读入到内部存储空间内,但是查询方式系统效率较低,因此采用中断方式。

3.3 功能卡程序的封装与验证

利用Matlab/Simulink中的Matlab Link for CCS Development Tools可以方便地实现DSP的模型化开发。在Simulink模块浏览器下找到Target Support Package for TC2,点击C281x DSP Chip Support,在右侧窗口中可以看到Mathworks已经编写好的TMS320F2812的外设模块,在使用某个外设功能时,只需将相应的模块添加到Simulink模型中即可,相应的参数设置可以参考各个模块的帮助文档。

4 嵌入式开发平台的应用实例

氧化锌避雷器是20世纪70年代发展起来的一种新型避雷器,它主要由氧化锌压敏电阻构成。在运行过程中,氧化锌避雷器会因老化和受潮等原因的影响,在各种环境下运行会出现一些故障,近年来提出了监测氧化锌避雷器运行状况的要求,监测氧化锌避雷器运行状况,可以在不停电情况下随时了解避雷器的性能。本文提出一个监测氧化锌避雷器设备的校验平台用来鉴定氧化锌避雷器监测设备的优劣。开发的嵌入式校验平台可以通过上位机软件设置泄漏电流的大小,通过专用的端子提供给氧化锌避雷器监测装置进行检测,通过对比氧化锌避雷器监测装置的检测结果和上位机的自检值,可以检验待测避雷器监测装置的性能。

4.1 避雷器泄漏电流的设计与实现

根据泄漏电流的相关理论[5⁃6]可知,将泄漏电流与全电压的关系进行如下整理:

式中:[AC]为容性电流幅值;[ω]为工频频率;[C]为避雷器的实际电容值;[AR]为阻性电流幅值。因为在一般情况下,阻性电流幅值为容性电流幅值的5%~20%。在本设计中,设置阻性电流的幅值为容性电流幅值的10%,则[AR=0.1⋅AC,]同时假设[C=600×10-12 ]F,则式(3)和式(4)变为:

由于工频频率[ω]和避雷器的电容值都是已定的,因此在上位机端只要设置一下容性电流的幅值即可得到全电流[i]和加在避雷器上的参考电压[u。]根据以上内容,在Matlab/Simulink下可以搭建相应的避雷器泄漏电流模型,该模型可以实现全电流的模拟和加在避雷器上参考电压的模拟。模型如图7所示。

设置容性电流幅值为20 mA,产生的全电流和阻性电流如图8所示。

4.2 阻性电流提取算法的设计与实现

阻性电流提取算法步骤如下:

第一步:利用A/D采集参考电压[U]信号和全电流信号[I;]

第二步:对参考电压[U]信号进行FFT运算,得到[Uk]和[αk;]

第三步:利用[Uk]和[αk]还原出[iC1(t);]

第四步:根据公式[C=0TiC1(t)i(t)dt0Ti2C1(t)dt]得到避雷器实际的电容值[C;]

第五步:利用公式[iR(t)=i(t)-CiC1(t)]得到泄漏电流中的阻性电流。

根据以上介绍利用Matlab/Simulink搭建计算模型,如图9所示。

其中,AnalogInputL模块是A/D采集模块,用于采集外部的参考电压信号[U]和全电流信号[I;]FFT模块用于对参考电压信号[U]进行快速傅里叶变换,变换的结果输入DataProcess模块,此模块是自己封装的模块,用于实现算法步骤的第三至第五步,计算出阻性电流后,通过TCP/IP模块发送到上位机界面进行检测结果的显示。利用信号产生模型和阻性电流提取算法模型并进行Matlab/Simulink仿真,得到的结果如图10所示。

从图10可以看出,利用本文介绍的阻性电流提取算法,可以提取出全电流中的阻性电流部分成分,并且阻性电流的设置值与算法最终计算出的结果相差很小,最大误差未超过2×10-6 A。

5 结 论

本文研究了嵌入式系统的模型化开发技术,并根据相关内容搭建了嵌入式系统开发平台。该平台利用Maltab/Simulink进行模型化开发,并将嵌入式机箱的多种功能卡的驱动程序封装成为模块提供给开发人员使用。同时,本文实现了上位机X86架构处理器与下位机处理器之间通过PCI的数据通信,为实验室下一步有关异构多处理器相关课题的研究打下了基础。

参考文献

[1] 齐振恒,孙中杰,李涛.RTW嵌入式代码自动生成机制与代码结构分析[J].计算机测量与控制,2010,18(3):639⁃642.

[2] 章小强.嵌入式无线通信平台设计[D].哈尔滨:哈尔滨工程大学,2009.

[3] 罗琳玲.航迹融合系统的研究与实现[D].成都:电子科技大学,2009.

[4] 郑健,张国庆,田悦新,等.氧化锌避雷器泄漏电流在线监测技术综述[J].继电器,2000,28(9):7⁃9.

[5] 邓维,刘卫东,傅志扬,等.MOA泄漏电流网络化在线监测系统[J].高电压技术,2003,29(9):22⁃23.

[6] PINCETI P, GIANNETTONI M. A simplified model for zinc oxide surge arrester [J]. IEEE Transactions on Power Delivery, 1999, 14(2): 393⁃398.

推荐访问:技术研究 嵌入式系统 模型 开发