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

文档序号:9288368阅读:来源:国知局
点。
[0060] ST:LCD第一行的数码管。
[0061] SD:IXD第二行的数码管。
[0062] c、定义映射语法格式为:寄存器值=映射字符。
[0063] 如,某款MCU引脚SEG1和SEG2脚所对应的段选寄存器为segl[3:0],seg2[3:0]。 实际LCD数据管SEG1引脚所对应的第1个数码管的段位[7:4],SEG2脚对应的是第1个数 码管的段位[3:0]。则可以定义第1个数码管映射的如下:
[0064] segl[3:0] =ST[7:4];
[0065] seg2[7:4] =ST[3:0]。
[0066] 同时,对LCD数码管模拟器通过地址索引的方式对该文件进行定时读取,以获取 LCD数码管相关数据,具体地说,LCD相关仿真数据从仿真数据缓存文件里面索引获得,定 义该文件的格式如下:
[0067] PC=[值]stack=[值]cycle=[值]
[0068] @ [地址1]:[数据1] @ [地址2]:[数据2]…
[0069] 其中,PC表示程序指针,stack表示堆栈指针,cycle表示当前所执行了的指令周 期数;字符后面紧随地址,然后是数据;地址与数据之间用":"隔开,IXD模拟器通过查 找@字符得到地址,当属于IXD寄存器地址时,则将数据载入到IXD寄存器数组中。
[0070] 如,当仿真器执行到PC= 5时,堆栈指针为2,指令周期为6,WORK寄存器的值为 AAH。而WORK寄存器的寄存器地址为05H。则在数据缓存文件中会包含以下信息:
[0071] PC= 5stack= 2cycle= 6 ;
[0072] @005:AA〇
[0073] 然后获取IXD数码管相关数据后通过IXD数码管模拟处理实现实时显示的功能。 具体的处理流程如图1所示,包括:
[0074] 201、接收LCD显示指令;
[0075] 202、获取寄存器的值;
[0076] 203、通过配置文件获取IXD的段和位;
[0077] 204、如果com和seg扫描IXD列表获取相应的字符串;
[0078] 205、判断temp是否等于LTO,LT1,…LTn,并判断RAM的第j位是否等于1,是则 点亮对应的数码管,否在继续其他寄存器的扫描。
[0079] 函数在进入界面显示之前,会对对话框初始化,首先进入清空函数(把数码管的 段使能置时数码管的每一个段都不会显示。读fsprb.dat文件获取寄存器的值通过寄存器 值控制IXD模式,同时通过配置文件获取IXD的段comn(j)和位segn⑴;通过comn和segn 扫描LCD的列表获取相应字符串temp;temp[l]是否等于T;temp[0]是否等于L;temp是 否等于LTO;若temp不等于LTO,再判断temp是否等于其它数码管段,如果RAM[i]的第j 位是否为1 ;点亮这一段数目管;扫描完毕,则继续进行其他寄存器进行扫描。
[0080] 仿真数据的获取需要通过PC外围的是USB接口通信进行上传,并采用FT245RL芯 片作为USB接口转换器。
[0081] 在调试运行停住的时刻点,都需要上传仿真数据并刷新IXD数据管。如图2所示, 接收都这些命令后,最终都会跳转到相同的上传数据状态机中。
[0082] 正常运行的工程中,IXD数据管也需要实时刷新。这部分的通信协议可以采用PC 机定时发送读取命令到仿真器的主从模式和仿真器自动定时上传数据的双工模式。在第一 种模式下,由于PC机软件定时器存在误差,而且通信延时本身不可定,因此无法准确的进 行时刻平均切分。在用第二种模式下,仿真器可以在内部设计一个定时器,每次在定时器溢 出时发送仿真数据包。根据人眼分辨率,现定义定时器间隔为l〇ms。每次定时器溢出时,都 会产生控制信号,状态机从空闲状态跳转到上传数据状态。上传完毕后再返回到空闲状态。
[0083] MCU仿真器主要由MCU内核和仿真相关的功能模块组成。如图3所示,为仿真IXD 相关的数据通路。由上述仿真格式可知,仿真协议解析模块需要在接收到相应命令或定时 地将LCD仿真数据上传。LCD仿真数据保存在LCD模块当中。程序运行过程中,每次执行修 改到LCD相关寄存器的指令,都会产生数据总线活动,修改LCD模块内部寄存器。
[0084] 通过总线复用,每当接收到相关调试命令或定时器到溢出时,仿真协议解析模块 都会读取LCD模块内部寄存器,将LCD寄存器数据发送到PC机。
[0085] 总之,本发明在该数据格式、仿真协议以及模拟算法的基础上,对传统仿真器的各 个模块进行优化设计,最终实现了LCD模拟器在线仿真功能。因而,在开发MCU的LCD数码 管驱动时,不需要进行的繁琐的物理接口连接,就能轻松的实现等效的仿真验证效果。这极 大地缩短了产品开发的周期,提高了开发效率。
[0086] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种IXD数码管在线模拟方法,其特征在于IXD数码管模拟器所产生的仿真数据通 过仿真驱动层与仿真器进行交互来获得,仿真驱动层与仿真器之间的通信采用USB接口, 并通过特定的数据交换格式文件来保存仿真器上传的仿真数据,所述的数据交换格式为: 同步码+命令+包长度+IXD寄存器+校验码,该数据交换格式的分配命令码为FSPIXD。2. 如权利要求1所述的LCD数码管在线模拟方法,其特征在于仿真驱动层与仿真器进 行交互方法是: 101、 IDE开始运行后,为运行仿真函数单独开辟一个线程; 102、 仿真驱动层首先发送"开始命令"包PSFSTART,告知仿真器开始运行程序;此时 仿真器的协议处理模块会接收到PSFSTART命令,然后打开仿真器工作时钟,仿真器开始运 行; 103、 协议处理模块跳转到上传数据状态返回相应命令包,并回到空闲状态;然后仿真 器在每隔一定时间内,会自动跳转到上传数据状态返回IXD仿真数据;同时,仿真驱动层正 在循环的执行查询命令包,查询FSPLCD命令包; 104、 当查询到FSPIXD命令包后,就对数据包进行解析并将内容按照数据交换格式写 入到缓存文件当中;如果遇到断点,则会返回全部仿真数据,并写入缓存文件。3. 如权利要求1所述的IXD数码管在线模拟方法,其特征在于IXD数码管模拟器所需 的数据信息包含配置信息和仿真数据,该方法还通过定义一种LCD数码管的映射格式的文 件来保存配置信息,LCD数码管模拟器通过读取这个配置文件或者配置控件,对LCD数码管 模拟算法进行相关参数配置。 所述的映射格式为: a、定义基本的5个字符代表5种每个对象,其中L :代表LCD某行左边的四个红点;R : 代表1XD某行右边的四个红点;T :代表1XD第一行;D :代表1XD第二行;S :代表数码管;b、 利用这些字符进行组合。4. 如权利要求3所述的LCD数码管在线模拟方法,其特征在于更进一步,定义映射语法 格式为:寄存器值=映射字符。5. 如权利要求1所述的IXD数码管在线模拟方法,其特征在于所述IXD数码管模拟器 通过地址索引的方式对该文件进行定时读取,以获取LCD数码管相关数据,具体地说,LCD 相关仿真数据从仿真数据缓存文件里面索引获得,定义该文件的格式如下: PC =[值]stack =[值]cycle =[值] @[地址1]:[数据1]@[地址2]:[数据2]… 其中,PC表示程序指针,stack表示堆栈指针,cycle表示当前所执行了的指令周期数; 字符后面紧随地址,然后是数据;地址与数据之间用":"隔开,IXD模拟器通过查找@字 符得到地址,当属于IXD寄存器地址时,则将数据载入到IXD寄存器数组中。6. 如权利要求5所述的LCD数码管在线模拟方法,其特征在于获取LCD数码管相关数 据后通过IXD数码管模拟处理实现实时显示的功能,处理流程包括: 101、 接收IXD显示指令; 102、 获取寄存器的值; 103、 通过配置文件获取IXD的段和位; 104、 如果conn和segn扫描IXD列表获取相应的字符串; 105、判断temp是否等于LTO, LT1,…LTn,并判断RAM的第j位是否等于1,是则点亮 对应的数码管,否在继续其他寄存器的扫描。
【专利摘要】本发明公开了一种LCD数码管在线模拟方法,LCD数码管模拟器所产生的仿真数据通过仿真驱动层与仿真器进行交互来获得,仿真驱动层与仿真器之间的通信采用USB接口,并通过特定的数据交换格式文件来保存仿真器上传的仿真数据,所述的数据交换格式为:同步码+命令+包长度+LCD寄存器+校验码,该数据交换格式的分配命令码为FSPLCD。本发明在该数据格式、仿真协议以及模拟算法的基础上,对传统仿真器的各个模块进行优化设计,最终实现了LCD模拟器在线仿真功能。因而,在开发MCU的LCD数码管驱动时,不需要进行的繁琐的物理接口连接,就能轻松的实现等效的仿真验证效果。这极大地缩短了产品开发的周期,提高了开发效率。
【IPC分类】G06F11/26
【公开号】CN105005522
【申请号】CN201510385970
【发明人】周乾江, 裴远红, 龙宣佑, 齐凡
【申请人】深圳市芯海科技有限公司
【公开日】2015年10月28日
【申请日】2015年6月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1