控制器的制作方法

文档序号:20120623发布日期:2020-03-20 05:18阅读:267来源:国知局
控制器的制作方法

本发明涉及数据传输技术领域,特别涉及一种控制器。



背景技术:

串行通讯由于传输距离长、传输线少、协议简单、扩展灵活等优点而被广泛应用于现代控制系统中。串行通讯包括三种传输方式:全双工、半双工、单工。全双工传输方式可以实现信号的双向同时传递,不需要进行信号传输方向的切换,适用于交互式应用。半双工只使用一根传输线,通讯双方不能同时收发数据,半双工串口通过收发开关连接到通信线上,收发开关实际上是由软件控制的电子开关。单工传输方式目前较少采用。

现有的半双工控制器通常自带的通用异步收发传输器较少,当主控设备需要通过半双工控制器同时控制的受控设备较多时,则需增加控制器的串口。控制器可通过采用宽带宽、高速率的接口转换成串口来增加串口的数量,但此方式需要主控设备预留宽带宽、高速率的扩展接口及相应的串口扩展卡,且此类扩展卡价格昂贵。控制器还可由一个串口扩展成多个串口来增加串口的数量,此方式通用性强,成本低,但扩展串口容易出现传输数据缺失的现象,尤其是大量数据同时传输时,扩展串口只接收传输数据中的一部分,更容易出现数据的丢失,进而引起控制器通讯的不稳定。



技术实现要素:

基于此,有必要针对扩展串口在大量数据同时传输时,容易出现数据丢失的问题,提供一种控制器。

一种控制器,所述控制器包括控制单元、存储单元、多个扩展串口及一个主串口,每个扩展串口与一个受控设备的串口连接,所述主串口与主控设备的串口连接;所述存储单元包括多个缓冲区,所述缓冲区与所述扩展串口一一对应;所述扩展串口用于接收数据;当所述扩展串口接收的数据为所述受控设备传输的数据且接收到的数据超过预设数据量时,所述控制单元用于将所述数据存储于对应一个缓冲区,并当所述主串口空闲时,用于将缓冲区的数据通过所述主串口传输至所述主控设备;当所述扩展串口接收的数据为所述主控设备通过所述主串口传输的数据且接收到的数据超过预设数据量时,所述控制单元用于将所述数据存储于对应一个缓冲区,并当对应的扩展串口空闲时,用于将缓冲区的数据通过对应的扩展串口传输至受控设备。

在其中一个实施例中,当所述扩展串口接收的数据为所述受控设备传输的数据且接收到的数据不超过预设数据量时,所述控制单元还用于对所述扩展串口接收的数据进行打包并将打包后的数据通过所述主串口传输至所述主控设备;当所述扩展串口接收的数据为所述受控设备传输的数据且接收到的数据超过预设数据量时,所述控制单元还用于对存储于缓冲区的数据进行打包并将打包后的数据通过所述主串口传输至所述主控设备。

在其中一个实施例中,当所述扩展串口接收的数据为所述主控设备通过所述主串口传输的数据且接收到的数据不超过预设数据量时,所述控制单元还用于对所述主串口接收的数据进行解包并将解包后的数据传输至对应的扩展串口;当所述扩展串口接收的数据为所述主控设备通过所述主串口传输的数据且接收到的数据超过预设数据量时,所述控制单元还用于对所述主串口接收的数据进行解包并将解包后的数据存储于对应一个缓冲区,所述控制单元还用于将存储于缓冲区的数据通过对应的扩展串口传输至受控设备。

在其中一个实施例中,所述控制单元还用于判断所述扩展串口接收到的数据是否超过预设数据量。

在其中一个实施例中,所述控制单元还用于检测所述扩展串口及所述主串口是否空闲。

在其中一个实施例中,每个缓冲区包括多个缓冲单元,所述多个缓冲单元用于存储对应一个扩展串口接收的数据。

在其中一个实施例中,每个缓冲区包括17个缓冲单元,每个缓冲单元的存储容量为256个字节。

在其中一个实施例中,所述存储单元为随机存取存储器。

上述的控制器,通过设置与每个扩展串口一一对应的缓冲区,当所述扩展串口接收到的数据超过预设数据量时,所述控制单元根据接收数据的来源判断相应的串口是否空闲,并当相应的串口空闲时,将存储于缓冲区的数据通过相应的串口转发出去,避免了通过扩展串口传输的数据过多时,出现数据丢失的现象,保证控制器通讯的稳定性。

附图说明

图1为一个实施例提供的控制器的原理框图。

具体实施方式

