CN108628784B - 串行通信器及串行通信*** - Google Patents

串行通信器及串行通信*** Download PDF

Info

Publication number
CN108628784B
CN108628784B CN201810398704.7A CN201810398704A CN108628784B CN 108628784 B CN108628784 B CN 108628784B CN 201810398704 A CN201810398704 A CN 201810398704A CN 108628784 B CN108628784 B CN 108628784B
Authority
CN
China
Prior art keywords
unit
communication
data
module
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810398704.7A
Other languages
English (en)
Other versions
CN108628784A (zh
Inventor
谭怀亮
林协群
谭彦杰
王良才
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201810398704.7A priority Critical patent/CN108628784B/zh
Publication of CN108628784A publication Critical patent/CN108628784A/zh
Application granted granted Critical
Publication of CN108628784B publication Critical patent/CN108628784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请涉及一种串行通信器及串行通信***。一种串行通信器,包括控制模块、总线接口模块和至少两个RS422通信模块,总线接口模块接收并输出通信请求至控制模块,控制模块根据通信请求确定外部处理器选择的各RS422通信模块的设备号,输出控制指令至各设备号对应的RS422通信模块,获取并输出各设备号对应RS422通信模块的状态信息至总线接口模块,总线接口模块接收并输出状态信息至外部处理器,状态信息用以指示外部处理器根据状态信息发送或接收数据信息,各设备号对应RS422通信模块根据控制指令工作。本方案以总线接口模块和控制模块为桥梁,实现处理器与多路RS422通信模块之间的数据传输,解决串行通信器当RS422通信模块数量过多时,处理器的引脚不够用的问题。

Description

串行通信器及串行通信***
技术领域
本申请涉及接口通信技术领域,特别是涉及一种串行通信器及串行通信***。
背景技术
RS422是一种常见的串行通信协议标准,RS422异步串行通信总线是一种平衡电平数字通信接口总线,其数据传输速率最高达到10兆/秒,并允许在一条平衡总线上连接最多10个接收器,它支持点对多的双向通信、平衡传输规范。
在串行通信中,常需要使用多路RS422异步通信总线实现多个功能模块之间的数据传输。传统的串行通信器通过将RS422通信模块内的RS422异步串行通信总线与处理器的引脚相连接实现数据传输,处理器的引脚数量有限,当RS422异步串行通信总线数量过多时,会出现处理器的引脚不够用的情况。
发明内容
基于此,有必要针对串行通信时处理器的引脚不够用的问题,提供一种串行通信器及串行通信***。
一种串行通信器,包括控制模块、总线接口模块和至少两个RS422通信模块;
总线接口模块接收并输出通信请求至控制模块,控制模块根据通信请求确定外部处理器选择的各RS422通信模块的设备号,输出控制指令至各设备号对应的RS422通信模块,获取并输出各设备号对应RS422通信模块的状态信息至总线接口模块,总线接口模块接收并输出状态信息至外部处理器,状态信息用以指示外部处理器根据状态信息发送或接收数据信息,各设备号对应RS422通信模块根据控制指令工作。
在其中一个实施例中,总线接口模块包括片选信号接口、写使能信号接口、读使能信号接口、地址信号接口、数据信号接口以及接口通信单元,片选信号接口、写使能信号接口、读使能信号接口、地址信号接口以及数据信号接口分别与外部处理器的引脚相连接,接口通信单元与控制模块相连接。
在其中一个实施例中,控制模块包括控制通信单元和控制单元,控制通信单元与控制单元相连接,控制通信单元分别与总线接口模块和RS422通信模块相连接;
控制通信单元接收并输出来自总线接口模块的通信请求至控制单元,控制单元根据通信请求确定外部处理器选择的RS422通信模块的设备号,并输出控制指令至控制通信单元,控制通信单元输出控制指令至各设备号对应的RS422通信模块,获取并输出各设备号对应RS422通信模块的状态信息至总线接口模块。
在其中一个实施例中,RS422通信模块包括FIFO发送缓存单元、发送单元、FIFO接收缓存单元以及接收单元;
当串行通信器发送数据时,FIFO发送缓存单元根据控制模块的第一控制指令写入并输出已增添校验信息的数据至发送单元,发送单元根据控制模块的第二控制指令将FIFO发送缓存单元输出的数据进行并串转换并输出;
当串行通信器接收数据时,接收单元接收外部串行数据帧并进行串并转换,将串并转换后的数据输出至FIFO接收缓存单元,FIFO接收缓存单元根据控制模块的第三控制指令缓存并输出接收到的数据。
在其中一个实施例中,RS422通信模块还包括波特率发生单元,波特率发生单元分别与发送单元、接收单元相连接,波特率发生单元用于根据外部处理器的波特率参数,设置发送单元的通信速率和接收单元的通信速率。
在其中一个实施例中,RS422通信模块还包括逻辑控制单元,逻辑控制单元用于获取并输出外部处理器的波特率参数至波特率发生单元、接收控制模块输出的待发送数据、为待发送数据增添校验信息并封装成数据帧输出至FIFO发送缓存单元、接收FIFO接收缓存单元输出的数据帧并做校验处理以及输出已校验的数据帧至控制模块。
在其中一个实施例中,接收单元包括第一检测单元和数据接收单元,第一检测单元与数据接收单元相连接;
第一检测单元用于检测接收使能信号,数据接收单元用于根据接收使能信号接收数据。
在其中一个实施例中,发送模块包括第二检测单元和数据发送单元,第二检测单元与数据发送单元相连接;
第二检测单元用于检测发送使能信号,数据发送单元用于根据发送使能信号发送数据。
一种串行通信***,包括处理器以及串行通信器,处理器与所述串行通信器中总线接口模块相连接。
在其中一个实施例中,串行通信***还包括驱动芯片,驱动芯片与RS422通信模块相连接。
本方案中的串行通信器及串行通信***,通过总线接口模块与外部处理器相连接、总线接口模块与控制模块相连接以及控制模块与RS422通信模块相连接,以总线接口模块和控制模块为桥梁,实现外部处理器与多路RS422通信模块之间的数据传输,由于总线接口模块的引脚数量是一定的,通过总线接口模块与外部处理器相连接,再通过控制模块将数据传输至多路RS422通信模块,能够解决传统的串行通信器当RS422通信模块数量过多时,处理器的引脚不够用的问题。
附图说明
图1为一个实施例中串行通信器的装置结构图;
图2为一个实施例中串行通信器的总线接口模块的装置结构图;
图3为一个实施例中串行通信器的控制模块的装置结构图;
图4为一个实施例中串行通信器的RS422通信模块的装置结构图;
图5为一个实施例中串行通信***的装置结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体地实施例的目的,不是旨在于限制本申请。应该理解的是,本申请的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
一种串行通信器,如图1所示,包括控制模块102、总线接口模块104和至少两个RS422通信模块106;
总线接口模块104接收并输出通信请求至控制模块102,控制模块102根据通信请求确定外部处理器选择的各RS422通信模块106的设备号,输出控制指令至各设备号对应的RS422通信模块106,获取并输出各设备号对应RS422通信模块106的状态信息至总线接口模块104,总线接口模块104接收并输出状态信息至外部处理器,状态信息用以指示外部处理器根据状态信息发送或接收数据信息,各设备号对应RS422通信模块106根据控制指令工作。
控制模块用于读取串行通信器内各模块的状态信号和输出控制指令,以指示各模块之间协调工作。外部处理器通过总线接口模块和控制模块实现与RS422通信模块通信。总线接口模块用于外部处理器与串行通信器内部各功能模块之间的信息交互,这些信息包括地址信号、数据信号和控制信号。本申请中的总线接口模块的数据线和地址线宽度都可变,所有接口的控制信号都为低电平有效。具体的,本申请中的总线接口模块为Local Bus(本地总线)总线接口模块,Local Bus总线一般采用数据线/地址线复用的形式,位宽通常为16/32位,使用时需要将总线的数据信号和地址信号分离出来,再分别接到目标器件的数据端口和地址端口,可以通过使用信号锁存器来分离Local Bus总线中的数据信号和地址信号。Local Bus总线具有传输速率快、支持多机操作,控制简单、兼容性好等特点。
RS422通信模块遵循RS-422串行数据接口标准,RS422通信模块通过RS422异步串行通信总线与其它模块实现通信,RS-422异步串行通信总线是一种平衡电平数字通信接口总线,其数据传输速率最高达到10兆/秒,传输距离最长延长到4000英尺(速率低于100千字节/秒时),并允许在一条平衡总线上连接最多10个接收器。RS-422异步串行通信总线支持点对多的双向通信,具有传输距离远、传输可靠性高、成本低、使用简单等特点。
串行通信器还包括时钟模块和复位模块,时钟模块与控制模块相连接,用于输出时钟信号;复位模块与控制模块相连接,用于输出复位信号。时钟模块可以由锁相环组成,锁相环可以用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。用于振荡器中的反馈技术,许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的压控振荡器,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时钟信号。在可编程的芯片、可编程控制器以及微机等电子设备的运行中,会出现程序跑飞的情况或程序跳转,可用手动或自动的方法发给硬件特定接口使软件的运行恢复到特定的程序段运行,这一过程就是复位过程,而在这一过程中,手动或自动的方法发给硬件特定接口的信号,就是复位信号。复位信号主要分为两大类同步复位信号与异步复位信号,同步复位信号是指时钟有效沿到来时对触发器进行复位所产生的信号,异步复位信号不依赖于时钟信号,只在***复位有效是产生的复位信号。
进一步的,本方案中的串行通信器,可集成于FPGA(Field-Programmable GateArray,现场可编程门阵列)芯片内使用,其中,FPGA芯片可以为常见的Xilinx、Lattice、Actel等公司的FPGA产品。将串行通信器集成于FPGA芯片内使用,能实现基于FPGA兼容Local Bus总线的多路RS422(带FIFO)异步串行通信实时***,与现有的集成芯片相比,它能够支持多路RS422异步串行通信和兼容Local Bus总线接口,且每路RS422无优先级、互不干扰、实时性强。
本方案中的串行通信器,通过总线接口模块与外部处理器相连接、总线接口模块与控制模块相连接以及控制模块与RS422通信模块相连接,以总线接口模块和控制模块为桥梁,实现外部处理器与多路RS422通信模块之间的数据传输,由于总线接口模块的引脚数量是一定的,通过总线接口模块与外部处理器相连接,再通过控制模块将数据传输至多路RS422通信模块,能够解决传统的串行通信器当RS422通信模块数量过多时,处理器的引脚不够用的问题。
在其中一个实施例中,如图2所示,总线接口模块104包括片选信号接口202、写使能信号接口204、读使能信号接口206、地址信号接口208、数据信号接口210以及接口通信单元212,片选信号接口202、写使能信号接口204、读使能信号接口206、地址信号接口208以及数据信号接口210分别与外部处理器的引脚相连接,接口通信单元212与控制模块102相连接。
具体的,总线接口模块为Local Bus(本地总线)总线接口模块。本方案中的串行通信器为Local Bus规范的从设备接口,对应的外部处理器端的Local Bus总线接口为主设备接口。Local Bus总线接口模块包括:时钟信号接口CLK_In,可接收由时钟模块产生的时钟信号;复位信号接口RST_n,可接收由复位模块产生的复位信号;片选信号接口LCS_n,可接收由外部处理器产生的片选信号;写使能信号接口LWE_n,可以接收由外部处理器产生的写使能信号;读使能信号接口LOE_n,可以接收由外部处理器产生的读使能信号;地址信号接口,可以接收由外部处理器产生的地址信号;数据信号接口,可以接收由外部处理器产生的数据信号。地址信号接口包括地址总线LBA[n:m],由主设备外部处理器输出地址到从设备串行通信器,其中n为31,m为0;数据信号接口包括数据总线LBD[Y:X],数据总线为双向信号端口,由于主设备外部处理器具有32位数据端口,因此主设备中Y为31,X为0;从设备串行通信器的数据端口可灵活设置,由于本方案中的串行通信器使用的数据粒度为2个字节,即16位数据宽度,因此从设备中Y为31,X为16。数据组织是指数据的传送顺序,有两种:大端数据和小端数据。本方案的Local Bus总线接口模块支持大小端数据的转换,其中,外部处理器的数据组织方式为大端数据,RS42通信模块使用的是小端数据,因此,本申请在Local Bus总线接口模块中实现了大小端数据格式的转换,减轻了外部处理器的负载,提高了***处理效率。
在其中一个实施例中,如图3所示,控制模块102包括控制通信单元302和控制单元304,控制通信单元302与控制单元304相连接,控制通信单元302分别与总线接口模块104和RS422通信模块106相连接;
控制通信单元302接收并输出来自总线接口模块104的通信请求至控制单元304,控制单元304根据通信请求确定外部处理器选择的RS422通信模块106的设备号,并输出控制指令至控制通信单元302,控制通信单元302输出控制指令至各设备号对应的RS422通信模块106,获取并输出各设备号对应RS422通信模块106的状态信息至总线接口模块104。
RS422通信模块的设备号为RS422_X,其中X可以为任意正整数。举例说明,当串行通信器中包括4个RS422通信模块时,对应的设备号可以分别为RS422_1,RS422_2,RS422_3,RS422_4。
在其中一个实施例中,如图4所示,RS422通信模块106包括FIFO发送缓存单元402、发送单元404、FIFO接收缓存单元406以及接收单元408;
当串行通信器发送数据时,FIFO发送缓存单元402根据控制模块102的第一控制指令写入并输出已增添校验信息的数据至发送单元404,发送单元404根据控制模块102的第二控制指令将FIFO发送缓存单元402输出的数据进行并串转换并输出;
当串行通信器接收数据时,接收单元408接收外部串行数据帧并进行串并转换,将串并转换后的数据输出至FIFO接收缓存单元406,FIFO接收缓存单元406根据控制模块102的第三控制指令缓存并输出接收到的数据。
当串行通信器发送数据时,FIFO发送缓存单元根据控制模块的第一控制指令写入并输出已增添校验信息的数据至发送单元,发送单元根据控制模块的第二控制指令将FIFO发送缓存单元输出的数据进行并串转换并输出,在FIFO发送缓存单元根据控制模块的第一控制指令写入已增添校验信息的数据时,控制模块会实时将FIFO发送缓存单元的状态告知外部处理器,以防止数据溢出。
当串行通信器接收数据时,接收单元接收外部串行数据帧并进行串并转换,将串并转换后的数据输出至FIFO接收缓存单元,FIFO接收缓存单元根据控制模块的第三控制指令缓存并输出接收到的数据,当FIFO接收缓存单元根据控制模块的第三控制指令缓存接收到的数据后,控制模块会将FIFO接收缓存单元的状态传送给外部处理器,使外部处理器产生中断或通过轮询的方式读取接收的数据。
在其中一个实施例中,如图4所示,RS422通信模块106还包括波特率发生单元410,波特率发生单元分别与发送单元404、接收单元408相连接,波特率发生单元410用于根据外部处理器的波特率参数,设置发送单元404的通信速率和接收单元408的通信速率。
本申请中的波特率发生单元为根据任意频率发生器原理设计的波特率发生单元,它由一个加法器和一个N位相位寄存器组成,其中N一般为24~32,N值越大,精度越高。对于一个固定的参考时钟(REF_CLOCK)而言,相位寄存器以步长K递增计数,相位寄存器每经过(2^N)/K个参考时钟,相位寄存器回到初始状态。对于相位累加,生成一个方波,至少需要2个参考时钟REF_CLOCK才能得到一个完整周期的方波,因此,波特率发生单元产生的频率最大值只能达到参考频率REF_CLOCK的一半。一般情况下,参考时钟REF_CLOCK会选用***时钟sys_clock,***时钟sys_clock的频率一般比RS422异步串行通信的波特率高出几个数量级。若以最常用的100MHz***时钟sys_clock作为参考频率REF_CLOCK,采用16倍波特率(115200*16)bps(比特率)作为RS422异步串行通信信号的采样频率,根据直接计数分频法可得,分频系数为100*10^6Hz(赫兹)/(115200*16Hz)=54.25347222222222,由于串行通信器中浮点运算资源非常有限,故能采用定点运算近似等于浮点运算,采用四舍五入法,以上直接计数分频法的分频系数取54,因此,可算出直接计数分频法的理论频率值为100*10^6Hz/54=1851851.851851852Hz,理论绝对误差为|1851851.851851852Hz-115200*16Hz|=8651.851851852Hz,理论相对误差为8651.851851852Hz/115200*16Hz=0.4694%。若按照本申请,根据任意频率发生器原理设计的波特率发生单元,仍然以100MHz***时钟sys_clock作为参考频率REF_CLOCK,16倍115200bps作为RS422异步串行通信的波特率,并且设置一个N=32位相位寄存器,则任意频率发生器频率控制字K=(115200*16)*(2^32)/100*10^6=79164837.199872,因此,可算出任意频率发生器的理论频率值为REF_CLOCK*(K/2^N)=100*10^6*(79164837/2^32)=1843199.995346367Hz,理论绝对误差为|1843199.995346367Hz-115200*16Hz|=0.004653633Hz,理论相对误差为0.004653633Hz/115200*16Hz=2.524757486979167e-7%,几乎为零。在实验中,为了测试“任意频率发生器”的实际功能是否与理论大小相符,我们将任意频率发生器产生的RS422波特率输出至串行通信器的时钟模块IO引脚,通过外部示波器捕获串行通信器输出的RS422波特率,从示波器可直接读取RS422波特率的值为1843200Hz,刚好为115200*16Hz,输出结果与预期理论值完全一样。显然,在RS422通信模块中,根据任意频率发生器原理设计的波特率发生单元比使用直接计数分频法设计的波特率发生单元能使RS422通信模块的误码率更低,时序裕量更充足、***更具鲁棒性。
在其中一个实施例中,如图4所示,RS422通信模块106还包括逻辑控制单元412,逻辑控制单元412用于获取并输出外部处理器的波特率参数至波特率发生单元、接收控制模块102输出的待发送数据、为待发送数据增添校验信息并封装成数据帧输出至FIFO发送缓存单元402、接收FIFO接收缓存单元406输出的数据帧并做校验处理以及输出已校验的数据帧至控制模块102。
在其中一个实施例中,如图4所示,接收单元408包括第一检测单元414和数据接收单元416,第一检测单元414与数据接收单元416相连接;
第一检测单元414用于检测接收使能信号,数据接收单元416用于根据接收使能信号接收数据。
在接收信号之前,第一检测单元处于等待的状态,等待接收使能信号,当检测到接收使能信号时,数据接收单元开始接收数据。举例说明,第一检测单元会持续检测数据的起始位,当数据的起始位开始抖动时(即不为0时),在中点检测信号,当计数结束数据依然有效时,开始通过数据接收单元接收数据,数据接收单元接收8位数据,在中点进行采样,然后完成一帧数据的接收,并输出捕获使能信号至FIFO接收缓存单元,作为FIFO接收缓存单元的使能信号。
在其中一个实施例中,发送单元404包括第二检测单元418和数据发送单元420,第二检测单元418与数据发送单元420相连接;
第二检测单元418用于检测发送使能信号,数据发送单元420用于根据发送使能信号发送数据。
第二检测单元检测发送使能信号,当检测到发送使能信号时,数据发送单元接收并发送11位数据,包括1位起始位,8位数据位,1位奇偶校验位,1位停止位,按照RS422的通信协议在计数中点发送数据,输出发送完成信号作为下一级的使能信号。
在其中一个实施例中,串行通信器可集成在FPGA芯片内,FPGA芯片可以为常见的Xilinx、Lattice、Actel等公司的FPGA产品。
在其中一个实施例中,串行通信器内RS422通信模块的数量可根据需要自行设置。
在其中一个实施例中,RS422通信模块内FIFO发送缓存单元和FIFO接收缓存单元的缓存大小可根据需要自行设置。
一种串行通信***,如图5所示,包括处理器502以及串行通信器504,处理器502与所述串行通信器504中总线接口模块104相连接。
在串行通信***中,首先通过处理器输出通信请求至总线接口模块,总线接口模块解析通信请求,并输出相应的通信请求至控制模块,控制模块根据通信请求,确定处理器需要的RS422通信模块的设备号,输出控制指令至各设备号对应的RS422模块,获取并输出各设备号对应的RS422通信模块的状态信息至总线接口模块,总线接口模块接收并输出状态信息至处理器,处理器根据状态信息发送或接收数据信息,使各设备号对应RS422通信模块根据控制指令工作,实现RS422通信模块与处理器的通信。其中,通信请求指令包括片选信号CS、写使能信号WE、读使能信号OE、地址信号address、数据信号data,处理器通过片选信号CS选择串行通信器内的RS422通信模块工作。举例说明,处理器可通过输出片选信号CS指定选择串行通信器内的设备号为RS422_x的RS422通信模块工作,当处理器同时输出多路片选信号CS时,可同时选择多路RS422通信模块工作。进一步的,处理器会创建RS422异步串行通信任务,首先输出RS422驱动程序的入口函数至总线接口模块并接收反馈信息,根据反馈信息判断RS422通信模块是否已初始化完成,当确定RS422通信模块初始化完成时,选择RS422通信模块建立通信,注册中断向量并清除相应中断位,输出指令设置已建立通信的RS422通信模块的波特率、清空其FIFO发送缓存单元和FIFO接收缓存单元中的数据。
举例说明,串行通信***上电后,首先初始化处理器,配置处理器的工作模式,关闭中断和看门狗,清除Cache(缓存),配置存储空间,保证内存地址单元能够可靠的读/写;设置中断向量表,清除未决的中断,设置处理器的各寄存器,配置用户级初始化信息。在本申请中可采用PowerPC(Performance Optimization With Enhanced RISC–PerformanceComputing,精简指令集构架的中央处理器)架构CPU-T1024作为处理器,使用VxWorks操作***,当处理器的初始化完成时,就成功构建了串行通信***的多任务环境,同时也配置完成了VxWorks操作***的多任务环境。因为RS422通信模块为一种字符设备,VxWorks操作***为其提供了接口层,这个接口层由ttyDry,tyLib定义,这是VxWorks操作***内部定义的一套操作函数和数据结构,RS422通信模块将使用其中的函数和结构与接口层进行交互,接口层继续与用户接口层(如I/O(input/output,输入/输入)层)进行数据交互。RS422通信模块以字符设备的形式向上层(I/O***层)注册其读写和控制函数,其中:
ttyOpen:tty设备打开函数,对应上层open函数。
ttyClose:tty设备关闭函数,对应上层close函数。
ttyRead:tty设备字符读取函数,对应上层read函数。
ttyWrite:tty设备字符发送函数,对应上层write函数。
ttyIoctl:tty设备控制函数,对应上层ioctl函数。
VxWorks操作***初始化RS422通信模块通常需要执行以下的步骤:
1)创建串口设备(void)ttyDevCreate(tyName,sysSerialChanGet(ix),512,512);
2)设置串口波特率(void)ioctl(SerialDevFd,FIOBAUDRATE,pCommPara->Baudrate);
3)设置数据位数(void)ioctl(SerialDevFd,SIO_HW_OPTS_SET,pCommPara->DataBits);
4)设置停止位(void)ioctl(SerialDevFd,SIO_HW_OPTS_SET,STOPB);
5)设置校验位(void)ioctl(SerialDevFd,SIO_HW_OPTS_SET,PARENB)。
本方案中的串行通信***,通过总线接口模块与外部处理器相连接、总线接口模块与控制模块相连接以及控制模块与RS422通信模块相连接,以总线接口模块和控制模块为桥梁,实现外部处理器与多路RS422通信模块之间的数据传输,由于总线接口模块的引脚数量是一定的,通过总线接口模块与外部处理器相连接,再通过控制模块将数据传输至多路RS422通信模块,能够解决传统的串行通信器当RS422通信模块数量过多时,处理器的引脚不够用的问题。
在其中一个实施例中,串行通信***还包括驱动芯片506,驱动芯片506与RS422通信模块106相连接。
RS422通信模块会向驱动芯片注册回调函数。当发送数据时,首先由处理器的I/O层调用write函数发送数据至RS422通信模块,然后RS422通信模块内的ttyWrite函数主动调用驱动芯片的驱动程序相关函数发送字符数据。当读取数据时,RS422通信模块内的ttyRead函数则直接读取接收FIFO单元中的字符,当接收FIFO单元为空时,等待(阻塞方式)或者立刻返回错误(非阻塞方式)。此时接收FIFO单元的填充是由驱动芯片主动进行的,当驱动芯片接收到一个字符时,其调用RS422通信模块提供的机构函数将字符写入接收单元,再由接收单元输出至接收FIFO单元中以供上层读取。进一步的,采用二级D触发器时序电路对由驱动芯片输入至RS422通信模块的异步数据做同步处理。由于采用了16倍波特率采样RS422异步串行信号,为了能在数据信号的中点进行数据采样,通过计数器在计数到16的一半时进行数据采样。
在其中一个实施例中,在串行通信***中,采用PowerPC CPU(T1024)作为处理器,串行通信器集成于Altera FPGA(EP4CE40)内,采用差分信号驱动芯片作为驱动芯片。
在其中一个实施例中,串行通信***支持多路RS422通信模块异步串行通信,并且每路RS422通信模块的优先级相同,在进行异步串行通信时,处理器为每一路RS422异步串行通信分配了访问地址,通过Local Bus总线访问每一个RS422通信模块。
在其中一个实施例中,举例说明本申请的方案。
当处理器读取数据时,处理器输出读请求指令至Local Bus总线接口模块,LocalBus总线接口模块接收并解析出处理器的读请求指令,输出处理器的读请求指令和读地址信号至控制模块,控制模块根据处理器的读请求指令和读地址信号解析出处理器将要访问的RS422通信模块的设备号RS422_x,输出控制指令至RS422_x,根据RS422_x的FIFO接收缓存单元的状态信息将FIFO接收缓存单元中的数据和FIFO接收缓存单元的状态信息反馈给Local Bus总线接口模块,处理器根据Local Bus总线读操作的时序,读取Local Bus总线接口模块中的数据和状态信息。
当处理器写数据时,处理器输出写请求指令至Local Bus总线接口模块,LocalBus总线接口模块接收并解析出处理器的写请求指令,输出处理器的写请求指令、写地址信号和数据信号至控制模块,控制模块根据写请求指令和写地址信号解析出处理器将要访问的RS422通信模块的设备号RS422_x,根据RS422_x的FIFO发送缓存单元的状态信息将处理器要发送的数据写入FIFO发送缓存单元,获取FIFO发送缓存单元的状态信息并输出至Local Bus总线接口模块,再由Local Bus总线接口模块反馈给处理器,处理器根据FIFO发送缓存单元的状态信息发送下一个数据或停止发送数据。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种串行通信器,其特征在于,包括控制模块、总线接口模块和至少两个RS422通信模块;
所述总线接口模块接收并输出通信请求至控制模块,所述控制模块根据所述通信请求确定外部处理器选择的各RS422通信模块的设备号,输出控制指令至各所述设备号对应的RS422通信模块,获取并输出各所述设备号对应RS422通信模块的状态信息至所述总线接口模块,所述总线接口模块接收并输出所述状态信息至所述外部处理器,所述状态信息用以指示所述外部处理器根据所述状态信息发送或接收数据信息,各所述设备号对应RS422通信模块根据所述控制指令工作;
所述总线接口模块为Local Bus总线接口模块,所述控制模块包括控制通信单元和控制单元,所述控制通信单元与所述控制单元相连接,所述控制通信单元分别与所述总线接口模块和所述RS422通信模块相连接;
所述控制通信单元接收并输出来自所述总线接口模块的通信请求至所述控制单元,所述控制单元根据所述通信请求确定外部处理器选择的RS422通信模块的设备号,并输出控制指令至所述控制通信单元,所述控制通信单元输出控制指令至各所述设备号对应的RS422通信模块,获取并输出各所述设备号对应RS422通信模块的状态信息至所述总线接口模块。
2.根据权利要求1所述的串行通信器,其特征在于,所述总线接口模块包括片选信号接口、写使能信号接口、读使能信号接口、地址信号接口、数据信号接口以及接口通信单元,所述片选信号接口、所述写使能信号接口、所述读使能信号接口、所述地址信号接口以及所述数据信号接口分别与外部处理器的引脚相连接,所述接口通信单元与所述控制模块相连接。
3.根据权利要求1所述的串行通信器,其特征在于,所述RS422通信模块包括FIFO发送缓存单元、发送单元、FIFO接收缓存单元以及接收单元;
当所述串行通信器发送数据时,所述FIFO发送缓存单元根据所述控制模块的第一控制指令写入并输出已增添校验信息的数据至所述发送单元,所述发送单元根据所述控制模块的第二控制指令将所述FIFO发送缓存单元输出的数据进行并串转换并输出;
当所述串行通信器接收数据时,所述接收单元接收外部串行数据帧并进行串并转换,将串并转换后的数据输出至所述FIFO接收缓存单元,所述FIFO接收缓存单元根据所述控制模块的第三控制指令缓存并输出接收到的数据。
4.根据权利要求3所述的串行通信器,其特征在于,所述RS422通信模块还包括波特率发生单元,所述波特率发生单元分别与所述发送单元、所述接收单元相连接,所述波特率发生单元用于根据所述外部处理器的波特率参数,设置所述发送单元的通信速率和所述接收单元的通信速率。
5.根据权利要求4所述的串行通信器,其特征在于,所述RS422通信模块还包括逻辑控制单元,所述逻辑控制单元用于获取并输出所述外部处理器的波特率参数至所述波特率发生单元、接收所述控制模块输出的待发送数据、为所述待发送数据增添校验信息并封装成数据帧输出至所述FIFO发送缓存单元、接收所述FIFO接收缓存单元输出的数据帧并做校验处理以及输出已校验的数据帧至所述控制模块。
6.根据权利要求3所述的串行通信器,其特征在于,所述接收单元包括第一检测单元和数据接收单元,所述第一检测单元与所述数据接收单元相连接;
所述第一检测单元用于检测接收使能信号,所述数据接收单元用于根据所述接收使能信号接收数据。
7.根据权利要求3所述的串行通信器,其特征在于,所述发送单元包括第二检测单元和数据发送单元,所述第二检测单元与所述数据发送单元相连接;
所述第二检测单元用于检测发送使能信号,所述数据发送单元用于根据发送使能信号发送数据。
8.一种串行通信***,其特征在于,包括处理器以及如权利要求1-7任一项所述的串行通信器,所述处理器与所述串行通信器中总线接口模块相连接。
9.根据权利要求8所述的串行通信***,其特征在于,还包括驱动芯片,所述驱动芯片与所述RS422通信模块相连接。
CN201810398704.7A 2018-04-28 2018-04-28 串行通信器及串行通信*** Active CN108628784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810398704.7A CN108628784B (zh) 2018-04-28 2018-04-28 串行通信器及串行通信***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810398704.7A CN108628784B (zh) 2018-04-28 2018-04-28 串行通信器及串行通信***

