基于节点级联的主从同步串行通讯总线及其实现方法.pdf

上传人:00****42 文档编号:2238209 上传时间:2018-08-03 格式:PDF 页数:25 大小:1.78MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410853217.7

申请日:

2014.12.31

公开号:

CN104461985A

公开日:

2015.03.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F13/38申请日:20141231|||公开

IPC分类号:

G06F13/38; G06F13/40

主分类号:

G06F13/38

申请人:

哈尔滨工业大学

发明人:

张元飞; 金明河; 刘宏

地址:

150001黑龙江省哈尔滨市南岗区西大直街92号

优先权:

专利代理机构:

哈尔滨市松花江专利商标事务所23109

代理人:

岳泉清

PDF下载: PDF下载
内容摘要

基于节点级联的主从同步串行通讯总线及其实现方法,涉及一种主从同步串行通讯总线,本发明为解决现有同步串行通讯采用主从节点复用时钟和数据总线的方式,导致节点数量、通讯距离和速率均受限的问题。本发明所述基于节点级联的主从同步串行通讯装置,该通讯装置包括主节点和n个从节点,n为正整数,主节点包括主节点控制器和隔离差分模块,主节点控制器包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器和两个隔离差分模块,从节点控制器包括第一从接收模块RX1、第二从接收模块RX2、第一从发送模块TX1和第二从发送模块TX2。本发明用于同步串行通讯中。

权利要求书

权利要求书
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、根据地址匹配标识位的状态设置地址匹配标识信号线EnableFlag的状态;
步骤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-11;
步骤4-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤4-4-8,如果是则返回执行步骤4-4-2;
步骤4-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤4-4-9,如果是则将主节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,执行步骤3-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。

说明书

说明书基于节点级联的主从同步串行通讯总线及其实现方法
技术领域
本发明涉及一种主从同步串行通讯总线。
背景技术
同步串行通讯是一种连续串行传输数据的通讯方式,相比异步通讯更适合大量数据的传输,如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、根据地址匹配标识位的状态设置地址匹配标识信号线EnableFlag的状态;
步骤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-11;
步骤4-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤4-4-8,如果是则返回执行步骤4-4-2;
步骤4-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标识位置为“0”,并执行步骤4-4-9,如果是则将主节点接收标识位置为“1”,返回执行步骤4-4-2;
步骤4-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域, 如果否则将后端从节点接收标识位置为“0”,执行步骤3-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)编码发送相结合的方式,确保了各个节点接收模块对数据总线状态的监控。通过采用时钟与数据信号同节点发送的方式,保证了两种信号之间的时序关系不 受通讯线路时延的影响。通过节点间级联和通讯信号隔离差分传输,可有效延长网络通讯距离和抗干扰能力。

基于节点级联的主从同步串行通讯总线及其实现方法.pdf_第1页
第1页 / 共25页
基于节点级联的主从同步串行通讯总线及其实现方法.pdf_第2页
第2页 / 共25页
基于节点级联的主从同步串行通讯总线及其实现方法.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《基于节点级联的主从同步串行通讯总线及其实现方法.pdf》由会员分享,可在线阅读,更多相关《基于节点级联的主从同步串行通讯总线及其实现方法.pdf(25页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410853217.7(22)申请日 2014.12.31G06F 13/38(2006.01)G06F 13/40(2006.01)(71)申请人 哈尔滨工业大学地址 150001 黑龙江省哈尔滨市南岗区西大直街 92 号(72)发明人 张元飞 金明河 刘宏(74)专利代理机构 哈尔滨市松花江专利商标事务所 23109代理人 岳泉清(54) 发明名称基于节点级联的主从同步串行通讯总线及其实现方法(57) 摘要基于节点级联的主从同步串行通讯总线及其实现方法,涉及一种主从同步串行通讯总线,本发明为解决现有同步串行通讯采用主从节点复用时。

2、钟和数据总线的方式,导致节点数量、通讯距离和速率均受限的问题。本发明所述基于节点级联的主从同步串行通讯装置,该通讯装置包括主节点和 n 个从节点,n 为正整数,主节点包括主节点控制器和隔离差分模块,主节点控制器包括主发送模块M_TX和主接收模块M_RX,每个从节点包括从节点控制器和两个隔离差分模块,从节点控制器包括第一从接收模块 RX1、第二从接收模块 RX2、第一从发送模块 TX1 和第二从发送模块 TX2。本发明用于同步串行通讯中。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书9页 说明书12页 附图3页(10)申请公布号 CN 104461985。

3、 A(43)申请公布日 2015.03.25CN 104461985 A1/9 页21.基于节点级联的主从同步串行通讯装置,其特征在于,该通讯装置包括主节点和 n个从节点,n 为正整数,主节点包括主节点控制器 (1) 和隔离差分模块 (2),主节点控制器(1) 包括主发送模块 M_TX 和主接收模块 M_RX,每个从节点包括从节点控制器 (3) 和两个隔离差分模块 (2),从节点控制器 (3) 包括第一从接收模块 RX1、第二从接收模块 RX2、第一从发送模块 TX1 和第二从发送模块 TX2 ;主发送模块 M_TX 和主节点的隔离差分模块 (2) 通过能信号线 M_TXD_EN、时钟信号线M。

4、_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、时钟信。

5、号线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、主节点接收标识信号线 S。

6、2MFlag、时钟信号线 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 将时钟信号线 S。

7、2_RXD_CLK 和数据信号线 S2_RXD 上的数据分别赋值给时钟信号线 CLK2 和数据信号线 DATA2。3.基于权利要求 2 所述主从同步串行通讯装置的实现方法,其特征在于,该实现方法的具体过程为 :该实现方法的具体过程为 :主节点控制器(1)周期性地读取主接收模块M_RX接收到的有效数据,然后将待发送的有效数据组和控制指令发送给主发送模块 M_TX,通过将发送结束标识位取反赋值给发送开始标识位的方式启动主发送模块 M_TX,在主发送模块 M_TX 启动后,将有效数据组装成多个数据帧,连同时钟信号通过差分总线分时串行发送给各个节点 ;主节点控制器 (1) 根据系统时钟通过地址总线和数。

8、据总线配置主接收模块 M_RX 中的权 利 要 求 书CN 104461985 A2/9 页3数量寄存器组、数据包起始标识寄存器、复位标识寄存器和地址寄存器组,读取双口存储器RAM ;主接收模块 M_RX 中的接收控制模块、总线状态监控器、计数器、CRC 校验模块、接收移位器、NRZI解码模块和双口存储器RAM的写操作均受控于同一时钟信号M_RXD_CLK,且下降沿触发 ;主节点控制器 (1) 根据系统时钟通过地址总线和数据总线配置主发送模块 M_TX 中的发送开始标识位、时刻寄存器组、数量寄存器组、复位标识寄存器、数据包起始标识寄存器和地址寄存器组,并将待发送的有效数据组写入双口存储器 RA。

9、M ;主发送模块 M_TX 中发送结束标识位、发送控制模块、定时器、计数器、CRC 校验模块、发送移位器、NRZI 编码模块和双口存储器 RAM 的读取操作均受控于同一时钟信号 M_TXD_CLK,且上升沿触发 ;从节点控制器 (3) 在接收到第一从接收模块 RX1 发出的中断请求后,先将发送结束标识位取反赋值给发送开始标识位,启动第一从发送模块 TX1,然后读取第一从接收模块 RX1的双口存储器 RAM 中的有效数据 ;从节点控制器 (3) 根据系统时钟和中断信号通过地址总线和数据总线配置第一从接收模块 RX1 中的数量寄存器、数据包起始标识寄存器、复位标识寄存器、地址寄存器、通讯周期寄存器。

10、和中断清除位,并完成双口存储器RAM的读操作 ;第一从接收模块RX1中的超时标识位、定时器和处理器均受控于系统时钟 ;第一从接收模块 RX1 中的中断设置位、差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、计数器、CRC 校验模块、接收移位器、NRZI 解码模块和双口存储器 RAM的写操作均受控于时钟信号线 S1_RXD_CLK,且下降沿触发 ;第二从发送模块 TX2 的处理器受控于系统时钟信号,根据差分总线空闲标识信号线、接收数据包地址域标识信号线上的信号状态控制使能信号线 S2_TXD_EN 的状态 ;从节点控制器(3)根据系统时钟。

11、通过地址总线和数据总线配置第二从接收模块RX2中的数据包起始标识寄存器、复位标识寄存器、地址寄存器和通讯周期寄存器 ;第二从接收模块RX2中的超时标识位、定时器和处理器均受控于系统时钟 ;第二从接收模块RX2中的差分总线空闲标识位、主节点接收标识位、后端从节点接收标识位、地址匹配标识位、接收控制模块、总线状态监控器、接收移位器和 NRZI 解码模块均受控于时钟信号线 S2_RXD_CLK,且下降沿触发 ;从节点控制器(3)根据系统时钟通过地址总线和数据总线配置第一从发送模块TX1中的发送开始标识位、数量寄存器、复位标识寄存器、数据包起始标识寄存器和地址寄存器,并将待发送的有效数据组写入双口存储。

12、器 RAM ;第一从发送模块 TX1 中的多路开关受控于地址匹配标识信号线 EqualFlag ;第一从发送模块 TX1 中的发送结束标识位、发送控制模块、计数器、CRC校验模块、发送移位器、NRZI编码模块和双口存储器RAM的读取操作均受控于系统时钟分频的时钟信号 LCLK,且上升沿触发。4.根据权利要求 3 所述的主从同步串行通讯装置的实现方法,其特征在于,主发送模块 M_TX 启动后的工作过程为 :步骤 1-1、启动定时器 ;步骤 1-2、判断定时器的 Timer 是否等于时刻寄存器组中的值,如果否则重复执行步骤1-2,如果是则执行步骤 1-3 ;步骤 1-3、记录时刻寄存器组中与定时器。

13、等值的单元的相对位置 j,清空计数器,并将权 利 要 求 书CN 104461985 A3/9 页4使能信号线 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、判断发送移位器中的。

14、数据发送是否完成,如果否则重复执行步骤 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-。

15、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、判断发送移位器中的。

16、数据发送是否完成,如果否则重复执行步骤 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 所述。

17、的主从同步串行通讯装置的实现方法,其特征在于,主接收模权 利 要 求 书CN 104461985 A4/9 页5块 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、判断数据总线忙状态变量是否为“真”,如。

18、果否则复位 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,如果是则执行。

19、步骤 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 个单元中的。

20、数值,如果否则返回执行步骤 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,然后。

21、返回执行步骤 2-2-2。6.根据权利要求 3 所述的主从同步串行通讯装置的实现方法,其特征在于,第一从发送模块 RX1 启动后的工作过程为 :对于总线状态监控器 :步骤 3-1-1、将数据信号线 S1_RXD 连接到总线状态监控器 ;步骤 3-1-2、判断总线状态监控器接收到的数据与复位标识寄存器中的数据是否匹配,权 利 要 求 书CN 104461985 A5/9 页6如果否则将差分总线空闲标识位置为“0”,重复执行步骤 3-1-2,如果是则将差分总线空闲标识位置为“1”,重复执行步骤 3-1-2 ;对于定时器 :步骤 3-2-1、启动定时器 ;步骤 3-2-2、判断差分总线空闲标识位是否。

22、为“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和主节点接收标识信号线 S2M。

23、Flag 的状态,然后返回执行步骤 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,如果是则执。

24、行步骤 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,如果是。

25、则返回执行步骤 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 ;权 利 要 求 书CN 104461985 A6/9 页7步骤 3-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则返回。

26、执行步骤 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 校验模块产生。

27、的校验码写入双口存储器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-。

28、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、根据地址匹配标识位的状态设置地址匹配标识信号线 EnableFlag 的状态;步骤 4-3-3、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤 4-3。

29、-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权 利 要 求 书CN 104461985 A7/9 页8步骤 4-3-6、将地址匹配标识信号线 Eq。

30、ualFlag 和使能标识信号线 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 解码模块输入给接收移位器的数据与数据包起始标识寄存器中的数据。

31、是否匹配,如果否则返回执行步骤 4-4-2,如果是则设置数据包起始标识匹配变量为“真”,然后返回执行步骤 4-4-2 ;步骤4-4-5、判断接收移位器是否完成下一组数据接收,如果否则返回执行步骤4-4-2,如果是则执行步骤 4-4-6 ;步骤 4-4-6、判断地址匹配变量是否为“真”,如果否则执行步骤 4-4-7,如果是则执行步骤 4-4-11 ;步骤 4-4-7、判断地址匹配任务已执行变量是否为“真”,如果否则设置地址匹配任务已执行变量为“真”,并执行步骤 4-4-8,如果是则返回执行步骤 4-4-2 ;步骤 4-4-8、判断接收移位器中的数据是否处于主节点接收地址域,如果否则将主节点接收标。

32、识位置为“0”,并执行步骤 4-4-9,如果是则将主节点接收标识位置为“1”,返回执行步骤 4-4-2 ;步骤 4-4-9、判断接收移位器中的数据是否处于当前从节点的后端从节点接收地址域,如果否则将后端从节点接收标识位置为“0”,执行步骤 3-4-10,如果是则后端从节点接收标识位置为“1”,返回执行步骤 4-4-2 ;步骤 4-4-10、判断接收移位器中的数据与地址寄存器组中的数据是否匹配,如果否则将地址匹配标识位置为“0”,返回执行步骤 4-4-2,如果是则将地址匹配标识位置为“1”,设置地址匹配变量为“真”,返回执行步骤 4-4-2。8.根据权利要求 3 所述的主从同步串行通讯装置的实现。

33、方法,其特征在于,第一从接收模块 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。对于发送控制模。

34、块 :步骤 5-2-1、判断发送开始标识位和发送结束标识位是否相等,如果否则重复执行步骤权 利 要 求 书CN 104461985 A8/9 页95-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 ;步。

35、骤 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、判断发送移位器中的数据发送是否完成,如果否则重复执行步骤。

36、 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-。

37、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 启动后的工作过程为 :。

38、步骤 6-1、判断差分总线空闲标识位是否为“1”,如果否则返回执行步骤 6-1,如果是则执行 6-2 ;步骤 6-2、判断主节点接收标识位是否为“1”,如果否则执行步骤 6-3,如果是则延迟t时间后将使能标识信号线S2_TXD_EN的状态设置为“1”,返回执行步骤6-1,所述t为权 利 要 求 书CN 104461985 A9/9 页10不小于主从节点模块串行发送数据时的最大发送时钟周期系统时钟周期 ;步骤 6-3、判断后端从节点接收标识位是否为“1”,如果否则返回执行步骤 6-1,如果是则延迟 t 时间后将使能标识信号线 S2_TXD_EN 的状态设置为“0”,返回执行步骤 6-1。权 利 要 求 书CN 104461985 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1