
(3)12个PSoC模拟模块可灵活配置成6~13位A/D转换器、可编程增益放大器(PGA)、采样保持功能、可编程滤波器、差分比较器、温度传感器等; PSoC系列单片机将传统的单片机系统集成在一颗芯片里,用户模拟和数字阵列的可配置性是其最大特点。 (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编译器、器件资源配置器和调试器。

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)的雏形,是有任务中断的单调比例调度类型。因此,可以在无法预知软件整体逻辑设计是否满足工业测控实际的情况下,用有任务中断的单调比例调度的条件要求和上述测量时间值,在理论上,去恒量一下软件整体逻辑设计的合理性,并进行适当调整。 有任务中断的单调比例调度的条件公式:
