9224525

当前课程知识点:现代电子系统设计 >  第九章 SOPC系统设计 >  9.6 Nios II 软件设计 >  9.6 Nios II 软件设计

返回《现代电子系统设计》慕课在线视频课程列表

9.6 Nios II 软件设计在线视频

下一节:第九章 讨论题

返回《现代电子系统设计》慕课在线视频列表

9.6 Nios II 软件设计课程教案、知识点、字幕

下面我们讲第九章第六节

Nios II软件设计

首先来看一下Nios II的软件结构

那么我们在第五章

了解了微处理器它的软件结构

那Nios II的软件结构呢

实际上跟它也是一样的

如果我们编写的应用程序不是很复杂

不需要操作系统的话

那么这时候它的软件结构

就是在硬件的基础上是这个样子

首先有一个硬件抽象层

然后上面再是应用程序

那么这时候对这种结构的话呢

这个硬件抽象层

实际上就是一个设备驱动

就是针对不同设备 有一些驱动的接口

那由于一般的微处理器

它的设备的驱动

是由这个微处理器的厂商提供

一般是这样子

而对于FPGA里头的

这个Nios II微处理器呢

那么它的外接的设备的接口

可能没有提供

那这时候呢 我们就需要自己来设计

设备的驱动

那怎么样来设计一个设备的驱动呢

我们以一个LCD的驱动为例

来看它怎么设计

这个LCD呢 我们采用一个LCD1602

它是一个字符型的显示器

然后它可以显示两行的字符

每行显示16个字符

在它的左上角 有一些控制信号引脚

那么我们画出它的示意图来

在它的左上角 有一些控制信号

那我们要控制这个LCD的话

实际上就是通过这些信号

去进行控制的

下面我们来看一下它的设计的流程

首先呢 我们要通过verilog语言

编写一个LCD的驱动的模块

叫LCD Driver.v

这个模块的功能呢

主要是实现对LCD的控制

也就是实现这个命令和数据的写入

以及判断它是否在忙的状态

然后这个模块编辑好了以后呢

因为LCD是需要通过Avalone总线

来控制的

这时候我们还要给它

添加Avalone总线的这个接口

这时候我们就可以

再编写一个顶层的模块

叫LCD Module

那这个模块呢

在实现LCD Driver的这个实例化

然后再给它添加Avalone总线的接口

就可以了

那这样的话就可以把这个设备

添加到SOPC系统里头去

所以接下来

我们在Quartus的Qsys下面

完成这个SOPC的设计

那我们就需要添加LCD的这个模块

实际上就是要把这两个文件

也就是子模块LCD Driver

和顶层模块LCD Module

这两个文件呢 添加到Qsys下面

然后设计一个自定义的LCD模块

然后再组成一个SOPC系统

最后把这个SOPC系统的文件

下载到FPGA中去

接下来呢 就需要通过软件

来实现对LCD的控制

那首先呢 要实现对LCD的控制呢

我们可以通过一些驱动函数去实现

那这时候我们要设计这个函数

那也就是说要设计函数

来实现对LCD的一些操作

比方说对它复位

比方说清除它的写入的信息

比如说要在指定的位置

去显示一个字符的信息等

那这样编写完这些函数以后呢

我们就把它放到一个文件

叫LCD1602_Qsys.c这个文件里头去

也就是后缀为.c的这个文件里

然后我们再从这个文件里头

把编写的这些函数的名字抽取出来

然后放在一个.h文件里头

进行函数的声明

最后我们在Eclipse里头

进行软件开发的时候

我们编写C语言的main函数

然后调用这些刚才的LCD的控制函数

就可以对LCD进行控制和显示了

这是它的整个的开发流程

接下来我们再说一下它的详细的流程

首先设计这个LCD_Driver.v这个模块

LCD它有一些控制信号

首先第一个控制信号就是寄存器选择

RS信号 那么这个信号呢 是告诉LCD

接下来输入的这个信息是控制信息

还是要显示的数据信息

第二个信号是读写信号RW

第三个信号是使能信号E

也就是Enable

然后接下来的八个信号

是数据信号D0到D7

我们在设计控制模块的时候呢

就是要实现这些控制信号

对LCD的控制

所以这个模块首先它的右边

会有刚才说的这些控制的信息

比如说RS RW 使能信号EN

还有数据DATA

另外呢 我们还要给顶层模块

提供一个调用的接口

也就是实例化的这个接口

这个接口呢 有一些信息

比如说iCLK 时钟信息

还有就是复位信息

另外还有输入的iRS信息

还有就是启动iSTart信息

另外还有数据信息

以及这个LCD是否在忙的信息

oDone信息

其实从这些信号的前面

有的有一个i的字母 是表示输入信号

有一个o的字母呢 表示是输出的信号

这是LCD Driver模块的设计

接下来就可以设计这个顶层模块了

顶层模块

主要是要给这个LCD的模块呢

添加一个Avalon接口

那么这个顶层模块呢

可以是这样子来设计

它有三组信息 第一组信息呢

就是一个输入的时钟和复位的信息

前面添加了三个字母CSI

表示是输入信息

然后第二组信息呢 是输出的信息

也就是这个顶层模块

去控制LCD子模块的输出的信息

也就是刚才的这个LCD控制的那些信息

最后第三组信息

就是这个Avalon总线接口的信息

那这个Avalon接口呢

采用的是Avalon-MM接口

而且是一个从接口

那么它主要有以下几个信号

第一个是片选信号 第二个是地址信号

第三个是读信号 第四个是读的数据

第五个是写信号 第六个是写的数据

那么这个Avalon从接口是通过这个地址

来对它进行数据的读和写

从而来控制这个LCD模块

那这时候呢

这个LCD它的模块就设计完成了

接下来在Qsys里头

我们要添加LCD的元件

然后设计一个SOPC的系统

这时候呢 是在这个Qsys的界面上面

点击Catalog

选择它的New Component来实现的

那我们来看一下这个界面

在左上角的IP Catalog里头

点击New Component

就弹出这个中间的对话框

然后在这个对话框里头呢

就可以添加新的元件LCD了

在添加的时候有四个选项卡

要进行信息填写

那下面我们针对这四个选项卡

来逐一地进行说明

第一个选项卡呢

就是要选择这个元件的类型

实际上就是要修改这个元件的名称

修改成你想要的这个LCD的名称

第二个就是要添加

刚才设计的那两个.v文件

就是一个子模块 LCD_Driver

和这个顶层模块LCD_Module

这两个文件

之后呢 就要指明哪个文件是顶层文件

那这时候呢

应该选择LCD_Module.v这个文件

接下来就对这两个文件进行编译

实际上是

然后它是叫分析综合的文件

那编译以后两个文件没有问题以后

那编译就成功了

接下来呢

还需要对它的信号和接口进行检查

主要是要检查clock和reset

这两个信号是否正确

最后就可以把LCD这个元件

添加到SOPC系统里头

然后每一个元件都会有一个地址段

这个地址段有一个起始的基地址

和一个结束的地址

最后我们就可以产生这个SOPC系统了

下面我们来看一下

添加LCD以后的系统的内部结构

那我们可以看到 这个LCD添加进去了

然后在它的右边给它分配了基地址

和结束的地址

那么添加完LCD硬件以后呢

然后产生这个SOPC系统

最后我们要在Quartus里头

对这个SOPC系统进行实例化

实例化的时候呢

我们看到这个红框中这一段代码

就是对LCD进行实例化

底下有两个信号是没有用到的信号

大家可以不用管它

实例化以后 然后最后产生SOPC系统

下载到FPGA中

我们就可以进行软件编程了

在软件编程的时候呢

我们主要就是通过C语言

去对LCD进行控制

那这时候呢

我们可以通过LCD的一些函数去进行控制

所以我们接下来第一步呢

就可以编辑一些子函数

把这些子函数

放到一个后缀是.c的文件里头

这些函数包括复位 清除显示的信息

以及在指定位置显示字符等函数

接下来呢 我们就要把这些函数的名字

放到一个.h的头文件里头去

定义这个头文件

然后我们就可以把这个头文件

再包含在这个main函数中

然后在main函数中

就可以调用这个子函数来控制LCD了

下面我们看一下这个main函数

在main函数中

我们包含了后缀是.h的这个头文件

另外 我们通过两行代码

然后在它的显示器的第一行和第二行

分别显示信息

最后 这个结果是显示的信息

感谢您的观看

现代电子系统设计课程列表:

课程简介

-课程简介

第一章 第一章 现代电子系统概述

-1.1 电子系统简介

--1.1 电子系统简介

-1.2 现代电子系统举例

--1.2 现代电子系统举例

-1.3 现代电子系统的组成

--1.3 现代电子系统的组成

-1.4 现代电子系统设计方法

--1.4 现代电子系统设计方法

-第一章 作业

-第一章 讨论题

第二章 传感器和执行器

-2.1 传感器定义

--2.1 传感器定义

-2.2 传感器的分类和性能指标

--2.2 传感器的分类和性能指标

-2.3 常用传感器介绍

-- 2.3.1 常用传感器介绍(1)

-- 2.3.2 常用传感器介绍(2)

--2.3.3 常用传感器介绍(3)

-2.4 常用执行器介绍

--2.4 常用执行器介绍

-第二章 作业

-第二章 讨论题

第三章 模拟电路和模数混合电路

-3.1 模拟信号处理简介

--3.1 模拟信号处理简介

-3.2 信号放大和隔离电路

--3.2 信号放大和隔离电路

-3.3 滤波电路

--3.3 滤波电路

-3.4 运算电路(一)

--3.4 运算电路(一)

-3.5 运算电路(二)

--3.5 运算电路(二)

-3.6 电压比较器

--3.6 电压比较器

-3.7 功率放大电路

