首页> 中国专利> 基于IIC协议的Linux操作系统与裸机通信的方法

基于IIC协议的Linux操作系统与裸机通信的方法

摘要

本发明提出了一种基于IIC协议的Linux操作系统与裸机通信的方法,包括:对采用Linux系统的多个硬件和裸机同时挂载在总线上,包括:配置一个主机设备和多个从机设备,每个从机设备与至少一个外接设备相连,其中,所述主机设备采用Linux系统,从机设备为裸机,所述主机设备、所述从机设备和所述外接设备之间采用IIC协议进行通信;步骤S2,在建立上述通信连接后,所述主机设备对至少一个从机设备进行数据读取和/或写入操作。本发明通过采用IIC协议可以实现Linux操作系统主机设备和从机设备之间的高效有效传输。

著录项

  • 公开/公告号CN106126452A

    专利类型发明专利

  • 公开/公告日2016-11-16

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN201610437689.3

  • 申请日2016-06-17

  • 分类号G06F13/362;

  • 代理机构北京中企鸿阳知识产权代理事务所(普通合伙);

  • 代理人刘葛

  • 地址 100871 北京市海淀区颐和园路5号

  • 入库时间 2023-06-19 00:53:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-02

    未缴年费专利权终止 IPC(主分类):G06F13/362 授权公告日:20190101 终止日期:20190617 申请日:20160617

    专利权的终止

  • 2019-01-01

    授权

    授权

  • 2016-12-14

    实质审查的生效 IPC(主分类):G06F13/362 申请日:20160617

    实质审查的生效

  • 2016-11-16

    公开

    公开

说明书

技术领域

本发明涉及数字通信技术领域,特别涉及一种基于IIC协议的Linux操作系统与裸机通信的方法。

背景技术

在机器人的开发过程中,都应用的到相应的硬件平台和对应的操作系统。其中,Linux系统是一套免费使用和自由传播的类Unix操作系统。同时,它也是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。该操作系统支持多用户,其特点主要体现在各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务是现在电脑最主要的一个特点,Linux系统可以使多个程序同时并独立地运行。Linux系统能运行主要的UNIX工具软件、应用程序和网络协议,支持32位和64位硬件系统,并继承了Unix以网络为核心的设计思想,是一个性能稳定的网络操作系统。Linux可以在多种硬件平台上运行,如具有x86、680x0、SPARC、Alpha等处理器的平台。除了上述优点,Linux还是一种嵌入式操作系统,目前已经能够完全支持Intel64位芯片架构。此外,Linux也支持多处理器技术,多个处理器同时工作,能够使系统性能大大提高。

但是,在上述操作平台和系统选定的情况下,要实现数据在Linux操作系统的主机和裸机单片机从机之间的高速有效传输,则需要采用特定的通信协议。

发明内容

本发明的目的旨在至少解决所述技术缺陷之一。

为此,本发明的目的在于提出一种基于IIC协议的Linux操作系统与裸机通信的方法,可以通过采用IIC协议来实现Linux操作系统的主机设备和从机设备之间的高效有效传输。

为了实现上述目的,本发明的实施例提供一种基于IIC协议的Linux操作系统与裸机通信的方法,包括如下步骤:

步骤S1,对采用Linux系统的多个硬件和裸机同时挂载在总线上,包括:配置一个主机设备和多个从机设备,每个从机设备与至少一个外接设备相连,其中,所述主机设备采用Linux系统,从机设备为裸机,所述主机设备、所述从机设备和所述外接设备之间采用IIC协议进行通信;

步骤S2,在建立上述通信连接后,所述主机设备对至少一个从机设备进行数据读取和/或写入操作,包括:

所述主机设备进行读操作时,向所述从机设备发送要读取数据的外接设备的地址信息,所述主机设备在接收到从机设备的确认应答后,进一步向所述从机设备写入操作数据长度并完成从机设备发送数据准备,当从机设备接收到主机设备的读操作指令后,向所述主机设备发送该外接设备的相关数据信息,完成主机设备对外接设备的读操作;

所述主机设备进行写操作时,向所述从机设备发送要写入数据的外接设备的地址信息,所述主机设备在接收到从机设备的确认应答后,将写入数据发送至所述从机设备,由所述从机设备将所述写入数据发送至相应的外接设备,完成主机设备对外接设备的写操作,其中,所述写入数据包括对所述外接设备的控制命令。

进一步,所述主机设备与每个从机设备采用硬件IIC通信,每个所述外接设备与相连的从机设备采用虚拟IIC通信。

进一步,在进行硬件IIC通信时,所述主机设备对至少一个从机设备进行数据的读取和/或写入;在进行虚拟IIC通信时,所述从机设备接收相连的外接设备的数据并进行处理,并将处理后的数据通过硬件IIC通信发送至所述主机设备。

