基于UART的面向计算机系统实践教学的程序在线下载系统和方法与流程

文档序号:21542448发布日期:2020-07-17 17:46阅读:145来源:国知局
基于UART的面向计算机系统实践教学的程序在线下载系统和方法与流程

本发明适用于计算机系统实践教学系列课程的汇编程序实验,属于计算机教学实验仪器技术领域,尤其涉及基于uart的面向计算机系统实践教学的程序在线下载系统和方法。



背景技术:

目前计算机系统实践教学实验系统和方法主要分为两类:一类依靠计算机软件对真实的硬件实验平台进行模拟和仿真,另一类则让实验参与者到实验室中使用真实的硬件实验平台进行实验。与软件模拟仿真相比,使用真实硬件实验平台具有反馈及时、体验真切、效果优良的优势。特别地,fpga由于具有可重构、灵活性高等优点,近年来在计算机系统实践教学当中崭露头角。

鉴于fpga的优点,目前已有一系列的计算机系统实践教学课程在基于fpga的硬件实验平台上开展开来,如数字电路课程实验、计算机组成原理课程设计、微型机接口技术课程实验等。其中,部分课程实验或课程设计要求实验参与者在基于fpga实现的cpu上进行汇编程序设计。实验参与者在使用汇编语言编程时,无论cpu设计是否被修改,都需要将汇编程序连同整个cpu设计在ide中进行综合、实现并生成比特流文件,整个过程耗时严重,实验效率低下。因此,急需解决“计算机系统实验教学课程中,程序无法在线下载”的问题。



技术实现要素:

针对现有技术中存在的问题,本发明提供基于uart的面向计算机系统实践教学的程序在线下载系统和方法,能够将用户程序机器码转换为特定格式的ascii字符流,并在串口调试助手中将ascii字符流通过程序下载ip核下载到cpu的程序rom和数据ram中,实现程序的在线下载。

为达到上述目的,本发明提供基于uart的面向计算机系统实践教学的程序在线下载系统,包括汇编器、coe翻译器、uartcoe工具、串口调试助手以及硬件实验平台五个组成部分。

汇编器根据cpu的指令集架构,将用户编写的.asm汇编程序汇编形成可执行文件。

coe翻译器读取并解析可执行文件,提取可执行文件中的代码段和数据段,并将其转换为.coe文件。所述的.coe文件为xilinx公司设计的用于初始化blockram存储器的具有特定格式的文件。

uartcoe工具读取并解析.coe文件,生成ascii字符流,形成适于下载的具有特定格式的.txt文件。

串口调试工具为支持十六进制编码下载ascii字符流的任意第三方工具。

硬件实验平台采用以xilinxartix-7系列fpga为主芯片的低功耗fpga开发板卡,该硬件实验平台还包含存储芯片和uart、拨码开关、led等基本外设部件。

基于uart的面向计算机系统实践教学的程序在线下载方法,包括如下步骤:

(1)用户根据cpu的指令集架构,使用相应的汇编器,将所编写的.asm汇编程序汇编形成可执行文件;

(2)coe翻译器将可执行文件翻译成遵循.coe文件格式的机器码;

(3)uartcoe工具统计.coe机器码的字节数,并将该机器码转换为适于uart下载的.txt文本形式的ascii字符流;

(4)串口调试助手以十六进制编码读取ascii字符流,并通过uart接口,将其下载到位于硬件实验平台上的cpu;

(5)程序下载ip核解析ascii字符流,将ascii字符流中的代码段写入到cpu的程序rom,将ascii字符流中的数据段写入到cpu的数据ram;

(6)程序下载完毕后,程序下载ip核将程序下载完成信号设置为有效,并通过uart串行通信接口,在串口调试助手中向用户返回程序下载成功的消息;

(7)用户通过复位按钮,复位cpu,所下载的程序开始运行。

其中,所述的硬件实验平台采用以xilinxartix-7系列fpga为主芯片的低功耗fpga开发板卡,该硬件实验平台还包含存储芯片和uart、拨码开关、led等基本外设部件。

所述的汇编器和串口调试助手由用户或第三方人员设计与实现;所述的汇编器读取cpu的指令集格式表,对汇编程序的各条汇编指令进行解析和翻译,生成二进制机器码,并按照可执行文件的格式,将机器码写入文件,形成可执行文件;所述的串口调试助手以用户设定的串口参数,调用系统库函数打开uart串口,并调用系统库函数,将用户的输入数据通过uart串口发送给下位机,并调用系统库函数,通过uart串口接收下位机信息,并将其显示在软件界面上。

