一种数字传感器阵列的连接和数据读出方法与流程

文档序号:16443838发布日期:2018-12-28 21:45阅读:926来源:国知局
一种数字传感器阵列的连接和数据读出方法与流程

本发明涉及一类数字传感器。

背景技术

传感器是现代社会人们获取自然和生产领域中信息的主要途径与手段。在现代工业生产尤其是自动化生产过程中,需要用各种传感器来获取生产过程中的各个参数信息;在物联网中,要用到各种传感器来测量或者感知周围环境中的各种信息。传感器一般分为模拟传感器和数字传感器。数字传感器是将传统的模拟传感器经过a/d转换模块,使之输出信号为数字量的传感器,数字式传感器的优点是应用电路结构简单、直接以数字量输出便于直接输入计算机。现在较多的数字传感器是以时钟线加数据线的方式跟外界进行通信,比如常见的数字传感器具有i2c接口、spi接口等,然而在一些需要大量使用此类数字传感器的场合,若采用轮询方式获取此类传感器的数据,难以满足测量系统的实时性指标,若采用并行方式获取此类传感器的数据,就会占用计算机或者微控制较多的管脚资源。这类数字传感器不利于传感器的大规模阵列式使用。



技术实现要素:

本发明的目的是克服现有时钟线加数据线方式输出数据的数字传感器难以用于大规模阵列使用的缺点,提出一种此类数字传感器阵列的连接方法和数据读出方法。本发明可以使微控制器能够以较少的引脚读取到阵列中所有的传感器数据,不但加快了数字传感器的数据读出速度,而且为微控制器节省了引脚资源,对传感器大规模阵列方式适用具有重要的应用价值。

应用本发明的数字传感器具时钟线和数据输入/输出线,数据输入/输出线可以是一根数据线,也可以是多根数据线组成的总线。多个数字传感器可以设置为在相同的时钟时序下有相同的数据输入/输出格式和数据输入/输出时序,包括但不仅限于具有i2c接口、spi接口的数字传感器。应用本发明的微控制器包括但并不仅限于单片机、arm、fpga、cpld、计算机等,凡是能够具有读写io引脚的芯片、模块或者部件都包含在此类微控制器中。应用本发明的数字传感器和微控制器不限于个体尺寸大小,传感器阵列连接也可以集成在一个芯片中,或者传感器阵列和微控制器都集成在一个芯片中。

本发明传感器阵列的布置和连接方法如下:

多个传感器根据实际需要采用阵列分布,比如多个传感器布置为矩形阵列、环形阵列等。阵列的行数和列数可以不相等,阵列中每一行或者每一列布置的传感器的数量也可以不相等。传感器阵列有m条时钟线scli,i=1~m,有n组数据线sdaj,j=1~n,m和n为任意自然数。阵列的第j组的数据线sdaj可以是一根数据线,也可以是多根数据线组成的总线,sdaj数据线的根数与所连接的传感器的输入/输出线的根数相同。阵列中所有数字传感器的时钟线scl均与阵列的时钟线scli相连,阵列中每个传感器的时钟线scl都连接且仅在一处连接到阵列的时钟线scli上;阵列中所有数字传感器的数据输入/输出线sda均与阵列的数据线sdaj相连,阵列中每一个传感器的数据输入/输出线sda都连接且仅在一处连接到阵列的数据线sdaj上。

微控制器分配m根io口线直接连接到传感器阵列的时钟线scli,i=1~m,或者经过译码器或驱动器连接到传感器阵列的时钟线scli;微控制器分配n条或者n的整数倍条io口线直接连接到传感阵列的数据线sdaj,j=1~n,或者经过编/译码器或驱动器连接到传感阵列的数据线sdaj。

本发明所述的数字传感器阵列中的所有传感器可以设置为同一工作方式。在该工作方式下,数字传感器阵列中所有数字传感器在相同的时钟时序下数据输入/输出格式和数据输入/输出顺序相同。所述的阵列的时钟线给出规定的时序信号,必要时驱动阵列数据线给出规定的数据,就可以在阵列的数据线上得到传感器阵列中传感器的输出数据。

本发明所述的数字传感器阵列的数据读出方法如下:

(1)首先通过单一芯片读写方式或统一阵列的读写方式,将数字传感器阵列中所有传感器设置为同一工作方式。在该工作方式下,传感器阵列中所有的传感器在统一时钟时序的作用下,将数据按照统一的格式和输出顺序输出到矩阵的数据线。然后微控制器用输出口线来分时驱动对应相连的阵列的时钟线scli,i=1~m,生成统一时钟时序,m为时钟线的数量。必要时微控制器也可以按照传感器手册的要求驱动阵列的数据线sdaj,j=1~n;传感器阵列中的传感器在该统一时钟的作用下将各自的数据按照统一的格式和输出顺序输出到对应连接的阵列的数据线sdaj上;微控制器按照对应的时序及时读取阵列数据线sdaj上的数据,便可以得到阵列中所有传感器的数据。具体步骤为:

(2)通过单一芯片读写方式或以统一读写方式,将阵列中所有传感器设置为同一的工作方式,在此工作方式下,阵列中所有的传感器在该统一时钟时序的作用下能将数据按照统一的格式和输出顺序输出到阵列的数据线。

