基于Avalon总线SHT11温湿度传感器自定义IP核的开发流程

时间:2013-12-31 来源:网络

2.2 接口模块的设计

  根据SHT11的描述,确定该模块与Avalon所需要的接口信号。通过使用较少的信号来处理读写。系统通过时钟线、数据线和SHT11相连,根据时钟的时序向数据线写命令,SHT11通过数据线输出数据。设计模块的输入信号为:clk,sysclk, n_rest, data_i,data_o,wr,rd, addr。输出信号为:SCK,DATA(DATA是双向数据线)。端口信号的部分说明如下:

  moduleSHT11(

  clk,//系统时钟

  n_rest,//系统复位

  data_i,//Avalon写数据总线

  data_o,//Avalon读数据总线

  wr,//Avalon写请求

  rd,//Avalon读请求

  sysclk,//系统时钟

  addr,//Avalon地址总线

  SCK,//时钟线输出

  DATA,//数据输入输出(双向)

  );

2.3 行为模块的实现

  行为模块实现的是SHT11的功能。该部分是整个设计的核心,实现对SHT11的控制。设计时必须根据驱动控制的规范以及时序的要求来编写。设计的过程中,信号的控制较为复杂,但在时序逻辑中,这又十分重要。可以设定一系列的寄存器,作为访问硬件的通道[7?8]。

  根据其驱动规范,不同的命令实现相应的功能。传输开始时,应该发出启动信号。启动信号包括时钟线为高,数据线由高变低,并在下一个时钟线为高的时候将数据线变高。当启动信号开始后,输入相应指令(包含3位地址和5位命令),通过数据线,确定接收到ACK信号后,表示SHT11已经正确接收命令。待一定的时间后,当数据线由高拉低后开始信号的传输。系统通过确认数据线上的ACK来确定每个字节的传输。数据传输完毕,进行CRC校验。校验完毕后,ACK为高,结束传输。

  在进行设计时,采用嵌套状态机来实现驱动逻辑。根据驱动控制器的读写命令及读写时序,采取不同状态机来实现,如图2所示。输入命令之后,根据不同的读写请求,进入不同的状态机。

图2 状态机

  图2 状态机

  通过rd和wr以及地址addr控制数据线的读写。当addr=1wr,则向数据线写数据(data_i),data_i的输入格式是crc(1位)wr_data(16位)command(2位),当addr=0wr,进入状态机;当addr=2 amp;rd,从数据线读取数据data_o。

  设内部寄存器command,根据不同的命令,进入不同的状态机循环:若command为01,通过数据线向寄存器写数据;若command为10,通过数据线从寄存器读数据;若command为其他,则读取数据。当传送8位数据后,需判断双向数据线DATA的ACK信号的高低,当接收到ACK信号时,再根据相应的命令,进行数据的传输。当数据传输完毕后,需要经行CRC校验。图3是仿真时序图,实现向寄存器写数据的功能。

2.4 软件设计

  该部分可以直接在SOPC Builder 中添加设计好的IP核和Verilog HDL 语言描述的文件,并根据Avalon 总线传输规范设置好相关的信号线,如图4所示。这里要注意,使用的是从端口。完成后,将IP核添加至SOPC中,建立内嵌系统,并编译下载到FPGA 器件中。

 图3 时序仿真图

  图3 时序仿真图

图4 Avalon接口信号

  图4 Avalon接口信号

  由于在NiosII IDE 环境下可直接编写用户程序,所以可以不用编写驱动程序。在NiosII IDE 环境下,可直接调用函数IOWR (BASE,OFFSET,DATA) 和IORD(BASE ,OFFSET) 对内部寄存器进行读写。Avalon总线在wr和rd的控制下进行读写。

3 测试

  农业智能大棚(该花卉的适宜温度是18 ℃,适宜湿度是58 RH),也就是棚内维持在作物适宜生长的温度、湿度等。若有变化,其将会调节相应的外围设备,来保持最佳环境。在大棚中,在测试节点上,SHT11监测实时的温度和湿度,将数据送到nRF24L01,数据通过基站最终到达终端虚拟控制中心。其所获得的数据变化曲线如图5、图6所示。

图5 温度随时间的变化曲线图图6 湿度随时间的变化曲线图

  图5 温度随时间的变化曲线图  图6 湿度随时间的变化曲线图

 结语

  本文介绍了基于Avalon总线SHT11温湿度传感器自定义IP核的开发流程,利用有限状态机设计了驱动硬件逻辑,并且基于NiosII嵌入式处理器构建了一个用户定制的嵌入式系统。在SOPC中,设计人员可以灵活添加IP核,减轻设计负担,避免重复工作。

1 2

关键词:Avalon总线SHT11温湿度传感器IP核

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版