进一步,所述主机设备向所述从机设备写入要读取数据的外接设备,包括:所述主机设备向所述从机设备发送读操作的硬件地址和虚拟地址,并由所述从机设备进行匹配以确定需要进行操作的外接设备。

进一步,所述主机设备向所述从机设备发送硬件地址、虚拟地址和写操作指令,由所述从机设备进行虚拟地址匹配并向所述主机设备应答,以由所述从机设备完成发送数据准备。

进一步,所述主机设备向所述从机设备发送硬件地址、虚拟地址和读操作指令,并接收所述从机设备返回的所述外接设备的相关数据信息,当整个数据包接收完毕后,所述主机设备向所述从机设备发出应答,结束整个读操作过程。

进一步,所述主机设备向所述从机设备发送写操作的外接设备的地址信息和写操作标志位,所述从机设备对地址信息进行匹配,并在匹配完成后向速搜主机设备返回应答信息,所述主机设备在接收到该应答信息后,向所述从机设备发送写入数据。

进一步,所述主机设备设定地址与所述从机设备的地址相匹配,所述从机设备的地址依次为所述主机设备设定地址左移一位。

根据本发明实施例的基于IIC协议的Linux操作系统与裸机通信的方法,可以通过采用IIC协议来实现Linux操作系统的主机设备和从机设备之间的高效有效传输。IIC协议与其他通信协议相比,具有以下特点:

1)仅需要两条总线线路:一条串行数据线(SDA),一条串行时钟线(SCL)。

2)通过软件方式和一个唯一的地址来寻找到每一个连接到总线的设备,简单的主从关系一直存在。主机设备可以作为主机发送器或者主机接收器,实现多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁来防止数据被破坏。

3)串行的8位双向数据传输位速率在标准模式下可达100k bit/s快速模式下可达400k bit/s,超速模式下可达3.4M bit/s。其中,单向数据传输在快速模式下可以达到5Mb/s。

4)片上的滤波器可以滤去总线数据线上的毛刺,保证数据完整。

5)连接到相同总线的IIC数量只受到总线的最大电容(400pF)限制。

由于IIC通信协议具有上述优点,本发明采用该协议进行通信,可以解决Linux操作系统与裸机之间的通信问题,并且可以应用于任何设备和机器人上。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为根据本发明实施例的基于IIC协议的Linux操作系统与裸机通信的方法的流程图;

图2为根据本发明实施例的基于IIC协议的Linux操作系统与裸机通信的方法的架构图;

图3为根据本发明实施例的主机设备的读操作流程图;

图4为根据本发明实施例的主机设备的写操作流程图;

图5为根据本发明实施例的读操作的数据格式图;

图6为根据本发明实施例的写操作的数据格式图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

如图1所示,本发明实施例的基于IIC协议的Linux操作系统与裸机通信的方法,包括如下步骤:

步骤S1,对采用Linux系统的多个硬件和裸机同时挂载在总线上。

具体地,如图2所示,配置一个主机设备和多个从机设备,每个从机设备与至少一个外接设备相连。其中,主机设备采用Linux系统,从机设备为裸机,主机设备、从机设备和外接设备之间采用IIC协议进行通信。

在本发明的一个实施例中,主机设备与每个从机设备采用硬件IIC通信,在进行硬件IIC通信时,主机设备对至少一个从机设备进行数据的读取和/或写入。

每个外接设备与相连的从机设备采用虚拟IIC通信,在进行虚拟IIC通信时,从机设备接收相连的外接设备的数据并进行处理,并将处理后的数据通过硬件IIC通信发送至主机设备。

在本发明的一个实施例中,主机设备、从机设备和外接设备的通信地址均为自己设定,保证了通信的时候数据能够准确无误的传输。主机设备设定地址与从机设备的地址相匹配,从机设备的地址依次为主机设备设定地址左移一位。

下面参考图2对主机设备、从机设备和外接设备的架构进行描述。

如图2所示,主机设备分别与从机设备1、从机设备2…从机设备n进行通信,从机设备1与外接设备1、外接设备2和外接设备3进行通信。其中,从机设备1仅单向接收由外接设备1和外接设备3采集的数据,而不向外接设备1和外接设备3发送数据或控制命令。从机设备1与外接设备2双向通信,可以接收外接设备2发送的数据,也可以向其发送数据或控制命令。

从机设备2与外接设备4、外接设备5和外接设备6进行通信。其中,从机设备2仅单向接收由外接设备4和外接设备6采集的数据,而不向外接设备4和外接设备6发送数据或控制命令。从机设备2仅向外接设备6发送数据或控制命令,而不接收其发送的数据。

从机设备n与外接设备n双向通信,可以接收外接设备n发送的数据,也可以向其发送数据或控制命令。