(3)微控制器用输出口线p11来驱动阵列时钟线scl1,使得阵列时钟线scl1输出规定的时序信号,传感器阵列中与阵列时钟线scl1相连的所有的传感器在阵列时钟线scl1的作用下,将各自的数据输出到阵列的数据线sdaj上,j=1~n。微控制器通过与阵列数据线sdaj连接的引脚读入与阵列时钟线scl1相连的所有的传感器数据,j=1~n。

(4)微控制器用输出口线p12来驱动阵列时钟线scl2,使得阵列时钟线scl2输出规定的时序信号,传感器阵列中与阵列时钟线scl2相连的所有的传感器在阵列时钟线scl2的作用下将各自的数据输出到阵列的数线sdaj上,j=1~n。微控制器通过与阵列数据线sdaj连接的引脚读入与阵列时钟线scl2相连的所有的传感器数据,j=1~n;若传感器阵列只有一条时钟线,即m=1,则省却此步骤,m为时钟线的数量。

(5)微控制器依次用输出口线p1k来驱动阵列时钟线sclk,k=3~m,使得阵列时钟线sclk输出规定的时序信号,传感器阵列中与阵列时钟线sclk相连的所有的传感器在阵列时钟线sclk的作用下,将各自的数据输出到阵列的数据线sdaj上,j=1~n。微控制器通过与阵列数据线sdaj连接的引脚读入与sclk相连的所有的传感器数据,j=1~n。若传感器阵列只有一条或者两条时钟线,即m=1或者m=2,则省却此步骤,m为时钟线的数量。

(6)如此,微控制器获得所有传感器的输出数据。

附图说明

图1为传感器阵列连接示意图。

具体实施方式

以下结合附图和具体实施方式进一步说明本发明。

以下以数字传感器mag3110为例,给出12个mag3110阵列连接和数据读出方法。mag3110是一种具有i2c总线的传感器,所有传感器可以阵列统一读写方式设置为相同的工作模式,如连续测量工作模式。在此工作模式下,所有传感器在给定的时序时钟信号下数据输出格式、输出时序相同。实现传感器读写的微控制器,可以为单片机、arm、ffpga、cpld等,本实施例以stm32f407为例说明。

传感器的阵列布置和连接方法:

12个传感器mag3110分成3行×4列呈矩形阵列分布,传感器分布如图1所示。阵列的行为时钟线clk0、clk1、clk2,传感器阵列中每一行所有传感器mag3110的时钟线均与矩形阵列该行的时钟线相连,即第一行上所有传感器mag3110的时钟线scl10、scl11、scl12、scl13都连接到矩形阵列该行的时钟线clk0,第二行上所有传感器mag3110的时钟线scl20、scl21、scl22、scl23都连接到矩形阵列该行的时钟线clk1;第三行上所有传感器mag3110的时钟线scl30、scl31、scl32、scl33都连接到矩形阵列该行的时钟线clk2。传感器阵列的所有列为数据线dio0、dio1、dio2、dio3,传感器阵列中每一列上所有传感器mag3110的数字输入/输出线均与矩形阵列对应列的数据线相连,即第一列上所有传感器mag3110的数据输入/输出线sda10、sda20、sda30都连接到矩形阵列的数据线dio0,第二列上所有传感器mag3110的数据线输入/输出线sda11、sda21、sda31都连接到矩形阵列的数据线dio1,第三列上所有传感器mag3110的数据输入/输出线sda12、sda22、sda32都连接到矩形阵列的数据线dio2,第四列上所有传感器mag3110的数据输入/输出线sda13、sda23、sda33都连接到矩形阵列的数据线dio3。

选用stm32f407的io引脚pa0、pa1、pa2为时钟线,分别对应连接到阵列的时钟线clk0、clk1、clk2;选用stm32f407的io引脚pb0、pb1、pb2、pb3为数据输入/输出线,分别对应连接到阵列的数据线dio0、dio1、dio2、dio3。

传感器阵列数据读出方法步骤:

(1)stm32f407分别以pa0、pa1、pa2驱动传感器阵列的时钟线clk0、clk1、clk2,以pb0、pb1、pb2、pb3驱动传感器阵列的数据线dio0、dio1、dio2、dio3,按照i2c总线规范和mag3110数据手册的要求,先向mag3110的内部寄存器地址11h写入0xa0,再向mag3110的内部寄存器地址10h写入0x19,将阵列中所有传感器设置为连续测量工作模式。

(2)stm32f407以pa0驱动传感器阵列的时钟线clk0,以pb0、pb1、pb2、pb3为数据输入/输出线,按照i2c总线规范和mag3110数据手册的要求,读出第一行所有传感器的数据。

(3)stm32f407以pa1驱动传感器阵列的时钟线clk1,以pb0、pb1、pb2、pb3为数据输入/输出线,按照i2c总线规范和mag3110数据手册的要求,读出将第二行所有传感器的数据。

(4)stm32f407以pa2驱动传感器阵列的时钟线clk2,以pb0、pb1、pb2、pb3为数据输入/输出线,按照i2c总线规范和mag3110数据手册的要求,读出将第三行的所有传感器的数据。

(5)从而stm32f407获得所有传感器的输出数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1