第十一期实现写入文件与文件的读取操作
2018-09-16 12:23
蓝桥杯第十一届省赛单片机组,翻了下以前做过的一些项目和比赛,发现了之前准备比赛的一些注意事项和心得,分享给大家希望大家能够避免错误拿高分。 适当的延时很重要,可以解决一些不正常现象ds1302读取
2021-07-14 06:57
如图,第十一道主流程为成型。成型的目的:顾名思义,成型就是将PCB工厂生产时的工作板按照客户的要求,做成出货给客户的成品板的形状。成型又可以分为锣板成型和模具成型,当然FPC还有激光成型,此文主要
2023-04-07 16:49
陌、南瓜电影等重磅嘉宾,分享他们与阿里视频云之间的故事。12月19日-20日,全球云计算TOP级峰会云栖大会的年度压轴大戏——北京峰会在国家会议中心成功举办,本次峰会内容将涵盖云计算、大数据和人工智能
2017-12-27 17:43
,2018云栖大会·武汉峰会上,阿里云首次曝光了人工智能产品家族,全方位公开AI产品体系(详见ai.aliyun.com),通过一张图来了解下。阿里云陆续推出了多款AI产品,除了语音识别,还有图像识别、视觉
2018-06-12 15:46
,获取更多资料:正点原子第十一章模仿STM32驱动开发格式实验 在上一章使用C语言编写LED灯驱动的时候,每个寄存器的地址我们都需要写宏定义,使用起来非常的不方便。我们在学习STM32的时候,可以
2019-12-20 15:03
摘要: 在3月29日深圳云栖大会的数据分析与可视化专场中,阿里云产品专家陌停对大数据智能分析产品 Quick BI 进行了深入的剖析。大会现场的精彩分享也赢得观众们的一直认可和热烈的反响。 大数
2018-04-03 11:42
本帖最后由 hejecu 于 2018-11-11 15:51 编辑 第十一章 串口通信实验11.1 实验目的通过本实验的学习,掌握STM32的串口使用,实现通过串口发送和接收数据。数据手册请
2018-11-11 15:50
串口发送模块设计与验证课程目标:1.实现基于FPGA的RS232协议发送数据模块2.使用ISSP进行调试与验证设计的数据发送模块实验平台:芯航线FPGA学习套件核心板、PC机实验原理: 通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,简称UART)是一种异步收发传输器,其将并行数据转换成串行数据以便传输;将接收到的串行数据转换成并行数据。它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232、RS449、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232),被广泛用于计算机串行接口外设连接。其DB9接口的针脚定义如图11-1所示,引脚功能如表11-1所示。图11-1 RS232,DB9针脚定义表11-1 针脚功能在RS-232标准中,8bit数据,没有奇偶校验,1bit停止位下发送一个字节时序图如图11-2所示,首先是一个起始位后面紧跟8个数据比特,最后是停止位。图11-2 UART发送一个字节时序图串行通信在软件设置时需要做多项设置,最常见的设置包括波特率(Baud)、奇偶校验(Parity Check)和停止位(Stop Bit)。波特率:是指从一设备发到另一设备的波特率,即每秒钟多少符号。典型的波特率有300, 1200, 2400, 9600, 19200, 115200等。一般通信两端设备都要设为相同的波特率,但有些设备也可设置为自动检测波特率。奇偶校验:是用来验证数据的正确性。奇偶校验一般不使用,如果使用,则既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误,如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。如果用户选择数据长度为8位,则因为没有多余的比特可被用来作为同比特,因此就叫做“非奇偶校验(Non Parity)”。停止位:是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的)。 RS232通信协议需要一定的硬件支持,早期的是RS232转TTL,这时需要MAX232这类IC来做数据转换,其典型电路图如11-3所示。图11-3 RS232转TTL电路图现在由于系统集成度越来越高,DB9的RS232接口占用PCB面积过大,多数系统已经转用USB转TTL,也就是芯航线FPGA开发板板载的方式,其电路图如图11-4所示。具体的使用原理可以参见新航线附赠的数据手册,与RS232转TTL只有硬件上的区别。图11-4 USB转TTL电路图实验过程:基于以上原理,串口发送模块整体框图如图11-5所示,其接口列表如表11-2所示。图11-5 串口发送模块整体框图表11-3 模块接口列表经过以上的分析,串口发送模块详细结构图如图11-6所示,其中每一子模块的作用如表11-4所示。其中绿色的框代表单一结构的寄存器,来实现数据的稳定输入以及输出。图11-6 串口发送模块结构图表11-4 子功能块功能描述建立工程子文件夹后,新建一个以名为uart_byte_tx的工程保存在prj下,并在本工程目录的rtl文件夹下新建verilog file文件并以uart_byte_tx.v保存。由上面的分析可以得出如下的信号列表。串口发送模块两个主要组件之一即为波特率时钟生成模块,这里需要计数的计数值与波特率之间的关系如表11-5所示,其中系统时钟周期为System_clk_period,这里为20ns。表11-5 波特率计算前面讲到了想扩展其本模块的复用性,需要可以根据需要设置不同的波特率,也就是指的设置不同的波特率时钟计数值。这里使用查找表即可实现,下面只举出了五个波特率的设置,如需要其他波特率可根据实际使用情况具体修改。对波特率时钟进行计数,来确定数据发送的循环状态。同样为了使得模块可以与其他模块进行控制或者调用,这里产生一个byte传送结束的信号。一个数据位传输结束后Tx_done信号输出一个时钟的高电平。产生数据传输状态信号,当在正常传输的时候uart_state信号为高电平,其他情况均为低电平。这里实现的电路结构同样是具有优先级顺序的,但与C语言本质是不同的。在图11-6中的MUX2_1与MUX2_2也就是下面的设计实现的if—else if—else的电路结构。由于RS232是一个异步的收发器因此为了保证发送的数据在时钟到来的时候是稳定的,这里采用将输入数据进行寄存。在模块结构图11-6中也有一个十选一多路器 ,作用是根据bps_cnt的值来确定需要发送位。进行分析和综合直至没有错误以及警告。 为了测试仿真编写测试激励文件,新建uart_byte_tx_tb.v文件保存到testbench文件夹下,除编写正常的时钟外,输入以下内容再次进行分析和综合直至没有错误以及警告。以下生成了复位信号以及使能信号、待传输数据。这里与系统时钟错开1ns,是为了更能清楚看到输入输出数据与时钟的时序关系。设置好仿真脚本后进行功能仿真,可以看到如图11-7所示的波形文件,可以看出在复位信号置高以及使能信号有效之前输出信号Rs232_Tx均为0,在复位结束以及使能后输出信号才开始正常,且当输入数据为8`b10101010(MSB)后,输出信号依次为1、0(起始位)、01010101(LSB)、1(终值位);当输入数据为8`b01010101(MSB)后,输出信号依次为1、0(起始位)、10101010(LSB)、1(终值位)。state处于发送为0,即仿真通过。图11-7 单byte数据传输仿真波形图为了实现前面所说的效果先将以前编写好的按键消抖模块添加到工程当中,并再次使用ISSP,其主要参数配置如图11-8所示,并加入到工程中。图11-8 ISSP主要参数配置在本工程目录的rtl文件夹下新建verilog file文件在此文件下输入以下内容并以uart_tx_top.v保存,并设置为顶层文件。这里Tx_done不对外控制这里先不进行连接。编译无误后,点击RTL_viewer可以看到如图11-9的各模块连接图。 图11-9 各模块连接图分配引脚后全编译无误后下载工程到开发板中。在Quartus II中点击Tools—In-System Source and Probes Editor启动ISSP,手动选择下载器后,并将数据格式改为设计中的hex格式。打开串口助手波特率设置为9600、没有校验位、8位数据位以及1bit停止位。在Quartus II中,使用In system sources and probes editor工具,输入需要通过串口发送出去的数据,然后按下学习板上的按键0,则FPGA自动将所需要发送的数据发送出去,即可在串口助手中看到相关数据。且板载的LED_RX每接收一byte数据均会亮一下,这里由于时钟较快,数据传输过程很快,因此代表传输状态的led0看着“常亮”。图11-10 串口上位机接收数据显示 至此完成了基于FPGA的串口发送通信协议实现以及In system sources and probes editor(ISSP)调试工具的使用。小梅哥芯航线电子工作室关于学习资料,小梅哥系列所有能够开放的资料和更新(包括视频教程,程序代码,教程文档,工具软件,开发板资料)都会发布在我的云分享。(记得订阅)链接:http://yun.baidu.com/share/home?uk=402885837&view=share#category/type=0
2016-12-29 23:01
摘要: 2018年3月29日,在**深圳云栖**大会弹性计算技术专场上,来自阿里云弹性计算产品专家崆闻做了主题为**《百万级别IOPS云盘产品全面解析》**的技术分享,主要就阿里云新一代ESSD云盘
2018-04-04 10:19