多种通信方式并存的通信方法及装置制造方法

文档序号:7794348阅读:122来源:国知局
多种通信方式并存的通信方法及装置制造方法
【专利摘要】本发明公开了一种多种通信方式并存的通信方法及装置,涉及光分配网络领域,方法包括:在RTOS中为每个数据通信模块配置对应的通信任务,将所有通信任务形成通信任务队列;判定数据通信模块的通信中断信号产生时,开辟内存区域,将其定义为循环队列;判定循环队列为未满队列,接收通信接收数据;将通信接收数据储存至通信数据储存单元;读取通信数据读取单元的通信处理数据,将通信处理数据通过与其对应的通信接口处理并发送。本发明的工作效率较高、误码率较低,不仅提高了CPU的工作效率,而且传输数据稳定可靠,便于用户使用。
【专利说明】多种通信方式并存的通信方法及装置
【技术领域】
[0001]本发明涉及光分配网络领域,具体涉及一种多种通信方式并存的通信方法及装置。
【背景技术】
[0002]FTTH (Fiber-T o-The-Home,光纤到户)主要米用 PON (Passive Optical Network,无源光网络)技术,FTTH主要包括OLT (optical line terminal,光线路终端)、0DN(0pticalDistribution Network,光分配网)和 ONU (Optical Network Unit,光网络单兀)。OLT 主要用于实现光纤骨干网接入至0DN,ONU用于将ODN输出至用户端口,ODN为OLT和ONU开辟了光纤通信的传输通道,ODN主要由各种ODN设备组成,ODN在光通信网络中起关键作用。
[0003]随着FTTH建设的拉动,ODN的发展速度越来越快,人们采用智能ODN技术将传统ODN技术与现代科技相结合,实现ODN的智能化管理。智能ODN技术通过eID (ElectronicIdentity,电子标签)技术实现对光纤(例如尾纤、跳纤、光分路器尾纤等)的唯一标识;eID结合现代数据库和网络管理技术,能够实现光纤信息数据(例如光分配线设备端口资源数据、光纤连接关系数据等)的自动存储、导入和导出。
[0004]ODN的智能化管理使得ODN系统具备智能化功能(例如光纤信息自动存储功能、光纤连接关系信息自动识别功能、光纤资源信息校准功能、可视化施工指导功能等)。ODN的智能化管理能够将ODN网管、PON网管、资源管理系统、OSS (综合的业务运营和管理平台)和现有的网管设备组成统一的管理平台,为用户提供全景式网络管理。为了实现ODN的智能化管理,需要在ODN设备和网管服务器之间实现正常通信。
[0005]参见图1所示,ODN设备的主控管理单元与网管设备的网管服务器之间主要通过以太网接口通信,网管服务器通过以太网口能够对主控管理单元下发控制命令、传输数据信息,主控管理单元能够将反馈的信息回传至网管服务器。在ODN中,以太网是一种最常用的局域网通信方式;以太网主要实现主控管理单元与网管之间的通信,主控管理单元与网管既能够通过RJ45接口直接通信,也能够通过交换机通信。
[0006]智能管理终端通过USB通信接口或者蓝牙通信接口与主控管理单元实现通信;智能管理终端将收到主控管理单元的数据包通过3G网络或者WiFi发送到网管服务器。
[0007]由于大多数智能管理终端设备(例如手机、平板电脑等)一般采用USB接口,因此智能管理终端通过USB接口与主控管理单元通信,能够扩大ODN设备的应用范围;同时,USB接口支持热插拔操作,不仅能够随时插入或拔出USB,而且通信速率较高。
[0008]由于常见的移动智能终端上一般都用蓝牙模块,因此智能管理终端通过蓝牙通信接口与主控管理单元通信,不仅能够满足ODN设备的要求,而且与USB接口相比,蓝牙通信接口的通信距离较远(USB接口的通信距离为I~2米,蓝牙通信接口的通信距离为10米左右)。将USB通信方式与蓝牙通信方式结合,能够保证网管系统与ODN设备之间正常通信。
[0009]ODN设备中的主控管理单元和分配管理单元之间主要通过RS485总线接口通信。RS485总线接口克服了 RS232接口无法组网的缺陷,RS485总线接口最多能够挂128个节点,而且RS485总线接口采用差分信号传输,不仅抗干扰能力强,而且传输速率较高(一般为10Mbps),传输距离也较远(传输距离能够达到3000米)。因此,ODN设备中的主控管理单元和分配管理单元通过RS485总线接口的方案实现通信的效果最佳。
[0010]分配管理单元与eID模块之间通过1-Wire总线通信接口通信;0DN设备的接口较多,通过选择了 1-Wire总线通信接口通信不仅结构简单、通信链接方便,而且适合采集多端口信息的设备通信场合。1-Wire总线通信能够通过一根数据线与外部设备进行信息交换,一条1-Wire总线可以挂接多个独立工作的器件;分配管理单元的主控芯片通过读ROM信息以识别指定器件、并与之通信。
[0011]由于ODN设备中存在以太网口接口、USB通信接口、蓝牙通信接口、RS485总线通信接口和1-Wire总线通信接口多种数据通信方式,每一种通讯方式在整个系统通信中功能均不相同,因此,网管设备运行时会出现多种通讯方式并发的情况。例如以下2种情况:
[0012](I)网管设备进行设备升级时,网管设备将升级包通过以太网接口下传至主控管理单元的缓存、供主控芯片升级自身系统;网管设备还会同步通过RS485总线接口将对应的升级包,下载至分配管理单元。
[0013](2)网管设备进行设备巡检时,分配管理单元需要通过1-Wire总线通信接口读取eID模块的端口信息,分配管理单元还需要通过RS485总线接口将装配盘的信息上传至主控管理单元。
[0014]多种通信方式并存会使得ODN设备使用时存在以下缺陷:
[0015](I)多种通信方式并存时,CPU需要同时处理多种通信接口传输的数据,多种通信接口传输的数据可能引起冲突;CPU不仅工作效率较低,而且容易卡死,不便于人们使用。
[0016](2)由于多种通信方式可能同时对共享数据(位于同一内存单元中)进行操作(即一个通信接口将数据存入内存,另一个通信接口对内存中的数据进行相应处理),因此可能出现当一种通信接口对应的数据处理尚未完成时,另一种通信接口又接收新的数据的情况;如果接收新数据的通信接口的接收速度比处理数据的通信接口的处理速度快,服务器接收的新数据有可能覆盖历史数据,进而导致数据传输错误,安全存在隐患。为了防止数据传输错误,可以将数据接收和数据处理分开单独操作,即不同通信方式对应的数据接收操作、数据处理操作均单独编成子函数,但是单独编成子函数会使得主程序中的逻辑安排比较困难,程序设计的工作效率较低。

