控制器逻辑功能模块。FPGA实现的控制器处于PC端上位机与温度传感器DS18B2O中间。FPGA的主要设计任务便是接收从串口得来的PC端上位机命令,通过内部状态机逻辑的判断和控制,通过Data Path将命令传达至温度传感器DS18B20,并将命令的执行结果返回给上位机。FPGA主要实现1-wire收发器和RS232收发器,对两边起沟通作用。整个硬件模块大致分成三层(图3),第一层为RS232串行通信模块和时钟分频模块fenpin,第二层为主控模块 Control Block,第三层为 Data Path部分:读/写模块bytebit。
图3、智能温度控制器系统模块层次结构图
l)RS232串行通信模块。负责外部上位机串行bit与主控模块Control Block并行byte间的数据传输。RS232串行通信速率采用 115200 bit/S。Uartrec从上位机接受一个字节com命令发给主控模块Control Block,同时Uarttran从主控模块Control Block接收一个字节result回应发给上位机。
2)分频模块fenpin。由50 MHZ内部晶振产生与DS18B20同步的1 MHZ时钟。
3)主控模块 Control Block。负责状态转化控制,实现 Data Path和RS232收发器的沟通。通过内部FSM逻辑的判断和控制,将命令传达至传感器,并将命令的执行结果返回给上位机。由两个延时子模块组成。初始化模块init,负责初始化总线上所有DS18B20,并在初始化成功后报告主控模块初始化状态。若初始化失败,将继续初始化。若超过设定初始化时间仍不能成功初始化,将停止初始化并报警。温度转化等待模块Convert,负责在读/写模块bytebit向DS18B20发出convert命令后延时800 ms再报告主控模块转化完毕。根据DS18B20用户手册,温度转化最多用750 ms。所以采用800 ms的保守估算。
4)Data Path。由读/写模块bytebit构成,负责主控模块Control Block和DS18B20之间的数据通信。由主控模块Control Block的r_w信号决定是发WRITE TIME SLOTS还是发READ TIME SLOTS。
4结束语
本文作者的主要创新点:分析并设计了一个基于FPGA的智能温度测控系统。本系统已经广泛地应用到各种相关的实际系统。本项目已经产生经济效益越230万元。