0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术Linux主板4G通讯断线重连的自动管理

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-11 17:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在工控主板使用的现场环境中,可能会有一部分不能够提供以太网的情形,所以3G和4G网络以其便捷的使用方式,得到越来越广泛的应用。但是在使用无线通讯的时候,为了保证通讯的稳定性,断线重连机制是必须在程序中实现的。

为了让客户能够更加便捷的进行开发,英创公司在Linux主板上实现了自动拨号和断线重连的管理功能,并以库文件的形式放在主板文件系统中提供给客户。通过拨号管理库提供的API函数,客户就能够方便的实现自动拨号以及断线重连的功能,下面就详细介绍针对英创Linux主板的拨号管理库及导出的API函数。

英创公司提供的拨号管理库文件名为libautodial.so,在编译应用程序的时候,需要链接这个库文件,如果客户使用光盘资料中提供的eclipse工具进行开发,在编译之前需要对工程进行设置,设置方法为选择对应的工程,通过右键菜单进入properties,点击右侧C/C++ Build子栏目,选择其中Settings这一项,在C++ Linker子项中添加库文件和路径,如下图:

工程设置

Windows开发环境和Ubuntu开发环境下面的eclipse设置方法相同。对运行环境的英创主板,其根文件系统/lib路径下已经做好了相应设置,客户不需要再做任何操作,直接运行编译好的程序即可。

拨号管理库文件libautodial.so一共提供了三个API函数,分别实现连接,查询和断开的功能,函数接口定义如下:

/**
* 启用拨号管理线程
*
* 函数会创建一个线程用来进行拨号管理
* 实现自动拨号,以及断线重连
*
* 返回值说明:
* 0 表示成功开启拨号管理线程。
* -1 表示在当前环境无法运行。
*
*/
intpppconnt_start();
/**
* 查询连接状态
*
* 返回值说明:
* 0 表示运行连接正常。
* -1 表示连接断开。
* -2表示信号太差或者没有读取到SIM卡导致连接失败。
* -3表示连接模块无响应,建议检查硬件连接和驱动是否加载成功。
*
*/
intpppconnt_check();
/**
* 关闭连接
*
* 关闭拨号管理功能,并关闭已建立的连接。
*
*/
voidpppconnect_stop();

pppconnt_start()函数会创建一个线程来对整个拨号的流程实现自动管理,管理线程一开始便会自动判断接入的模块型号,根据模块型号调用对应的拨号脚本,然后进行拨号和断线重连。所以对于客户来说,只需要调用一次pppconnt_start()函数,就会创建出一个实现拨号管理的线程,不需要再执行其他任何操作。

pppconnt_check()函数提供了查询功能,如果在使用过程中客户想获取连接状态,可以通过调用该函数的返回值来判断,0为正常连接,-1为连接断开,-2为信号弱或者无信号,可能是由于没有接天线或者没有读取到SIM卡造成的,-3为模块无响应,可能是由于没有识别到外部模块或者没有加载驱动造成的。如果一直无法连接成功,客户可以根据查询的返回值判断原因,还可以增加硬件复位和重新上电等操作来保证模块的正常工作。

pppconnt_stop()函数,这个函数会关闭拨号管理线程,以及已经建立好的连接。在客户需要关闭拨号连接或是对模块进行复位等操作时,建议先调用pppconnt_stop()函数释放相关资源。

客户在主板上电后,需要先加载4G模块对应的驱动,因为需要驱动加载成功后,才能通过虚拟串口使用程序与模块之间进行交互,加载驱动可以放在程序或者脚本中进行,驱动加载的方法可以参考文章:《英创Linux主板基于3G和4G的无线通讯方案》中的说明。驱动加载成功后,系统会生成对应的虚拟串口,这时就可以调用拨号管理库中提供的pppconnt_start()函数进行拨号连接了。根据上面的介绍和对API函数的描述,我们使用以下代码进行简单的测试:

int i1;
//先调用一次pppconnt_stop,关闭连接
pppconnt_stop();
//通过代码加载驱动,测试使用华为ME909s,VID=0x12d1,PID=15c1
system("insmod /lib/modules/4.1.15/usbserial.ko vendor=0x12d1 product=0x15c1");
//开启拨号管理
i1 = pppconnt_start( );
printf("i1 = %d\n", i1);
while(1)
{
i1 = pppconnt_check();
if(!i1) {
printf("connected!\n");
//main processing
//...
sleep(5);
}
else {
//返回值为-,说明连接断开
if(i1 == -1)
printf("disconnect!\n");
//返回值为-2,说明检测不到信号,可能是没有检测到SIM卡,这里执行退出
else if(i1 == -2) {
printf("singal is weak, please check SIM card!\n");
break;
}
//返回值为-3,说明模块无响应,这里执行退出
else if(i1 == -3) {
printf("there is no response, please check hardware!\n");
break;
}
}
sleep(1);
}
//退出循环,调用pppconnt_stop,释放相关资源
pppconnt_stop();
return 0;

例程中对于查询到的状态,我们只是做了简单的打印,方便观看效果,在遇到没有读取到SIM卡和模块无响应的情况下就退出,在实际使用中可以加入硬件复位和重新上电等操作。应用处理由sleep函数代表,可更换为其他处理代码。例程测试效果如下:

建立连接

可以看到系统通过程序加载驱动后,生成了相应的虚拟串口,然后启用了拨号管理功能,start_connect()函数读出模块为ME909s,根据模块型号调用了对应的拨号脚本,连接成功后,检测线程打印出connected,说明连接已经成功。为了测试效果我们通过终端关闭拨号连接,模拟断线的情况,来测试是否能够实现自动重连:

断开模块

