一种51单片机虚拟中断控制器及实现方法技术

技术编号:24682377 阅读:116 留言:0更新日期:2020-06-27 07:43
本发明专利技术提供了一种51单片机虚拟中断控制器及实现方法,该51单片机虚拟中断控制器包括虚拟内核、中断控制器模块,所述虚拟内核由verilog语言代码到systemc的模型转换,实现不具备中断功能的systemc的虚拟内核;所述虚拟内核中添加所述中断控制器模块,实现带中断功能的51单片机虚拟内核。本发明专利技术的有益效果是:本发明专利技术实现的51单片机虚拟中断控制器与硬件51单片机开发板上运行的效果一致,达到了预期的效果,可以为51单片机开发者在无实物51开发板的情况下,在本发明专利技术实现的51单片机虚拟中断控制器上进行开发与调试。

A virtual interrupt controller of 51 single chip microcomputer and its implementation

【技术实现步骤摘要】
一种51单片机虚拟中断控制器及实现方法
本专利技术涉及电子
,尤其涉及一种51单片机虚拟中断控制器及实现方法。
技术介绍
51单片机是一款古老而经典的产品,有着广泛应用和重要影响。如今在很多高校中,51单片机仍旧是学习简单mcu的主流课程。虽然51单片机的成本不高,但是人手一块开发板还是比较浪费资源的。而当前,除了集成的IDE像收费的keil之类,并无一个可以免费使用的中断调试器。
技术实现思路
本专利技术提供了一种51单片机虚拟中断控制器,包括虚拟内核、中断控制器模块,所述虚拟内核由verilog语言代码到systemc的模型转换,实现不具备中断功能的systemc的虚拟内核;所述虚拟内核中添加所述中断控制器模块,实现带中断功能的51单片机虚拟内核。作为本专利技术的进一步改进,该51单片机虚拟中断控制器还包括中断控制器模块systemc的接口,所述中断控制器模块systemc的接口是指所述中断控制器模块与虚拟内核的接口,通过所述接口可以获知虚拟内核的状态信息,从而判断中断是否使能、是否可以触发、是否已经执行。本专利技术还公开了一种实现51单片机虚拟中断控制器的方法,包括如下步骤:第一步骤:构建不具备中断功能的systemc的虚拟内核;第二步骤:在虚拟内核中添加中断控制器模块,实现带中断功能的51单片机虚拟内核。本专利技术的有益效果是:本专利技术实现的51单片机虚拟中断控制器与硬件51单片机开发板上运行的效果一致,达到了预期的效果,可以为51单片机开发者在无实物51开发板的情况下,在本专利技术实现的51单片机虚拟中断控制器上进行开发与调试。附图说明图1是实现步骤示意框图;图2是51虚拟内核的中断触发方式示意图;图3是8051中断控制器模块的结构图;图4是8051虚拟内核与51中断控制器模块的信号连接图;图5是8051中断控制器的验证方法。具体实施方式本专利技术公开了一种实现51单片机虚拟中断控制器的方法,也可以称为一种verilog2systemc实现51单片机虚拟中断控制器的方法。本着从网络虚拟化的优势,不受硬件条件的影响,完成了一个verilog2systemc实现51单片机虚拟中断控制器的方法。本方法预期达到的效果,就是同一份带中断的代码既能在实物51单片机上运行验证中断功能,也能在51虚拟验证平台上运行验证中断功能,并且两者的运行结果一致且均正确。本专利技术与现有技术的比对,如下表1所示:表1实现步骤:1、verilog实现的51CPU;2、verilog实现的51CPU转换成systemC的虚拟内核;3、systemC的虚拟内核中添加中断控制器模块,实现带中断功能的51单片机虚拟内核;4、验证。实现步骤示意框图如图1所示。本方法实现的平台,优势主要是开源,可无限复用且不消耗任何硬件材料,可以替代实际硬件平台的效果,用在教学平台上是非常合适的。通过本专利技术,可以模拟验证硬件51单片机在实际条件下的各个细节和功能。通过本次开发的验证,可以实现仿真带中断的51单片机虚拟验证平台。在Linux环境下,安装systemc-2.3.2,打开Linux终端,make执行编写好的makefile文件,即可生成编译通过,完成Verilog转systemc实现51单片机的模拟核,此部分只有51单片机的基本功能,可以验证无中断裸机代码的正确性。中断部分没有实现,需要我们手动在systemc的工程中去添加代码实现51单片机的中断控制器。基于systemc的建模思想,创建一个实现中断控制器的类来实现中断控制器模块。51单片机中断相关的内容简介:创建类之前,我们还是需要了解以下51单片机的中断相关内容,如表2所示。表2由表2所示,51单片机有5个中断源,2个优先级,可以实现二级中断嵌套。中断向量是指中断跳转的地址,当中断触发时就会跳转到相应的地址去执行中断服务函数,实现中断功能。中断优先级默认顺序是表2中所表示的顺序,但是51有2个优先级,因此可以实现二级中断嵌套,优先级的设置与接下来介绍的中断优先级寄存器有关。接下来我们看一下中断使能寄存器描述,如表3所示。表3-51单片机中断允许寄存器中断允许寄存器IE是控制中断使能还是禁止的,1代表使能,0代表禁止,如果要使能某个中断需要把相应的位置一,并且需要把总中断打开,这样才能在中断事件触发时,实现相应的中断功能。一定要记得使能总中断,否则中断是不会触发的。设置此寄存器并不会实现中断嵌套,此时使用的还是中断默认查询顺序,即中断优先级由高到低依次为:外部中断0,定时器0,外部中断1,定时器1,串口中断。如果要设定某个中断的优先级最高,实现中断嵌套,则需要设置接下来介绍的中断优先级寄存器。中断优先级寄存器如表4所示:表4-51单片机中断优先级寄存器中断优先级寄存器IP是控制中断优先级的,设置某一位为可以实现该位对应的中断优先级为最高,实现中断嵌套。要实现中断嵌套控制器,我们需要根据这些位的设置来做出相应的动作来执行对应中断服务程序,这样才能与实际的51单片机中断执行顺序一致。了解51单片机的中断系统后,还要需要知悉现阶段51虚拟内核的中断是何如进行的。中断控制器模块systemc的接口:介绍51单片机虚拟内核执行中断的相关信息之前,先介绍下中断控制器模块systemc的接口。中断控制器模块systemc的接口是指中断控制器模块与51模拟核的接口,通过这些接口可以获知51虚拟核的状态信息,从而判断中断是否使能,是否可以触发,是否已经执行等,如表5所示。表5-中断控制器模块systemc的接口具体的sc_in的表示51的模拟内核输出到中断控制器模块,sc_out表示中断控制器模块输出到51的模拟内核。51虚拟内核的中断触发时序介绍:编写51单片机中断控制器前,需要介绍一下51虚拟内核的中断是如何触发实现的。图2中的时序说明了,51虚拟内核的中断触发方式。具体描述如下,当51虚拟内核next_flag信号出现一个由低到高的的方波时,说明此时模拟核是适合接收一个中断申请的,那么此时中断控制器模块需要做的就是:在下一个时钟周期,把inter_falg信号置为高,保存当前的PC指针保存到inter_addr中,同时在这个时钟周期把inter_cmd的赋值为0x12,在接下来的两个时钟周期把中断向量入口地址,依次赋值给inter_cmd,最后在接下来的一个时钟周期把inter_flag拉低。以串口为例,在把inter_cmd赋值为0x12后,在接下来的一个时钟周期把0赋值给inter_cmd,然后在接下来的一个时钟周期把0x23赋值给inter_cmd(此三个时钟周期是是不能被打断的),最后在接下来的一个时钟周期把inter_flag拉低,至此就可以触发一个串口中断。通过sc_in和sc_本文档来自技高网...

