-
VHDL串并转换
2012-09-19 22:10:10用VHDL实现数据的串并转换并生成了符号,可以直接搭电路图 -
基于 Verilog 的经典数字电路设计(12)串并转换器
2020-06-05 09:35:05设计的思想是这样的:有一组数据以 N MHz 的速率从 FPGA 的一个 I/O 口传入,要...下面是串并转换器的 Verilog代码实现: module Serial2Pal( input Clk, input din, input ena, output reg [3:0] dout = 4'b00.摘要:设计的思想是这样的:有一组数据以 N MHz 的速率从 FPGA 的一个 I/O 口传入,要实现在 FPGA 的另一端 4 个 I/O 口以 N/4 MHz 的速率把传入的速率吐出,也就是说每隔 4 个主时钟周期要从 4 个输出口输出从输入口输入的 4 个数据。
数据传输按照传输方式分为串行传输和并行传输,串行传输就是每一个时钟传输一个比特(一个逻辑数据:即 0 或者 1),仅有一根线,而用通俗的比喻来讲,就是你的心脏每跳动一次,就发出一个数据。至于并行传输,就是多个串行传输的结合,每一个时钟传输 N 个比特(并行 N 个),有 N 根线。
串并转换器
下面是串并转换器的 Verilog 代码实现:
module Serial2Pal( input Clk, input din, input ena, output reg [3:0] dout = 4'b0000 ); always @ (posedge Clk) if(ena) dout <= {dout[2:0],din}; else dout <= dout; endmodule
其 RTL 电路图如下所示:
-
阻抗串并转换
2014-05-21 09:41:52如图1,显示了将并联电路转换为串联电路的转换方程式(推导过程见最下面的附录)。 图1这些电路为一个频率的等效电路 有趣的是, 那么该如何使用它呢?在您需要估算电感DC电阻(DCR)和电容等效串联...如何快速地将并联阻抗转换为串联阻抗?或者将串联阻抗转为并联阻抗?看看下面的讲解吧。
如图 1 ,显示了将并联电路转换为串联电路的转换方程式(推导过程见最下面的附录 )。
图 1 这些电路为一个频率的等效电路
有趣的是,
那么该如何使用它呢?在您需要估算电感 DC 电阻 (DCR) 和电容等效串联电阻 (ESR) 对电源滤波器输出阻抗影响程度时,其将会很有用处。图 3 对此进行了说明。输出阻抗在谐振时达到最高,因此必须首先计算出滤波器谐振频率。下一步,对电感-DCR 组合和电容-ESR 组合进行串-并联转换。最后,简单地组合三个已为并联的并联电阻。例如,如果您有了一个基本为 0 Ohm ESR 的 47 uF 陶瓷电容,以及一个 50 mOhm DCR 的 10 μH 输出电感。谐振频率为7 kHz。这一频率下,电感有 0.4 Ohm 的电抗,从而得到 Q 为 8,而并联电阻为 3 Ohm。一种更快速的方法是将特性阻抗 ((L/C)0.5) 用于谐振下的电感电抗。
-
串并-并串转换器电路图
2013-04-08 17:23:57大学数字电路课程设计 串并-并串转换器的设计 -
单片机实验汇编案例-- 串并转换实验
2020-06-21 20:36:28串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄一.实验要求
利用8031串行口,和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。
二.实验目的
1.掌握8031串行口方式0工作方式及编程方法。
2.掌握利用串行口扩展I/O通道的方法。
三.实验电路及连线
RXD接DATAIN,TXD接DCLK。
四.实验说明
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。
五.实验程序框图
TIMER EQU 01H ORG 0000H AJMP START ORG 000BH ;T0 中断程序入口地址 AJMP INT_T0 ORG 0040H START: MOV SP,#60H MOV TMOD,#01H ;T0 方式 1 MOV TL0,#00H ;延时 50mS 的常数 MOV TH0,#4BH MOV R0,#0H MOV TIMER,#20 MOV SCON,#00H ;置串口工作方式 0 CLR TI CLR RI SETB TR0 ;开中断 SETB ET0 SETB EA SJMP $ INT_T0: ;T0 中断子程序 PUSH ACC ;保护现场 PUSH PSW CLR EA ;关中断 CLR TR0 MOV TL0,#00H ;延时 50mS 的常数 MOV TH0,#4BH SETB TR0 DJNZ TIMER,EXIT MOV TIMER,#20 ;延时一秒的常数 MOV DPTR,#DATA ;置表格基址 MOV A,R0 ;置表格偏移量 MOVC A,@A+DPTR ;读表格数据 CLR TI MOV SBUF,A ;串行发送数据 INC R0 CJNE R0,#0AH,EXIT ;判断是否到表尾 MOV R0,#00H ;调整表格偏移量 EXIT: SETB EA ;开中断 POP PSW POP ACC ;恢复现场 RETI ;数码管显示常数表 DATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H ;0 1 2 3 4 5 6 7 8 9 END
本素材来自网路,如有侵权,请联系删除。
获取更多资源请关注公众号“伊斯电子编程” -
串并转换收发器_基于FPGA的串行通用异步收发器设计
2020-12-19 05:15:15欢迎FPGA工程师加入官方微信技术群一、FPGA的UART设计前准备1、准备硬件开发板一个,altera芯片就行,...4、做UART串口设计之前先上网学习UART原理,实现FPGA接口电路设计。二、UART简介UART(Universal Asynchron...欢迎FPGA工程师加入官方微信技术群
一、FPGA的UART设计前准备
1、准备硬件开发板一个,altera芯片就行,成本低;
2、熟悉VHDL硬件描述语言编程及其调试方法;
3、熟练使用软件开发工具使用,QuartusII9.0,仿真工具modelsim。
4、做UART串口设计之前先上网学习UART原理,实现FPGA接口电路设计。
二、UART简介
UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。
1、UART的基本特点是:
(1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。
(2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。
(3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。
(4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。
(5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。
(6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。
(7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。
(8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。
UART的数据帧格式为:
FPGA UART系统组成 :如下图所示,FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块;
2、模块设计:
系统由四部部分组成:顶层模块;波特率发生器;UART接收器; UART发送器.
2.1顶层模块
异步收发器的顶层模块由波特率发生器、UART接收器和UART发送器构成。
UART发送器的用途是将准备输出的并行数据按照基本UART帧格式转为TXD信号串行输出。
UART接收器接收RXD串行信号,并将其转化为并行数据。
波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD不断采样,使接收器与发送器保持同步。
2.2波特率发生器
波特率发生器实际上就是一个分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以根据不同的应用需要更改。
2.3UART接收器
由于串行数据帧和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可认定接收到的是起始位。由于内部采样时钟bclk周期(由波特率发生器产生)是发送或接收波特率时钟频率的16倍,所以起始位需要至少8个连续bclk周期的逻辑0被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔16个bclk周期被采样一次(即每一个波特率时钟被采样一次)。如果起始位的确是16个bclk周期长,那么接下来的数据将在每个位的中点处被采样。
UART接收器的接收状态机
接收状态机状态
R_START(等待起始位);R_CENTER(求中点);R_WAIT(等待采样);R_SAMPLE;R_STOP(停止位接收)。
2.3.1、R_START状态
当UART接收器复位后,接收状态机将处于这一个状态。
在此状态,状态机一直在等待RXD的电平跳转,从逻辑1变为逻辑0,即起始位,这意味着新的一帧UART数据帧的开始,一旦起始位被确定,状态机将转入R_CENTER状态。
状态图中的RXD_SYNC信号是RXD的同步信号,因为在进行逻辑1或逻辑0判断时,不希望检测的信号是不稳定的,所以不直接检测RXD信号,而是检测经过同步后的RXD_SYNC信号。
2.3.2、R_CENTER状态
对于异步串行信号,为了使每一次都检测到正确的位信号,而且在较后的数据位检测时累计误差较小,显然在每位的中点检测是最为理想的。
在本状态,就是由起始位求出每位的中点,通过对bclk的个数进行计数(RCNT16),但计数值不是想当然的“1000”,要考虑经过一个状态,也即经过了一个bclk周期,所希望得到的是在采样时1/2位。
另外,可能在R_START状态检测到的起始位不是真正的起始位,可能是一个偶然出现的干扰尖脉冲(负脉冲)。这种干扰脉冲的周期是很短的,所以可以认为保持逻辑0超过1/4个位时间的信号一定是起始位。
2.3.3、R_WAIT状态
当状态机处于这一状态,等待计满15个bclk,在第16个bclk是进入R_SAMPLE状态进行数据位的采样检测,同时也判断是否采集的数据位长度已达到数据帧的长度(FRAMELEN),如果到来,就说明停止位来临了。
FRAMELEN在设计时是可更改的(使用了Generic),在本设计中默认为8,即对应的UART工作在8位数据位、无校验位格式。
2.3.4、R_SAMPLE状态
即数据位采样检测,完成后无条件状态机转入R_WAIT状态,等待下次数据位的到来。
2.3.5、R_STOP状态
无论停止位是1还是1.5位,或是2位,状态机在R_STOP不具体检测RXD,只是输出帧接收完毕信号(REC_DONE<=‘1’),停止位后状态机转回到R_START状态,等待下一个帧的起始位。
2.4、UART发送器
发送器只要每隔16个bclk周期输出1个数据即可,次序遵循第1位是起始位,第8位是停止位。在本设计中没有校验位,但只要改变Generic参数FrameLen,也可以加入校验位,停止位是固定的1位格式。
发送状态机的状态图
发送状态机一共有5个状态:X_IDLE(空闲);X_START(起始位);X_WAIT(移位等待);X_SHIFT(移位);X_STOP(停止位)。
2.4.1、X_IDLE状态:
当UART被复位信号复位后,状态机将立刻进入这一状态。
在这个状态下,UART的发送器一直在等待一个数据帧发送命令XMIT_CMD。
XMIT_CMD_P信号是对XMIT_CMD的处理,XMIT_CMD_P是一个短脉冲信号。这时由于XMIT_CMD是一个外加信号,在FPGA之外,不可能对XMIT_CMD的脉冲宽度进行限制,如果XMIT_CMD有效在UART发完一个数据帧后仍然有效,那么就会错误地被认为,一个新的数据发送命令又到来了,UART发送器就会再次启动UART帧的发送,显然该帧的发送是错误的。
在此对XMIT_CMD进行了脉冲宽度的限定,XMIT_CMD_P就是一个处理后的信号。
当XMIT_CMD_P=‘1’,状态机转入X_START,准备发送起始位。
2.4.2、X_START状态:
在这个状态下,UART的发送器一个位时间宽度的逻辑0信号至TXD,即起始位。紧接着状态机转入X_WAIT状态。XCNT16是bclk的计数器。
2.4.3、X_WAIT状态
同UART接收状态机中的R_WAIT状态类似。
2.4.4、X_SHIFT状态
当状态机处于这一状态时,实现待发数据的并串转换。转换完成立即回到X_WAIT状态。
2.4.5、X_STOP
停止位发送状态,当数据帧发送完毕,状态机转入该状态,并发送16个bclk周期的逻辑1信号,即1位停止位。状态机送完停止位后回到X_IDLE状态,并等待另一个数据帧的发送命令.
3、 FPGA UART模块编程设计
3.1、UART发送器
3.2、UART接收器
3.3、分频器模块
三、管脚配置,下载到硬件平台调试
本文介绍了FPGA开发中常用的串口收发数据接口,有想了解的多多关注。
欢迎通信工程师和FPGA工程师关注公众号
FPGA微信技术群
欢迎大家加入全国FPGA微信技术群,这里有一群热爱技术的工程师,在这里可以一起交流讨论技术!
用手指按住就可以加入FPGA全国技术群哦
FPGA IP核服务:各类优质IP核服务商,服务到位,有保障!有需求的可以直接联系群主!
FPGA技术群平台自营:Xilinx Altera 镁光、三星、海力士、ADI TI ST NXP 等品牌的优势代理分销商,欢迎大家有需求随时发型号清单,我们将在第一时间为您提供最优竞争力的报价!价格低于您原有供应商5%以上!欢迎询价-直接把需求发给群主!
FPGA技术群官方鸣谢品牌:Xilinx、 intel(Altera)、microsemi(,Actel)、LattIC e,Vantis,Quicklogic,Lucent等
-
D/A转换在System View环境下的仿真及硬件实现
2020-07-26 22:10:25针对模拟信号在传输介质中优于数字信号,而设计数模转换模块。首先用System View对DAC模块进了...通过设计了一个前置的串并转换电路,不仅可以实现8位并行数字信号的D/A转换,还可实现8位串口输入数字信号的D/A转换。 -
Agilent科技推出业界尺寸最小的4端口串并/并串转换器SerDes
2020-12-05 11:29:02Agilent科技推出了业界尺寸最小的4端口串并/并串转换器(SerDes),特别针对光纤通道存储区域网(SAN)设备而设计,用来在服务器及较大公司数据中心之间存储和传送数据。器件具有业界最小的尺寸19mm×19mm,为光纤通道 ... -
基于FPGA的双通道汽车涡轮增压叶片温度采集卡研制
2020-08-15 11:17:56一种应用于汽车涡轮增压器叶片...重点设计了FPGA内部串并转换电路和FIFO,经仿真和实验验证,串并转换和FIFO的应用大大简化了采集卡的复杂程度,提高了系统的可靠性和稳定性,在信号高速处理方面具有一定的应用价值。 -
RLC 串并联振荡
2018-10-22 21:05:04RLC 串并联特性 串并联RCL的值是一样的公式,但是两者再特性上有极大的不同。 串联谐振特性:(等效电阻为电路的电阻加电抗) 等效阻抗最小 等效阻抗等于电阻 电流最大 能量转换最大 并联谐振... -
[电路笔记------电阻的三角形联结和Y型联结的等效转换公式]
2020-07-27 09:32:25应用这个等效转换可以求复杂电阻电路的等效电阻,适当变换之后再用一般的串并联求电阻即可 -
简单通信系统--数字电路
2011-04-30 22:36:18简易的通信系统,十六进制计数器,串并转换 -
一种基于CPLD的QDPSK调制解调电路设计
2020-10-24 04:37:43在分析四相相对移相(QDPSK)信号调制解调原理的基础上,设计了一种QDPSK调制解调电路,它包括串并转换、差分编码、四相载波产生和选相、相干解调、差分译码和并串转换电路。在MAX+PLUSII软件平台上,进行了编译和波形... -
CMOS分频电路的设计
2021-01-19 15:23:10目前,在高速串行数据传输系统中,传送的数据大多采用8B/10B 编码方案编码成自同 步的数据流,因此在接收端为了进行8B/10B 解码,需要对数据进行1:8/1:10 的串并转换; 在高速收发系统中,为在特定工艺下实现更高... -
数字电路基础
2020-07-19 12:47:031、基本逻辑运算、仅用与非或仅用与或非、最小项之和、最大项之积、卡诺图化简、逻辑门的...5、串并转换 6、分频电路(奇数分频,偶数分频),非常基础,华为面试中出现过,不会基本直接挂 7、乒乓buffer 8、超前进位加 -
一种基于FPGA的UART 电路实现
2021-01-19 22:26:34摘 要: UART 即通用异步收发器,传统上采用多功能的专用集成...UART 功能包括微处理器接口、用于数据传输的缓冲器(Buffer)、帧产生、奇偶校验、并串转换,用于数据接收的缓冲器、帧产生、奇偶校验、串并转换等。UA -
RFID技术中的CMOS分频电路的设计
2020-11-09 09:10:29目前,在高速串行数据传输系统中,传送的数据大多采用8B/10B 编码方案编码成自同 步的数据流,因此在接收端为了进行8B/10B 解码,需要对数据进行1:8/1:10 的串并转换; 在高速收发系统中,为在特定工艺下实现更高... -
Verilog8-常用电路(2)
2020-10-10 20:44:59串并转换lsb 优先msb 优先2、序列检测器:有“101”序列输入时输出为1,其他情况下输出为03、Verilog实现一个异步双端口 RAM,4、Verilog实现分频器 —— 见专题5、Verilog 实现 glitch free clock Switching(无毛刺... -
EDA/PLD中的一种基于FPGA的UART 电路实现
2020-10-21 07:44:16摘 要: UART 即通用异步收发器,传统上采用多功能的专用集成电路...UART 功能包括微处理器接口、用于数据传输的缓冲器(Buffer)、帧产生、奇偶校验、并串转换,用于数据接收的缓冲器、帧产生、奇偶校验、串并转换等 -
EDA典型单元电路的移位寄存器
2021-01-19 22:58:32因此,移位寄存器不但可以用来寄存代码,还可用来实现数据的串并转换、数值的运算以及数据处理等。 【例】 用VHDL语言设计一个8位的移位寄存器,使其具有左移一位或右移一位、并行输入和同步复位的功能,并使用... -
EDA/PLD中的EDA典型单元电路的移位寄存器
2020-11-16 09:28:50因此,移位寄存器不但可以用来寄存代码,还可用来实现数据的串并转换、数值的运算以及数据处理等。 【例】 用VHDL语言设计一个8位的移位寄存器,使其具有左移一位或右移一位、并行输入和同步复位的功能,并使用... -
基于FPGA的高速USB2.0数据采集系统主控电路设计
2021-01-30 02:45:12本系统以FPGA为数字信号处理核心,通过 FPGA 对采集系统的有效控制,实现数据的串并转换、AD接口数据FIFO缓存、SDRAM数据存储读取及系统显示等功能,并在系统控制下通过USB2.0总线通讯接口实现了数据和上位机之间的... -
通信集成电路芯片物理设计难点及解决方案
2020-10-23 20:54:58SSTA)、时钟树优化工具BCO(BonnClockOpt,BCO),多种高性能的高速串并/并串转换器(High-SpeedSerdes,HSS)及其完备而精确的仿真和建模环境,这些方案的实施为复杂通信集成电路芯片的物理设计提供了有力的保障,... -
智能点阵电子显示屏控制系统设计
2020-08-28 10:21:10该智能型点阵电子显示屏基于串并转换动态扫描技术,以微控制器为核心,辅以必要外围电路设计而成。系统主要由单片机控制、电子屏驱动显示、亮度调节、时钟定时、语音提示和键控液晶输出更新等模块组成。用字模软件... -
显示/光电技术中的智能点阵电子显示屏控制系统设计
2020-10-21 14:28:02摘 要:该智能型点阵电子显示屏基于串并转换动态扫描技术,以微控制器为核心,辅以必要外围电路设计而成。系统主要由单片机控制、电子屏驱动显示、亮度调节、时钟定时、语音提示和键控液晶输出更新等模块组成。用... -
单片机与DSP中的应用RC低通滤波器扩展微处理器输出端口
2020-12-04 17:53:14为了数据输入到串并转换器,每位都要由1-0-1的转换组成,这种转换数据低电平状态长度是变化的。如果低电平状态超出了低通滤波器的时间常数,一个零移进寄存器;如果低电平状态短,一个1就移进寄存器。这样,时钟信号... -
LVDS转发器与交叉点开关延长FPD-Link II接口的传输距离
2020-11-08 17:56:39低成本、高性能和小尺寸是许多采用SER/DES芯片(并 串/串并转换器)的系统属性。采用国家半导体嵌入式时钟 LVDS SER/DES (FPD-Link II)器件的系统也同样具有这些属 性。这些SER/DES芯片给显示应用提供一个两线串行... -
深入浅出玩转FPGA阅读笔记(10):FPGA重要设计思想及工程应用
2021-01-16 11:24:12二、乒乓操作及串并转换设计 1.乒乓操作 2.串并转换 3.流水线设计 如果数据流是单向的,前一个步骤的输出即下一个步骤的输入,可以通过流水线设计从某种程度上提高系统频率,常用于高速信号处理领域。 典型的流水...
-
数组和集合
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
天津大学《宏观经济学》试题库及答案.pdf
-
华为1+X认证——网络系统建设与运维(初级)
-
江西财经大学《统计》两套期末考试试卷(部分卷含答案).pdf
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
天津冶金职业技术学院《电力电子技术》6套历年期末考试试卷(含答案).pdf
-
江西财经大学《金融工程》期末考试试卷.pdf
-
SimpleDateFormat类 java 1614697530
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
C++ Primer Plus Note Chapter6
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
MySQL 管理利器 mysql-utilities
-
My frist blog post
-
龙芯生态应用开发基础:C语言精要
-
Apollo配置中心使用及热更新
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
江西财经大学《中国近代史》期末复习知识点总结.pdf
-
【布道者】Linux极速入门
-
使用vue搭建微信H5公众号项目