485接口芯片的防冲突收发切换电路装置的制作方法

文档序号:18297832发布日期:2019-07-31 09:38阅读:391来源:国知局
485接口芯片的防冲突收发切换电路装置的制作方法
本发明涉及通讯
技术领域
,更具体地说,涉及一种rs485通信的接口芯片的防冲突自动收发切换电路装置。
背景技术
:rs-485总线是一种多节点、半双工、差分数据传输的通讯方式。rs-485总线上可以同时挂多台设备,每台设备具有rs485芯片,可进行数据的发送和接收,通过总线这些设备可实现相互通讯。而rs485的半双工通讯,在于数据的接收和发送不能同时进行,如果同时有两个或两个以上的设备同时占有总线进行数据发送,则会导致总线冲突,导致总线挂死。为避免总线冲突的情况,有如下解决方案:一种解决方案为,总线上定义仅一台主机设备和多台从机设备,主机设备能主动发送数据且能接收数据,从机设备默认处于接收状态,只有在接收到数据后才会向外发送数据,主机设备逐一轮询总线上的从机设备,从机设备按照轮询机制回应主机设备完成通讯,从而避免了rs485通讯网络中的总线冲突。但这种方式的缺陷很明显,总线上只有一台主动发送的主机设备,从机没有主动发送的权限,即使从机有紧急情况需上报主机,也必须等待主机按时轮询到才能上报,信息传递不及时。有对第一种解决方案进行改进的第二种解决方案,总线上挂有多台能主动发送的主机设备,rs485芯片具有发送使能脚de和/re接收禁止脚,一个控制芯片的i/o口连接de和/re来控制rs485芯片的收发切换,且通过控制芯片可以对多台主机进行分时复用策略解决总线冲突,或者可以不断检测总线占用情况,判断为空闲时启动该设备的发送功能,从而解决总线冲突,或者其他手段,如竞争式策略,从而避免了多台设备的总线冲突。第二种解决方案,需基于控制芯片来解决冲突。但在小型化设备中,由于空间成本等原因出现软硬件资源紧张,如无控制芯片或有控制芯片但i/o口不足够的情况,无法实现收发切换和避免总线冲突。技术实现要素:针对上述技术问题,本发明提供一种485接口芯片的防冲突收发切换电路装置,包括:延时电路和逻辑控制电路,485接口芯片的接收输出脚通过延时电路与所述逻辑控制电路的第一输入端连接,所述485接口芯片的发送输入脚与所述逻辑控制电路的第二输入端连接,所述485接口芯片的发送使能脚和接收禁止脚与所述逻辑控制电路的输出端连接;所述延时电路被配置为当所述接收输出脚的电平从第一状态变为第二状态时,启动延时,在延时时间内向所述逻辑控制电路的第一输入端输入低电平;所述逻辑控制电路包括反相电路和或非电路,反相电路从所述第一输入端获得第一输入信号,输出反相信号,所述或非电路接收反相信号和所述逻辑控制电路的第二输入端输入的第二输入信号,从所述逻辑控制电路输出端输出一个控制信号,控制485接口芯片发送使能或接收使能。进一步地,所述第一状态为低电平,所述第二状态为高电平,进一步的所述延时电路被配置为在进行所述延时时,当所述接收输出脚的电平从第二状态变化为第一状态时,立刻关闭延时,向所述逻辑控制电路的第一输入端输入低电平。进一步地,所述延时电路为rc延时电路,包括电容和电阻,所述电阻的第一端连接电源,第二端连接所述电容的第一端和所述485接口芯片的接收输出脚,所述电容的第二端接地。进一步地,所述延时电路包括二极管,二极管的阳极与所述电阻的第二端连接,二极管的阴极与所述485接口芯片的接收输出脚连接。进一步地,所述延时电路的最大延时时间为t,所述485接口芯片通讯时具有通讯波特率,所述t大于等于7/通讯波特率。进一步地,进一步的所述延时电路被配置为具有预设的延时时间,在所述预设的延时时间内锁定向所述逻辑控制电路的第一输入端输入低电平。进一步地,所述第一状态为高电平,所述第二状态为低电平,所述485接口芯片通讯时具有通讯波特率,所述预设的延时时间大于等于8/通讯波特率。进一步地,所述第一状态为低电平,所述第二状态为高电平,所述485接口芯片通讯时具有通讯波特率,所述预设的延时时间大于等于7/通讯波特率。进一步地,所述逻辑控制电路包括逻辑控制芯片。与现有技术相比,本发明的有益效果为,不依赖于控制芯片实现485接口芯片的数据收发切换和解决总线冲突,电路简单。【附图说明】图1为现有技术公开的一种485接口芯片的管脚定义图。图2为本发明实施例的485接口芯片的防冲突收发切换电路装置的结构示意图。图3为本发明实施例的485接口芯片的防冲突收发切换电路装置的一种优选实施方式的结构示意图。【具体实施方式】为使本发明的上述目的、特征和优点能够更加明显易懂。下面结合附图对本发明的具体实施方式做详细说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况做类似改进,因此本发明不受下面公开的具体实施方式的限制。rs485通讯使用的485接口芯片,内部包括一个接收器和发送器,功能定义基本相同,管脚定义如图1所示,其中,ro:接收输出脚,获得接收器的输入信号;/re:接收禁止脚,逻辑‘0’时芯片处于接收状态,内部接收器工作,将a、b两个引脚输入的差分信号经放大、判断后,从ro引脚送出,判断标准是,a端大于b端,且压差不小于200mv,输出逻辑“1”;b端大于a端,且压差不小于200mv,输出逻辑“0”;de:发送使能脚,逻辑‘1’时芯片处于发送状态,内部发送器工作,将“di”引脚输入的信号经内部发送器处理后,从a、b两个引脚输出差分信号;di:发送输入脚,对发送器信号输入;vcc:电源;gdn:地;a/b:信号引脚,de、/re都为‘1’时,作为发送器的输出引脚,de、/re都为‘0’时,作为接收器的输入引脚.参见图2,485总线上一设备的数据发送和接收的基本原理为,485接口芯片1的ro脚、di脚分别通过接收信号线rx和发送信号线tx与一个控制器(未示出)的一对通信串口(rx、tx脚)连接,当本机要向外部发送数据时,数据从控制器的tx脚发出给485接口芯片1的di脚,经过转换送从a/b上发出给总线,当本机接收到外部数据时,连接总线的a/b上的信息送入485芯片经过转换从ro口发出送入本机的控制器的rx脚。参见图2,本发明的实施例公开的一种485接口芯片1的防冲突收发切换电路装置2。防冲突收发切换电路装置2包括一个延时电路3和逻辑控制电路4,485接口芯片的接收输出脚ro通过延时电路3与所述逻辑控制电路4的第一输入端连接,所述485接口芯片1的发送输入脚di与所述逻辑控制电路4的第二输入端连接,所述485接口芯片1的发送使能脚de和接收禁止脚/re与所述逻辑控制电路4的输出端连接。所述延时电路3被配置为当所述数据接收脚的电平发生从第一状态变为第二状态时,启动延时,在延时时间内向所述逻辑控制电路的第一输入端输入低电平。当所述延时电路不启动延时时,所述延时电路的输入端信号等于所述延时电路的输出端信号,即同时为高或为低电平。所述逻辑控制电路4包括反相电路41和或非电路42,所述逻辑控制电路4的第一输入端连接至所述反相电路41的输入端,反相电路41的输出端连接至所述或非电路42的第一输入端,所述逻辑控制电路4的第二输入端连接至所述或非电路42的第二输入端,从而或非电路42对其自身两个输入的信号进行或非逻辑判断,或非电路42的输出端连接至所述逻辑控制电路4的输出端。从信号流的角度描述,反相电路41从所述逻辑控制电路4的第一输入端获得第一输入信号,输出反相信号,所述或非电路接收反相信号和从所述逻辑控制电路4的第二输入端输入的第二输入信号,进行或非判断,从所述逻辑控制电路输出端输出一个控制信号,从而控制485接口芯片发送使能或接收使能。具体的,如图2所示,rx线上的信号标记为i1,tx线上的信号也即逻辑控制电路/或非电路的第二输入端的信号标记为i2,反相电路41的输入端信号标记i3,反相电路41的输出端的所述反相信号即或非电路的第一输入端信号标记为i4,或非电路42的输出端的所述控制信号也即485芯片的发送使能引脚、接收禁止引脚上的信号标记为i5。所述信号可理解为高电平或者低电平。所述反相电路41对信号i3进行反相,输出i4,例如i3为高电平,则输出的i4为低电平,输入的i3为低电平,则输出的i4为高电平;所述或非电路42对信号i4和i2进行一个或非的逻辑运算,得到i5,控制485接口芯片发送使能或接收使能。rs485串口协议中包括起始位、数据位、奇偶校验位和停止位:第一位是起始位,在通信线上没有数据发送时处于逻辑“1”状态,当发送设备要发送一个字符数据时,发送逻辑“0”作为起始位;发送起始位后,即发送数数据位,数据位的个数可以是5,6,7或8位的数据,在字符数据传送过程中,数据位从最低为开始依次顺序发送;在数据位后,发送奇偶校验位,奇偶校验位1位数据;在奇偶位之后,发送停止位,可以是1位、1.5位或者2位高电平。因此,485通讯当总线上空闲时,总线上的设备均处于静默状态,485接口芯片既没有发送数据也没有接收数据,表现为rx和tx线上为高电平,即处于逻辑‘1’状态;如本设备处于静默状态-接收使能时,当接收到一个数据时,rx上的i1将因数据的起始位由高电平跳变为低电平;如本设备处于静默状态-接收使能时,当本设备的控制器主动向外发送一个数据时,tx上的i2将因数据的起始位由高电平跳变为低电平。本发明的上述本实施例中,当总线处于静默状态时,本设备的485接口芯片i1、i2为高电平,i3为高,i4位低,i5为低,485接口芯片默认为接收状态。当485接口芯片处于接收状态(/re脚上的信号i5为低电平),如果rx上的信号i1发生高电平跳变为低电平或低电平跳变为高电平,表示485接口芯片在接收状态时接收了数据,此时启动所述延时电路3,在延时时间内反相电路41的输入端上i3保持在低电平,输出的反相信号i4保持在高电平,所述或非电路的输出i5保持低电平,因而485接口芯片在延时时间内被锁定在接收状态。可以理解的时,在所述延时时间内即使本设备主动向外发送数据,tx被拉低,也因为所述或非电路的作用,无法改变485接口芯片的接收使能状态。因此延时电路保证了当接收数据时,485接口芯片有足够的时间来完整的接收总线上的数据,不能轻易被发送数据打断。当本设备在静默状态时有数据要向外发送,rx上i1为高,i4为低,tx上的i2从高电平跳变为低电平,因此或非电路的输出i5变为高,485接口芯片变为发送状态,成功发送一个起始位。本领域公知,控制器通过通讯口发送的数据表现为一位一位的高(1)或低电平(0),例如8位数据串00111010。如果控制器在485芯片处于发送状态向从tx发送一位1,即高电平,则i2变为高,i5变为低,485接口芯片将立刻转变为接收状态,此时该数据串的发送过程可能被中断:485接口芯片跳变为接收状态的同时从总线上接收到数据,则接收到起始位或低电平,i1变为0,必定发生i1从第一状态跳变为第二状态,延时电路启动延时,将本设备的485接口芯片锁定在接收状态,因此,数据串的发送过程被中断,本设备自动接收状态锁定。例如,本设备的控制器发送的下表1的八位字符串00111010,发送第三位1时,485接口芯片跳转为接收状态,如果此时恰好总线上传来外部设备向本设备发送的数据,则本设备的i1跳变为低电平,则必然将发生i1从第一状态跳变为第二状态而启动延时电路的延时,本设备的485芯片进行了接收锁定。因而,本设备的控制器需发送的字符串00111010在第三位起被打断发送,仅发送了前2-3位,本设备的485接口芯片强制转入接收状态,外部设备接收了缺失的数据,无意义。只要在本设备的数据发送过程中,不发生任何一次中断,才能将完整的数据发送至总线。表一位第一位第二位第三位第四位第五位第六位第七位第八位电平00111010由上述可知,本发明所采用的上述防冲突收发切换电路装置,不依赖于传统的控制芯片,电路结构简单,首先,其实现了485接口芯片的自动收发切换,其次,接收的优先级高于发送,当本设备在发送数据时,如果又接收到数据,可打断发送,强制进入延时的接收状态,当本设备在延时的接收状态时,如有数据要发送,不能打断该延时的接收状态,从而保证了总线上不会出现两个设备同时发送的冲突,不会出现一个设备上发送和接收的冲突。图3是本发明实施例的防冲突收发切换电路装置的一种优选实施方式的结构示意图的,如图3所示,所述第一状态为低电平,所述第二状态为高电平,所述延时电路为rc延时电路,所述反相电路为一个反相器u1,进行非运算,所述或非电路为一个或非逻辑门u2,进行或非逻辑运算,所述rc延时电路包括电阻r、电容c和二极管d,电阻r的第一端连接电源,第二端连接所述电容c的第一端和所述反相器u1的输入端,所述电容c的第二端接地,二极管d的阳极与所述电阻r的第二端连接,二极管d的阴极与所述485接口芯片的接收输出脚连接。当rx上接收数据,数据起始位0使得i1从高电平跳变成低电平,i1的低电平使得电容c的电量通过d迅速泄放,i3变为低,反相信号i4变为高,i5为高,接收了数据起始位0。当rx的i1变高,即所述从第一状态变为第二状态,则二极管d截止,电容c通过电阻r进行充电,i3的电平由低逐渐升高,当升到电容c的基准电压uref的时候,i3为高,i4才由高跳变为低。r与c组成的电路,当i1电容c开始从0电量被充电,即启动所述延时,且r和c的选型决定了其具有固定的最大延时时间tmax,tmax=rcln[vcc/(vcc-uref),只有i1维持在高电平时,c的充电过程被维持,延时才能维持;当在c的充电延时中,因i1由高变为低,即从所述第二状态跳变为第一状态,则c的电量被d迅速泄放至0,即延时立刻被关断;rc延时电路的最大延时时间为tmax,当延时的时长达到tmax,在则自动的关闭延时。如果i1从低跳变为高,c开始被充电即启动了延时,当i1保持高且达到最大延时时间tmax时,则c被充至uref,延时关闭,i3跳为高,即当i1为高时,延时tmax后使i3输出高。在延时时间tmax内,i3一直为低,i5一直保持输出低,485接口芯片被锁定在接收状态。如果i1从低跳变为高,c开始被充电即启动了延时,i1仅持续了时间t1(t1小于tmax)为高电平就跳转为低,则电容c上的电量又通过d迅速泄放,延时被关闭,i3仍然为低。此时,从时间轴上看,rc仅实现了t1长度的延时,在t1时间内,i3一直为低,i3一直保持输出低,485接口芯片被锁定在接收状态;但当t1后延时关闭,i1跳为低,而i3仍为低,485接口芯片仍在接收状态,假设此时的i1为低的状态的持续时间为t1,在t1之后i1又从低跳变为高从而再次发生了延时时长t2的i3低电平锁定/485接口芯片接收状态锁定,则t1+t1+t2构成一个i3连续低电平锁定,即t1+t1+t2时长的485接口芯片连续接收状态锁定。如果要跳出这种连续接收锁定,则必须rc的延时时间t必须达到tmax,i3才能变为高。由上可知,这样的rc延时电路,可以实现对485接口芯片的连续接收状态锁定,连续锁定时间长度会随着接收数据的电位的高低而变化,更加智能,能接受更多的数据。可以理解的是,可以实现上述485接口芯片的连续接收状态锁定的延时电路,不局限于上述rc延时电路,本领域技术人员可以采用震荡定时电路、定时芯片等常规电路,搭建出具有相同效果的延时电路,均在本发明的保护范围内;所述反相电路和或非电路,不局限于上述反相器u1和或非逻辑门芯片,通过mos管、二极管、三极管等分立器件实现的非逻辑电路、或非逻辑电路,均在本发明的保护范围内。所述逻辑电路也可以是一个逻辑芯片,实现反相电路和逻辑电路的功能,均在本发明的保护范围内。优选地,所述485接口芯片通讯时具有通讯波特率,所述t大于等于11/通讯波特率。通讯波特率是通讯时每秒能传输的数据位(bit),如波特率9600指每秒可传输9600个数据位。如上所述rs485串口协议,一个完整的数据最短包括8个bit:一个起始位,5个数据位,1个奇偶校验位,一个发送停止位;最长包括12个bit:一个起始位,8个数据位,2个奇偶校验位,一个数据发送位。当所述延时时间大于等于11/通讯波特率时,延时时间可接受11bit,加上开始一个起始位,因此该延时时间能保证接受最长的一个完整数据,即可以理解的是,接收端的485接口芯片每一次接受状态锁定获得的1个起始位+11位中,必然包含一个完整的数据,该完整数据最短为8bit,最长为12位。如此,接收端的控制器必然可识别出一个有用的数据,否则认为总线上传来的数据不完整,为乱码,无法使用。所述延时时间可以根据rs485串口协议的一个完整数据位数和通讯波特率来进行合理设定。本发明的另一种优选实施方式,与第一优选实施方式不同的点在于,延时电路具有一固定不变的预设的延时时间tpre,也即最大延时时间tmax,当开启延时,在进行延时时,i1发生从第二状态变为为第一状态时,延时不能被关闭,必须达到延时电路的预设的延时时间tpre,才能关闭延时。即第一优选实施方式中,每次延时开启,延时电路的延时的时长是变化的,第二优选实施方式中,每次延时开启,延时电路的延时的时长是固定的均为tpre。第二优选方式的延时电路的具体电路,与上述rc延时电路的具体细节不同,本领域技术人员可通过rc、震荡定时电路或定时芯片等常规电子器件搭建出具有该功能的延时电路,均在本发明的保护范围内。上述第二优选实施方式,如果延时电路启动延时条件第一状态为低、第二状态为高,则能同样实现上述rc电路的485接口芯片的连续接收状态锁定,实现相同的效果,且为实现一个完整数据的发送,所述tpre大于等于11/通讯波特率;如果延时电路启动延时条件第一状态为高、第二状态为低,则每次发生接收锁定,锁定时长固定为tpre,且为实现一个完整数据的发送,所述tpre大于等于12/通讯波特率,与上述11/通讯波特率的差别在于12/通讯波特率的延时时长内含有起始位。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1