weixin_53946577 2023-12-11 18:22 采纳率: 0%
浏览 30
已结题

74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)

自己通过74LS 系列非门和与非门已设计出电路,也实现了差分信号,通过洞洞板焊接在测试也实现差分信号,上机却传送不了信号给现实屏,大师没无现成的仿真参考

img

img

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-11 18:23
    关注

    引自强大而免费的微信小程序:皆我百晓生

    1. 问题分析

    在设计RS485电路时,使用74LS00和74LS04芯片进行非门和与非门的设计,实现差分信号。在洞洞板上焊接后进行测试时,差分信号正常工作。但在上机时,却无法传送信号到显示屏上。问题可能出现在以下几个方面:

    1.1 信号传输问题:可能是差分信号无法正确传输到显示屏上。

    1.2 芯片选择问题:74LS00和74LS04芯片可能不适用于RS485电路。

    1.3 电路连接问题:可能存在接线错误或连接不良的情况。

    为了解决这些问题,我们需要逐个排查并进行相应的调试。

    2. 信号传输问题

    2.1 RS485信号规范

    RS485是一种常见的差分信号传输标准,它允许在远距离和高速的数据通信中使用差分信号。RS485标准规定了信号传输的电平、波特率、信号线的驱动和接收能力等。在设计RS485电路时,需要遵循RS485信号规范。

    2.2 差分信号传输

    差分信号传输是基于正负两个相位信号之间的电压差来传输信息,减少了由于噪声对单个信号的干扰。在RS485电路中,需要使用差分信号传输来实现高速、远距离、抗干扰的数据通信。

    2.3 信号传输线路

    差分信号传输需要使用一对相反的信号线(通常称为A线和B线)来传输数据。发送端将数据通过差分驱动器将信号转换为差分信号,并通过A线和B线发送。接收端通过差分接收器将差分信号转换为相应的数据信号。

    2.4 信号传输问题排查思路

    • 检查差分信号是否正确传输到显示屏上,可以使用示波器或逻辑分析仪等工具来观察信号波形。
    • 检查发送端和接收端的电路中是否添加了差分驱动器和差分接收器,以及其它必要的电路组件。

    3. 芯片选择问题

    3.1 74LS00和74LS04芯片

    74LS00和74LS04芯片是非门和与非门芯片,它们可以实现逻辑门电路功能。但在设计RS485电路时,这两种芯片并不常用,可能不适合用于差分信号传输。

    3.2 RS485驱动芯片

    为了实现RS485通信,通常会选择专用的RS485驱动芯片,如MAX485、MAX488等。这些芯片具有专门优化的差分驱动和接收能力,能够更好地满足RS485信号规范。

    3.3 选择适合的芯片

    如果要实现RS485通信,建议选择专门的RS485驱动芯片,并按照其提供的电路设计指导进行设计。这样可以确保电路能够正确实现差分信号传输,提高信号的可靠性和稳定性。

    4. 电路连接问题

    4.1 确认电路连接

    需要检查电路连接是否正确,包括芯片引脚连接、信号线连接等。可以使用万用表等工具检测引脚连接和信号线是否短路、接触不良等。

    4.2 芯片引脚连接

    确保74LS00和74LS04芯片的引脚连接正确,与设计图纸或器件手册对照检查引脚连接。

    4.3 信号线连接

    确认A线和B线的信号线连接正确,遵循RS485信号规范连接。

    4.4 地线连接

    确保地线连接良好,地线是差分信号传输中的参考电位,保持发送端和接收端的电位一致。

    总结:

    在设计RS485电路时,需要考虑信号传输问题、芯片选择问题和电路连接问题。可通过检查信号传输、更换适合的驱动芯片、检查电路连接等方式进行排查和调试。如果仍无法解决问题,可能需要进一步分析和调试,或者请教专业的硬件工程师。

    展开全部

    评论 编辑记录
  • 叫兽-郭老师 Java领域新星创作者 2023-12-11 18:24
    关注

    由人工智能和答主提供,可以参考如下,如果回答的不正确,及时评论区回复,我追加回答,谢谢。


    首先,我们需要了解RS485电路的基本原理。RS485是一种差分传输的串行通信协议,它使用一对平衡线进行数据传输,可以实现长距离、高速率的通信。在设计RS485电路时,我们需要考虑以下几个关键部分:

    1. 发送器:将并行数据转换为差分信号并发送出去。
    2. 接收器:接收差分信号并将其转换为并行数据。
    3. 差分信号转换:使用非门和与非门实现差分信号的转换。

    根据以上原理,我们可以设计一个简单的RS485电路。首先,我们需要选择合适的74LS系列器件来实现发送器和接收器的功能。在这里,我们可以选择74LS00(四路二输入与非门)和74LS04(六反相缓冲器/驱动器)来实现差分信号的转换。

    接下来,我们需要设计发送器和接收器的电路图。以下是一个简单的发送器和接收器电路图:

    发送器电路图:

    INPUT_DATA --> 74LS00 --> D- (差分信号负端)
    INPUT_DATA --> 74LS00 --> D+ (差分信号正端)
    

    接收器电路图:

    D- --> 74LS04 --> INPUT_DATA (并行数据输入)
    D+ --> 74LS04 --> INPUT_DATA (并行数据输入)
    

    在洞洞板上焊接好电路后,我们需要使用示波器或其他测试设备来检查电路是否正常工作。如果电路正常工作,但在实际应用场景中无法传送信号给显示屏,可能的原因有以下几点:

    1. 信号传输距离过远,导致信号衰减严重。在这种情况下,可以考虑增加信号放大器或使用更高质量的线缆。
    2. 电路连接不稳定,可能导致信号丢失或干扰。检查电路连接是否牢固,避免接触不良或短路现象。
    3. 上机软件或硬件存在问题,导致无法正确解析接收到的信号。检查上机软件的设置和硬件驱动是否正确安装。

    由于没有现成的仿真参考,我们可以通过实际测试来验证电路的正确性。如果在测试过程中遇到问题,可以尝试修改电路设计或调整参数,以解决问题。

    评论
  • threenewbee 2023-12-11 19:06
    关注
    评论
  • CrMylive. Python领域新星创作者 2023-12-11 21:12
    关注

    结合GPT给出回答如下请题主参考
    首先,需要了解差分信号的概念。差分信号是指两个信号相反且幅度相等的信号,可以用于传输信息,具有抗干扰、抗噪声等优点。

    在设计RS485电路时,需要使用差分信号进行信息传输。我们可以通过使用两个非门构成一个差分放大器来实现差分信号的生成。

    差分放大器电路如下所示:

    差分放大器电路图

    其中,V1和V2为输入信号,A1和A2为非门。

    实际电路中,可以使用74LS00和74LS04组成差分放大器。具体电路如下所示:

    74LS00和74LS04差分放大器电路图

    差分放大器的输出信号可以连接到RS485芯片的差分输入端口中,实现信号的传输。

    以下是完整的差分RS485电路代码案例:

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    
    entity rs485_diff is
        Port ( A : in  STD_LOGIC;
               B : in  STD_LOGIC;
               EN : in  STD_LOGIC;
               TX : out  STD_LOGIC;
               RX : in  STD_LOGIC);
    end rs485_diff;
    
    architecture Behavioral of rs485_diff is
    
    --定义常量
    constant TX_ENABLE : STD_LOGIC := '0'; -- 使能TX输出
    constant TX_DISABLE : STD_LOGIC := '1'; -- 禁止TX输出
    constant UART_BAUD_RATE : integer := 9600;
    constant CLOCK_FREQUENCY : integer := 16*1000*1000;
    constant TICKS_PER_BIT : integer := CLOCK_FREQUENCY / UART_BAUD_RATE;
    
    --定义信号
    signal tick_count : integer range 0 to TICKS_PER_BIT-1 := 0;
    signal output_tick : STD_LOGIC := '0';
    
    begin
    
    --差分放大器
    diff_amp : entity work.differential_amp port map (A=>A, B=>B, Y1=>TX, Y2=>not TX);
    
    -- TX输出控制逻辑
    process (EN, tick_count, output_tick)
    begin
        if EN = '1' then
            if tick_count = TICKS_PER_BIT-1 then
                output_tick <= not output_tick;
                tick_count <= 0;
            else
                tick_count <= tick_count + 1;
            end if;
            TX <= output_tick;
        else
            TX <= TX_DISABLE;
        end if;
    end process;
    
    end Behavioral;
    

    以上代码中,差分放大器的实现使用的是名为"differential_amp"的entity,需要根据实际情况进行修改。

    在RS485传输中,还需要使用半双工通信方式,需要在发送和接收时进行切换,具体实现可以通过电路切换或编程方式实现。

    展开全部

    评论
  • 杨得江-君临天下wyj 2023-12-11 22:47
    关注

    引用C H A T G P T

    
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    entity rs485_diff is
        Port ( A : in  STD_LOGIC;
               B : in  STD_LOGIC;
               EN : in  STD_LOGIC;
               TX : out  STD_LOGIC;
               RX : in  STD_LOGIC);
    end rs485_diff;
    architecture Behavioral of rs485_diff is
    --定义常量
    constant TX_ENABLE : STD_LOGIC := '0'; -- 使能TX输出
    constant TX_DISABLE : STD_LOGIC := '1'; -- 禁止TX输出
    constant UART_BAUD_RATE : integer := 9600;
    constant CLOCK_FREQUENCY : integer := 16*1000*1000;
    constant TICKS_PER_BIT : integer := CLOCK_FREQUENCY / UART_BAUD_RATE;
    --定义信号
    signal tick_count : integer range 0 to TICKS_PER_BIT-1 := 0;
    signal output_tick : STD_LOGIC := '0';
    begin
    --差分放大器
    diff_amp : entity work.differential_amp port map (A=>A, B=>B, Y1=>TX, Y2=>not TX);
    -- TX输出控制逻辑
    process (EN, tick_count, output_tick)
    begin
        if EN = '1' then
            if tick_count = TICKS_PER_BIT-1 then
                output_tick <= not output_tick;
                tick_count <= 0;
            else
                tick_count <= tick_count + 1;
            end if;
            TX <= output_tick;
        else
            TX <= TX_DISABLE;
        end if;
    end process;
    end Behavioral;
    
    
    

    展开全部

    评论
  • 关注

    没看明白你这最后句话的意思,是要干啥

    评论
    weixin_53946577 2023-12-12 01:21

    用非门和与非门仿真一个RS485功能的电路

    回复
  • IT工程师_二师兄 2023-12-12 01:08
    关注

    你焊接的元器件与设计是否一致

    评论
  • curating 2023-12-12 01:54
    关注

    Uab <= -200mv在哪个时刻?示波器中。
    检测到0。

    评论
  • 呈两面包夹芝士 2023-12-12 02:13
    关注

    引自讯飞星火
    首先,我们需要确保你的电路设计是正确的。你可以通过以下步骤来检查:

    1. 检查你的电路连接是否正确。确保所有的非门和与非门都按照正确的顺序连接在一起。

    2. 使用示波器检查差分信号的输出。你应该能看到一个稳定的波形,这意味着你的电路正在正确地产生差分信号。

    3. 检查你的信号线是否正确地连接到显示屏幕上。确保没有短路或断路的情况发生。

    4. 如果以上步骤都没有问题,那么可能是你的显示屏幕的问题。尝试更换一个显示器,看看是否能正常工作。

    如果以上步骤都无法解决问题,那么你可能需要寻求专业的帮助。你可以联系你的导师或者同学,看看他们是否能提供一些帮助。

    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月12日
  • 创建了问题 12月11日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部