【发明内容】

[0017]针对现有技术中存在的缺陷,本发明的目的在于提供一种多种通信方式并存的通信方法及装置,其工作效率较高、误码率较低,不仅提高了 CPU的工作效率,而且传输数据稳定可靠,便于用户使用。
[0018]为达到以上目的,本发明采取的技术方案是:一种多种通信方式并存的通信方法,包括以下步骤:
[0019]A、将嵌入式实时操作系统RTOS的内核移植入通信设备,在RTOS中编写通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口 ;为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列;[0020]B、根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息;通过一个数据接收rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过一个数据读取front指针,将循环队列中的第二个内存单元标记为通信数据读取单元;
[0021]C、判定循环队列中已经存储的数据总数未超过循环队列的阈值时,接收与通信中断信号对应的通信接收数据;判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤D,否则转到步骤E ;
[0022]D、读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,转到步骤E ;若判断单元的信息为循环队列数据满的信息,转到步骤H ;
[0023]E、将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,转到步骤F ;
[0024]F、发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤G,否则转到步骤H;
[0025]G、读取判断单元的信息,若判断单元的信息为循环队列数据满的信息,转到步骤H ;若判断单元的信息为循环队列数据空的信息,转到步骤B ;
[0026]H、读取通信数据读取单元的通信处理数据,同时将front指针指向下一个内存单元、将其标记为通信数据读取单元,将通信处理数据通过与其对应的通信接口处理并发送;转到步骤I ;
[0027]1、重复执行步骤B~步骤H,直至所有通信接收数据接收完毕、所有通信处理数据发送完毕,释放内存区域。
[0028]在上述技术方案的基础上,步骤A中所述通信接口不同的数据通信模块为:1-Wire总线通信模块、USB通信模块、RS485通信模块、以太网通信模块和蓝牙通信模块。
[0029]在上述技术方案的基础上,步骤A中所述通信任务包括1-Wire读写任务、USB数据接收任务、USB数据处理任务、RS485数据接收任务、RS485数据处理任务、以太网通信任务和蓝牙通信任务。
[0030]在上述技术方案的基础上,步骤B中若没有数据通信模块的通信中断信号产生,则重新执行步骤B。
[0031]在上述技术方案的基础上,步骤B中所述循环队列的大小为256字节、512字节或者1024字节。
[0032]在上述技术方案的基础上,步骤C中所述阈值为循环队列内存总量的85%~90%。
[0033]在上述技术方案的基础上,步骤C中若循环队列中已经存储的数据总数超过循环队列的阈值,则直接转到步骤F。
[0034]一种基于上述方法的多种通信方式并存的通信装置,包括:
[0035]编程模块,用于:将嵌入式RTOS的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口,向任务配置模块发送任务配置信号;
[0036]任务配置模块,用于:接收编程模块发送的任务配置信号后,为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列、并向通信中断信号检测模块发送通信中断检测信号;
[0037]通信中断信号检测模块,用于:接收中断检测信号后,根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,向循环队列定义模块发送循环队列定义信号;
[0038]循环队列定义模块,用于:接收通信中断信号检测模块发送的循环队列定义信号后,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息;通过rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过front指针,将循环队列中的第二个内存单元标记为通信数据读取单元、并向数据接收检测模块发送数据接收检测信号;
[0039]数据接收检测模块,用于:接收循环队列定义模块发送的数据接收检测信号后,判定循环队列中已经存储的数据总数,未超过循环队列的阈值,向通信数据储存模块发送通信数据储存信号;
[0040]通信数据储存模块,用于:接收数据接收检测模块发送的通信数据储存信号后,接收与通信中断信号对应的通信接收数据,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向通信数据判断模块发送通信数据判断信号;否则向数据储存模块发送数据储存信号;
[0041]通信数据判断模块,用于:接收通信数据储存模块发送的通信数据判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,向数据储存模块发送数据储存信号;若判断单元的 信息为循环队列数据满的信息,向数据处理模块发送数据处理信号;
[0042]数据储存模块,用于:接收数据储存信号后,将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,向数据处理检测模块发送数据处理检测信号;
[0043]数据处理检测模块,用于:接收数据处理检测信号后,发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向数据处理判断模块发送数据处理判断信号;否则向数据处理模块发送数据处理信号;
[0044]数据处理判断模块,用于:接收数据处理检测模块发送的数据处理判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据满的信息、向数据处理模块发送数据处理信号;若判断单元的信息为循环队列数据空的信息,向通信中断信号检测模块发送通信中断检测信号;
[0045]数据处理模块,用于:接收数据处理信号后,读取通信数据读取单元的通信处理数据,同时front指针加I,将通信处理数据通过与其对应的通信接口处理并发送;
[0046]内存释放模块,用于:将所有通信接收数据接收完毕、所有通信处理数据发送完毕后,释放内存区域。
[0047]与现有技术相比,本发明的优点在于:
[0048](I)本发明采用嵌入式RT0S,通过RTOS的多任务机制,能够将每种通信的数据接收和处理安排在不同的任务中实现;利用RTOS的中断机制,为每一种通信方式设置不同的中断,一旦中断发生,就会向对应的接收任务发一个阻塞式信号量(即只有收到该信号量,接收任务才会执行)。因此,本发明能够使得各种通信数据实时传输,能够避免多种通信方式并发时引起的操作冲突,提高工作效率,降低误码率,不仅能够提高CPU的工作效率,而且便于人们使用。
[0049](2)本发明采用环形队列的数据结构(循环队列)、同时增加了数据流控制机制。本发明使用时,每次系统初始化后,rear指针指向环形队列的队尾,每接收一个数据,rear指针加I (指向下一个内存单元)。每次接收数据前均判断储存单元循环队列是否已满,若是,暂停接收数据,等待数据处理任务执行。
[0050]数据处理任务通过front指针取出循环队列中的数据进行相应地处理,每取出一个数据,front指针加I (指向下一个内存单元)。每次取数据前均判断front指针是否已经指向循环队列的尾端,若是,则不进行任何操作。
[0051]由于内存循环队列空和队列满时,front指针和rear指针的指向同一块内存区域。为了区分储存单元循环队循环队列的满状态和空状态,本发明在循环队列的起始位置预留出一个判断单元,判断单元标记有循环队列数据满的信息和循环队列数据空的信息。当front指针和rear指针指向同一个内存单元时,通过读取判断单元的信息,就能够准确识别循环队列的满空状态;不仅有效地避免新数据对历史数据的覆盖,确保数据准确的传输,而且能够循环地利用内存,提高内存的利用率。
[0052](3)本发明能够利用RTOS的多任务机制,将各种通信接口接收和处理单独划分成任务,使得整个程序的层次性较好,不仅便于后期的维护和扩展,而且提高了多种通信方式并发工作的协作能力。 【专利附图】

