发送TX帧信息 发送完毕 发送TX识别码 是 发送数据 结束 否 图4-5 SJAl000发送程序流程图
4.3.3 信号接收模块程序设计
采用中断方式接收数据的流程下图所示。SJA1000已接收一组报文, 而且报文已通过验收滤波并放在接收 FIFO 缓冲器中, 那么将会产生一个接收中断。这个时候,AT89C51可以很快的起到作用, 将自己收到的报文传输到自身报文存储器之中。随后,通过置位命令寄存器的相应标志位 RRB, 发送一个释放接收缓冲器的命令。在释放了接收缓冲器之后,SJA1000 开启所有中断, 等待接收下一组的报文[14]。 采用中断方式接受数据的流程图如下:
接收中断 关闭所有中断 开始
图4-6 中断方式接受数据的流程图
返回中断 开所有中断 置位RRB位 取出缓冲数据
4.4 从节点软件设计
从节点主要负责信息的采集,即通过从节点上的温度传感器、气体和烟雾浓度传感器进行数据的采集,将采集到的信息传输给主节点。现在根据从节点具体实现的功能进行从节点整体软件流程的设计,流程图如下:
开始 向主节点发送相关信息 判断采集的信息超过阀值 否
是 报警并开启执行装置 图4-7 从节点整体软件流程图
如上图所示,首先采集到的信息向主节点发送相关信息,然后对判断采集到的信息是否超过了阀值,如果没有继续向住接待您发送相关信息;如果采集到的信息超过了阀值,那么在向主节点发送信息的同时,报警并开启执行装置。
4.4.1 温度传感器电路的软件设计
由于DSl8820是采用一根I/O总线读写数据,因此,DSl8820对读写数据佗有严格的时序要求。DSl8820遵循相应的通信协议从而保证数据传输的正确性和完整性。该通信协议定义了多种信号时序,包括初始化时序、写时序以及读时序。这几种时序都是将单片机作为主机,DSl8820作为从机。每一次不管是命令还是数据的传输,全部都是从主机启动写时序才开始的,如果要求从机问送数据,在写命令后。主机须要启动读时序进行数据的接收。所有的读、写时序至少需要60us,且每两个独立的时序之间至少需要1us的恢复时间。数据和命令的传输都是低位优先[15]。
温度传感器电路的软件设计流程图如下:
开始 端口初始化 启动温度转换
读取温度数据 温度数据传送程序 结束 图4-8 温度传感器软件设计流程图
如上图所示,一开始对端口进行初始化,然后开启为年度转换,读取温度数据,最后对温度数据的传送。
4.4.2 可燃气体及烟雾传感器电路的软件设计
本系统采用3 MQ-2可燃气体及烟雾传感器模块探测火灾现场烟雾浓度以及气体浓度。由于传感器探头采集到的烟雾浓度信号和气体浓度为模拟量,因此要将其转化数字信号。A/D转换工作流程图如下所示:
如下图所示,模拟信号输入A/D转换口,然后开启A/D转换,等待转换完成,然后读取A/D转换数据。
开始 模拟信号输入A/D口
开启A/D转换 等待转换完成
相关推荐: