首页 > 其他分享 >3-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK--设备作为TCP服务器,实现上位机TCP客户端和CAN之间的数据透传

3-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK--设备作为TCP服务器,实现上位机TCP客户端和CAN之间的数据透传

时间:2024-04-13 21:55:55浏览次数:28  
标签:IP地址 WIFI twai TCP 串口 message 数据 设备

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" width="100%"></iframe>

 

说明

这节设备作为TCP服务器, 上位机TCP客户端发送的数据通过CAN总线输出;  设备从CAN总线接收的数据发送到TCP客户端;

 

测试

1,打开这节的工程

根据自己的需求配置模组的热点 或 模组连接的路由器 或 CAN总线波特率 或者 TCP服务器监听的端口号;

如果连接路由器推荐自己设置静态IP, 这样子直接就知道了设备的IP地址;

静态IP地址的子网掩码和默认网关可以参考局域网内的电脑上的; 最后静态IP地址最后一个是有范围的(取决于路由器DHCP范围),

首先地址的前三个 xxx.xxx.xxx  和局域网内的电脑上的一致, 最后一个可以在电脑数字的基础上加个1

我下面的是 192.168.168.1  那么我可以设置设备的为  192.168.1.2

 

 

 

设置完成以后把程序下载到设备

 

 

 

2,连接上CAN总线设备

 

3,我这边使用网络调试助手进行测试

关于设备的IP地址: 

如果连接设备的热点,那么IP地址填写 192.168.4.1

如果设备连接了路由器,也可以在设备串口上看到设备的IP地址;  推荐一开始的时候自己设置静态IP

 

 

 

 

 

 

4,如果接收到数据会显示

一帧数据是12字节, 前面4字节是帧ID,后面8字节数数据

 

5,发送数据

前面四字节是帧ID,后面8字节是数据

 

 

这边使用CAN分析仪接收的数据

 

程序说明

1,TCP服务器接收到客户端的数据就把数据通过CAN发送出去

 

 

    length = len;
    count=0;
    while (length!=0 && length%12==0) //粘包的时候处理粘包
    {
        //帧ID
        uint32_t canId=0;
        canId = tcpServer1Recv[0+count]; canId= canId<<8;
        canId = canId + tcpServer1Recv[1+count]; canId = canId<<8;
        canId = canId + tcpServer1Recv[2+count]; canId = canId<<8;
        canId = canId + tcpServer1Recv[3+count];

        /*发送CAN消息*/
        twai_message_t* twai_message = (twai_message_t*)malloc(sizeof(twai_message_t));
        if(twai_message != NULL )
        {
            memset(twai_message, 0, sizeof(twai_message_t));

            /*数据*/
            memcpy(twai_message->data, &tcpServer1Recv[4+count], 8);//拷贝数据
            twai_message->data_length_code = 8;//数据个数
            twai_message->extd=0;//0-标准帧; 1-扩展帧
            if (canId>0x7FF)//扩展帧
            {
                twai_message->extd=1;
            }
            
            twai_message->identifier = canId;//帧ID
            twai_message->rtr = 0;//0-数据帧; 1-远程帧
            /*把消息发送到消息队列*/
            if (xQueueSend(QueueHandleCanTransmit, &twai_message, 5/portTICK_PERIOD_MS) != pdPASS)
            {
                free(twai_message);
            }
        }


        count=count+12;
        length = length -12;
    }

 

 

2,通过CAN接收的数据发送给TCP客户端

 

 

3,用户可以以1ms高频率发送CAN数据

下面是以1ms频率发送数据, 发送了5分钟,十分稳定

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

标签:IP地址,WIFI,twai,TCP,串口,message,数据,设备
From: https://www.cnblogs.com/yangfengwu/p/18133435

相关文章

  • linux下tcpdump的抓包
    tcpdump****中最常见的几个参数首先查看网卡名称ifconfig:  最常用的配置和查看网络接口信息的命令-i指定要抓取数据包的网卡名称tcpdump-ieth0-c10#抓取eth0网卡的数据包 ,不设数量10,会一直监听下去-w把抓取到的数据存放到文件中使用wireshark查看,保存在root下tc......
  • PWM、通信、串口通信、UART、TTL、51单片机串口通信、定时器初值的计算公式
    我要成为嵌入式高手之4月8日51单片机第三天!!————————————————————————————PWM        脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应......
  • 升级到windows 11后无法连接公司的WIFI
    电脑升级到win11后,就无法连接到公司的域WIFI了。其他输密码的WIFI都是正常的,包括手机热点的WIFI都可以正常连接就是无法连接到公司的加域的WIFI。重新加域,重新安装驱动,都试过了,还是不行。网上到处找解决方案。终于找到一个靠谱的问题定位到:CredentialGuard原来从Windows......
  • TCP与UDP
    简述TCP与UDP区别TCP(传输控制协议)和UDP(用户数据报协议)是两种常见的网络传输协议,它们在传输数据的方式、特性和用途上有着显著的区别:连接TCP:是一种面向连接的协议。在数据传输之前,必须建立一个稳定的连接。TCP连接是通过三次握手过程建立的,这个过程确保了双方的发送和接收能......
  • WiFi6详解
    移动互联网时代,“WiFi”和“4G”一直是两个并存的名词——4G网络在室外给我们提供高速流量,WiFi则在室内给我们提供了真正的不用操心的“无限流量”。可以说生活在当下的我们,这两样东西一个不但都离不了且一刻也离不开。想想看如果你的手机断了网,你的焦虑症恐怕就上来了。关于......
  • linux服务器 tcp高并发压测需要设置项
    linux服务器部署了一个tcp服务,需要进行并发压力测试 看看服务器能支持多少个tcp长连接  预计会有50w个连接需要设置linux不然是无法支持这么多连接的  如果达到这个值是无法建立新连接的 报错信息一般为 toomanyopenfiles 1, fs.file-max li......
  • ubuntu安装AX200 wifi驱动
    第一步:先了解自己的无线网卡的品牌和型号;可以在:此电脑->管理->设备管理器->网络适配器 中找到,或者下载一个鲁大师查看第二步:下载驱动文件;例如我的无线网卡是intelAX200,我便曲intel官网下载,如: intel的linux无线网卡驱动下载链接: intel无线网卡驱动(linux)第三步:下载kernel......
  • 用8266实现wifi无线图传
    波特率修改    8266配置921600波特率,串口波特率配置到最大,图传速度以及效果会好一点。使用USB转TTL连接8266进行配置,硬件连接如下:接着打开串口调试助手进行配置,这里选择对应COM口,然后发送AT+UART=921600,8,1,0,0这个指令,设置其串口波特率到921600,当它返回OK即可。如下图......
  • CommMonitor 如何开始、暂停、停止监控串口?
    CommMonitor如何开始、暂停、停止监控串口?1、通过工具栏上的[开始监控、暂停监控、停止监控]或打开菜单->监控,如下图:开启监控:指内核驱动正式捕获串口数据,数据包序号计数开始;暂停监控:指内核驱动暂停捕获串口数据;停止监控:指内核驱动停止捕获串口数据并重置数据缓存,数据包序......
  • CommMonitor 如下载安装串口监控精灵软件?
    1、CEIWEICommMonitor串口监控精灵软件下载方式官网:http://www.ceiwei.com/mt/软件简介:http://www.ceiwei.com/mt/download/showdownload.php?id=21、CEIWEICommMonitor串口监控精灵软件下载方式华军网下载:https://www.onlinedown.net/soft/98731.htm非凡......