【附图说明】
[0053]图1为本发明【背景技术】中OND系统通信的架构图;
[0054]图2为本发明实施例中RTOS进行任务调度的结构图;
[0055]图3为本发明实施例中数据处理和数据接收操作的环形队列的流程示意图;
[0056]图4为本发明实施例中终端触发接收任务的流程示意图;
[0057]图5为本发明实施例中RS485通信接口与USB通信接口传输数据的流程示意图。
【具体实施方式】
[0058]以下结合附图及实施例对本发明作进一步详细说明。
[0059]参见图2所示,本发明实施例中的多种通信方式并存的通信方法,包括以下步骤:
[0060]S1:将嵌入式RTOS (Real Time Operation System,实时操作系统)的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口。
[0061]各种通信接口不同的数据通信模块为=1-Wire总线通信模块、USB通信模块、RS485通信模块、以太网通信模块和蓝牙通信模块。
[0062]S2:为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列。
[0063]通信任务包括1-Wire读写任务、USB数据接收任务、USB数据处理任务、RS485数据接收任务、RS485数据处理任务、以太网通信任务和蓝牙通信任务。[0064]S3:根据通信任务队列的顺序,通过RTOS依次判断是否有数据通信模块的通信中断信号产生,若是,转到步骤S4,否则重新执行步骤S3。
[0065]S4:开辟一块内存区域,将内存区域定义为循环队列,循环队列的大小根据用户的需求设置,一般为256字节、512字节或者1024字节。
[0066]将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息。
[0067]通过一个rear (数据接收)指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过一个front (数据读取)指针,将循环队列中的第二个内存单元标记为通信数据读取单元。
[0068]S5:判断循环队列中已经存储的数据总数,是否超过循环队列的阈值(阈值一般设置为循环队列内存总量的85%~90%),若不是,转到步骤S6,否则转到步骤S9。
[0069]S6:接收与通信中断信号对应的通信接收数据,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤S7,否则转到步骤S8。
[0070]S7:读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,则转到步骤S8。若判断单元的信息为循环队列数据满的信息,转到步骤S11。
[0071]S8:将通信接收数据储存至通信数据储存单元,同时rear指针加I (即rear指针指向下一个内存单元,将其标记为通信数据储存单元),转到步骤S9。
[0072]S9:发送与通信接 收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤S10,否则转到步骤S11。
[0073]S10:读取判断单元的信息,若判断单元的信息为循环队列数据满的信息,则转到步骤S11,若判断单元的信息为循环队列数据空的信息,则转到步骤S3。
[0074]Sll:读取通信数据读取单元的通信处理数据,同时front指针加1(即front指针指向下一个内存单元、将其标记为通信数据读取单元),将通信处理数据通过与其对应的通信接口处理并发送,转到步骤S12。
[0075]S12:重复步骤S5~S11,直至所有通信接收数据接收完毕,所有通信处理数据发送完毕,释放内存区域。
[0076]本发明实施例中的多种通信方式并存的通信方法的工作原理如下:
[0077]为了提高内存的利用率,本发明采用循环队列这种数据结构。当循环队列中已经存储的数据总数超过设置的阈值时,由于循环队列中的存储的数据较大,因此为了协调处理多个数据任务,防止通信数据被覆盖,需要停止接收通信数据,优先处理已接收的数据,以降低误码率。
[0078]若循环队列中已经存储数据总数未超过设置的阈值时,该阈值一般设置为整个队列存储容量的85%~90%),微处理器将接收到的通信数据存储到rear指针所指向的内存单元中。每接收完一个通信数据,rear指针加I,保证接收的下一个通信数据能够正常存储在循环队列中。
[0079]如果内存中的循环队列处于非空状态(即队列中存放有待处理的有效数据),微处理器通过读取front指针所指向的内存单元的内容,获取循环队列中的数据,每读完一个通信数据,front指针都要加1,以保证微处理器准确获取循环队列中的下一个有效数据,并对该数据进行相应地处理。[0080]下面通过I个实施例具体说明本发明实施例中的多种通信方式并存的通信方法。
[0081]将RTOS的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口。
[0082]为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列。
[0083]参见图4、图5所示,RTOS判断有USB通信模块的USB通信中断信号产生,开辟一块1024字节的内存区域,将内存区域定义为循环队列,将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息。通过rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过front指针,将循环队列中的第二个内存单元标记为通信数据读取单元。
[0084]循环队列中已经存储的数据总数,未超过循环队列的阈值(阈值设置为循环队列内存总量的87%),接收USB通信接收数据;此时循环队列中的rear指针与front指针指向同一个内存单元,但是因为判断单元的信息为循环队列数据空的信息,所以将USB通信数据储存至通信数据储存单元,参见图3所示,rear指针加I。
[0085]发送与USB通信接收数据对应的阻塞式信号量3,循环队列中的rear指针与front指针未指向同一个内存单元;读取通信数据读取单元的USB通信处理数据,参见图3所示,front指针加I。 将USB通信处理数据通过RS485通信模块处理并发送。
[0086]本发明实施例中的多种通信方式并存的通信装置,包括:
[0087]编程模块,用于:将嵌入式RTOS的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口、并向任务配置模块发送任务配置信号。
[0088]任务配置模块,用于:接收编程模块发送的任务配置信号后,为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列、并向通信中断信号检测模块发送通信中断检测信号。
[0089]通信中断信号检测模块,用于:接收中断检测信号后,根据通信任务队列的顺序,通过RTOS依次判断是否有数据通信模块的通信中断信号产生,若是,向循环队列定义模块发送循环队列定义信号,否则继续判断是否有数据通信模块的通信中断信号产生。
[0090]循环队列定义模块,用于:接收通信中断信号检测模块发送的循环队列定义信号后,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息;通过rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过front指针,将循环队列中的第二个内存单元标记为通信数据读取单元、并向数据接收检测模块发送数据接收检测信号。
[0091]数据接收检测模块,用于:接收循环队列定义模块发送的数据接收检测信号后,判断循环队列中已经存储的数据总数,是否超过循环队列的阈值,若不是,向通信数据储存模块发送通信数据储存信号;否则向数据处理检测模块发送数据处理检测信号。
[0092]通信数据储存模块,用于:接收数据接收检测模块发送的通信数据储存信号后,接收与通信中断信号对应的通信接收数据,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向通信数据判断模块发送通信数据判断信号;否则向数据储存模块发送数据储存信号。
[0093]通信数据判断模块,用于:接收通信数据储存模块发送的通信数据判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,向数据储存模块发送数据储存信号;若判断单元的信息为循环队列数据满的信息,向数据处理模块发送数据处理信号。
[0094]数据储存模块,用于:接收数据储存信号后,将通信接收数据储存至通信数据储存单元,同时rear指针加1、并向数据处理检测 模块发送数据处理检测信号。
[0095]数据处理检测模块,用于:接收数据处理检测信号后,发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向数据处理判断模块发送数据处理判断信号;否则向数据处理模块发送数据处理信号。
[0096]数据处理判断模块,用于:接收数据处理检测模块发送的数据处理判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据满的信息、向数据处理模块发送数据处理信号。若判断单元的信息为循环队列数据空的信息,向通信中断信号检测模块发送通信中断检测信号。
[0097]数据处理模块,用于:接收数据处理信号后,读取通信数据读取单元的通信处理数据,同时front指针加1,将通信处理数据通过与其对应的通信接口处理并发送。
[0098]内存释放模块,用于:将所有通信接收数据接收完毕、所有通信处理数据发送完毕后,释放内存区域。
[0099]本发明不局限于上述实施方式,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【权利要求】
1.一种多种通信方式并存的通信方法,其特征在于:包括以下步骤: A、将嵌入式实时操作系统RTOS的内核移植入通信设备,在RTOS中编写通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口 ;为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列; B、根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息;通过一个数据接收rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过一个数据读取front指针,将循环队列中的第二个内存单元标记为通信数据读取单元; C、判定循环队列中已经存储的数据总数未超过循环队列的阈值时,接收与通信中断信号对应的通信接收数据;判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤D,否则转到步骤E ; D、读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,转到步骤E;若判断单元的信息为循环队列数据满的信息,转到步骤H ; E、将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,转到步骤F ; F、发送与通信接 收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤G,否则转到步骤H ; G、读取判断单元的信息,若判断单元的信息为循环队列数据满的信息,转到步骤H;若判断单元的信息为循环队列数据空的信息,转到步骤B ; H、读取通信数据读取单元的通信处理数据,同时将front指针指向下一个内存单元、将其标记为通信数据读取单元,将通信处理数据通过与其对应的通信接口处理并发送;转到步骤I ; 1、重复执行步骤B~步骤H,直至所有通信接收数据接收完毕、所有通信处理数据发送完毕,释放内存区域。
2.如权利要求1所述的多种通信方式并存的通信方法,其特征在于:步骤A中所述通信接口不同的数据通信模块为=1-Wire总线通信模块、USB通信模块、RS485通信模块、以太网通信模块和蓝牙通信模块。
3.如权利要求2所述的多种通信方式并存的通信方法,其特征在于:步骤A中所述通信任务包括1-Wire读写任务、USB数据接收任务、USB数据处理任务、RS485数据接收任务、RS485数据处理任务、以太网通信任务和蓝牙通信任务。
4.如权利要求1所述的多种通信方式并存的通信方法,其特征在于:步骤B中若没有数据通信模块的通信中断信号产生,则重新执行步骤B。
5.如权利要求1至4任一项所述的多种通信方式并存的通信方法,其特征在于:步骤B中所述循环队列的大小为256字节、512字节或者1024字节。
6.如权利要求1至4任一项所述的多种通信方式并存的通信方法,其特征在于:步骤C中所述阈值为循环队列内存总量的85%~90%。
7.如权利要求1至4任一项所述的多种通信方式并存的通信方法,其特征在于:步骤C中若循环队列中已经存储的数据总数超过循环队列的阈值,则直接转到步骤F。
8.一种基于权利要求1至7任一项所述方法的多种通信方式并存的通信装置,其特征在于,包括: 编程模块,用于:将嵌入式RTOS的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口,向任务配置模块发送任务配置信号; 任务配置模块,用于:接收编程模块发送的任务配置信号后,为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列、并向通信中断信号检测模块发送通信中断检测信号; 通信中断信号检测模块,用于:接收中断检测信号后,根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,向循环队列定义模块发送循环队列定义信号; 循环队列定义模块,用于:接收通信中断信号检测模块发送的循环队列定义信号后,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息;通过rear指针,将循环队列中的第二个内存单元标记为通信数据储存单元;通过front指针,将循环队列中的第二个内存单元标记为通信数据读取单元、并向数据接收检测模块发送数据接收检测信号; 数据接收检测模块,用于:接收循环队列定义模块发送的数据接收检测信号后,判定循环队列中已经存储的数 据总数,未超过循环队列的阈值,向通信数据储存模块发送通信数据储存信号; 通信数据储存模块,用于:接收数据接收检测模块发送的通信数据储存信号后,接收与通信中断信号对应的通信接收数据,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向通信数据判断模块发送通信数据判断信号;否则向数据储存模块发送数据储存信号; 通信数据判断模块,用于:接收通信数据储存模块发送的通信数据判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,向数据储存模块发送数据储存信号;若判断单元的信息为循环队列数据满的信息,向数据处理模块发送数据处理信号; 数据储存模块,用于:接收数据储存信号后,将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,向数据处理检测模块发送数据处理检测信号; 数据处理检测模块,用于:接收数据处理检测信号后,发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向数据处理判断模块发送数据处理判断信号;否则向数据处理模块发送数据处理信号; 数据处理判断模块,用于:接收数据处理检测模块发送的数据处理判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据满的信息、向数据处理模块发送数据处理信号;若判断单元的信息为循环队列数据空的信息,向通信中断信号检测模块发送通信中断检测信号;数据处理模块,用于:接收数据处理信号后,读取通信数据读取单元的通信处理数据,同时front指针加I,将通信处理数据通过与其对应的通信接口处理并发送; 内存释放模块,用于:将所有通信接收数据接收完毕、所有通信处理数据发送完毕后,释放内存区域。
【文档编号】H04L12/861GK104022963SQ201410001049
【公开日】2014年9月3日 申请日期:2014年1月2日 优先权日:2014年1月2日
【发明者】肜云, 齐晓旭, 马向怀, 汪刚, 王欣 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1