这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore4tfpga_16 [2020/04/11 15:40] zgf |
icore4tfpga_16 [2024/04/10 15:26] (当前版本) zhaowenzhe [五、 实验步骤及实验结果] |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-02-26 | gingko | 初次建立 | | | V1.0 | 2020-02-26 | gingko | 初次建立 | | ||
行 15: | 行 14: | ||
- iCore4T 双核心板。 | - iCore4T 双核心板。 | ||
- | - iCore4T底板(杜邦线一套)。 | + | - iCore4T 底板(杜邦线一套)。 |
- iTool3(串口TTL)。 | - iTool3(串口TTL)。 | ||
- Blaster(或相同功能)仿真器。 | - Blaster(或相同功能)仿真器。 | ||
行 25: | 行 24: | ||
* UART(通用异步收发器)是一种通用串行数据总线,用于异步通信,可实现全双工传输和接收,是做硬件开发时常用的一种硬件接口。USART(通用同步异步收发器)在UART的基础上增加了同步功能,即USART是UART的增强型,异步通信的时候和UART没有区别。 UART通信具有两根信号线,一根用于发送数据,一根用于接收数据。然而数据的传输是按照字节进行传输的,因此在发送时需要将并行数据转换成串行数据,接收时需要将串行数据转换成并行数据。 | * UART(通用异步收发器)是一种通用串行数据总线,用于异步通信,可实现全双工传输和接收,是做硬件开发时常用的一种硬件接口。USART(通用同步异步收发器)在UART的基础上增加了同步功能,即USART是UART的增强型,异步通信的时候和UART没有区别。 UART通信具有两根信号线,一根用于发送数据,一根用于接收数据。然而数据的传输是按照字节进行传输的,因此在发送时需要将并行数据转换成串行数据,接收时需要将串行数据转换成并行数据。 | ||
* UART通信传输是以帧位单位的,每帧数据有4部分构成:起始位、数据位、奇偶校验位和停止位。以8位字长的串口发送数据帧为例,其帧协议如图16.1所示,从图中可以看到,初始状态时,传输线上为高电平,在持续一个波特的低电平之后,是发送的有效数据。之后是至少一个波特高电平的停止位。 | * UART通信传输是以帧位单位的,每帧数据有4部分构成:起始位、数据位、奇偶校验位和停止位。以8位字长的串口发送数据帧为例,其帧协议如图16.1所示,从图中可以看到,初始状态时,传输线上为高电平,在持续一个波特的低电平之后,是发送的有效数据。之后是至少一个波特高电平的停止位。 | ||
- | {{ :icore4t:icore4t_fpga_16_1.png?direct |}} | + | {{ :icore4t:icore4t_fpga_16_1.png?direct&800 |}} |
* 在UART通信中有一个重要的参数,即波特率,它表征了串口的传输速度,表示1秒内传输的二进制位的个数,波特率越大速度越快,反之,越慢。 | * 在UART通信中有一个重要的参数,即波特率,它表征了串口的传输速度,表示1秒内传输的二进制位的个数,波特率越大速度越快,反之,越慢。 | ||
* UART接线原则:RX←→TX,TX←→RX,如图16.2所示。 | * UART接线原则:RX←→TX,TX←→RX,如图16.2所示。 | ||
- | {{ :icore4t:icore4t_fpga_16_1.png?direct |}} | + | {{ :icore4t:icore4t_fpga_16_2.png?direct&300 |}} |
==== 四、 代码讲解 ==== | ==== 四、 代码讲解 ==== | ||
行 241: | 行 240: | ||
</code> | </code> | ||
==== 五、 实验步骤及实验结果 ==== | ==== 五、 实验步骤及实验结果 ==== | ||
- | + | {{ :icore4t:icore4t_fpga_16_3.jpg?600 |}} | |
- | 1、将硬件正确连接,如图16.3所示。 | + | 1、将硬件正确连接,如图16.3所示。\\ |
- | {{ :icore4t:icore4t_fpga_16_1.png?direct |}} | + | 2、将编写好的代码进行编译,并下载到开发板中;\\ |
- | 2、将编写好的代码进行编译,并下载到开发板中; | + | |
3、打开串口调试工具,波特率设置为115200,并打开对应端口,如图16.4所示; | 3、打开串口调试工具,波特率设置为115200,并打开对应端口,如图16.4所示; | ||
- | {{ :icore4t:icore4t_fpga_16_1.png?direct |}} | + | {{ :icore4t:icore4t_fpga_16_4.png?direct |}} |
- | 4、在输入去发送一个字节的数据,FPGA会自动返回该数据,如图16.5所示。 | + | 4、在串口调试工具的发送区输入发送数据,FPGA会自动将接收到的数据发送至串口,显示在串口调试工具的接收区,如图16.5所示。 |
- | {{ :icore4t:icore4t_fpga_16_1.png?direct |}} | + | {{ :icore4t:icore4t_fpga_16_5.png?direct |}} |
==== 六、 拓展实验 ==== | ==== 六、 拓展实验 ==== | ||
* 通过Signaltap观察串口通信时序。 | * 通过Signaltap观察串口通信时序。 | ||