从打印信息可以看到,在我们通过终端关闭拨号连接后,检测程序打印的信息提示disconnect,说明此时拨号连接已经断开。pppconnt_check()函数检测到连接断开但是硬件正常,于是返回-1,根据测试代码,就会打印disconnect信息。接下来我们查看拨号管理线程是否会自动重连,打印信息如下:

重连过程

根据打印信息可以看出,在断开连接以后,10s左右的时间便重新连接上了,重新连接的过程是在拨号管理线程内部进行的,当检测程序提示了connected,就说明重连成功。

成功连接后,会生成ppp0网口,可以使用ifconfig命令查看,如果要使用ppp0网络,采用linux标准的网络编程就可以了,即创建套接字绑定ppp0,然后进行需要的设置和操作,关于这部分的说明,可以参考我们提供的编程应用手册以及例程step3_tcpserver、step4_tcpclient。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    4

    文章

    3706

    浏览量

    94326
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    37162
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯主板——信体系的智慧硬核基石

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板的自主可控程度直接决定信创新基建的稳固性,正发挥着日
    的头像 发表于 03-11 10:44 259次阅读
    龙芯<b class='flag-5'>主板</b>——信<b class='flag-5'>创</b>体系的智慧硬核基石

    基于BLE/WiFi/Ethernet/4G技术接入云平台物联网络解决方案--自网桥/网关应用选型指南

    网桥/网关应用选型指南 在物联网项目落地过程中,选对数据通道架构,往往比选终端设备更重要。 • BLE 设备如何联网? • 有线设备如何无线化? • 没有宽带环境是否必须上 4G? • 医疗
    的头像 发表于 03-04 17:16 278次阅读
    基于BLE/WiFi/Ethernet/<b class='flag-5'>4G</b>等<b class='flag-5'>技术</b>接入云平台物联网络解决方案--自<b class='flag-5'>连</b>网桥/网关应用选型指南

    国产金融主板:赋能智慧金融,驱动信产业升级

    随着信息技术的飞速迭代,信产业已在全球范围内崛起,成为拉动经济增长、激活创新动能的核心力量。在信产业的关键布局中,智慧金融建设是重中之重,而国产金融主板的规模化应用,正为智慧金融建
    的头像 发表于 12-31 09:03 252次阅读
    国产金融<b class='flag-5'>主板</b>:赋能智慧金融,驱动信<b class='flag-5'>创</b>产业升级

    国产芯筑基,飞腾主板赋能信未来

    信息技术自主可控成为国家战略的今天,信产业正从“政策驱动”迈向“市场驱动”的高质量发展新阶段。作为信产业链的核心硬件基石,主板的国产化水平直接决定着整个
    的头像 发表于 12-30 09:49 358次阅读
    国产芯筑基,飞腾<b class='flag-5'>主板</b>赋能信<b class='flag-5'>创</b>未来

    瑞芯微(EASY EAI)RV1126B 4G通讯

    1.4G模块使用简介4G模块需要搭配着SIM卡(【普通SIM卡】或【物联网卡】)使用,因此需要通过AT指令进行拨号上网。而且在Linux系统中,它作为一个网卡设备被使用,因此也需要对其进行网络
    的头像 发表于 12-04 09:00 1348次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>4G</b><b class='flag-5'>通讯</b>

    电能质量在线监测装置通信超时会吗?

    维度展开分析: 一、通信的核心技术机制 1. 协议层重传与超时管理 Modbus 协议 :支持超时重传 3 次(默认配置),
    的头像 发表于 11-05 17:55 1636次阅读

    新时代的硬核基石:龙芯工控主板助力信产业新基建

    在数字技术重塑产业格局的今天,信产业已成为保障国家信息技术安全的核心战略。作为工业自动化系统的大脑,工控主板的自主可控程度直接决定信创新基
    的头像 发表于 11-05 13:54 391次阅读

    车联网智能车载终端4G全网通T-BOX设计与应用

    新能源汽车监管BMS数据上传、充电状态监控 中山迈易科技车联网车载终端 技术标准与发展趋势 合规要求:需符合GB/T32960国标协议,实现终端与车辆信息交互 技术演进:从4G向5
    发表于 10-11 10:06

    智慧新核心,龙芯主板助力信体系再升级

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板正发挥着日益重要的作用。
    的头像 发表于 08-11 09:14 807次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 828次阅读

    浪潮澎湃,国产主板迎来黄金时代!

    2025年7月,表示必须在2027年底前完成信100%替代,覆盖基础硬件、基础软件等核心领域。在信息技术应用创新浪潮席卷下,国产主板作为计算机系统的骨架,正从幕后走向台前。政策加持、技术
    的头像 发表于 07-21 14:00 615次阅读

    4G开关量对传模块:不限距离无线通讯,PLC远程控制

    4G全网通+云端对传技术,将PLC的开关量信号(DI/DO)无线延伸至全球任意角落,零布线、零距离限制、毫秒级响应,彻底重构工业设备控制边界! 一、 关键特性 通讯距离:4G覆盖即可达
    的头像 发表于 06-24 15:36 963次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 9553次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    4G DTU 无线数传模块:RS232/485转4G,稳定不宕机

    4G DTU(Data Transfer Unit)是一种工业级物联网数据传输设备,主要用于将串口(如RS232/RS485)数据通过4G网络无线传输到远程服务器或云平台。它是工业自动化、远程监控
    的头像 发表于 05-29 14:58 1848次阅读

    浪潮下,国产主板有什么新的发展机遇?

    信息技术应用创新浪潮的推动下,国产主板迎来了诸多新的发展机遇。信产业旨在实现信息技术领域的自主可控,这一战略目标为国产主板的发展提供了广
    的头像 发表于 05-09 09:24 872次阅读
    信<b class='flag-5'>创</b>浪潮下,国产<b class='flag-5'>主板</b>有什么新的发展机遇?