CN206993134U - 一种基于can总线收发器的通信装置 - Google Patents
一种基于can总线收发器的通信装置 Download PDFInfo
- Publication number
- CN206993134U CN206993134U CN201720389973.8U CN201720389973U CN206993134U CN 206993134 U CN206993134 U CN 206993134U CN 201720389973 U CN201720389973 U CN 201720389973U CN 206993134 U CN206993134 U CN 206993134U
- Authority
- CN
- China
- Prior art keywords
- data
- transceiver
- sent
- module
- receiving
- 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
Landscapes
- Small-Scale Networks (AREA)
Abstract
本实用新型公开了一种基于CAN总线收发器的多主机通信装置,装置包括:CAN总线收发器,配置为接收待发送数据并进行数据发送,并生成与发送数据相同的回环数据反馈;处理器,处理器通过发送引脚及接收引脚与CAN总线收发器连接,进行数据收发,其中,处理器还包括:发送模块,其配置为通过发送引脚向CAN总线收发器发送待发送数据;接收模块,其配置为通过接收引脚接收来自其他主机的数据,以及在发送模块发送数据后接收反馈的回环数据;数据比较器,其配置为在发送模块完成数据发送后比较刚刚发送的数据以及回环数据,比较结果一致时判定数据发送成功。根据本实用新型的通信装置可以实现基于CAN总线收发器的多主机通信。
Description
技术领域
本实用新型涉及通信领域,具体涉及一种基于CAN总线收发器的通信装置。
背景技术
在现有技术中,目前常见的多机通信机制一般都是基于RS485的电平传输的一主多从的通信机制。其实现的前提是必须在通信网络中构造主/从机结构。
为了绕开主/从机结构的限制,在现有技术中提出了基于RS485使用令牌环实现的多主机通信方案。但是该多主机通信方案的软件运行效率较低,总线带宽使用率也较低。
进一步的,为了提高通信效率,在现有技术中还提出了以太网和控制器局域网络(Controller Area Network,CAN)总线等高级的多主机通信方案,但带以太网或 CAN总线的中央处理器CPU或微控制单元(Microcontroller Unit,MCU)处理器价格远高于普通的处理器,这就使得整个通信网络系统的硬件成本居高不下。
实用新型内容
本实用新型提供了一种基于CAN总线收发器的多主机通信装置,所述装置包括:
CAN总线收发器,符合CAN总线电平标准,配置为从带有通用异步收发传输器UART的处理器接收待发送数据并进行数据发送,并生成与发送数据相同的回环数据反馈给所述处理器;
带有UART的处理器,所述处理器包含用于发送数据的发送引脚以及用于接收数据的接收引脚,所述处理器通过所述发送引脚及接收引脚与所述CAN总线收发器连接,进行数据收发,其中,所述处理器还包括:
发送模块,其配置为通过所述发送引脚向所述CAN总线收发器发送待发送数据;
接收模块,其配置为通过所述接收引脚接收所述CAN总线收发器上来自其他主机的数据,以及在发送模块发送数据后接收CAN总线收发器反馈的回环数据;
数据比较器,其配置为在所述发送模块完成数据发送后比较刚刚发送的数据以及所述回环数据,比较结果一致时判定数据发送成功。
在一实施例中,所述接收模块还配置为:
在所述数据比较器判定数据发送成功时删除回环数据。
在一实施例中,所述发送模块还配置为发送数据完成后,向所述接收模块发送数据比较请求;
所述接收模块还配置为:
当数据接收完成后,判断是否存在数据比较请求,当存在数据比较请求时,请求所述数据比较器进行数据比较,否则,对接收到的数据进行解包处理。
在一实施例中,所述发送模块还配置为,当数据比较器的比较结果为所述发送数据与所述回环数据不相符,删除所述回环数据,重发所述待发送数据。
在一实施例中,所述发送模块,还配置为在存在所述待发送数据时,确定所述CAN总线收发器是否处于空闲状态,在所述CAN总线收发器空闲时通过所述发送引脚向所述CAN总线收发器发送所述待发送数据。
在一实施例中,所述处理器还包括监听模块,所述监听模块包括计时器及监听状态机,其中:
所述发送模块还配置为,在确定存在所述待发送数据时,向所述监听模块发送监听请求,当接收到所述监听模块反馈所述CAN总线收发器空闲时,进行数据发送;
所述监听状态机配置为在接收到发送模块的监听请求时,配置计时器为计数模式,若所述计时器计数为0,则反馈所述发送模块所述CAN总线收发器空闲;
所述计时器配置为在计数模式时,通过外部引脚对所述CAN总线收发器与所述接收引脚之间的通信线路进行计数。
在一实施例中,所述接收模块还配置为进行数据接收时,若达到设定时长未接收到新数据,则停止进行数据接收。
在一实施例中,所述处理器还包括监听模块,所述监听模块包括计时器及监听状态机,其中:
所述接收模块还配置为在检测到待接收数据时,向所述监听模块发送监听请求,当接收到超时反馈时,停止数据接收;
所述监听状态机配置为当接收到接收模块的监听请求时,配置计时器为定时模式,当计时器反馈达到定时时长,向所述接收模块发送超时反馈;
所述计时器配置为在定时模式时,进行设定时长的计时,当达到设定时长时,向所述监听状态机反馈。
在一实施例中,所述接收模块还配置为:
在每次接收到数据后,重发监听请求给所述监听模块。
在一实施例中,所述设定时长为3.5T个字节的发送时长。
根据本实用新型的通信装置可以实现基于CAN总线收发器的多主机通信,在利用CAN总线电平机制进行多主机通信的同时,避免使用了成本较高的CAN 总线控制器,通过CAN总线收发器和带有UART处理器的配合,有效的实现多主机通信,相较于现有技术,根据本实用新型的通信装置成本低廉、运行效率高,总线带宽使用率高,具有很高的实用价值。
本实用新型的其它特征或优点将在随后的说明书中阐述。并且,本实用新型的部分特征或优点将通过说明书而变得显而易见,或者通过实施本实用新型而被了解。本实用新型的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
附图说明
附图用来提供对本实用新型的进一步理解,并且构成说明书的一部分,与本实用新型的实施例共同用于解释本实用新型,并不构成对本实用新型的限制。在附图中:
图1以及图3是根据本实用新型实施例的装置结构简图;
图2、图4以及图5是根据本实用新型实施例的装置部分结构简图。
具体实施方式
以下将结合附图及实施例来详细说明本实用新型的实施方式,借此本实用新型的实施人员可以充分理解本实用新型如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本实用新型。需要说明的是,只要不构成冲突,本实用新型中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本实用新型的保护范围之内。
在现有技术中,目前常见的通用异步收发传输器(Universal AsynchronousReceiver/Transmitter,UART)串行总线多机通信机制一般都是基于RS485的电平传输的一主多从的通信机制。其实现的前提是必须在通信网络中构造主/从机结构。
为了绕开主/从机结构的限制,在现有技术中提出了基于RS485使用令牌环实现的多主机通信方案。但是该多主机通信方案的软件运行效率较低,总线带宽使用率也较低。
进一步的,为了提高通信效率,在现有技术中还提出了以太网和控制器局域网络(Controller Area Network,CAN)总线等高级的多主机通信方案,但带以太网或 CAN总线的中央处理器CPU或微控制单元(Microcontroller Unit,MCU)处理器价格远高于普通的处理器,这就使得整个通信网络系统的硬件成本居高不下。
综上,本实用新型提出了一种多主机通信装置。本实用新型的多主机通信装置基于局域网络控制器(Controller Area Network,CAN)总线收发器。具体的,如图 1所示,在本发明一实施例中,通信装置包括CAN总线收发器110以及带有通用异步收发传输器UART的处理器120。
CAN总线收发器110符合CAN总线电平标准,配置为从处理器120接收待发送数据并进行数据发送,并生成与发送数据相同的回环数据反馈给处理器120。具体的,在一实施例中,CAN总线收发器110配置为,如果接口112(CANH) 电平大于接口111(CANL)为显性电平(即逻辑电平0),如果接口112(CANH) 电平等于接口111(CANL)为隐形电平(即逻辑电平1),发送端的数据直接镜像到接收端,生成回环数据,并将回环数据反馈给处理器120。
处理器120带有通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)。处理器120包含用于发送数据的发送引脚121 (UART-TX)以及用于接收数据的接收引脚122(UART-RX)。处理器120的发送引脚121以及接收引脚122连接到CAN总线收发器110。
进一步的,处理器120还包括:
发送模块123,其配置为通过发送引脚121向CAN总线收发器110发送待发送数据;
接收模块124,其配置为通过接收引脚122接收装置所接入的CAN总线收发器110上来自其他主机的数据,以及在发送模块123发送数据后接收CAN总线收发器110反馈的回环数据;
数据比较器125,其配置为在发送模块123完成数据发送后比较刚刚发送的数据以及所述回环数据,比较结果一致时判定数据发送成功。
进一步的,由于接收模块124中接收到的数据可能是回环数据,也可能是其他主机发送的数据。因此,在一实施例中,发送模块123还配置为发送数据完成后,向接收模块124发送数据比较请求;
接收模块124当数据接收完成后,判断是否存在数据比较请求,若接收模块 124接收到数据比较请求,则说明接收模块124接收到的是回环数据,否则,接收模块124接收到的是其他主机发送的数据。具体的,当存在数据比较请求时,请求数据比较器125进行数据比较,否则,对接收到的数据进行解包处理。
进一步的,在一实施例中,接收模块还配置为:在数据比较器判定数据发送成功时删除回环数据。
进一步的,在一实施例中,发送模块还配置为:当数据比较器的比较结果为发送数据与回环数据不相符,删除回环数据,重发待发送数据。
具体的,在一实施例中,如图2所示,处理器220还包括接收缓存226,接收缓存226连接到接收模块224,接收缓存226配置为缓存接收模块224接收到的数据。接收模块224配置为当数据比较器225判定数据发送成功时,将接收缓存226中存储的数据,即本轮数据发送的回环数据,删除。发送模块223配置为当数据比较器225的比较结果为发送数据与回环数据不相符,删除接收缓存226 中存储的数据,重发待发送数据。
进一步的,在一实施例中,接收模块224还配置为当接收缓存226溢出时停止进行数据接收。
进一步的,当发送模块发送数据时,如有其他主机在向该发送模块所关联的主机发送数据,会导致数据传输错误。针对上述问题,在一实施例中,发送模块还配置为在存在待发送数据时,确定CAN总线收发器是否处于空闲状态,在CAN 总线收发器空闲时通过发送引脚向CAN总线收发器发送待发送数据。
进一步的,在一实施例中,如图3所示,处理器320还包括监听模块326,监听模块326包括计时器327和监听状态机328。
发送模块323配置为在确定存在待发送数据时,向监听模块326发送监听请求,当接收到监听模块326反馈CAN总线收发器310空闲时,进行数据发送。
监听状态机328配置为在接收到发送模块323的监听请求时,配置计时器327 为计数模式,若计时器327计数为0,则反馈发送模块223CAN总线收发器310 空闲。
计时器327包含外部引脚329,外部引脚329连接到接收引脚322上。计时器327配置为在计数模式时,通过外部引脚329对CAN总线收发器310与接收引脚322之间的通信线路进行计数。
进一步的,在一实施例中,接收模块还配置为在进行数据接收时,若达到设定时长未接收到新数据,则停止进行数据接收。
进一步的,在一实施例中,图3所示的接收模块324可以通过监听模块326 实现上述功能,具体的:
接收模块324还配置为在检测到待接收数据时,向监听模块326发送监听请求,当接收到超时反馈时,停止数据接收;
监听状态机328配置为当接收到接收模块324的监听请求时,配置计时器327 为定时模式,当计时器327反馈达到定时时长,向接收模块324发送超时反馈;
计时器327配置为在定时模式时,进行设定时长的计时,当达到设定时长时,向监听状态机328反馈。
进一步的,在一实施例中,计时器327在定时模式下进行设定时长的计时时,该特定时长为3.5T个字节的发送时长。
进一步的,在一实施例中,接收模块324还配置为:
在每次接收到数据后,重发监听请求给监听模块326。即每接收到一个字节,接收模块重新触发监听模块进行监听,如果该字节接收后,设定时长内,未收到新的字节,则说明数据传输完成,停止进行接收监听。
进一步的,如图4所示,在一实施例中,处理器420包含数据比较器425、监听模块426、发送模块423、接收模块424以及接收缓存427。
接收模块424配置为随时接收来自CAN总线收发器的数据,也就是说,接收模块424接收到的数据包含两种可能,一是其他主机发送的数据,二是本机发送模块423发送的数据对应的回环数据。
为了避免混淆数据,在本实施例中,发送模块423配置为当数据发送完成后向接收模块424发送数据比较请求。接收模块424配置为当监听模块426反馈超时,或者接收缓存427溢出时判断是否存在数据比较请求。如果存在,则说明接收模块424接收到的数据为发送模块423发送的数据对应的回环数据。此时请求数据比较器425比较刚刚发送的数据以及接收缓存427中的回环数据。如果不存在数据比较请求,则说明接收模块424接收到的数据为其他主机发送的数据,将接收缓存427中的数据进行解包处理。
进一步的,发送模块423还配置为开始发送数据时向监听模块426发送监听请求监听当前CAN总线收发器是否空闲,当CAN总线空闲时,进行数据发送,从而避免与其他主机的数据传输出现冲突。
接收模块424每接收到一个字节,重新触发监听模块426进行监听,如果该字节接收后,设定时长内,未收到新的字节,则说明数据传输完成,停止进行接收监听。
数据比较器425进行数据比较后,如果比较结果相同,则确认数据发送成功,接收模块424删除接收缓存427中的回环数据,如果比较结果不同,则确认数据发送失败,发送模块423删除接收缓存427中的回环数据,并对数据进行重发。
进一步的,如图5所示,在一实施例中,处理器520包含发送引脚521、接收引脚522、发送模块523、接收模块524、监听模块(计时器501以及监听状态机502)、接收缓存526、数据比较器527、发送存储器503以及接收存储器504。
发送存储器503用于存储发送队列,当发送队列中存在待发送数据时,发送模块523向监听模块(监听状态机502)发送监听请求,监听状态机502控制计时器501进入计数模式,判断CAN总线收发器是否处于空闲状态。具体的,计时器501的外部引脚连接到接收引脚522上。计时器501配置为外部引脚捕获输入的计数模式。监听状态机502配置为当计时器501的计数为空时判定CAN总线收发器处于空闲状态,否则判定CAN总线收发器处于忙碌状态。
当CAN总线收发器处于空闲状态时,发送模块523发送待发送数据,否则发送模块523处于等待状态,直到CAN总线收发器处于空闲。
在发送模块523发送数据完成时,发送数据比较请求到接收模块524。
接收模块524随时接收来自CAN总线收发器的数据,当接收模块524检测到待接收数据并向监听模块(监听状态机502)发送监听请求时,监听状态机502 进入接收监听状态。控制计时器501进入定时模式,开始计时。
接收模块524每接收到一个字节,重新触发监听模块(监听状态机502)进行监听,如果该字节接收后,设定时长内,未收到新的字节,则说明数据传输完成,停止进行接收监听。
接收模块524接收到的数据保存到接收缓存526中,当接收缓存526溢出或者计时器502的计时结果达到预设时长时监听状态机502结束当前的接收周期。具体的,在本实施例中,预设时长设定为3.5T(3.5个字节的接收时长)。
当接收周期结束时,接收模块524判断是否接收到来自发送模块523的数据比较请求。如果接收到数据比较请求,则请求数据比较器527对比接收缓存526 中接收到的数据与发送模块523已发送的数据是否一致,如果一致,说明数据发送成功。此时删除接收缓存526中数据。
如果数据比较器527判断对比结果不一致,则说明数据发送失败,此时发送模块重新发送已发送数据(清空接收缓存526并重新接收数据以进行下一轮数据对比)。
当接收周期结束时,接收模块524判断并不存在数据比较请求,也就是说,在上一接收周期中,发送模块523并未发送数据,接收模块524接收到的是其他主机发送的数据。此时接收模块524进入存储状态,将接收缓存526中的数据拷贝到接收存储器504中的接收队列中(并清空接收缓存526中的已保存数据)。
综上,根据本实用新型的通信装置可以实现基于CAN总线收发器的多主机通信,在利用CAN总线电平机制进行多主机通信的同时,避免使用了成本较高的CAN总线控制器,通过CAN总线收发器和带有UART处理器的配合,有效的实现多主机通信,相较于现有技术,根据本实用新型的通信装置成本低廉、运行效率高,总线带宽使用率高,具有很高的实用价值。
虽然本实用新型所公开的实施方式如上,但所述的内容只是为了便于理解本实用新型而采用的实施方式,并非用以限定本实用新型。本实用新型所述的技术方案还可有其他多种实施例。在不背离本实用新型实质的情况下,熟悉本领域的技术人员当可根据本实用新型做出各种相应的改变或变形,但这些相应的改变或变形都应属于本实用新型的权利要求的保护范围。
Claims (10)
1.一种基于CAN总线收发器的多主机通信装置,所述装置包括:
CAN总线收发器,符合CAN总线电平标准,配置为从带有通用异步收发传输器UART的处理器接收待发送数据并进行数据发送,并生成与发送数据相同的回环数据反馈给所述处理器;
带有UART的处理器,所述处理器包含用于发送数据的发送引脚以及用于接收数据的接收引脚,所述处理器通过所述发送引脚及接收引脚与所述CAN总线收发器连接,进行数据收发,其中,所述处理器还包括:
发送模块,其配置为通过所述发送引脚向所述CAN总线收发器发送待发送数据;
接收模块,其配置为通过所述接收引脚接收所述CAN总线收发器上来自其他主机的数据,以及在发送模块发送数据后接收CAN总线收发器反馈的回环数据;
数据比较器,其配置为在所述发送模块完成数据发送后比较刚刚发送的数据以及所述回环数据,比较结果一致时判定数据发送成功。
2.根据权利要求1所述的装置,其特征在于,所述接收模块还配置为:
在所述数据比较器判定数据发送成功时删除回环数据。
3.根据权利要求1所述的装置,其特征在于,所述发送模块还配置为发送数据完成后,向所述接收模块发送数据比较请求;
所述接收模块还配置为:
当数据接收完成后,判断是否存在数据比较请求,当存在数据比较请求时,请求所述数据比较器进行数据比较,否则,对接收到的数据进行解包处理。
4.根据权利要求1所述的装置,其特征在于,所述发送模块还配置为,当数据比较器的比较结果为所述发送数据与所述回环数据不相符,删除所述回环数据,重发所述待发送数据。
5.根据权利要求1所述的装置,其特征在于,所述发送模块,还配置为在存在所述待发送数据时,确定所述CAN总线收发器是否处于空闲状态,在所述CAN总线收发器空闲时通过所述发送引脚向所述CAN总线收发器发送所述待发送数据。
6.根据权利要求5所述的装置,其特征在于,所述处理器还包括监听模块,所述监听模块包括计时器及监听状态机,其中:
所述发送模块还配置为,在确定存在所述待发送数据时,向所述监听模块发送监听请求,当接收到所述监听模块反馈所述CAN总线收发器空闲时,进行数据发送;
所述监听状态机配置为在接收到发送模块的监听请求时,配置计时器为计数模式,若所述计时器计数为0,则反馈所述发送模块所述CAN总线收发器空闲;
所述计时器配置为在计数模式时,通过外部引脚对所述CAN总线收发器与所述接收引脚之间的通信线路进行计数。
7.根据权利要求1所述的装置,其特征在于,所述处理器还包括计时器,其中:
所述计时器配置为在所述接收模块进行数据接收时计时;
所述接收模块还配置为进行数据接收时,若所述计时器计时达到设定时长未接收到新数据,则停止进行数据接收。
8.根据权利要求7所述的装置,其特征在于,所述处理器还包括监听模块,所述监听模块包括所述计时器及监听状态机,其中:
所述接收模块还配置为在检测到待接收数据时,向所述监听模块发送监听请求,当接收到超时反馈时,停止数据接收;
所述监听状态机配置为当接收到接收模块的监听请求时,配置计时器为定时模式,当计时器反馈达到定时时长,向所述接收模块发送超时反馈;
所述计时器配置为在定时模式时,进行设定时长的计时,当达到设定时长时,向所述监听状态机反馈。
9.根据权利要求8所述的装置,其特征在于,所述接收模块还配置为:
在每次接收到数据后,重发监听请求给所述监听模块。
10.根据权利要求8所述的装置,其特征在于,所述设定时长为3.5T个字节的发送时长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201720389973.8U CN206993134U (zh) | 2017-04-13 | 2017-04-13 | 一种基于can总线收发器的通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201720389973.8U CN206993134U (zh) | 2017-04-13 | 2017-04-13 | 一种基于can总线收发器的通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN206993134U true CN206993134U (zh) | 2018-02-09 |
Family
ID=61391583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201720389973.8U Active CN206993134U (zh) | 2017-04-13 | 2017-04-13 | 一种基于can总线收发器的通信装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN206993134U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855347A (zh) * | 2019-11-18 | 2020-02-28 | 四川光发科技有限公司 | 一种基于can总线通信装置 |
-
2017
- 2017-04-13 CN CN201720389973.8U patent/CN206993134U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855347A (zh) * | 2019-11-18 | 2020-02-28 | 四川光发科技有限公司 | 一种基于can总线通信装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6381666B1 (en) | Method and apparatus for extending the range of the universal serial bus protocol | |
US10348616B2 (en) | Packet transmission method and apparatus, and interconnect interface | |
US20080002735A1 (en) | Device network | |
CN103746889B (zh) | 半竞争式rs-485总线多主通讯系统及其工作方法 | |
CN105354159A (zh) | 一种基于rs485分布式总线系统的控制方法 | |
CN103595768B (zh) | 一种实现虚拟化设备间配置同步的方法 | |
CN104333499A (zh) | 基于m-lvds的装置背板高速总线链路层通信协议 | |
CN102664918B (zh) | 刀片服务器控制方法及控制台 | |
CN201191856Y (zh) | Rs-485数据收发装置 | |
CN108259134B (zh) | 一种基于afp协议的数据传输方法 | |
CN206993134U (zh) | 一种基于can总线收发器的通信装置 | |
CN113904762B (zh) | 一种带环形缓冲区的全双工485总线通信系统及方法 | |
CN107659456A (zh) | 一种基于rs485通信的数据冲突传输方法 | |
CN103067222B (zh) | 一种基于hinoc的himac帧环回测试方法 | |
CN105159929A (zh) | 一种内存数据库通信方法及系统 | |
CN102099765A (zh) | 经由ieee802.11网络的无线缆usb连接性 | |
CN109151316B (zh) | 一种基于fpga的多工业相机数据调度装置 | |
US20230262123A1 (en) | Method and apparatus for direct memory access of network device | |
US9596139B1 (en) | Network system and method for detection and correction of duplex mismatch including duplex mode determination | |
CN105391643B (zh) | 基于IEEE_std 1394-2008协议链路层等时级联包流量控制电路及方法 | |
CN206259933U (zh) | 一种自带隔离的rs485通信链路 | |
CN111444124A (zh) | 一种高频自主请求的串口分流装置 | |
CN107346294A (zh) | 基于spi协议的数据流控系统及方法 | |
JPS6260050A (ja) | インタ−バス・システム | |
CN210609160U (zh) | 电力隧道监控rs485总线多主机通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |