物联网行业中透明传输详解以及如何实现

01

概述

TCP透传功能是一种数据传输技术,它允许在两个TCP连接之间实现数据的无缝传输,保持原始连接的状态和数据完整性。通过透传,中间的服务器可以成为一个透明的传输通道,不对数据进行任何处理或修改,从而实现数据的原始传输。这种技术对于需要保持数据原始性和完整性的应用场景非常有用,例如物联网设备的数据传输、远程监控系统的数据传输等。

此外,TCP透传功能不仅限于直接的TCP连接之间的数据传输,还可以应用于更复杂的场景,如智能网关的串口服务。在这种情况下,智能网关可以通过配置串口参数和服务器参数,将串口通信转换为TCP透传形式,实现串口数据的网络传输。这种转换允许用户通过网络调试工具监听TCP端口号,设置相应的参数,如TCP服务器IP、端口号等,从而实现串口数据的远程管理和监控。

总的来说,TCP透传功能通过保持数据的原始性和完整性,为需要高可靠性数据传输的应用提供了有效的解决方案。无论是直接TCP连接的数据传输,还是串口通信的转换,TCP透传都能确保数据的准确无误传输,是物联网、远程监控等领域中不可或缺的技术之一


02

应用场景

发送方和接收方数据的长度和内容完全一致,相当于一条无形的传输线。透明传输技术在诸如OTN、PTN的很多领域都有使用。T-MPLS网络中,PWE3是其中的一项关键技术。PWE3(Pseudo Wire Emulation Edge-to-Edge)是一种业务仿真机制,希望提供尽量少的功能,按照给定业务的要求仿真线路。这一机制要求在分组交换网络(PSN)的隧道中建立与维护伪线(PW),使用PW封装和传送业务数据或时钟同步信息,并尽可能真实地保持业务数据或时钟同步信息本身具有的属性和特征。对于客户设备而言,PW表现为特定业务独占的一条链路或电路,称之为虚电路(VC-Virtual Circuit)。图1为网络模型示意图。

对于提供多业务传送的服务提供商,当前的基础设施通常由并行或重叠的网络构成,这些网络的每一部分执行特定的服务,这给网络建设与维护两个方面都带来沉重的负担。呈现的多网络也使得网络规划趋于复杂。为获取最大的投资回报和付出最小的维护代价,服务提供商指望将多业务纳入到单一的网络之中,这就是经优化的分组汇聚网络。


03

透传组件使用方式

1 Gitee链接地址

组件位于amaziot_bloom_os_sdk\libraries\am\am_trans.c

Gitee源码地址:https://gitee.com/ning./hongdou

Github源码地址:https://github.com/ayumid/hongdou

2 应用层组件功能介绍

项目开发中,遇到了串口需要实现两种功能,例如,一种是通过指令去配置设备的参数,一种是作为一个串口转Socket的接口,这时候需要通过一个变量,来控制当前是哪种模式。

使用该组件,必须同时使用AT组件,文件组件,TCP组件,心跳组件,用于查看模式切换是否成功。

3 代码讲解

1 dtu_uart_data_recv_cbk

功能:该函数用于,串口数据接收回调函数,通过UART_OPEN注册给底层。

参数:

参数

释义

data

串口数据缓冲区指针

len

数据长度

返回值:无

示例:

//打开串口,并设置回调函数
 UART_OPEN(dtu_uart_data_recv_cbk); 

2 dtu_uart_data_recv_thread

功能:该函数用于,创建串口接收数据线程,以及相关资源初始化。

参数:无

返回值:无

示例:

//串口数据接收线程
 status = OSATaskCreate(&dtu_trans_task_ref, dtu_trans_task_stack, DTU_TRANS_TASK_STACK_SIZE, 160, "dtu_uart_data_recv_thread", dtu_uart_data_recv_thread, NULL); 
ASSERT(status == OS_SUCCESS);

3 dtu_trans_uart_init

功能:初始化透传任务,以及相关资源。

参数:无

返回值:无

示例:

//初始化AT 透传串口 
dtu_trans_uart_init();

4 dtu_trans_task_init

功能:该函数用于,初始化透传任务,以及相关资源。

参数:无

返回值:无

示例:

//初始化透传任务,需要先初始化串口,否则后面串口输出失败 
dtu_trans_task_init();

4 Demo实战

4.1 创建一个Demo

复制20.1_file_xtu示例工程,到同一个文件夹下,修改文件名为20.4_trans_xtu,如图:

4.2 修改makefile

增加文件组件所在目录头文件路径,和源文件路径,如图:

4.3 增加头文件

使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:

4.4 修改代码

示例使用的是板载5x6卡,用户的硬件可能是使用外置卡,或者是三合一全网通卡,因为硬件上三种卡使用的模组SIM卡接口不一样(外置卡SIM1,5x6卡和三合一卡SIM2),所以,需要通过一个全局变量来制定SIM卡硬件接口。

extern外部变量SDK_INIT_SIM_SELECT_VALUE,这里判断了是否使用外置卡,这个宏定义在Makefile里面定义。

在Phase1Inits_enter中,宏定义判断是否要包含对SDK_INIT_SIM_SELECT_VALUE变量的修改。

在Phase2Inits_exit 调用文件组件提供的对外API,如图:

4.5 编译

在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\libraries\20.4_trans_xtu\

PS F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A08
λ .\build.bat -l .\amaziot_bloom_os_sdk\sample\libraries\20.4_trans_xtu\
子目录或文件 out\bin 已经存在。
命令语法不正确。
子目录或文件 build\obj 已经存在。
gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A08/amaziot_bloom_os_sdk/sample/libraries/20.4_trans_xtu'
armcc.exe -c  --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast  -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值