技术学习神器:VC02虚拟元器件仿真器

什么是虚拟元器件仿真器?是否由于技术学习的需要而曾经(或将来)多次重复购买一大堆元器件,按键、开关、LED自然不必多说,LED数码管(或点阵)、蜂鸣器、直流/步进电机、LED模组、LCD模组、OLED模组、EPD模组、VFD模组等等都可能买过,对于经济实力不厚的学生而言是一种不小的压力,而且使用过一次后大多数便束之高阁(甚至直接扔掉),难道不是资源浪费吗?工程师也经常会购买很多需要单片机控制的芯片(或模组),如何快速验证其功能呢?熟悉编程的工程师自然能够做到,但如果有现成的通用接口元件直接调用,只需要设置一些数据就能够轻松灵活地驱动大量接口相同或相似芯片(或模组),岂不是更加有效率吗?虚拟元器件仿真器即可完美解决此问题,只需要在配套软件平台中调出某个虚拟元器件(正如其它原理图绘制工具一样),然后将虚拟元器件的引脚分配到仿真器引脚编号,即可使用你自己的系统(如单片机、FPGA、DSP等)驱动仿真器,而虚拟元器件的仿真效果与实际元件的行为完全相同或相似。

 

VC02仿真器的功能展示     VC02仿真器是一款与VisualCom软件平台配套的硬件模块,你通过该模块能够与VisualCom软件平台自带元件库中的海量元器件通信,从而获得与实际元器件相同或相似的应用效果,而不需要再去多次重复购买元器件,大大了降低技术学习成本,自带的通用驱动接口也能够大幅度提升元件或模组的测试效率。简单地说,它可以替代大多数常用元器件或模组(作为输入),或驱动常用元器件或模组(作为输出),而你需要做的工作就是:为虚拟元器件分配仿真器上的引脚即可(如果作为输出来驱动你的硬件模块,还需要预先设置输出的数据,毕竟硬件模块的具体效果肯定由你决定),下图为VisualCom软件平台中的“引脚分配”对话框。

 

 举几个例子,当使用你的系统驱动“基于MAX7219的LED数码管模组”虚拟元器件(型号SLED8X1M01S02B),相应的效果如下:

 如果使用“针对MAX7219的串行接口” 虚拟元器件(型号SF16C01A)驱动你的硬件模块时,相应的效果如下图所示(附预置数据图):

 

 

当使用你的系统驱动“基于HD44780的LCD1602模组”虚拟元器件(型号LM016L)时,相应的效果如下图所示:

 

 

当使用“针对HD44780的6800接口”虚拟元器件(型号IF6800C01/02)驱动你的LCD模组时,相应的效果如下图所示(附预置数据图):

 

 

当使用你的系统驱动“基于ST7920的LCM12864模组”虚拟元器件(型号LM416L)时,相应的效果如下图所示:

 

 

当使用“针对ST7920的6800接口”虚拟元器件(型号IF6800C03)驱动你的LCD模组时,相应的效果如下图所示(附预置数据图):

 

 

虚拟元器件的仿真结果与实际元器件完全相同,这就是VC02仿真器最基本的功能:要么采集输入数据以控制虚拟元器件的行为,要么输出数据控制实际的硬件模块(双向数据自然也不在话下)。写在前面1)本模块与VisualCom软件平台配合使用,并且需要安装USB驱动,相应的USB驱动安装工具位于VisualCom软件平台安装目录的 driver文件夹中(一键即可快速安装),安装详情见VisualCom软件平台“帮助”菜单(仿真模型开发手册,VisualCom使用教程,器件库参考手册亦可从此获取),如下图所示:

 

 

2)VisualCom软件平台目前仅支持Windows 64位操作系统,但其可独立使用(不需要配合仿真器),所以建议下载安装该软件平台并熟悉一下后再购买该模块(以避免模块到手后却发现电脑无法安装VisualCom软件平台的状况),相应安装包的百度云盘链接如下:


链接https://pan.baidu.com/s/1AW4mKHjztEP1clLscabwUg提取码:683e


VC02仿真器的硬件特性

1)USB 2.0接口(Type B母座)供电与通信,无需额外电源

2)2.54mm简易牛角插座(DC3-20)作为数据输入与输出(出货时已使用标签纸封住,请在VisualCom软件平台检测到该模块后再撕下

3)18个可配置引脚,+3.3V输出,所有引脚均可接受+3.3/+5V输入

