返回列表 发新帖我要提问本帖赏金: 10.00元(功能说明)

[活动专区] 【AT-START-F425测评】通过VCP实现SCPI通信

[复制链接]
 楼主| jgp886585 发表于 2022-3-20 22:17 | 显示全部楼层 |阅读模式
本帖最后由 jgp886585 于 2022-3-20 22:29 编辑

#申请原创# #有奖活动#  @21ic小管家
简介(摘自百度百科)
SCPI于1990与IEEE 488.2协议一起面世。这套标准定义了可用于控制一切仪器的语法,命令结构以及数据格式。比如,通用的命令,如配置仪器参数的命令CONFigure,测量命令MEASure等。这些命令可用于任一仪器,并且同一类的命令属于同一子系统里。SCPI同时也定义了若干仪器的种类。比如,任何可控制的电源都会实现DCPSUPPLY基本功能类型。仪器的类别规定了它们会去实现什么样的子系统,当然也包括针对仪器的特定功能。

工程搭建安装pack包
我使用的是Keil5,所以只下载了Keil5支持包,然后根据开发板型号安装相应MCU的支持包,双击支持包直接开始安装
996106237365f33372.png
如果能够在Keil5中找到芯片型号,说明安装成功
73191623736691f1e6.png

移植工程
此处需要通过VCP实现SCPI,为了不影响原来的工程,将工程单独复制一份出来,就会发现很多报错,其实是因为库的路径发生了变化,所以需要重新选择库路径
2669062373674da1ee.png
对照例程里的路径,将要用到的文件全部复制出来放在工程里,然后调整路径
784746237367e02466.png
修改文件路径
648956237368ad5daf.png
之前使用ST的做上边的操作就可以了,但是这个工程看了下修改完路径,c文件还是带感叹号,编译还是有问题,报错的提示发现文件还是指向原路径,只能手动将所有文件重新添加了一次。。。。
4239462373694762f4.png
调整完成之后,编译无警告无错误
353426237369e92165.png

添加SCPI解析库
添加SCPI模块,SCPI是github找的一个大神写好的,源地址参考资源2,之前有用过,基本实现了完整功能,只是代码比较难理解,当然可能也是我的功底不够,反正能用,我就没有深究他的底层逻辑。
13920623736b25b00d.png
这个代码用版本5编译的话始终是有错误存在,无法解决,改成编译级6就好了.
28735623736b9007bb.png

代码修改
在USB VCP接收函数中增加SCPI结束符判断标志,SCPI一般以0x0D和0x0A为结束符,对该协议感兴趣得可以参看该协议文档。
18176623736c26941c.png
修改main函数中得处理流程,加入对SCPI指令得解析。
35828623736cac8638.png
print函数需要重定向到VCP,示例代码默认是重定向到串口的,所以我屏蔽了示例中的重定向代码
5084623736d149523.png
还有一些小修改就没有列出来的,可以查看源代码。

通信演示
SSCOM是支持自动添加回车换行的,所以为了方便,将该选项勾上。
62836623736d95af05.png
90278623736e1d14c8.png
scpi_Debug.gif

说明
1.之前做手术没有时间,手术之后又是出差(为了写个评测,出差背着电脑),所以时间比较仓促,该示例只是简单实现了功能,需要使用的话可能逻辑需要调整,需要增加异常处理机制。
2.本人编程属于自学,底子较薄,偏向于应用,对原理理解比较浅薄,有问题的地方,或者有大神对该比较了解的,欢迎指教,非常感谢!

资源地址
https://www.arterytek.com/cn/product/AT32F425.jsp#Resource
https://github.com/j123b567/scpi-parser

源代码参看附件

vcp_loopback.zip (3.83 MB, 下载次数: 14)






62185623736f75dd4a.png

打赏榜单

ArterySW 打赏了 10.00 元 2022-03-25
理由:我很认同

评论

用这个SCPI协议的不多吗?  发表于 2022-3-27 12:55
muyichuan2012 发表于 2022-3-25 11:46 | 显示全部楼层
美女图片是加分项
muyichuan2012 发表于 2022-3-25 11:46 | 显示全部楼层
图片是加分项
 楼主| jgp886585 发表于 2022-3-27 12:55 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

231

主题

678

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部