基于PSoC的燃气变频输配与精确计量的实现
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速度的自增强,系统的数学运算功能明显提高,工业测控的实时性更强了。
- 赛普拉斯智能照明解决方案支持欧司朗 DRAGON LED 以精简照明设计流程(11-26)
- PSoC3应用于多通讯接口时的DMA设计 (03-05)
- PSoC3 双轴步进电机细分控制(03-21)
- 电容式触摸传感器设计技巧(02-07)
- 双通道触摸感应芯片使用介绍(10-14)
- 可轻松解决LED照明混色设计挑战的实现方案(11-07)