4)所有引脚均可随意配置为输入(悬浮、上拉、下拉)或输出(推挽、开漏)模式,如果你具备编程能力,也可以在元件模型开发时随时修改相应的模式

5)每个引脚均可配置为中断输入(适用于时序逻辑器件的触发类型引脚)

 

 

 

VisualCom软件平台的优势     VC02仿真器需要与VisualCom软件平台配合使用,后者是由微信公众号《电子制作站》团队自主研发的一款与Proteus相仿的电子元件与模组仿真平台,但是支持更多元器件与模组,而且还能与硬件模块配合使用,完全打通虚拟与现实的信号链路,其主要特点如下:

1)海量元件VisualCom软件平台包括但不限于常用的LED、数码管、点阵、LCD显示、OLED模组、EPD模组、VFD模组、蜂鸣器、直流或步进电机及常用6800/8080/SPI/I2C驱动接口等等,只要将其从库中调出并分配仿真器引脚编号,你就可以使用自己的系统(像驱动真实元器件一样)驱动虚拟元器件获得相同或相似的效果。

 

 

为尽量减少库中冗余元件的数量,VisualCom软件平台自带库中的元件尽量将现实元器件的各种属性整合在一起。以最简单的LED数码管为例,不同背景(或段)显示颜色、不同结构(共阴或共阳)、不同类型(下小数点、中冒号、上小数点)的数码管并不分别制作元件(而凑元件数量),而仅使用一个元件代表,你可以在“自定义”属性中灵活定义自己想要的属性,如此一来,相同的LED数码管即可表现出不一样的效果。

 

 

 

2)内置常用测试驱动或控制接口,高效验证常用元器件或模组。可别以为VC02仿真器只能够配合VisualCom软件平台作为显示屏使用,你还可以通过VC02仿真器控制外围硬件模块,简单的开关、按键自然不必多说,Interface库中还包括很多常用的并行或串行驱动接口,包括6800、8080、三线或四线SPI、I2C等等,你只要设置需要发送的数据,VisualCom软件平台就可以驱动VC02仿真器生成相应的时序来驱动芯片。例如,“针对MAX7219定制的接口”元件可调节每个电平间的延时、多个16位数据间延时、发送数据的有效位宽以及背景与信息行颜色,驱动真实的MAX7219显示模组自然也不在话下。

 

 

再例如,“针对LCD1602定制的接口”元件可以选择是否读忙标记,并且控制电平延迟与数据间的延时,界面也可以显示相应的状态,例如,正在读忙标记、忙标记确认、写入数据或指令等等。

 

 

通用SPI接口元件可以调整发送的位宽、时钟极性、时钟相位、是否高位先行等属性

 

 

3)虚拟元器件之间也可以互相控制。你可以使用VC02仿真器让自己的系统驱动VisualCom软件平台中的元件(或者反过来)成为可能,那么,能否让虚拟元器件之间也进行互动呢?拥有VC02仿真器即可实现。

 

 

例如,Display库中存在“基于MAX7219的数码管模块”元件(型号为SLED8X1M01S02B),其引脚为CLK、LOAD、DIN、DOUT,而Interface库中存在“针对MAX7219定制的输出接口”元件(型号为SF16C01A),只要你将它们拉出来并一一分配引脚,然后将远程引脚编号连接起来,接口输出的时序就可以通过硬件模块再采集到输入来驱动。

 

 

4)丰富的案例。为方便新手快速使用VC02模块,VisualCom软件平台自带丰富的演示案例,其位于安装目录的sample文件夹,其中主要包含工程文件(*.dsn),有些还存在预置数据文件(*.csv)及仿真效果视频文件(*.mkv)。

 

 

绝大多数显示模组都有单片机驱动案例,并且相应的STC单片机驱动源代码位于VisualCom软件平台安装目录的src文件夹(STCMCU.rar),这些源代码均出自已出版图书《显示器件应用分析精粹:从芯片架构到驱动程序设计》,你可以对照图书进行学习或测试。

 

 

 

(5)可自行开发元件模型。什么?VisualCom软件平台自带库中的元件不满足你的需求?没关系,只要对C++编程有一定的了解(不需要精通),你也可以开发专属自己的元件。VisualCom软件平台非常注重文档的完整与详尽,你完全可以通过《仿真模型开发手册》轻松入门模型开发,继而与远程硬件模块通讯并控制输出或输入,VisualCom软件平台自带库元件只是提供一些可能的实现案例,如果你想做其它的应用,没有做不到,只有想不到

 

 