Publications (2)

Publication Number Publication Date
CN108628784A CN108628784A (zh) 2018-10-09
CN108628784B true CN108628784B (zh) 2020-05-19

Family

ID=63694966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810398704.7A Active CN108628784B (zh) 2018-04-28 2018-04-28 串行通信器及串行通信***

Country Status (1)

Country Link
CN (1) CN108628784B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367494B (zh) * 2018-12-26 2022-12-20 中国科学院长春光学精密机械与物理研究所 一种串行数据帧接收方法及装置
CN111077813B (zh) * 2019-09-26 2021-04-27 深圳市东深电子股份有限公司 一种大坝安全监测数据自动采集***及方法
CN111830874A (zh) * 2020-07-23 2020-10-27 湖南中车时代通信信号有限公司 一种用于列控***的多通道串行数字信号传输控制装置和方法
CN113032319B (zh) * 2021-03-30 2023-09-05 中车青岛四方车辆研究所有限公司 基于fpga的车载***数据传输方法及同步高速串行总线结构
CN114826542B (zh) * 2022-05-17 2023-05-16 重庆奥普泰通信技术有限公司 基于异步串行通信的数据传输方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064805A (zh) * 2012-12-25 2013-04-24 深圳先进技术研究院 Spi控制器及通信方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108972A1 (en) * 2012-10-15 2014-04-17 Nascent Technology, Llc Reconfigurable self-service kiosk
CN103412841B (zh) * 2013-08-30 2016-04-27 哈尔滨工业大学 VxWorks操作***下CPCI总线RS422通信模块的驱动器及驱动方法
US9524260B2 (en) * 2014-06-18 2016-12-20 Qualcomm Incorporated Universal serial bus (USB) communication systems and methods
CN205353663U (zh) * 2015-12-28 2016-06-29 广州奇芯机器人技术有限公司 一种可扩展的多路i/o接口板
CN106066838B (zh) * 2016-06-22 2019-03-12 南京大全自动化科技有限公司 基于fpga多路uart的扩展模件及扩展方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064805A (zh) * 2012-12-25 2013-04-24 深圳先进技术研究院 Spi控制器及通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Complex automatic test system design for MIC and RS422 communication gateway;Linghui Zhang,Liang Feng,Weizheng An等;《2017 Chinese Automation Congress (CAC)IN IEEE》;20180101;全文 *
基于C8051F的SMBus串行通信的原理和实现;张媛媛,徐雪松,何怡刚;《微型机与应用》;20041130;全文 *

Also Published As

Publication number Publication date
CN108628784A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108628784B (zh) 串行通信器及串行通信***
US6650880B1 (en) Wireless data communications using FIFO for synchronization memory
EP3039559B1 (en) Configurable clock tree
US8797075B2 (en) Low power oversampling with reduced-architecture delay locked loop
EP2856692A1 (en) Data interface synchronization
CN110334044B (zh) 一种mipi dphy发送电路及设备
CN104915303A (zh) 基于PXIe总线的高速数字I/O***
TW201841530A (zh) 經由匯流排上的額外副資料線來發送資料的系統和方法
CN103210589A (zh) 在芯片上***中结合独立逻辑块
CN113986795B (zh) 一种支持pcie时钟的时钟架构、方法及介质
CN112395230A (zh) 一种基于可编程逻辑器件的uart接口扩展电路
CN104156333A (zh) 一种基于fpga的uart多接口扩展***和方法
CN104380274A (zh) 优化的链路训练及管理机制
CN104156335A (zh) 一种uart多接口复用方法
WO2017049556A1 (zh) 数据传输方法和移动终端
US11782474B2 (en) Clock control method, apparatus, and device, and storage medium
CN112350795B (zh) 数据的传输方法和装置、存储介质、电子装置
CN107070937B (zh) 一种基于fpga的协议转换装置、方法
CN103107862A (zh) 逻辑器件及其mdio数据发送方法
CN103092800A (zh) 一种数据转换实验平台
CN116126771A (zh) 一种两线spi的通信***及方法
CN115794701A (zh) 一种dma功能虚拟串口的bmc芯片及方法
CN115687012A (zh) 一种总线监测模块、监测方法和相关设备
Pham-Thai et al. A novel multichannel UART design with FPGA-based implementation
CN208190652U (zh) 一种全双工通用同步异步串行收发器的主板

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181009

Assignee: Hunan Tengyun Chuangxin Technology Co.,Ltd.

Assignor: HUNAN University

Contract record no.: X2023980052907

Denomination of invention: Serial communicator and serial communication system

Granted publication date: 20200519

License type: Common License

Record date: 20231222