实时微测量系统指令集及解析算法_第1页
实时微测量系统指令集及解析算法_第2页
实时微测量系统指令集及解析算法_第3页
实时微测量系统指令集及解析算法_第4页
实时微测量系统指令集及解析算法_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实时微测量系统指令集及解析算法蒋亦悦,庄璇,赵刚(上海交通大学电气工程系 电力传输与功率变换控制教育部重点实验室,上海 200240)摘要:为了使数字测量环节尽可能靠近转换装置输出端,减少在长距离传输小信号过程中引入的干扰,提出了一种嵌入式微测量系统的设计方案。硬件上采用功能互补的FPGA与ARM双核心,软件上以实时操作系统为基础加载指令交互模块及其他应用代码。FPGA模块具备实时性和同步性,用于实时同步采样,ARM在通信等事务性操作上更为灵活可控,用于实现指令解析与回复。程控指令集参考现有示波器指令集的规范,另规划了二次开发接口,具有拓展性和可移植性。关键词:微测量;程控指令;ARM;实时操

2、作系统中图分类号:TM29 文献标识码:A 文章编号:1001-1390(2016)00-0000-00Command set of real-time micro-measurement system and its analyzing algorithmJiang Yiyue, Zhuang Xuan, Zhao Gang(Key Laboratory of Control of Power Transmission and Conversion, Ministry of Education, Department of Electrical Engineering, Shanghai J

3、iao Tong University, Shanghai 200240, China).Abstract:To minimize the interference in the long-range transmission of small signal, we propose a new design scheme of an embedded micro-measurement system where the digital measurement part is close to the output of the converter. It useuses dual-core h

4、ardware system with Ffield-Pprogrammable Ggate Aarray (FPGA) and Aadvanced RISC Mmachines (ARM) and program-controlled command set based on real-time operating system in software. FPGA takes charge of synchronous sampling in the system for its real-time performance, while ARM could be used to analyz

5、e the command and send reply since it is more flexible and easily to be controlled in transactiontransactional issues. This command set is referred to the command syntax of oscilloscope, based on the real-time operating system and the properties of ARM as well. Meanwhile, it has the open part to dev

6、elop the secondary interface in the future, which make the system more flexible and expandable.Key words: Mmicro-Mmeasure, Pprogram-controlled Ccommand, ARM, Rreal-time Ooperating Ssystem0 序言文章设计了微测量系统的指令集以及其解析算法,此设计是基于ARM和FPGA的双核系统,并使用AC9226,ADC141S626和ADC128S022芯片完成测量。系统通过FPGA控制ADC芯片采样,并在ARM1-2中构架

7、FreeRTOS3实时操作系统以满足系统测量实时性要求。1 微测量系统结构1.1 系统的总体框架微测量系统核心是FPGA和 ARM双核,系统框架如图 1所示。其中,操作设备与ARM间通过串口或WiFi通信,ARM部分作为测量系统的服务器端响应操作设备的指令并给出回复。ARM内部使用FreeRTOS管理任务,并且通过FSMC(Flexible Static Memory Controller)与FPGA传递指令和数据。FSMC技术是意法半导体公司STM32系列系列采用一种新型的存储器扩展技术,可根据嵌入式系统的需求,进行不同类型大容量静态存储器的扩展。ARM通过FSMC在静态存储器中写入控制字或

8、者读取数据,时序如图2所示,FPGA根据控制字进行测量和在相应位置上写入测量结果以备读取。FPGA则用硬件描述语言编程,满足ADC芯片时序和多路同步采样的要求,其电路图如图3所示。图 SEQ Figure * ARABIC 1 测量系统结构Fig.1 System Structure of measurement system图 2对于复用地址和数据总线的FSMC时序图【1】Fig.2 WriteTime sequence diagram for multiplexed SRAM in FSMC图 3FPGA与各测量模块的电路图Fig.23 schema Circuit diagram for

9、 FPGA and each measurement chipsmodule1.2 测量对象与模数转换(ADC)测量对象分三类,雷电冲击波形(频谱1MHz)测量,工频电信号(频谱10KHz)测量和温度传感器电信号(几乎直流),根据测量对象的采样频率要求,分别采用AD9226,ADC141S626和ADC128S022测量。雷电冲击类波形5是测量短时间的峰值波形,采样频率至少10MHz,故而使用两片AD9226并联做单通道,采样频率设置为10MHz,20MHz,50MHz和100MHz可选,其中100M需要两片同时采样。工频信号设计上测量4组三相功率,在使用中4组可以任意组合开启,由于工频信号在

10、后期计算中对于原始数据的同时性要求高,单独使用一个AD转换器难以满足,同时考虑到低功耗的要求,最终确定使用12片ADC141S626同步采样,采样频率为100kHz至250kHz范围内任意指定,通过SPI协议串行向FPGA返回数据。温度传感器采样频率要求低,需要长时间使能,所以选用2片ADC128S022共16个通道,测量数据通过SPI串行返回。测量后的各类数据保存在SRAM中指定位置,以供ARM读取来进行下一步计算。1.3 指令集交互模块指令集交互模块负责解析指令与回复, ARM的UART为一端,另一端可以是PC模拟的串口,也可以是后期开发的客户端网络的接口。在指令集的解析模块,采用UART

11、读取字符串,分段解析,并且通过新建任务等方式,完成指令内容。数据的返回方式是以字符串型返回,并加上首尾标志位和采样数据两两之间的分隔符。2 程控指令集设计指令集需要完成三个方面的功能需求,分别为数据采集设置和状态查询(OSC),数字量输入输出(DIO),以及用户自定义指令(用户后期使用过程中拓展的部分)。统一的格式以芯片名为开头,加冒号后为指令内容,有问号结尾的皆为需要返回数据的指令。在指令中有辅助符号来区分判别指令内容,具体如表1中所示。表 SEQ Table * ARABIC 1 指令集辅助符号Tab.le 1 Assistant symbols of command set$指令始末标志

12、位芯片名:指向=定义通道选择?有返回值对应四大类功能和用户后期拓展的自定义功能的指令如下:使能芯片:start/stop参数设置:参数=设定值参数读取:参数?返回数据:curve,(通道,)长度?用户指令启动与回复由于针对不同的测量对象时,采用的是多块同一型号芯片拼接的方式,因此在芯片名上需要有一定的区分。对于测量对象类型的全局参数(例如,测量雷电信号的频率为两片AD9226共同的参数),芯片名称为采用的芯片型号,但对于同一型号芯片的不同测量通道的参数设置则是在芯片型号_1/2的方式来区分(例如:测量雷电信号的两片芯片的触发位置是可以不同的)。芯片名列举如下:AD9226,AD9226_1,A

13、D9226_2,AD9226_s(两片AD9226联合采样时的参数设置目标),ADC141S626和CAT9555_*(*=07,分别标志8片CAT9555)。所有的参数设置通过ARM的解析后,将会以控制字的模式写入SRAM的指定位置,例如在SRAM分配的控制字某一地址上“某两个bit=00:触发水平10%FSD;01:触发水平20%FSD;10:触发水平50%FSD;11:触发水平80%FSD。”在实际工作时,FPGA在开始采样前会读取芯片的控制字以调整采样参数。2.1示波器指令(OSC)2.1.1 AD9226相关指令通过改变AD9226芯片的设置并使其返回采样序列,这种特性使得AD922

14、6芯片可用于测量雷电信号等应用中,使用和禁用该芯片使用指令“:Start/Stop”。指令参考巴科斯范式(Backus-Naur Form)6,分为设置参数和读取两个部分,设置主要控制采样频率,采样模式状态,触发位置,触发边沿和触发位置;读取部分是读取测量参数实际值和返回测量数据。参数的表格如下:表 2 AD9226芯片参数Table .2 The pParameters of AD9226参数名对应符号可选值采样频率Freq100M,50M,20M,10M,5M,2M和1M工作状态StateNormal,Trigger_1(通道1触发),Trigger_2(通道2触发)和Trigger_s(

15、双通道触发)触发水平Trigger_Level10%,20%,50%和80%触发斜率Trigger_SlopeFalling(下降沿触发)和Rising(上升沿触发)触发位置Trigger_Position10%,20%,50%和80%遵照“: Freq=100M”和“: Trigger_Level?”的方式设置和读取参数。触发相关的三个参数根据触发通道选择的不同而有不同的设置值,在调整和读取这三个参数时,需要在芯片名中指出是通道1(AD9226_1),通道2(AD9226_2)或者是双通道触发(AD9226_s)。特别需要注意的是,采样频率和触发位置等设置是不连续的、离散的,其设置值可能不在

16、范围内,采用就近的原则进行设置并且在读取参数时返回实际值。返回测量值是由FPGA部分直接返回其测量值的字符串型,首尾添加“$”为辨识符号,各个数值间用逗号分隔。其指令为“: Curve?”,返回长度是8K个数据采样点。2.1.2 ADC141S626相关指令针对ADC141S626的工频测量,有使能和禁用的指令“:Start/Stop”,可设置的参数有采样频率,采样通道和采样长度。采样频率是单独指令提前设置的,在设置中为“: Freq=100k”的格式,设置值可以在100kHz至250kHz间任意可选。如果设置值无法在FPGA的采样中满足,则就近选取,并在要求返回数值时给出实际值。采样长度和采

17、样通道的设置在每次请求数据时确定,指令中的采样通道选择可以是三个为一组,在指令中用3,6,9和12替代,可以多选并用逗号分隔,采样长度可以为1K,2K,4K和8K(K=1024),来决定返回的数据长度。例如,指令为“: curve,3,6,4K?”,表示要求开启两组通道1-3和4-6进行测量,返回4K个数据点。返回数据的格式同AD9226相似,以测量结果的字符串型直接传输,首尾$,数据两两间以逗号分隔。2.1.3 ADC128S022相关指令对于ADC128S022的温度测量,因温度在实际测量环境中突变可能性不大,其采样频率和数据长度要求很低,出于对于指令集简化的目的,只设有使能和禁用两条指令

18、“:Start/Stop”,其采样频率固定在100Hz上。2.2数字量输入输出指令(DIO)通过I2C进行扩展的数字量输入输出可以用于设备调试,现场参数输出和添加外设等处,其依靠I2C拓展8片CAT9555,每片有16位输出或者输入。在微测量系统中,定义低8位为输入,高8位为输出,以便在同一片芯片上驱动外设和读取数据。DI口为输入口,DO口为输出口,在设置中用ON表示高电位,OFF表示低电位。在设置和读取其输出和输入值时,用指令“: DO_0=ON”来设置第0片芯片的0号位输出位为高电位,“: DI_6?”要求返回第3片芯片的6号位输入位值,若为高电位返回ON,低电位返回OFF。2.3 用户扩

19、展指令用户在使用中有二次开发要求时,将调用到这部分内容,在指令解析和指令调用函数部分可以做修改,以达到个性化的拓展功能。在指令解析中,预留有以开头的指令,指令匹配部分和调用的任务与函数在初始状态中都设为“user_task”和“void user_function()”,并给出初始优先级和堆栈空间等状态值。当用户需要此方面功能时,可以修改名称以及初始值,并且在控制字的存储空间中也在末尾0 x40C00后留有空间,可以加载控制字和存储测量或者计算结果。例如,在后期用户希望在ARM部分完成一定量的计算,可以将指令解析部分的对应改成希望的指令名称,再在空函数“void user_function()