所述的coe翻译器按照步骤(1)中生成的可执行文件的格式,解析可执行文件的各个格式字段,从可执行文件中提取出程序的程序段代码数据和数据段代码数据,并根据cpu的特性以及.coe文件的格式,将所提取的程序段代码数据和数据段代码程序写入到.coe文件的特定地址。

所述的uartcoe工具按照步骤(2)中生成的.coe文件的格式,解析.coe文件,统计.coe文件的字节数,形成数据包头部;所述的uartcoe工具读取.coe文件的内容,形成数据包的有效数据载荷,最终将所形成的数据包写入到.txt文件中。

在步骤(5)中,所述的程序下载ip核以封装好的ip核的形式集成到整个电路当中,通过配置,可支持16位及32位数据宽度的blockram存储器;该ip核包含协议解析模块、数据解析模块、blockram接口模块、控制器模块和数据发送模块;所述的协议解析模块对uart串行通信协议进行解析,提取uart串行传输信号中的有效数据;所述的数据解析模块对协议解析模块提取出的ascii字符流进行解析,从ascii字符流中提取出控制信息和数据内容;所述的blockram接口模块按照blockram接口协议,将ascii字符流中的数据内容写入到cpu的程序rom和数据ram;所述的控制器模块实时监控协议解析模块和数据解析模块,当程序在线下载完成后,置位下载完成信号;所述的数据发送模块在检测到下载完成信号有效后,将消息缓存区中的消息发送给串口调试助手。

本发明的基于uart的面向计算机系统实践教学的程序在线下载系统和方法,其特征在于:适用于具有以下特征的计算机系统:

(1)在基于fpga的硬件实验平台(或开发板)上,使用fpga可编程逻辑资源,实现自行设计的cpu;

(2)基于fpga内部的blockram(或blockmemory)存储器实现cpu的程序rom或数据ram。

相对于现有技术,本发明的优点如下:1、本发明能够将程序机器码转换成可下载的ascii字符流,以便使用第三方串口调试助手实现程序下载,提高易用性;2、本发明为基于fpga自行设计cpu实现了程序在线下载系统和方法,大幅提高计算机系统实践教学实验效率;3、移植时,与基于jtag的程序下载方案相比,本发明的程序在线下载系统和方法仅需对cpu的存储器接口做少许修改,更简单易用,可移植性更强。

附图说明

图1是本发明的基于uart的程序在线下载系统和方法的工作机制示意图及硬件实验平台结构图。

图2是本发明的程序下载ip核的模块结构图。

图3是使用本发明的基于uart的程序在线下载方法的cpu状态转换图。

具体实施方式

为了加深对本发明的认识和理解,下面结合实施例对本发明做进一步的详细说明,本实施例对本发明不构成限定。

实施例1:如图1所示,本发明所述的基于uart的面向计算机系统实践教学的程序在线下载系统,包括汇编器、coe翻译器、uartcoe工具、串口调试助手以及硬件实验平台五个组成部分,汇编器根据cpu的指令集架构,将用户编写的.asm汇编程序汇编形成可执行文件,coe翻译器读取并解析汇编程序生成的可执行文件,提取可执行文件中的代码段和数据段,并将代码段和数据段经过整合,形成特定格式的.coe文件;所述的.coe文件为xilinx公司设计的用于初始化blockram存储器的具有特定格式的文件。uartcoe工具读取并解析.coe文件,为.coe文件的数据添加控制信息头部,生成ascii字符流,形成适于下载的具有特定格式的.txt文件。串口调试工具为支持十六进制编码下载ascii字符流的任意第三方工具。

本发明的硬件实验平台采用以xilinxartix-7系列fpga为主芯片的低功耗fpga开发板卡。硬件实验平台包括fpga主芯片、片上ddr存储芯片以及常用接口部件。xilinxartix-7系列fpga是xilinx推出的在单个成本优化的fpga中提供最高性能功耗比结构、收发器线速、dsp处理能力以及ams集成的器件。xilinxartix-7系列fpga包含了microblaze软处理器和1066mb/sddr3技术支持,能够为各类成本功耗敏感型应用提供最大价值。片上ddr存储芯片可作为位于fpga中的cpu的内存物理介质。拨码开关、按钮、led、7段数码管等常用接口部件向实验参与者提供与fpga开发板进行交互的基本途径。

