一种单片机单线调试图形终端转让专利

申请号 : CN202111081178.X

文献号 : CN113777990B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚大严

申请人 : 广州安广电子科技股份有限公司

摘要 :

本发明公开了一种单片机单线调试图形终端,包括单线串行隔离通信模块和图形显示装置;单线串行隔离通信模块包括USB通信模块、信号隔离模块、信号电压比较模块和正激开关电源模块;输入信号连接到信号电压比较模块的输入端,信号电压比较模块的输出端连接到信号隔离模块的输入端,信号隔离模块的输出端连接到USB通信模块的输入端,USB通信模块输出一路PWM信号给正激开关电源模块,正激开关电源模块给信号电压比较模块供电;将单片机信息数据通过数据线经过单线串行隔离通信模块连接到USB通信模块,再由USB通信模块连接到图形显示装置,在图形显示装置上把信息数据以画线的形式显示出来;本发明数据显示直观,且可以长时间查看,提高单片机开发调试效率。

权利要求 :

1.一种单片机单线调试图形终端,包括单线串行隔离通信模块和图形显示装置;其特征在于:所述单线串行隔离通信模块包括USB通信模块、信号隔离模块、信号电压比较模块和正激开关电源模块;输入信号连接到所述信号电压比较模块的输入端,所述信号电压比较模块的输出端连接到所述信号隔离模块的输入端,所述信号隔离模块的输出端连接到所述USB通信模块的输入端,所述USB通信模块输出一路PWM信号给所述正激开关电源模块,所述正激开关电源模块给所述信号电压比较模块供电;将单片机信息数据通过一数据线经过所述单线串行隔离通信模块连接到所述USB通信模块,再由所述USB通信模块连接到所述图形显示装置,在图形显示装置上把信息数据以画线的形式显示出来;所述正激开关电源模块包括MOSFET开关管和双绕组的环形变压器;通过所述USB通信模块输出的PWM信号连到MOSFET开关管G极,MOSFET开关管D极连接到环形变压器第一绕组,再由环形变压器第二绕组输出电压。

2.根据权利要求1所述的一种单片机单线调试图形终端,其特征在于:所述USB通信模块包括ARM芯片;从所述ARM芯片引出专用的USB接口,从所述ARM芯片的一个引脚作为所述USB通信模块的输入端。

3.根据权利要求1所述的一种单片机单线调试图形终端,其特征在于:所述信号隔离模块包括高速光耦合芯片;所述高速光耦合芯片的阴极作为所述信号隔离模块输入端,所述高速光耦合芯片的输出端作为所述信号隔离模块输出端。

4.根据权利要求1所述的一种单片机单线调试图形终端,其特征在于:所述信号电压比较模块输入端经过电阻分压后连到比较器的同相输入端,从所述正激开关电源模块输出电压,经过电阻分压后作为参考电压,再把参考电压连接到比较器的反相输入端。

说明书 :

一种单片机单线调试图形终端

技术领域

[0001] 本发明涉及通信显示技术领域,特别地是一种单片机单线调试图形终端。

背景技术

[0002] 在单片机电子系统开发调试时,通常要实时的查系统运行的一些关键数据,以了解系统内部运行情况;要实时查看系统数据,有的系统可以采用仿真器查看,但仿真器显示的数据并不直观,实时性也不好,且要占用专用接口,更糟糕的是有一部分单片机系统并不支持仿真器实时查看。如果采用专用的UART模块和UART串口助手查看,缺点是有一部分的
单片机系统没有串口,或者串口可能会被占用,且UART串口助手对数据型数据的查看也不
直观,更不用说长时间观察了。为了提高开发效率,我们要用一个接口简单,最好每一个IO口都能用,对接口电压要求范围宽,数据显示直观,且可以长时间查看的一个通用工具。

发明内容