请参阅图1,本申请提供一种控制器100,所述控制器100包括控制单元10、存储单元20、多个扩展串口30及一个主串口40。每个扩展串口30与一个受控设备200的串口连接,所述主串口40与主控设备300的串口连接。所述存储单元20包括多个缓冲区21,所述缓冲区21与所述扩展串口30一一对应。所述扩展串口30用于接收数据。当所述扩展串口30接收的数据为所述受控设备200传输的数据且接收到的数据超过预设数据量时,所述控制单元10用于将所述数据存储于对应一个缓冲区21,并当所述主串口40空闲时,用于将缓冲区21的数据通过所述主串口40传输至所述主控设备300。当所述扩展串口30接收的数据为所述主控设备300通过所述主串口40传输的数据且接收到的数据超过预设数据量时,所述控制单元10用于将所述数据存储于对应一个缓冲区21,并当对应的扩展串口30空闲时,用于将缓冲区21的数据通过对应的扩展串口30传输至受控设备200。

所述主串口40或所述扩展串口30空闲,即所述主串口40或所述扩展串口30没有在传输数据。

当所述扩展串口30接收的数据为所述受控设备200传输的数据且接收到的数据不超过预设数据量时,所述控制单元10还用于对所述扩展串口30接收的数据进行打包并将打包后的数据通过所述主串口40传输至所述主控设备300;当所述扩展串口30接收的数据为所述受控设备200传输的数据且接收到的数据超过预设数据量时,所述控制单元10还用于对存储于缓冲区21的数据进行打包并将打包后的数据通过所述主串口40传输至所述主控设备300,此时,所述主串口40空闲。

所述控制单元10对所述扩展串口30接收的数据进行打包即所述控制单元10将所述扩展串口30接收的数据加上包头及包尾,并在数据包中填充一定的字段,以标识接收数据包的扩展串口30。

需要说明的是,所述扩展串口30及所述主串口40中传输的数据以数据包的形式传输。当所述控制器100中没有设置与所述扩展串口30对应的缓冲区21,所述扩展串口30在同一时间内接收到大量的数据包时,只有部分数据包通过扩展串口30转发至所述主串口40或所述受控设备200,导致传输数据的缺失。

当所述扩展串口30接收的数据为所述主控设备300通过所述主串口40传输的数据且接收到的数据不超过预设数据量时,所述控制单元10还用于对所述主串口40接收的数据进行解包并将解包后的数据传输至对应的扩展串口30;当所述扩展串口30接收的数据为所述主控设备300通过所述主串口40传输的数据且接收到的数据超过预设数据量时,所述控制单元10还用于对所述主串口40接收的数据进行解包并将解包后的数据存储于对应一个缓冲区21,所述控制单元10还用于将存储于缓冲区21的数据通过对应的扩展串口30传输至受控设备200,此时,对应的扩展串口30空闲。

所述控制单元10对所述主串口40接收的数据进行解包即所述控制单元10将所述主串口40接收的数据去除包头及包尾,并识别数据包中的字段,以将数据包通过对应的扩展串口30传输至受控设备200。

所述控制单元10还用于判断所述扩展串口30接收到的数据是否超过预设数据量及检测所述扩展串口30及所述主串口40是否空闲。

每个缓冲区21包括多个缓冲单元211,所述多个缓冲单元211用于存储对应一个扩展串口30接收的数据。将所述存储单元20的可分配存储容量分配成一定存储容量的多个缓冲单元211,可实现对所述数据的有序存储。每个缓冲单元211的存储容量的大小可根据实际传输的数据包的大小进行设定。

为每个扩展串口30分配缓冲区21的方法为:所述控制单元10接收所述主控设备300通过所述主串口40传输的指令,并根据所述指令从所述控制器100的存储单元20取一定字节长度的存储容量作为一个缓冲单元211,用户通过所述主控设备300查看所述存储单元20剩余的存储容量,根据所述存储单元20剩余的存储容量、所述扩展串口30的数量及需预留给所述控制器100升级、修改功能用的存储容量计算分配给每个扩展串口30的缓冲单元211的数量,并输入相应的指令至所述主控设备300,所述控制单元10根据所述指令为每个扩展串口30分配缓冲单元211。每个扩展串口30的多个缓冲单元211组成每个扩展串口30的缓冲区21。

在本实施例中,所述存储单元20为随机存取存储器(randomaccessmemory,ram)。每个缓冲区21包括17个缓冲单元211,每个缓冲单元211的存储容量为256个字节。

所述控制单元10还可以将与所述控制器100连接的存储芯片作为存储单元20,为每个扩展串口30分配更多的缓冲单元211,因此,每个扩展串口30对应的缓冲区21的存储容量更大。

本申请的控制器,通过设置与每个扩展串口一一对应的缓冲区,当所述扩展串口接收到的数据超过预设数据量时,所述控制单元根据接收数据的来源判断相应的串口是否空闲,并当串口空闲时,将存储于缓冲区的数据通过相应的串口转发出去,避免了通过扩展串口传输的数据过多时,出现数据丢失的现象,保证控制器通讯的稳定性。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1