可左右滑动选省市

一种通过CPLD实现多路UART接口扩展的系统

更新时间:2024-07-01
一种通过CPLD实现多路UART接口扩展的系统 专利申请类型:发明专利;
地区:湖北-武汉;
源自:武汉高价值专利检索信息库;

专利名称:一种通过CPLD实现多路UART接口扩展的系统

专利类型:发明专利

专利申请号:CN202111623755.3

专利申请(专利权)人:武汉微创光电股份有限公司
权利人地址:湖北省武汉市武汉东湖新技术开发区高新二路41号7栋1单元301

专利发明(设计)人:蒋梦琦,杨红杰

专利摘要:一种通过CPLD实现多路UART接口扩展的系统,包括CPU模块和CPLD模块,所述CPLD模块包括CPU端口UART模块、通道选择与控制模块、8个作为业务UART接口的业务端口UART模块,所述CPU端口UART模块与CPU模块的UART接口通信连接,所述CPU端口UART模块与通道选择与控制模块连接,8个所述业务端口UART模块均与对其进行参数配置的CPU模块连接,8个所述业务端口UART模块均与根据需要对其进行选择来实现相应UART接口数据通讯的通道选择与控制模块连接。本发明通过CPLD模块来实现CPU模块接入的UART接口的扩展功能。

