一种分布式EIT系统主控板的嵌入式程序设计
2018-01-18熊小凡苗枥文马艺馨
熊小凡,苗枥文,马艺馨
(上海交通大学电子信息与电气工程学院仪器科学与工程系,上海200240)
电阻抗层析成像(ElectricalImpedanceTomography,EIT)技术,基于CT原理和电磁理论,通过测量被测对象边界上的大量转移阻抗数据和一定的图像重建过程,获取被测对象内部的电导率和介电常数分布信息,从而通过电参数与病理/生理状况的相关性进行医学检测[1-3]。作为一种可视化的无损检测技术,EIT技术具有无辐射、非侵入、速度快、设备成本相对较低、设备尺寸相对较小等优点,在工业多相流测量领域、地球物理检测领域、以及医学辅助监测领域都有广阔的应用前景[4-5]。在目前的EIT系统设计中,缺乏较为可靠的、稳定的以及能够适应不同精度要求的嵌入式控制系统[6-7]。为了提高EIT系统的数据采集效率和增强数据采集的稳定性及可靠性,本文设计实现了一种分布式的EIT系统主控板的嵌入式控制程序。嵌入式控制软件系统实现了频率和幅值可调的激励信号控制电路,以及频率和输出个数精确控制的ADC采用时钟信号的产生[8-9]。通过主控板使各个前端能够独立判断当前测量状态,修改测量配置,实现多通道同步。
系统软件控制具有很高的可靠性和灵活性,通过主控板的广播信息能够获得系统当前工作的电极数目和单次测量点数等信息,从而修改自己的测量配置参数与不同电极数目的EIT数据采集系统测量设置相匹配,不需要重新烧写程序,便于进行不同精度的EIT应用领域的实验研究。
1 系统硬件结构
文中设计的嵌入式程序主要基于一种分布式高精度多频率的医用电阻抗成像测量系统。该系统综合了集中式和分布式系统的特性,采用集中式系统的单激励源方案作为激励方案,采用多通道的分布式系统作为测量方案。激励源和测量电路均设置在前端采集系统,前端系统通过复合电极和被测对象相连,这样在电极端可以对激励电流和测量电压进行同步采样,构成分布式控制方案,系统硬件结构图如图1所示。另外,为了提高系统效率,采用了线与逻辑电路实现硬件握手,控制前端板和主控板的信号收发逻辑[10-12]。
图1 系统硬件结构框图
2 软件总体设计
文中的EIT数据采集系统主要可以分为主控模块和前端测量模块两个部分,两部分分别以MCU为控制核心,其中,主控模块产生激励信号、产生前端测量同步、与前端测量模块通信以及与上位机通信。
两个程序相互配合,从而实现人体阻抗信息的采集,并将数据发送给上位机用于成像和分析。图2为EIT数据采集系统的总体软件框图,本系统分别由初始化子程序,各模块的驱动程序,通信程序,测量控制程序,数据存储和读取等子程序组成。
3 主控板软件设计
主控板程序主要完成前端测量同步,信号产生和通信的主要功能。程序开始时,主控板上的MCU(STM32F103)首先进行初始化,配置系统时钟,初始化各个外设,使能全局中断,并进入空闲等待状态。
图2 系统软件总体框图
图3 主控板程序流程图
当PC端从串口(UART)发送测量指令时,主控板上MCU进入串口子程序对命令进行解码,获得测量频率和帧数的信息。配置DDS的输出模式,配置定时器的PWM输出,设置ADC采样时钟的频率,将测量相关命令通过CAN总线广播给各个前端板,并等待所有前端板报告准备情况。收到全部报告后开启PWM输出,每次PWM输出后程序等待前端板的握手信号,收到握手信号后开始下次测量。完成要求测量帧数后,MCU通过CAN总线向前端请求数据,收到数据后通过UART上传给PC端后重新进入空闲状态。主程序的流程图如图3所示。
3.1 程序初始化
MCU的初始化过程由系统初始化和外设初始化组成。其中系统初始化包括MCU的系统时钟配置和全局中断使能。之后,MCU进入外设初始化阶段,本模块使用的外设包括两路SPI接口,两路定时器TIM2和TIM3,CAN接口和UART接口,以及一个外部中断EXIT1,外设初始化后,相关功能时钟使能,IO口工作模式,中断模式配置完成。程序进入空闲状态,等待PC端的测量开始命令。
3.2 各功能模块程序设计
本系统的主要功能模块包括信号产生模块,同步时钟模块,握手信号响应模块,以及通信模块4个部分。信号产生模块通过SPI控制DDS和程控变阻器,同步时钟模块通过两路主从模式定时器TIM2和TIM3控制产生数目可控的时钟信号,握手信号逻辑由外部中断EXIT1响应,UART接口和CAN接口分别控制与PC端和前端测量板的通信。
本程序中涉及3种中断,UART的接收中断,CAN的接收中断,以及外部中断EXIT1,根据程序功能,采用逐级控制的方式控制程序执行,中断优先级依次降低。PC端具有开始和停止程序的最高权限,主控板可以通过CAN打断前端的测量过程,使整个测量过程灵活可控。
3.3 信号产生模块软件设计
本系统的信号产生由两部分产生,电流输出型DDS芯片AD9832产生约为4 mA的恒流正弦信号,信号通过程控变阻器芯片AD5160后变成幅值可调的电压信号输出。两款芯片的编程都由SPI接口控制,本系统使用的MCU芯片具有丰富的外设,片内有3个独立的SPI接口可供使用,允许芯片实现与外部设备进行半/全双工、同步等多种通信方式,支持8/16位传输帧格式,时钟极性和数据顺序可编程,可以快速开发SPI控制程序。该部分采用两路SPI分别控制AD9832和AD5160,SPI作为主控设备,分别通过两路从设备选择管脚(NSS),主设备数据输出管脚(MOSI),串口时钟输出管脚(SCK)与从设备相连。结合ST公司的固件库和例程,可以通过固件库中的结构体快速配置SPI接口的管脚功能(GPIO_Init)、时 钟 使 能(RCC_APB1 Periph Clock Cmd),配置通信的SCK时钟特性、工作模式、数据位数、数据方向(SPI_Init),采用 SPI_I2S_SendData(SPIx,TxDATA)函数完成SPI数据的发送。使用时首先检查SPI的发送缓冲器空闲标志TXE,检测到空闲状态后,只需要修改x=1/2以及需要发送的TxDATA的内容,即可完成一次SPI通信,发送完成后,检测SPI的忙(BUSY)标志,传输结束后该标志被清除,即可进行下一次通信。
3.3.1 AD5160的软件设计
程控变阻器AD5160是一个8位变阻器,仅通过一次SPI的写操作即可完成电阻阻值的切换,它的输出阻值R与控制字R_DATA的关系由下式定义:
控制程序可以表示为:
while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE)==RESET);//检查发送缓冲器是否空闲
SPI_I2S_SendData(SPI2,R_DATA);//发送阻值控制字
while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_BSY)!=RESET);//等待发送完成
3.3.2 AD9832的软件设计
AD9832的输出由频率寄存器(Frequency Register)、迟延寄存器(Defer Register)和命令序列(Command Sequence)3个寄存器控制。频率寄存器是一个32位寄存器,需要分4次写入,一次写入一个字节信息,频率控制字的计算公式为:
其中,fMCLK为AD9832的外接晶振的时钟频率。
4次写入的频率控制字需要通过延迟寄存器组合为两组16位控制字后通过命令序列载入频率累加器配置输出。它的信号产生程序写入流程如图4所示。
3.4 同步时钟模块软件设计
EIT数据采集要求每次激励过程中,各个前端测量板进行同步测量。为了保证同步性,各个通道的ADC的采样时钟应保证一致性,并且为了能准确读取不同激励时得到的响应电压,要求每次采集的时钟个数是程序可控的。本系统的激励信号频带覆盖1 kHz~1 MHz,为了保证高频频段的测量精度,有效利用片外SRAM的存储空间,本文设计了固定采样周期数和变化采样频率的时钟方案。每对电极激励时,ADC对20个周期的采样信号进行16倍信号频率的采样,即时钟频率的频带为16 kHz~16 MHz。基于以上的设计,本文利用两路定时器TIM2和TIM3控制产生数目可控的时钟信号。TIM2和TIM3是两个16位的可编程通用定时器,可以实现自动装载计数,输入捕获,输出比较,PWM波产生,单脉冲输出等多个功能。并且可以内部互联,组成主从模式,实现更加复杂的功能设计。在本设计中,TIM2设置为主控定时器,工作在单脉冲模式,该模式下定时器在程序可控延时后产生一个固定宽度的脉冲信号。从定时器TIM3工作在PWM输出模式,并受到主控TIM2的门控模式控制。TIM2和TIM3的输出构成一种与门逻辑,即TIM2输出高电平时,TIM3输出PWM波。
STM32F1系列的定时器配置主要包括时基单元的配置和工作模式配置两部分,时基单元包括计数器寄存器(CNT),预分频器寄存器(PSC),自动装载寄存器(ARR)3个寄存器,它们决定了定时器的工作频率和更新事件或定时中断的时间间隔。
配置完时基单元后,设定TIM2的控制寄存器CR1的OPM位选择单脉冲模式,并设置从模式控制寄存器SMCR的TS位,使TIM3的内部触发源与TIM2的内部输出相连,用来启动/关闭TIM3的输出。同时,TIM3设置捕获/比较模式寄存器将一路输出设置为PWM输出方式,启动方式设置为门控模式,即可完成定时器的配置。每当TIM2启动后,TIM3即产生所需频率和个数的时钟信号。TIM2的脉冲消失后TIM3的输出自动停止。
图4 DDS配置程序流程图
3.5 CAN总线通信软件设计
CAN总线是一种标准现场总线,有效支持分布式控制网络,实现各个节点之间实时和可靠的数据传输[13]。该总线具有高性能和高可靠性,广泛用于工业现场、医疗设备、汽车电子等方面[14]。它结构简单,不分主从模式,可以多主站运行,分散仲裁和广播通信。任意一个节点可向其他节点发起数据通信,出现总线竞争时,按照优先级顺序决定通信次序,且完全由硬件实现对接收信息的过滤,大大提高通信效率[15]。由于以上几个优点,本系统的主控板和前端测量板的通信采用CAN总线实现.由于CAN总线属于异步串行总线,因此同一网络内的每个节点要约定同样的波特率才能进行通信。本款控制器的波特率由CAN位时序寄存器CAN_BTR的SJW,TS2,TS1,BRP位控制,计算公式为:
其中,CAN_FxR1中STID[11:0]设置为可通过过滤器的数据帧的标识符,IDE=0,RTR=0,表示只允许标准标识符的数据帧通过。对应CAN_FxR2中的STID[11:0]=0xFFE,IDE=1,RTR=1,CAN_FxR2中为1的位代表对CAN_FxR1的对应位的过滤。当收到报文中的STID、IDE、RTR与CAN_FxR1相同时,报文才能通过过滤器进入接收邮箱。设置流程如图5所示。
图5 CAN的过滤器设置流程图
4 结束语
EIT数据采集系统主控板的嵌入式软件设计,采用Keil环境下的基于库函数的MCU外设配置方法。之后对本系统的软件的总体架构进行了分析,分别给出了主控板的主要功能模块的驱动程序。其中,对主控板的激励信号产生模块,同步时钟产生模块,CAN总线通信模块进行了重点介绍。实现了频率和幅值可调的激励信号控制电路,以及频率和输出个数精确控制的ADC采用时钟信号的产生。通过修改测量配置,可以实现多通道同步测量。
文中的嵌入式控制软件具有很高的可靠性和灵活性,不需要重复烧写程序,与所研发的数据采集前端模块和主控板硬件一起实现了分布式高性能的EIT数据采集系统,该EIT系统可以用于临床和实验研究。
[1]Bayford R.,Tizzard A.Bioimpedance imaging:an overview of potential clinical applications[J].Analyst,2012,137(20):4635-4643.
[2]李章勇,苌飞霸,任超世,等.一种基于多频生物电阻抗法的人体腹部脂肪检测系统的设计[J].传感技术学报,2012,25(12):1643-1647.
[3]张琴艳,马艺馨.生物组织阻抗温度特性测试系统的研究[J].电子设计工程,2014,22(20):135-137.
[4]江玉柱,井赛.几种磁场方式电阻抗成像技术的新进展[J].中国医疗设备,2015,30(3):63-66.
[5]徐灿华,董秀珍.生物电阻抗断层成像技术及其临床研究进展[J].高电压技术,2014(12):3738-3745.
[6]Zhou H,Xu L,Cao Z,et al.Image reconstruction for invasive ERT in vertical oil well logging[J].Chinese Journal of Chemical Engineering,2012,20(2):319-328.
[7]苌飞霸,张和华.电阻抗断层成像技术研究[J].中国医疗器械杂志,2016,40(1):52-54.
[8]陈晓艳,杨永政.一种肺呼吸电阻抗实时成像系统[J].测控技术与仪器仪表,2015,41(5):73-75.
[9]Zhang H,Yang Z,Huang Z,et al.Transthoracic impedance for themonitoring of quality of manual chest compression during cardiopul monary resuscitation[J].Resuscitation,2012,83(10):1281-1286.
[10]陈晓艳,熊伟.生物医学电阻抗成像系统信号源的设计与实现[J].国外电子测量技术,2011,30(1):50-54.
[11]张伟兴,马艺馨.EIT激励电流切换用模拟多路开关的选择[J].仪表技术与传感器,2014(10):105-107.
[12]程克非,贾廷强.基于CPK的TLS握手协议的设计与研究[J].电子科技大学学报,2013(3):420-424.
[13]刘鲁源.CAN总线实时性和可靠性若干问题的研究[D].天津:天津大学,2010.
[14]李博,李晓强.基于can总线的智能控制器设计[J].电子设计工程,2015(10):122-124.
[15]Miao L.A new symmetric semi-parallel Electrical Impedance Tomography(EIT) system-II:The Performance[C].2016IEEEInternationalConference onImagingSystemsandTechniques(IST),Chania,Creece,2016.