[元件] 用算法进行配对的晶体管图示仪

  [复制链接] 查看: 98222|回复: 330
头像被屏蔽

30

主题

37

好友

3077

积分
     

禁止发言 当前离线

UID
717420
帖子
3287
精华
0
经验
3077 点
金钱
2970 ¥
注册时间
2014-6-23
发表于 2019-4-19 22:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-19 22:23 | 显示全部楼层
wsy888wsy 发表于 2019-4-19 22:03
楼主好,这编译的程序没有也做不出啊,用的是什么语言呢?

测试板上用的是C/C++。Arduino也只支持C/C++的开发。PC侧主要是用Python

139

主题

11

好友

3306

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
5036
帖子
4977
精华
1
经验
3306 点
金钱
3017 ¥
注册时间
2005-7-26
发表于 2019-4-19 22:45 | 显示全部楼层
zying 发表于 2019-4-17 22:00
制作成本能控制在200以下,就很适合业余爱好者了!

光看一眼就知道不可能在200以下。

10

主题

0

好友

281

积分
     

业余侠客 当前离线

Rank: 4

UID
73970
帖子
291
精华
0
经验
281 点
金钱
261 ¥
注册时间
2009-1-9
发表于 2019-4-19 23:25 来自手机端 | 显示全部楼层
确实,除了硬件,关键是软件的配合,祝楼主早日成功,造福大家!

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-20 14:33 | 显示全部楼层
3.通信接口与DEV应用程序
硬件电路就好像是手和脚,真正指挥手脚动作的要靠软件。我做的这个图示仪,最复杂的部分其实是软件。从总体上讲,软件分成三个部分。
第一部分是单片机部分的设备测试操作软件(简称DEV软件);
第二部分是实现PC和单片机的通信协议软件;
第三部分是PC机上实现测试控制,数据处理,GUI界面展示的软件;
这里先介绍第一部分和第二部分的软件。第三部分的软件最复杂,工作量也最大,要在单独的部分介绍。
3.1 DEV软件
之所以称为设备测试操作软件。主要还是基于能通过软件做的,都通过软件做;能让PC干的活都让PC干。在硬件设备部分,单片机只执行最基本的测试操作。DEV软件主要做以下几件事:
1.  初始化
a)        对单片机端口初始化:现在的版本里端口基本没有,初始化很简单。
b)        初始化DA模块:MCP4725有封装好的Arduino应用包。只要调用现成的函数就可以创建DA对象实例,初始化DA芯片;
c)        初始化AD模块:ADS1115也有封装好的Arduino应用包。只要调用现成的函数就可以创建AD对象实例,初始化AD芯片;
2.  等待从串口接收PC发来的指令
3.  当收到有效的指令后,开始执行指令。目前定义的指令有以下三条:
0x10: 初始化设备。
将所有的输出都置零
0x20: 测量。
根据收到的测量模式(mode),Ib/Vb,Vc的值,设置DA输出(先输出Ib,再输出Vc),读取AD的结果(Vbe采样值,Ic采样值,2.5V参考电压采样值)。将测试结果按通信协议打包后发回给PC;
         测量模式目前只定义了两种:
1)工程模式:工程模式下,通过DA设定了Ib和Vc,读取AD采样结果后,Ib,Vc保持不变。这样便于交互式调测时了解实际输出的电压情况;
2)正常模式:正常模式下,测量完成后,将Ib,Vc清零。这在正常测量时非常重要,可以有效避免器件发热而导致特性漂移。
         
         0x50:Echo
返回当前状态。基本就把PC发送过来的指令,在原样返回。返回时还带有当前的Ib, Vc,Vref采样值。特别是2.5V参考电压Vref非常有用。PC侧可以了解当前的Vref实际值,再基于这个值对要测量的数据进行编码,可以减少误差。
4.  自检测试
这部分其实是单独的应用。按照一定规律自动生成Ib,Vc,对Ib, Vc进行编码,通过DA发送;然后再采样回来,解码;将解码结果通过USB串口发送出来。利用Arduino开发环境自带的串口监视器,可以了解当前硬件的工作状况。
3.2 通信协议
通信协议的基本结构包括四层:最底层是物理层,确保物理连接可靠;之上是通信链路层,定义数据交换的基本格式;再往上是建立通信连接的网络层,确保信息可靠交换;最上层是应用层,执行真正的测试任务。
图3-1 通信模型.jpg