[0003] 本发明的目的在于提供一种数据显示直观,且可以长时间查看,提高单片机开发调试效率的单片机单线调试图形终端。
[0004] 本发明通过以下技术方案实现的:
[0005] 一种单片机单线调试图形终端,包括单线串行隔离通信模块和图形显示装置;其中:所述单线串行隔离通信模块包括USB通信模块、信号隔离模块、信号电压比较模块和正激开关电源模块;输入信号连接到所述信号电压比较模块的输入端,所述信号电压比较模
块的输出端连接到所述信号隔离模块的输入端,所述信号隔离模块的输出端连接到所述
USB通信模块的输入端,所述USB通信模块输出一路PWM信号给所述正激开关电源模块,所述正激开关电源模块给所述信号电压比较模块供电;将单片机信息数据通过一数据线经过所
述单线串行隔离通信模块连接到所述USB通信模块,再由所述USB通信模块连接到所述图形
显示装置,在图形显示装置上把信息数据以画线的形式显示出来。
[0006] 进一步地,所述USB通信模块包括ARM芯片;从所述ARM芯片引出专用的USB接口,从所述ARM芯片的一个引脚作为所述USB通信模块的输入端。
[0007] 进一步地,所述信号隔离模块包括高速光耦合芯片;所述高速光耦合芯片的阴极作为所述信号隔离模块输入端,所述高速光耦合芯片的输出端作为所述信号隔离模块输出
端。
[0008] 进一步地,所述信号电压比较模块输入端经过电阻分压后连到比较器的同相输入端,从所述正激开关电源模块输出电压,经过电阻分压后作为参考电压,再把参考电压连接到比较器的反相输入端。
[0009] 进一步地,所述正激开关电源模块包括MOSFET开关管和双绕组的环形变压器;通过所述USB通信模块输出的PWM信号连到MOSFET开关管G极,MOSFET开关管D极连接到环形变
压器第一绕组,再由环形变压器第二绕组输出电压。
[0010] 本发明的有益效果:
[0011] 本发明在不同的电子开发环境中,通过一根数据线与开发环境中的系统连接,通过USB接口连接到图形显示装置软件界面以图形方式显示数据。通信信息电平高于1.2V时
为高电平,否则为低电平,简化接口电路和提高了信号电平的宽度。为了方便图形显示装置安全的与开发系统连接起来,本发明采用了电气隔离通信技术;不用专用的接口电路就能
实现通信,采用一个普通的IO口即可实现,只要加入一段简单的代码,这段代码主要用来发送数据,通用性特别好,即使是资源较差的单片机也能用图形显示装置软件界面能显示的
数据曲线目前为24条,每条线显示数值为0 65535,可以快速的定位想要查看的曲线,可以~
对曲线数据进行加、减、乘、除的处理,可以设定采样时间,可以导出数据作分析,大大提升了对数值型数据的分析效率。

附图说明

[0012] 图1为本发明实施例单片机单线调试图形终端结构示意图;
[0013] 图2为本发明实施例桌面计算机终端软件界面应用示意图。实施方式
[0014] 下面将结合附图以及具体实施例来详细说明本发明,在此以本发明的示意下面将结合附图以及具体实施例来详细说明本发明,在此以本发明的示意性实施例及说明用来解
释本发明,但并不作为对本发明的限定。
[0015] 需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后、上端、下端、顶部、底部……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
[0016] 在本发明中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件
的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0017] 另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征;另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保
护范围之内。
[0018] 如图1所示,一种单片机单线调试图形终端,包括单线串行隔离通信模块和图形显示装置;其中:所述单线串行隔离通信模块包括USB通信模块、信号隔离模块、信号电压比较模块和正激开关电源模块;输入信号连接到所述信号电压比较模块的输入端,所述信号电
压比较模块的输出端连接到所述信号隔离模块的输入端,所述信号隔离模块的输出端连接
到所述USB通信模块的输入端,所述USB通信模块输出一路PWM信号给所述正激开关电源模
块,所述正激开关电源模块给所述信号电压比较模块供电;将单片机信息数据通过一数据
线经过所述单线串行隔离通信模块连接到所述USB通信模块,再由所述USB通信模块连接到
所述图形显示装置,在图形显示装置上把信息数据以画线的形式显示出来。
[0019] 本发明在不同的电子开发环境中,通过一根数据线与开发环境中的系统连接,通过USB接口连接到图形显示装置(桌面计算机终端)软件界面以图形方式显示数据。通信信息电平高于1.2V时为高电平,否则为低电平,简化接口电路和提高了信号电平的宽度。图形显示装置(桌面计算机终端)软件界面能显示的数据曲线目前为24条,每条线显示数值为0~
65535,可以快速的定位想要查看的曲线,可以对曲线数据进行加、减、乘、除的处理,可以设定采样时间,可以导出数据作分析,大大提升了对数值型数据的分析效率。
[0020] 具体的,本实施例方案中,所述USB通信模块包括ARM芯片;从所述ARM芯片引出专用的USB接口,从所述ARM芯片的一个引脚作为所述USB通信模块的输入端。
[0021] 具体的,本实施例方案中,所述信号隔离模块包括高速光耦合芯片;所述高速光耦合芯片的阴极作为所述信号隔离模块输入端,所述高速光耦合芯片的输出端作为所述信号隔离模块输出端。
[0022] 具体的,本实施例方案中,所述信号电压比较模块输入端经过电阻分压后连到比较器的同相输入端,从所述正激开关电源模块输出电压,经过电阻分压后作为参考电压,再把参考电压连接到比较器的反相输入端。
[0023] 具体的,本实施例方案中,所述正激开关电源模块包括MOSFET开关管和双绕组的环形变压器;通过所述USB通信模块输出的PWM信号连到MOSFET开关管G极,MOSFET开关管D
极连接到环形变压器第一绕组,再由环形变压器第二绕组输出电压。
[0024] 参照图1,本发明中:
[0025] 输入信号输入到信号电压比较模块(电压比较器)的输入端,如果信号电平比参考电压高(1.2V),信号电压比较模块(电压比较器)输出高电平,对应数据信号状态为1,否则信号电压比较模块(电压比较器)输出低电平,对应数据信号状态为0。
[0026] 数据信号从信号电压比较模块(电压比较器)输出后加载到信号隔离模块的高速光耦芯片,通过光电信号转换,再发送至USB通信模块的ARM芯片,通ARM芯片内部的USB模块把数据发送到图形显示装置(桌面计算机),用上位机软件把数据以图形曲线呈现出来,显示效果如图2所示。
[0027] 由于信号电压比较模块(电压比较器)要用电压,且要做电气隔离,不能直接从USB模块提供,所以,要用到一个隔离的正激开关电源隔离模块(正激开关电源),采用1:1的环形开关变压器,用ARM芯片输出PWM去驱动MOSFET开关管实现。
[0028] 图形显示装置(桌面计算机上位机软件如图2所示),USB驱动采用免驱的HID自定义设备,即插即用,方便使用,运行系统WINDOWS,开发环境为Visual Studio 2013,图形接口用WINDOWS GDI。
[0029] 为了方便图形显示装置(桌面计算机)安全的与开发系统连接起来,本发明采用了电气隔离通信技术。不用专用的接口电路就能通信,一个普通的IO口就可以,只要加入一段简单的代码,这段代码主要用来发送数据,通用性特别好,就算是资源较差的单片机也能用;实际调试时,要在调试的单片机系统内加入一段代码,用来把数据从单片机系统的某一个IO输出,代码如下:
[0030] /*‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑[0031] 要定义一个IO口来用连接工具接口
[0032] 要定义一个定时器中断,把数据发送代码放到进去
[0033] 因为上位机默认是 125uS
[0034] 如果定时器中断时间不是125uS,记得要修改,
[0035] 然后在上位机上也要设置中断时间
[0036] */
[0037] /*‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑[0038] */
[0039] #define STAT_IO                P0_3   // 数据IO口
[0040] #define DATA_EN             1         // 打印数据使能
[0041] #define BIT_LEN               16       // 数据宽度位数
[0042] #define TX_BYTE_LEN         8         // 传送数据长度
[0043] #define     TXD_INTT       125           // 如果定时器中断时间不是125uS,记得要修改
[0044] #define     TXD_GT                 1250   // 引导码时间 us
[0045] #define     S_TXD_HIG           (TXD_GT/TXD_INTT)
[0046] #define     S_TXD_LOW         (TXD_GT/TXD_INTT)
[0047] #if BIT_LEN == 16
[0048] unsigned int xdata TxBuf[TX_BYTE_LEN]; // 如果不是51核芯片,或者没有 xdata 段,把 xdata 去掉
[0049] unsigned int xdata TxDataBuf;
[0050] #endif
[0051] #if BIT_LEN == 8
[0052] unsigned char xdata TxBuf[TX_BYTE_LEN];
[0053] unsigned char xdata TxDataBuf;
[0054] #endif
[0055] unsigned char xdata SendHiCnt,SendLoCnt;
[0056] unsigned char xdata TxDataPointer;
[0057] unsigned char xdata DataBitCnt;
[0058] // 把要发送的数据载入 TxBuf 数组中,如下面:
[0059] TxBuf[0] = 30;
[0060] TxBuf[1] = 60;
[0061] TxBuf[2] = 80;
[0062] TxBuf[3] = 90;
[0063] TxBuf[4] = 100;
[0064] TxBuf[5] = 130;
[0065] TxBuf[6] = 230;
[0066] TxBuf[7] = 1000;
[0067] TxBuf[8] = 2000;
[0068] TxBuf[9] = 10000;
[0069] /*‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑[0070] 把此代码放到定时器中断服务程序中
[0071] */
[0072] while(DATA_EN)
[0073]     {
[0074]     if(SendLoCnt)
[0075]          {
[0076]          STAT_IO = 0;
[0077]          SendLoCnt‑‑;
[0078]          }
[0079]     else
[0080]          {
[0081]          STAT_IO = 1;
[0082]          if(SendHiCnt)
[0083]                SendHiCnt‑‑;
[0084]          }
[0085]     if(SendHiCnt == 0)
[0086]          {
[0087]          if(TxDataPointer >= TX_BYTE_LEN) // 4Byte = 32Bit
[0088]                {
[0089]                DataBitCnt = 0;
[0090]                TxDataPointer = 0;
[0091]                TxDataBuf = TxBuf[TxDataPointer];
[0092]                SendLoCnt = S_TXD_LOW;
[0093]                SendHiCnt = S_TXD_HIG;
[0094]                break;
[0095]                }
[0096]          if(TxDataBuf & 0x01)
[0097]                SendLoCnt = 2;
[0098]          else
[0099]                SendLoCnt = 1;
[0100]          TxDataBuf >>= 1;
[0101]          DataBitCnt++;
[0102]          if(TxDataBuf & 0x01)
[0103]                SendHiCnt = 2;
[0104]          else
[0105]                SendHiCnt = 1;
[0106]          TxDataBuf >>= 1;
[0107]          DataBitCnt++;
[0108]          if(DataBitCnt >= BIT_LEN)
[0109]                {
[0110]                DataBitCnt = 0;
[0111]                TxDataPointer++;
[0112]                TxDataBuf = TxBuf[TxDataPointer];
[0113]                }
[0114]          }
[0115]     break;
[0116]     }
[0117] 以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本
发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。