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

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

3天内不再提示

英创信息技术GPRS-串口数据透明传输简介

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

扫码添加小助手

加入工程师交流群

GPRS通讯和串口通讯都是工控领域使用极为频繁的数据传输方式,而实际工程中经常需要在GPRS和串口之间进行数据的透明传输,即:将串口终端设备传输过来的各种数据通过GPRS发送到另一设备,或者将GPRS终端设备传输过来的数据通过串口转发。利用英利开发资料光盘中的GPRS、以太网和串口示例程序,可以很容易地开发这样一个GPRS-串口数据透明传输的应用例程。

在英利开发资料光盘的“应用开发软件”-“典型应用”中,有一个名为“gprs232”的文件夹,就是GPRS-串口数据透明传输的示例工程文件。该例程包括了串口、以太网和GPRS操作,以多线程方式实现,程序流程如下:
1、初始化串口并启动串口数据处理线程
2、打开GPRS并建立连接
3、建立TCP连接,启动网络数据处理线程并进行数据透明传输

1、准备工作

在测试和使用该例程之前,需进行如下准备工作:

1、将英利工控主板的调试串口连接到开发主机,然后将英利工控主板的串口ttyS2(程序默认。如果使用其他串口,请参照程序代码,在命令行带入相关参数)与实验用PC机的串口连接(开发主机的COM1往往和英利工控主板的调试串口连接,用于通过超级终端操作英利工控主板。因此如果开发主机还有一个完好的串口,可以将此串口连接到ttyS2;否则建议客户另找一台PC机连接ttyS2,以便于测试该例程。本文中的“实验用PC机”就是指连接ttyS2的PC机)。

2、将实验用PC机、开发主机和英利工控主板都接入实验室内网,并确保实验室内网和公共局域网的连接都正确无误。

3、将ETA300与英利工控主板连接好,将实验用SIM卡装在ETA300上面。

4、将英利工控主板/mnt/nandflash文件夹下userinfo.txt文件中的默认网关改为0,即如下:
DefaultGateway='0'
如果不进行这个修改,则系统默认会通过以太网,而非GPRS传输数据。

5、通过实验室的网关路由器,为实验用PC机分配一个端口,并记下该网关路由器的外网IP地址。

6、将英利开发资料光盘“工具软件”中的“串口调试助手”和文件夹“TCPTest_Linux”复制到实验用PC机上,启动串口调试助手和“TCPTest_Linux”中的TCPTest。TCPTest启动以后将套接字类型选择为服务器,服务器名称填入实验用PC机的内网IP地址,服务器端口填入之前为实验用PC机分配的端口号,然后选择侦听,如下图所示。

2、例程测试

以上6步准备完毕以后,在开发主机上启动超级终端,为英利工控主板上电,启动sourcery g++并编译gprs232工程文件,通过超级终端将应用程序下载到英利工控主板的/mnt/nandflash文件夹中,并输入如下命令运行程序:
[root@EM9X60 /mnt/nandflash]#./gprs232 50

由于GPRS模块首次上电连接速度可能比较慢,因此此处设置了参数50(等待50秒。该项设置与用户使用的SIM卡有关。如果50秒以后仍然无法连接,可以将这个时间再加长)。一旦首次连接成功以后,只要不断开电源,再次运行该程序的时候可以不设置这个参数,直接如下运行即可:
[root@EM9X60 /mnt/nandflash]#./gprs232

此后系统自动进行初始化和连接,过程中用户可以看到ETA300上的SYNC灯闪动,表示找到SIM卡以及连网,同时超级终端会显示相应的运行信息。连接成功以后,超级终端最后一行信息显示:TCP Connect Success;同时,实验用PC机上TCP Test的消息栏也从不可编辑的灰色状态变为可以输入信息状态,如下图所示。

此后通过串口调试助手发送信息,可以看到信息显示在TCP Test的“接收的信息”栏中,通过TCP Test发送的信息则显示在串口调试助手的接收区中。发送/接收数据的过程中,ETA300的SYNC灯会闪动,表示数据正通过GPRS发送/接收。如果SYNC灯没有闪动,则数据并不是通过GPRS发送/接收。此时需检查userinfo.txt的默认网关是否配置为0。

3、程序说明

该例程的主程序参见光盘中的源文件。本例程以多线程方式实现,串口、TCP数据收发由各自独立的线程完成,这样不但能够充分发挥嵌入式Linux多任务操作系统的优势、实时处理数据,同时有利于减少系统开销、提高系统资源利用效率。其中主程序部分需要用户自行填写参数的是以下两个地方:

// 此处填写网关路由器的外网IP地址
strcpy( ServerIP, '222.212.15.128' );
// 此处填写通过实验室的网关路由器为实验用PC机分配的端口号
TCPClntManager.AddTCPClientObject( ServerIP, 7051 );

数据处理分别在串口数据处理线程ReceiveThreadFunc和TCP数据处理线程SocketThreadFunc中进行。

串口部分:

// 声明外部变量TCPClntManager类
extern class CTCPClientManager TCPClntManager;

int CSerial::ReceiveThreadFunc(void* lparam)
{
// 得到CSerial实例指针
CSerial *pSer = (CSerial*)lparam;
.
.
.
if (ret > 0)
{
// 判断是否读事件
if (FD_ISSET(pSer->m_fd,&fdRead))
{
// data available, so get it!
pSer->m_DatLen = read( pSer->m_fd, pSer->DatBuf, 100 );
// 接收串口数据处理函数
if( pSer->m_DatLen > 0 )
{
pSer->PackagePro( pSer->DatBuf, pSer->m_DatLen );
}
// 处理完毕
}
}
}

// 接收串口数据处理函数
int CSerial::PackagePro( char* Buf, int len )
{
// 将接收的数据发送至TCP服务器
CTCPClient* pTCPClnt;
Buf[len] = 0;
// 检测TCP连接是否打开
if( TCPClntManager.m_TCPClientInfo[0].ConnState == csOPEN )
{
pTCPClnt = (CTCPClient*)TCPClntManager.m_TCPClientInfo[0].pTCPClient;
// 调用CTCPClient类的发送函数将串口接收到的数据发送到TCP服务器
pTCPClnt->SendData( Buf, len );
}
return 1;
}

TCP部分:

// 声明外部变量CSerial类
extern class CSerial m_Serial;

// TCP数据处理线程
int CTCPClient::SocketThreadFunc( void* lparam )
{
CTCPClient *pSocket;
// 得到CTCPClient实例指针
pSocket = (CTCPClient*)lparam;
.
.
.
if (ret > 0)
{
.
.
.
else
{
// 对接收的数据进行处理
pSocket->RecvBuf[pSocket->m_nRecvLen] = 0;
// printf( 'RCV:%s\n', pSocket->RecvBuf);
// 调用CSerial类的发送函数将GPRS接收到的数据发送到串口调试助手
m_Serial.WritePort( pSocket->RecvBuf, pSocket->m_nRecvLen );
// pSocket->SendData( pSocket->RecvBuf, pSocket->m_nRecvLen );
// 处理完毕
}
}
}

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

    关注

    88

    文章

    11628

    浏览量

    217928
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯中科助力2025教育信息技术应用创新大赛成功举办

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-21 16:23 591次阅读

    诚迈科技信电脑助力2025第二届教育信息技术应用创新大赛圆满收官

    11月15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-17 17:58 330次阅读
    诚迈科技信<b class='flag-5'>创</b>电脑助力2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛圆满收官

    宝马南京信息技术有限公司开业

    今日,宝马(南京)信息技术有限公司在南京正式“挂牌运行”。这家华晨宝马全资子公司由领悦数字信息技术有限公司南京分公司“迭代”而来,代表着一次里程碑式的“进化”。这次升级不仅加速了宝马在华数字化转型进程,更通过深化本土创新,为“未来智慧出行”的发展谱写了核心“代码”。
    的头像 发表于 10-29 15:17 397次阅读

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节能高效蓝光的超级智能存储解决方案”凭借显著的
    的头像 发表于 08-07 15:35 1243次阅读

    信息技术应用产学协同人才培养行动计划”正式发布,诚迈科技入选首批参与单位

    设在中国软件评测中心。诚迈科技作为信技术先锋企业,受邀成为首批参与单位,与国内顶尖高校、领军企业和权威机构携手,共同打造具有中国特色的信息技术人才培养新范式,为
    的头像 发表于 08-06 17:29 1315次阅读
    “<b class='flag-5'>信息技术</b>应用产学协同人才培养行动计划”正式发布,诚迈科技入选首批参与单位

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 723次阅读

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

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

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 722次阅读

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

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

    龙芯中科荣获2024年度信息技术应用创新工作委员会卓越贡献成员单位

    近日,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称“信工委会”)在北京召开2024年度工作总结座谈会暨信“大比武”总结大会。中国工程院院士、信
    的头像 发表于 01-23 10:50 981次阅读

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 927次阅读

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 768次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 899次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 818次阅读

    深控信息技术公司:不需要点表的工业网关数据采集方案

    深控信息技术公司的 “不需要点表的工业网关” 数据采集方案,颠覆了传统依赖点表进行数据采集的模式。传统方式往往需要大量的人力和时间去配置点表,且在面对复杂多变的工业环境和设备时,容易出现错误和兼容性
    的头像 发表于 12-16 15:29 729次阅读
    深控<b class='flag-5'>信息技术</b>公司:不需要点表的工业网关<b class='flag-5'>数据</b>采集方案