PC和测试硬件之间的物理层是通过USB接口连接。
链路层是仿真的RS232串口协议。因此,在PC侧需要根据Arduino Nano上串口芯片的型号安装虚拟串口软件,PC的设备管理才能发现硬件串口号;我买的这个Arduino Nano串口芯片是CH340PC侧必须要安装CH340的驱动程序。
由于是仿真的串口,所以无论是PC侧,还是硬件设备侧,通信口的初始化与串口初始化是一样的。发送和接收函数也是面向字符的串口操作函数。
在链路层之上是建立通信连接的网络层。这一层要确保PC发送给设备(DEV),以及DEV返回给PC的消息能被准确的接收和解析。这就涉及到通信消息字段的定义,已经通信协议的实现;
在最上层是执行测试的应用层。负责对要设置的ibvc进行编码,调用低层函数发送指令消息,并接受指令执行结果,对结果进行解码,解析。
3.2.1 通信消息字段定义

PC->DEV: 包括12个字节,4个部分。如下图:
图3-2 PC-DEV消息格式.jpg

DEV->PC:包括16个字节,5个部分。如下图:
图3-3 DEV-PC消息格式.jpg

由于消息字段是固定长度的字节串,不能直接传浮点数。哪怕是整数也不行。需要把要设置的ib Vc转换成和DA匹配的字节串。因此数据的编解码,电平平移的计算,都在PC侧完成。只将编码后的适合DA转换的字节串发送个测试设备;而测试设备在完成采样后,直接将采样的结果(16bit)转换成416进制字节串发送给PC;由PC解析出最终的结果。这也符合把能让PC干的活都交给PC干的原则。
3.2.2网络层握手协议
为了保证PC和设备可靠通信,设计了一个简单的握手协议。
l  由PC发往DEV的每条信息,DEV首先原样返回,作为握手信号,然后再解析消息内容。根据消息中的指令,完成动作后,立即发送结果给PC;
l  PC侧在发送完消息后,首先读取第一条消息,如果和发送的消息一致,说明对端接收正常;然后再等待读取第二条消息,就是对指令的反馈;
DEV发送给PC的消息就不考虑握手协议了。

网络层的工作方式如下图:

图3-4 握手协议.jpg

3.2.3 应用层测量控制
原来并没有考虑设计应用层的测量控制协议。通常情况就是根据要设定的IbVc,根据硬件设备的DA分辨率进行编码,然后就发送给设备进行测试了。
但在当前版的硬件电路里,可以随时采集Vref的值。这个值就是当前的0电位值,这个值的两倍就是当前DA工作的参考压值,以此可以计算出更准确的DA分辨率。利用这个实时计算出的分辨率对要设定的数据进行编码,准确度也会提高。
因此设计了一个简单的应用层控制协议。即每次发送测试指令前,先发一个ECHO指令,获取当前设备的状态及Vref值,以这个值对要发送的ibVc进行编码。然后在发送测试指令,获取测试结果。



6

主题

0

好友

227

积分

业余侠客 当前离线

Rank: 4

UID
30578
帖子
325
精华
0
经验
227 点
金钱
221 ¥
注册时间
2007-11-17
发表于 2019-4-21 00:52 来自手机端 | 显示全部楼层
看起来挺不错的,电流最好做大一点。做好后有套件卖吗?有的话先预定一套。

6

主题

1

好友

473

积分

业余侠客 当前离线

Rank: 4

UID
32243
帖子
449
精华
0
经验
473 点
金钱
429 ¥
注册时间
2007-12-15
发表于 2019-4-22 00:15 来自手机端 | 显示全部楼层
預訂一套

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-22 09:09 | 显示全部楼层
感谢大家的关注。
利用现在软,硬件版本,已经实测了上百只双极型晶体管,建立了一个小的数据库。应用软件的架构也基本确定了。 后续会向大家介绍应用软件的设计思路。  
目前硬件还在针对场效应管的测试进行优化;应用软件也还有很多细节在优化。由于都是在业余时间制作,所以进度会慢一些。

等硬件和软件比较稳定后,再看怎么出套件分享给大家。
欢迎大家对电路和应用软件的设计思路提出宝贵的意见。


5

主题

0

好友

110

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
819784
帖子
114
精华
0
经验
110 点
金钱
100 ¥
注册时间
2016-9-15
发表于 2019-4-22 09:17 | 显示全部楼层
非常感兴趣,预祝成功,早日上市,我要购买!!!(套件也行)

48

主题

0

好友

2074

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
17894
帖子
5613
精华
0
经验
2074 点
金钱
1967 ¥
注册时间
2007-1-23
发表于 2019-4-22 10:02 | 显示全部楼层
支持一下!

10

主题

0

好友

234

积分
     

业余侠客 当前离线

Rank: 4

UID
10681
帖子
181
精华
0
经验
234 点
金钱
160 ¥
注册时间
2006-7-13
发表于 2019-4-22 14:05 | 显示全部楼层
数字化晶体管图示仪,太好了。期待

6

主题

0

好友

363

积分
     

业余侠客 当前离线

Rank: 4

UID
14445
帖子
260
精华
1
经验
363 点
金钱
263 ¥
注册时间
2006-11-9
发表于 2019-4-23 12:41 | 显示全部楼层
谢谢楼主的分享,期待中,谢谢!

8

主题

12

好友

1563

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
38730
帖子
1907
精华
0
经验
1563 点
金钱
1536 ¥
注册时间
2008-3-28
发表于 2019-4-23 13:38 | 显示全部楼层
全力支持楼主做出发烧友欢迎的物美价廉的,各位发烧友期盼已久的晶体管图示仪,以造福广大发烧友。

61

主题

1

好友

698

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
691246
帖子
1261
精华
0
经验
698 点
金钱
626 ¥
注册时间
2014-4-27
发表于 2019-4-24 12:27 | 显示全部楼层
suncand 发表于 2019-4-22 09:09
感谢大家的关注。
利用现在软,硬件版本,已经实测了上百只双极型晶体管,建立了一个小的数据库。应用软件 ...

如果能支持高压大功率晶体管或场管就好了,可能电源上实现起来不容易且成本很高,建议加个功能,支持外接高压电源并自动采集数据,这样应该不难也不麻烦

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-24 16:45 | 显示全部楼层
本帖最后由 suncand 于 2019-4-24 16:50 编辑
音法自然 发表于 2019-4-24 12:27
如果能支持高压大功率晶体管或场管就好了,可能电源上实现起来不容易且成本很高,建议加个功能,支持外接 ...


感谢建议。高压电源的控制是个麻烦。等这个版本做好后,再考虑吧。如果在高压电源控制方面有什么建议,欢迎讨论。

11

主题

0

好友

59

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
848830
帖子
127
精华
0
经验
59 点
金钱
41 ¥
注册时间
2018-5-17
发表于 2019-4-25 09:23 | 显示全部楼层
支持楼主!工作量不小啊!

1

主题

0

好友

4

积分
     

注册会员 当前离线

Rank: 2

UID
855588
帖子
3
精华
0
经验
4 点
金钱
2 ¥
注册时间
2018-11-19
发表于 2019-4-25 09:56 | 显示全部楼层
期待楼主的最终版本套件

20

主题

7

好友

484

积分
     

业余侠客 当前离线

diy-jlk.flowus.cn

Rank: 4

UID
165922
帖子
502
精华
0
经验
484 点
金钱
437 ¥
注册时间
2010-1-18
发表于 2019-4-25 12:03 | 显示全部楼层
楼主你好,期待你的大作完工
请问ADS1115和MCP4725的arduino驱动库文件能分享一份么,谢谢
我找到的ADS1115库 采集电压为0的时候会报错

5

主题

0

好友

190

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
96813
帖子
691
精华
0
经验
190 点
金钱
176 ¥
注册时间
2009-4-15
发表于 2019-4-25 16:34 | 显示全部楼层
支持楼主,成品后发个连接,我想买。

39

主题

0

好友

515

积分

职业侠客 当前离线

上等兵

Rank: 5Rank: 5

UID
15309
帖子
466
精华
0
经验
515 点
金钱
437 ¥
注册时间
2006-11-28
发表于 2019-4-25 16:47 | 显示全部楼层
这应该普及,普及了就是大家福音了,原理应该十一样的,我对楼主的创意表示佩服!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部