一种基于串行总线结构的接口电路及通信协议的制作方法
【专利摘要】本发明公开了一种基于串行总线结构的总线接口电路及其总线通信协议,总线接口电路利用发送数据线、发送控制线和竞争控制线的逻辑组合,实现对总线电平的强上拉、弱上拉和强下拉驱动输出,结合对总线逻辑电平的回读功能,支持总线节点以非破坏性仲裁和自动退避的方式竞争总线控制权的总线通信协议。节点通过对总线状态的监听,判断总线空闲,通过对总线电平的“预置”和基于节点地址位的“赋值”,使参与竞争的节点在总线控制权竞争过程中,具有最小地址值的节点向总线发送的信息不会遭到破坏,直至其应用数据发送完毕,总线控制权才会重新被节点竞争,从而实现基于串行总线结构的节点多主通信,保证总线通信的实时性和可靠性。
【专利说明】
-种基于串行总线结构的接口电路及通信协议
技术领域
[0001] 本发明设及一种基于串行总线结构的总线接口电路及其非破坏性总线通信协议, 属于信息网络通信技术领域。
【背景技术】
[0002] 电子信息、通信与计算机技术的发展,使整个社会发生了巨大的变化;同时由于工 业技术的扩大和发展,电子信息、通信与计算机技术在工厂、楼宇和农业领域中的应用也越 来越广泛和深入。其中智能化仪器仪表、控制器、执行机构等设备的之间的数字通信W及与 上层控制系统之间的通信是首要的问题,现场总线就是解决运一问题的核屯、技术。
[0003] 现场总线为各种仪器设备提供基础的信息传输与组网通信支持,是实现物联网中 各节点功能部件协调高效工作的重要保障。目前,国外已经有一些非常成功的现场总线技 术,如EIB、LonWorks等,它们被广泛应用于家庭和大型楼宇电气监控系统中,但由于节点对 总线的驱动能力小,如果不使用中继器,单总线可挂载的节点数一般不超过100个,如果需 要组成大网络,则需要多条总线。工业上常用的485XAN总线等,单总线节点数量一般略多 于100个,在监控点过多时依然要使用多条总线构成网络。
[0004] 使用"推挽"式输出结构作为总线驱动电路可W有效提高总线节点对总线的驱动 能力,增加总线可挂载的节点数量。运种方式带来的问题是,若同一时刻一条总线上有多个 总线节点传输数据,在高低电平之间出现低阻通路的可能性很高,运种情况会导致总线上 逻辑错误甚至短路烧毁。解决运一问题的常用的方法是在总线节点处使用"推挽"式输出结 构的=态口接入总线,通过微控制器轮询的方式控制总线节点传输数据,运种方法可W确 保总线上每个时刻只有一个=态口处于工作状态,而其他的=态口均为高阻态,但是当总 线节点数量很大时,使用轮询方式的通信过程就变得很慢,不符合现场总线对实时性的要 求,并且运种方法需要额外的控制总线W控制=态口的工作状态与高阻态。
【发明内容】
[0005] 本发明是为避免上述现有技术所存在的不足之处,提供一种基于串行总线结构的 总线接口电路及其总线通信协议,W期能实现基于串行总线结构的节点多主通信,使总线 节点采用竞争的方式获取总线控制权,从而能有效提高串行总线的负载能力、保证总线通 信的实时性和可靠性。
[0006] 本发明为解决技术问题采用如下技术方案:
[0007] 本发明一种基于串行总线结构的总线接口电路,所述串行总线结构是在总线上并 联设置有n个节点,记为G= {Gi,G2,...,Gi,...,Gn} ;Gi表示第i个节点;所述第i个节点Gi包 括:第i个微控制器和第i个总线接口电路;所述第i个微控制器和第i个总线接口电路之间 通过第i组信号线相连;所述第i个总线接口电路通过第i个数据线化tai与所述总线相连;1 《i《n;其特点是:
[000引所述第i组信号线包括:第i个发送信号线TXi、第i个接收信号线RXi、第i个发送控 制信号线HIi和第i个竞争控制信号线CIi;
[0009] 所述第i个总线接口电路接入有第i个正电源、第i个负电源和地线;
[0010] 所述第i个总线接口电路包括:第i个上拉电路、第i个下拉电路、第i个回读电路、 第i个数据发送控制电路和第i个竞争控制电路;
[0011] 所述第i个下拉电路与所述第i个正电源相连,并通过第i个一号二极管Di,1接入所 述第i个数据线化化i;
[0012] 所述第i个下拉电路与所述第i个数据发送控制电路相连;
[0013] 所述第i个回读电路通过第i个八号电阻Ri,8和所述第i个数据线化化1相连;
[0014] 所述第i个回读电路通过第i个接收信号线RXi与所述第i个微控制器相连;
[0015] 所述第i个数据发送控制电路与所述地线相连,并通过第i个=号二极管Di,3接入 所述第i个回读电路与所述第i个八号电阻Ri,8之间;
[0016] 所述第i个数据发送控制电路分别通过第i个发送信号线TXi和第i个发送控制信 号线HIi与所述第i个微控制器相连;
[0017] 所述第i个上拉电路与所述第i个负电源相连,并通过第i个二号二极管Di,2接入所 述第i个数据线化化i;
[001引所述第i个上拉电路外部接入有第i个五号电阻Ri,日;所述第i个五号电阻Ri,日的一 端接入所述第i个二号二极管化,2的负极,另一端接入第i个负电源;
[0019] 所述第i个上拉电路与所述第i个竞争控制电路相连;
[0020] 所述第i个竞争控制电路通过第i个四号二极管化,4接入所述第i个回读电路与所 述第i个八号电阻Ri,8之间;
[0021] 所述第i个竞争控制电路通过所述第i个竞争控制信号线CIi、第i个发送信号线TXi 和第i个发送控制信号线HIi与所述第i个微控制器相连。
[0022] 本发明所述的基于串行总线结构的总线接口电路的特点也在于:所述第i个竞争 控制电路包括:第i个与非口化、第i个十二号电阻Ri,12和第i个五号PNPS极管化,5;
[0023] 所述第i个五号PNPS极管化,5的发射极接入第i个正电源、集电极分别与第i个四 号二极管Di,4的正极和所述第i个上拉电路相连、基极与所述第i个十二号电阻Ri,12的一端 相连;所述第i个十二号电阻Ri,12的另一端与第i个与非口化的输出端相连;所述第i个与非 口化的输入端分别与所述第i个竞争控制信号线化、第i个发送信号线TXi和第i个发送控制 信号线HIi相连。
[0024] 本发明一种基于总线接口电路的总线通信协议的特点是应用于由n个节点并联设 置在总线上所组成的串行总线结构中,第i个节点包括:第i个微控制器和第i个总线接口电 路;所述第i个微控制器和第i个总线接口电路之间通过第i组信号线相连;所述第i组信号 线包括:第i个发送信号线TXi、第i个接收信号线RXi、第i个发送控制信号线HIi和第i个竞争 控制信号线CIi;所述第i个总线接口电路通过第i个数据线化tai与所述总线相连;
[0025] 所述总线通信协议是按如下步骤进行:
[0026] 步骤1、定义变量j和k;假设W所述第i个节点作为发送节点并向所述总线发送一 帖二进制数据数据,定义所述一帖二进制数据的位数为M = m+z+l;m>2且为偶数,m表示所 述一帖二进制数据中数据位的个数;Z = I表示所述一帖二进制数据中起始位的个数为1;1 =1表示所述一帖二进制数据中停止位的个数为1;
[0027] 则将第i个节点的地址IDi中的m个地址位中的高!位封装为第I帖二进制数据、低 f位封装为第2帖二进制数据;
[0028] 所述第1帖二进制数据和第2帖二进制数据中的数据位分别是在每个地址位之前 的高位上插入二进制码"r构成;即,
[0029] 所述第 1 帖二进制数据的数据位:1,IDm-I,1,IDm-2,1,. . .,1,IDm/2 ;
[0030] 所述第2帖二进制数据的数据位:I,IDm/2-1,I,IDm/2-2,I,. . .,I,IDo ;
[0031] 步骤2、所述第i个节点中的微控制器将所述第i个发送控制信号线HIi置为低电 平,表示所述第i个总线接口电路处于"弱上拉"输出;
[0032] 步骤3、初始化j = l;
[0033] 步骤4、所述第i个节点中的微控制器在第j个监听周期Tj下,通过第i个接收信号 线RXi采集所述总线的逻辑值門并进行判断,
[0034] 当Fj = I时,将j + 1赋值给j,并判断j>M是否成立,若成立,则表示所述总线处于 "空闲"状态,并执行步骤5,否则重复步骤4执行;
[0035] 当Fj = 0时,则表示所述总线处于"占用"状态;并返回步骤3执行;
[0036] 步骤5、初始化k = l;
[0037] 步骤6、初始化j = 0;在第j个发送周期L的起始时刻,所述第i个节点中的微控制 器将所述第i个发送控制信号线HIi置为高电平、并将第i个竞争控制信号线CIi和第i个发送 信号线TXi置为低电平后,等待第j个发送周期L的结束时刻;从而完成所述第k帖二进制数 据中的起始位的发送,并令j = 1;
[0038] 步骤7、在第j个发送周期L的起始时刻,所述第i个节点中的微控制器分别将所述 第i个发送控制信号线HIi、第i个竞争控制信号线CIi和第i个发送信号线TX遺为高电平,从 而使得所述第i个总线接口电路处于"强上拉"输出;并在第j个发送周期L的中间时刻,将 第i个竞争控制信号线CI遺为低电平,从而使得所述第i个总线接日电路处于"弱上拉"输 出,完成总线电平状态的预置;
[0039] 步骤8、在第j+1个发送周期Tw的起始时刻,所述第i个节点中的微控制器将所述 第k帖二进制数据的数据位中的第m-j-1位的数据通过所述第i个发送信号线TXi发送到所 述总线上;若所述第i个发送信号线TXi为高电平,则表示所述第i个总线接口电路维持"弱 上拉"输出;若所述第i个发送信号线TXi为低电平,则表示所述第i个总线接口电路处于"强 下拉"输出;
[0040] 并在第j+1个发送周期Tw的中间时刻,所述第i个节点中的微控制器通过第i个接 收信号线RXi读取所述总线的逻辑值Fw并进行判断,
[0041] 当总线的逻辑值Fw与第k帖二进制数据的数据位中的第m-j-1位的数据相同时, 等待第j+1个发送周期Tw的结束时刻,再将j+2赋值给j,并判断j>m-l是否成立;若成立, 则在第j个发送周期L的起始时刻,所述第i个节点中的微控制器分别将所述第i个发送控 制信号线HIi、第i个竞争控制信号线CIi和第i个发送信号线TXi置为高电平后,等待第j个发 送周期L的结束时刻;从而完成所述第k帖二进制数据中的停止位的发送,再执行步骤9;否 贝IJ,返回步骤7执行;
[0042] 当总线的逻辑值門+1与第k帖二进制数据的数据位中的第m-j-1位的数据不相同 时,则表示存在高于所述第i个节点优先级的其他节点,所述第i个节点中的微控制器将所 述第i个发送控制信号线HIi置为低电平,表示所述第i个总线接口电路处于"弱上拉"输出; 并返回步骤3执行;
[0043] 步骤9、将k+1赋值给k,并判断k>2是否成立,若成立,则表示所述第i个节点中的 微控制器获得向所述总线发送数据的控制权并通过第i个数据线化tai完成自身的数据发 送;并返回步骤2执行;否则,返回步骤6执行。
[0044] 与已有技术相比,本发明有益效果体现在:
[0045] 1、本发明设计一种基于串行总线结构的总线接口电路,利用对发送数据线、发送 控制信号线和竞争控制信号线的组合设置,实现了对总线电平的强上拉、弱上拉和强下拉 驱动输出。其效果是:对总线电平的强上拉和强下拉驱动,构成对总线的"推挽"式输出功 能,显著提高了接口电路对总线的输出驱动能力,增加了总线上可同时并联挂载节点的数 量。同时,结合对总线电平的弱下拉和对总线逻辑电平的回读功能,所提出的总线接口电路 为实现节点竞争总线控制权的非破坏性总线通信协议,提供了硬件支持。
[0046] 2、本发明的总线接口电路主要由上拉电路、下拉电路、弱下拉电阻、发送控制电 路、竞争控制电路和总线电平回读电路构成,并通过数据线和地线接入串行总线。当有数据 需要向总线发送时,节点通过回读总线逻辑电平,对总线状态进行监听,如果连续出现高电 平逻辑位的数量超过一帖数据的位数,则判断总线空闲,否则判断总线被占用。当总线空闲 时,节点通过接口电路将自身的地址ID按照先高位后低位的次序发送出去。但在发送每一 位地址之前,先利用接口电路的强上拉能力,向总线发送一位逻辑1,然后控制接口电路进 入弱上拉状态,从而完成总线电平的"预置",在接下来的一位时间里,判断要发送的地址位 的逻辑值,如果为1,则保持接口的弱上拉输出;如果为0,则控制接口电路强下拉,向总线发 送一位逻辑0,从而完成总线电平的"赋值"。其效果是:在"预置"阶段,总线电平被快速上拉 至逻辑1,然后根据参与竞争节点的地址位,通过高电平保持或强下拉驱动,实现了总线电 平的快速"赋值",从而实现了强驱动"推挽"输出的"线与"功能。
[0047] 3、本发明对接口电路输出的"线与"结果产生的总线逻辑电平,节点通过其总线接 口的回读电路进行回读,判断回读结果与当前节点发送的地址位是否一致,如果一致则继 续下一位的竞争,否则,节点暂时退出总线竞争而转入对总线状态的监听。其效果是:只要 总线上各节点的地址ID具有唯一性,那么当某节点的地址位全部发送出去,则该节点就获 得了总线的控制权,可W继续向总线发送应用数据。参与竞争的节点在总线控制权竞争和 仲裁的整个过程中,具有最小地址ID值的节点向总线发送的信息不会遭到任何破坏,直至 其应用数据发送完毕,总线控制权才会重新被竞争和仲裁,从而实现了基于串行总线结构 的节点多主通信,有效提高了串行总线通信的实时性和可靠性。
【附图说明】
[0048] 图1为本发明中串行总线结构示意图;
[0049] 图2为本发明中总线接口电路原理图;
[0050] 图3为本发明中总线通信接口数据信道编码脉冲示意图;
[0051 ]图4为本发明中节点发送数据及一帖二进制数据的构成图;
[0052]图5为本发明中通信协议流程图;
[0053] 图6为本发明中非破坏性总线仲裁实施实例图。
【具体实施方式】
[0054] 本实施例中,总线接口电路利用发送数据线、发送控制线和竞争控制线的逻辑组 合,实现对总线电平的强上拉、弱上拉和强下拉驱动输出,结合对总线逻辑电平的回读功 能,支持总线节点W非破坏性仲裁和自动退避的方式竞争总线控制权的总线通信协议。节 点通过对总线状态的监听,判断总线空闲,通过对总线电平的"预置"和基于节点地址位的 "赋值",使参与竞争的节点在总线控制权竞争过程中,具有最小地址值的节点向总线发送 的信息不会遭到破坏,直至其应用数据发送完毕,总线控制权才会重新被节点竞争,从而实 现了基于串行总线结构的节点多主通信,保证了总线通信的实时性和可靠性。
[0055] 具体的说,一种基于串行总线结构的总线接口电路,其结构如图1所示。串行总线 结构是在总线上并联设置有n个节点,记为G= {Gi,G2, ...,Gi,...,GnhGi表示第i个节点;第 i个节点Gi包括:第i个微控制器和第i个总线接口电路;第i个微控制器和第i个总线接口电 路之间通过第i组信号线相连;第i个总线接口电路通过第i个数据线化化1与总线相连,第i 个微控制器利用第i组信号线控制第i个总线接口电路,从而向总线发送数据或从总线接收 数据;
[0056] 第i组信号线包括:第i个发送信号线TXi、第i个接收信号线RXi、第i个发送控制信 号线HIi和第i个竞争控制信号线CIi;
[0057] 第i个总线接口电路接入有第i个正电源+U、第i个负电源-U和地线;
[005引参见图2;第i个总线接口电路包括:第i个上拉电路、第i个下拉电路、第i个回读电 路、第i个数据发送控制电路和第i个竞争控制电路;
[0059] 第i个下拉电路与第i个正电源相连,并通过第i个一号二极管Di,1接入第i个数据 线D曰t曰i ;
[0060] 第i个下拉电路与第i个数据发送控制电路相连;
[0061] 第i个回读电路通过第i个八号电阻Ri,8和第i个数据线化化1相连;
[0062] 第i个回读电路通过第i个接收信号线RXi与第i个微控制器相连;
[0063] 第i个数据发送控制电路与地线相连,并通过第i个=号二极管化,3接入第i个回读 电路与第i个八号电阻Ri,8之间;
[0064] 第i个数据发送控制电路分别通过第i个发送信号线TXi和第i个发送控制信号线 HIi与第i个微控制器相连;
[0065] 第i个上拉电路与第i个负电源相连,并通过第i个二号二极管Di,2接入第i个数据 线化tai;第i个下拉电路和第i个上拉电路共同构成了第i个"推挽"式输出电路;当第i个下 拉电路中的第i个一号NPN立极管Qi,1导通并且第i个上拉电路中的第i个二号NPN立极管化,2 截止,第i个总线接口电路被置为"强下拉"输出;当第i个下拉电路中的第i个一号NPNS极 管Qi,1截止并且第i个上拉电路中的第i个二号NPN立极管化,2导通,则第i个总线接口电路输 出被置为"强上拉"输出。
[0066] 第i个一号二极管化,1和第i个二号二极管化,2共同工作,其功能一是避免了因误将 第i个正电源+U和第i个负电源-U接反而损毁第i个总线接口电路和总线;二是分别对第i个 下拉电路和第i个上拉电路限幅,避免了由于正电源+U或第i个负电源-U输出电压不稳定而 损毁第i个总线接口电路。
[0067]第i个上拉电路外部接入有第i个五号电阻Ri,5;第i个五号电阻Ri,5的一端接入第i 个二号二极管Di,2的负极,另一端接入第i个负电源;第i个五号电阻Ri,5的电阻值很大;当第 i个上拉电路中的第i个二号NPNS极管Qi,2和第i个下拉电路中的第i个一号NPNS极管化,1 均截止,第i个负电源-U可W通过第i个五号电阻Ri,5将第i个总线接口电路输出置为"弱上 拉"输出;此时,若总线上第x(l《x《n且X声i)个节点Gx中第X个下拉电路里的第X个五号 NPNS极管Qx,5处于导通状态,第i个五号电阻Ri,5可W将第X个正电源+U和第i个负电源-U之 间通路中的电流限制在微安级别,避免在第X个正电源+U和第i个负电源-U之间形成低阻通 路。
[006引定义:"强上挣'状态和"弱上挣'状态并称为"上挣'状态;
[0069] 当总线电平状态被置为"强下拉"状态时,第i个回读电路中的第六号NPNS极管 Qi,诏通,第i个接收信号线RXi被置为低电平;当总线的电平状态被置为"上拉"状态时,第i 个回读电路中的第六号NPNS极管化,6截止,第i个接收信号线RXi被置为高电平;若第i个微 控制器检测到第i个接收信号线RXi为低电平,则读取到总线处于"强下挣'状态;若第i个微 控制器检测到第i个接收信号线RXi为高电平,则读取到总线处于"上拉"状态。
[0070] 第i个上拉电路与第i个竞争控制电路相连;
[0071] 第i个竞争控制电路通过第i个四号二极管Di,4接入第i个回读电路与第i个八号电 阻Ri,8之间;第i个=号二极管Di,3和第i个四号二极管化,4共同工作,其功能与第i个一号二 极管化,1和第i个二号二极管化,2共同工作的功能相同。
[0072] 第i个竞争控制电路通过第i个竞争控制信号线CIi、第i个发送信号线TXi和第i个 发送控制信号线HIi与第i个微控制器相连。
[0073] 具体的,第i个竞争控制电路包括:第i个与非口化、第i个十二号电阻Ri,12和第i个 五号PNPS极管Qi, 5;
[0074] 第i个五号PNPS极管化,5的发射极接入第i个正电源、集电极分别与第i个四号二 极管Di,4的正极和第i个上拉电路相连、基极与第i个十二号电阻Ri,12的一端相连;第i个十 二号电阻Ri,12的另一端与第i个与非口化的输出端相连;第i个与非口化的输入端分别与第i 个竞争控制信号线CIi、第i个发送信号线TXi和第i个发送控制信号线HIi相连。
[0075] 第i个微控制器利用第i组信号线控制第i个总线接口电路,基于第i个总线接口电 路的原理,可W得到第i个微控制器对第i个总线接口电路的控制方式,如表1所示。
[0076] 表1第i个微控制器对第i个总线接口电路的控制方式
[0077]
[007引由表1可知,第i个发送控制信号线HIi为控制发送数据的信号线;当第i个发送控 审IJ信号线HI功低电平时,第i个总线接日电路始终保持"弱上挣'状态,不随第i个发送信号 线TXi和第i个竞争控制信号线CIi中信号的改变而变化。当第i个发送控制信号线HIi为高电 平时,第i个发送信号线TXi和第i个竞争控制信号线CIi中的信号共同决定第i个总线接口电 路的输出状态。
[0079] 当第i个发送控制信号线HIi为高电平时,第i个发送信号线TXi中的信号决定第i个 总线接口电路处于"上拉"输出或"强下拉"输出。
[0080] 当第i个发送控制信号线HIi为高电平且第i个发送信号线TXi为高电平时,第i个竞 争控制信号线CIi中的信号决定第i个总线接口电路处于"弱上拉"输出或"强上拉"输出。
[0081] 由第i个总线接口电路的原理可知:当总线上第曰(曰=1,2,...,11)个总线接口电路 为"弱上拉"状态时,则总线也为"弱上拉"状态,;当总线上有b个总线接口电路为"弱上拉" 输出,且有C个总线接口电路为"强下拉"输出,b+c = n,则总线为"强下挣'状态。
[0082] 本实施例中,一种基于总线接口电路的总线通信协议,是应用于由n个节点并联设 置在总线上所组成的串行总线结构中,第i个节点包括:第i个微控制器和第i个总线接口电 路;第i个微控制器和第i个总线接口电路之间通过第i组信号线相连;第i组信号线包括:第 i个发送信号线TXi、第i个接收信号线RXi、第i个发送控制信号线HIi和第i个竞争控制信号 线CIi;第i个总线接口电路通过第i个数据线化化i与总线相连;
[0083] 如图3所示,总线通信协议规定:总线的信道编码方式采用双极脉冲不归零负逻辑 编码,总线具有两种逻辑值,即逻辑"r,对应总线"上拉"状态和高电平;逻辑"0",对应总线 "强下拉"状态和低电平;
[0084] 定义希望获得向总线发送数据控制权的节点为参与竞争的节点;不希望获得向总 线发送数据控制权的节点为未参与竞争的节点。
[0085] 如图5所示,总线通信协议是按如下步骤进行:
[0086] 步骤1、定义变量j和k;假设W第i个节点作为发送节点并向总线发送一帖二进制 数据,定义一帖二进制数据的位数为M = m+z+l;m>2且为偶数,m表示一帖二进制数据中数 据位的个数;Z = 1表示一帖二进制数据中起始位的个数为1,起始位为"0" ; 1 = 1表示一帖二 进制数据中停止位的个数为1,停止位为"r;如图4所示,第i个节点向总线发送的数据由若 干帖二进制数据构成,二进制数据的帖数可变,但至少为二帖;每帖二进制数据之间设有帖 间隔时间,帖间隔时间小于每个二进制数据位的发送周期,数据的第一帖二进制数据是第1 帖二进制数据,第二帖二进制数据是第2帖二进制数据;
[0087] 定义总线中的第i个节点的地址ID功二进制数据,IDi共有m个地址位;又有第Z个 节点的地址化,l《z《n,z声i,则必须满足IDi声IDz;此时若IDi<IDz,则第i个节点比第Z个 节点的优先级高;在一次竞争中,有且只有一个节点获得向总线发送数据的控制权,该节点 的优先级必然比所有参与竞争的其他节点都高。
[0088] 则将第1个节点的地址101中的111个地址位中的高^位封装为第1帖二进制数据、低 f位封装为第2帖二进制数据;
[0089] 第1帖二进制数据和第2帖二进制数据中的数据位分别是在每个地址位之前的高 位上插入二进制码"r构成;即,
[0090] 第I 帖二进制数据的数据位:I,IDm-I,I,IDm-2,I,. . .,I,IDm/2 ;
[0091] 第2帖二进制数据的数据位:I,IDm/2-1,I,IDm/2-2,I,. . .,I,IDo ;
[0092] 第i个节点通过第i个发送信号线TXi发送数据位,定义发送数据位为"r时,第i个 发送信号线TX功高电平;发送数据位为"0"时,第i个发送信号线TX功低电平;
[0093] 若仅有第i个节点和第Z个节点是参与竞争的节点,在竞争向总线发送数据的控制 权时,第i个节点依次向总线发送第i个节点的第1帖二进制数据和第2帖二进制数据,第Z个 节点依次向总线发送第Z个节点的第1帖二进制数据和第2帖二进制数据;若IDi<IDz,则第i 个节点比第Z个节点的优先级高,故通过将第i个节点的地址IDi与第Z个节点地址IDz中的对 应地址位逐位比较,最终优先级高的第i个节点胜出,即第i个节点获得向总线发送数据的 控制权。
[0094] 步骤2、第i个节点中的微控制器将第i个发送控制信号线HIi置为低电平,表示第i 个总线接口电路处于"弱上拉"输出,即表1中的1号方式;
[0095] 步骤3、初始化j = l;
[0096] 步骤4、第i个节点中的微控制器在第j个监听周期L下,通过第i个接收信号线RXi 采集总线的逻辑值門并进行判断,由于未向总线发送数据的节点输出均处"弱上拉"状态, 则若总线上的所有节点都未向总线发送数据,此时总线的逻辑值为"r;参见图4,又由于一 帖二进制数据的起始位为逻辑"0",且帖间隔时间小于一个二进制数据位的发送周期,若在 一帖二进制数据发送周期中,第i个节点采集总线的逻辑值門始终为"r,则表示在一帖二 进制数据的发送周期中没有节点正在向总线发送数据,定义此时总线处于"空闲"状态;否 则总线处于"占用'状态。
[0097] 当門=1时,将j+1赋值给j,并判断j>M是否成立,若成立,即在一帖二进制数据发 送周期中,第i个节点采集总线的逻辑值F疏终为"r,则表示总线处于"空卸'状态,并执行 步骤5;否则重复步骤4执行;
[009引当Fj = 0时,则表示总线处于"占用"状态;并返回步骤3执行;
[0099] 步骤5、初始化k = l;
[0100] 步骤6、初始化j = 0;在第j个发送周期L的起始时刻,第i个节点中的微控制器将 第i个发送控制信号线HIi置为高电平、并将第i个竞争控制信号线CIi和第i个发送信号线 TX遺为低电平后,此时第i个总线接日电路处于"强下拉"输出,第i个节点处于表1中的3号 方式,等待第j个发送周期T非勺结束时刻;从而完成第k帖二进制数据中的起始位"0"的发 送,并令j = l;
[0101] 步骤7、在第j个发送周期Tj的起始时刻,第i个节点中的微控制器分别将第i个发 送控制信号线HIi、第i个竞争控制信号线CIi和第i个发送信号线TXi置为高电平,即第i个节 点中的微控制器将第k帖二进制数据的数据位中的第m-j-1位的数据通过第i个发送信号线 TXi发送到总线上,从而使得总线处于"强上拉"状态,此时第i个节点处于表1中的4号方式; 并在第j个发送周期T撕结束时刻,将第i个竞争控制信号线CI遺为低电平,从而使得第i个 总线接日电路处于"弱上拉"状态,完成总线电平状态"预置",此时第i个节点处于表1中的2 号方式;
[0102] 步骤7等价于先使第i个一号NPN立极管Qi,1截止且第i个上拉电路中第i个二号NPN S极管化,2导通,将第i个数据线化tai的电平状态通过第i个上拉电路中第i个二号NPN立极 管化,2从+U拉到-u,并使S极管截止,通过第i个五号电阻Ri,5维持第i个数据线化tai的电平 状态。步骤7中也可W使第i个总线接口电路从"强下拉"状态直接转变到"弱上拉"状态,即 跳过"强上拉"状态,此时等价于将第i个数据线化化1的电平状态通过第i个五号电阻Ri,5从 +U拉到-U。
[010引步骤8、在第j+1个发送周期Tw的起始时刻,第i个节点中的微控制器将第k帖二进 制数据的数据位中的第m-j-1位的数据,即地址位
里过第i个发送信号线TXi发送到 总线上;若第i个发送信号线TXi为高电平,则表示第i个总线接口电路维持"弱上拉"输出, 此时第i个节点处于表1中的2号节点方式;若第i个发送信号线TXi为低电平,则表示第i个 总线接日电路处于"强下挣'输出,此时第i个节点处于表1中的3号节点方式,并且第i个总 线接口电路也将总线置为"强下拉"状态;此时若总线上第Z个节点也是参与竞争的节点,且 第Z个节点的第Z个发送信号线TXz为高电平,即第Z个总线接口电路处于"弱上拉"状态,第Z 个节点处于表1中的2号节点方式,第i个正电源和第Z个负电源之间形成通路,但电流被限 制在微安级别,也不会产生总线逻辑值错误;
[0104] 并在第j+1个发送周期Tw的中间时刻,第i个节点中的微控制器通过第i个接收信 号线RXi读取总线的逻辑值Fw并进行判断,
[0105] 当总线的逻辑值Fw与第k帖二进制数据的数据位中的第m-j-1位的数据相同时, 等待第j+1个发送周期Tw的结束时刻,再将j+2赋值给j,并判断j>m-l是否成立;若成立, 表明第i个节点的第k帖二进制数据的数据位已经全部发送完成,则在第j个发送周期Tj的 起始时刻,第i个节点中的微控制器分别将第i个发送控制信号线HIi、第i个竞争控制信号 线CIi和第i个发送信号线TXi置为高电平后,等待第j个发送周期L的结束时刻;从而完成第 k帖二进制数据中的停止位的发送,再执行步骤9;否则,表示第i个节点无法通过第i个节点 的地址IDi地址位W"' I'' I判断自己是否具有高优先级,则返回步骤7执行; k 2
[0106] 当总线的逻辑值門+1与第k帖二进制数据的数据位中的第m-j-l位的数据不相同 时,则表示存在高于第i个节点优先级的其他节点,第i个节点中的微控制器将第i个发送控 审IJ信号线HI遺为低电平,表示第i个总线接口电路处于"弱上拉"输出,此时第i个节点已退 出本次竞争,保留其希望向总线发送的数据,完成一次非破坏性总线仲裁;并返回步骤3执 行,重新对总线进行监听,准备参与下一次竞争;
[0107] 步骤9、将k+1赋值给k,并判断k>2是否成立,若成立,表明第i个节点在所有参与 竞争的节点中具有最高优先级,则表示第i个节点中的微控制器获得向总线发送数据的控 制权并通过第i个数据线化tai完成自身的数据发送;并返回步骤2执行;否则,返回步骤6执 行。
[0108] 举例说明:在图6所示的总线竞争实施例中,一帖二进制数据中数据位的个数m = 8, 一帖二进制数据的位数M= 10。地址IDi为01001001 (49H)的第1个节点和地址ID2为 01000011(43?的第2个节点同时监听到总线处于"空闲"状态,并同时依次向总线发送其各 自的第1帖二进制数据和第2帖二进制数据,即开始一次竞争。第1个节点和第2个节点在发 送各自的第1帖二进制数据和第2帖二进制数据的过程中,对发送的每一个地址位,都进行 回读和比较。当发送第2帖二进制数据中数据位的第6位,即地址ID的第3位时,节点1发送的 是"r,即发送逻辑"r,第1个总线接口电路处于"弱上拉"状态;而第2个节点发送的是%", 即发送逻辑"0",第I个总线接日电路处于"强下挣'状态;总线处于"强下拉"状态,此时第I 个节点和第2个节点从总线读取的逻辑值为"0",于是就产生了总线访问冲突。因为第1个节 点从总线读取的逻辑值"0"与自己发送的逻辑值"r不同,便会终止对总线的数据发送,第1 个总线接口电路维持"弱上拉"状态,转而对总线进行监听或数据接收;而第2个节点会获得 向总线发送数据的控制权,通过第2个数据线化化1完成自身的数据发送,数据发送完成后, 第2个总线接口电路被置于"弱上拉"状态,转而对总线进行监听或数据接收。
【主权项】
1. 一种基于串行总线结构的总线接口电路,所述串行总线结构是在总线上并联设置有 η个节点,记为G={Gi,G2, . . .,Gi, . . .,Gn} ;Gi表示第i个节点;所述第i个节点Gi包括:第i个 微控制器和第i个总线接口电路;所述第i个微控制器和第i个总线接口电路之间通过第i组 信号线相连;所述第i个总线接口电路通过第i个数据线Dat ai与所述总线相连;1彡i<n;其 特征是: 所述第i组信号线包括:第i个发送信号线TXi、第i个接收信号线RXi、第i个发送控制信 号线HL·和第i个竞争控制信号线CL·; 所述第i个总线接口电路接入有第i个正电源、第i个负电源和地线; 所述第i个总线接口电路包括:第i个上拉电路、第i个下拉电路、第i个回读电路、第i个 数据发送控制电路和第i个竞争控制电路; 所述第i个下拉电路与所述第i个正电源相连,并通过第i个一号二极管D1;1接入所述第 i个数据线Datai; 所述第i个下拉电路与所述第i个数据发送控制电路相连; 所述第i个回读电路通过第i个八号电阻R1>8和所述第i个数据线Datm相连; 所述第i个回读电路通过第i个接收信号线1?1与所述第i个微控制器相连; 所述第i个数据发送控制电路与所述地线相连,并通过第i个三号二极管D1>3接入所述 第i个回读电路与所述第i个八号电阻R1>8之间; 所述第i个数据发送控制电路分别通过第i个发送信号线TXi和第i个发送控制信号线 Hli与所述第i个微控制器相连; 所述第i个上拉电路与所述第i个负电源相连,并通过第i个二号二极管D1>2接入所述第 i个数据线Datai; 所述第i个上拉电路外部接入有第i个五号电阻R1>5;所述第i个五号电阻R1>5的一端接 入所述第i个二号二极管D1>2的负极,另一端接入第i个负电源; 所述第i个上拉电路与所述第i个竞争控制电路相连; 所述第i个竞争控制电路通过第i个四号二极管D1>4接入所述第i个回读电路与所述第i 个八号电阻Ri,8之间; 所述第i个竞争控制电路通过所述第i个竞争控制信号线CL·、第i个发送信号线1&和第 i个发送控制信号线HL·与所述第i个微控制器相连。2. 根据权利要求1所述的基于串行总线结构的总线接口电路,其特征是:所述第i个竞 争控制电路包括:第i个与非门Ui、第i个十二号电阻Ri, 12和第i个五号PNP三极管Qi,5; 所述第i个五号PNP三极管Q1>5的发射极接入第i个正电源、集电极分别与第i个四号二 极管D1>4的正极和所述第i个上拉电路相连、基极与所述第i个十二号电阻R1>12的一端相连; 所述第i个十二号电阻R 1>12的另一端与第i个与非门仏的输出端相连;所述第i个与非门仏的 输入端分别与所述第i个竞争控制信号线CL·、第i个发送信号线Tt和第i个发送控制信号线 Hli相连。3. -种基于总线接口电路的总线通信协议,其特征是应用于由η个节点并联设置在总 线上所组成的串行总线结构中,第i个节点包括:第i个微控制器和第i个总线接口电路;所 述第i个微控制器和第i个总线接口电路之间通过第i组信号线相连;所述第i组信号线包 括:第i个发送信号线TXi、第i个接收信号线RXi、第i个发送控制信号线HL·和第i个竞争控制 信号线CI1;所述第i个总线接□电路通过第i个数据线Datm与所述总线相连; 所述总线通信协议是按如下步骤进行: 步骤1、定义变量j和k;假设以所述第i个节点作为发送节点并向所述总线发送一帧二 进制数据数据,定义所述一帧二进制数据的位数为M=m+z+l;m多2且为偶数,m表示所述一 帧二进制数据中数据位的个数;z = 1表示所述一帧二进制数据中起始位的个数为1; 1 = 1表 示所述一帧二进制数据中停止位的个数为1; v-t/i 则将第i个节点的地址IDi中的m个地址位中的高y位封装为第1帧二进制数据、低y位 封装为第2帧二进制数据; 所述第1帧二进制数据和第2帧二进制数据中的数据位分别是在每个地址位之前的高 位上插入二进制码"Γ构成;即, 所述第1帧二进制数据的数据位:1,IDh,1,IDm-2,1,…,1,IDm/ 2; 所述第2帧二进制数据的数据位:1,IDm/2-i,1,IDm/ 2-2,1,…,1,IDo; 步骤2、所述第i个节点中的微控制器将所述第i个发送控制信号线HL·置为低电平,表示 所述第i个总线接口电路处于"弱上拉"输出; 步骤3、初始化j = l; 步骤4、所述第i个节点中的微控制器在第j个监听周期L下,通过第i个接收信号线RXi 采集所述总线的逻辑值h并进行判断, 当Fj = l时,将j+Ι赋值给j,并判断j>M是否成立,若成立,则表示所述总线处于"空闲" 状态,并执行步骤5,否则重复步骤4执行; 当h = 0时,则表示所述总线处于"占用"状态;并返回步骤3执行; 步骤5、初始化k=l; 步骤6、初始化j = 0;在第j个发送周期L的起始时刻,所述第i个节点中的微控制器将所 述第i个发送控制信号线HL·置为高电平、并将第i个竞争控制信号线CL·和第i个发送信号线 TXi置为低电平后,等待第j个发送周期L的结束时刻;从而完成所述第k帧二进制数据中的 起始位的发送,并令j = l; 步骤7、在第j个发送周期L的起始时刻,所述第i个节点中的微控制器分别将所述第i个 发送控制信号线HL·、第i个竞争控制信号线CL·和第i个发送信号线TXi置为高电平,从而使 得所述第i个总线接口电路处于"强上拉"输出;并在第j个发送周期L的中间时刻,将第i个 竞争控制信号线CL·置为低电平,从而使得所述第i个总线接口电路处于"弱上拉"输出,完 成总线电平状态的预置; 步骤8、在第j+Ι个发送周期Tj+1的起始时刻,所述第i个节点中的微控制器将所述第k帧 二进制数据的数据位中的第m-j-1位的数据通过所述第i个发送信号线送到所述总线 上;若所述第i个发送信号线TXiS高电平,则表示所述第i个总线接口电路维持"弱上拉"输 出;若所述第i个发送信号线TXiS低电平,则表示所述第i个总线接口电路处于"强下拉"输 出; 并在第j+Ι个发送周期Tj+1的中间时刻,所述第i个节点中的微控制器通过第i个接收信 号线Rta取所述总线的逻辑值Fw并进行判断, 当总线的逻辑值Fj+1与第k帧二进制数据的数据位中的第m-j-1位的数据相同时,等待 第j+1个发送周期Tj+1的结束时刻,再将j+2赋值给j,并判断j>m-l是否成立;若成立,则在 第j个发送周期L的起始时刻,所述第i个节点中的微控制器分别将所述第i个发送控制信 号线HL·、第i个竞争控制信号线CL·和第i个发送信号线Tt置为高电平后,等待第j个发送周 期L的结束时刻;从而完成所述第k帧二进制数据中的停止位的发送,再执行步骤9;否则, 返回步骤7执行; 当总线的逻辑值Fj+1与第k帧二进制数据的数据位中的第m-j-1位的数据不相同时,则 表示存在高于所述第i个节点优先级的其他节点,所述第i个节点中的微控制器将所述第i 个发送控制信号线HL·置为低电平,表示所述第i个总线接口电路处于"弱上拉"输出;并返 回步骤3执行; 步骤9、将k+Ι赋值给k,并判断k> 2是否成立,若成立,贝lj表示所述第i个节点中的微控 制器获得向所述总线发送数据的控制权并通过第i个数据线〇&丨&1完成自身的数据发送;并 返回步骤2执行;否则,返回步骤6执行。
【文档编号】G06F13/42GK105955905SQ201610247642
【公开日】2016年9月21日
【申请日】2016年4月18日
【发明人】易茂祥, 梁华国
【申请人】合肥工业大学