APP下载

多种通信方式并存的通信装置开发研究

2016-03-01付丙林

现代工业经济和信息化 2016年23期
关键词:队列数据处理内存

付丙林

(江苏无线电厂有限公司,江苏南京210022)

多种通信方式并存的通信装置开发研究

付丙林

(江苏无线电厂有限公司,江苏南京210022)

介绍一种多种通信方式并存的通信方法,该方法工作效率较高、误码率较低,不仅提高了CPU的工作效率,而且传输数据稳定可靠,便于用户使用。

低碳工业化;新型城镇化;中部地区

引言

ODN的智能化管理能够将ODN网管、PON网管、资源管理系统、OSS(综合的业务运营和管理平台)和现有的网管设备组成统一的管理平台,由于ODN设备中存在以太网口接口、USB通信接口、蓝牙通信接口、RS485总线通信接口和1-Wire总线通信接口多种数据通信方式,多种通信方式并存会使得ODN设备使用时存在以下缺陷:

1)CPU需要同时处理多种通信接口传输的数据,多种通信接口传输的数据可能引起冲突;CPU不仅工作效率较低,而且容易卡死,不便于人们使用。

2)为了防止数据传输错误,可以将数据接收和数据处理分开单独操作,即不同通信方式对应的数据接收操作、数据处理操作均单独编成子函数,但是单独编成子函数会使得主程序中的逻辑安排比较困难,程序设计的工作效率较低。

1 方法介绍

本文介绍的多种通信方式并存的通信方法,包括以下步骤。

步骤A:将嵌入式实时操作系统RTOS的内核移植入通信设备,在RTOS中编写通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口;为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列。

步骤B:根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息。

步骤C:判定循环队列中已经存储的数据总数未超过循环队列的阈值时,接收与通信中断信号对应的通信接收数据;判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤D,否则转到步骤E。

步骤D:读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,转到步骤E;若判断单元的信息为循环队列数据满的信息,转到步骤H。

步骤E:将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,转到步骤F。

步骤F:发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,转到步骤G,否则转到步骤H。

步骤G:读取判断单元的信息,若判断单元的信息为循环队列数据满的信息,转到步骤H;若判断单元的信息为循环队列数据空的信息,转到步骤B。

步骤H:读取通信数据读取单元的通信处理数据,同时将front指针指向下一个内存单元、将其标记为通信数据读取单元,将通信处理数据通过与其对应的通信接口处理并发送;转到步骤I。

步骤I:重复执行步骤B~步骤H,直至所有通信接收数据接收完毕、所有通信处理数据发送完毕,释放内存区域。

2 装置开发

基于上述方法的多种通信方式并存的通信装置,包括:

编程模块,用于:将嵌入式RTOS的内核移植入通信设备,在RTOS中编写各种通信接口不同的数据通信模块,每一个数据通信模块对应一种通信接口,向任务配置模块发送任务配置信号。

任务配置模块,用于:接收编程模块发送的任务配置信号后,为每个数据通信模块配置对应的通信任务,将所有通信任务按照所要执行的功能划分为不同的优先级,形成通信任务队列、并向通信中断信号检测模块发送通信中断检测信号。

通信中断信号检测模块,用于:接收中断检测信号后,根据通信任务队列的顺序,通过RTOS判定数据通信模块的通信中断信号产生时,向循环队列定义模块发送循环队列定义信号。

循环队列定义模块,用于:接收通信中断信号检测模块发送的循环队列定义信号后,开辟一块内存区域,将内存区域定义为循环队列;将循环队列中的第一个内存单元标记为判断单元,判断单元标记有循环队列数据满的信息、循环队列数据空的信息。

数据接收检测模块,用于:接收循环队列定义模块发送的数据接收检测信号后,判定循环队列中已经存储的数据总数,未超过循环队列的阈值,向通信数据储存模块发送通信数据储存信号。

通信数据储存模块,用于:接收数据接收检测模块发送的通信数据储存信号后,接收与通信中断信号对应的通信接收数据,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向通信数据判断模块发送通信数据判断信号;否则向数据储存模块发送数据储存信号。

通信数据判断模块,用于:接收通信数据储存模块发送的通信数据判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据空的信息,向数据储存模块发送数据储存信号;若判断单元的信息为循环队列数据满的信息,向数据处理模块发送数据处理信号。

数据储存模块,用于:接收数据储存信号后,将通信接收数据储存至通信数据储存单元,同时将rear指针指向下一个内存单元、并将其标记为通信数据储存单元,向数据处理检测模块发送数据处理检测信号。

数据处理检测模块,用于:接收数据处理检测信号后,发送与通信接收数据对应的阻塞式信号量,判断循环队列中的rear指针与front指针是否指向同一个内存单元,若是,向数据处理判断模块发送数据处理判断信号;否则向数据处理模块发送数据处理信号。

数据处理判断模块,用于:接收数据处理检测模块发送的数据处理判断信号后,读取判断单元的信息,若判断单元的信息为循环队列数据满的信息、向数据处理模块发送数据处理信号;若判断单元的信息为循环队列数据空的信息,向通信中断信号检测模块发送通信中断检测信号。

内存释放模块,用于:将所有通信接收数据接收完毕、所有通信处理数据发送完毕后,释放内存区域。

(编辑:刘楠)

Research on the Development of Communication Devicesw ith M ultiple Communication M odes

Fu Binglin
(Jiangsu W ireless Power Plant Co.,Ltd.,Nanjing Jiangsu 210022)

This paper introduces a communication method in which multiple communication modes coexist.The method has high efficiency and low error rate.Itnotonly improves the working efficiency of CPU,butalso the transmission data is stable and reliable and convenient for users.

low-carbon indnstrialization;new urbanization;central region

TN913.6

A

2095-0748(2016)23-0087-02

10.16525/j.cnki.14-1362/n.2016.23.41

2016-11-16

付丙林(1984—),男,内蒙古呼伦贝尔人,大专,助理工程师,研究方向:射频通信、接收机与发射机、开关电源技术开发。

猜你喜欢

队列数据处理内存
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
队列里的小秘密
基于多队列切换的SDN拥塞控制*
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
在队列里
丰田加速驶入自动驾驶队列
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
内存搭配DDR4、DDR3L还是DDR3?