CN104461985B - 基于节点级联的主从同步串行通讯总线及其实现方法 - Google Patents
基于节点级联的主从同步串行通讯总线及其实现方法 Download PDFInfo
- Publication number
- CN104461985B CN104461985B CN201410853217.7A CN201410853217A CN104461985B CN 104461985 B CN104461985 B CN 104461985B CN 201410853217 A CN201410853217 A CN 201410853217A CN 104461985 B CN104461985 B CN 104461985B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- node
- judge
- signal line
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
基于节点级联的主从同步串行通讯总线及其实现方法,涉及一种主从同步串行通讯总线,本发明为解决现有同步串行通讯采用主从节点复用时钟和数据总线的方式,导致节点数量、通讯距离和速率均受限的问题。本发明所述基于节点级联的主从同步串行通讯装置,该通讯装置包括主节点和n个从节点,n为正整数,主节点包括主节点控制器和隔离差分模块,主节点控制器包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器和两个隔离差分模块,从节点控制器包括第一从接收模块RX1、第二从接收模块RX2、第一从发送模块TX1和第二从发送模块TX2。本发明用于同步串行通讯中。
Description
技术领域
本发明涉及一种主从同步串行通讯总线。
背景技术
同步串行通讯是一种连续串行传输数据的通讯方式,相比异步通讯更适合大量数据的传输,如SPI同步串行通讯等。这类通讯方式往往采用主从节点复用时钟和数据总线的方式构建一主多从通讯网络,且各个节点数据的收发时钟来源于主节点。因此受接口芯片负载能力和通讯线路时延的影响,从节点的数量、通讯距离和速率均受到限制。
发明内容
本发明目的是为了解决现有同步串行通讯采用主从节点复用时钟和数据总线的方式,导致节点数量、通讯距离和速率均受限的问题,提供了一种基于节点级联的主从同步串行通讯总线及其实现方法。
本发明所述基于节点级联的主从同步串行通讯装置,该通讯装置包括主节点和n个从节点,n为正整数,主节点包括主节点控制器和隔离差分模块,主节点控制器包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器和两个隔离差分模块,从节点控制器包括第一从接收模块RX1、第二从接收模块RX2、第一从发送模块TX1和第二从发送模块TX2;
主发送模块M_TX和主节点的隔离差分模块通过使能信号线M_TXD_EN、时钟信号线M_TXD_CLK和数据信号线M_TXD相连接;
主接收模块M_RX和主节点的隔离差分模块通过时钟信号线M_RXD_CLK和数据信号线M_RXD相连接;
相邻节点之间的隔离差分模块通过信号差分线CLK和数据信号差分线DATA和隔离地线S_GND相连接;所述相邻节点包括主节点和第1个从节点、第n-1个从节点和第n个从节点;
第一从接收模块RX1与前端隔离差分模块通过时钟信号线S1_RXD_CLK和数据信号线S1_RXD相连接;
第一从发送模块TX1与前端隔离差分模块通过使能信号线S1_TXD_EN、时钟信号线S1_TXD_CLK和数据信号线S1_TXD相连接;
第二从接收模块RX2与后端隔离差分模块通过时钟信号线S2_RXD_CLK和数据信号线S2_RXD相连接;
第二从发送模块TX2与后端隔离差分模块通过使能信号线S2_TXD_EN、时钟信号线S2_TXD_CLK和数据信号线S2_TXD相连接。
从节点控制器内,第一从接收模块RX1和第二从发送模块TX2通过差分总线状态标识信号线IDLEFlag、后端从节点接收标识信号线BackFlag、主节点接收标识信号线S2MFlag、时钟信号线CLK1和数据信号线DATA1相连接;第二从接收模块RX2和第一从发送模块TX1通过地址匹配标识信号线EqualFlag、使能标识信号线EnableFlag、时钟信号线CLK2和数据信号线DATA2相连接;第一从接收模块RX1将时钟信号线S1_RXD_CLK和数据信号线S1_RXD上的信号分别赋值给时钟信号线CLK1和数据信号线DATA1;第二从发送模块TX2将时钟信号线CLK1和数据信号线DATA1上的信号分别赋值给时钟信号线S2_TXD_CLK和数据信号线S2_TXD;第二从接收模块RX2将时钟信号线S2_RXD_CLK和数据信号线S2_RXD上的数据分别赋值给时钟信号线CLK2和数据信号线DATA2。
基于节点级联的主从同步串行通讯装置的实现方法,该实现方法的具体过程为:
主节点控制器周期性地读取主接收模块M_RX接收到的有效数据,然后将待发送的有效数据组和控制指令发送给主发送模块M_TX,通过将发送结束标识位取反赋值给发送开始标识位的方式启动主发送模块M_TX,在主发送模块M_TX启动后,将有效数据组装成多个数据帧,连同时钟信号通过差分总线分时串行发送给各个节点;
主节点控制器根据系统时钟通过地址总线和数据总线配置主接收模块M_RX中的数量寄存器组、数据包起始标识寄存器、复位标识寄存器和地址寄存器组,读取双口存储器RAM;主接收模块M_RX中的接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于同一时钟信号M_RXD_CLK,且下降沿触发;
主节点控制器根据系统时钟通过地址总线和数据总线配置主发送模块M_TX中的发送开始标识位、时刻寄存器组、数量寄存器组、复位标识寄存器、数据包起始标识寄存器和地址寄存器组,并将待发送的有效数据组写入双口存储器RAM;主发送模块M_TX中发送结束标识位、发送控制模块、定时器、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于同一时钟信号M_TXD_CLK,且上升沿触发;
从节点控制器在接收到第一从接收模块RX1发出的中断请求后,先将发送结束标识位取反赋值给发送开始标识位,启动第一从发送模块TX1,然后读取第一从接收模块RX1的双口存储器RAM中的有效数据;
从节点控制器根据系统时钟和中断信号通过地址总线和数据总线配置第一从接收模块RX1中的数量寄存器、数据包起始标识寄存器、复位标识寄存器、地址寄存器、通讯周期寄存器和中断清除位,并完成双口存储器RAM的读操作;第一从接收模块RX1中的超时标识位、定时器和处理器均受控于系统时钟;第一从接收模块RX1中的中断设置位、差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于时钟信号线S1_RXD_CLK,且下降沿触发;
第二从发送模块TX2的处理器受控于系统时钟信号,根据差分总线空闲标识信号线、接收数据包地址域标识信号线上的信号状态控制使能信号线S2_TXD_EN的状态;
从节点控制器根据系统时钟通过地址总线和数据总线配置第二从接收模块RX2中的数据包起始标识寄存器、复位标识寄存器、地址寄存器和通讯周期寄存器;第二从接收模块RX2中的超时标识位、定时器和处理器均受控于系统时钟;第二从接收模块RX2中的差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、接收移位器和NRZI解码模块均受控于时钟信号线S2_RXD_CLK,且下降沿触发;
从节点控制器根据系统时钟通过地址总线和数据总线配置第一从发送模块TX1中的发送开始标识位、数量寄存器、复位标识寄存器、数据包起始标识寄存器和地址寄存器,并将待发送的有效数据组写入双口存储器RAM;第一从发送模块TX1中的多路开关受控于地址匹配标识信号线EqualFlag;第一从发送模块TX1中的发送结束标识位、发送控制模块、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于系统时钟分频的时钟信号LCLK,且上升沿触发。
本发明的优点:本发明提出一种基于节点级联的主从同步串行通讯装置及其实现方法。该方法采用主从节点级联的方式构建一主多从通讯网络,从而从节点的数量不受接口芯片负载能力限制,相比复用时钟和数据总线的方式通讯距离显著提高;采用数据与时钟信号同节点发送模式,有效保证了数据与时钟信号之间的时序关系,消除了通讯线路时延对通讯速率的影响。主从节点之间通讯的数据的发送采取了直接发送和NRZI编码发送相结合的方式,确保了主从节点接收模块对数据总线状态的监控;节点间时钟和数据信号的收发采用了隔离差分总线传输,有效延长网络通讯距离和抗干扰能力。
附图说明
图1是本发明所述基于节点级联的主从同步串行通讯装置的结构示意图;
图2是本发明数据帧结构定义及数据流向框图;
图3是本发明所述主发送模块M_TX的结构示意图;
图4是本发明所述主接收模块M_RX的结构示意图;
图5是本发明所述从节点控制模块的结构示意图。
具体实施方式
具体实施方式一:下面结合图1说明本实施方式,本实施方式所述基于节点级联的主从同步串行通讯装置,该通讯装置包括主节点和n个从节点,n为正整数,主节点包括主节点控制器1和隔离差分模块2,主节点控制器1包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器3和两个隔离差分模块2,从节点控制器3包括第一从接收模块RX1、第二从接收模块RX2、第一从发送模块TX1和第二从发送模块TX2;
主发送模块M_TX和主节点的隔离差分模块2通过使能信号线M_TXD_EN、时钟信号线M_TXD_CLK和数据信号线M_TXD相连接;
主接收模块M_RX和主节点的隔离差分模块2通过时钟信号线M_RXD_CLK和数据信号线M_RXD相连接;
相邻节点之间的隔离差分模块2通过信号差分线CLK和数据信号差分线DATA和隔离地线S_GND相连接;所述相邻节点包括主节点和第1个从节点、第n-1个从节点和第n个从节点;
第一从接收模块RX1与前端隔离差分模块2通过时钟信号线S1_RXD_CLK和数据信号线S1_RXD相连接;
第一从发送模块TX1与前端隔离差分模块2通过使能信号线S1_TXD_EN、时钟信号线S1_TXD_CLK和数据信号线S1_TXD相连接;
第二从接收模块RX2与后端隔离差分模块2通过时钟信号线S2_RXD_CLK和数据信号线S2_RXD相连接;
第二从发送模块TX2与后端隔离差分模块2通过使能信号线S2_TXD_EN、时钟信号线S2_TXD_CLK和数据信号线S2_TXD相连接。
具体实施方式二:下面结合图2说明本实施方式,本实施方式对实施方式一作进一步说明,从节点控制器3内,第一从接收模块RX1和第二从发送模块TX2通过差分总线状态标识信号线IDLEFlag、后端从节点接收标识信号线BackFlag、主节点接收标识信号线S2MFlag、时钟信号线CLK1和数据信号线DATA1相连接;第二从接收模块RX2和第一从发送模块TX1通过地址匹配标识信号线EqualFlag、使能标识信号线EnableFlag、时钟信号线CLK2和数据信号线DATA2相连接;第一从接收模块RX1将时钟信号线S1_RXD_CLK和数据信号线S1_RXD上的信号分别赋值给时钟信号线CLK1和数据信号线DATA1;第二从发送模块TX2将时钟信号线CLK1和数据信号线DATA1上的信号分别赋值给时钟信号线S2_TXD_CLK和数据信号线S2_TXD;第二从接收模块RX2将时钟信号线S2_RXD_CLK和数据信号线S2_RXD上的数据分别赋值给时钟信号线CLK2和数据信号线DATA2。
具体实施方式三:下面结合图3-图5说明本实施方式,本实施方式所述基于节点级联的主从同步串行通讯装置的其实现方法,该实现方法的具体过程为:
主节点控制器1周期性地读取主接收模块M_RX接收到的有效数据,然后将待发送的有效数据组和控制指令发送给主发送模块M_TX,通过将发送结束标识位取反赋值给发送开始标识位的方式启动主发送模块M_TX,在主发送模块M_TX启动后,将有效数据组装成多个数据帧,连同时钟信号通过差分总线分时串行发送给各个节点;
主节点控制器1根据系统时钟通过地址总线和数据总线配置主接收模块M_RX中的数量寄存器组、数据包起始标识寄存器、复位标识寄存器和地址寄存器组,读取双口存储器RAM;主接收模块M_RX中的接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于同一时钟信号M_RXD_CLK,且下降沿触发;
主节点控制器1根据系统时钟通过地址总线和数据总线配置主发送模块M_TX中的发送开始标识位、时刻寄存器组、数量寄存器组、复位标识寄存器、数据包起始标识寄存器和地址寄存器组,并将待发送的有效数据组写入双口存储器RAM;主发送模块M_TX中发送结束标识位、发送控制模块、定时器、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于同一时钟信号M_TXD_CLK,且上升沿触发;
从节点控制器3在接收到第一从接收模块RX1发出的中断请求后,先将发送结束标识位取反赋值给发送开始标识位,启动第一从发送模块TX1,然后读取第一从接收模块RX1的双口存储器RAM中的有效数据;
从节点控制器3根据系统时钟和中断信号通过地址总线和数据总线配置第一从接收模块RX1中的数量寄存器、数据包起始标识寄存器、复位标识寄存器、地址寄存器、通讯周期寄存器和中断清除位,并完成双口存储器RAM的读操作;第一从接收模块RX1中的超时标识位、定时器和处理器均受控于系统时钟;第一从接收模块RX1中的中断设置位、差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于时钟信号线S1_RXD_CLK,且下降沿触发;
第二从发送模块TX2的处理器受控于系统时钟信号,根据差分总线空闲标识信号线、接收数据包地址域标识信号线上的信号状态控制使能信号线S2_TXD_EN的状态;
从节点控制器3根据系统时钟通过地址总线和数据总线配置第二从接收模块RX2中的数据包起始标识寄存器、复位标识寄存器、地址寄存器和通讯周期寄存器;第二从接收模块RX2中的超时标识位、定时器和处理器均受控于系统时钟;第二从接收模块RX2中的差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、接收移位器和NRZI解码模块均受控于时钟信号线S2_RXD_CLK,且下降沿触发;
从节点控制器3根据系统时钟通过地址总线和数据总线配置第一从发送模块TX1中的发送开始标识位、数量寄存器、复位标识寄存器、数据包起始标识寄存器和地址寄存器,并将待发送的有效数据组写入双口存储器RAM;第一从发送模块TX1中的多路开关受控于地址匹配标识信号线EqualFlag;第一从发送模块TX1中的发送结束标识位、发送控制模块、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于系统时钟分频的时钟信号LCLK,且上升沿触发。
本实施方式中,系统时钟表示为sys_clk,中断信号表示为IRQ,地址总线表示为address_bus,数据总线表示为data_bus,时刻寄存器组表示为Schedule_S_registers,数量寄存器组表示为Number_S_registers,复位标识寄存器表示为ResetFlag_register,数据包起始标识寄存器表示为SOPFlag_register,地址寄存器组表示为ADDR_S_registers,发送开始标识位表示为TransCMDFlag_bit,发送结束标识位表示为TransEndFlag_bit,发送控制模块表示为TX_controller,定时器表示为Timer,计数器表示为Counter,发送移位器表示为TX_shifter,接收控制模块表示为RX_controller,总线状态监控器表示为Status_detecter,接收移位器表示为RX_shifter,数量寄存器表示为Number_register,地址寄存器表示为ADDR_register,通讯周期寄存器表示为Period_register,中断设置位表示为SetIRQ_bit,中断清除位表示为ClearIRQ_bit,超时标识位表示为OverFlag_bit,差分总线空闲标识位表示为IDLEFlag_bit,后端从节点接收标识位表示为BackFlag_bit,主节点接收标识位表示为S2MFlag_bit,处理器表示为Processer,地址匹配标识位表示为EqualFlag_bit,多路开关表示为Multiplexer。
具体实施方式四:下面结合图3说明本实施方式,本实施方式对实施方式三作进一步说明,主发送模块M_TX启动后的工作过程为:
步骤1-1、启动定时器;
步骤1-2、判断定时器的Timer是否等于时刻寄存器组中的值,如果否则重复执行步骤1-2,如果是则执行步骤1-3;
步骤1-3、记录时刻寄存器组中与定时器等值的单元的相对位置j,清空计数器,并将使能信号线M_TXD_EN的信号置为“1”;
步骤1-4、将复位标识寄存器中的数据串行发送到数据信号线M_TXD上,复位主从节点的接收模块到接收等待状态;所述接收模块包括主接收模块M_RX、第一从接收模块RX1和第二从接收模块RX2;
步骤1-5、判断数据发送是否完成,如果否则重复执行步骤1-5,如果是则执行步骤1-6;
步骤1-6、将数据包起始标识寄存器中的数据赋值给发送移位器,经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-7、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-7,如果是则执行步骤1-8;
步骤1-8、将地址寄存器组第j个单元中的数据赋值给发送移位器,经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-9、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-9,如果是则执行步骤1-10;
步骤1-10、根据数量寄存器组的前j-1单元中的数据及计数器中数据的累加值读取双口存储器RAM中的数据,并将读取的数据赋值给发送移位器和CRC校验模块,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-11、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-11,如果是则执行步骤1-12;
步骤1-12、计数器中的数值加1;
步骤1-13、判断计数器中的数值是否等于数量寄存器组第j个单元中的数值,如果否则返回执行步骤1-10,如果是则执行步骤1-14;
步骤1-14、将CRC校验模块产生的校验码赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-15、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-15,如果是则执行步骤1-16;
步骤1-16、将NULL标识赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-17、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-17,如果是则执行步骤1-18;
步骤1-18、将复位标识寄存器中的数据串行发送到数据信号线M_TXD上;
步骤1-19、判断数据串行发送是否完成,如果否则返回执行步骤1-19,如果是则执行步骤1-20;
步骤1-20、将使能信号线M_TXD_EN的信号置为“0”,结束数据帧发送,复位CRC校验模块;
步骤1-21、判断定时器的Timer是否大于n个时刻寄存器组中的最大值,如果否则返回执行步骤1-2,如果是则执行步骤1-22;
步骤1-22、将发送开始标识位赋值给发送结束标识位,清空和关闭定时器。
本实施方式中,NULL标识表示一个位数大于等于1小于等于8的任意二进制数。
具体实施方式五:下面结合图4说明本实施方式,本实施方式对实施方式三作进一步说明,主接收模块M_RX启动后的工作过程为:
对于总线状态监控器:
步骤2-1-1、将数据信号线M_RXD连接到总线状态监控器;
步骤2-1-2、判断总线状态监控器接收到的数据和复位标识寄存器中的数据是否匹配,如果否则设置数据总线忙状态为“真”,重复执行步骤2-1-2,如果是则设置数据总线忙状态变量为“假”,重复执行步骤2-1-2;
对于接收控制模块:
步骤2-2-1、将数据信号线M_RXD连接到NRZI解码模块;
步骤2-2-2、判断数据总线忙状态变量是否为“真”,如果否则复位CRC校验模块,设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行步骤2-2-2,如果是则执行步骤2-2-3;
步骤2-2-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤2-2-4,如果是则执行步骤2-2-5;
步骤2-2-4、判断经过NRZI解码模块输入给接收移位器中的数据是否与数据包起始标识寄存器中的数据匹配,如果否则返回执行步骤2-2-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤2-2-2;
步骤2-2-5、判断接收移位器是否完成下一组数据接收,如果否则重复执行步骤2-2-2,如果是则执行步骤2-2-6;
步骤2-2-6、判断地址匹配变量是否为“真”,如果否则执行步骤2-2-7,如果是则执行步骤2-2-9;
步骤2-2-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤2-2-8,如果是则返回执行步骤2-2-2;
步骤2-2-8、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则返回执行步骤2-2-2,如果是则设置地址匹配变量为“真”,记录地址寄存器组中的匹配单元的相对位置j,并清空计数器,然后返回执行步骤2-2-2;
步骤2-2-9、判断计数器中的数值是否小于等于数量寄存器组第j个单元中的数值,如果否则返回执行步骤2-2-2,如果是则执行步骤2-2-10;
步骤2-2-10、判断计数器中的数值和数量寄存器组第j个单元中的数值是否相等,如果否则执行步骤2-2-11,如果是则执行步骤2-2-12;
步骤2-2-11、将接收的数据赋值给CRC校验模块,并根据数量寄存器组前j-1个单元中的数据各自加1及计数器中数据的累加值,将数据写入双口存储器RAM,并将计数器中的数值加1,然后返回执行步骤2-2-2;
步骤2-2-12、根据数量寄存器组前j-1个单元中的数据各自加1及计数器中的数据的累加值,将CRC校验模块产生的校验码写入双口存储器RAM,然后返回执行步骤2-2-2。
具体实施方式六:下面结合图5说明本实施方式,本实施方式对实施方式三作进一步说明,第一从接收模块RX1启动后的工作过程为:
对于总线状态监控器:
步骤3-1-1、将数据信号线S1_RXD连接到总线状态监控器;
步骤3-1-2、判断总线状态监控器接收到的数据与复位标识寄存器中的数据是否匹配,如果否则将差分总线空闲标识位置为“0”,重复执行步骤3-1-2,如果是则将差分总线空闲标识位置为“1”,重复执行步骤3-1-2;
对于定时器:
步骤3-2-1、启动定时器;
步骤3-2-2、判断差分总线空闲标识位是否为“1”,如果否则执行3-2-3,如果是则执行3-2-4;
步骤3-2-3、清空定时器;
步骤3-2-4、判断定时器中的数值是否大于通讯周期寄存器中的数值,如果否则将超时标识位置为“0”,返回执行步骤3-2-2,如果是则将超时标识位置为“1”,返回执行步骤3-2-2;
对于处理器:
步骤3-3-1、判断超时标识位是否为“1”,如果否则执行3-3-2,如果是则执行3-3-3;
步骤3-3-2、根据差分总线状态标识位、后端从节点接收标识位和主节点接收标识位的状态分别设置差分总线状态标识信号线IDLEFlag、后端从节点接收标识信号线BackFlag和主节点接收标识信号线S2MFlag的状态,然后返回执行步骤3-3-1;
步骤3-3-3、将差分总线状态标识信号线IDLEFlag和主节点接收标识信号线S2MFlag的状态设置为“1”,然后返回执行3-3-1;
对于接收控制模块:
步骤3-4-1、将数据信号线S1_RXD连接到NRZI解码模块;
步骤3-4-2、判断差分总线空闲标识位是否为“1”,如果否则执行3-4-3,如果是则复位CRC校验模块,设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行3-4-2;
步骤3-4-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤3-4-4,如果是则执行步骤3-4-5;
步骤3-4-4、判断经NRZI解码模块输入给接收移位器的数据与数据包起始标识寄存器中的数据是否匹配,如果否则返回执行步骤3-4-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤3-4-2;
步骤3-4-5、判断接收移位器是否完成下一组数据接收,如果否则返回执行步骤3-4-2,如果是则执行步骤3-4-6;
步骤3-4-6、判断地址匹配变量是否为“真”,如果否则执行步骤3-4-7,如果是则执行步骤3-4-11;
步骤3-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤3-4-8,如果是则返回执行步骤3-4-2;
步骤3-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤3-4-9,如果是则将主节点接收标识位置为“1”,然后返回执行步骤3-4-2;
步骤3-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,然后返回执行步骤3-4-10,如果是则后端从节点接收标识位置为“1”,然后返回执行步骤3-4-2;
步骤3-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则返回执行步骤3-4-2,如果是则设置地址匹配变量为“真”,清空计数器,返回执行步骤3-4-2;
步骤3-4-11、判断计数器中的数值是否小于等于数量寄存器中的数值,如果否则返回执行步骤3-4-2,如果是则执行步骤3-4-12;
步骤3-4-12、判断计数器中的数值和数量寄存器中的数值是否相等,如果否则执行步骤2-2-13,如果是则执行步骤2-2-14;
步骤3-4-13、将接收的数据赋值给CRC校验模块,同时根据计数器中的数值将接收的数据写入双口存储器RAM,并将计数器中的数值加1,返回执行步骤3-4-2;
步骤3-4-14、根据计数器中的数值,将CRC校验模块产生的校验码写入双口存储器RAM,将中断清除位中的数值取反赋值给中断设置位,发出中断请求信号,返回执行步骤3-4-2。
具体实施方式七:下面结合图5说明本实施方式,本实施方式对实施方式三作进一步说明,第二从接收模块RX2启动后的工作过程为:
对于总线状态监控器:
步骤4-1-1、将数据信号线S2_RXD连接到总线状态监控器;
步骤4-1-2、判断总线状态监控器接收到的数据与复位标识寄存器中的数据是否匹配,如果否则将差分总线空闲标识位置为“0”,重复执行步骤4-1-2,如果是则将差分总线空闲标识位置为“1”,重复执行步骤4-1-2;
对于定时器:
步骤4-2-1、启动定时器;
步骤4-2-2、判断差分总线空闲标识位是否为“1”,如果否则执行4-2-3,如果是则执行4-2-4;
步骤4-2-3、清空定时器;
步骤4-2-4、判断定时器中的数值是否大于通讯周期寄存器中的数值,如果否则将超时标识位置为“0”,返回执行步骤4-2-2,如果是则将超时标识位置为“1”,返回执行步骤4-2-2;
对于处理器:
步骤4-3-1、判断超时标识位是否为“1”,如果否则执行4-3-2,如果是则执行4-3-6;
步骤4-3-2、根据地址匹配标识位的状态设置地址匹配标识信号线EqualFlag的状态;
步骤4-3-3、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤4-3-1,如果是则执行4-3-4;
步骤4-3-4、判断主节点接收标识位是否为“1”,如果否则执行步骤4-3-5,如果是则延迟△t时间后将使能标识信号线EnableFlag的状态设置为“0”,返回执行步骤4-3-1,所述△t为不小于主从节点模块串行发送数据时的最大发送时钟周期系统时钟周期;
步骤4-3-5、判断后端从节点接收标识位是否为“1”,如果否则返回执行步骤4-3-1,如果是则延迟△t时间后将使能标识信号线EnableFlag的状态设置为“1”,返回执行步骤4-3-1;
步骤4-3-6、将地址匹配标识信号线EqualFlag和使能标识信号线EnableFlag的状态设置为“0”,然后返回执行4-3-1;
对于接收控制模块:
步骤4-4-1、将数据信号线S2_RXD连接到NRZI解码模块;
步骤4-4-2、判断差分总线空闲标识位是否为“1”,如果否则执行4-4-3,如果是则设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行4-4-2;
步骤4-4-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤4-4-4,如果是则执行步骤4-4-5;
步骤4-4-4、判断经NRZI解码模块输入给接收移位器的数据与数据包起始标识寄存器中的数据是否匹配,如果否则返回执行步骤4-4-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤4-4-2;
步骤4-4-5、判断接收移位器是否完成下一组数据接收,如果否则返回执行步骤4-4-2,如果是则执行步骤4-4-6;
步骤4-4-6、判断地址匹配变量是否为“真”,如果否则执行步骤4-4-7,如果是则执行步骤4-4-10;
步骤4-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤4-4-8,如果是则返回执行步骤4-4-2;
步骤4-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤4-4-9,如果是则将主节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,执行步骤4-4-10,如果是则后端从节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则将地址匹配标识位置为“0”,返回执行步骤4-4-2,如果是则将地址匹配标识位置为“1”,设置地址匹配变量为“真”,返回执行步骤4-4-2。
具体实施方式八:下面结合图5说明本实施方式,本实施方式对实施方式三作进一步说明,第一从发送模块TX1启动后的工作过程为:
对于多路开关:
步骤5-1-1、判断地址匹配标识信号线EqualFlag的状态是否为“1”,如果否则执行步骤5-1-2,如果是则执行步骤5-1-3;
步骤5-1-2、将使能标识信号线EnableFlag、时钟信号线ClK2和数据信号线DATA2分别连接到使能信号线S1_TXD_EN、时钟信号线S1_TXD_CLK和数据信号线S1_TXD,返回执行步骤5-1-1;
步骤5-1-3、断开步骤5-1-2中的连接,将系统时钟分频得到的时钟信号LCLK直接赋值给时钟信号线S1_TXD_CLK。
对于发送控制模块:
步骤5-2-1、判断发送开始标识位和发送结束标识位是否相等,如果否则重复执行步骤5-2-1,如果是则执行步骤5-2-2;
步骤5-2-2、将使能信号线S1_TXD_EN的使能信号置为“1”,将复位标识寄存器中的数据串行发送到数据信号线S1_TXD上,复位所有主从节点的接收模块到等待状态;
步骤5-2-3、判断数据发送是否完成,如果否则重复执行步骤5-2-3,如果是则执行步骤5-2-4;
步骤5-2-4、将数据包起始标识寄存器中的数据赋给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-5、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-5,如果是则执行步骤5-2-6;
步骤5-2-6、将地址寄存器中的数据赋给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-7、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-7,如果是则执行步骤5-2-8;
步骤5-2-8、根据计数器读取双口存储器RAM中的数据,并将读取的数据赋值给发送移位器和CRC校验模块,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-9、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-9,如果是则执行步骤5-2-10;
步骤5-2-10、计数器中的数值加1;
步骤5-2-11、判断计数器中的数值与数量寄存器中的数值是否相等,如果否则重复执行步骤5-2-8,如果是则执行步骤5-2-12;
步骤5-2-12、将CRC校验模块产生的校验码赋值给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-13、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-13,如果是则执行步骤5-2-14;
步骤5-2-14、将NULL标识赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-15、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-15,如果是则执行步骤5-2-16;
步骤5-2-16、将复位标识寄存器中的数据直接串行发送到数据信号线S1_TXD;
步骤5-2-17、判断数据发送是否完成,如果否则重复执行步骤5-2-17,如果是则执行步骤5-2-18;
步骤5-2-18、将使能信号线S1_TXD_EN置为“0”,同时将发送开始标识位赋值给发送结束标识位,清空计数器,复位CRC校验模块,返回执行步骤5-1-1。
具体实施方式九:下面结合图5说明本实施方式,本实施方式对实施方式三作进一步说明,第二从发送模块TX2启动后的工作过程为:
步骤6-1、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤6-1,如果是则执行6-2;
步骤6-2、判断主节点接收标识位是否为“1”,如果否则执行步骤6-3,如果是则延迟△t时间后将使能标识信号线S2_TXD_EN的状态设置为“1”,返回执行步骤6-1,所述△t为不小于主从节点模块串行发送数据时的最大发送时钟周期系统时钟周期;
步骤6-3、判断后端从节点接收标识位是否为“1”,如果否则返回执行步骤6-1,如果是则延迟△t时间后将使能标识信号线S2_TXD_EN的状态设置为“0”,返回执行步骤6-1。
本发明中,从节点的控制器上电后,初始化第一从接收模块RX1、第一从发送模块TX1、第二从接收模块RX2和第二从发送模块TX2,使从节点前端差分总线脱离第一从发送模块TX1的控制,同时使从节点后端差分总线处于第二从发送模块TX2的控制下。差分总线状态标识信号线IDLEFlag、主节点接收标识信号线S2MFlag、地址匹配标识信号线EqualFlag和使能标识信号线EnableFlag的初始化状态分别为“1”、“1”、“0”、和“0”。从节点控制器正常运行后,如果第一从接收模块RX1在一个通讯周期内检测不到接收模块复位标识,则复位差分总线状态标识信号线IDLEFlag和主节点接收标识位S2MFlag到初化始态;如果第二从接收模块RX2在一个通讯周期内检测不到接收模块复位标识,则将地址匹配标识信号线EqualFlag和使能标识信号线EnableFlag复位到初始化状态。
本发明中,主从节点间通讯周期、有效数据组大小和从节点数量等参数均是可配置的。对于主节点而言:在一个通讯周期内,主节点控制器首先读取主接收模块M_RX接收到的有效数据,然后将待发送的有效数据组和控制指令发送给主发送模块M_TX,最后主发送模块M_TX将该有效数据组封装成多个数据帧,并连同时钟信号通过差分总线分时串行发送给各个从节点。对于从节点而言:通过第一从接收模块RX1和第二从接收模块RX2监控数据总线状态,并分别输出控制信号、数据信号和时钟信号给第二从发送模块TX2和第一从发送模块TX1,而后这两个模块根据接收到的控制信号完成对差分信号线的控制。当第一从接收模块RX1接收到有效数据存储后,产生中断请求信号。从节点控制器响应请求后,首先清中断,然后将待回传的有效数据组和控制指令发送给第一从发送模块TX1,最后读取第一从接收模块RX1接收到的有效数据。第一从发送模块TX1启动后,将该有效数据组封装成数据帧,并连同时钟信号经差分线及上级各从节点串行发送给主接收模块M_RX。在主从节点之间,数据的发送采取了直接发送和非归零反相(No Return Zero-Inverse:NRZI)编码发送相结合的方式,确保了各个节点接收模块对数据总线状态的监控。通过采用时钟与数据信号同节点发送的方式,保证了两种信号之间的时序关系不受通讯线路时延的影响。通过节点间级联和通讯信号隔离差分传输,可有效延长网络通讯距离和抗干扰能力。
Claims (9)
1.基于节点级联的主从同步串行通讯装置,其特征在于,该通讯装置包括主节点和n个从节点,n为正整数,主节点包括主节点控制器(1)和隔离差分模块(2),主节点控制器(1)包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器(3)和两个隔离差分模块(2),从节点控制器(3)包括第一从接收模块RX1、第二从接收模块RX2、第一从发送模块TX1和第二从发送模块TX2;
主发送模块M_TX和主节点的隔离差分模块(2)通过使能信号线M_TXD_EN、时钟信号线M_TXD_CLK和数据信号线M_TXD相连接;
主接收模块M_RX和主节点的隔离差分模块(2)通过时钟信号线M_RXD_CLK和数据信号线M_RXD相连接;
相邻节点之间的隔离差分模块(2)通过信号差分线CLK和数据信号差分线DATA和隔离地线S_GND相连接;所述相邻节点包括主节点和第1个从节点、第n-1个从节点和第n个从节点;
第一从接收模块RX1与前端隔离差分模块(2)通过时钟信号线S1_RXD_CLK和数据信号线S1_RXD相连接;
第一从发送模块TX1与前端隔离差分模块(2)通过使能信号线S1_TXD_EN、时钟信号线S1_TXD_CLK和数据信号线S1_TXD相连接;
第二从接收模块RX2与后端隔离差分模块(2)通过时钟信号线S2_RXD_CLK和数据信号线S2_RXD相连接;
第二从发送模块TX2与后端隔离差分模块(2)通过使能信号线S2_TXD_EN、时钟信号线S2_TXD_CLK和数据信号线S2_TXD相连接。
2.根据权利要求1所述基于节点级联的主从同步串行通讯装置,其特征在于,从节点控制器(3)内,第一从接收模块RX1和第二从发送模块TX2通过差分总线状态标识信号线IDLEFlag、后端从节点接收标识信号线BackFlag、主节点接收标识信号线S2MFlag、时钟信号线CLK1和数据信号线DATA1相连接;第二从接收模块RX2和第一从发送模块TX1通过地址匹配标识信号线EqualFlag、使能标识信号线EnableFlag、时钟信号线CLK2和数据信号线DATA2相连接;第一从接收模块RX1将时钟信号线S1_RXD_CLK和数据信号线S1_RXD上的信号分别赋值给时钟信号线CLK1和数据信号线DATA1;第二从发送模块TX2将时钟信号线CLK1和数据信号线DATA1上的信号分别赋值给时钟信号线S2_TXD_CLK和数据信号线S2_TXD;第二从接收模块RX2将时钟信号线S2_RXD_CLK和数据信号线S2_RXD上的数据分别赋值给时钟信号线CLK2和数据信号线DATA2。
3.基于权利要求2所述主从同步串行通讯装置的实现方法,其特征在于,
该实现方法的具体过程为:
主节点控制器(1)周期性地读取主接收模块M_RX接收到的有效数据,然后将待发送的有效数据组和控制指令发送给主发送模块M_TX,通过将发送结束标识位取反赋值给发送开始标识位的方式启动主发送模块M_TX,在主发送模块M_TX启动后,将有效数据组装成多个数据帧,连同时钟信号通过差分总线分时串行发送给各个节点;
主节点控制器(1)根据系统时钟通过地址总线和数据总线配置主接收模块M_RX中的数量寄存器组、数据包起始标识寄存器、复位标识寄存器和地址寄存器组,读取双口存储器RAM;主接收模块M_RX中的接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于同一时钟信号M_RXD_CLK,且下降沿触发;
主节点控制器(1)根据系统时钟通过地址总线和数据总线配置主发送模块M_TX中的发送开始标识位、时刻寄存器组、数量寄存器组、复位标识寄存器、数据包起始标识寄存器和地址寄存器组,并将待发送的有效数据组写入双口存储器RAM;主发送模块M_TX中发送结束标识位、发送控制模块、定时器、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于同一时钟信号M_TXD_CLK,且上升沿触发;
从节点控制器(3)在接收到第一从接收模块RX1发出的中断请求后,先将发送结束标识位取反赋值给发送开始标识位,启动第一从发送模块TX1,然后读取第一从接收模块RX1的双口存储器RAM中的有效数据;
从节点控制器(3)根据系统时钟和中断信号通过地址总线和数据总线配置第一从接收模块RX1中的数量寄存器、数据包起始标识寄存器、复位标识寄存器、地址寄存器、通讯周期寄存器和中断清除位,并完成双口存储器RAM的读操作;第一从接收模块RX1中的超时标识位、定时器和处理器均受控于系统时钟;第一从接收模块RX1中的中断设置位、差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、计数器、CRC校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于时钟信号线S1_RXD_CLK,且下降沿触发;
第二从发送模块TX2的处理器受控于系统时钟信号,根据差分总线空闲标识信号线、接收数据包地址域标识信号线上的信号状态控制使能信号线S2_TXD_EN的状态;
从节点控制器(3)根据系统时钟通过地址总线和数据总线配置第二从接收模块RX2中的数据包起始标识寄存器、复位标识寄存器、地址寄存器和通讯周期寄存器;第二从接收模块RX2中的超时标识位、定时器和处理器均受控于系统时钟;第二从接收模块RX2中的差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、接收移位器和NRZI解码模块均受控于时钟信号线S2_RXD_CLK,且下降沿触发;
从节点控制器(3)根据系统时钟通过地址总线和数据总线配置第一从发送模块TX1中的发送开始标识位、数量寄存器、复位标识寄存器、数据包起始标识寄存器和地址寄存器,并将待发送的有效数据组写入双口存储器RAM;第一从发送模块TX1中的多路开关受控于地址匹配标识信号线EqualFlag;第一从发送模块TX1中的发送结束标识位、发送控制模块、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于系统时钟分频的时钟信号LCLK,且上升沿触发。
4.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,主发送模块M_TX启动后的工作过程为:
步骤1-1、启动定时器;
步骤1-2、判断定时器的Timer是否等于时刻寄存器组中的值,如果否则重复执行步骤1-2,如果是则执行步骤1-3;
步骤1-3、记录时刻寄存器组中与定时器等值的单元的相对位置j,清空计数器,并将使能信号线M_TXD_EN的信号置为“1”;
步骤1-4、将复位标识寄存器中的数据串行发送到数据信号线M_TXD上,复位主从节点的接收模块到接收等待状态;所述接收模块包括主接收模块M_RX、第一从接收模块RX1和第二从接收模块RX2;
步骤1-5、判断数据发送是否完成,如果否则重复执行步骤1-5,如果是则执行步骤1-6;
步骤1-6、将数据包起始标识寄存器中的数据赋值给发送移位器,经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-7、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-7,如果是则执行步骤1-8;
步骤1-8、将地址寄存器组第j个单元中的数据赋值给发送移位器,经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-9、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-9,如果是则执行步骤1-10;
步骤1-10、根据数量寄存器组的前j-1单元中的数据及计数器中数据的累加值读取双口存储器RAM中的数据,并将读取的数据赋值给发送移位器和CRC校验模块,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-11、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-11,如果是则执行步骤1-12;
步骤1-12、计数器中的数值加1;
步骤1-13、判断计数器中的数值是否等于数量寄存器组第j个单元中的数值,如果否则返回执行步骤1-10,如果是则执行步骤1-14;
步骤1-14、将CRC校验模块产生的校验码赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-15、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-15,如果是则执行步骤1-16;
步骤1-16、将NULL标识赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线M_TXD;
步骤1-17、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤1-17,如果是则执行步骤1-18;
步骤1-18、将复位标识寄存器中的数据串行发送到数据信号线M_TXD上;
步骤1-19、判断数据串行发送是否完成,如果否则返回执行步骤1-19,如果是则执行步骤1-20;
步骤1-20、将使能信号线M_TXD_EN的信号置为“0”,结束数据帧发送,复位CRC校验模块;
步骤1-21、判断定时器的Timer是否大于n个时刻寄存器组中的最大值,如果否则返回执行步骤1-2,如果是则执行步骤1-22;
步骤1-22、将发送开始标识位赋值给发送结束标识位,清空和关闭定时器。
5.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,主接收模块M_RX启动后的工作过程为:
对于总线状态监控器:
步骤2-1-1、将数据信号线M_RXD连接到总线状态监控器;
步骤2-1-2、判断总线状态监控器接收到的数据和复位标识寄存器中的数据是否匹配,如果否则设置数据总线忙状态为“真”,重复执行步骤2-1-2,如果是则设置数据总线忙状态变量为“假”,重复执行步骤2-1-2;
对于接收控制模块:
步骤2-2-1、将数据信号线M_RXD连接到NRZI解码模块;
步骤2-2-2、判断数据总线忙状态变量是否为“真”,如果否则复位CRC校验模块,设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行步骤2-2-2,如果是则执行步骤2-2-3;
步骤2-2-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤2-2-4,如果是则执行步骤2-2-5;
步骤2-2-4、判断经过NRZI解码模块输入给接收移位器中的数据是否与数据包起始标识寄存器中的数据匹配,如果否则返回执行步骤2-2-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤2-2-2;
步骤2-2-5、判断接收移位器是否完成下一组数据接收,如果否则重复执行步骤2-2-2,如果是则执行步骤2-2-6;
步骤2-2-6、判断地址匹配变量是否为“真”,如果否则执行步骤2-2-7,如果是则执行步骤2-2-9;
步骤2-2-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤2-2-8,如果是则返回执行步骤2-2-2;
步骤2-2-8、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则返回执行步骤2-2-2,如果是则设置地址匹配变量为“真”,记录地址寄存器组中的匹配单元的相对位置j,并清空计数器,然后返回执行步骤2-2-2;
步骤2-2-9、判断计数器中的数值是否小于等于数量寄存器组第j个单元中的数值,如果否则返回执行步骤2-2-2,如果是则执行步骤2-2-10;
步骤2-2-10、判断计数器中的数值和数量寄存器组第j个单元中的数值是否相等,如果否则执行步骤2-2-11,如果是则执行步骤2-2-12;
步骤2-2-11、将接收的数据赋值给CRC校验模块,并根据数量寄存器组前j-1个单元中的数据各自加1及计数器中数据的累加值,将数据写入双口存储器RAM,并将计数器中的数值加1,然后返回执行步骤2-2-2;
步骤2-2-12、根据数量寄存器组前j-1个单元中的数据各自加1及计数器中的数据的累加值,将CRC校验模块产生的校验码写入双口存储器RAM,然后返回执行步骤2-2-2。
6.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,第一从发送模块RX1启动后的工作过程为:
对于总线状态监控器:
步骤3-1-1、将数据信号线S1_RXD连接到总线状态监控器;
步骤3-1-2、判断总线状态监控器接收到的数据与复位标识寄存器中的数据是否匹配,如果否则将差分总线空闲标识位置为“0”,重复执行步骤3-1-2,如果是则将差分总线空闲标识位置为“1”,重复执行步骤3-1-2;
对于定时器:
步骤3-2-1、启动定时器;
步骤3-2-2、判断差分总线空闲标识位是否为“1”,如果否则执行3-2-3,如果是则执行3-2-4;
步骤3-2-3、清空定时器;
步骤3-2-4、判断定时器中的数值是否大于通讯周期寄存器中的数值,如果否则将超时标识位置为“0”,返回执行步骤3-2-2,如果是则将超时标识位置为“1”,返回执行步骤3-2-2;
对于处理器:
步骤3-3-1、判断超时标识位是否为“1”,如果否则执行3-3-2,如果是则执行3-3-3;
步骤3-3-2、根据差分总线状态标识位、后端从节点接收标识位和主节点接收标识位的状态分别设置差分总线状态标识信号线IDLEFlag、后端从节点接收标识信号线BackFlag和主节点接收标识信号线S2MFlag的状态,然后返回执行步骤3-3-1;
步骤3-3-3、将差分总线状态标识信号线IDLEFlag和主节点接收标识信号线S2MFlag的状态设置为“1”,然后返回执行3-3-1;
对于接收控制模块:
步骤3-4-1、将数据信号线S1_RXD连接到NRZI解码模块;
步骤3-4-2、判断差分总线空闲标识位是否为“1”,如果否则执行3-4-3,如果是则复位CRC校验模块,设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行3-4-2;
步骤3-4-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤3-4-4,如果是则执行步骤3-4-5;
步骤3-4-4、判断经NRZI解码模块输入给接收移位器的数据与数据包起始标识寄存器中的数据是否匹配,如果否则返回执行步骤3-4-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤3-4-2;
步骤3-4-5、判断接收移位器是否完成下一组数据接收,如果否则返回执行步骤3-4-2,如果是则执行步骤3-4-6;
步骤3-4-6、判断地址匹配变量是否为“真”,如果否则执行步骤3-4-7,如果是则执行步骤3-4-11;
步骤3-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤3-4-8,如果是则返回执行步骤3-4-2;
步骤3-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤3-4-9,如果是则将主节点接收标识位置为“1”,然后返回执行步骤3-4-2;
步骤3-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,然后返回执行步骤3-4-10,如果是则后端从节点接收标识位置为“1”,然后返回执行步骤3-4-2;
步骤3-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则返回执行步骤3-4-2,如果是则设置地址匹配变量为“真”,清空计数器,返回执行步骤3-4-2;
步骤3-4-11、判断计数器中的数值是否小于等于数量寄存器中的数值,如果否则返回执行步骤3-4-2,如果是则执行步骤3-4-12;
步骤3-4-12、判断计数器中的数值和数量寄存器中的数值是否相等,如果否则执行步骤2-2-13,如果是则执行步骤2-2-14;
步骤3-4-13、将接收的数据赋值给CRC校验模块,同时根据计数器中的数值将接收的数据写入双口存储器RAM,并将计数器中的数值加1,返回执行步骤3-4-2;
步骤3-4-14、根据计数器中的数值,将CRC校验模块产生的校验码写入双口存储器RAM,将中断清除位中的数值取反赋值给中断设置位,发出中断请求信号,返回执行步骤3-4-2。
7.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,第二从发送模块RX2启动后的工作过程为:
对于总线状态监控器:
步骤4-1-1、将数据信号线S2_RXD连接到总线状态监控器;
步骤4-1-2、判断总线状态监控器接收到的数据与复位标识寄存器中的数据是否匹配,如果否则将差分总线空闲标识位置为“0”,重复执行步骤4-1-2,如果是则将差分总线空闲标识位置为“1”,重复执行步骤4-1-2;
对于定时器:
步骤4-2-1、启动定时器;
步骤4-2-2、判断差分总线空闲标识位是否为“1”,如果否则执行4-2-3,如果是则执行4-2-4;
步骤4-2-3、清空定时器;
步骤4-2-4、判断定时器中的数值是否大于通讯周期寄存器中的数值,如果否则将超时标识位置为“0”,返回执行步骤4-2-2,如果是则将超时标识位置为“1”,返回执行步骤4-2-2;
对于处理器:
步骤4-3-1、判断超时标识位是否为“1”,如果否则执行4-3-2,如果是则执行4-3-6;
步骤4-3-2、根据地址匹配标识位的状态设置地址匹配标识信号线EqualFlag的状态;
步骤4-3-3、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤4-3-1,如果是则执行4-3-4;
步骤4-3-4、判断主节点接收标识位是否为“1”,如果否则执行步骤4-3-5,如果是则延迟△t时间后将使能标识信号线EnableFlag的状态设置为“0”,返回执行步骤4-3-1,所述△t为不小于主从节点模块串行发送数据时的最大发送时钟周期系统时钟周期;
步骤4-3-5、判断后端从节点接收标识位是否为“1”,如果否则返回执行步骤4-3-1,如果是则延迟△t时间后将使能标识信号线EnableFlag的状态设置为“1”,返回执行步骤4-3-1;
步骤4-3-6、将地址匹配标识信号线EqualFlag和使能标识信号线EnableFlag的状态设置为“0”,然后返回执行4-3-1;
对于接收控制模块:
步骤4-4-1、将数据信号线S2_RXD连接到NRZI解码模块;
步骤4-4-2、判断差分总线空闲标识位是否为“1”,如果否则执行4-4-3,如果是则设置数据包起始标识匹配变量、地址匹配变量和地址匹配任务已执行变量为“假”,重复执行4-4-2;
步骤4-4-3、判断数据包起始标识匹配变量是否为“真”,如果否则执行步骤4-4-4,如果是则执行步骤4-4-5;
步骤4-4-4、判断经NRZI解码模块输入给接收移位器的数据与数据包起始标识寄存器中的数据是否匹配,如果否则返回执行步骤4-4-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤4-4-2;
步骤4-4-5、判断接收移位器是否完成下一组数据接收,如果否则返回执行步骤4-4-2,如果是则执行步骤4-4-6;
步骤4-4-6、判断地址匹配变量是否为“真”,如果否则执行步骤4-4-7,如果是则执行步骤4-4-10;
步骤4-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤4-4-8,如果是则返回执行步骤4-4-2;
步骤4-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤4-4-9,如果是则将主节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,执行步骤4-4-10,如果是则后端从节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则将地址匹配标识位置为“0”,返回执行步骤4-4-2,如果是则将地址匹配标识位置为“1”,设置地址匹配变量为“真”,返回执行步骤4-4-2。
8.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,第一从接收模块TX1启动后的工作过程为:
对于多路开关:
步骤5-1-1、判断地址匹配标识信号线EqualFlag的状态是否为“1”,如果否则执行步骤5-1-2,如果是则执行步骤5-1-3;
步骤5-1-2、将使能标识信号线EnableFlag、时钟信号线ClK2和数据信号线DATA2分别连接到使能信号线S1_TXD_EN、时钟信号线S1_TXD_CLK和数据信号线S1_TXD,返回执行步骤5-1-1;
步骤5-1-3、断开步骤5-1-2中的连接,将系统时钟分频得到的时钟信号LCLK直接赋值给时钟信号线S1_TXD_CLK;
对于发送控制模块:
步骤5-2-1、判断发送开始标识位和发送结束标识位是否相等,如果否则重复执行步骤5-2-1,如果是则执行步骤5-2-2;
步骤5-2-2、将使能信号线S1_TXD_EN的使能信号置为“1”,将复位标识寄存器中的数据串行发送到数据信号线S1_TXD上,复位所有主从节点的接收模块到等待状态;
步骤5-2-3、判断数据发送是否完成,如果否则重复执行步骤5-2-3,如果是则执行步骤5-2-4;
步骤5-2-4、将数据包起始标识寄存器中的数据赋给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-5、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-5,如果是则执行步骤5-2-6;
步骤5-2-6、将地址寄存器中的数据赋给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-7、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-7,如果是则执行步骤5-2-8;
步骤5-2-8、根据计数器读取双口存储器RAM中的数据,并将读取的数据赋值给发送移位器和CRC校验模块,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-9、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-9,如果是则执行步骤5-2-10;
步骤5-2-10、计数器中的数值加1;
步骤5-2-11、判断计数器中的数值与数量寄存器中的数值是否相等,如果否则重复执行步骤5-2-8,如果是则执行步骤5-2-12;
步骤5-2-12、将CRC校验模块产生的校验码赋值给发送移位器,经NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-13、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-13,如果是则执行步骤5-2-14;
步骤5-2-14、将NULL标识赋值给发送移位器,然后经过NRZI编码模块串行发送到数据信号线S1_TXD;
步骤5-2-15、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤5-2-15,如果是则执行步骤5-2-16;
步骤5-2-16、将复位标识寄存器中的数据直接串行发送到数据信号线S1_TXD;
步骤5-2-17、判断数据发送是否完成,如果否则重复执行步骤5-2-17,如果是则执行步骤5-2-18;
步骤5-2-18、将使能信号线S1_TXD_EN置为“0”,同时将发送开始标识位赋值给发送结束标识位,清空计数器,复位CRC校验模块,返回执行步骤5-1-1。
9.根据权利要求3所述的主从同步串行通讯装置的实现方法,其特征在于,第二从发送模块TX2启动后的工作过程为:
步骤6-1、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤6-1,如果是则执行6-2;
步骤6-2、判断主节点接收标识位是否为“1”,如果否则执行步骤6-3,如果是则延迟△t时间后将使能标识信号线S2_TXD_EN的状态设置为“1”,返回执行步骤6-1,所述△t为不小于主从节点模块串行发送数据时的最大发送时钟周期系统时钟周期;
步骤6-3、判断后端从节点接收标识位是否为“1”,如果否则返回执行步骤6-1,如果是则延迟△t时间后将使能标识信号线S2_TXD_EN的状态设置为“0”,返回执行步骤6-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853217.7A CN104461985B (zh) | 2014-12-31 | 2014-12-31 | 基于节点级联的主从同步串行通讯总线及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853217.7A CN104461985B (zh) | 2014-12-31 | 2014-12-31 | 基于节点级联的主从同步串行通讯总线及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461985A CN104461985A (zh) | 2015-03-25 |
CN104461985B true CN104461985B (zh) | 2017-06-20 |
Family
ID=52908065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410853217.7A Active CN104461985B (zh) | 2014-12-31 | 2014-12-31 | 基于节点级联的主从同步串行通讯总线及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461985B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183372B (zh) * | 2015-08-25 | 2018-01-30 | 中国科学技术大学 | 基于内容寻址存储的触发匹配装置和方法 |
CN105450202B (zh) * | 2015-12-14 | 2017-11-21 | 武汉芯昌科技有限公司 | 一种带置位和复位信号的复用两数据输入主从型d触发器 |
CN108718192B (zh) * | 2018-06-12 | 2024-03-05 | 江苏卓胜微电子股份有限公司 | 数据信号检测装置、mipi rffe设备及系统 |
CN110782828B (zh) * | 2018-07-26 | 2021-05-11 | 深圳市爱协生科技有限公司 | 显示装置 |
CN110955170B (zh) * | 2018-09-27 | 2023-10-17 | 中车株洲电力机车研究所有限公司 | 端到端的自适应同步方法及即插即用的牵引控制装置 |
CN109799870B (zh) * | 2018-12-29 | 2021-03-05 | 深圳云天励飞技术有限公司 | 一种时钟控制电路及控制方法 |
CN110568443A (zh) * | 2019-10-25 | 2019-12-13 | 珠海上富电技股份有限公司 | 一种超声波测距芯片以及超声波测距系统 |
CN111400079B (zh) * | 2020-03-16 | 2024-03-01 | 上海金卓科技有限公司 | 一种隔离器及其适用的软件复位方法、装置和存储介质 |
CN113704147B (zh) * | 2021-10-28 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 多控制器通信方法、装置、计算机设备和存储介质 |
CN114443555B (zh) * | 2022-01-27 | 2024-01-30 | 合肥甘尧电子科技有限公司 | 一种串联总线级联数量自动检测方法 |
CN115378911B (zh) * | 2022-10-24 | 2023-01-03 | 上海泰矽微电子有限公司 | 一种lin总线自动寻址系统及实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4677614A (en) * | 1983-02-15 | 1987-06-30 | Emc Controls, Inc. | Data communication system and method and communication controller and method therefor, having a data/clock synchronizer and method |
CN1855079A (zh) * | 2005-04-26 | 2006-11-01 | 华为技术有限公司 | 一种基于主从通信方式的主节点链路层优化方法 |
CN101577732A (zh) * | 2009-06-10 | 2009-11-11 | 深圳市禾望电气有限公司 | 一种多节点通讯链路及其异步串行通讯方法 |
-
2014
- 2014-12-31 CN CN201410853217.7A patent/CN104461985B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4677614A (en) * | 1983-02-15 | 1987-06-30 | Emc Controls, Inc. | Data communication system and method and communication controller and method therefor, having a data/clock synchronizer and method |
CN1855079A (zh) * | 2005-04-26 | 2006-11-01 | 华为技术有限公司 | 一种基于主从通信方式的主节点链路层优化方法 |
CN101577732A (zh) * | 2009-06-10 | 2009-11-11 | 深圳市禾望电气有限公司 | 一种多节点通讯链路及其异步串行通讯方法 |
Non-Patent Citations (2)
Title |
---|
基于CANopen+uC/OS_II平台的主从节点通信;王瑞鹏;《中国优秀硕士学位论文全文数据库信息科技辑》;20090415(第4期);第I140-298页 * |
基于CAN总线的多电机同步控制系统研究;崔玲玲;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;20080115(第1期);第C042-175页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461985A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461985B (zh) | 基于节点级联的主从同步串行通讯总线及其实现方法 | |
CN104484306B (zh) | 基于差分信号的主从同步串行通讯总线及其实现方法 | |
CN102023954B (zh) | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 | |
CN101308484B (zh) | 串行总线装置、传输方法以及通用串行总线(usb)装置 | |
CN100449522C (zh) | 基于多fpga的矩阵乘法并行计算系统 | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN104915303B (zh) | 基于PXIe总线的高速数字I/O系统 | |
CN104657303B (zh) | 单总线数据通信方法 | |
CN104933004A (zh) | 使用spi总线扩展cpu模块的系统及方法 | |
WO2013177673A1 (en) | Ring topology status indication | |
CN103092806A (zh) | 基于spi数据传输时序的数据传输方法和系统 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN107703815A (zh) | 循环地址式三线spi通讯系统 | |
CN102902646A (zh) | 板卡通信方法及板卡、fpga的加载方法和系统 | |
CN107436851A (zh) | 串行外设接口四线隔离系统及其控制方法 | |
CN111625490A (zh) | 多芯片串联高速全双工无寻址通信系统 | |
CN112418412B (zh) | 触发装置及类脑计算系统 | |
CN112434800B (zh) | 控制装置及类脑计算系统 | |
CN201440266U (zh) | 一体化pci总线主机共享装置 | |
CN110209358B (zh) | 一种基于FPGA的NVMe设备存储速度提升方法 | |
CN103106174A (zh) | 一种复杂soc的片上通信方法 | |
Szecówka et al. | USB receiver/transmitter for FPGA implementation | |
CN101872331A (zh) | 采用节点模式的高速环形总线协议 | |
CN103218344A (zh) | 采用数据驱动机制多处理器间数据通信电路 | |
CN109800200A (zh) | 一种数据通信方法、发起端、响应端及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |