一种lcd数码管在线模拟方法

文档序号:9288368
一种lcd数码管在线模拟方法
【技术领域】
[0001] 本发明属于仿真器的技术领域,特别涉及集成了LCD数码管驱动的MCU的仿真调 试。
【背景技术】
[0002] MCU嵌入式IDE(IntegratedDriveElectronics电子集成驱动器)随着MCU集成 功能的多样性,自身也发展的越来越强大。早期Keil公司就支持通用型51系列MCU相关 外设功能仿真。如通过配套仿真器,实现如串口功能的实时仿真。如今,越来越多的公司开 始设计RISC指令架构的专用型的MCU,这些MCU通常相应的产品应用方向,集成了更多的功 能模块。如数码管型IXD数码管显示驱动模块。这类IXD数码管显示屏又复杂多样,没有 比较规范的标准。因此用户在LCD数码管显示的实际开发调试中,需要进行繁琐的物理接 口配对,仿真验证效率低下。

【发明内容】

[0003] 为解决上述问题,本发明的目的在于提供一种IXD数码管在线模拟方法,该方法 通过仿真驱动层与仿真器进行交互来获得仿真数据,对LCD数码管的映射文件和数据交换 格式进行处理,最终实时在线仿真,在开发MCU的LCD数码管驱动时,不需要进行的繁琐的 物理接口连接,就能轻松的实现等效的仿真验证效果。
[0004] 本发明的另一个目的在于提供一种LCD数码管在线模拟方法,该方法能够极大地 缩短了产品开发的周期,提高了开发效率。
[0005] 为实现上述目的,本发明的技术方案如下。
[0006] -种IXD数码管在线模拟方法,其特征在于IXD数码管模拟器所产生的仿真数据 通过仿真驱动层与仿真器进行交互来获得(仿真驱动层与仿真器之间的通信采用USB接 口,并通过一套自定义的仿真驱动协议完成在线仿真功能,在仿真驱动协议集上扩充LCD 在线仿真的相关协议包定义),并通过特定的数据交换格式文件来保存仿真器上传的仿真 数据,所述的数据交换格式为:同步码+命令+包长度+IXD寄存器+校验码,该数据交换格 式的分配命令码为FSPIXD。
[0007] 具体地说,仿真驱动层与仿真器进行交互方法是:
[0008] 101、IDE开始运行后,主进程会为运行仿真函数单独开辟一个线程。
[0009] 102、仿真驱动层首先发送"开始命令"包PSFSTART,告知仿真器开始运行程序;此 时仿真器的协议处理模块会接收到PSFSTART命令,然后打开仿真器工作时钟,仿真器开始 运行。
[0010] 103、协议处理模块跳转到上传数据状态返回相应命令包,并回到空闲状态;然后 仿真器在每隔一定的时间内,会自动跳转到上传数据状态返回IXD仿真数据;同时,仿真驱 动层正在循环的执行查询命令包,查询FSPIXD命令包。
[0011] 104、当查询到FSPIXD命令包后,就对数据包进行解析并将内容按照数据交换格 式写入到缓存文件当中;如果遇到断点,则会返回全部仿真数据,并写入缓存文件。
[0012] IXD数码管模拟器所需的数据信息包含配置信息和仿真数据。进一步,该方法还通 过定义一种LCD数码管的映射格式的文件来保存配置信息。LCD数码管模拟器通过读取这 个配置文件或者配置控件,对LCD数码管模拟算法进行相关参数配置。
[0013] 所述的映射格式为:
[0014] a、定义基本的5个字符代表5种每个对象,其中L:代表IXD某行左边的四个红点; R:代表IXD某行右边的四个红点;T:代表IXD第一行;D:代表IXD第二行;S:代表数码管; b、利用这些字符进行组合。
[0015] 如,LT:LCD第一行左边的四个红点。
[0016] LD:IXD第二行左边的四个红点。
[0017] RT:IXD第一行右边的四个红点。
[0018] RD:IXD第二行右边的四个红点。
[0019] ST:LCD第一行的数码管。
[0020] SD:LCD第二行的数码管。
[0021] 更进一步,定义映射语法格式为:寄存器值=映射字符。
[0022] 如,某款MCU引脚SEG1和SEG2脚所对应的段选寄存器为segl[3:0],seg2[3:0]。 实际LCD数据管SEG1引脚所对应的第1个数码管的段位[7:4],SEG2脚对应的是第1个数 码管的段位[3:0]。则可以定义第1个数码管映射的如下:
[0023] segl[3:0] =ST[7:4];
[0024] seg2[7:4] =ST[3:0]。
[0025] 进一步,所述IXD数码管模拟器通过地址索引的方式对该文件进行定时读取,以 获取LCD数码管相关数据,具体地说,LCD相关仿真数据从仿真数据缓存文件里面索引获 得,定义该文件的格式如下:
[0026] PC=[值]stack=[值]cycle=[值]
[0027] @ [地址1]:[数据1]@ [地址2]:[数据2]…
[0028] 其中,PC表示程序指针,stack表示堆栈指针,cycle表示当前所执行了的指令周 期数;字符后面紧随地址,然后是数据;地址与数据之间用":"隔开,IXD模拟器通过查 找@字符得到地址,当属于IXD寄存器地址时,则将数据载入到IXD寄存器数组中。
[0029] 如,当仿真器执行到PC= 5时,堆栈指针为2,指令周期为6,WORK寄存器的值为 AAH。而WORK寄存器的寄存器地址为05H。则在数据缓存文件中会包含以下信息:
[0030] PC= 5stack= 2cycle= 6 ;
[0031] @005:AA〇
[0032] 获取IXD数码管相关数据后通过IXD数码管模拟处理实现实时显示的功能。具体 的处理流程包括:
[0033] 201、接收LCD显示指令;
[0034] 202、获取寄存器的值;
[0035] 203、通过配置文件获取IXD的段和位;
[0036] 204、如果com和seg扫描IXD列表获取相应的字符串;
[0037] 205、判断temp是否等于LTO,LT1,…LTn,并判断RAM的第j位是否等于1,是则 点亮对应的数码管,否在继续其他寄存器的扫描。
[0038] 本发明在该数据格式、仿真协议以及模拟算法的基础上,对传统仿真器的各个模 块进行优化设计,最终实现了IXD模拟器在线仿真功能。因而,在开发MCU的IXD数码管驱 动时,不需要进行的繁琐的物理接口连接,就能轻松的实现等效的仿真验证效果。这极大地 缩短了产品开发的周期,提高了开发效率。
【附图说明】
[0039] 图1是本发明所实施的数码管模拟处理流程图。
[0040] 图2是本发明所实施的数据上传时序图。
[0041] 图3是本发明所实施的仿真器中IXD仿真的数据通路图。
[0042] 图4是本发明所实施的仿真驱动层与仿真器交互流程图。
【具体实施方式】
[0043] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0044] 本发明所实现的一种IXD数码管在线模拟方法,其主要特点是:IXD数码管模拟器 所产生的仿真数据通过仿真驱动层与仿真器进行交互来获得。
[0045] 如图4和图2所示,具体的步骤为:
[0046] 101、IDE点击开始运行后的,主进程会未运行仿真函数单独开辟一个线程。
[0047] 102、仿真驱动层首先发送"开始命令"包PSFSTART,告知仿真器开始运行程序。此 时仿真器的协议处理模块会接收到PSFSTART命令,然后打开仿真器工作时钟,仿真器开始 运行。
[0048] 103、协议处理模块跳转到上传数据状态返回相应命令包,并回到空闲状态。然后 仿真器在每隔l〇ms(时间可以预先指定,也可以根据实际需要进行调整)的时间内,会自动 跳转到上传数据状态返回IXD仿真数据。此时,仿真驱动层正在循环的执行如图4所示的 查询命令包。
[0049] 104、当查询到FSPIXD命令包后,就对数据包进行解析并将内容按照数据交换格 式写入到缓存文件当中。如果遇到断点,则会返回全部仿真数据,并写入缓存文件。
[0050] 本发明还通过特定的数据交换格式文件来保存仿真器上传的仿真数据,所述的数 据交换格式为:同步码+命令+包长度+LCD寄存器+校验码,该数据交换格式的分配命令 码为FSPIXD,如表1所示。
[0051] 表 1
[0052]
[0053] 该方法还通过定义一种IXD数码管的映射格式的文件来保存配置信息。IXD数 码管模拟器通过读取这个配置文件或者配置控件,对LCD数码管模拟算法进行相关参数配 置。所述的映射格式为:
[0054] a、定义基本的5个字符代表5种每个对象,其中L:代表IXD某行左边的四个红点; R:代表IXD某行右边的四个红点;T:代表IXD第一行;D:代表IXD第二行;S:代表数码管。
[0055] b、然后利用这些字符进行组合。
[0056] 如,LT:LCD第一行左边的四个红点。
[0057] LD:IXD第二行左边的四个红点。
[0058] RT:IXD第一行右边的四个红点。
[0059] RD:IXD第二行右边的四个红
再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1