串口RS485

本文介绍了RS485通信技术,包括其全双工和半双工的工作模式,以及差分信号的抗干扰优势。还详细展示了两个VHDL模块(led_ctrl.v和uart_tx.v)的代码,涉及LED控制和UART串口传输的实现。最后,通过tb_rs485.v给出了一个测试bench的例子,用于模拟控制板和被控板的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.原理

全双工:在同一时刻可以同时进行数据的接收和数据的发送,两者互不影响

半双工:在同一时刻只能进行数据的接收或者数据的发送,两者不能同时进行

差分信号幅值相同,相位相反,有更强的抗干扰能力。

干扰对差分信号的影响都是相同的,所以差分信号的干扰一相减就没有了

RS485的优点,采用差分信号有更强的抗干扰能力;相比RS232能能进行长距离传输(RS485要用到收发器芯片,收发器的灵敏度是很高的,可以检测到低至200mv的电压,表示传输信号在千米之外都可以恢复,最远的通信距离可以达到1200米左右,速度最快10MB/s,速度和距离是成反比的,速度越小,传输距离越长,长距离的通信可以增加RS485的中继器);缺点就是只支持半双工。

RE是低电平有效,表示数据的收,当接收时,RE=0,DE=0;然后芯片将差分信号转换为单端信号。当RE=1,DE=1时,数据发送,将单端信号转换为差分信号。

485和232使用相同的传输协议

2.代码

以上是控制板的波形图

以上是被控板的时序图

2.1 led_ctrl.v

module led_ctrl(
	input wire 			sys_clk		,
	input wire 			sys_rst_n	,
	input wire [3:0]	led_out_w	,//流水灯
	input wire			led_out_b   ,//呼吸灯
	input wire [7:0]	pi_data		,
	input wire 			key_flag_w	,
	input wire 			key_flag_b	,
	
	output reg  [3:0]	led			,
	output wire  [7:0]	po_data		,
	output wire 		po_flag	
);

reg w_en;
reg b_en;


assign po_data={6'b000_000,b_en,w_en};
assign po_flag=key_flag_b||key_flag_w;

always@(posedge sys_clk or negedge sys_rst_n)
	if(sys_rst_n==1'b0)
		w_en<=1'b0;
	else if(key_flag_b==1'b1)
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值