【技术保护点】
1.一种51单片机虚拟中断控制器,其特征在于,包括虚拟内核、中断控制器模块,所述虚拟内核由verilog语言代码到systemc的模型转换,实现不具备中断功能的systemc的虚拟内核;所述虚拟内核中添加所述中断控制器模块,实现带中断功能的51单片机虚拟内核。/n

【技术特征摘要】
1.一种51单片机虚拟中断控制器,其特征在于,包括虚拟内核、中断控制器模块,所述虚拟内核由verilog语言代码到systemc的模型转换,实现不具备中断功能的systemc的虚拟内核;所述虚拟内核中添加所述中断控制器模块,实现带中断功能的51单片机虚拟内核。


2.根据权利要求1所述的51单片机虚拟中断控制器,其特征在于,该51单片机虚拟中断控制器还包括中断控制器模块systemc的接口,所述中断控制器模块systemc的接口是指所述中断控制器模块与虚拟内核的接口,通过所述接口可以获知虚拟内核的状态信息,从而判断中断是否使能、是否可以触发、是否已经执行。


3.根据权利要求1所述的51单片机虚拟中断控制器,其特征在于,所述中断控制器模块包括中断触发查询、中断嵌套处理、中断申请、中断状态记录和中断标志管理,中断控制器模块在每个时钟周期会进行中断触发查询,查看是否存在触发中断的必要的条件,在满足中断触发的条件下,会进行中断嵌套的处理,具体行为是查看当前中断以及是否存在比当前中断优先级更高的中断,如果有则需要进行中断嵌套处理,否则,可以准备向虚拟内核发送中断请求;中断嵌套处理之后,就可以真正的向虚拟内核发送中断请求了,发送中断请求后记录中断状态,中断状态可能有不允许申请、待申请、已申请、待执行、已执行;中断状态记录之后,需要做一个中断标志管理,用以管理各个中断的标志。


4.根据权利要求3所述的51单片机虚拟中断控制器,其特征在于,所述中断控制器模块设有接口函数,通过所述接口函数实现了对51单片机中断的嵌套。


5.根据权利要求4所述的51单片机虚拟中断控制器,其特征在于,所述接口函数如下表6所示:






表6。


6.根据权利要求5所述的51单片机虚拟中断控制器,其特征在于,在所述表6中,其中*_requst_res函数实现查询相应的中断是否具备触发的必要条件,当有比此中断优先级更高的中断请求时,是不具备触发本中断请求的,只有所有比此中断优先级高的中断全部执行完才具备本中断申请的必要条件,对应于中断控制器模块中的中断触发查询部分;
int_ctl_deal函数是对中断嵌套的处理,具体就是查询是否有更高的优先级中断,如果有则需要进行中断嵌套处理,如果没有则准备进行中断申请,对应于中断控制器模块中的中断嵌套处理部分;
*_int_deal函数是进行中断请求的实现函数,具体功能是实现时序逻辑,对应于中断控制器模块中的中断申请部分;
*_int_flag_clear函数是清除相应中断的标志位,由于虚拟内核每执行完一...

【专利技术属性】
技术研发人员:陶永超黄波吴翔虎
申请(专利权)人:深圳航天科技创新研究院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1