6)自主研发,软件及元件库也将持续更新。VisualCom软件平台从2017年设计的雏形开始持续不断发展至今,后续也将坚持不懈地优化软件性能及开发更多实用的元件库,你只需要下载相应的库到本地并加载到VisualCom软件平台即可(仿真器不必更换)。

 

如何检测模块的好坏?以下假设你已经安装VisualCom软件平台及USB驱动。打开VisualCom软件平台,然后使用配套USB数据线将本模块与PC连接。模块的状态指示LED会在上电的一瞬间闪一下后常亮。如果VisualCom软件平台检测到该模块,下方状态栏右侧会出现一个绿色的小方块(颜色随应用程序外观样式而民间),如下图所示。

 

 

此时如果进入到“选项”→“远程模块”菜单项,即可进入“远程模块”对话框,“已连接模块”类别中将显示当前平台的型号(此处为“VC02”)、标识号(ID)及序列号(SN),类似如下图所示。

 

 

如果进入到Windows操作系统的“设备管理器”窗口,其中有一项“libusb-win32 devices“,下面显示了该模块的型号,如下图所示。

 

 

牛刀小试 VisualCom软件平台自带了很多案例,此处仅选择一个最简单的例子进行演示,更多验证案例见《VC02仿真器规格书》,涉及的案例位于VisualCom软件平台安装目录的sample文件夹中,Display文件夹下包括绝大多数自带显示器件的案例(相应的STC51单片机的驱动源代码位于安装目录的src/Display文件夹。此处打开“01-单个闪烁的LED灯”工程文件,相应的状态如下图所示。

 

 

单击菜单”仿真”→“引脚分配”即可进入下图所示对话框,从中可以看到案例给该灯泡分配的引脚为“8”,你也可以修改为其它1~18范围内的引脚测试(之所以案例中不为1,是因为该案例本身与已出版图书《显示器件应用分析精粹:从芯片架构到驱动程序设计》配套)。

 

 

知道了该引脚对应模块的编号之后,你才能给该模块加电平来观察该灯泡的状态,是不是?好的,接下来开始仿真了。选项菜单“仿真”→“开始” (或单击工具栏上的“运行”按钮,或回车键Enter),状态栏的进度栏会在不停地循环增加(表示仿真正在进行中)。此时,当你将VC02仿真器的第8脚接地,或接电源,该灯泡相应的状态就会实时发生改变,相应的连接示意如下图所示,你也可以使用相同的方式验证其它引脚的状态:

 

 

值得一提的是,这个简单灯泡可以设置有效电平。有效电平为“高”表示输入为高电平时才会点亮,反之亦然,而亮灭的颜色也可以自定义,如下图所示。

 

 

另外,在仿真运行过程中,VC02仿真器的状态指示LED也会闪烁起来(闪烁速度主要取决于“采样间隔”值,此值越小则闪烁速度越快。更确切地说,每一个由仿真器成功传输至VisualCom软件平台的数据包都会引发该LED状态的翻转,这些数据包可能包含采集的电平数据或握手数据),状态指示LED在退出仿真状态后又会变回常亮状态。如果有配套的按键LED模块,则直接使用配套线缆与VC02仿真器连接,也就可以通过相应的按键控制灯泡的状态,如下图所示(按键接下后,对应引脚的LED也会亮起来):

 

 

如果你有配套的STCMCU模块,也可以直接烧录例程中的程序来验证。首先将其与VC02仿真器连接,如下图所示。然后将路径VisualCom软件平台安装目录/src/STCMCU/Display/01-单个闪烁的LED灯/Objects/simple_led_driver.hex文件下载到单片机,最后开启STCMCU电源,灯泡就会闪烁起来。

 

声明 

1、本公众号仅负责仿真器的技术架构及解决方案实现,并参与仿真器产品的运营,亦指定仿真器的销售店铺,有兴趣的粉丝可自行选购。

2、本公众号可对VisualCom软件平台的使用提供技术支持(包括元件模型开发),可将问题留言或发送到邮箱dzzzzcn@139.com

3、本公众号拥有最终解释权

posted @ 2023-02-11 18:56  阳光&技术  阅读(258)  评论(0编辑  收藏  举报