主权利要求:
1.一种通过CPLD实现多路UART接口扩展的系统,其特征在于:包括CPU模块和CPLD模块,所述CPLD模块包括CPU端口UART模块、通道选择与控制模块、8个作为业务UART接口的业务端口UART模块,所述CPU端口UART模块与CPU模块的UART接口通信连接,所述CPU端口UART模块与通道选择与控制模块连接,8个所述业务端口UART模块均与对其进行参数配置的CPU模块连接,8个所述业务端口UART模块均与根据需要对其进行选择来实现相应UART接口数据通讯的通道选择与控制模块连接;
所述CPU模块通过IIC接口与业务端口UART模块连接;
所述CPU模块和CPLD模块的数据传输的帧格式包括:第1个字节为帧起始,采用数据
0x5E;第二个字节为通道号,对应业务端口1‑8;帧中间为传输的数据内容,长度不定;倒数第二个字节为帧有效数据的和校验;最后1个字节为帧结束标识,采用数据0x5E;如果传输的数据出现0x5E,分解成0x55和0xEE两个数据,如果传输的数据出现0x55,分解成0x55和
0xE5两个数据;
所述CPU模块和CPLD模块的数据在接收时,首先定位帧起始标识0x5E数据,如果接收到
1个0x5E数据,则以该数据为起始,按照如上所述帧格式进行数据定位;如果连续收到多个
0x5E数据,则以最后1个0x5E作为帧起始标识;如果接收方收到0x55数据时,根据接下来的数据是0xEE还是0xE5,还原成原始的0x5E或者0x55数据。
2.根据权利要求1所述的一种通过CPLD实现多路UART接口扩展的系统,其特征在于:所述业务端口UART模块的参数设置包括数据传输的波特率、数据位宽、奇偶检验位类型和停止位长度。
3.根据权利要求2所述的一种通过CPLD实现多路UART接口扩展的系统,其特征在于:所述CPU模块与CPU端口UART模块之间采用约定的传输波特率、数据位宽、奇偶检验位类型和停止位长度进行数据通信,其中约定的传输波特率大于8路业务端口UART模块传输波特率的总和。
4.根据权利要求1所述的一种通过CPLD实现多路UART接口扩展的系统,其特征在于:所述CPU端口UART模块包括CPU端口UART接收模块和CPU端口UART发送模块。
5.根据权利要求4所述的一种通过CPLD实现多路UART接口扩展的系统,其特征在于:所述业务端口UART模块进行数据发送时,其具体步骤如下:S11、CPU模块根据需求对相应的业务端口UART模块进行参数配置;
S12、CPU模块根据帧格式进行组帧,将数据发送给CPU端口UART接收模块;
S13、CPU端口UART模块按照标准的UART接口时序要求解析出具体的数据内容,并传输给通道选择与控制模块;
S14、通道选择与控制模块去掉帧标识,从通道号标识字节确定是要发送给相应业务端口UART模块的数据,同时校验传输过程是否存在出错;
S15、通道选择与控制模块确定是输出给相应业务端口UART模块后,将数据发送给相应业务端口UART模块,业务端口UART模块按照配置的参数将数据发送出去。
6.根据权利要求5所述的一种通过CPLD实现多路UART接口扩展的系统,其特征在于:所述业务端口UART模块进行数据接收时,其具体步骤如下:S21、8个业务端口UART模块按照各自配置的参数在同一时刻均会接收到数据并缓存;
S22、当缓存区间中有数据时,8个业务端口UART模块各自向通道选择与控制模块发出请求信号,表示有数据需要发送;
S23、通道选择与控制模块采用状态机对请求信号进行轮循检测的方式,当状态机空闲,并且某一路业务端口UART模块发送请求后,给出确认信号,通知该模块进行数据的发送;
S24、发送时通道选择与控制模块增加帧头标识和通道标识,校验帧尾标识信息,发送的数据根据CPU端口UART模块的波特率发送给CPU模块;
S25、数据完成发送后,相应的业务端口UART模块撤销发送请求信号,通道选择与控制模块再轮循其他的端口。 说明书 : 一种通过CPLD实现多路UART接口扩展的系统技术领域[0001] 本发明属于高速公路隧道检测技术领域,具体涉及一种通过CPLD实现多路UART接口扩展的系统。背景技术[0002] UART接口为常用的低速通信接口,为设备提供了一种便捷的、廉价的通信通道,通过接入不同的接口芯片,可以实现RS232、RS485、RS422等常用的通信接口。[0003] 现有方案一:通过共享总线的方式,简单实现UART接口的发送数据一分多的传输,接收方向上多合一的处理。[0004] 现有方案二:单片机一般都可以提供2‑4个UART接口的接入,通过多片单片机芯片实现UART接口的扩展功能。[0005] 现有方案三:通过多路接口的UART芯片,如型号为SC16C554,实现UART接口的扩展功能。[0006] 现有方案一存在的缺点:共享总线的方式,适用于一主多从的方式进行通信,即主设备发起通信,从设备应答。在某一时刻,网络上只会有一端设备发起通信,相互之间不会有冲突。但是如果网络中有多个设备同时发起通信,数据在网络上就会出现干扰,进而无法进行正常通信。[0007] 现有方案二存在的缺点:采用单片机级联的方式,进行UART的扩展,级联端口可能还需要占用UART接口,所以实际能提供的UART接口相对较少,使得单片机数量相对较多,并且每个单片机都有自己独立的程序,产品维护起来相对较麻烦。[0008] 现有方案三存在的缺点:采用专用的多路UART的集成芯片,可以满足多路UART的需求,但是这种方式很多只能提供多路的业务接口,由于与CPU接口的带宽限制,每路UART的实际传输带宽相对较低,不能实现全速的通信功能。由于这种专业芯片的售价相对较高,实现起来成本也就不低。发明内容[0009] 为解决现在技术存在的上述问题,本发明提供了一种设计合理、结构简单、外围元器件少、成本低的、解决一对多的串口通讯可靠性问题,满足串口扩展的需求,并且扩展的各个串口全双工收发互不影响的通过CPLD实现多路UART接口扩展的系统。[0010] 本发明采用的技术方案是:[0011] 一种通过CPLD实现多路UART接口扩展的系统,其特征在于:包括CPU模块和CPLD模块,所述CPLD模块包括CPU端口UART模块、通道选择与控制模块、8个作为业务UART接口的业务端口UART模块,所述CPU端口UART模块与CPU模块的UART接口通信连接,所述CPU端口UART模块与通道选择与控制模块连接,8个所述业务端口UART模块均与对其进行参数配置的CPU模块连接,8个所述业务端口UART模块均与根据需要对其进行选择来实现相应UART接口数据通讯的通道选择与控制模块连接。本发明通过CPLD模块来实现CPU模块接入的UART接口的扩展功能。[0012] 进一步,所述CPLD模块采用GW1N‑LV4LQ144芯片,其内置10个用于数据的片上存储的18Kbit的片上块状存储器。[0013] 进一步,所述CPU模块通过IIC接口与业务端口UART模块连接。[0014] 进一步,所述业务端口UART模块的参数设置包括数据传输的波特率、数据位宽、奇偶检验位类型、停止位长度。[0015] 进一步,所述CPU模块与CPU端口UART模块之间采用约定的传输波特率、数据位宽、奇偶检验位类型、停止位长度进行数据通信,其中约定的传输波特率大于8路业务端口UART传输波特率的总和,以确保传输过程中不会因为带宽的原因产生拥堵而引起丢包。[0016] 进一步,所述CPU端口UART模块包括CPU端口UART接收模块和CPU端口UART发送模块。[0017] 进一步,所述业务端口UART模块进行数据发送时,其具体步骤如下:[0018] S11、CPU模块根据需求对相应的业务端口UART模块进行参数配置;[0019] S12、CPU模块根据帧结构进行组帧,将数据发送给CPU端口UART接收模块;[0020] S13、CPU端口UART模块按照标准的UART接口时序要求解析出具体的数据内容,并传输给通道选择与控制模块;[0021] S14、通道选择与控制模块去掉帧标识,从通道号标识字节确定是要发送给相应业务端口UART模块的数据,同时校验传输过程是否存在出错;[0022] S15、通道选择与控制模块确定是输出给相应业务端口UART模块后,将数据发送给相应业务端口UART模块,业务端口UART模块按照配置的参数将数据发送出去。[0023] 进一步,所述业务端口UART模块进行数据接收时,其具体步骤如下:[0024] S21、8个业务端口UART模块按照各自配置的参数在同一时刻均会接收到数据并缓存;[0025] S22、当缓存区间中有数据时,8个业务端口UART模块各自向通道选择与控制模块发出请求信号,表示有数据需要发送;[0026] S23、通道选择与控制模块采用状态机对请求信号进行轮循检测的方式,当状态机空闲,并且某一路业务端口UART模块发送请求后,给出确认信号,通知该模块可以进行数据的发送;[0027] S24、发送时通道选择与控制模块增加帧头标识、通道标识,校验、帧尾标识信息,发送的数据根据CPU端口UART模块的波特率发送给CPU模块;[0028] S25、数据完成发送后,相应的业务端口UART模块撤销发送请求信号,通道选择与控制模块再轮循其他的端口。[0029] 进一步,所述CPU模块和CPLD模块的数据传输的帧格式包括:第1个字节为帧起始,采用数据0x5E;第二个字节为通道号,对应业务端口1‑8;帧中间为传输的数据内容,长度不定;倒数第二个字节为帧有效数据的和校验;最后1个字节为帧结束标识,采用数据0x5E;如果传输的数据出现0x5E,分解成0x55和0xEE两个数据,如果传输的数据出现0x55,分解成0x55和0xE5两个数。按照这种方式,数据流中不会出现和帧标识相同的0x5E,从而避免接收时出现错误。[0030] 进一步,所述CPU模块和CPLD模块的数据在接收时,首先定位帧起始标识0x5E数据,如果接收到1个0x5E数据,则以该数据为起始,按照如上所述帧结构进行数据定位;如果连续收到多个0x5E数据,则以最后1个0x5E作为帧起始标识;如果接收方收到0x55数据时,根据接下来的数据是0xEE还是0xE5,还原成原始的0x5E或者0x55数据。[0031] 本发明的有益效果:设计合理、结构简单、外围元器件少、成本低,采用CPLD的进行UART接口扩展和管理,解决一对多的串口通讯可靠性问题,满足串口扩展的需求,并且扩展的各个串口全双工收发互不影响,即每个串口完全独立,波特率可单独设置且速度不会降低,所需的串口个数可以根据资源利用情况选择合理的CPLD来实现自由定制。附图说明[0032] 图1是本发明的原理框图。具体实施方式[0033] 下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。[0034] 在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上,除非另有明确的限定。[0035] 在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。[0036] 在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。[0037] 参见图1,本实施例提供了一种通过CPLD实现多路UART接口扩展的系统,包括CPU模块101和CPLD模块102,所述CPLD模块102包括CPU端口UART模块103、通道选择与控制模块104、8个作为业务UART接口的业务端口UART模块105‑112,所述CPU端口UART模块103与CPU模块101的UART接口通信连接,所述CPU端口UART模块103包括CPU端口UART接收模块和CPU端口UART发送模块;所述CPU端口UART模块103与通道选择与控制模块104连接,8个所述业务端口UART模块105‑112均与对其进行参数配置的CPU模块101通过IIC接口连接,8个所述业务端口UART模块105‑112均与根据需要对其进行选择来实现相应UART接口数据通讯的通道选择与控制模块104连接。本发明通过CPLD模块102来实现CPU模块101接入的UART接口的扩展功能。相较于以前的处理方式,本发明可以提供完全独立的多路UART接口的扩展功能,还可以方便灵活地进行功能扩展,有效地控制了成本,简化了电路。[0038] 本实施例所述CPU模块采用常用的单片机,提供1路UART接口用于通信,1路IIC接口用于对业务UART端口的参数配置。所述CPLD模块采用GW1N‑LV4LQ144芯片,其内置10个用于数据的片上存储的18Kbit的片上块状存储器。[0039] 本实施例的设备上电后或者业务端口参数需要改变时,CPU模块101根据需求对需要通信的业务端口UART模块105‑112中具体的端口进行参数配置。参数的配置内容包括数据传输的波特率、数据位宽、奇偶检验位类型、停止位长度等信息。8个通道的工作状态完成独立,即业务端口UART模块105‑112可以工作在完全不相同的配置参数下。[0040] 本实施例所述CPU模块101与CPU端口UART模块103之间采用约定的传输波特率、数据位宽、奇偶检验位类型、停止位长度进行数据通信,其中约定的传输波特率大于8路业务端口UART传输波特率的总和,以确保传输过程中不会因为带宽的原因产生拥堵而引起丢包。[0041] 本实施例所述CPU模块101和CPLD模块102的数据传输的帧格式包括:第1个字节为帧起始,采用数据0x5E;第二个字节为通道号,对应业务端口1‑8;帧中间为传输的数据内容,长度不定;倒数第二个字节为帧有效数据的和校验;最后1个字节为帧结束标识,采用数据0x5E;如果传输的数据出现0x5E,分解成0x55和0xEE两个数据,如果传输的数据出现0x55,分解成0x55和0xE5两个数。按照这种方式,数据流中不会出现和帧标识相同的0x5E,从而避免接收时出现错误。[0042] 本实施例所述CPU模块101和CPLD模块102的数据在接收时,首先定位帧起始标识0x5E数据,如果接收到1个0x5E数据,则以该数据为起始,按照如上所述帧结构进行数据定位;如果连续收到多个0x5E数据,则以最后1个0x5E作为帧起始标识;正常情况下,数据流中最多只会出现两个连续的0x5E数据,分别是帧结束和帧起始。如果接收方收到0x55数据时,根据接下来的数据是0xEE还是0xE5,还原成原始的0x5E或者0x55数据。[0043] 本实施例所述业务端口UART模块105‑112中任一个业务端口UART模块进行数据发送时,其具体步骤如下:[0044] S11、CPU模块101确定要从哪个业务端口UART模块进行数据发送,根据需求对相应的业务端口UART模块进行参数配置,确定业务端口的数据传输的波特率、数据位宽、奇偶检验位类型、停止位长度等信息;[0045] S12、CPU模块101根据帧结构进行组帧,将数据发送给CPU端口UART接收模块;[0046] S13、CPU端口UART模块103按照标准的UART接口时序要求解析出具体的数据内容,并传输给通道选择与控制模块104;[0047] S14、通道选择与控制模块104去掉帧标识,从通道号标识字节确定是要发送给相应业务端口UART模块的数据,同时还原出0x5E和0x55字节,根据校验判断是否在传输过程中出错;[0048] S15、通道选择与控制模块104确定是输出给相应业务端口UART模块后,将数据发送给相应业务端口UART模块,业务端口UART模块按照配置的参数将数据发送出去。[0049] 本实施例所述业务端口UART模块进行数据接收时,由于业务端口UART模块独立工作,同一时刻,8个业务端口UART模块105‑112都会接收到数据。其具体步骤如下:[0050] S21、8个业务端口UART模块105‑112按照各自配置的参数在同一时刻均会接收到数据,利用CPLD内部的块状存储单元,将数据进行缓存;[0051] S22、当缓存区间中有数据时,8个业务端口UART模块105‑112各自向通道选择与控制模块104发出请求信号,表示有数据需要发送;[0052] S23、通道选择与控制模块104采用状态机对请求信号进行轮循检测的方式,当状态机空闲,并且某一路业务端口UART模块发送请求后,给出确认信号,通知该模块可以进行数据的发送;[0053] S24、发送时通道选择与控制模块104增加帧头标识、通道标识,校验、帧尾标识信息,发送的数据根据CPU端口UART模块103的波特率发送给CPU模块101;[0054] S25、数据完成发送后,相应的业务端口UART模块撤销发送请求信号,通道选择与控制模块104再轮循其他的端口。[0055] 本发明设计合理、结构简单、外围元器件少、成本低,采用CPLD的进行UART接口扩展和管理,解决一对多的串口通讯可靠性问题,满足串口扩展的需求,并且扩展的各个串口全双工收发互不影响,即每个串口完全独立,波特率可单独设置且速度不会降低,所需的串口个数可以根据资源利用情况选择合理的CPLD来实现自由定制。

专利地区:湖北

专利申请日期:2021-12-28

专利公开日期:2024-06-18

专利公告号:CN114490474B

电话咨询
读内容
搜本页
回顶部