20、”内写入希望进行的计算和返回值,即可完成二次开发。3 实时系统要求测量系统的意义在于可以自行测量,一旦开始就不需要太多的人为干预。在这种条件下,系统需要具有相对较高的稳定性和可靠性,而普通操作系统或者说是ARM的裸机编程不具备这样的条件,所以在选择上会更加偏向于实时操作系统7。同时,在测量上也有对于系统实时性的要求,对于电信号的控制测量都具有严格的时序性,以保证在时间内完成任务,其执行线索也需要是确定的,可以减少大部分死机的问题,提高稳定性和实时性。在微测量系统中,根据指令的响应新建任务就是一个很好的实时系统模型,其完成指令内容的执行时刻就是确定的。指令集的解析就是将随时收到的指令通过RTOS

21、的中断,创建任务,以控制字的形式写入SRAM中,并且在有返回值的指令中读取相应的地址位。实时操作系统的任务模式,除了可以有优先级的不同,还可以在系统资源有限的情况下,重复利用堆栈空间。4 指令集解析指令集的统一格式在上文中也有提到,对于解析的部分,实质上来说就是在相应的地址位上写控制字以及读取相应地址位上的值。然而在实时操作系统中,就是根据不同指令新建相应的任务。两片8位SRAM,高8位低8位各一片,单片容量512k,使用中为512K*16位,地址分配如下图4。指令解析的目的在于更改控制字和读取相应地址上的数据部分。控制字部分分为AD9226,ADC141S626和ADC128S022等三个部

22、分;读取相应位置的数据部分,则是更改指针位置和读取长度。在解析算法上,由于从操作设备中读取的指令为字符串形式,故而解析指令就使用字符串比对的方法,将指令中读取的字符串与设定好的常量作比较。在解析过程中,现将指令中的字符分段截取,拷贝至不同变量下,例如将指令中的芯片名称(位于“”间部分)放置在字符串变量chipname中,指令中的命令部分(start,stop和curve)放置于字符串order中。因指令集格式上的统一要求,在字符串截取过程中,通过其符号已经可以分辨出不同类型的指令,新建的任务类型也可以确定。通过比较截取拷贝出来的变量与指令常量,就可以知晓读取地址和是否在任务中需要等待测量后返回

23、测量值。从新建任务和缩减代码长度的角度看,都可以调用同一个读取和写入任务,每次调用时只需要改变地址和长度。对于调用的参数和状态记录,都定义全局可用的数据池,在创建任务前,先更改数据池中内容即可,不需要在创建任务中传递地址。在实时操作系统中,读取指令的任务一直在后台运行,其优先级设为1,以保证在传输数据和设置参数时不被外来的指令打扰。每解析完一条指令,就开始创建相应的任务,在任务完成后自删除,以保留尽可能多的片上空间。由于指令集的解析是全程控完成,故在后续的使用过程中,可以拓展多样的芯片和采样参数。图4 SRAM内存地址分配Fig.4 Memory aAddress assignment in

24、SRAM5 结束语文章介绍的微测量系统,具备模拟量的瞬时测量和长时间采样的方式,如用作雷电信号记录仪和变压器的工频测量,可以作为传统测量装置的补充。由于大部分的计算量和测量数据都在嵌入式系统中完成,故而对于测量信息接收端的PC要求不高,可以在实际运用中用平板电脑或者智能手机的应用来替代,具有很强的拓展性。同时,在数据传输中可以用长距离的Wi-Fi传输或者GSM通讯网络传输,使本系统具有更强的适应能力。参 考 文 献1 STMicroelectronics group of companies, “STM32F10 xxx Reference manual RM0008”, Rev. 7, pp. 2325 (2008), 2 STMicroelectronics group of companies, “STM32F103x6 DATASHEET”, Rev. 9, pp. 410 (2008), 3 Barry R. FreeRTOS Reference ManualJ. Real Time Engineers Ltd, 2011 (2011).4 刘伟. 基于 STM32 的 NAND FLASH 的数据存储系统设计J. 电脑开发与应用, 2015, 28(2): 48-51.5 宣耀伟, 乐彦杰, 张娜飞, 等. 雷电冲击试验冲击电压发生器调波电阻的确定J. 机电工程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论