步骤S2,在建立上述通信连接后,主机设备对至少一个从机设备进行数据读取和/或写入操作,包括:从机设备通过虚拟IIC与外接设备进行通信,将外接设备传输来的数据打包发送给主机设备,或者从主机接收控制命令传输给相应的外接设备。下面分别对读写操作进行详细说明。

(1)读操作

主机设备进行读操作时,向从机设备发送要读取数据的外接设备的地址信息,主机设备在接收到从机设备的确认应答后,进一步向从机设备写入操作数据长度并完成从机设备发送数据准备,当从机设备接收到主机设备的读操作指令后,向主机设备发送该外接设备的相关数据信息,完成主机设备对外接设备的读操作。

图3为根据本发明实施例的主机设备的读操作流程图。

1)初始化

2)主机设备进行写操作确认要操作的外接设备

主机设备向从机设备发送读操作的硬件地址和虚拟地址,并由从机设备进行地址匹配后会给出相应的应答,确定需要进行操作的外接设备。

3)主机设备进行写操作确认要操作的数据长度

主机设备向从机设备发送硬件地址、虚拟地址和需要操作的数据长度,从机设备根据的数据的长度访问相应的数据寄存器,将数据长度写入,并对主机设备应答,从而完成主机设备对从机设备的数据长度写入。

4)主机设备进行写操作确认从机设备为发送数据做准备

主机设备向从机设备发送硬件地址、虚拟地址和写操作指令,由从机设备进行虚拟地址匹配并向主机设备应答,以由从机设备完成发送数据准备。

5)主机设备进行读操作,从机设备发送数据

主机设备向从机设备发送硬件地址、虚拟地址和读操作指令,从机设备接收上述信息并进行应答后,开始向主机设备发送该从机设备所接收到的相应外接设备的相关数据信息。其中,从机设备每次向主机设备发送一个字节,直到整个数据包发送完毕。

参考图2,以从机设备1和从机设备2为例,从机设备1和从机设备2将从外接设备接收到的数据打包,并通过硬件IIC传输给主机设备。其中,2个从机设备的数据包长度不一样。

6)主机接收整个数据

主机设备接收来自从机设备的数据并应答,直到整个数据包接收完毕,直到整个数据包发送完毕,主机设备产生非应答信号并结束整个读取过程。图5为根据本发明实施例的读操作数据格式图。

7)结束

(2)写操作

主机设备进行写操作时,向从机设备发送要写入数据的外接设备的地址信息,主机设备在接收到从机设备的确认应答后,将写入数据发送至从机设备,由从机设备将写入数据发送至相应的外接设备,完成主机设备对外接设备的写操作,其中,写入数据包括对外接设备的控制命令。

图4为根据本发明实施例的主机设备的写操作流程图。

1)初始化

2)主机设备向从机设备发送要操作的外接设备的地址信息和写操作标志位

3)从机设备进行地址匹配并应答

从机设备对地址信息进行匹配,并在匹配完成后向速搜主机设备返回应答信息。

4)主机设备向从机设备发送数据

其中,主机设备向从机设备每次发送一个字节,直到从机接收到整个数据包。图6为根据本发明实施例的写操作数据格式图。

5)从机设备接收数据并应答

从机设备将数据存储到数据缓冲寄存器并应答,直到整个数据包接收完毕,从机设备再次应答然后结束整个写操作过程。

参考图2,以从机设备1和从机设备2为例,主机分别发送控制命令给从机设备1和从机设备2,从机设备1将该控制命令发送给外接设备2,从机设备2将该控制命令发送给外接设备5,从而实现主机对外接设备2和外接设备5的控制。

6)结束

由上可知,主机设备进行读操作时,外接设备采集的数据经过从机设备传输给主机设备。主机设备读取数据时,包括进行三次写操作和一次读操作。主机设备向外接设备写数据时,仅进行一次写操作。

根据本发明实施例的基于IIC协议的Linux操作系统与裸机通信的方法,可以通过采用IIC协议来实现Linux操作系统的主机设备和从机设备之间的高效有效传输。IIC协议与其他通信协议相比,具有以下特点:

1)仅需要两条总线线路:一条串行数据线(SDA),一条串行时钟线(SCL)。

2)通过软件方式和一个唯一的地址来寻找到每一个连接到总线的设备,简单的主从关系一直存在。主机设备可以作为主机发送器或者主机接收器,实现多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁来防止数据被破坏。

3)串行的8位双向数据传输位速率在标准模式下可达100k bit/s快速模式下可达400k bit/s,超速模式下可达3.4M bit/s。其中,单向数据传输在快速模式下可以达到5Mb/s。

4)片上的滤波器可以滤去总线数据线上的毛刺,保证数据完整。

5)连接到相同总线的IIC数量只受到总线的最大电容(400pF)限制。

由于IIC通信协议具有上述优点,本发明采用该协议进行通信,可以解决Linux操作系统与裸机之间的通信问题,并且可以应用于任何设备和机器人上。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号