注册 登录
自由的生活_软路由 返回首页

心想事成的个人空间 https://bbs.routerclub.com/?681 [收藏] [复制] [分享] [RSS]

日志

直接读取n2000色谱仪的串口数据

已有 38 次阅读2024-9-11 09:28

 n2000色谱仪主板上主要有以下芯片:
单片机:STC(宏晶科技)公司的 STC AT89C2051 24P1,用于读取spi数据后转为串口输出
光耦合器:美国仙童(FAIRCHILD)公司的6N137、4N25、817B,用于电信号的隔离传输
电压放大:美国TI(德州仪器)公司的OP07,用于微弱信号的精密运放
模数转换:Cirrus Logic(美国凌云逻辑)公司的cs5513,用于将模拟信号经24位高精度A/D转换后输出spi数据
基准电压源:仙童公司的LM336(2.5V),作为基准电压
隔离电源:深圳安时捷公司的HDN1-5D05 DC-DC微功率直流变换器,用于将从USB取电的5V变换为±5V稳压电源,隔离噪声干扰

n2000色谱仪用料精良,用于微弱电压信号的放大采集非常实用。但因为是多年前设计生产,只有串口输出,且必须使用配套的n2000系列软件。低版本的软件只能在windows xp上运行,高版本的软件需要另外的加密锁,在应用上较为不便。
n2000色谱仪通电后即会在串口输出数据信号,于是想到通过电脑直接读取串口上的数据。经过仔细分析,数据作简单处理即可还原为原始的数据信号,用于记录或者分析。
                int v11;
                char v10 = read_data_tmp[1];
                if ( (v10 & 0x3Fu) < 0x20 )
                {
                    v11 = read_data_tmp[3] + (read_data_tmp[2] << 7) + ((v10 & 0x3F) << 14);
                }
                else
                {
                    read_data_tmp[1] = ~v10;
                    read_data_tmp[1] &= ~0x80u;
                    read_data_tmp[2] = ~read_data_tmp[2];
                    read_data_tmp[2] &= ~0x80u;
                    read_data_tmp[3] = ~read_data_tmp[3];
                    read_data_tmp[3] &= ~0x80u;
                    v11 = 1 - (read_data_tmp[3] + (read_data_tmp[2] << 7) + ((read_data_tmp[1] & 0x3F) << 14));
                }

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-9-19 09:07 , Processed in 0.066025 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

返回顶部