CN104601423B - Spi总线节点设备及其通信方法以及spi总线系统 - Google Patents
Spi总线节点设备及其通信方法以及spi总线系统 Download PDFInfo
- Publication number
- CN104601423B CN104601423B CN201510063858.7A CN201510063858A CN104601423B CN 104601423 B CN104601423 B CN 104601423B CN 201510063858 A CN201510063858 A CN 201510063858A CN 104601423 B CN104601423 B CN 104601423B
- Authority
- CN
- China
- Prior art keywords
- spi bus
- node device
- bus node
- canopen
- spi
- 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
- Communication Control (AREA)
Abstract
本发明提供了一种SPI总线节点设备及其通信方法以及SPI总线系统。该SPI总线节点设备包括SPI总线接口、接收数据缓存器、发送数据缓存器、CANopen协议单元以及存储器。该CANopen协议单元连接该接收数据缓存器和该发送数据缓存器且该CANopen协议单元中CANopen协议,使该SPI总线节点设备在SPI总线协议之上的数据收发遵循CANopen协议,该存储器连接该CANopen协议单元且储存对象字典,该对象字典用于和应用层交换数据。该SPI总线节点设备和该SPI总线系统具有更高的可靠性和通用性。
Description
技术领域
本发明主要涉及SPI总线,尤其涉及一种SPI总线节点设备及其通信方法以及SPI总线系统。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)是一种高速、全双工、同步的通信总线。这种总线的优点是在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供了方便。但是这种总线的缺点也很明显,即没有指定的流控制,没有应答机制确认是否接收到数据。
为了克服SPI总线的缺点,工程上都会在SPI总线协议的基础上添加一个私有协议,这个私有协议位于SPI总线协议的上层,也就是私有协议仅仅利用SPI总线实现数据的收发,而数据的管理则由私有协议进行。
目前,私有协议大都由工程师自己定义,这样定义的协议可靠性较差,效率较低,而且不能通用。
发明内容
本发明要解决的技术问题是提供一种SPI总线节点设备以及SPI总线系统,其具有更高的可靠性和通用性。
为解决上述技术问题,本发明提供了一种SPI总线节点设备,包括SPI总线接口、接收数据缓存器、发送数据缓存器、CANopen协议单元以及存储器,该CANopen协议单元连接该接收数据缓存器和该发送数据缓存器且该CANopen协议单元中配置CANopen协议,使该SPI总线节点设备在SPI总线协议上层的数据收发遵循CANopen协议,该存储器连接该CANopen协议单元且储存对象字典,该对象字典用于和应用层交换数据。
可选地,该对象字典的各条目为该SPI总线节点设备的各功能的映射。
可选地,该SPI总线节点设备可以配置为主设备。
可选地,该SPI总线节点设备可以配置为从设备。
可选地,其特征在于,该SPI总线节点设备具有节点识别号。
可选地,该SPI总线节点设备传输的数据包遵循CANOpen协议的规定。
本发明还提出一种SPI总线系统,包括多个SPI总线节点设备,每一SPI总线节点设备包括SPI总线接口、接收数据缓存器以及发送数据缓存器,其特征在于,该SPI总线节点设备还包括CANopen协议单元和存储器,该CANopen协议单元连接该接收数据缓存器和该发送数据缓存器且该CANopen协议单元中配置CANopen协议,使该SPI总线节点设备在SPI总线协议上层的数据收发遵循CANopen协议,该存储器连接该CANopen协议单元且储存对象字典,该对象字典用于和应用层交换数据。
可选地,该多个SPI总线节点设备包括一个主设备和至少一个从设备。
可选地,该对象字典的各条目为该SPI总线节点设备的各功能的映射。
可选地,每个SPI总线节点设备具有节点识别号,且各SPI总线节点设备的节点识别号不同。
可选地,各SPI总线节点设备之间传输的数据包遵循CANOpen协议的规定。
本发明还提供一种SPI总线节点设备的通信方法,该方法包括以下步骤:在SPI总线节点设备设置CANopen协议单元,CANopen协议单元连接SPI总线节点设备的接收数据缓存器和发送数据缓存器,且CANopen协议单元中配置CANopen协议;在SPI总线节点设备的存储器中储存对象字典,该存储器连接CANopen协议单元;使用CANopen协议单元使得在SPI总线协议上层的数据收发遵循CANopen协议;以及使用该对象字典和应用层交换数据。
与现有技术相比,本发明通过在SPI总线节点设备中配置CANopen协议单元和储存对象字典的存储器,使得各SPI总线节点设备能够在SPI总线协议上运行CANopen协议,从而模拟成CAN设备。由于CANOpen通信协议是成熟、稳定和高效的协议,将SPI总线节点设备模拟成CAN设备,提高了SPI总线节点设备之间通信的可靠性,并且克服了私有协议缺乏通用性的问题。
附图说明
图1是本发明第一实施例的SPI总线系统结构图。
图2是本发明第二实施例的SPI总线系统结构图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
第一实施例
图1是本发明第一实施例的SPI总线系统结构图。参考图1所示,本实施例的SPI总线系统结构100包括SPI总线节点设备110和120,二者间通过SPI总线130连接。SPI总线节点设备110是主设备,SPI总线节点设备120是从设备。SPI总线130典型地包括4根线,它们是MOSI(数据输入)线、MISO(数据输出)线、SCLK(时钟)线、SS(片选)线。MOSI是用于主设备110的数据输出,从设备120的数据输入。MISO用于主设备110的数据输入,从设备120的数据输出。SCLK是时钟信号,由主设备110产生。SS用于发送从设备120的使能信号,由主设备110控制。
SPI总线节点设备110包括SPI总线接口111、接收数据缓存器112以及发送数据缓存器113这些SPI总线节点设备的基本配置。SPI总线接口111连接SPI总线130,因此SPI总线接口111对应的配备4个针脚。SPI总线接口111可以发送和接收数据,发送时钟信号和从设备使能信号。接收数据缓存器112连接SPI总线接口111,负责接收数据的缓存。发送数据缓存器113也连接SPI总线接口111,负责发送数据的缓存。
在本实施例中,SPI总线节点设备110还包括CANopen协议单元114和存储器115。CANopen协议单元114连接接收数据缓存器112和发送数据缓存器113。CANopen协议单元114中配置CANopen协议,使SPI总线节点设备110数据收发遵循CANopen协议。CANopen协议是一种架构在控制局域网络(Controller Area Network,CAN)上的高层通讯协议,具有成熟、稳定和高效的特点。在此,CANopen协议是运行在SPI总线协议的上层,用来弥补SPI总线协议没有指定的流控制,没有应答机制确认是否接收到数据的缺点。
本实施例中SPI总线协议和CANopen协议组合的特点是,不用加装CAN通信模块,通过SPI总线协议模拟实现CANOpen协议的各种功能。为此,根据CANOpen协议,将各SPI总线节点设备提供的功能用对象字典的方式表述出来。
具体实施时,在连接CANopen协议单元114的存储器115中储存CANopen协议的对象字典。对象字典的各条目为SPI总线节点设备110的各功能的映射。举例来说,如果当前SPI总线节点设备提供读取温度值的功能,可以将这一功能映射成对象字典中的一个条目。
在本实施例中,可以使用指向条目的索引来查找对象字典中的条目。索引之下还可以设置子索引。
在此,对象字典存储区115可以是存储对象字典的专用存储器,也可以是具有用于存储对象字典的存储区的通用存储器。
类似地,SPI总线节点设备120包括SPI总线接口121、接收数据缓存器122以及发送数据缓存器123这些SPI总线节点设备的基本配置,以及用于运行CANopen协议的CANopen协议单元124和存储器125。
SPI总线节点设备110和SPI总线节点设备120之间通信时是将SPI总线节点设备110、120看作CAN设备。进一步,将SPI主设备作为CAN链路的主节点,而将SPI从设备作为从节点。通信时是通过SPI总线协议发送CAN通信的数据,例如SDO、PDO等。具体地说,在下层是按照SPI总线协议,而在上层是按照CANopen协议。
根据CANopen协议,还需对每个SPI总线节点设备110、120分配节点识别号(NodeId)。各个SPI总线节点设备110、120的节点识别号不同。
下面描述示例性的通信过程。
当SPI主设备110要访问任何一个SPI从设备时,需要片选相应的从设备。例如,当SPI主设备要访问SPI从设备120时,需要首先拉低SS引脚上的电平,然后才能开始数据传输。
两个SPI总线节点设备110、120之间以SDO方式进行数据通讯的过程如下:
假设SPI总线节点设备110(假设其节点识别号为0x02)要获取SPI总线节点设备120(假设其节点识别号为0x03)的温度值,而SPI总线节点设备120的温度值放在其对象字典中的索引0x2000的子索引0x01中,而且SPI总线节点设备120的温度值用一个8位(bit)的有符号数表示,则SPI总线节点设备110需要发送的命令数据的格式如下表1:
表1
表1中COB-ID是通信对象识别号(Communication Object Identifier),是由功能码Function Code)和节点识别号组成。在此,功能码是0x600,SPI总线节点设备120的节点识别号0x03。
表1最后的Reserved是保留字节。
SPI总线节点设备120在接收到这个命令后需要发送下表2的响应数据给SPI总线节点设备110:
表2
表2中COB-ID是由功能码0x580和SPI总线节点设备120的节点识别号0x03组成。表2最后的Reserved是保留字节。
至此,SPI总线节点设备110获取SPI总线节点设备120的温度值完成。
另外,两个SPI总线节点设备110、120之间以PDO的方式进行数据通讯的过程如下:
假设SPI总线节点设备110(假设其节点识别号仍为0x02)作为PDO通信的消费者,SPI总线节点设备120作为PDO通信的生产者。当SPI总线节点设备120发生温度过高事件时,SPI总线节点设备120向SPI总线节点设备110发送PDO消息,当SPI总线节点设备110接收到SPI总线节点设备110发送过来的数据后,则对SPI总线节点设备120温度过高事件作出相应的处理。
假设SPI总线节点设备110温度过高事件使用的PDO为SPI总线节点设备120的第一个PDO,且以0x01表示温度过高事件,则SPI总线节点设备120需要发送的数据如下表3:
表3
表2中COB-ID是由功能码0x180和SPI总线节点设备110的节点识别号0x02组成。表2最后的Reserved是保留字节。
SPI总线节点设备110在接收到这条消息后,会对SPI总线节点设备120温度过高事件进行处理。但是根据CANOpen协议的规定,SPI总线节点设备110不会发送响应消息给SPI总线节点设备120。
第二实施例
图2是本发明第二实施例的SPI总线系统结构图。参考图2所示,本实施例的SPI总线系统结构200包括SPI总线节点设备210、220和230,三者间通过SPI总线240连接。SPI总线节点设备210是主设备,SPI总线节点设备220和230是从设备。SPI总线130典型地包括4根线,它们是MOSI(数据输入)线、MISO(数据输出)线、SCLK(时钟)线、SS(片选)线。SS线对不同从设备有不同。对SPI总线节点设备220,其使能信号SS线的编号是SS_0。对SPI总线节点设备230,其使能信号SS线的编号是SS_1。
根据CANopen协议,对每个SPI总线节点设备210、220和230分配节点识别号(NodeId)。各个SPI总线节点设备210、220和230的节点识别号不同。
当SPI主设备210要访问任何一个SPI从设备220和230时,需要片选相应的从设备。例如,当SPI主设备210要访问SPI从设备220时,需要首先拉低SS_0引脚上的电平,然后才能开始数据传输。当SPI主设备210要访问SPI从设备230时,需要首先拉低SS_1引脚上的电平,然后才能开始数据传输。
本实施例的其它细节,例如各SPI总线节点设备210的结构与第一实施例相似,在此不再展开赘述。
从另一角度看,本发明的实施例提供一种SPI总线节点设备的通信方法,该方法包括以下步骤:在SPI总线节点设备设置CANopen协议单元,CANopen协议单元连接SPI总线节点设备的接收数据缓存器和发送数据缓存器,且CANopen协议单元中配置CANopen协议;在SPI总线节点设备的存储器中储存对象字典,该存储器连接CANopen协议单元;使用CANopen协议单元使得在SPI总线协议上层的数据收发遵循CANopen协议;以及使用该对象字典和应用层交换数据。
本发明的上述实施例通过在SPI总线节点设备中配置CANopen协议单元和储存对象字典的存储器,使得各SPI总线节点设备能够在SPI总线协议上运行CANopen协议,从而模拟成CAN设备。由于CANOpen通信协议是成熟、稳定和高效的协议,将SPI总线节点设备模拟成CAN设备,提高了SPI总线节点设备之间通信的可靠性,并且解决了私有协议缺乏通用性的问题。
虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (13)
1.一种SPI总线节点设备,包括SPI总线接口、接收数据缓存器以及发送数据缓存器,其特征在于,该SPI总线节点设备还包括CANopen协议单元和存储器,该CANopen协议单元连接该接收数据缓存器和该发送数据缓存器且该CANopen协议单元中配置CANopen协议,使该SPI总线节点设备在SPI总线协议上层的数据收发遵循CANopen协议,该存储器连接该CANopen协议单元且储存对象字典,该对象字典用于和应用层交换数据。
2.如权利要求1所述的SPI总线节点设备,其特征在于,该对象字典的各条目为该SPI总线节点设备的各功能的映射。
3.如权利要求1所述的SPI总线节点设备,其特征在于,该SPI总线节点设备配置为主设备。
4.如权利要求1所述的SPI总线节点设备,其特征在于,该SPI总线节点设备配置为从设备。
5.如权利要求1所述的SPI总线节点设备,其特征在于,该SPI总线节点设备具有节点识别号。
6.如权利要求1所述的SPI总线节点设备,其特征在于,该SPI总线节点设备传输的数据遵循CANOpen协议的规定。
7.一种SPI总线系统,包括多个SPI总线节点设备,每一SPI总线节点设备包括SPI总线接口、接收数据缓存器以及发送数据缓存器,其特征在于,该SPI总线节点设备还包括CANopen协议单元和存储器,该CANopen协议单元连接该接收数据缓存器和该发送数据缓存器且该CANopen协议单元中配置CANopen协议,使该SPI总线节点设备在SPI总线协议上层的数据收发遵循CANopen协议,该存储器连接该CANopen协议单元且储存对象字典,该对象字典用于和应用层交换数据。
8.根据权利要求7所述的SPI总线系统,其特征在于,该多个SPI总线节点设备包括一个主设备和至少一个从设备。
9.根据权利要求7所述的SPI总线系统,其特征在于,该对象字典的各条目为该SPI总线节点设备的各功能的映射。
10.根据权利要求7所述的SPI总线系统,其特征在于,每个SPI总线节点设备具有节点识别号,且各SPI总线节点设备的节点识别号不同。
11.根据权利要求7所述的SPI总线系统,其特征在于,各SPI总线节点设备之间传输的数据遵循CANOpen协议的规定。
12.一种SPI总线节点设备的通信方法,包括以下步骤:
在该SPI总线节点设备设置CANopen协议单元,该CANopen协议单元连接该SPI总线节点设备的接收数据缓存器和发送数据缓存器且该CANopen协议单元中配置CANopen协议;
在该SPI总线节点设备的存储器中储存对象字典,该存储器连接该CANopen协议单元;
使用该CANopen协议单元使得在SPI总线协议上层的数据收发遵循CANopen协议;以及
使用该对象字典和应用层交换数据。
13.如权利要求12所述的方法,其特征在于,该对象字典的各条目为该SPI总线节点设备的各功能的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510063858.7A CN104601423B (zh) | 2015-02-06 | 2015-02-06 | Spi总线节点设备及其通信方法以及spi总线系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510063858.7A CN104601423B (zh) | 2015-02-06 | 2015-02-06 | Spi总线节点设备及其通信方法以及spi总线系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104601423A CN104601423A (zh) | 2015-05-06 |
CN104601423B true CN104601423B (zh) | 2018-09-14 |
Family
ID=53126946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510063858.7A Active CN104601423B (zh) | 2015-02-06 | 2015-02-06 | Spi总线节点设备及其通信方法以及spi总线系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104601423B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527708B (zh) * | 2020-12-07 | 2023-03-31 | 上海智能制造功能平台有限公司 | 一种通用伺服驱动总线接口的实现装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488593A (zh) * | 2012-06-13 | 2014-01-01 | 上海联影医疗科技有限公司 | 一种数据处理装置和数据处理系统 |
CN103942080A (zh) * | 2014-05-16 | 2014-07-23 | 四川九成信息技术有限公司 | 电子设备信息传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140049B2 (en) * | 2012-02-24 | 2018-11-27 | Missing Link Electronics, Inc. | Partitioning systems operating in multiple domains |
-
2015
- 2015-02-06 CN CN201510063858.7A patent/CN104601423B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488593A (zh) * | 2012-06-13 | 2014-01-01 | 上海联影医疗科技有限公司 | 一种数据处理装置和数据处理系统 |
CN103942080A (zh) * | 2014-05-16 | 2014-07-23 | 四川九成信息技术有限公司 | 电子设备信息传输方法 |
Non-Patent Citations (2)
Title |
---|
"CANopen协议分析与实现";王俊波等;《微计算机信息》;20060804;第22卷(第17期);第202-203页 * |
"高可靠性SPI通信机制及其应用探讨";乔赞丽;《信息通信》;20131204(第8期);第104-106页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104601423A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103353861B (zh) | 实现分布式i/o资源池化的方法及装置 | |
CN103546299B (zh) | 使用串行器/解串器通道的50Gb/s以太网 | |
CN103248526B (zh) | 实现带外监控管理的通信设备、方法 | |
CN103338217B (zh) | 基于低等待时间接口的连网及用于该连网的处理装置 | |
CN102273179B (zh) | 一种终端批量升级方法及装置 | |
CN105051706A (zh) | 用于具有pcie协议栈的低功率phy的操作的设备、方法和系统 | |
CN104811357B (zh) | 一种物联网系统 | |
EP3029884A1 (en) | Commissioning method, master control board, and service board | |
CN107851078B (zh) | 一种PCIe设备的聚合友好型地址分配的方法和系统 | |
CN107819659A (zh) | 一种基于spi的智能级联通信网络 | |
CN105446930A (zh) | 一种单选择端spi主从式多机双向通信方法 | |
CN103701680A (zh) | 一种跨PCIe域报文传输的方法、设备及系统 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
CN105138485A (zh) | 一种串行总线地址管理装置 | |
CN207853917U (zh) | 一种从机、通讯扩展卡及组网系统 | |
CN104601423B (zh) | Spi总线节点设备及其通信方法以及spi总线系统 | |
CN107181702B (zh) | 一种实现RapidIO和以太网融合交换的装置 | |
CN107547453A (zh) | 一种实现交换机端口聚合的方法及终端 | |
CN106657377B (zh) | 一种wia-pa/全互联制造网络信息服务适配器及实现方法 | |
CN108770063A (zh) | 一种集成网关及处理多节点通信碰撞的方法 | |
CN104516850A (zh) | 模块化产品的连接方法及使用该方法的模块化产品与用于该方法的家庭服务总线 | |
CN209001989U (zh) | 一种应用于rfid通信的多协议工业数据总线网关系统 | |
CN116401065A (zh) | 一种服务器、异构设备及其数据处理装置 | |
CN102841875A (zh) | 一种具有智能总线接口的主机及安防系统 | |
CN203027289U (zh) | 一种实现计算机、上位机和下位机之间串口通信的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191209 Address after: 430206 22 / F, building C3, future technology building, No. 999, Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province Patentee after: Wuhan Zhongke Medical Technology Industrial Technology Research Institute Co., Ltd Address before: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Patentee before: Shanghai United Imaging Healthcare Co., Ltd. |