使用上述系统进行试验的方法,包括以下步骤:

(1)用户根据cpu的指令集架构,使用相应的汇编器,将所编写的.asm汇编程序汇编形成可执行文件;

(2)coe翻译器将可执行文件翻译成遵循.coe文件格式的机器码;

(3)uartcoe工具统计.coe机器码的字节数,并将该机器码转换为适于uart下载的.txt文本形式的ascii字符流;

(4)串口调试助手以十六进制编码读取ascii字符流,并通过uart接口,将其下载到位于硬件实验平台上的cpu;

(5)程序下载ip核解析ascii字符流,将ascii字符流中的代码段写入到cpu的程序rom,将ascii字符流中的数据段写入到cpu的数据ram;

(6)程序下载完毕后,程序下载ip核将程序下载完成信号设置为有效,并通过uart串行通信接口,在串口调试助手中向用户返回程序下载成功的消息;

(7)用户通过复位按钮,复位cpu,所下载的程序开始运行。

汇编器和串口调试助手由用户或第三方人员设计与实现;所述的汇编器读取cpu的指令集格式表,对汇编程序的各条汇编指令进行解析和翻译,生成二进制机器码,并按照可执行文件的格式,将机器码写入文件,形成可执行文件;所述的串口调试助手以用户设定的串口参数,调用系统库函数打开uart串口,并调用系统库函数,将用户的输入数据通过uart串口发送给下位机,并调用系统库函数,通过uart串口接收下位机信息,并将其显示在软件界面上。

coe翻译器按照步骤(1)中生成的可执行文件的格式,解析可执行文件的各个格式字段,从可执行文件中提取出程序的程序段代码数据和数据段代码数据,并根据cpu的特性以及.coe文件的格式,将所提取的程序段代码数据和数据段代码程序写入到.coe文件的特定地址。

uartcoe工具按照步骤(2)中生成的.coe文件的格式,解析.coe文件,统计.coe文件的字节数,形成数据包头部;所述的uartcoe工具读取.coe文件的内容,形成数据包的有效数据载荷,最终将所形成的数据包写入到.txt文件中。

在步骤(5)中所述的程序下载ip核以封装好的ip核的形式集成到整个电路当中,通过配置,可支持16位及32位数据宽度的blockram存储器;该ip核接收频率为10mhz的时钟信号作为驱动。由于10mhz的时钟信号频率远高于uart同步信号的频率,因此在发送或接收一个字符之后,需要等待若干个时钟周期才能进行下一个字符的发送或接收。在本实施例中,波特率和等待时钟周期数的乘积需等于97920000。例如,若波特率设置为128000bps,则在发送或接收一个字符后,需要等待765个时钟周期才能进行下一个字符的发送或接收。

如图2所示,发明人自行设计的的程序下载ip核包含协议解析模块、数据解析模块、blockram接口模块、控制器模块和数据发送模块。所述的协议解析模块通过uart信号的边缘跳变实现信号同步,并对从uartrx通道接收的uart串行数据进行串并转换,从而实现对uart串行通信协议的解析,提取uart串行传输信号中的有效数据;所述的数据解析模块对协议解析模块提取出的ascii字符流进行解析,从ascii字符流中提取出控制信息和数据内容,并根据所提取的控制信息,控制ascii字符流数据的发送过程;所述的blockram接口模块按照blockram接口协议,将ascii字符流中的数据内容写入到cpu的程序rom和数据ram;所述的控制器模块实时监控协议解析模块和数据解析模块,当程序在线下载完成后,置位下载完成信号;所述的数据发送模块在检测到下载完成信号有效后,将消息缓存区中的消息通过uarttx通道发送给串口调试助手。

如图3所示,在本实施例中,硬件实验平台中的cpu启动后处于复位状态。当实验参与者按下复位按钮后,复位信号有效,此时cpu将进入运行状态。此时,若程序下载信号有效,cpu将从运行状态转换为编程状态。当程序在线下载过程结束后,cpu将重新回到复位状态,等待复位信号被置位。当实验参与者再次按下复位按钮后,cpu将进入运行状态。此时,cpu将运行新的程序。

以上所述的实施例仅对本发明的优选实施方式进行描述,并非对本发明的构思和范围进行限定。通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1