一种多io模块与多通讯模块之间的uart通讯方法及装置的制造方法
【技术领域】
[0001] 本发明涉及工业通讯领域,尤其涉及一种多10模块与多通讯模块之间的UART通 讯方法及装置。
【背景技术】
[0002] 随着计算机通信技术和信息处理技术的飞速发展.工业通讯技术已经成为一项 重要技术,在工业和通信领域都得到了广泛的应用。设备网络化已经成为一个共识,成为必 然的趋势。串口通信是设备网络化的一个必不可少的功能之一。串口通信的稳定、高效也 是计算机通信一直追求的目标。
[0003] 通用异步接收发送器UART(UniversalAsynchronousReceiverand Transmitter)能够在串行方式下发送和接收数据,其数据传送方式只需要一对线路就能实 现远距离数据通信。以其资源简单、传输距离远、易于实现等特点成为各种处理器的标准集 成外设之一。特别是在集成电路设计领域中趋于成熟的S0C(SyStemOnChip系统芯片) 技术应用里,UART已成为不可缺少的外设之一。实际的应用设计中,经常要用到UART的多 个主要功能,用专用接口芯片(如IBM的NI8250)往往会造成资源浪费和成本提高。
[0004]FPGA是在传统PAL、GAL等可编程器件的基础上进一步发展的产物,其使用非常灵 活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。随着FPGA技术的突飞猛 进,其在通信系统、数据处理、网络通信、仪器仪表、工业控制、军事和航空航天等众多领域 得到越来越广泛的应用。
[0005] 为了提高工业自动化设备的工作效率,其控制系统需采用模块化策略,10模块连 接现场设备与通讯模块,用于现场数据的采集与通讯;通讯模块连接控制模块与10模块, 用于控制系统中有效数据的传输;但10模块与通讯模块一对一通讯,已不能完成多任务的 并行处理的要求,并且成本较高。采用10模块与通讯模块多对多通讯可以提高系统的性 能,同时可以降低成本。
【发明内容】
[0006] 本发明提出了一种多10模块与多通讯模块之间的UART通讯方法及装置,利用 FPGA来解决通讯模块与10模块的UART收发端口选择的问题,从而实现10模块与通讯模块 多对多通讯。
[0007] 具体的,为了解决上述问题,本发明采用了如下技术方案:
[0008] -种多10模块与多通讯模块之间的UART通讯方法,用于m个10模块与η个通讯 模块的多对多通讯,其中,m和η为整数且16,3,在所述m个10模块与η 个通讯模块之间设立基于FPGA的时钟分频模块、接收模块、发送模块、10选择模块、通讯选 择模块及顶层模块;
[0009] 所述时钟分频模块采用16倍数据波特率的时钟进行采样,每个数据占据16个时 钟采样周期,将各个数据位的中间时刻作为采样点,以保证采样不会滑码或误码;
[0010] 所述接收模块设为η个,接收从通讯模块CPU中发来的数据,并不断进行序列检 测;当检测到预定统一的通讯格式的数据时,输出两个高电平信号分别发送到所述通讯选 择模块和发送模块;发送到所述通讯选择模块的信号代表该通讯模块的在线情况,高电平 时代表模块在线;发送到所述发送模块的信号为一个发送起始信号;
[0011] 所述发送模块设为η个,接收10模块的数据并发送到通讯模块中;当接收到所述 发送起始信号后,发送回馈信息给通讯模块的CPU作为回应,所述回馈信息发送完成进入 空闲状态后,根据所述通讯选择模块的信息选择合适的发送口,继续发送从10模块接收到 的数据到通讯模块;;
[0012] 所述10选择模块通过一个周期性变化的4位数据依次选通m路10模块的通讯; [0013]所述通讯选择模块进行η个通讯模块的表决及其通讯收发端的选择、读取;当η个 通讯模块中的任意一个通讯模块在线情况发成变化时,采用冗余诊断机制选择在线的优先 级最高的通讯模块为主通讯模块,其余在线的为辅通讯模块。
[0014] 所述顶层模块将所述时钟分频模块、接收模块、发送模块、10选择模块、通讯选择 模块的信号连接成为一个整体,进行内部协调及通信。
[0015] 进一步的,所述发送模块接收到发送起始信号后,发送的回馈信息包括通讯装置 的模件地址、通讯模块的在线信息与主辅信息。
[0016] 进一步的,所述通讯模块的数量为3个,即η= 3 ;3个通讯模块分别设有各自独立 的一组收发端,还设有一组共用的收发端。
[0017] 进一步的,所述10模块的数量为16个,即m= 16 ; 16个10模块分为高8位与低 8位;当10模块与通讯模块收发信息时,低8位10模块通过3个通讯模块的共用收发端收 发,高8位10模块通过3个通讯模块的独立收发端收发。
[0018] 本发明还提供了一种使用上述的多10模块与多通讯模块之间的UART通讯方 法的通讯装置,用于m个10模块与η个通讯模块的多对多通讯,其中,m和η为整数且 l<m<16,l<n<3,其特征在于:包括一FPGA,基于所述FPGA设有所述时钟分频模块、 接收模块、发送模块、10选择模块、通讯选择模块及顶层模块。
[0019] 进一步的,所述10模块的数量为16个,即m= 16,所述通讯模块的数量为3个,即 η= 3 ;其中,16个10模块分为高8位与低8位,3个通讯模块分别设有各自独立的一组收 发端,还设有一组共用的收发端;当10模块与通讯模块收发信息时,低8位10模块的数据 通过3个通讯模块的共用收发端收发,高8位10模块的数据通过3个通讯模块的独立收发 端收发。
[0020] 本发明的多10模块与多通讯模块之间的UART通讯方法,基于FPGA设计了时钟分 频模块、接收模块、发送模块、10选择模块、通讯选择模块及顶层模块,通过选择通讯模块的 收发口与相应的10模块的收发口来实现具体的某一通讯模块与10模块的UART通讯。具 体的,本发明在已有的UART通讯方法中,添加了通讯选择模块和10选择模块,并通过通讯 选择模块来检测通讯模块的在线情况进而选择在线的且优先级最高的通讯模块进行通讯; 通过10选择模块,采用一个周期性变化的4位数据AD选择具体的某一 10模块进行通讯, 从而实现多10模块与多通讯模块之间具体的某一通讯模块与10模块的UART通讯。
[0021] 本发明的多10模块与多通讯模块之间的UART通讯装置,使用上述方法设计了基 于FPGA的所述时钟分频模块、接收模块、发送模块、10选择模块、通讯选择模块及顶层模 块,实现了 10模块与通讯模块多对多通讯,提高了系统的性能,同时降低了成本,提高了工 业自动化设备的工作效率,具有较高的实用价值和良好的应用前景。
【附图说明】
[0022] 图1为本发明的多10模块与多通讯模块之间的UART通讯装置的示意图。
【具体实施方式】
[0023] 为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是 应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的 限制。
[0024] 结合【具体实施方式】,对本发明进行进一步说明。
[0025] 本发明提出的多10模块与多通讯模块之间的UART通讯方法包含了16个10模块 与三冗余的通讯模块,主要通过基于FPGA的特定模块来选择通讯模块的收发口与相应的 10模块的收发口来实现具体的某一通讯模块与10模块的UART通讯。
[0026] 本发明在已有的UART通讯方法中,添加了两个模块来实现所需要的功能:一是通 讯选择模块,它可以通过检测通讯模块的在线情况从而选择在线的且优先级最高的通讯模 块进行通讯;二是10选择模块模块,它通过一个四位的数据从而选择具体的某一 10模块进 行通讯。
[0027] 具体的,本发明基于FPGA设计了一个顶层模块和五个子模块,分别为时钟分频模 块、接收模块、发送模块、10选择模块及通讯选择模块,具体说明如下:
[0028] 1)时钟分频模块
[0029] 由于UART是异步传输,没有传输同步时钟。为了能保证数据传输的正确性,UART 采用16倍数据波特率的时钟进行采样。每个数据占据16个时钟采样周期,将各个数据位 的中间时刻作为采样点,以保证采样不会滑码或误