查看: 5255|回复: 16

[PSOC4]12.4更新【完整方案】高集成度气体探测器方案评估

  [复制链接]
  • TA的每日心情
    奋斗
    2014-1-10 13:14
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-11-25 23:02:26 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 zoc210 于 2013-12-5 13:15 编辑

    写在前面的话:之前为赶着交租子,写的有些仓促,像UART模块当时就没有来得及调试。目前包含的模块都调试通过 ,虽然过了截止时间,但是还是把最新的调试结果传上来,跟大家共享,欢迎批评指正{:soso_e183:}。参赛不是目的,获得新知识才是目的{:soso_e113:}
    咳咳,不能免俗,首先还是要感谢爱板网和飞飞的厚爱,感谢赛普拉斯提供了这个机会能够测试和评估新的PSOC技术~

    直接上重点,相关的背景介绍在后面哦{:soso_e100:}
    氧气是工业环境中,尤其是密闭环境中需要十分注意的因素。一般我们将氧气含量超过23.5%称为氧气过量(富氧),此时很容易发生爆炸的危险;而氧气含量低于19.5%为氧气不足(缺氧),此时很容易发生工人窒息、昏迷以至死亡的危险。正常的氧气含量应当在20.9%左右。因此在进入一些有潜在风险的区域,需要检测氧气的浓度。
    本次评估即采用氧气传感器进行,采用O2传感器的理由是方便调试,安全。虽然最典型的应用是CO之类的,但是调试时存在一氧化碳中毒风险,所有先上氧气传感器啦~ 当然,本项目可以很轻松的移植到其他类似的传感器上。后续会尽量更新不同类型的传感器应用~
    氧气检测仪是电化学传感器的一种。下图可以提供一个直观的印象:
    001-sensor demo.png
    项目框图:
    尽量完全使用PSOC4的片上资源进行本项目的设计,涉及到的模块有运放、多路开关、模数转换、串口通信和LCD段码驱动,其中PWM模块是非必须的,这里仅进行简单演示。
    Arch.png
    主要的流程为:首先使用运放对输入的传感器信号进行放大处理,送入ADC模块,然后将对应的气体浓度进行转换后进行显示。
    辅助的功能有:PSOC4片内含有一个温度传感器,可以直接进行温度探测。本项目采集温度的意义在于不同的的温度下,传感器的输出有不同的偏差,可以进行软件修正补偿。UART模块可以通过电平转换模块实现工业环境中常见的MODBUS通信。在本项目中将信号通过PSOC4KIT传递到PC上,没有外接RS485之类的电平转换芯片。
    暂时打酱油的功能:用采集到的气体传感器信号电压值控制PWM模块的占空比,实现LED的亮度控制。其实际的项目意义在于可以控制外置运放实现低成本的工业仪表4~20mA电流环输出。

    整体程序框图:
    相对于之前的版本,修改为更加简单的TIA方式,运放工作于电流方式,即I/V转换,仅需要一个电阻即可实现转换,更加简单。之前需要3个电阻来进行转换。
    sys.png

    LCD部分:LCD是4位的7段数码管。气体浓度和温度显示只需要前3位即可。因此本应用中第四位一直处于空白中。
    007-lcd1.png
    007-lcd2.png
    系统默认为7段LCD,不支持小数点的。可以直接对像素点进行操作,具体函数在LCD模块头文件内。
    例如在我的程序中使用这个函数显示小数点: LCD_WritePixel( LCD_PIX30, LCD_PIXEL_STATE_ON);

    OPAMP:
    006 - Opamp.png
    006 - Opamp_buffer.png

    ADC:ADC采用插入扫描方式采集温度信号,根据上面的程序原理图可以看到温度传感器接在INJ接口上,这样做的好处是一直扫描采集气体传感器的信号,间隔采集温度信号,通俗点说就是“好钢要用到刀刃上”~
    adc1.png
    adc2.png

    UART:使用PSOC4的P41引脚,通过线束引到开发板J8的P12_6引脚,即可在电脑上用串口软件接收数据了。
    uart1.png
    009 - UART 1.png
    010 - UART 2.png

    PWM:
    011-PWM.png

    PIN管脚分配:
    pin.png

    实物演示:
    目前程序为温度和传感器信号电压值轮流显示,实际应用中,温度是不显示的,只用于修正气体浓度。
    当前温度27.7度(板子在电脑散热口,用红外温度枪测试温度为29度,手册说PSOC4内置温度传感器精度为±3度,可以接受):
    temp.jpg
    实物整体照片,显示当前采集到的氧气浓度值:
    o2gas.jpg
    更新氧气浓度显示:这里直接使用传感器在空气中的输出值为零点,可以直接显示氧气浓度为20.9%。实际产品是不允许直接这样处理的 ,气体探测器在使用时是需要标定的 。
    最后发一张串口发送当前气体浓度到电脑串口的图片:
    gas.png
    可以看到气体浓度逐渐下降到稳定值,这是因为气体传感器的特性决定的,所有的气体传感器在使用时均需要一定的稳定时间,来保证传感器的输出信号达到一个稳定值,即我们通常所说的“老化”。(该图片是后补的,没有等到气体传感器稳定,最终是可以输出20.9%这个值的,条件允许的话,后续再补一张图)
    gas2.png
    补充一张稳定后的输出值,目前程序设置为前后2次采集到的数值相同不发送,所有电脑端收到的数据每次都是不一样的。

    总结:PSOC4芯片可以实现高度集成的气体探测器方案,相对于分立元件方案可以节省大量成本,且易于开发调试。
            PSOC4集成的模块非常方便于快速实现所需的功能,集成的IDE更是强大的助手。熟悉芯片功能后,可以大大加快产品上市速度。只是不熟悉PSOC的人上手还是有些难度的,比如我这种初次使用psoc系统的人。官网的帮助文档比较有限且比较笼统,即便是英文的也没有更深入和详细的帮助文档。这方面建议cypress向ST学习。
    遗憾之处:时间关系,仪表行业常用的4~20mA电流环和modbus通信尚未实现。另外,原本想评估一下PSOC4的低功耗的表现,也未能测试。这些功能希望在以后产品中进行详细评估和测试。

    Lesson learn:
    1. 中断需要在退出时手动清除标志位,具体的标志位需要自己在相应模块的头文件里面找。- 我在这里颇费了些时间才搞定。
    2. OPAMP运放的引脚是有限制的,尽量按照手册里面的规定使用。
    3. Creator内有诸多模块的例子,多参考参考。
    PS : LCD段码驱动部分参考了 @蓝雨夜的教程,多谢他的共享{:soso_e181:}{:soso_e183:}

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-1-10 13:14
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2013-11-25 23:07:41 | 显示全部楼层
    本帖最后由 zoc210 于 2013-11-25 23:10 编辑

    背景介绍:
    工业生产中,经常会产生各种各样的危险气体。如不及时采取措施,可能引起重大事故。
    根据危害,我们将有毒有害气体分为可燃气体和有毒气体两大类。由于它们性质和危害不同,其检测手段也有所不同。
    可燃气体是石油化工等工业场合遇到最多的危险气体,它主要是烷烃等有机气体和某些无机气体:如一氧化碳、甲烷等。
    有毒气体既可以存在于生产原料中,如大多数的有机化学物质(VOC),也可能存在于生产过程的各个环节的副产品中,如氨、一氧化碳、硫化氢等等。它们是对工作人员造成危害最大的危险因素。这种危害不仅包括立即的伤害,如身体不适、发病、死亡等等,而且包括对于人体长期的危害,如致残、癌变等等。对于这些有毒有害气体的检测是我们发展中国家应当开始引起充分重视的问题。
    目前,对于特定的有毒气体的检测,我们使用最多的是专用气体传感器。其中,检测无机气体最为普遍、技术相对成熟、综合指标最好的方法是定电位电解式方法,也就是我们常说的电化学传感器。
    电化学传感器的构成是:将两个反应电极--工作电极和对电极以及一个参比电极放置在特定电解液中,然后在反应电极之间加上足够的电压,使透过涂有重金属催化剂薄膜的待测气体进行氧化还原反应,再通过仪器中的电路系统测量气体电解时产生的电流,然后由其中的微处理器计算出气体的浓度。目前,可以检测到特定气体的电化学传感器包括:一氧化碳、硫化氢、二氧化硫、一氧化氮、二氧化氮、氨气、氯气、氰氢酸、环氧乙烷、氯化氢等等。
    气体传感器原理
    气体检测仪的关键部件是气体传感器。气体传感器从原理上可以分为三大类:
    A)利用物理化学性质的气体传感器:如半导体式、催化燃烧式、固体热导式等。
    B)利用物理性质的气体传感器:红外吸收式、光干涉式、热传导式等。
    C)利用电化学性质的气体传感器:如定电位电解式、迦伐尼电池式、隔膜离子电极式、固定电解质式等。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-12 10:32
  • 签到天数: 295 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-26 08:03:39 | 显示全部楼层
    赞一个~~~~~~~~~~~~~~~~~~~~~~~~·
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-19 16:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-11-26 08:48:08 | 显示全部楼层
    不错哟,后续继续加油哟{:soso_e179:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-11-26 08:51:44 | 显示全部楼层
    支持!!!不错啊,很实际的工业应用
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-1-10 13:14
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2013-11-26 09:01:45 | 显示全部楼层
    xinxincaijq 发表于 2013-11-26 08:51
    支持!!!不错啊,很实际的工业应用

    本人在气检行业混饭吃
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-11-26 09:05:56 | 显示全部楼层
    zoc210 发表于 2013-11-26 09:01
    本人在气检行业混饭吃

    原来是专业人士!!!失敬失敬~~~{:soso_e183:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-6-1 08:44
  • 签到天数: 398 天

    连续签到: 2 天

    [LV.9]以坛为家II

    发表于 2013-11-26 09:51:21 | 显示全部楼层
    来顶一个~~~~~~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-3-14 08:54
  • 签到天数: 247 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-26 19:34:50 | 显示全部楼层
    不错不错,赞一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-12-1 17:12:21 | 显示全部楼层
    Fairly Professional
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-1 12:21 , Processed in 0.216520 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.