摘要:介绍了PSoC单片机实现的燃气变频输配与精确计量。从硬软件设计的简洁易用性、系统的稳定可靠性、开发生产成本的低廉性等方面,重点阐述了PSoC单片机测控体系的巨大优势。
在燃气的变频输配与计量方面,以普通单板机/单片机组成的大流量范围的燃气计量仪表和工控机实现的一器多控自动变频调速输配系统广为应用,有力地提高了计量精度并节约了大量的能源。但是用“单板机/单片机+外围器件”计量燃气,系统复杂,稳定性差;用工控机变频输配燃气,造成资源浪费。从提高系统稳定可靠性、简化硬软件设计、降低产品成本等角度出发,结合现代科学技术的发展,非常需要一种构成系统简单、灵活易用的器件,去改造上述两个体系,并尽可能把它们合二为一。选用Cypress公司新近推出的一系列PSoC单片机进行上述技术改进,不仅可以很好达到预期目的,并且还可以有效提高系统测控的实时性能。
1 PSoC单片机及其特点
PSoC即Programmable System On Chip。Cypress公司的PSoC系列单片机CY8C25xxx/26xxx,片内有一个高速内核、Flash快速闪存和SRAM数据内存,以及设计者可配置的模拟模块和数字模块:
(1)CPU内核,8位哈佛结构,速度可达24MHz;且含一乘加器MAC,能执行带符号8x8乘法和32位加法运算;
(2)4~16KB片内Flash闪存及256B SRAM,可通过串口在系统编程(1SSP)Flash闪存,Flash具有可加密保护功能;
(3)12个PSoC模拟模块可灵活配置成6~13位A/D转换器、可编程增益放大器(PGA)、采样保持功能、可编程滤波器、差分比较器、温度传感器等;
(4)8个数字模块可灵活配置成定时/计数器、脉宽调制器(PWM)、循环冗余校验块(CRC)、串行通信块(UARTS或SPI)及复杂的时钟源等;
(5)4~44个通用I/O口,可编程为上/下拉输出、集电极开路输出、强输出,可用作边沿/电平触发的中断输入或Smith触发器TTL输入;
(6)专用的中断控制器,2级中断优先级,中断源:通用I/O、电源监控单元、Sleep定时器、8个PSoC数字模块和4个模拟列;
(7)24/48MHz的片内主振荡器和32.768kHz片内低速振荡器;WatchDog/Sleep定时器、可编程的电源电压检测器、采样抽取器、片内电压参考源等专用外设;可选用的模块端口(E2PROM、LCD、I2C等);
(8)全静态CMOS工艺,3~5.5V DC工作电压,专用的开关式电压泵,可使工作电压降到1V,真正的高速低压性能;
(9)配套的低廉开发工具:在线仿真器、评估板和集成开发环境PSoC Designer,其PSoC Designer内嵌汇编器、C编译器、器件资源配置器和调试器。
PSoC系列单片机将传统的单片机系统集成在一颗芯片里,用户模拟和数字阵列的可配置性是其最大特点。
2 变频输配与大流量范围计量的机理
2.1 一器多控变频燃气输配的机理
燃气输配主要是维持气源端的压力。压力不足时,逐步加开输配机组,升高压力到设定值;反之,压力过高时,逐步减停机组,降低压力到设定值。由于大功率交流电机反复启停的巨大耗能和器件冲击,所以引入了变频调速器。为进一步降低成本,通常采用一台变频器控制多台交流电机,即所谓的“一器多控”,其机理如下:加压时,变频启动并加速一台电机,达到最大速度时,压力仍没有增上来,则把这台电机转为工频运行,转而对下一台电机
做变频启动并加速,如此逐步变频启动加速并做工频切换,直到把压力提上来;反之,减压时,则逐步做变频切换并变频减速停机,直到把压力降到要求值。
2.2 大流量范围燃气计量的机理
孔板式差压流量计在不变节流件开孔直径下扩展量程比,主要是采用增设差压量程切换单元的方法:在流量小、差压低时,使用小差压量程检测计算;反之,使用大差压量程检测计算。检测计量流程如图1所示。图1中参数T、P、△P、d、D、K、Z、η、β、ρ、ε、α0、rRe、M分别表示温度、压力、差压、孔板开口直径、计量管段直径、介质等熵指数、气体压缩系数、介质粘度、d/D、密度、流速系数、流出系数、管道雷诺数、流量。
3 PSoC单片机测控系统的构建
3.1 整体方案的设计
整体设计方案如图2所示,说明如下:
(1)数据采集,采用1~5V的三通道11位A/D转换器,拟定采样率7.8ksps;压力作频繁采样,以增强变频输配控制的实时性;差压与温度只在计量计算需要时采样;
(2)输出通道,采用一8位D/A转换器控制变频器,若干工/变频切换控制信号,一手动/自动变频切换控制信号,D/A输出为0~5V DC信号,切换控制信号具有驱动能力;
(3)人机接口,使用日立HD44780LCD点阵模块显示状态参数、报警种类及键盘操作等,使用一个6位A/D转换器作键盘输入识别以减少对I/O口的占用;
(4)存储关键性数据,采用串行E2PROM;外界通信采用异步串行接口UART,并以此实现在系统串行编程ISSP;
(5)使用乘加器加速CPU速度;使用看门狗保证程序正常运行;使用实时时钟记录流量或故障统计的时刻;使用定时器产生所需工/变频切换时间和流量累计时间;使用OSC振荡器产生系统时钟等。
上述方案,选用Cypress PSoC系列单片机,图2中虚线部分均可由一片单片机实现,这里选用CY8C26443(28Pin Dual inline);否则,采用普通单板机/单片机,则各个模块均要设法构造,还要考虑把它们设计连成一体。
3.2 键盘输入电路的设计
键盘输入,通过一I/O口,由一6位A/D转换器识别。这里选用8个按键,用以实现参数输入、时间核对、记录查询、通信等功能,电路如图3所示。图3所示各个电阻值,据A/D转换特点和常用电阻规格系列确定。
3.3 一器多控变频电路的设计
该部分电路用以实现“手动/自动变频”和“工频/变频状态的切换”。这里选用日本富士FRN75P11S-4CX风机专用变频器,切换电路采用传统的接触器—继电器控制。变频加/减速,手动控制通过一个1-5kll的可调电阻器实现;自动控制通过0~5V的DC变化输入实现。构成如图4所示。
3.4 信号的输入与输出
设计系统应用在燃气行业,安全防护十分重要。压力、温度、差压信号的采集,现场的一次仪表全部采用一体化防曝类型,现场引入的信号采用隔离型安全栅。输出信号全部采用继电器控制,与现场控制器件隔离。
4 PSoC单片机测控系统的设计
4.1 PSoC单片机的资源使用与配置
11位A/D转换器,选用DelSigll用户模块(△—∑型A/D),占用一PSoC模拟模块、一PSoC数字模块和专用的采样抽取器,为增强实时性与精度而取其最大采样率7.8ksps(即每次采样需128.2μs)。
6位A/D转换器,选用SAR6用户模块(逐次逼近型A/D),转换时间25μs,占用一PSoC模拟模块。
8位D/A转换器,选用DAC8用户模块(电压输出型D/A),其时钟更新率为125kHz(即每次变换需31μs)。
A/D与D/A的参考电压设定:AGnd=0V,AVdd=5V。
切换控制输出I/O口,选定内部上拉电阻输出,以得到大的驱动能力。取工/变频切换控制为5个。
LCD模块接口,选定LCD用户模块,该模块使用标准HD44780LCD显示驱动协议,占用7个I/O口,驱动显示2x16个8x8点阵字符。
E2ROM,选用E2PROM用户模块。这是使用内部Flash memory模拟的E2ROM,不限容量大小,取为2KB。
串行通信口, 选用UART用户模块(8位通用UART),占用2个PSoC数字模块和2个I/O口,设定其初始值为96-N-8-1,为将来扩展连接Modem预留一个I/O口。
定时器,选用Timer8用户模块(8位减计数型),占用一PSoC数字模块;一定时器周期设定为变频器“工/变频切换”的时间值;一定时器周期取最大值,以用于流量累计。
OSC振荡器全部选定用内部模块,外围不再配备晶体。启用内部看门狗和实时时钟(RTC)功能。
确定采用4个中断:压力转换中断(11AD_ISR)、键盘操作中断(6AD—ISR)、工/变频切换中断(Tliner8—ISR)、串行接收中断(Uart_ISR)。 中断优先级编排如下:11AD_ISR、Timer8_ISR、6AD_ISR、Uart_ISR。
打开PSoC Designer IDE应用软件,选用CY8C26443器件,指定编程语言(汇编或C语言),创建项目工程;在软件的器件编辑器窗口中,按上述选择,配置各个用户模块。本设计共使用8个PSoC数字模块、5个PSoC模拟模块、24个I/O口。器件编辑器的使用,大多是图形和文本选择操作,十分简易直观,这里不再赘述。
用户模块配置完成后,在IDE环境中,点击“GenerateApplication Files”按钮,产生boot.sam和PSoCconfig.asm文件,并生成应用程序接口函数(APl)与中断服务程序、主程序框架文件,以便填写应用代码、编制用户程序。
boot.sam和PSoCconfig.asm文件,是所有程序的基础,boot.sam文件定义了系统启动和执行的次序,PSoCconfig.asm文件包含了进入系统的配置。
4.2 软件设计的整体构思
主程序完成初始化设置并循环采样温度、压力、差压,选择适当量程计算流量并累计、存储与显示。
压力转换中断程序(11AD_ISR)据压力实测值与要求值,确定变频加/减速和工/变频转换中断的启停。
键盘操作中断(6AD_ISR),识别操作的按钮,进行参数预置、状态显示、记录查看等。
工/变频切换中断(Timer8a_ISR),完成指定端口的工频与变频的切换,并设置相关标记。
串行接收中断(Uart_ISR),连接PC或做远程通信。
在PSoC Designer IDE环境的应用程序编辑器窗口中编制程序,编译所有文件,生成可下载或仿真的.rom文件。
4.3 软件仿真与测试
使用Cypress的PSoC仿真器(1CE)及其Designer IDE调试器窗口环境,进行程序仿真和测试。重点说明两点:
(1)断点调试和动态事件点调试
断点调试,与很多常用器件调试工具功能类似,在此不再赘述,着重说明动态事件点调试。动态事件点调试是Cypress很有特色的工具。动态事件点是定义的可满足许多条件的复杂断点,可控制调试在动态事点到来时停止、开/关跟踪文件或触发一外部引脚。使用动态事件点调试,可观察到很多断点调试得不到的程序逻辑设计错误。
(2)各个程序段执行时间的调试
关掉所有中断,测定主程序中流量计算循环程序的执行时间;一次开放一个中断,测定每个设计中断的执行时间。适当设置断点,正常执行程序,测定每个中断与主程序流量计算循环的执行周期。
PSoC单片机的各种中断功能能很好地满足现代嵌入应用,这里构建一个基于PSoC单片机的实时操作系统(RTOS)的雏形,是有任务中断的单调比例调度类型。因此,可以在无法预知软件整体逻辑设计是否满足工业测控实际的情况下,用有任务中断的单调比例调度的条件要求和上述测量时间值,在理论上,去恒量一下软件整体逻辑设计的合理性,并进行适当调整。
有任务中断的单调比例调度的条件公式:
式中,n是最大任务数,E是任务j的执行时间,P是任务j的周期,B是任务j的阻塞时间。
4.4 程序的ISSP下载
PSoC单片机支持在系统串口编程(1SSP),可以通过UART串口,轻易完成程序的ISSP下载。PSoC单片机Flash中内含不能被覆盖的ISP例程,只要复位重启时硬件电路的ISP例程触发按钮有效,PSoC单片机就转而ISSP编程操作。完成ISSP后,器件自动从Flash的0x0址处执行用户代码。ISSP例程的触发,即将器件PO.5口有效上拉。
4.5 软件设计的注意事项
(1)SRAM空间的分配:用户模块配置信息、编程变量参数、上下文切换堆栈等,都占用SRAM空间。SRAM空间只有256B,虽然比传统MCS51单片机扩大了一倍,但还是十分有限。一定要合理选好开辟堆栈空间的大小和位置,以避免极端情况下程序跑飞。
(2)看门狗的使用:为防程序“跑飞”或“死机”。程序中,要及时“喂狗”(清零看门狗计数器)。关闭看门狗,调试好各个程序段,然后再打开看门狗调试。
(3)11位AD用户模块的动态配置:轮流采样现场压力、温度、差压信号,AD转换器通常定位在压力通道不断地采样压力信号,并在AD转换中断中完成变频调速控制,只有在需要时才切换到温度或差压通道采样。信号通道的切换,采用动态用户模块配置完成,即在需要时改变用户模块配置寄存器值,定向到需要的信号通道。
使用PSoC单片机CY8C26443组成燃气测控系统,以一个28Pin微控器加上极少外围器件,成功地把“变频输配控制与大流量范围燃气计量”合二为一,构成电路简单,免除了芯片选型和搭建复杂外围电路之烦,明显地增强了系统的稳定可靠性,降低了生产成本。应用所提供的开发工具,直接为设计生成API函数,屏蔽了繁琐的寄存器操作,方便了对器件内部资源的调用,大大缩短了项目开发时间。同时因PSoC单片机CPU速度的自增强,系统的数学运算功能明显提高,工业测控的实时性更强了。