CN108199867B - 一种有线传感器网络的组网方法 - Google Patents
一种有线传感器网络的组网方法 Download PDFInfo
- Publication number
- CN108199867B CN108199867B CN201711384750.3A CN201711384750A CN108199867B CN 108199867 B CN108199867 B CN 108199867B CN 201711384750 A CN201711384750 A CN 201711384750A CN 108199867 B CN108199867 B CN 108199867B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- address
- upper computer
- network
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- 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
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)
- Computer And Data Communications (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
本发明公开了一种有线传感器网络的组网方法及数据传输方法,它是将任意一个网络节点通过串口与上位机连接,作为主控节点,当上位机发送开始组织网络命令时,与上位机连接的主控节点以扫描地址的方式开始探测IIC总线上的所有其它网络节点;开始扫描地址时,从设定的最小的地址开始,地址依次递增,每扫描一个地址,向总线发送该地址,并等待对应网络节点的回应;当接收到与地址对应的网络节点的回应后,记录该地址,便于以后使用;当超时还未接收到该地址节点的回应时,结束通信,跳过该地址;依次重复上述的操作,直到最大地址结束;此时,所有挂载在总线上的有效节点的地址都已经记录在主控节点中,完成组网工作。
Description
技术领域
本发明涉及一种有线传感器网络的组网方法及数据传输方法,属于有线通信技术领域。
背景技术
在使用多个传感器进行数据采集时,通常需要将传感器作为网络节点进行组网。当前传感器网络主要以无线的方式组织和传输数据,其方便灵活,分布区域广;但其存在容易受干扰、丢失数据包等缺点;有线传输的方式可以避免无线传输方式存在的问题。目前使用的有限组网方式主要有以下几种:
中国发明专利申请CN201610383671.X《一种MEMS惯性传感器网络节点及网络传输方法》公开了一种利用串口的方式实现有线传输的 方法;其数据采集节点利用两个串口接口实现了串口的有线连接,其中一个接口连接其上游节点,另一个连接其下游节点;该方案最主要的一个特征为,在这串联的所有节点中,第一个节点需要连接到上位机,最后一个节点也需要连接到上位机上,最终实现了一个环形结构;这样,上位机相当于环形结构的驱动中心,向第一个节点发出数据请求,请求和第一个节点的数据传递给第二个节点,以此向下,当到达最后一个节点时,直接利用上位机的另一个接口发送给上位机,实现了数据的循环发送。其传感器有线组网需要首尾连接到上位机实现环形结构。以此种方式组网且传感器分布较广时,必定会造成较长的数据回传线。此外该方法占用了上位机的两个接口,而现今移动笔记本为轻薄化,接口资源越来越少;此外,该网络的数据传输方式为依次打包节点的数据,最终汇总在最后一个节点,一次将所有数据传输给上位机。此种方法造成两个缺陷:一、数据解算压力大;当传感器分布数量较多时,上位机一次接收了所有传感器数据,当每个节点数据都需要复杂算法解析时,就会给上位机造成较大的压力;二、数据延迟较长;由于数据在最终的节点才将第一个节点的数据一起上传,这对于第一个节点来说,已经造成的加大的延迟,当系统要求较高的实时性时,此种方式不能满足要求。
中国发明专利申请CN201210522245.1《一种有线传感器网络组建系统及其方法》公开了一种利用RJ45以太网接口实现数据的有线传输。其数据采集节点利用两个RJ45接口,分别连接节点的上下游,实现节点的有线连接;该方案的主要特征为系统识别每一个传感器是通过设备中的唯一编码,而此编码的获得是通过手持设备扫描传感器外部的编码标签获得的。之后再在系统中将每一个数据与传感器采集的数据匹配以识别数据的来源。其对于数据的识别需要依靠各节点唯一的设备识别码,而该识别码的获得是通过扫描节点上二维码标签获得,然后在上位机中将设备码和数据绑定在一起;此种方式的组网相当于手动组网,当节点数量过多时,组网的过程将极为繁琐,降低了整体组网的效率。
发明内容
本发明的目的在于,提供一种有线传感器网络的组网方法及数据传输方法。本发明的方法避免了手动识别每个网络节点,提高了组网的效率;同时,网络节点在接收到数据请求时,就将数据向上传输,可以避免数据汇聚到最终节点集中上传的情况,提高了系统的实时性。
本发明的技术方案:一种有线传感器网络的组网方法,其特点是:将每个传感器连接至带IIC接口的IIC控制器作为网络节点,每个网络节点均挂载到IIC总线,所有网络节点都有一个可与上位机连接的串口;组网时,将任意一个网络节点通过串口与上位机连接,作为主控节点,当上位机发送开始组织网络命令时,与上位机连接的主控节点以扫描地址的方式开始探测IIC总线上的所有其它网络节点;开始扫描地址时,从设定的最小的地址开始,地址依次递增,每扫描一个地址,向总线发送该地址,并等待对应网络节点的回应;当接收到与地址对应的网络节点的回应后,记录该地址,便于以后使用;当超时还未接收到该地址节点的回应时,结束通信,跳过该地址;依次重复上述的操作,直到最大地址结束;此时,所有挂载在总线上的有效节点的地址都已经记录在主控节点中,组网工作完成。
上述的有线传感器网络的组网方法中,所述IIC控制器包括主控芯片,主控芯片上连接有传感器接口、固件下载接口和IIC接口,主控芯片还通过USB转串口模块与USB接口相连;还包括电池,电池通过稳压芯片与主控芯片的电源端相连,电池还通过电源管理芯片与USB接口相连。
前述的有线传感器网络的组网方法中,每个网络节点内均设置相同的内置程序,每个网络节点根据是否接收到上位机的指令来区分是否为主控节点,如果某个网络节点接收到上位机的指令,则为主控节点,其余网络节点为从节点。
前述的有线传感器网络的组网方法中,其具体传输方法是:上位机发送出传送数据指令,直接通过串口连接到上位机的网络节点接收到命令后作为主控节点将自己的地址数据向上传输给上位机,再从记录的地址列表中从头遍历所有地址,依次向从节点发送读取数据请求;当从节点接收到请求后,随即获取节点的传感器数据,对数据按需进行处理后,发送给主控节点;主控节点接收到数据后,直接利用与上位机连接的串口,将数据传输给上位机进行处理。
前述有线传感器网络的组网方法中,在主控节点读取上位机传输的数据时,采用直接内存访问的方式,当数据传输完成时,主控节点的串口发一个串口空闲中断(此中断会在串口传输完成的时候,即由忙碌转为空闲时触发,但在一般的串口空闲时并不会触发),以高了数据传输的可靠性。
前述有线传感器网络的组网方法中,在主控节点和从节点读取数据传感器数据时,为了保证数据的完整性,以便获得正确完整的数据,采用链式队列的方式避免数据的破坏。
前述有线传感器网络的组网方法中,所述链式队列的方式具体为:设置一个链表,当读取一个新的数据时,程序会申请一个数据节点的空间,将数据复制进入空间,并将数据节点加入队列,并且释放第一个数据节点的空间,保证队列的长度,当出现中断需要读取数据时,始终返回中间节点的数据。(虽然此种方法可能造成数据几毫秒的延时,因为始终读取上一次采集的数据,而当前采集的数据,但却保证了数据的可靠。)
与现有技术相比,本发明实现了基于IIC总线的自组网方法;此方法可以以任一网络节点为主节点,通过主节点自主探测上下游节点,进行组织网络,避免了手动输入设备号以组织网络,且该组网方式对上位机的接口占用较少;本发明中的所有网络节点可以互相替代,即使一个节点损坏,也可以使用其他节点及时替补,使其系统尽快正常工作,十分方便。此外,本发明可以实现数据的实时传输,降低了数据的延迟和数据集中传输给上位机的带来的压力;而使用链表来存储数据的方式保证的数据的完整性和可靠性;各个网络节点间使用IIC总线进行多节点的数据传输,比串口具有更高的可靠性。
附图说明
图1是实施例中传感器网络节点的硬件系统框图;
图2是实施例中的有线组网示意图;
图3是实施例中主控节点扫描地址列表示意图;
图4是实施例中主控节点的数据传输地址列表示意图;
图5是实施例中的工作流程示意图;
图6是实施例中的链表组织图;
图7是实施例中链表添加数据的原理示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例。一种有线传感器网络的组网方法。
(1)传感器网络节点的硬件结构如图1所示,主控模块MCU采用的芯片为STM32F407VGT6,其主频高达168MHZ,1MB的FLASH,192+4KB的SRAM为运行可靠稳定的无线传感器网络程序以及实现数据高速实时存储提供了快速的运算和处理能力,64-LQFP(10mmx10mm)超小封装,使得实现整个传感器节点的微型化成为了可能。高达17个定时器,3个IIC接口,3个SPI接口,4个USART接口,3个AD转换器为连接外围设备提供了极其丰富的数据通信接口,主控内置了JTAG接口,通过图1的固件下载接口即可下载和调试程序。USB转串口模块的芯片为CP2102,其与主控模块的通信协议为USART,其具有集成度高的特点,可内置USB2.0全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,无需任何外部的USB器件。用它可以完成传感器网络节点的USART接口的RS232协议和USB2.0协议的电平转换和通信控制的工作。TP-4056为电源管理芯片,CELL为电池,MAX-1759为稳压芯片。传感器按照需求和主控芯片连接,以获取相应的数据;IIC接口为从芯片引脚引出的接口,用于挂载在IIC总线上。
(2)组网过程如图2和3所示,数据的有线传输方式利用IIC总线;所有的网络节点挂载在总线上,不分主从节点;每一个节点都有自己的地址;总线分为数据线和时钟线,主从机利用数据线串行传输数据,时钟线控制传输节奏,达到有序传输的目的;当需要的节点挂载到总线上后,所有节点都处于从机状态;这样的设计使得所有节点可以互相替代,即使一个节点损坏,也可以使用其他节点及时替补,使其系统尽快正常工作。
系统主控节点的选择是利用上位机控制命令确定的;所有节点都有一个串口可与上位机连接;当上位机发送开始组织网络命令时,与上位机连接的节点开始探测总线上的所有节点;IIC控制器的地址可由7位或者10位bit构成;以7位地址为例,总线最多可以挂载128个节点设备;被上位机选择为主控节点的终端需要扫描全部或者部分地址,这根据接入节点的数量的需要设定;开始扫描节点地址时,从设定的最小的地址开始,地址依次递增,每扫描一个地址,向总线发送该地址,并等待对应节点的回应;当接收到给地址对应的节点回应后,记录该地址,便于以后使用;当超时还未接收到该地址节点的回应时,结束通信,跳过该地址;依次重复上述的操作,直到最大地址结束;此时,所有挂载在总线上的有效节点都已经记录在主控节点中。
(3)数据传输如图4所示:当组网完成后,上位机发送出传送数据指令,第一个网络节点接收到命令后,首先将自己的数据向上传输给父节点,即上位机,再从记录的地址列表中从头遍历所有地址,依次向从节点发送读取数据请求;当从节点接收到请求后,随即获取节点的传感器数据,按需进行处理后,发送给主控节点;主控节点接收到数据后,直接利用与上位机连接的串口,将数据传输给上位机进行处理,提高系统的实时性。
主控节点接收上位机传输数据时,使用串口接收中断来处理接收到的数据;这样处理一般没有问题,但在此处由于数据的高速传输,并且这种中断是在每接收到一个字节时都会触发;这就会导致中断频繁的被触发;频繁的触发中断会导致程序执行异常。在实际的测试中,程序在运行5~10s后就不能正常处理串口接收的数据。对于这样的问题采用DAM和串口空闲中断的方式传输数据可以解决这样的问题。
直接内存访问(DMA)使得对于数据的访问和存储不需要依赖微控制器的干预,实现了外围和内存,内存和内存的直接传输;注意DMA不能够实现外围和外围的直接数据传输。由于DMA的存在,大大减轻了MCU在数据传输时候的压力;对于上述的问题,可以采用此种方法,大大减少中断的触发;当数据传输完成时,串口会发一个串口空闲中断;此中断会在串口传输完成的时候,即由忙碌转为空闲时触发,但在一般的串口空闲时并不会触发。
至此,通过对DMA和空闲中断的利用,可以实现主控节点与上位机的传输,提高了系统数据传输的可靠性。
图5为本发明的数据传输流程图,需要说明的是所有的网络节点都有相同的程序,作为主控节点还是从节点(从机节点)是根据是否接收到上位机的指令,流程图中的判断就为此作用;从节点就等待主控节点的读取命令,主控节点按顺序轮询组网时记录的所有的从节点;
在主控节点和从节点读取数据传感器数据时,需要保证数据的完整性,以便获得正确完整的数据;但现在存在一种这样的情况,当MCU正在跟新在内存中保存的传感器数据时,发生了串口中断,导致数据没有被写完,因而这一帧数据的不完整;这种不完整可能是和上一帧数据的杂糅或者为写完的内存全部为零,这取决于在每次发送后,如何处理这块已发送的内存空间;这种问题被称为非原子操作;
在具有操作系统的程序中,一般系统会提供一些机制保证原子操作,例如Linux中的锁机制;但是此程序的运行环境为裸机,没有任何机制去保证;因此,决定采用链式队列的方式避免数据的破坏。
链式队列的本质上也是一个链表,但遵循着先进先出(FIFO)的原则,其结构如图6所示,Head节点为队列的头节点,其结构由一个结构体表示,包含两个指针和一个整型变量;两个指针变量时钟指向队列的头部和尾部,整型变量记录着队列的长度;
当读取一个新的数据时,程序会申请一个数据节点的空间,将数据复制进入空间,并将节点加入队列,并且释放第一个节点的空间,保证队列的长度。当无线中断需要读取数据时,始终返回中间节点的数据,其原理如图7所示;虽然此种方法可能造成数据几毫秒的延时,因为始终读取上一次采集的数据,而当前采集的数据,但却保证了数据的可靠。
Claims (5)
1.一种有线传感器网络的组网方法,其特征在于:将每个传感器连接至带IIC接口的IIC控制器作为网络节点,每个网络节点均挂载到IIC总线,所有网络节点都有一个可与上位机连接的串口;组网时,将任意一个网络节点通过串口与上位机连接,作为主控节点,当上位机发送开始组织网络命令时,与上位机连接的主控节点以扫描地址的方式开始探测IIC总线上的所有其它网络节点;开始扫描地址时,从设定的最小的地址开始,地址依次递增,每扫描一个地址,向总线发送该地址,并等待对应网络节点的回应;当接收到与地址对应的网络节点的回应后,记录该地址,便于以后使用;当超时还未接收到该地址节点的回应时,结束通信,跳过该地址;依次重复上述的操作,直到最大地址结束;此时,所有挂载在总线上的有效节点的地址都已经记录在主控节点中,组网工作完成:每个网络节点内均设置相同的内置程序,每个网络节点根据是否接收到上位机的指令来区分是否为主控节点,如果某个网络节点接收到上位机的指令,则为主控节点,其余网络节点为从节点;上位机发送出传送数据指令,直接通过串口连接到上位机的网络节点接收到命令后作为主控节点将自己的地址数据向上传输给上位机,再从记录的地址列表中从头遍历所有地址,依次向从节点发送读取数据请求;当从节点接收到请求后,随即获取节点的传感器数据,对数据按需进行处理后,发送给主控节点;主控节点接收到数据后,直接利用与上位机连接的串口,将数据传输给上位机进行处理。
2.根据权利要求1所述的有线传感器网络的组网方法,其特征在于:所述IIC控制器包括主控芯片(MCU),主控芯片(MCU)上连接有传感器接口、固件下载接口和IIC接口,主控芯片(MCU)还通过USB转串口模块与USB接口相连;还包括电池(CELL),电池(CELL)通过稳压芯片与主控芯片(MCU)的电源端相连,电池(CELL)还通过电源管理芯片与USB接口相连。
3.根据权利要求1所述有线传感器网络的组网方法,其特征在于:在主控节点读取上位机传输的数据时,采用直接内存访问的方式,当数据传输完成时,主控节点的串口发一个串口空闲中断,提高了数据传输的可靠性。
4.根据权利要求3所述有线传感器网络的组网方法,其特征在于:在主控节点和从节点读取数据传感器数据时,为了保证数据的完整性,以便获得正确完整的数据,采用链式队列的方式避免数据的破坏。
5.根据权利要求4所述有线传感器网络的组网方法,其特征在于,所述链式队列的方式具体为:设置一个链表,当读取一个新的数据时,程序会申请一个数据节点的空间,将数据复制进入空间,并将数据节点加入队列,并且释放第一个数据节点的空间,保证队列的长度,当出现中断需要读取数据时,始终返回中间节点的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384750.3A CN108199867B (zh) | 2017-12-20 | 2017-12-20 | 一种有线传感器网络的组网方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384750.3A CN108199867B (zh) | 2017-12-20 | 2017-12-20 | 一种有线传感器网络的组网方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108199867A CN108199867A (zh) | 2018-06-22 |
CN108199867B true CN108199867B (zh) | 2021-01-05 |
Family
ID=62583425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711384750.3A Active CN108199867B (zh) | 2017-12-20 | 2017-12-20 | 一种有线传感器网络的组网方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108199867B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845964B (zh) * | 2018-06-25 | 2021-04-09 | 首都师范大学 | 一种基于um-bus总线的cps主节点动态识别方法 |
WO2022181929A1 (ko) * | 2021-02-26 | 2022-09-01 | (주)씨앤테크 | 기기간 연결을 지원하는 사물인터넷 통신 시스템 |
CN113419437B (zh) * | 2021-06-30 | 2022-04-19 | 四川虹美智能科技有限公司 | 基于mvvm框架和mqtt协议的智能家居数据同步方法及装置 |
CN114097588B (zh) * | 2021-10-29 | 2023-10-31 | 瀚云科技有限公司 | 一种灌溉装置的组网方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630156B (zh) * | 2009-05-15 | 2012-02-29 | 江苏长江环境科技工程有限公司 | 可编程音乐喷泉控制系统 |
CN101572702B (zh) * | 2009-05-27 | 2012-07-25 | 大连理工计算机控制工程有限公司 | 高速总线主从网络通信调度方法 |
CN103135533A (zh) * | 2013-01-08 | 2013-06-05 | 西安电子科技大学 | 用于远程终端控制系统的主控装置 |
CN203838496U (zh) * | 2014-04-04 | 2014-09-17 | 长沙晗光电子科技有限公司 | 烟花鞭炮洗筒机全自动控制器 |
CN204596059U (zh) * | 2015-03-30 | 2015-08-26 | 安徽工程大学 | 一种基于rs485总线的漏电防火监控装置 |
CN105183685B (zh) * | 2015-06-24 | 2019-03-15 | 深圳市振邦智能科技股份有限公司 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
-
2017
- 2017-12-20 CN CN201711384750.3A patent/CN108199867B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108199867A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199867B (zh) | 一种有线传感器网络的组网方法 | |
CN106874224B (zh) | 自动搬运且适应器件的多线SPI-Flash控制器 | |
CN101587462B (zh) | 高速数据通信链路中的usb数据传输装置及其数据传输方法 | |
US8706832B2 (en) | Low latency, high bandwidth data communications between compute nodes in a parallel computer | |
US9684583B2 (en) | Trace data export to remote memory using memory mapped write transactions | |
US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
CN103064805B (zh) | Spi控制器及通信方法 | |
US8429324B2 (en) | Bus-protocol converting device and bus-protocol converting method | |
CN104506379A (zh) | 网络数据捕获方法和系统 | |
CN103914424A (zh) | 基于gpio接口的lpc外设扩展方法及装置 | |
CN104731746A (zh) | 设备控制器装置 | |
CN106843023B (zh) | 一种基于fpga的电力数据采集系统 | |
CN115858431A (zh) | 数据传输控制方法、控制器及电子设备 | |
US20060184708A1 (en) | Host controller device and method | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
CN117194289A (zh) | 一种基于fmql的多通道可重构数据传输装置 | |
CN101464844B (zh) | 一种ram使用权的控制方法及总线接口 | |
CN109443362A (zh) | 基于dsp和fpga的导航计算机 | |
CN114924855A (zh) | 一种多核协同控制器的实现方法及装置 | |
CN113051200A (zh) | 一种基于双路的数据采集并行数据传输及存储的装置及方法 | |
CN212208283U (zh) | 一种单片机间的双向握手通讯电路 | |
CN114968870B (zh) | 一种导航信息处理器及其方法 | |
CN112306931B (zh) | 一种软件实现usb主机控制器方法、系统及存储介质 | |
CN109885252A (zh) | 存储器装置和存储器控制器 | |
CN108874613B (zh) | 一种性能瓶颈定位量化方法、装置及嵌入式io系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |