精华内容
下载资源
问答
  • 以太网口通信
    千次阅读
    2021-01-06 10:39:21

    以太网通信
    .pro文件中加入QT += network

    A :发送端:
    1. myudp.h

    #include <WinSock2.h>
    #include <QUdpSocket>
    #include <QHostAddress>
    #include <QObject>
    #include <QSharedPointer>
    
    class MyUDP:public QObject
    {
       Q_OBJECT
    public:
       explicit MyUDP(QObject *parent = nullptr);
        ~MyUDP();
    
    public:
        void send_data(QString &m_data);
    
    private:    
       QUdpSocket  *mSocket;
    };
    
    1. myudp.cpp

    #include “myudp.h”
    #include
    #include

    MyUDP::MyUDP(QObject *parent):QObject(parent)
    {
      mSocket = new QUdpSocket(this);
      mSocket->bind(QHostAddress("192.168.43.83"),1000); 
    }
    
    MyUDP::~MyUDP()
    {
       mSocket->close();
       delete mSocket;
    }
    
    void MyUDP::send_data(QString &m_data)
    {
       mSocket->writeDatagram(m_data.toUtf8(),QHostAddress("192.168.43.142"),8080);//8080端口号,要和接收端的一致
    }
    

    3.mainwindow.cpp

     QSharedPointer<MyUDP> myudp= QSharedPointer<MyUDP>(new MyUDP());
    QString str = "123";
    myudp->send_data(str);
    

    B:接收端:

    1.myudp.h

    #include <WinSock2.h>
    #include <QUdpSocket>
    #include <QHostAddress>
    #include <QObject>
    #include <QSharedPointer>
    
    typedef QVector<char> v_chars;							    /*  char 型容器 (可变长度char 数组)*/
    typedef QSharedPointer<v_chars>v_chars_ptr;			    	/*  char 型容器的智能指针封装  */
    
    class MyUDP:public QObject
    {
       Q_OBJECT
    public:
       explicit MyUDP(QObject *parent = nullptr);
        ~MyUDP();
    
    public:
        v_chars_ptr ptr_rcv;
    
    public slots:
    
        qint64 receiv_data();
          
     signals:
        void receiveddata(const QString &result);  //接收的数据发给主界面显示
    
    private:    
       QUdpSocket  *mSocket;
    };
    

    2.myudp.cpp

    #include "myudp.h"
    #include <QByteArray>
    #include <QDebug>
    #include <iostream>
    
    using namespace std;
    
    MyUDP::MyUDP(QObject *parent):QObject(parent)
    {
      mSocket = new QUdpSocket(this);
      mSocket->bind(QHostAddress("192.168.43.142"),8080);
      connect(mSocket,SIGNAL(readyRead()),this,SLOT(receiv_data()));
    }
    
    MyUDP::~MyUDP()
    {
       mSocket->close();
       delete mSocket;
    }
    
    qint64 MyUDP::receiv_data()
    {
       if(mSocket->pendingDatagramSize() == 0)
           return 0;
       QByteArray ba;
       ba.resize(mSocket->pendingDatagramSize());
       QHostAddress tempHost("192.168.43.83");
       quint16 port = 1000;
       qint64 datasize =  mSocket->readDatagram(ba.data(),mSocket->pendingDatagramSize(),&tempHost,&port);
    
       ptr_rcv  = QSharedPointer<v_chars>(new v_chars());
    
       for(int i=0;i<ba.size();i++)
       {
         ptr_rcv->push_back(ba.at(i));
       }
    
       char *data1 = ptr_rcv->data();
    
       QString str = QString::fromLocal8Bit(data1,ptr_rcv->size());
        emit  receiveddata(str);
      
       return datasize;
    }
    
    

    3.mainwindow.h

    
     
    
     private slots:
           void Receiveddata_slot(const QString &result);
    
    

    4.mainwindow.cpp

    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
        {
         MyUDP *myudp;
        myudp = new MyUDP(this);
       connect(myudp,SIGNAL(receiveddata(const QString &)),this,SLOT(Receiveddata_slot(const QString &)));
     // connect(myudp,&MyUDP::receiveddata,this,&MainWindow::on_receiveddata_slot);  // 此句也OK 
     }
    
    void MainWindow::Receiveddata_slot(const QString &result)
    {
        ui->lineEdit->setText(result);
    }
    

    Ws2_32.lib是做什么用的? 在vs中要加入此库,并加入
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,1), &wsaData);

    更多相关内容
  • 西门子_精智面板与三菱 IQ-R 系列 PLC 集成以太网口通信pdf,
  • fpga与pc通过以太网口通信

    热门讨论 2013-04-27 14:02:42
    fpga与pc通过以太网口通信,使用的是wanpcap的方式
  • C#、VB与西门子PLC以太网通信的好方法-附件资源
  • FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议...
  • FX5U PLC通过自带以太网口走CC-LINK BASIC总线通信,最多可以带16个MR-JE-C伺服;性价比超级高。(包含PLC程序、HMI画面、伺服参数样例);希望对第一次使用MR-JE-C伺服的同学有所帮助。
  • 这个新的65纳米八CMOS物理层器件采用了Broadcom:registered: BroadR-ReachTM技术。BCM54880提高了使用标准以太网电缆的灵活性,可延长10/100以太网信号在单、双或4对5类线以及电话电缆上的传输距离(可延长至500...
  • C#调用dll和三菱FX3UPLC以太网口通信
  • 全球有线和无线通信半导体市场的领导者BROADCOM(博通)公司(Nasdaq:BRCM)今天宣布,ROBOSwitchTM交换芯片系列增加了一个新产品组,其中包括业界首款全集成48端口快速以太网交换芯片。新的BROADCOM:registered:交换...
  • STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准...

    通过 DMA 控制器进行介质访问控制 (MAC)

    STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。

    借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。

    ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于MAC数据包传输,ETH 还集成了站管理接口(SMI)接口专门用于与外部PHY 通信,用于访问PHY 芯片寄存器。

    物理层定义了以太网使用的传输介质、传输速度、数据编码方式和冲突检测机制,PHY 芯片是物理层功能实现的实体,生活中常用水晶头网线+水晶头插座+PHY 组合构成了物理层。

    ETH 有专用的DMA 控制器,它通过AHB 主从接口与内核和存储器相连,AHB 主接口用于控制数据传输,而AHB 从接口用于访问“控制与状态寄存器”(CSR)空间。在进行数据发送是,先将数据有存储器以DMA 传输到发送TX FIFO 进行缓冲,然后由MAC 内核发送;接收数据时,RX FIFO 先接收以太网数据帧,再由DMA 传输至存储器。ETH 系
    统功能框图如下。
    在这里插入图片描述
    在这里插入图片描述
    从上图可以看出,STM32F4是必须外接PHY芯片,才可以完成以太网通信的,外部PHY芯片可以通过MII/RMII接口与STM32F4内部MAC连接,并且支持SMI(MDIO&MDC)接口配置外部以太网PHY芯片。

    MII 和RMII 接口

    介质独立接口(MII)用于连接MAC 控制器和PHY 芯片,提供数据传输路径。RMII 接口是MII 接口的简化版本,MII 需要16 根通信线,RMII 只需7 根通信,在功能上是相同。
    在这里插入图片描述
    在这里插入图片描述

    • TX_CLK:数据发送时钟线。标称速率为10Mbit/s 时为2.5MHz;速率为100Mbit/s 时为25MHz。RMII 接口没有该线。
    • RX_CLK:数据接收时钟线。标称速率为10Mbit/s 时为2.5MHz;速率为100Mbit/s 时为25MHz。RMII 接口没有该线。
    • TX_EN:数据发送使能。在整个数据发送过程保存有效电平。
    • TXD[3:0]或TXD[1:0]:数据发送数据线。对于MII 有4 位,RMII 只有2 位。只有在TX_EN 处于有效电平数据线才有效。
    • CRS:载波侦听信号,由PHY 芯片负责驱动,当发送或接收介质处于非空闲状态时使能该信号。在全双工模式该信号线无效。
    • COL:冲突检测信号,由PHY 芯片负责驱动,检测到介质上存在冲突后该线被使能,并且保持至冲突解除。在全双工模式该信号线无效。
    • RXD[3:0]或RXD[1:0]:数据接收数据线,由PHY 芯片负责驱动。对于MII 有4 位,RMII 只有2 位。在MII 模式,当RX_DV 禁止、RX_ER 使能时,特定的RXD[3:0]值用于传输来自PHY 的特定信息。
    • RX_DV:接收数据有效信号,功能类似TX_EN,只不过用于数据接收,由PHY 芯片负责驱动。对于RMII 接口,是把CRS 和RX_DV 整合成CRS_DV 信号线,当介质处于不同状态时会自切换该信号状态。
    • RX_ER:接收错误信号线,由PHY 驱动,向MAC 控制器报告在帧某处检测到错误。
    • REF_CLK:仅用于RMII 接口,由外部时钟源提供50MHz 参考时钟。

    因为要达到100Mbit/s 传输速度,MII 和RMII 数据线数量不同,使用MII 和RMII 在时钟线的设计是完全不同的。对于MII 接口,一般是外部为PHY 提供25MHz 时钟源,再由PHY 提供TX_CLK 和RX_CLK 时钟。对于RMII 接口,一般需要外部直接提供50MHz时钟源,同时接入MAC 和PHY。

    在这里插入图片描述

    MAC 数据包发送和接收

    ETH 外设负责MAC 数据包的发送和接收。利用DMA从系统寄存器得到数据包数据内容,ETH 外设自动填充完成MAC数据包的封装,然后通过PHY发送出去。在检测到有MAC数据包需要接收时, ETH 外设控制数据接收,并解封MAC数据包得到解封后的数据,通过DMA传输到系统寄存器内。

    MAC 802.3 帧格式:

    在这里插入图片描述

    1. MAC 数据包发送

    MAC 数据帧发送全部由DMA控制,从系统存储器读取的以太网帧由DMA 推入FIFO,然后将帧弹出并传输到MAC 内核。帧传输结束后,从MAC 内核获取发送状态并传回DMA。在检测到SOF(Start Of Frame)时,MAC 接收数据并开始MII 发送。在EOF(End Of Frame)传输到MAC 内核后,内核将完成正常的发送,然后将发送状态返回给DMA。

    2. MAC 数据包接收

    MAC 接收到的数据包填充RX FIFO,达到FIFO 设定阈值后请求DMA 传输。在默认直通模式下,当FIFO 接收到64 个字节(使用ETH_DMAOMR 寄存器中的RTC 位配置)或完整的数据包时,数据将弹出,其可用性将通知给DMA。DMA 向AHB 接口发起传输后,数据传输将从FIFO 持续进行,直到传输完整个数据包。完成EOF 帧的传输后,状态字将弹出并发送到DMA 控制器。在Rx FIFO 存储转发模式(通过ETH_DMAOMR 寄存器中的RSF 位配置)下,仅在帧完全写入Rx FIFO 后才可读出帧。

    展开全文
  • 威纶通触摸屏使用以太网通信与多台人机联机的具体操作步骤
  • 应用优化高性能服务器解决方案提供商Supermicro发布了一款万兆以太网解决方案。高效的Supermicro UIO架构的AOC-UTG-i2及基于标准PCI-E架构的AOC-STG-i2的网络适配器,采用Intel 82598万兆以太网控制器,具有基于PCI-...
  • 德州仪器 (TI) 宣布推出一款六通道千兆以太网收发器,为数据通信与电信设备提供功能齐全的高灵活性接口。该器件端口密度高,占用空间小,功耗超低, 1.25 Gbps 速率下的功耗不足 1.5W,从而降低了整体系统成本、板级...
  • S7-1200 CPU 本体上集成了一个PROFINET 通信口,支持以太网和基于 TCP/IP和UDP 的通信标准。这个PROFINET 物理接口是支持10/100Mb/s的 RJ45,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个...
  • 武汉波仕电子公司1纯软件实现以太网串口通信的原理串口,一般就是指计算机的RS-232或者RS-485,是工业通信最常用的接口。本文介绍的就是如何利用以太网先组成局域网,再让2台或多台计算机都安装上即时通信软件...
  • 以太网通信技术在峨铁矿球团厂的应用.pdf
  • 本文结合ARM技术,采用32bitSTM32F105V微处理器和高性能的以太网控制芯片W5100实现高性能、高可靠性的嵌入式以太网通信接口设计,其系统各功能模块容易扩展和升级。
  • 本手册“QnUCPU 用户手册( 内置以太网端口通信篇)” 是用于使用户了解进行通用型QCPU 的以太网通信时功能的手册。
  • 本文设计了一种以STM32F407作为主处理器的以太网通信模块,使用自带MAC层的32位闪存微控制器STM32F407与外置PHY芯片LAN8720在LWIP协议栈的基础上实现以太网通信功能的系统设计方案,并通过LWIP协议栈的UDP通信与基于...
  • [HAL]stm32 ETH 使用UDP进行以太网通信

    千次阅读 2020-09-16 14:23:52
    探坑集 软件工具: stm32cubeMX 编程工具:keil uvision5 编译环境:win10 ...查看网络连接,能看到连上了以太网。查看ipconfig/all,可以得到本机ip(自己配置的静态IP) stm32使用的ip是192.168.8.2 ...

    《作甚务甚》硬件攻城狮系列二——使用UDP进行以太网通信

    软件工具: stm32cubeMX
    编程工具:keil uvision5
    使用芯片:stm32F437VIT6
    编译环境:win10
    任务目标:使用udp协议完成单片机与上位机的以太网通信。
    数据流向如下:
    data==>spi–>udp==>PC

    stm32cubeMX配置说明

    spi2的配置:
    在这里插入图片描述
    eth的配置

    程序开发过程

    使用stm32cubemx生成工程模板,在开发过程中的首要原则是尽量不改动hal库函数,自己用到的函数和文件自己重新写一个用户文件。
    库函数中可以添加修改的地方,模板中会给出注释指示,如:

    /* USER CODE BEGIN PM */
    
    /* USER CODE END PM */
    

    写在后面的吐槽

    我使用的是某东上面买的开发板,到手之后看着像是二手的,不少元器件上面都有被人用过的标记。调了好几天,都不行,最后技术归零,最开始的问题是芯片是坏的。。。

    1. 如何发现是坏的?
      这是根据换过芯片之后烧的程序就能使用来判断的。期间发生了不明情况,原开发板的芯片不知咋地上电1秒后就特别烫,手都放不上去那种,然后换了芯片,发现未改过的程序能正常工作,推断是原来的芯片不好。

    2. 生僻芯片挑选要谨慎
      一般来说我们常用的STM32F103 F407 F427这样的芯片,有好多很正规的靠谱的老店研发,也有相应的开发手册和教程来指导。像我选用的F437这个芯片,选开发板就遇到拆机件了,很坑。有画电路板经验的我觉得还是自己买芯片画个电路板调试可能会更好一点。

    3. 网上教程不一定可靠
      遇到问题百度虽然能解决不少问题,但是硬件开发来说,还是自己看手册看库函数说明更好一点。一开始我直接看网上的教程,按他们一步步来,但是就是不行,出现各种问题。

    展开全文
  • C# 和欧姆龙 Omron PLC 以太网通信

    千次阅读 2020-10-28 16:36:14
    C# 和欧姆龙 Omron PLC 以太网通信 此库支持欧姆龙IO位读写,数据区DM读写;若需要详细DEMO,关注微信公众号:Aidu_auto,回复 omron,获得DEMO(VS2013 C#)。

    在这里插入图片描述
    C# 和欧姆龙 Omron PLC 以太网通信
    默认IP:192.168.250.1 Port=9600
    支持CIO,W,H,按位读写,D区数据读写

    PS,
    CP1H上面的选件板插槽可以插入1-2块CP1W-CIF41模块,系统即具有了以太网功能,也可以使用CP1W-EXT01和CJ1W-ETN21以太网扩展模块来组态,用于在CX-Programmer软件下的编程或监控,也可以和其它网络设备(可以是上位机,也可以是其它的PLC或者是带有以太网接口的触摸屏等)进行通讯
    附录1、CIF41配置的主要操作步骤

    1、硬件设置及接线
    槽位对应DIP开关拨打ON,如插在第1槽DIP开关地4位置ON,如插在第2槽DIP开关地5位置ON,表示Toolbus。使用网线连接PC与CIF41。

    2、以太网选件板IP地址设置
    PC打开浏览器,访问默认设定网页:http://192.168.250.1/C00.htm;输入密码:ETHERNET(大写),点击【登陆】按钮进入设置界面。然后点击【设置】中【系统设置】选项进入系统设置界面,设置IP地址、子网掩码、FINS节点地址一定要设置为ip地址的最低位,点击【传送】,然后点击【重启】按钮,即可。

    3、PC电脑IP地址设置
    PC与CIF41的IP地址需设置为同一网段,末位不一致。子网掩码设置默认255.255.255.0
    此库支持欧姆龙IO位读写,数据区DM读写;若需要详细DEMO,关注微信公众号:Aidu_auto,回复 omron,获得DEMO(VS2013 C#)。或者直接获取下面链接:

    链接:https://pan.baidu.com/s/1rQnSxyec2UG-JLMGdWUSFQ
    提取码:ytqg

    展开全文
  • 以太网通信接口电路设计规范
  • 在自动化控制及其他民用设备、工业控制如电力设备系统等领域,众多设备的...本文介绍基于微处理器SEP3203串口以太网转换器的以太网接口的软硬件设计方法,它可以变传统的串口通讯为网络通讯,实现串口设备的快速联网。
  • 简单来说,要从以太网通信协议、电源、通信速率、工业环境认证考虑、安装方式、外壳对散热的影响、简单通信功能和通信管理功能、电或光的考虑。这些都是最基本需要了解的产品选择因素。如果对工业以太网的网络...
  • 行业文档-设计装置-一种将PLC的RS485总线通信口转成以太网通信口的智能模块
  • TIA博途软件安装在虚拟机中,如何连接PLC进行通信以太网+USB)?
  • S7200通信口引脚定义与以太网.doc
  • 威纶通触摸屏如何通过以太网口连接三菱FX5U系列PLC
  • FPGA以太网通信实验

    2022-07-14 10:42:12
    1.标准以太网10Mbit/S2.快速以太网100Mbit/S3.千兆以太网1000Mbit/S常用的芯片RTL8201,这个芯片通讯速率支持10M/100Mbit两种速度。以太网的接口类型有RJ45接口(电脑的网口),RJ11接口(电话线接口),SC光纤接口...
  • S7-300和S7-400集成的以太网口支持那些通信服务?pdf,西门子S7-300和S7-400集成的以太网口支持那些通信服务?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,267
精华内容 7,306
关键字:

以太网口通信

友情链接: VBA.rar