周永明,黄 伟,叶朝辉
(1.清华大学自动化系,北京 100084;2.北京睿清智华信息技术有限公司,北京 100084)
在多路测控系统中,多采用单片机或ARM级联的方式,如文献[1]所述基于RS485总线的多路温度测量系统和文献[2]所述基于串口通信的分布式大坝自动测控系统,在这些系统中,受单片机资源的限制,需要多片单片机级联才可完成任务,这样增大了系统的体积和复杂性,降低了系统的集成度和可靠性。图1为文献[2]所述大坝测控系统的网络拓扑结构图。
图1 某分布式大坝自动测控系统的网络拓扑结构图
某些多路测控系统则使用了DSP或FPGA作为控制核心[3-4],由于DSP和FPGA成本相对较高,这些系统多采用单核,因此需外接多选一数据选择器或多路A/D转换器来实现多路测量,如文献[3]所述基于FPGA的多路采集系统,系统框图如图2所示,该系统虽然充分利用了FPGA I/O口多、可编程的优势,用单核完成多路测量,但由于FPGA不能处理模拟信号,因此需外接多路选择器和模数转换器来实现功能,且HDL相对C语言开发难度稍大,开发周期长。
图2 基于FPGA的多路信号采集系统
近年来,将微控制器、存储器、模拟和数字外设集成在单一芯片上的片上系统得到了越来越多的应用,PSoC(可编程片上系统)单芯片集成微控制器、存储器、模拟和数字外设,最新的PSoC5可处理数10个采集通道。具有可配置的逻辑阵列、至所有I/O引脚的灵活路由以及一个高性能的32位ARM Cortex-M3内核[5]。因此可以简化系统设计,通过将系统资源配置为需要的模块,提高芯片资源利用率,使单芯片完成多路数字、模拟信号的采集。
文中介绍用于大坝监测的基于PSoC的多路测量系统,单PSoC芯片可同时处理30路温度和16路流量脉冲信号,采集数据可通过以太网实时上传到上位机,每30 s实时采样1次。要处理30路温度和16路脉冲流量信号,需46个I/O口和16个计数器,表1显示了需要的不同类型的处理器芯片数量,包括Atmel的AT89S52、TI的ARM cortex M4系列LM4F232H5QD、TI的C2000系列DSP TMS320F2812以及文中介绍的PSoC,不难看出,要完成所述测量功能,需要的PSoC芯片数量是最少的。
表1 不同类型的处理器需求对比
基于PSoC的远程多路测量系统由以太网通信板、传感器采集板和传感器3部分组成,总体设计框图如图3所示。
图3 总体设计框图
传感器采集板负责所有传感器的数据采集,每个采集板连接30路DS18B20数字温度传感器和16路脉冲式流量传感器。它通过导线与传感器直接相连,周期性地采集温度和流量数据,收到上传命令后,将采集的数据通过I2C总线上传给以太网通信板。
以太网通信板负责系统的过程控制、数据的存储和上传,它控制采集板进行数据采集和上传,并在内部E2PROM中存储部分采集数据,同时可以根据上位机的指令,通过以太网使用TCP协议将采集的温度和流量数据实时上传。
如果一个采集板不能完成所有的测量,那么可在I2C总线上挂接更多的采集板,即可以根据传感器的多少灵活确定传感器采集板的数量。PSoC5具有易于配置的数字、模拟模块,每个模块的接口可灵活地路由到任意I/O口,使得系统具有很好的灵活性和可扩展性。与图1中所示大坝监测系统相比,该系统不需要PC工控机,数据传输通过以太网通信板实现,而且需要的采集板的数量减少,这些都降低了系统的复杂性。
由于PSoC5芯片内部集成了数据采集需要的各种数字、模拟模块和通信接口,使得传感器采集板和以太网通信板需要的外围芯片大为减少,硬件电路大为简化。
传感器采集板由PSoC5芯片与基本的电平转换芯片、晶振和JTAG接口组成。PSoC5芯片选用CY8C5588AXI-060,速度可达80 MHz,存储器包含Flash、SRAM和E2PROM,模拟部分包含ADC、DAC、比较器、运放,数字部分包含定时器/PWM模块、全速USB、CAN控制器等。此外,模拟部分还有可编程的开关电容/连续时间模块,可配置为可编程增益放大器、互阻放大器等;数字部分包含可配置的通用数字模块,能够针对应用或设计创建所有常用嵌入式外设和定制功能。
以太网通信板除PSoC5、电平转换芯片、晶振和JTAG接口外,还包含ENC28J60以太网控制芯片和HR911105A带网络变压器的RJ45以太网口。 ENC28J0是带有标准SPI接口的独立以太网控制器[6],仅有28个引脚,是全球目前最小封装的以太网控制器,非常适合在微控制器上使用,ENC28J60连接示意图如图4所示。
图4 ENC28J60连接示意图
系统的硬件设计框图如图5所示。
图5 硬件设计框图
以太网通信板上,PSoC5内部使用的模块包括与ENC28J60通信的SPI模块、与采集板通信的I2C模块、同步采集板的PWM模块、存储数据的E2PROM,如图6所示。
图6 以太网通信板模块图
传感器采集板上,PSoC5芯片内部使用的模块有外接30路温度和16路流量传感器的46个I/O口,一个I2C模块用于上传数据,8个二选一多路选择器模块和8个16位计数器对脉冲流量传感器进行计数。一个二选一多路选择器模块结合一个计数器模块,就可以对两路流量脉冲分时计数,流量测量部分的模块图如图7所示。
图6和图7为在PSoC Creator中配置PSoC内部模块,PSoC Creator引入了独特的基于电路图的设计方式,将最新的软件开发IDE与图形设计编辑器结合,形成强大的软硬件协调设计集成开发环境,为PSoC的可编程、可配置提供了强有力的支撑。如果系统中使用的传感器种类发生变化,无需改变硬件,只需在PSoC Creator中简单的修改,即可适应新的应用环境。
图7 流量测量模块图
软件设计包括传感器采集板的程序设计、以太网通信板的程序设计以及两者之间的同步与通信。
4.1板间同步与通信
程序每30 s完成1次采集和上传,为使以太网通信板和采集板同步,也为在挂接多个采集板时各板同时开始采集,设计同步PWM波进行同步。由以太网通信板产生周期为30 s的PWM波传给每个采集板,采集板在PWM波的下降沿同时开始采集周期,这样就能保证通信板与采集板之间、不同的采集板之间是同步的。
通过计算,采集板完成所有采集需24 s,因此设置PWM波的低电平时间为26 s(2 s时间裕量),这样在PWM波的上升沿所有传感器数据都已完成更新,以太网通信板在此时通过I2C总线读取采集板数据。时序上,采集板在PWM波的下降沿开始采集,通信板在PWM波的上升沿读取数据,即使系统中存在多个CPU,仍能有条不紊地工作。
4.2传感器采集板的软件设计
如图8所示,测量电路板首先进行初始化,然后等待同步PWM下降沿,PWM波下降沿会触发中断,开始一个周期的采集。
图8 传感器采集板的程序流程图
在一个采集周期内,需采集16路流量和30路温度传感器,因只有8个计数器,所以利用8个数据选择器对计数器进行分时复用,前12 s对前8路流量脉冲进行计数,后12 s对后8路流量脉冲进行计数,计数完成以后,将计数值转换为流量值。在12 s计时中间,内核是空闲的,在这段时间内进行温度采集。
采集完成以后,在PWM波的上升沿,通信板会从I2C总线读取采集板最新的采集数据,在传感器采集板中调用的从I2C模块称为EZI2C Slave,在使用时,需在初始化代码中为EZI2C Slave定义一个缓冲区,I2C主控就可以查看/修改此缓冲区中的任何变量,初始化时定义的缓冲区表现为主控与从器件之间的共享存储器[7],因此,在采集板的程序中,只需将最新的采集数据放在这个缓冲区中,通信板的主I2C接口就可以进行读取,而不需要采集板程序的干预。
4.3以太网通信板的软件设计
以太网通信板的程序主要包含2部分,通过I2C总线读取采集板的数据,通过以太网按照TCP协议将数据上传。
以太网通信板对采集板的数据读取是中断驱动的,当通信板捕捉到PWM的上升沿,通信板进入中断服务程序,通过I2C总线读取采集板数据。而在主函数中,移植Microchip公司提供的协议栈,运行以太网通信程序,循环检测是否收到上位机的数据请求包,将存储的传感器数据按TCP协议传输给上位机。以太网通信的流程图如图9所示。
图9 以太网通信的程序流程图
本文用PSoC设计多路测量系统,达到了预期的性能指标,结果表明:该系统单板能同时采集30路数字温度传感器和16路脉冲流量传感器的数据;传感器和采集板之间的导线可长达200 m,即单板测量半径达200 m;一个采集周期为30 s;上下位机能够通过TCP/IP协议进行远程通信。
系统不仅可根据传感器的多少来灵活确定传感器采集板的数量,而且由于PSoC可在系统编程,且内部模块易于配置,所以通过简单的内部模块重配置,即可使系统适用于其他类型的传感器测量,而不需要更改系统硬件,从而缩短开发周期。因此系统具有集成度高、可配置、可扩展、单芯片可采集信号的路数多、数据可传输到远程计算机等优点。
参考文献:
[1]用RS-485实现多路温度测量.电子产品世界,2010 (3):42-44.
[2]邹海,姜建国,李朝峰,等.基于串口通讯的分布式大坝监测自动测控系统.工业控制计算机,2003,16(2):23-24.
[3]张学强,秦龙勇,谢拴勤.基于 FPGA 的多路模拟量,数字量采集与处理系统.单片机与嵌入式系统应用,2003(4):68-72.
[4]黄鹤,彭晓,杨跃龙.基于 FPGA 多路同步数据采集系统的设计.仪表技术与传感器,2012 (11):139-140.
[5]Cypress.PSoC5 family datasheet.Cypress Inc.2010.
[6]Microchip.ENC28J60 Stand-Alone Ethernet Controller with SPI Interface.Microchip Technology Inc.2012.
[7]Cypress.CyEZI2C_Slave datasheet.Cypress Inc.2012.