--3.7 功率放大电路

-3.8 模-数转换器

--3.8 模-数转换器

-3.9 数-模转换器

--3.9 数-模转换器

-第三章 作业

-第三章 讨论题

第四章 直流电源

-4.1 直流电源简介

--4.1 直流电源简介

-4.2 线性稳压电源

--4.2 线性稳压电源

-4.3 开关稳压电源

--4.3 开关稳压电源

-第四章 作业

-第四章 讨论题

第五章 微处理器与片上系统

-5.1 微处理器简介

--5.1 微处理器简介

-5.2 微处理器和片上系统的发展历程

--5.2 微处理器和片上系统的发展历程

-5.3 微处理器分类

--5.3 微处理器分类

-5.4 微处理器和片上系统举例

--5.4 微处理器和片上系统举例

-5.5 微处理器和片上系统硬件结构

--5.5 微处理器和片上系统硬件结构

-5.6 外围接口和设备

--5.6.1 外围接口和设备简介

--5.6.2 串行接口UART

-- 5.6.3 串行总线SPI

--5.6.4 串行总线 I2C

--5.6.5 串行总线USB

--5.6.6 网络接口CAN

--5.6.7 无线网络接口蓝牙

-5.7 嵌入式软件开发方法

--5.7 嵌入式软件开发方法

-5.8 嵌入式操作系统

-- 5.8.1 嵌入式操作系统

--5.8.2 嵌入式操作系统

--5.8.3 嵌入式操作系统

-5.9 外围设备应用程序开发简介

--5.9 外围设备应用程序开发简介

-第五章 作业

-第五章 讨论题

第六章 TM4C123 SoC及其系统设计

-6.1 TM4C123 简介

--6.1 TM4C123 SoC简介

-6.2 TM4C123 实验板

--6.2 TM4C123 实验板

-6.3 TM4C123 软件开发

--6.3 TM4C123 软件开发

-6.4 TM4C123 实验举例

--6.4 TM4C123实验举例

-第六章 作业

-第六章 阅读资料

-第六章 讨论题

第七章 PSoC及其系统设计

-7.1 PSoC简介

--7.1 PSoC简介

-7.2 PSoC实验板

--7.2 PSoC实验板

-7.3 PSoC软件开发

--7.3 PSoC软件开发

-7.4 PSoC实验举例

--7.4 PSoC实验举例

-第七章 作业

-第7章 阅读资料

-第七章 讨论题

第八章 FPGA与数字系统设计

-8.1 FPGA简介

--8.1 FPGA简介

-8.2 FPGA的发展趋势

--8.2 FPGA的发展趋势

-8.3 FPGA的特点

--8.3 FPGA的特点

-8.4 FPGA的结构

--8.4 FPGA的结构

-8.5 FPGA结构举例

--8.5 FPGA结构举例

-8.6 FPGA设计工具和方法

--8.6 FPGA设计工具和方法

-8.7 QuartusⅡ集成开发环境

--8.7 QuartusⅡ集成开发环境

-8.8 DE2-115实验平台简介

--8.8 DE2-115实验平台简介

-8.9 Verilog硬件设计语言

-- 8.9.1 Verilog简介

--8.9.2 Verilog语法

--8.9.3 Verilog设计方法

--8.9.4 Verilog设计举例(1)

--8.9.5 Verilog设计举例(2)

--8.9.6 Verilog设计举例(3)

--8.9.7 Verilog设计举例(4)

-- 8.9.8 设计仿真

-8.10 数字电路设计与仿真举例

--8.10 数字电路设计与仿真举例

-第八章 作业

-第八章 阅读资料

-第八章 讨论题

第九章 SOPC系统设计

-9.1 SOPC简介

--9.1 SOPC简介

-9.2 Nios II 微处理器简介

--9.2 Nios II 微处理器简介

-9.3 Avalone总线简介

--9.3 Avalone总线简介

-9.4 SOPC设计方法简介

--9.4 SOPC设计方法简介

-9.5 SOPC设计举例

-- 9.5.1 设计内容

--9.5.2 实验操作(1)

-- 9.5.3 实验操作(2)

-9.6 Nios II 软件设计

--9.6 Nios II 软件设计

-第九章 作业

-第九章 讨论题

第十章 SoC实验与设备

-10.1 实验内容与要求

--10.1 实验内容与要求.

-10.2 实验设备与器材

--10.2 实验设备与器材

-10.3 注意事项与调试方法

--10.3 注意事项与调试方法

-10.4 实验结果展示

--10.4 实验结果展示

--学生课内作品展示-音乐播放器

--学生课内作品展示-螃蟹机器人

--学生课内作品展示-手势识别跟踪

--学生课内作品展示-倒立摆

--学生课外作品展示-无线触摸输入设备

--学生课内作品展示-数字手写体识别

-第十章 作业

-第十章 讨论题

期末考试

-期末考试

--期末考试

9.6 Nios II 软件设计笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。