CN106534260A - 基于三层状态机的物联网设备通信方法 - Google Patents
基于三层状态机的物联网设备通信方法 Download PDFInfo
- Publication number
- CN106534260A CN106534260A CN201610881149.4A CN201610881149A CN106534260A CN 106534260 A CN106534260 A CN 106534260A CN 201610881149 A CN201610881149 A CN 201610881149A CN 106534260 A CN106534260 A CN 106534260A
- Authority
- CN
- China
- Prior art keywords
- state machine
- layer
- communication
- layer state
- things equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于三层状态机的物联网设备通信方法,其将通信模块的AT命令划分为3个层次,每个子模块出的问题不会影响到其它子模块。第一层状态机负责整个通信模块的运行,如开机,重启,启动第二层状态机等功能,第二层状态机根据CM提供的功能分为通信状态机,应用程序状态机。在通信过程建立以后,通信子模块启动第三层状态机,监控系统的数据收发,连接的可靠性等,一旦发线掉线,第三层状态机通知系统启动通信状态机的重连功能。这个过程中不影响应用程序的功能,掉线期间应用程序运行数据等信息存放在MCU中或外存中,待通信恢复正常后再发送。本发明用于物联网设备通信,能避免因系统连接中断,而导致的应用程序暂停和部分数据的丢失。
Description
技术领域
本发明涉及物联网技术领域,具体涉及基于三层状态机的物联网设备通信方法。
背景技术
目前,对于物联网设备,通信功能是其主要功能之一,物联网设备在前端采集数据后,一般要通过2G/3G/4G网络发送数据,数据的发送使用通信模块(CM,CommunicationModule)完成,典型的做法是MCU(微处理器)通过串口发送通信命令(AT命令)来操作,AT命令组成了一系列操作,包括读取sim卡信息,注册移动网络,激活网络环境变量,建立TCP连接,收发网络数据等操作。由于移动环境中,通信质量较差,在遇到网络覆盖较弱的环境时,容易发生掉线,连接中断的问题,这时,系统应启动重连机制。
而通信模块一般集成了GPS/北斗定位系统,蓝牙等应用功能,一旦系统连接中断,重连过程中往往造成应用程序(如GPS/北斗定位等)的暂停和部分数据的丢失。
发明内容
本发明的目的在于,基于上述问题,提供一种基于三层状态机的物联网设备通信方法。即将通信模块的AT命令划分为3个层次,每个子模块出的问题不会影响到其它子模块。第一层状态机负责整个通信模块的运行,如开机,重启,启动第二层状态机等功能,第二层状态机根据CM提供的功能分为通信状态机,应用程序状态机(如定位状态机、蓝牙状态机等)。在通信过程建立以后,通信子模块启动第三层状态机,监控系统的数据收发,连接的可靠性等,一旦发线掉线,第三层状态机通知系统启动通信状态机的重连功能。这个过程中不影响应用程序的功能,掉线期间应用程序运行数据等信息存放在MCU中或外存中,如TF卡,待通信恢复正常后,另行发送。
每层状态机的具体内容如下:
第一层:分为初始化,启动脉冲,运行状态,在运行状态中启动第二层状态机;
第二层:根据芯片提供的功能,每个功能有一个子状态机,以一般模块都有的通信功能为例,通信状态主要分为:读取参数,注册移动网络,激活上下文,发起网络连接,网络重连。在网络连接建立后,系统启动第三层状态机。
如果有GPS模块,则本层还有GPS状态机,主要状态有,发起GPS功能,获取定位数据,存放定位结果及其它数据。
第三层:网络连接稳定后,本层负责数据收发,稳定性侦测工作,主要状态有:数据组装,发送,接收解析,连接检测,返回等,返回后本状态机注销,待第二层通信功能恢复后重新启动。
基于上述分层的三层状态机的物联网设备通信过程为:
物联网设备开机后,系统启动第一层状态机,进行初始化及生成启动脉冲;然后启动第二层状态机;
运行第二层状态机,通过通信状态机建立用于发送数据的网络连接;在网络连接建立后,通知系统启动第三层状态机;应用程序状态机启动运行,生成运行数据,并通过第三层状态机发送运行数据;
运行第三层状态机,用于网络连接的维护与数据收发。即第三层状态机进行数据收发并同时监控通信状态机的通信状态,当检测到通信中断,则通知系统启动通信状态机的重连功能,重新建立网络连接;并通知应用程序状态机将运行数据进行本地存储,待检测到通信状态机重连成功后,通知应用程序状态机停止本地存储,将本地存储和当前运行数据通过网络连接发送。
综上,本发明的有益效果是:保证了物联网通信功能的稳定,能避免因系统连接中断,而导致的应用程序暂停和部分数据的丢失。
附图说明
图1是第一层状态机的示意图;
图2是第二层状态机的示意图;
图3是第三层状态机的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
具体实现时,以车载板子IVT-100为例,该板的MCU采用STM32的f103芯片,有tf卡做临时存储,通信模块采用思科尔特公司的ST87模块,该模块具有GPRS通信,GPS定位和蓝牙功能,MCU与通信模块采用uart串口连接,通过串口发AT命令操作ST87模块,ST87模块运行的结果通过串口返回给MCU。ST87模块需要MCU发一个1秒以上的高脉冲启动。
参见图1,用于系统(物联网设备的操作系统)开机的第一层状态机的状态有:GPINI、GPHIGHPLS、GPPWRWRK、SUBFSM,具体含义如表1所示:
表1
物联网设备开机后,首先进行初始化,即启动状态GRINI,然后启动状态GPHIGHPLS,由MCU向ST87模块发送一个高脉冲,持续1.5s,再启动状态GPPWRWRK,由MCU向ST87模块(例如管脚PB.1)发送一个低脉冲,持续1.5s,使得ST87模块开始工作。在完成ST87模块的启动后,启动第二层状态,即启动状态SUBFSM,进入到第二层状态机所包括的各子状态机的运行。本具体实施方式中,第二层状态机包括的子状态机为:BT(蓝牙)子状态、GPS子状态和GPRS(通信)子状态,其对应的状态值依次为:btfsm、gpsfsm和gprsfsm。
在SUBFSM状态,系统通过第三层状态机实时检测通信状态,若通信中断,则通知GPS子状态和GPRS子状态将定位数据保存在物联网设备的外置存储器TF卡中,待网络连接回复后发送。
通信子状态的各状态项的功能如表2所示:
表2
参见图2,MCU通过串口向ST87模块发送的不同命令以建立网路连接,具体为:
MCU向ST87模块发送AT+CIMI命令,读取物联网设备的设备识别码(IMSI号),然后发送AT+CCID命令,读取SIM卡号;发送AT+CSQ命令,获取信号质量,完成网络检测后发送AT+CGREG命令进行网络注册。待注册成功(通过接收到对应的应答信息来判别是否注册成功,如接收到“+CGREG 0,1”的应答,则认为注册成功)后,发送AT+CIPMUX命令设置IP连接数目,初始IP连接数目为0。发送AT+CSTT命令,进行APN配置,比如AT+CSTT=“CMNET”,“”,“”,配置完成后,发送AT+CIICR命令,以激活移动场景,其中CMNET表示移动环境变量。如激活PDP(分组报文协议)上下文,激活成功后,发送AT+CIFSR命令,查询本地IP,例如IP为121.110.24.100,然后基于该IP通过AT+CIPSTART命令,建立网络连接。如AT+CIPSTART=“TCP”,”121.110.24.100”,”1800”,其中TCP为连接方式,本发明中,可以是TCP或UDP等,1800为端口。若连接失败,则发送AT+CIPSHUT命令关闭当前连接并通过AT+CGREG命令重新进行网络注册;若连接建立,则发送AT+CIPQSEND命令设置快发模式,即TCP发送后不必关系是否收到应答,当出现通信中断(CIPCLOSE)时,则通过AT+CSTT命令进行网络重连。最后,在完成快发模式的设置后,进入具体工作状态,即进入第三层状态机CWORKING。工作状态取决于网络连接建立时的连接方式设置,如设置为TCP,则进入TCP工作状态。
第三层状态机的状态项的功能如表3所示:
表3
状态编号 | 状态值 | 命令 | 说明 |
0 | CIPSEND | AT+CIPSEND | 启动发送命令 |
1 | CSENDBUF | 发送缓冲区数据 | |
2 | CIPSTATUS | AT+CIPSTATUS | 检查IP状态 |
3 | CIPCLOSE | AT+CIPCLOSE | 关闭IP连接 |
4 | CFWSTATE | 进入固件更新状态 | |
5 | CFWATSEND | 发送固件命令 | |
6 | CFWBUFSEND | 发送固件数据 | |
7 | IDLE | 空闲 |
参见图3,第三层状态机基于MCU通过串口向ST87模块发送的不同命令实现网络连接维护和数据收发的具体过程为:
当MCU检测到当前发送队列为空闲时,则向ST87模块发送AT+CIPSEND命令,启动数据发送。例如每隔5秒启动一次发送命令或者当前存在以往发送丢失数据时,启动数据发送,对缓冲区数据进行发送处理。若发送失败,则MCU向ST87模块发送AT+CIPSTATUS命令,启动IP状态检查,若连接失败,即通信中断,则MCU向ST87模块发送AT+CIPCLOSE命令,关闭IP连接,并发送AT+CSTT命令进行网络重连,即第三层状态机停止工作,运行通信状态机(第二层状态机)的重连功能。
在数据收发的同时,固定队IP状态进行检查,若当前连接正常,则继续根据发送队列的状态进行对应处理;否则关闭IP连接,并发送AT+CSTT命令进行网络重连。
另外,当需要进行固件更新处理时,则进入到固件更新状态,MCU发送请求固件命令获取固件数据,通过验证后,继续请求,若请求失败,则启动IP状态检查;若发送成功,则重启物联网设备。
实施例
将物联网设备装在车上,车辆沿高速公路行驶2小时,采用单状态机和采用本发明的三层状态机运行,各项指标对比如表4所示:
表4
上表中,两种情况下的掉线时间类似,这是由于移动场景下的环境决定的,当车辆在高速行驶时,通信信号质量会有较大影响,尤其是附近基站较远,两个基站之间切换时,容易掉线。在单状态机情况下,掉线重连过程中,GPS定位会中断,造成定位丢失,而采用本发明的三层状态机,GPRS重连过程不会影响GPS、蓝牙等其它功能,掉线期间的数据存在tf卡上,待连接重建后补发,所以这种情况下的定位丢失率为0。
车辆信息是指从CAN(Controller Area Network)线口取得的数据,这些数据按要求也要发送到服务器,采用单状态机结构时,一旦掉线,这部分数据也会丢失,而采用本发明的三状态机结构,掉线时的数据会在连接恢复后补发。
定位准确率是指系统获得的经纬度坐标的准确性,GPS定位误差在10米以内,但车辆经过一些电磁干扰较强的场所时,如变电站,雷达站等,GPS的定位会受到极大影响,使其数据不可用,这种情况下,三层状态机方法可使用GPRS的AGPS功能,进行基站定位。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (2)
1.基于三层状态机物联网设备通信方法,其特征在于,包括下列步骤:
将物联网设备的微处理器通过串口向通信模块发送的通信命令分为三层状态机:第一层状态机用于物联网设备的通信模块的运行启动,第二层状态机包括通信状态机和应用程序状态机;第三层状态机用于通信状态的监控;
物联网设备开机后,系统启动第一层状态机,完成系统初始化,然后启动第二层状态机;
运行第二层状态机,通过通信状态机建立用于发送数据的网络连接;在网络连接建立后,通知系统启动第三层状态机;应用程序状态机启动运行,生成运行数据,并通过第三层状态机发送运行数据;
运行第三层状态机,第三层状态机进行数据收发并同时监控通信状态机的通信状态,当检测到通信中断,则通知系统启动通信状态机的重连功能,重新建立网络连接;并通知应用程序状态机将运行数据进行本地存储,待检测到通信状态机重连成功后,通知应用程序状态机停止本地存储,将本地存储和当前运行数据通过网络连接发送。
2.如权利要求1所述的方法,其特征在于,应用程序状态机将运行数据进行本地存储时,存储位置为微处理器自带的存储器或物联网设备外设存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610881149.4A CN106534260B (zh) | 2016-10-09 | 2016-10-09 | 基于三层状态机的物联网设备通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610881149.4A CN106534260B (zh) | 2016-10-09 | 2016-10-09 | 基于三层状态机的物联网设备通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106534260A true CN106534260A (zh) | 2017-03-22 |
CN106534260B CN106534260B (zh) | 2019-07-19 |
Family
ID=58333053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610881149.4A Active CN106534260B (zh) | 2016-10-09 | 2016-10-09 | 基于三层状态机的物联网设备通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106534260B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334384A (zh) * | 2018-02-10 | 2018-07-27 | 郑州天迈科技股份有限公司 | 基于状态机的4g模块管理方法 |
CN113246117A (zh) * | 2020-02-11 | 2021-08-13 | 株式会社日立制作所 | 一种机器人的控制方法、设备及楼宇管理系统 |
CN114546394A (zh) * | 2021-12-31 | 2022-05-27 | 电子科技大学 | 统一的物联网外设接入与控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609308A (zh) * | 2008-06-20 | 2009-12-23 | 中国科学院沈阳自动化研究所 | 一种基于rfid数据采集功能的工业智能终端及其控制方法 |
CN202551115U (zh) * | 2012-04-16 | 2012-11-21 | 宁波国研软件技术有限公司 | 物联网前端控制装置 |
CN102981442A (zh) * | 2012-11-15 | 2013-03-20 | 牛宇 | 带盲区补发功能的车载监控系统 |
CN104202395A (zh) * | 2014-09-01 | 2014-12-10 | 中国东方电气集团有限公司 | 一种gprs链路建立及保持任务的状态机实现方法 |
-
2016
- 2016-10-09 CN CN201610881149.4A patent/CN106534260B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609308A (zh) * | 2008-06-20 | 2009-12-23 | 中国科学院沈阳自动化研究所 | 一种基于rfid数据采集功能的工业智能终端及其控制方法 |
CN202551115U (zh) * | 2012-04-16 | 2012-11-21 | 宁波国研软件技术有限公司 | 物联网前端控制装置 |
CN102981442A (zh) * | 2012-11-15 | 2013-03-20 | 牛宇 | 带盲区补发功能的车载监控系统 |
CN104202395A (zh) * | 2014-09-01 | 2014-12-10 | 中国东方电气集团有限公司 | 一种gprs链路建立及保持任务的状态机实现方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334384A (zh) * | 2018-02-10 | 2018-07-27 | 郑州天迈科技股份有限公司 | 基于状态机的4g模块管理方法 |
CN108334384B (zh) * | 2018-02-10 | 2023-07-21 | 郑州天迈科技股份有限公司 | 基于状态机的4g模块管理方法 |
CN113246117A (zh) * | 2020-02-11 | 2021-08-13 | 株式会社日立制作所 | 一种机器人的控制方法、设备及楼宇管理系统 |
CN113246117B (zh) * | 2020-02-11 | 2023-08-22 | 株式会社日立制作所 | 一种机器人的控制方法、设备及楼宇管理系统 |
CN114546394A (zh) * | 2021-12-31 | 2022-05-27 | 电子科技大学 | 统一的物联网外设接入与控制方法 |
CN114546394B (zh) * | 2021-12-31 | 2023-02-28 | 电子科技大学 | 统一的物联网外设接入与控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106534260B (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106534260A (zh) | 基于三层状态机的物联网设备通信方法 | |
US11812354B2 (en) | Emergency call based on vehicle-to-vehicle communication | |
CN103454663A (zh) | 一种基于北斗/gps兼容定位的公交车载智能终端 | |
WO2018204210A1 (en) | System and method for high accuracy location determination and parking | |
US10257593B2 (en) | Cooperative task execution in instrumented roadway systems | |
CN109632335B (zh) | 一种用于智能汽车道路测试的车载终端及其信息传递方法 | |
CN102238577B (zh) | Ctcs-3级列控系统gsm-r车载无线传输模块网络传输环境监测系统 | |
CN105228108A (zh) | 用于上门洗车服务的全区域定位找车系统及应用 | |
CN109733439A (zh) | 机车车载监测信息综合传输系统及方法 | |
CN105591846A (zh) | 一种行驶控制方法和装置 | |
CN102740449A (zh) | 利用gsm-r网络的ctcs-3级列控系统车载无线传输系统 | |
CN107948938A (zh) | 定位车辆的方法、服务器及车辆 | |
CN105667548A (zh) | 铁路货车列车通信系统 | |
CN109263605A (zh) | 一种新能源共享汽车智能车载终端系统 | |
CN107195030A (zh) | 一种基于gnss定位的共享单车车锁控制系统及方法 | |
CN106772522A (zh) | 基于Android平台的可通信室内外定位系统及方法 | |
CN104301405A (zh) | 一种车辆诊断方法、模块及系统 | |
CN106205192A (zh) | 一种信息推送系统、方法及装置 | |
CN107393299A (zh) | 一种远程监控系统车载终端 | |
CN104217589A (zh) | 监控违规背车的方法 | |
CN105025055A (zh) | 一种约车管理方法及系统 | |
CN106209176A (zh) | 蓝牙适配器、车载单元及其蓝牙适配方法 | |
CN202975683U (zh) | 带盲区补发功能的车载监控系统 | |
CN102981442A (zh) | 带盲区补发功能的车载监控系统 | |
CN102905400B (zh) | 自适应双模移动数据通信终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |